@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.9 → 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
@@ -1,21 +1,42 @@
1
1
  import { useState, useCallback, useRef, useEffect } from 'react'
2
2
 
3
3
  export interface SemanticInputConfig {
4
- type}
4
+ type: string
5
+ inputMode: 'text' | 'email' | 'tel' | 'url' | 'numeric' | 'decimal' | 'search'
6
+ autoCapitalize: 'off' | 'on' | 'sentences' | 'words' | 'characters' | 'none'
7
+ autoComplete: string
8
+ autoCorrect: 'on' | 'off'
9
+ spellCheck: boolean
10
+ pattern?: string
11
+ minLength?: number
12
+ maxLength?: number
13
+ placeholder?: string
14
+ required?: boolean
15
+ disabled?: boolean
16
+ readOnly?: boolean
17
+ tabIndex?: number
18
+ }
5
19
 
6
20
  export interface SemanticInputType {
7
- id}
21
+ id: string
22
+ name: string
23
+ config: SemanticInputConfig
24
+ mobileOptimized: boolean
25
+ touchFriendly: boolean
26
+ accessibilityEnhanced: boolean
27
+ performanceOptimized: boolean
28
+ }
8
29
 
9
30
  export interface SemanticInputTypesCallbacks {
10
- onInputTypeSelected?) => void
11
- onConfigApplied?) => void
12
- onMobileOptimizationApplied?) => void
13
- onTouchOptimizationApplied?) => void
14
- onAccessibilityEnhanced?) => void
31
+ onInputTypeSelected?: (inputType: SemanticInputType) => void
32
+ onConfigApplied?: (config: SemanticInputConfig) => void
33
+ onMobileOptimizationApplied?: (optimization: string) => void
34
+ onTouchOptimizationApplied?: (optimization: string) => void
35
+ onAccessibilityEnhanced?: (feature: string) => void
15
36
  }
16
37
 
17
38
  export const useSemanticInputTypes = (
18
- callbacks= {}
39
+ callbacks: SemanticInputTypesCallbacks = {}
19
40
  ) => {
20
41
  const [inputTypes, setInputTypes] = useState<SemanticInputType[]>([])
21
42
  const [selectedType, setSelectedType] = useState<SemanticInputType | null>(null)
@@ -26,121 +47,142 @@ export const useSemanticInputTypes = (
26
47
  const optimizationTimerRef = useRef<number | null>(null)
27
48
 
28
49
  // Semantic input type configurations
29
- const semanticInputConfigs, SemanticInputConfig> = {
30
- name,
31
- inputMode,
32
- autoCapitalize,
33
- autoComplete,
34
- autoCorrect,
35
- spellCheck,
36
- minLength,
37
- maxLength,
38
- placeholder,
39
- required},
40
- email,
41
- inputMode,
42
- autoCapitalize,
43
- autoComplete,
44
- autoCorrect,
45
- spellCheck,
46
- pattern]+@[a-z0-9.-]+\\.[a-z]{2,}$',
47
- placeholder,
48
- required},
49
- phone,
50
- inputMode,
51
- autoCapitalize,
52
- autoComplete,
53
- autoCorrect,
54
- spellCheck,
55
- pattern)\\s]+',
56
- placeholder,
57
- required},
58
- creditCard,
59
- inputMode,
60
- autoCapitalize,
61
- autoComplete,
62
- autoCorrect,
63
- spellCheck,
64
- pattern]+',
65
- minLength,
66
- maxLength,
67
- placeholder,
68
- required},
69
- amount,
70
- inputMode,
71
- autoCapitalize,
72
- autoComplete,
73
- autoCorrect,
74
- spellCheck,
75
- minLength,
76
- maxLength,
77
- placeholder,
78
- required},
79
- password,
80
- inputMode,
81
- autoCapitalize,
82
- autoComplete,
83
- autoCorrect,
84
- spellCheck,
85
- minLength,
86
- maxLength,
87
- placeholder,
88
- required},
89
- search,
90
- inputMode,
91
- autoCapitalize,
92
- autoComplete,
93
- autoCorrect,
94
- spellCheck,
95
- placeholder,
96
- required},
97
- url,
98
- inputMode,
99
- autoCapitalize,
100
- autoComplete,
101
- autoCorrect,
102
- spellCheck,
103
- placeholder,
104
- required},
105
- username,
106
- inputMode,
107
- autoCapitalize,
108
- autoComplete,
109
- autoCorrect,
110
- spellCheck,
111
- minLength,
112
- maxLength,
113
- placeholder,
114
- required},
115
- address,
116
- inputMode,
117
- autoCapitalize,
118
- autoComplete,
119
- autoCorrect,
120
- spellCheck,
121
- minLength,
122
- maxLength,
123
- placeholder,
124
- required}
50
+ const semanticInputConfigs: Record<string, SemanticInputConfig> = {
51
+ name: {
52
+ type: 'text',
53
+ inputMode: 'text',
54
+ autoCapitalize: 'words',
55
+ autoComplete: 'name',
56
+ autoCorrect: 'on',
57
+ spellCheck: true,
58
+ minLength: 2,
59
+ maxLength: 50,
60
+ placeholder: 'Enter your full name',
61
+ required: true
62
+ },
63
+ email: {
64
+ type: 'email',
65
+ inputMode: 'email',
66
+ autoCapitalize: 'none',
67
+ autoComplete: 'email',
68
+ autoCorrect: 'off',
69
+ spellCheck: false,
70
+ pattern: '[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$',
71
+ placeholder: 'Enter your email address',
72
+ required: true
73
+ },
74
+ phone: {
75
+ type: 'tel',
76
+ inputMode: 'tel',
77
+ autoCapitalize: 'none',
78
+ autoComplete: 'tel',
79
+ autoCorrect: 'off',
80
+ spellCheck: false,
81
+ pattern: '[0-9\\-\\+\\(\\)\\s]+',
82
+ placeholder: 'Enter your phone number',
83
+ required: true
84
+ },
85
+ creditCard: {
86
+ type: 'text',
87
+ inputMode: 'numeric',
88
+ autoCapitalize: 'none',
89
+ autoComplete: 'cc-number',
90
+ autoCorrect: 'off',
91
+ spellCheck: false,
92
+ pattern: '[0-9\\s]+',
93
+ minLength: 13,
94
+ maxLength: 19,
95
+ placeholder: 'Enter card number',
96
+ required: true
97
+ },
98
+ amount: {
99
+ type: 'number',
100
+ inputMode: 'decimal',
101
+ autoCapitalize: 'none',
102
+ autoComplete: 'off',
103
+ autoCorrect: 'off',
104
+ spellCheck: false,
105
+ minLength: 1,
106
+ maxLength: 10,
107
+ placeholder: 'Enter amount',
108
+ required: true
109
+ },
110
+ password: {
111
+ type: 'password',
112
+ inputMode: 'text',
113
+ autoCapitalize: 'none',
114
+ autoComplete: 'current-password',
115
+ autoCorrect: 'off',
116
+ spellCheck: false,
117
+ minLength: 8,
118
+ maxLength: 128,
119
+ placeholder: 'Enter your password',
120
+ required: true
121
+ },
122
+ search: {
123
+ type: 'search',
124
+ inputMode: 'search',
125
+ autoCapitalize: 'none',
126
+ autoComplete: 'off',
127
+ autoCorrect: 'off',
128
+ spellCheck: true,
129
+ placeholder: 'Search...',
130
+ required: false
131
+ },
132
+ url: {
133
+ type: 'url',
134
+ inputMode: 'url',
135
+ autoCapitalize: 'none',
136
+ autoComplete: 'url',
137
+ autoCorrect: 'off',
138
+ spellCheck: false,
139
+ placeholder: 'Enter website URL',
140
+ required: false
141
+ },
142
+ username: {
143
+ type: 'text',
144
+ inputMode: 'text',
145
+ autoCapitalize: 'none',
146
+ autoComplete: 'username',
147
+ autoCorrect: 'off',
148
+ spellCheck: false,
149
+ minLength: 3,
150
+ maxLength: 30,
151
+ placeholder: 'Enter username',
152
+ required: true
153
+ },
154
+ address: {
155
+ type: 'text',
156
+ inputMode: 'text',
157
+ autoCapitalize: 'words',
158
+ autoComplete: 'street-address',
159
+ autoCorrect: 'on',
160
+ spellCheck: true,
161
+ minLength: 10,
162
+ maxLength: 200,
163
+ placeholder: 'Enter your address',
164
+ required: true
165
+ }
125
166
  }
126
167
 
127
168
  // Initialize semantic input types
128
169
  const initializeInputTypes = useCallback(() => {
129
- const types] = Object.entries(semanticInputConfigs).map(([key, config]) => ({
130
- id,
131
- name).toUpperCase() + key.slice(1),
170
+ const types: SemanticInputType[] = Object.entries(semanticInputConfigs).map(([key, config]) => ({
171
+ id: key,
172
+ name: key.charAt(0).toUpperCase() + key.slice(1),
132
173
  config,
133
- mobileOptimized,
134
- touchFriendly,
135
- accessibilityEnhanced,
136
- performanceOptimized}))
174
+ mobileOptimized: true,
175
+ touchFriendly: true,
176
+ accessibilityEnhanced: true,
177
+ performanceOptimized: true
178
+ }))
137
179
 
138
180
  setInputTypes(types)
139
181
  return types
140
182
  }, [])
141
183
 
142
184
  // Select input type
143
- const selectInputType = useCallback((typeId) => {
185
+ const selectInputType = useCallback((typeId: string) => {
144
186
  const type = inputTypes.find(t => t.id === typeId)
145
187
  if (type) {
146
188
  setSelectedType(type)
@@ -151,7 +193,7 @@ export const useSemanticInputTypes = (
151
193
  }, [inputTypes, callbacks])
152
194
 
153
195
  // Apply input configuration
154
- const applyInputConfig = useCallback((config) => {
196
+ const applyInputConfig = useCallback((config: SemanticInputConfig) => {
155
197
  if (inputRef.current) {
156
198
  // Apply all configuration properties
157
199
  Object.entries(config).forEach(([key, value]) => {
@@ -243,13 +285,13 @@ export const useSemanticInputTypes = (
243
285
  }, [selectedType, applyInputConfig, applyMobileOptimization, applyTouchOptimization, enhanceAccessibility])
244
286
 
245
287
  // Get input type by name
246
- const getInputTypeByName = useCallback((name) => {
288
+ const getInputTypeByName = useCallback((name: string) => {
247
289
  return inputTypes.find(t => t.name.toLowerCase() === name.toLowerCase())
248
290
  }, [inputTypes])
249
291
 
250
292
  // Validate input configuration
251
- const validateInputConfig = useCallback((config) => {
252
- const errors] = []
293
+ const validateInputConfig = useCallback((config: SemanticInputConfig) => {
294
+ const errors: string[] = []
253
295
 
254
296
  if (!config.type) errors.push('Input type is required')
255
297
  if (!config.inputMode) errors.push('Input mode is required')
@@ -299,15 +341,15 @@ export const useSemanticInputTypes = (
299
341
  validateInputConfig,
300
342
 
301
343
  // Utility functions
302
- getInputConfig) => semanticInputConfigs[typeId],
303
- isTypeSelected) => selectedType?.id === typeId,
304
- getOptimizationStatus) => ({
305
- mobile=> o.includes('Mobile')),
306
- touch=> o.includes('Touch')),
307
- accessibility=> o.includes('ARIA') || o.includes('Screen reader')),
308
- performance=> o.includes('Performance'))
344
+ getInputConfig: (typeId: string) => semanticInputConfigs[typeId],
345
+ isTypeSelected: (typeId: string) => selectedType?.id === typeId,
346
+ getOptimizationStatus: () => ({
347
+ mobile: optimizations.some(o => o.includes('Mobile')),
348
+ touch: optimizations.some(o => o.includes('Touch')),
349
+ accessibility: optimizations.some(o => o.includes('ARIA') || o.includes('Screen reader')),
350
+ performance: optimizations.some(o => o.includes('Performance'))
309
351
  }),
310
- clearOptimizations) => setOptimizations([])
352
+ clearOptimizations: () => setOptimizations([])
311
353
  }
312
354
  }
313
355