@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.6 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/components/ui/accessibility-demo.d.ts +259 -0
  3. package/dist/components/ui/accessibility-demo.esm.js +265 -0
  4. package/dist/components/ui/accessibility-demo.js +265 -0
  5. package/dist/components/ui/advanced-component-architecture-demo.d.ts +718 -0
  6. package/dist/components/ui/advanced-component-architecture-demo.esm.js +860 -0
  7. package/dist/components/ui/advanced-component-architecture-demo.js +860 -0
  8. package/dist/components/ui/advanced-transition-system-demo.d.ts +660 -0
  9. package/dist/components/ui/advanced-transition-system-demo.esm.js +624 -0
  10. package/dist/components/ui/advanced-transition-system-demo.js +624 -0
  11. package/dist/components/ui/advanced-transition-system.d.ts +391 -0
  12. package/dist/components/ui/advanced-transition-system.esm.js +351 -0
  13. package/dist/components/ui/advanced-transition-system.js +351 -0
  14. package/dist/components/ui/animation/animated-container.d.ts +162 -0
  15. package/dist/components/ui/animation/animated-container.esm.js +143 -0
  16. package/dist/components/ui/animation/animated-container.js +143 -0
  17. package/dist/components/ui/animation/index.d.ts +9 -0
  18. package/dist/components/ui/animation/index.esm.js +19 -0
  19. package/dist/components/ui/animation/index.js +19 -0
  20. package/dist/components/ui/animation/staggered-container.d.ts +64 -0
  21. package/dist/components/ui/animation/staggered-container.esm.js +59 -0
  22. package/dist/components/ui/animation/staggered-container.js +59 -0
  23. package/dist/components/ui/animation-demo.d.ts +238 -0
  24. package/dist/components/ui/animation-demo.esm.js +218 -0
  25. package/dist/components/ui/animation-demo.js +218 -0
  26. package/dist/components/ui/badge.d.ts +28 -0
  27. package/dist/components/ui/badge.esm.js +30 -0
  28. package/dist/components/ui/badge.js +30 -0
  29. package/dist/components/ui/battery-conscious-animation-demo.d.ts +561 -0
  30. package/dist/components/ui/battery-conscious-animation-demo.esm.js +533 -0
  31. package/dist/components/ui/battery-conscious-animation-demo.js +533 -0
  32. package/dist/components/ui/border-radius-shadow-demo.d.ts +183 -0
  33. package/dist/components/ui/border-radius-shadow-demo.esm.js +176 -0
  34. package/dist/components/ui/border-radius-shadow-demo.js +176 -0
  35. package/dist/components/ui/button.d.ts +33 -0
  36. package/dist/components/ui/button.esm.js +30 -0
  37. package/dist/components/ui/button.js +30 -0
  38. package/dist/components/ui/card.d.ts +205 -0
  39. package/dist/components/ui/card.esm.js +182 -0
  40. package/dist/components/ui/card.js +182 -0
  41. package/dist/components/ui/checkbox.d.ts +26 -0
  42. package/dist/components/ui/checkbox.esm.js +30 -0
  43. package/dist/components/ui/checkbox.js +30 -0
  44. package/dist/components/ui/color-preview.d.ts +402 -0
  45. package/dist/components/ui/color-preview.esm.js +388 -0
  46. package/dist/components/ui/color-preview.js +388 -0
  47. package/dist/components/ui/data-display/chart.d.ts +646 -0
  48. package/dist/components/ui/data-display/chart.esm.js +625 -0
  49. package/dist/components/ui/data-display/chart.js +625 -0
  50. package/dist/components/ui/data-display/data-grid-simple.d.ts +73 -0
  51. package/dist/components/ui/data-display/data-grid-simple.esm.js +76 -0
  52. package/dist/components/ui/data-display/data-grid-simple.js +76 -0
  53. package/dist/components/ui/data-display/data-grid.d.ts +670 -0
  54. package/dist/components/ui/data-display/data-grid.esm.js +667 -0
  55. package/dist/components/ui/data-display/data-grid.js +667 -0
  56. package/dist/components/ui/data-display/list.d.ts +448 -0
  57. package/dist/components/ui/data-display/list.esm.js +448 -0
  58. package/dist/components/ui/data-display/list.js +448 -0
  59. package/dist/components/ui/data-display/table.d.ts +472 -0
  60. package/dist/components/ui/data-display/table.esm.js +474 -0
  61. package/dist/components/ui/data-display/table.js +474 -0
  62. package/dist/components/ui/data-display/timeline.d.ts +433 -0
  63. package/dist/components/ui/data-display/timeline.esm.js +436 -0
  64. package/dist/components/ui/data-display/timeline.js +436 -0
  65. package/dist/components/ui/data-display/tree.d.ts +594 -0
  66. package/dist/components/ui/data-display/tree.esm.js +570 -0
  67. package/dist/components/ui/data-display/tree.js +570 -0
  68. package/dist/components/ui/data-display/types.d.ts +534 -0
  69. package/dist/components/ui/data-display/types.esm.js +511 -0
  70. package/dist/components/ui/data-display/types.js +511 -0
  71. package/dist/components/ui/enterprise-mobile-experience-demo.d.ts +735 -0
  72. package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +699 -0
  73. package/dist/components/ui/enterprise-mobile-experience-demo.js +699 -0
  74. package/dist/components/ui/enterprise-mobile-experience.d.ts +461 -0
  75. package/dist/components/ui/enterprise-mobile-experience.esm.js +413 -0
  76. package/dist/components/ui/enterprise-mobile-experience.js +413 -0
  77. package/dist/components/ui/feedback/alert.d.ts +154 -0
  78. package/dist/components/ui/feedback/alert.esm.js +150 -0
  79. package/dist/components/ui/feedback/alert.js +150 -0
  80. package/dist/components/ui/feedback/progress.d.ts +288 -0
  81. package/dist/components/ui/feedback/progress.esm.js +269 -0
  82. package/dist/components/ui/feedback/progress.js +269 -0
  83. package/dist/components/ui/feedback/skeleton.d.ts +182 -0
  84. package/dist/components/ui/feedback/skeleton.esm.js +175 -0
  85. package/dist/components/ui/feedback/skeleton.js +175 -0
  86. package/dist/components/ui/feedback/toast.d.ts +277 -0
  87. package/dist/components/ui/feedback/toast.esm.js +256 -0
  88. package/dist/components/ui/feedback/toast.js +256 -0
  89. package/dist/components/ui/feedback/types.d.ts +123 -0
  90. package/dist/components/ui/feedback/types.esm.js +125 -0
  91. package/dist/components/ui/feedback/types.js +125 -0
  92. package/dist/components/ui/font-preview.d.ts +282 -0
  93. package/dist/components/ui/font-preview.esm.js +286 -0
  94. package/dist/components/ui/font-preview.js +286 -0
  95. package/dist/components/ui/form-demo.d.ts +544 -0
  96. package/dist/components/ui/form-demo.esm.js +516 -0
  97. package/dist/components/ui/form-demo.js +516 -0
  98. package/dist/components/ui/hardware-acceleration-demo.d.ts +540 -0
  99. package/dist/components/ui/hardware-acceleration-demo.esm.js +497 -0
  100. package/dist/components/ui/hardware-acceleration-demo.js +497 -0
  101. package/dist/components/ui/input.d.ts +33 -0
  102. package/dist/components/ui/input.esm.js +32 -0
  103. package/dist/components/ui/input.js +32 -0
  104. package/dist/components/ui/label.d.ts +13 -0
  105. package/dist/components/ui/label.esm.js +16 -0
  106. package/dist/components/ui/label.js +16 -0
  107. package/dist/components/ui/layout-demo.d.ts +352 -0
  108. package/dist/components/ui/layout-demo.esm.js +342 -0
  109. package/dist/components/ui/layout-demo.js +342 -0
  110. package/dist/components/ui/layouts/adaptive-layout.d.ts +132 -0
  111. package/dist/components/ui/layouts/adaptive-layout.esm.js +120 -0
  112. package/dist/components/ui/layouts/adaptive-layout.js +120 -0
  113. package/dist/components/ui/layouts/desktop-layout.d.ts +219 -0
  114. package/dist/components/ui/layouts/desktop-layout.esm.js +204 -0
  115. package/dist/components/ui/layouts/desktop-layout.js +204 -0
  116. package/dist/components/ui/layouts/index.d.ts +5 -0
  117. package/dist/components/ui/layouts/index.esm.js +10 -0
  118. package/dist/components/ui/layouts/index.js +10 -0
  119. package/dist/components/ui/layouts/mobile-layout.d.ts +158 -0
  120. package/dist/components/ui/layouts/mobile-layout.esm.js +152 -0
  121. package/dist/components/ui/layouts/mobile-layout.js +152 -0
  122. package/dist/components/ui/layouts/tablet-layout.d.ts +192 -0
  123. package/dist/components/ui/layouts/tablet-layout.esm.js +183 -0
  124. package/dist/components/ui/layouts/tablet-layout.js +183 -0
  125. package/dist/components/ui/mobile-form-validation.d.ts +439 -0
  126. package/dist/components/ui/mobile-form-validation.esm.js +418 -0
  127. package/dist/components/ui/mobile-form-validation.js +418 -0
  128. package/dist/components/ui/mobile-input-demo.d.ts +197 -0
  129. package/dist/components/ui/mobile-input-demo.esm.js +195 -0
  130. package/dist/components/ui/mobile-input-demo.js +195 -0
  131. package/dist/components/ui/mobile-input.d.ts +273 -0
  132. package/dist/components/ui/mobile-input.esm.js +216 -0
  133. package/dist/components/ui/mobile-input.js +216 -0
  134. package/dist/components/ui/mobile-skeleton-loading-demo.d.ts +628 -0
  135. package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +621 -0
  136. package/dist/components/ui/mobile-skeleton-loading-demo.js +621 -0
  137. package/dist/components/ui/navigation/breadcrumb.d.ts +149 -0
  138. package/dist/components/ui/navigation/breadcrumb.esm.js +155 -0
  139. package/dist/components/ui/navigation/breadcrumb.js +155 -0
  140. package/dist/components/ui/navigation/index.d.ts +25 -0
  141. package/dist/components/ui/navigation/index.esm.js +14 -0
  142. package/dist/components/ui/navigation/index.js +14 -0
  143. package/dist/components/ui/navigation/menu.d.ts +366 -0
  144. package/dist/components/ui/navigation/menu.esm.js +360 -0
  145. package/dist/components/ui/navigation/menu.js +360 -0
  146. package/dist/components/ui/navigation/navigation-demo.d.ts +169 -0
  147. package/dist/components/ui/navigation/navigation-demo.esm.js +317 -0
  148. package/dist/components/ui/navigation/navigation-demo.js +317 -0
  149. package/dist/components/ui/navigation/pagination.d.ts +261 -0
  150. package/dist/components/ui/navigation/pagination.esm.js +260 -0
  151. package/dist/components/ui/navigation/pagination.js +260 -0
  152. package/dist/components/ui/navigation/sidebar.d.ts +375 -0
  153. package/dist/components/ui/navigation/sidebar.esm.js +369 -0
  154. package/dist/components/ui/navigation/sidebar.js +369 -0
  155. package/dist/components/ui/navigation/stepper.d.ts +294 -0
  156. package/dist/components/ui/navigation/stepper.esm.js +292 -0
  157. package/dist/components/ui/navigation/stepper.js +292 -0
  158. package/dist/components/ui/navigation/tabs.d.ts +196 -0
  159. package/dist/components/ui/navigation/tabs.esm.js +194 -0
  160. package/dist/components/ui/navigation/tabs.js +194 -0
  161. package/dist/components/ui/navigation/types.d.ts +293 -0
  162. package/dist/components/ui/navigation/types.esm.js +298 -0
  163. package/dist/components/ui/navigation/types.js +298 -0
  164. package/dist/components/ui/overlay/backdrop.d.ts +79 -0
  165. package/dist/components/ui/overlay/backdrop.esm.js +80 -0
  166. package/dist/components/ui/overlay/backdrop.js +80 -0
  167. package/dist/components/ui/overlay/focus-manager.d.ts +141 -0
  168. package/dist/components/ui/overlay/focus-manager.esm.js +141 -0
  169. package/dist/components/ui/overlay/focus-manager.js +141 -0
  170. package/dist/components/ui/overlay/index.d.ts +27 -0
  171. package/dist/components/ui/overlay/index.esm.js +16 -0
  172. package/dist/components/ui/overlay/index.js +16 -0
  173. package/dist/components/ui/overlay/modal.d.ts +262 -0
  174. package/dist/components/ui/overlay/modal.esm.js +266 -0
  175. package/dist/components/ui/overlay/modal.js +266 -0
  176. package/dist/components/ui/overlay/overlay-manager.d.ts +107 -0
  177. package/dist/components/ui/overlay/overlay-manager.esm.js +105 -0
  178. package/dist/components/ui/overlay/overlay-manager.js +105 -0
  179. package/dist/components/ui/overlay/popover.d.ts +450 -0
  180. package/dist/components/ui/overlay/popover.esm.js +446 -0
  181. package/dist/components/ui/overlay/popover.js +446 -0
  182. package/dist/components/ui/overlay/portal.d.ts +75 -0
  183. package/dist/components/ui/overlay/portal.esm.js +79 -0
  184. package/dist/components/ui/overlay/portal.js +79 -0
  185. package/dist/components/ui/overlay/tooltip.d.ts +298 -0
  186. package/dist/components/ui/overlay/tooltip.esm.js +288 -0
  187. package/dist/components/ui/overlay/tooltip.js +288 -0
  188. package/dist/components/ui/overlay/types.d.ts +194 -0
  189. package/dist/components/ui/overlay/types.esm.js +195 -0
  190. package/dist/components/ui/overlay/types.js +195 -0
  191. package/dist/components/ui/performance-demo.d.ts +583 -0
  192. package/dist/components/ui/performance-demo.esm.js +549 -0
  193. package/dist/components/ui/performance-demo.js +549 -0
  194. package/dist/components/ui/semantic-input-system-demo.d.ts +490 -0
  195. package/dist/components/ui/semantic-input-system-demo.esm.js +465 -0
  196. package/dist/components/ui/semantic-input-system-demo.js +465 -0
  197. package/dist/components/ui/theme-customizer.d.ts +378 -0
  198. package/dist/components/ui/theme-customizer.esm.js +354 -0
  199. package/dist/components/ui/theme-customizer.js +354 -0
  200. package/dist/components/ui/theme-preview.d.ts +305 -0
  201. package/dist/components/ui/theme-preview.esm.js +258 -0
  202. package/dist/components/ui/theme-preview.js +258 -0
  203. package/dist/components/ui/theme-switcher.d.ts +259 -0
  204. package/dist/components/ui/theme-switcher.esm.js +238 -0
  205. package/dist/components/ui/theme-switcher.js +238 -0
  206. package/dist/components/ui/theme-toggle.d.ts +34 -0
  207. package/dist/components/ui/theme-toggle.esm.js +38 -0
  208. package/dist/components/ui/theme-toggle.js +38 -0
  209. package/dist/components/ui/token-demo.d.ts +188 -0
  210. package/dist/components/ui/token-demo.esm.js +183 -0
  211. package/dist/components/ui/token-demo.js +183 -0
  212. package/dist/components/ui/touch-demo.d.ts +455 -0
  213. package/dist/components/ui/touch-demo.esm.js +433 -0
  214. package/dist/components/ui/touch-demo.js +433 -0
  215. package/dist/components/ui/touch-friendly-interface-demo.d.ts +512 -0
  216. package/dist/components/ui/touch-friendly-interface-demo.esm.js +481 -0
  217. package/dist/components/ui/touch-friendly-interface-demo.js +481 -0
  218. package/dist/components/ui/touch-friendly-interface.d.ts +292 -0
  219. package/dist/components/ui/touch-friendly-interface.esm.js +272 -0
  220. package/dist/components/ui/touch-friendly-interface.js +272 -0
  221. package/dist/hooks/index.d.ts +161 -0
  222. package/dist/hooks/index.esm.js +190 -0
  223. package/dist/hooks/index.js +190 -0
  224. package/dist/hooks/use-accessibility-support.d.ts +516 -0
  225. package/dist/hooks/use-accessibility-support.esm.js +488 -0
  226. package/dist/hooks/use-accessibility-support.js +488 -0
  227. package/dist/hooks/use-adaptive-layout.d.ts +287 -0
  228. package/dist/hooks/use-adaptive-layout.esm.js +266 -0
  229. package/dist/hooks/use-adaptive-layout.js +266 -0
  230. package/dist/hooks/use-advanced-patterns.d.ts +292 -0
  231. package/dist/hooks/use-advanced-patterns.esm.js +279 -0
  232. package/dist/hooks/use-advanced-patterns.js +279 -0
  233. package/dist/hooks/use-advanced-transition-system.d.ts +390 -0
  234. package/dist/hooks/use-advanced-transition-system.esm.js +352 -0
  235. package/dist/hooks/use-advanced-transition-system.js +352 -0
  236. package/dist/hooks/use-animation-profile.d.ts +285 -0
  237. package/dist/hooks/use-animation-profile.esm.js +259 -0
  238. package/dist/hooks/use-animation-profile.js +259 -0
  239. package/dist/hooks/use-battery-animations.d.ts +382 -0
  240. package/dist/hooks/use-battery-animations.esm.js +359 -0
  241. package/dist/hooks/use-battery-animations.js +359 -0
  242. package/dist/hooks/use-battery-conscious-loading.d.ts +473 -0
  243. package/dist/hooks/use-battery-conscious-loading.esm.js +432 -0
  244. package/dist/hooks/use-battery-conscious-loading.js +432 -0
  245. package/dist/hooks/use-battery-optimization.d.ts +328 -0
  246. package/dist/hooks/use-battery-optimization.esm.js +307 -0
  247. package/dist/hooks/use-battery-optimization.js +307 -0
  248. package/dist/hooks/use-battery-status.d.ts +297 -0
  249. package/dist/hooks/use-battery-status.esm.js +277 -0
  250. package/dist/hooks/use-battery-status.js +277 -0
  251. package/dist/hooks/use-component-performance.d.ts +342 -0
  252. package/dist/hooks/use-component-performance.esm.js +329 -0
  253. package/dist/hooks/use-component-performance.js +329 -0
  254. package/dist/hooks/use-device-loading-states.d.ts +456 -0
  255. package/dist/hooks/use-device-loading-states.esm.js +416 -0
  256. package/dist/hooks/use-device-loading-states.js +416 -0
  257. package/dist/hooks/use-device.d.ts +104 -0
  258. package/dist/hooks/use-device.esm.js +99 -0
  259. package/dist/hooks/use-device.js +99 -0
  260. package/dist/hooks/use-enterprise-mobile-experience.d.ts +486 -0
  261. package/dist/hooks/use-enterprise-mobile-experience.esm.js +439 -0
  262. package/dist/hooks/use-enterprise-mobile-experience.js +439 -0
  263. package/dist/hooks/use-form-feedback.d.ts +401 -0
  264. package/dist/hooks/use-form-feedback.esm.js +360 -0
  265. package/dist/hooks/use-form-feedback.js +360 -0
  266. package/dist/hooks/use-form-performance.d.ts +511 -0
  267. package/dist/hooks/use-form-performance.esm.js +478 -0
  268. package/dist/hooks/use-form-performance.js +478 -0
  269. package/dist/hooks/use-frame-rate.d.ts +249 -0
  270. package/dist/hooks/use-frame-rate.esm.js +232 -0
  271. package/dist/hooks/use-frame-rate.js +232 -0
  272. package/dist/hooks/use-gestures.d.ts +336 -0
  273. package/dist/hooks/use-gestures.esm.js +314 -0
  274. package/dist/hooks/use-gestures.js +314 -0
  275. package/dist/hooks/use-hardware-acceleration.d.ts +339 -0
  276. package/dist/hooks/use-hardware-acceleration.esm.js +313 -0
  277. package/dist/hooks/use-hardware-acceleration.js +313 -0
  278. package/dist/hooks/use-input-accessibility.d.ts +451 -0
  279. package/dist/hooks/use-input-accessibility.esm.js +417 -0
  280. package/dist/hooks/use-input-accessibility.js +417 -0
  281. package/dist/hooks/use-input-performance.d.ts +503 -0
  282. package/dist/hooks/use-input-performance.esm.js +471 -0
  283. package/dist/hooks/use-input-performance.js +471 -0
  284. package/dist/hooks/use-layout-performance.d.ts +317 -0
  285. package/dist/hooks/use-layout-performance.esm.js +298 -0
  286. package/dist/hooks/use-layout-performance.js +298 -0
  287. package/dist/hooks/use-loading-accessibility.d.ts +532 -0
  288. package/dist/hooks/use-loading-accessibility.esm.js +495 -0
  289. package/dist/hooks/use-loading-accessibility.js +495 -0
  290. package/dist/hooks/use-loading-performance.d.ts +471 -0
  291. package/dist/hooks/use-loading-performance.esm.js +449 -0
  292. package/dist/hooks/use-loading-performance.js +449 -0
  293. package/dist/hooks/use-memory-usage.d.ts +285 -0
  294. package/dist/hooks/use-memory-usage.esm.js +268 -0
  295. package/dist/hooks/use-memory-usage.js +268 -0
  296. package/dist/hooks/use-mobile-form-layout.d.ts +462 -0
  297. package/dist/hooks/use-mobile-form-layout.esm.js +427 -0
  298. package/dist/hooks/use-mobile-form-layout.js +427 -0
  299. package/dist/hooks/use-mobile-form-validation.d.ts +516 -0
  300. package/dist/hooks/use-mobile-form-validation.esm.js +451 -0
  301. package/dist/hooks/use-mobile-form-validation.js +451 -0
  302. package/dist/hooks/use-mobile-keyboard-optimization.d.ts +469 -0
  303. package/dist/hooks/use-mobile-keyboard-optimization.esm.js +431 -0
  304. package/dist/hooks/use-mobile-keyboard-optimization.js +431 -0
  305. package/dist/hooks/use-mobile-layout.d.ts +300 -0
  306. package/dist/hooks/use-mobile-layout.esm.js +280 -0
  307. package/dist/hooks/use-mobile-layout.js +280 -0
  308. package/dist/hooks/use-mobile-optimization.d.ts +404 -0
  309. package/dist/hooks/use-mobile-optimization.esm.js +378 -0
  310. package/dist/hooks/use-mobile-optimization.js +378 -0
  311. package/dist/hooks/use-mobile-skeleton.d.ts +399 -0
  312. package/dist/hooks/use-mobile-skeleton.esm.js +369 -0
  313. package/dist/hooks/use-mobile-skeleton.js +369 -0
  314. package/dist/hooks/use-mobile-touch.d.ts +412 -0
  315. package/dist/hooks/use-mobile-touch.esm.js +379 -0
  316. package/dist/hooks/use-mobile-touch.js +379 -0
  317. package/dist/hooks/use-performance-throttling.d.ts +346 -0
  318. package/dist/hooks/use-performance-throttling.esm.js +324 -0
  319. package/dist/hooks/use-performance-throttling.js +324 -0
  320. package/dist/hooks/use-performance.d.ts +314 -0
  321. package/dist/hooks/use-performance.esm.js +278 -0
  322. package/dist/hooks/use-performance.js +278 -0
  323. package/dist/hooks/use-reusable-architecture.d.ts +412 -0
  324. package/dist/hooks/use-reusable-architecture.esm.js +385 -0
  325. package/dist/hooks/use-reusable-architecture.js +385 -0
  326. package/dist/hooks/use-semantic-input-types.d.ts +354 -0
  327. package/dist/hooks/use-semantic-input-types.esm.js +315 -0
  328. package/dist/hooks/use-semantic-input-types.js +315 -0
  329. package/dist/hooks/use-semantic-input.d.ts +563 -0
  330. package/dist/hooks/use-semantic-input.esm.js +513 -0
  331. package/dist/hooks/use-semantic-input.js +513 -0
  332. package/dist/hooks/use-tablet-layout.d.ts +382 -0
  333. package/dist/hooks/use-tablet-layout.esm.js +355 -0
  334. package/dist/hooks/use-tablet-layout.js +355 -0
  335. package/dist/hooks/use-touch-friendly-input.d.ts +520 -0
  336. package/dist/hooks/use-touch-friendly-input.esm.js +480 -0
  337. package/dist/hooks/use-touch-friendly-input.js +480 -0
  338. package/dist/hooks/use-touch-friendly-interface.d.ts +329 -0
  339. package/dist/hooks/use-touch-friendly-interface.esm.js +299 -0
  340. package/dist/hooks/use-touch-friendly-interface.js +299 -0
  341. package/dist/hooks/use-touch-optimization.d.ts +373 -0
  342. package/dist/hooks/use-touch-optimization.esm.js +348 -0
  343. package/dist/hooks/use-touch-optimization.js +348 -0
  344. package/dist/index.esm.js +2 -2
  345. package/dist/index.js +2 -2
  346. package/dist/lib/utils.d.ts +3 -0
  347. package/dist/lib/utils.esm.js +6 -0
  348. package/dist/lib/utils.js +6 -0
  349. package/dist/plugins/theme-css-generator.d.ts +345 -0
  350. package/dist/plugins/theme-css-generator.esm.js +305 -0
  351. package/dist/plugins/theme-css-generator.js +305 -0
  352. package/dist/styles.css +1 -1
  353. package/dist/themes/ThemeContext.d.ts +27 -0
  354. package/dist/themes/ThemeContext.esm.js +31 -0
  355. package/dist/themes/ThemeContext.js +31 -0
  356. package/dist/themes/ThemeProvider.d.ts +222 -0
  357. package/dist/themes/ThemeProvider.esm.js +229 -0
  358. package/dist/themes/ThemeProvider.js +229 -0
  359. package/dist/themes/accessibility/index.d.ts +7 -0
  360. package/dist/themes/accessibility/index.esm.js +27 -0
  361. package/dist/themes/accessibility/index.js +27 -0
  362. package/dist/themes/accessibility.d.ts +259 -0
  363. package/dist/themes/accessibility.esm.js +220 -0
  364. package/dist/themes/accessibility.js +220 -0
  365. package/dist/themes/aria-patterns.d.ts +418 -0
  366. package/dist/themes/aria-patterns.esm.js +384 -0
  367. package/dist/themes/aria-patterns.js +384 -0
  368. package/dist/themes/base-themes.d.ts +34 -0
  369. package/dist/themes/base-themes.esm.js +52 -0
  370. package/dist/themes/base-themes.js +52 -0
  371. package/dist/themes/colorManager.d.ts +327 -0
  372. package/dist/themes/colorManager.esm.js +362 -0
  373. package/dist/themes/colorManager.js +362 -0
  374. package/dist/themes/examples/dark-theme.d.ts +139 -0
  375. package/dist/themes/examples/dark-theme.esm.js +124 -0
  376. package/dist/themes/examples/dark-theme.js +124 -0
  377. package/dist/themes/examples/minimal-theme.d.ts +93 -0
  378. package/dist/themes/examples/minimal-theme.esm.js +86 -0
  379. package/dist/themes/examples/minimal-theme.js +86 -0
  380. package/dist/themes/focus-management.d.ts +699 -0
  381. package/dist/themes/focus-management.esm.js +642 -0
  382. package/dist/themes/focus-management.js +642 -0
  383. package/dist/themes/fontLoader.d.ts +163 -0
  384. package/dist/themes/fontLoader.esm.js +192 -0
  385. package/dist/themes/fontLoader.js +192 -0
  386. package/dist/themes/high-contrast.d.ts +619 -0
  387. package/dist/themes/high-contrast.esm.js +573 -0
  388. package/dist/themes/high-contrast.js +573 -0
  389. package/dist/themes/index.d.ts +11 -0
  390. package/dist/themes/index.esm.js +19 -0
  391. package/dist/themes/index.js +19 -0
  392. package/dist/themes/inheritance.d.ts +160 -0
  393. package/dist/themes/inheritance.esm.js +219 -0
  394. package/dist/themes/inheritance.js +219 -0
  395. package/dist/themes/keyboard-navigation.d.ts +550 -0
  396. package/dist/themes/keyboard-navigation.esm.js +521 -0
  397. package/dist/themes/keyboard-navigation.js +521 -0
  398. package/dist/themes/motion-reduction.d.ts +660 -0
  399. package/dist/themes/motion-reduction.esm.js +602 -0
  400. package/dist/themes/motion-reduction.js +602 -0
  401. package/dist/themes/navigation.d.ts +232 -0
  402. package/dist/themes/navigation.esm.js +238 -0
  403. package/dist/themes/navigation.js +238 -0
  404. package/dist/themes/screen-reader.d.ts +645 -0
  405. package/dist/themes/screen-reader.esm.js +580 -0
  406. package/dist/themes/screen-reader.js +580 -0
  407. package/dist/themes/systemThemeDetector.d.ts +148 -0
  408. package/dist/themes/systemThemeDetector.esm.js +174 -0
  409. package/dist/themes/systemThemeDetector.js +174 -0
  410. package/dist/themes/themeCSSUpdater.d.ts +229 -0
  411. package/dist/themes/themeCSSUpdater.esm.js +250 -0
  412. package/dist/themes/themeCSSUpdater.js +250 -0
  413. package/dist/themes/themePersistence.d.ts +192 -0
  414. package/dist/themes/themePersistence.esm.js +217 -0
  415. package/dist/themes/themePersistence.js +217 -0
  416. package/dist/themes/themes/stan-design.d.ts +678 -0
  417. package/dist/themes/themes/stan-design.esm.js +518 -0
  418. package/dist/themes/themes/stan-design.js +518 -0
  419. package/dist/themes/types.d.ts +454 -0
  420. package/dist/themes/types.esm.js +446 -0
  421. package/dist/themes/types.js +446 -0
  422. package/dist/themes/useSystemTheme.d.ts +43 -0
  423. package/dist/themes/useSystemTheme.esm.js +48 -0
  424. package/dist/themes/useSystemTheme.js +48 -0
  425. package/dist/themes/useTheme.d.ts +20 -0
  426. package/dist/themes/useTheme.esm.js +87 -0
  427. package/dist/themes/useTheme.js +87 -0
  428. package/dist/themes/validation.d.ts +406 -0
  429. package/dist/themes/validation.esm.js +411 -0
  430. package/dist/themes/validation.js +411 -0
  431. package/dist/tokens/index.d.ts +25 -0
  432. package/dist/tokens/index.esm.js +23 -0
  433. package/dist/tokens/index.js +23 -0
  434. package/dist/tokens/tokenExporter.d.ts +336 -0
  435. package/dist/tokens/tokenExporter.esm.js +371 -0
  436. package/dist/tokens/tokenExporter.js +371 -0
  437. package/dist/tokens/tokenGenerator.d.ts +250 -0
  438. package/dist/tokens/tokenGenerator.esm.js +267 -0
  439. package/dist/tokens/tokenGenerator.js +267 -0
  440. package/dist/tokens/tokenManager.d.ts +194 -0
  441. package/dist/tokens/tokenManager.esm.js +235 -0
  442. package/dist/tokens/tokenManager.js +235 -0
  443. package/dist/tokens/tokenValidator.d.ts +488 -0
  444. package/dist/tokens/tokenValidator.esm.js +497 -0
  445. package/dist/tokens/tokenValidator.js +497 -0
  446. package/dist/tokens/types.d.ts +78 -0
  447. package/dist/tokens/types.esm.js +64 -0
  448. package/dist/tokens/types.js +64 -0
  449. package/dist/utils/bundle-analyzer.d.ts +260 -0
  450. package/dist/utils/bundle-analyzer.esm.js +242 -0
  451. package/dist/utils/bundle-analyzer.js +242 -0
  452. package/dist/utils/bundle-splitting.d.ts +483 -0
  453. package/dist/utils/bundle-splitting.esm.js +458 -0
  454. package/dist/utils/bundle-splitting.js +458 -0
  455. package/dist/utils/lazy-loading.d.ts +437 -0
  456. package/dist/utils/lazy-loading.esm.js +415 -0
  457. package/dist/utils/lazy-loading.js +415 -0
  458. package/dist/utils/performance-monitor.d.ts +513 -0
  459. package/dist/utils/performance-monitor.esm.js +472 -0
  460. package/dist/utils/performance-monitor.js +472 -0
  461. package/dist/utils/tree-shaking.d.ts +274 -0
  462. package/dist/utils/tree-shaking.esm.js +266 -0
  463. package/dist/utils/tree-shaking.js +266 -0
  464. package/package.json +1 -1
  465. package/src/index.ts +2 -2
  466. package/src/themes/accessibility/index.ts +1 -1
  467. package/src/themes/focus-management.ts +3 -3
  468. package/src/themes/keyboard-navigation.ts +3 -3
@@ -0,0 +1,455 @@
1
+ export const TouchDemo: React.FC = () => {
2
+ const [activeTab, setActiveTab] = useState<'overview' | 'gestures' | 'optimization' | 'mobile'>('overview')
3
+ const [gestureHistory, setGestureHistory] = useState<Array<{ type: string; details: any; timestamp: Date }>>([])
4
+ const [touchFeedback, setTouchFeedback] = useState<string>('')
5
+
6
+ const gestureElementRef = useRef<HTMLDivElement>(null)
7
+ const optimizationElementRef = useRef<HTMLDivElement>(null)
8
+ const mobileTouchElementRef = useRef<HTMLDivElement>(null)
9
+
10
+ const device = useDevice()
11
+
12
+ // Gesture recognition hook
13
+ const {
14
+ isGestureActive,
15
+ currentGestureType,
16
+ resetGestureState
17
+ } = useGestures(gestureElementRef, {
18
+ onSwipe: (gesture: any) => {
19
+ const gestureInfo = {
20
+ type: 'Swipe',
21
+ details: `${gesture.direction} - ${gesture.distance.toFixed(0)}px, ${gesture.velocity.toFixed(1)}px/ms`,
22
+ timestamp: new Date()
23
+ }
24
+ setGestureHistory(prev => [gestureInfo, ...prev.slice(0, 9)])
25
+ },
26
+ onPinch: (gesture: any) => {
27
+ const gestureInfo = {
28
+ type: 'Pinch',
29
+ details: `Scale: ${gesture.scale.toFixed(2)}, Distance: ${gesture.distance.toFixed(0)}px`,
30
+ timestamp: new Date()
31
+ }
32
+ setGestureHistory(prev => [gestureInfo, ...prev.slice(0, 9)])
33
+ },
34
+ onTap: (position: any) => {
35
+ const gestureInfo = {
36
+ type: 'Tap',
37
+ details: `Position: (${position.x}, ${position.y})`,
38
+ timestamp: new Date()
39
+ }
40
+ setGestureHistory(prev => [gestureInfo, ...prev.slice(0, 9)])
41
+ },
42
+ onLongPress: (position: any) => {
43
+ const gestureInfo = {
44
+ type: 'Long Press',
45
+ details: `Position: (${position.x}, ${position.y})`,
46
+ timestamp: new Date()
47
+ }
48
+ setGestureHistory(prev => [gestureInfo, ...prev.slice(0, 9)])
49
+ }
50
+ })
51
+
52
+ // Touch optimization hook
53
+ const {
54
+ optimizationState,
55
+ performanceMetrics,
56
+ applyOptimizations,
57
+ resetOptimizations
58
+ } = useTouchOptimization(optimizationElementRef, {
59
+ onTouchPerformanceWarning: (metrics: any) => {
60
+ console.warn('Touch performance warning:', metrics)
61
+ },
62
+ onBatteryOptimization: (enabled: any) => {
63
+ console.log('Battery optimization:', enabled ? 'enabled' : 'disabled')
64
+ }
65
+ })
66
+
67
+ // Mobile touch hook
68
+ const {
69
+ mobileTouchState,
70
+ clearAllGestureHints,
71
+ getTouchFeedbackClasses
72
+ } = useMobileTouch(mobileTouchElementRef, {
73
+ onTouchFeedback: (state: any) => {
74
+ setTouchFeedback(`${state.feedbackType} feedback - ${state.feedbackIntensity} intensity`)
75
+ },
76
+ onGestureHint: (hint: any) => {
77
+ console.log('Gesture hint:', hint)
78
+ }
79
+ })
80
+
81
+ const clearGestureHistory = () => {
82
+ setGestureHistory([])
83
+ resetGestureState()
84
+ }
85
+
86
+ const getPerformanceScoreColor = (score: string) => {
87
+ switch (score) {
88
+ case 'excellent': return 'text-green-600'
89
+ case 'good': return 'text-blue-600'
90
+ case 'fair': return 'text-yellow-600'
91
+ case 'poor': return 'text-red-600'
92
+ default: return 'text-gray-600'
93
+ }
94
+ }
95
+
96
+ const getBatteryImpactColor = (impact: string) => {
97
+ switch (impact) {
98
+ case 'low': return 'text-green-600'
99
+ case 'medium': return 'text-yellow-600'
100
+ case 'high': return 'text-red-600'
101
+ default: return 'text-gray-600'
102
+ }
103
+ }
104
+
105
+ return (
106
+ <div className="space-y-6">
107
+ {/* Tab Navigation */}
108
+ <div className="flex flex-wrap gap-2">
109
+ {[
110
+ { id: 'overview', label: 'Overview', icon: '📱' },
111
+ { id: 'gestures', label: 'Gesture Recognition', icon: '👆' },
112
+ { id: 'optimization', label: 'Touch Optimization', icon: '⚡' },
113
+ { id: 'mobile', label: 'Mobile Touch', icon: '📱' }
114
+ ].map((tab) => (
115
+ <Button
116
+ key={tab.id}
117
+ variant={activeTab === tab.id ? 'default' : 'outline'}
118
+ size="sm"
119
+ onClick={() => setActiveTab(tab.id as any)}
120
+ className="touch-button"
121
+ >
122
+ {tab.icon} {tab.label}
123
+ </Button>
124
+ ))}
125
+ </div>
126
+
127
+ {/* Overview Tab */}
128
+ {activeTab === 'overview' && (
129
+ <div className="space-y-4">
130
+ <Card className="touch-card">
131
+ <CardHeader>
132
+ <CardTitle className="flex items-center gap-2">
133
+ 🎯 Touch Optimization & Gesture Support
134
+ <Badge variant="outline">Story 5 Implementation</Badge>
135
+ </CardTitle>
136
+ <CardDescription>
137
+ Comprehensive touch optimization system with gesture recognition, performance monitoring, and mobile-first interactions
138
+ </CardDescription>
139
+ </CardHeader>
140
+ <CardContent className="space-y-4">
141
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
142
+ <div className="space-y-2">
143
+ <h4 className="font-semibold">Device Information</h4>
144
+ <div className="text-sm space-y-1">
145
+ <p>Screen Size: <Badge variant="secondary">{device.screenSize}</Badge></p>
146
+ <p>Touch Device: <Badge variant="secondary">{device.touchDevice ? 'Yes' : 'No'}</Badge></p>
147
+ <p>Orientation: <Badge variant="secondary">{device.orientation}</Badge></p>
148
+ </div>
149
+ </div>
150
+ <div className="space-y-2">
151
+ <h4 className="font-semibold">Touch Capabilities</h4>
152
+ <div className="text-sm space-y-1">
153
+ <p>Max Touch Points: <Badge variant="secondary">{mobileTouchState.deviceCapabilities.maxTouchPoints}</Badge></p>
154
+ <p>Haptic Support: <Badge variant="secondary">{mobileTouchState.deviceCapabilities.supportsHaptics ? 'Yes' : 'No'}</Badge></p>
155
+ <p>Audio Support: <Badge variant="secondary">{mobileTouchState.deviceCapabilities.supportsAudio ? 'Yes' : 'No'}</Badge></p>
156
+ </div>
157
+ </div>
158
+ </div>
159
+
160
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
161
+ <div className="text-center p-4 bg-gray-50 rounded-lg">
162
+ <div className="text-2xl mb-2">👆</div>
163
+ <h4 className="font-semibold">Gesture Recognition</h4>
164
+ <p className="text-sm text-gray-600">Swipe, pinch, tap, and long press detection</p>
165
+ </div>
166
+ <div className="text-center p-4 bg-gray-50 rounded-lg">
167
+ <div className="text-2xl mb-2">⚡</div>
168
+ <h4 className="font-semibold">Performance Optimization</h4>
169
+ <p className="text-sm text-gray-600">Touch event optimization and battery awareness</p>
170
+ </div>
171
+ <div className="text-center p-4 bg-gray-50 rounded-lg">
172
+ <div className="text-2xl mb-2">📱</div>
173
+ <h4 className="font-semibold">Mobile Touch</h4>
174
+ <p className="text-sm text-gray-600">Touch feedback, haptics, and gesture hints</p>
175
+ </div>
176
+ </div>
177
+ </CardContent>
178
+ </Card>
179
+ </div>
180
+ )}
181
+
182
+ {/* Gesture Recognition Tab */}
183
+ {activeTab === 'gestures' && (
184
+ <div className="space-y-4">
185
+ <Card className="touch-card">
186
+ <CardHeader>
187
+ <CardTitle className="flex items-center gap-2">
188
+ 👆 Gesture Recognition
189
+ <Badge variant={isGestureActive ? 'default' : 'secondary'}>
190
+ {isGestureActive ? 'Active' : 'Inactive'}
191
+ </Badge>
192
+ </CardTitle>
193
+ <CardDescription>
194
+ Test gesture recognition on the interactive area below. Try swiping, pinching, tapping, and long pressing.
195
+ </CardDescription>
196
+ </CardHeader>
197
+ <CardContent className="space-y-4">
198
+ <div className="flex gap-2">
199
+ <Button onClick={resetGestureState} variant="outline" size="sm">
200
+ Reset Gestures
201
+ </Button>
202
+ <Button onClick={clearGestureHistory} variant="outline" size="sm">
203
+ Clear History
204
+ </Button>
205
+ </div>
206
+
207
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
208
+ {/* Interactive Gesture Area */}
209
+ <div
210
+ ref={gestureElementRef}
211
+ className="min-h-[300px] border-2 border-dashed border-gray-300 rounded-lg p-4 flex items-center justify-center bg-gray-50 touch-target"
212
+ style={{ touchAction: 'manipulation' }}
213
+ >
214
+ <div className="text-center">
215
+ <div className="text-4xl mb-2">👆</div>
216
+ <p className="font-medium">Gesture Test Area</p>
217
+ <p className="text-sm text-gray-600">
218
+ {currentGestureType !== 'none' ? `Current: ${currentGestureType}` : 'Touch to start'}
219
+ </p>
220
+ <p className="text-xs text-gray-500 mt-2">
221
+ Swipe, pinch, tap, or long press here
222
+ </p>
223
+ </div>
224
+ </div>
225
+
226
+ {/* Gesture History */}
227
+ <div className="space-y-2">
228
+ <h4 className="font-semibold">Gesture History</h4>
229
+ <div className="max-h-[300px] overflow-y-auto space-y-2">
230
+ {gestureHistory.length === 0 ? (
231
+ <p className="text-gray-500 text-sm">No gestures detected yet</p>
232
+ ) : (
233
+ gestureHistory.map((gesture, index) => (
234
+ <div key={index} className="p-2 bg-gray-50 rounded text-sm">
235
+ <div className="flex justify-between items-start">
236
+ <span className="font-medium">{gesture.type}</span>
237
+ <span className="text-xs text-gray-500">
238
+ {gesture.timestamp.toLocaleTimeString()}
239
+ </span>
240
+ </div>
241
+ <p className="text-gray-600">{gesture.details}</p>
242
+ </div>
243
+ ))
244
+ )}
245
+ </div>
246
+ </div>
247
+ </div>
248
+ </CardContent>
249
+ </Card>
250
+ </div>
251
+ )}
252
+
253
+ {/* Touch Optimization Tab */}
254
+ {activeTab === 'optimization' && (
255
+ <div className="space-y-4">
256
+ <Card className="touch-card">
257
+ <CardHeader>
258
+ <CardTitle className="flex items-center gap-2">
259
+ ⚡ Touch Optimization
260
+ <Badge variant={optimizationState.isOptimized ? 'default' : 'secondary'}>
261
+ {optimizationState.isOptimized ? 'Optimized' : 'Not Optimized'}
262
+ </Badge>
263
+ </CardTitle>
264
+ <CardDescription>
265
+ Monitor touch performance and apply optimizations for better user experience.
266
+ </CardDescription>
267
+ </CardHeader>
268
+ <CardContent className="space-y-4">
269
+ <div className="flex gap-2">
270
+ <Button onClick={applyOptimizations} variant="default" size="sm">
271
+ Apply Optimizations
272
+ </Button>
273
+ <Button onClick={resetOptimizations} variant="outline" size="sm">
274
+ Reset Optimizations
275
+ </Button>
276
+ </div>
277
+
278
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
279
+ {/* Optimization Status */}
280
+ <div className="space-y-3">
281
+ <h4 className="font-semibold">Optimization Status</h4>
282
+ <div className="space-y-2 text-sm">
283
+ <div className="flex justify-between">
284
+ <span>Touch Action:</span>
285
+ <Badge variant="outline">{optimizationState.currentTouchAction}</Badge>
286
+ </div>
287
+ <div className="flex justify-between">
288
+ <span>Passive Listeners:</span>
289
+ <Badge variant={optimizationState.passiveListenersEnabled ? 'default' : 'secondary'}>
290
+ {optimizationState.passiveListenersEnabled ? 'Enabled' : 'Disabled'}
291
+ </Badge>
292
+ </div>
293
+ <div className="flex justify-between">
294
+ <span>Battery Optimization:</span>
295
+ <Badge variant={optimizationState.batteryOptimizationEnabled ? 'default' : 'secondary'}>
296
+ {optimizationState.batteryOptimizationEnabled ? 'Enabled' : 'Disabled'}
297
+ </Badge>
298
+ </div>
299
+ <div className="flex justify-between">
300
+ <span>Throttling:</span>
301
+ <Badge variant={optimizationState.throttlingEnabled ? 'default' : 'secondary'}>
302
+ {optimizationState.throttlingEnabled ? 'Enabled' : 'Disabled'}
303
+ </Badge>
304
+ </div>
305
+ </div>
306
+ </div>
307
+
308
+ {/* Performance Metrics */}
309
+ <div className="space-y-3">
310
+ <h4 className="font-semibold">Performance Metrics</h4>
311
+ <div className="space-y-2 text-sm">
312
+ <div className="flex justify-between">
313
+ <span>Touch Events:</span>
314
+ <span>{performanceMetrics.touchEventCount}</span>
315
+ </div>
316
+ <div className="flex justify-between">
317
+ <span>Avg Duration:</span>
318
+ <span>{performanceMetrics.averageTouchDuration.toFixed(1)}ms</span>
319
+ </div>
320
+ <div className="flex justify-between">
321
+ <span>Latency:</span>
322
+ <span>{performanceMetrics.touchEventLatency.toFixed(1)}ms</span>
323
+ </div>
324
+ <div className="flex justify-between">
325
+ <span>Performance:</span>
326
+ <span className={getPerformanceScoreColor(performanceMetrics.performanceScore)}>
327
+ {performanceMetrics.performanceScore}
328
+ </span>
329
+ </div>
330
+ <div className="flex justify-between">
331
+ <span>Battery Impact:</span>
332
+ <span className={getBatteryImpactColor(performanceMetrics.batteryImpact)}>
333
+ {performanceMetrics.batteryImpact}
334
+ </span>
335
+ </div>
336
+ </div>
337
+ </div>
338
+ </div>
339
+
340
+ {/* Test Area */}
341
+ <div
342
+ ref={optimizationElementRef}
343
+ className="min-h-[200px] border-2 border-dashed border-gray-300 rounded-lg p-4 flex items-center justify-center bg-gray-50 touch-target"
344
+ style={{ touchAction: optimizationState.currentTouchAction }}
345
+ >
346
+ <div className="text-center">
347
+ <div className="text-2xl mb-2">⚡</div>
348
+ <p className="font-medium">Optimization Test Area</p>
349
+ <p className="text-sm text-gray-600">
350
+ Touch here to test optimizations
351
+ </p>
352
+ </div>
353
+ </div>
354
+ </CardContent>
355
+ </Card>
356
+ </div>
357
+ )}
358
+
359
+ {/* Mobile Touch Tab */}
360
+ {activeTab === 'mobile' && (
361
+ <div className="space-y-4">
362
+ <Card className="touch-card">
363
+ <CardHeader>
364
+ <CardTitle className="flex items-center gap-2">
365
+ 📱 Mobile Touch Behaviors
366
+ <Badge variant={mobileTouchState.isActive ? 'default' : 'secondary'}>
367
+ {mobileTouchState.isActive ? 'Active' : 'Inactive'}
368
+ </Badge>
369
+ </CardTitle>
370
+ <CardDescription>
371
+ Experience mobile touch feedback, haptics, and gesture hints.
372
+ </CardDescription>
373
+ </CardHeader>
374
+ <CardContent className="space-y-4">
375
+ <div className="flex gap-2">
376
+ <Button onClick={clearAllGestureHints} variant="outline" size="sm">
377
+ Clear Hints
378
+ </Button>
379
+ </div>
380
+
381
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
382
+ {/* Touch Feedback Status */}
383
+ <div className="space-y-3">
384
+ <h4 className="font-semibold">Touch Feedback Status</h4>
385
+ <div className="space-y-2 text-sm">
386
+ <div className="flex justify-between">
387
+ <span>Touch Count:</span>
388
+ <Badge variant="outline">{mobileTouchState.touchCount}</Badge>
389
+ </div>
390
+ <div className="flex justify-between">
391
+ <span>Feedback Type:</span>
392
+ <Badge variant="outline">{mobileTouchState.currentFeedback.feedbackType}</Badge>
393
+ </div>
394
+ <div className="flex justify-between">
395
+ <span>Intensity:</span>
396
+ <Badge variant="outline">{mobileTouchState.currentFeedback.feedbackIntensity}</Badge>
397
+ </div>
398
+ <div className="flex justify-between">
399
+ <span>Active Hints:</span>
400
+ <Badge variant="outline">{mobileTouchState.activeGestureHints.length}</Badge>
401
+ </div>
402
+ </div>
403
+ {touchFeedback && (
404
+ <div className="p-2 bg-blue-50 border border-blue-200 rounded text-sm">
405
+ {touchFeedback}
406
+ </div>
407
+ )}
408
+ </div>
409
+
410
+ {/* Active Gesture Hints */}
411
+ <div className="space-y-3">
412
+ <h4 className="font-semibold">Active Gesture Hints</h4>
413
+ <div className="max-h-[200px] overflow-y-auto space-y-2">
414
+ {mobileTouchState.activeGestureHints.length === 0 ? (
415
+ <p className="text-gray-500 text-sm">No active hints</p>
416
+ ) : (
417
+ mobileTouchState.activeGestureHints.map((hint: any, index: number) => (
418
+ <div key={index} className="p-2 bg-yellow-50 border border-yellow-200 rounded text-sm">
419
+ <div className="flex justify-between items-start">
420
+ <span className="font-medium">{hint.type}</span>
421
+ <span className="text-xs text-gray-500">
422
+ {new Date(hint.timeout).toLocaleTimeString()}
423
+ </span>
424
+ </div>
425
+ <p className="text-gray-600">{hint.message}</p>
426
+ </div>
427
+ ))
428
+ )}
429
+ </div>
430
+ </div>
431
+ </div>
432
+
433
+ {/* Mobile Touch Test Area */}
434
+ <div
435
+ ref={mobileTouchElementRef}
436
+ className={`min-h-[300px] border-2 border-dashed border-gray-300 rounded-lg p-4 flex items-center justify-center bg-gray-50 touch-target ${getTouchFeedbackClasses()}`}
437
+ >
438
+ <div className="text-center">
439
+ <div className="text-4xl mb-2">📱</div>
440
+ <p className="font-medium">Mobile Touch Test Area</p>
441
+ <p className="text-sm text-gray-600">
442
+ {mobileTouchState.isActive ? 'Touch active' : 'Touch to start'}
443
+ </p>
444
+ <p className="text-xs text-gray-500 mt-2">
445
+ Experience haptic feedback and touch sounds
446
+ </p>
447
+ </div>
448
+ </div>
449
+ </CardContent>
450
+ </Card>
451
+ </div>
452
+ )}
453
+ </div>
454
+ )
455
+ }