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

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