@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
@@ -1,40 +1,62 @@
1
1
  import { useState, useCallback, useEffect, ComponentType, CSSProperties } from 'react'
2
2
 
3
3
  export interface ReusableArchitectureConfig {
4
- enableComponentComposition?}
4
+ enableComponentComposition?: boolean
5
+ enablePatternSharing?: boolean
6
+ enableStyleSharing?: boolean
7
+ enableBehaviorSharing?: boolean
8
+ enableTemplateSystem?: boolean
9
+ enableComponentRegistry?: boolean
10
+ }
5
11
 
6
12
  export interface ComponentTemplate {
7
- id, any>
8
- styles]
9
- patterns]
13
+ id: string
14
+ name: string
15
+ component: ComponentType<any>
16
+ props: Record<string, any>
17
+ styles: CSSProperties
18
+ behaviors: string[]
19
+ patterns: string[]
10
20
  }
11
21
 
12
22
  export interface SharedPattern {
13
- id]
14
- category}
23
+ id: string
24
+ name: string
25
+ description: string
26
+ implementation: string
27
+ usage: string[]
28
+ category: 'composition' | 'styling' | 'behavior' | 'performance'
29
+ }
15
30
 
16
31
  export interface SharedStyle {
17
- id, string>
18
- breakpoints, string>
19
- usage]
32
+ id: string
33
+ name: string
34
+ css: string
35
+ variables: Record<string, string>
36
+ breakpoints: Record<string, string>
37
+ usage: string[]
20
38
  }
21
39
 
22
40
  export interface SharedBehavior {
23
- id]
24
- usage]
41
+ id: string
42
+ name: string
43
+ description: string
44
+ hook: string
45
+ dependencies: string[]
46
+ usage: string[]
25
47
  }
26
48
 
27
49
  export interface ReusableArchitectureCallbacks {
28
- onTemplateCreated?) => void
29
- onPatternShared?) => void
30
- onStyleShared?) => void
31
- onBehaviorShared?) => void
32
- onArchitectureOptimized?) => void
50
+ onTemplateCreated?: (template: ComponentTemplate) => void
51
+ onPatternShared?: (pattern: SharedPattern) => void
52
+ onStyleShared?: (style: SharedStyle) => void
53
+ onBehaviorShared?: (behavior: SharedBehavior) => void
54
+ onArchitectureOptimized?: (optimization: string) => void
33
55
  }
34
56
 
35
57
  export const useReusableArchitecture = (
36
- config= {},
37
- callbacks= {}
58
+ config: ReusableArchitectureConfig = {},
59
+ callbacks: ReusableArchitectureCallbacks = {}
38
60
  ) => {
39
61
  const {
40
62
  enableComponentComposition = true,
@@ -54,8 +76,8 @@ export const useReusableArchitecture = (
54
76
 
55
77
  // Component composition
56
78
  const composeComponent = useCallback((
57
- baseComponent,
58
- enhancements) => ComponentType<any>>
79
+ baseComponent: ComponentType<any>,
80
+ enhancements: Array<(Component: ComponentType<any>) => ComponentType<any>>
59
81
  ) => {
60
82
  if (!enableComponentComposition) return baseComponent
61
83
 
@@ -74,12 +96,12 @@ export const useReusableArchitecture = (
74
96
 
75
97
  // Template system
76
98
  const createTemplate = useCallback((
77
- template, 'id'>
99
+ template: Omit<ComponentTemplate, 'id'>
78
100
  ) => {
79
101
  if (!enableTemplateSystem) return null
80
102
 
81
103
  const id = `template-${Date.now()}`
82
- const newTemplate= {
104
+ const newTemplate: ComponentTemplate = {
83
105
  ...template,
84
106
  id
85
107
  }
@@ -92,13 +114,14 @@ export const useReusableArchitecture = (
92
114
  return id
93
115
  }, [enableTemplateSystem, templates, callbacks])
94
116
 
95
- const getTemplate = useCallback((id) => {
117
+ const getTemplate = useCallback((id: string) => {
96
118
  return templates.get(id)
97
119
  }, [templates])
98
120
 
99
121
  const updateTemplate = useCallback((
100
- id,
101
- updates) => {
122
+ id: string,
123
+ updates: Partial<ComponentTemplate>
124
+ ) => {
102
125
  const template = templates.get(id)
103
126
  if (!template) return false
104
127
 
@@ -109,7 +132,7 @@ export const useReusableArchitecture = (
109
132
  return true
110
133
  }, [templates])
111
134
 
112
- const deleteTemplate = useCallback((id) => {
135
+ const deleteTemplate = useCallback((id: string) => {
113
136
  const deleted = templates.delete(id)
114
137
  if (deleted) {
115
138
  setTemplates(new Map(templates))
@@ -119,12 +142,12 @@ export const useReusableArchitecture = (
119
142
 
120
143
  // Pattern sharing
121
144
  const sharePattern = useCallback((
122
- pattern, 'id'>
145
+ pattern: Omit<SharedPattern, 'id'>
123
146
  ) => {
124
147
  if (!enablePatternSharing) return null
125
148
 
126
149
  const id = `pattern-${Date.now()}`
127
- const newPattern= {
150
+ const newPattern: SharedPattern = {
128
151
  ...pattern,
129
152
  id
130
153
  }
@@ -137,22 +160,22 @@ export const useReusableArchitecture = (
137
160
  return id
138
161
  }, [enablePatternSharing, sharedPatterns, callbacks])
139
162
 
140
- const getPattern = useCallback((id) => {
163
+ const getPattern = useCallback((id: string) => {
141
164
  return sharedPatterns.get(id)
142
165
  }, [sharedPatterns])
143
166
 
144
- const findPatternsByCategory = useCallback((category) => {
167
+ const findPatternsByCategory = useCallback((category: string) => {
145
168
  return Array.from(sharedPatterns.values()).filter(pattern => pattern.category === category)
146
169
  }, [sharedPatterns])
147
170
 
148
171
  // Style sharing
149
172
  const shareStyle = useCallback((
150
- style, 'id'>
173
+ style: Omit<SharedStyle, 'id'>
151
174
  ) => {
152
175
  if (!enableStyleSharing) return null
153
176
 
154
177
  const id = `style-${Date.now()}`
155
- const newStyle= {
178
+ const newStyle: SharedStyle = {
156
179
  ...style,
157
180
  id
158
181
  }
@@ -165,13 +188,14 @@ export const useReusableArchitecture = (
165
188
  return id
166
189
  }, [enableStyleSharing, sharedStyles, callbacks])
167
190
 
168
- const getStyle = useCallback((id) => {
191
+ const getStyle = useCallback((id: string) => {
169
192
  return sharedStyles.get(id)
170
193
  }, [sharedStyles])
171
194
 
172
195
  const applyStyle = useCallback((
173
- styleId,
174
- targetComponent) => {
196
+ styleId: string,
197
+ targetComponent: string
198
+ ) => {
175
199
  const style = sharedStyles.get(styleId)
176
200
  if (!style) return false
177
201
 
@@ -187,12 +211,12 @@ export const useReusableArchitecture = (
187
211
 
188
212
  // Behavior sharing
189
213
  const shareBehavior = useCallback((
190
- behavior, 'id'>
214
+ behavior: Omit<SharedBehavior, 'id'>
191
215
  ) => {
192
216
  if (!enableBehaviorSharing) return null
193
217
 
194
218
  const id = `behavior-${Date.now()}`
195
- const newBehavior= {
219
+ const newBehavior: SharedBehavior = {
196
220
  ...behavior,
197
221
  id
198
222
  }
@@ -205,13 +229,14 @@ export const useReusableArchitecture = (
205
229
  return id
206
230
  }, [enableBehaviorSharing, sharedBehaviors, callbacks])
207
231
 
208
- const getBehavior = useCallback((id) => {
232
+ const getBehavior = useCallback((id: string) => {
209
233
  return sharedBehaviors.get(id)
210
234
  }, [sharedBehaviors])
211
235
 
212
236
  const applyBehavior = useCallback((
213
- behaviorId,
214
- targetComponent) => {
237
+ behaviorId: string,
238
+ targetComponent: string
239
+ ) => {
215
240
  const behavior = sharedBehaviors.get(behaviorId)
216
241
  if (!behavior) return false
217
242
 
@@ -227,21 +252,25 @@ export const useReusableArchitecture = (
227
252
 
228
253
  // Component registry
229
254
  const registerComponent = useCallback((
230
- id,
231
- component,
232
- metadata]
255
+ id: string,
256
+ component: ComponentType<any>,
257
+ metadata: {
258
+ name: string
259
+ description: string
260
+ category: string
261
+ tags: string[]
233
262
  }
234
263
  ) => {
235
264
  if (!enableComponentRegistry) return false
236
265
 
237
- const template= {
266
+ const template: ComponentTemplate = {
238
267
  id,
239
- name,
268
+ name: metadata.name,
240
269
  component,
241
- props},
242
- styles},
243
- behaviors],
244
- patterns]
270
+ props: {},
271
+ styles: {},
272
+ behaviors: [],
273
+ patterns: []
245
274
  }
246
275
 
247
276
  templates.set(id, template)
@@ -253,13 +282,13 @@ export const useReusableArchitecture = (
253
282
  // Architecture analysis
254
283
  const analyzeArchitecture = useCallback(() => {
255
284
  const analysis = {
256
- totalTemplates,
257
- totalPatterns,
258
- totalStyles,
259
- totalBehaviors,
260
- compositionLevel,
261
- reusabilityScore,
262
- recommendations] as string[]
285
+ totalTemplates: templates.size,
286
+ totalPatterns: sharedPatterns.size,
287
+ totalStyles: sharedStyles.size,
288
+ totalBehaviors: sharedBehaviors.size,
289
+ compositionLevel: 'none' as 'none' | 'basic' | 'intermediate' | 'advanced',
290
+ reusabilityScore: 0,
291
+ recommendations: [] as string[]
263
292
  }
264
293
 
265
294
  // Calculate composition level
@@ -335,10 +364,10 @@ export const useReusableArchitecture = (
335
364
 
336
365
  return {
337
366
  // State
338
- templates)),
339
- sharedPatterns)),
340
- sharedStyles)),
341
- sharedBehaviors)),
367
+ templates: Array.from(templates.values()),
368
+ sharedPatterns: Array.from(sharedPatterns.values()),
369
+ sharedStyles: Array.from(sharedStyles.values()),
370
+ sharedBehaviors: Array.from(sharedBehaviors.values()),
342
371
  isOptimizing,
343
372
  optimizations,
344
373
 
@@ -374,11 +403,11 @@ export const useReusableArchitecture = (
374
403
  optimizeArchitecture,
375
404
 
376
405
  // Utility functions
377
- hasTemplate) => templates.has(id),
378
- hasPattern) => sharedPatterns.has(id),
379
- hasStyle) => sharedStyles.has(id),
380
- hasBehavior) => sharedBehaviors.has(id),
381
- clearOptimizations) => setOptimizations([])
406
+ hasTemplate: (id: string) => templates.has(id),
407
+ hasPattern: (id: string) => sharedPatterns.has(id),
408
+ hasStyle: (id: string) => sharedStyles.has(id),
409
+ hasBehavior: (id: string) => sharedBehaviors.has(id),
410
+ clearOptimizations: () => setOptimizations([])
382
411
  }
383
412
  }
384
413
 
@@ -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