@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
@@ -7,7 +7,7 @@ import {
7
7
  } from './types';
8
8
 
9
9
  // Simple icon components (inline SVG)
10
- const ChevronRightIcon}> = ({ className = '' }) => (
10
+ const ChevronRightIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
11
11
  <svg
12
12
  className={`tree__icon ${className}`}
13
13
  fill="none"
@@ -18,7 +18,7 @@ const ChevronRightIcon}> = ({ className = '' }) => (
18
18
  </svg>
19
19
  );
20
20
 
21
- const ChevronDownIcon}> = ({ className = '' }) => (
21
+ const ChevronDownIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
22
22
  <svg
23
23
  className={`tree__icon ${className}`}
24
24
  fill="none"
@@ -29,7 +29,7 @@ const ChevronDownIcon}> = ({ className = '' }) => (
29
29
  </svg>
30
30
  );
31
31
 
32
- const SearchIcon}> = ({ className = '' }) => (
32
+ const SearchIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
33
33
  <svg
34
34
  className={`tree__icon ${className}`}
35
35
  fill="none"
@@ -40,7 +40,7 @@ const SearchIcon}> = ({ className = '' }) => (
40
40
  </svg>
41
41
  );
42
42
 
43
- const FilterIcon}> = ({ className = '' }) => (
43
+ const FilterIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
44
44
  <svg
45
45
  className={`tree__icon ${className}`}
46
46
  fill="none"
@@ -51,7 +51,7 @@ const FilterIcon}> = ({ className = '' }) => (
51
51
  </svg>
52
52
  );
53
53
 
54
- const FolderIcon}> = ({ className = '' }) => (
54
+ const FolderIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
55
55
  <svg
56
56
  className={`tree__icon ${className}`}
57
57
  fill="none"
@@ -62,7 +62,7 @@ const FolderIcon}> = ({ className = '' }) => (
62
62
  </svg>
63
63
  );
64
64
 
65
- const DocumentIcon}> = ({ className = '' }) => (
65
+ const DocumentIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
66
66
  <svg
67
67
  className={`tree__icon ${className}`}
68
68
  fill="none"
@@ -73,7 +73,7 @@ const DocumentIcon}> = ({ className = '' }) => (
73
73
  </svg>
74
74
  );
75
75
 
76
- const CheckIcon}> = ({ className = '' }) => (
76
+ const CheckIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
77
77
  <svg
78
78
  className={`tree__icon ${className}`}
79
79
  fill="none"
@@ -84,7 +84,7 @@ const CheckIcon}> = ({ className = '' }) => (
84
84
  </svg>
85
85
  );
86
86
 
87
- const MinusIcon}> = ({ className = '' }) => (
87
+ const MinusIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
88
88
  <svg
89
89
  className={`tree__icon ${className}`}
90
90
  fill="none"
@@ -97,35 +97,44 @@ const MinusIcon}> = ({ className = '' }) => (
97
97
 
98
98
  // Default color fallbacks for when theme is not available
99
99
  const getDefaultColors = () => ({
100
- surface,
101
- surface,
102
- border,
103
- divider},
104
- text,
105
- secondary,
106
- muted,
107
- inverse,
108
- onPrimary,
109
- onSecondary,
110
- onSurface},
111
- interactive,
112
- active,
113
- focus,
114
- disabled},
115
- primary},
116
- semantic,
117
- warning,
118
- error,
119
- info}
100
+ surface: {
101
+ background: '#ffffff',
102
+ surface: '#f3f4f6',
103
+ border: '#d1d5db',
104
+ divider: '#e5e7eb'
105
+ },
106
+ text: {
107
+ primary: '#111827',
108
+ secondary: '#6b7280',
109
+ muted: '#9ca3af',
110
+ inverse: '#ffffff',
111
+ onPrimary: '#ffffff',
112
+ onSecondary: '#ffffff',
113
+ onSurface: '#111827'
114
+ },
115
+ interactive: {
116
+ hover: '#f3f4f6',
117
+ active: '#e5e7eb',
118
+ focus: '#3b82f6',
119
+ disabled: '#d1d5db'
120
+ },
121
+ primary: { 500: '#3b82f6' },
122
+ semantic: {
123
+ success: '#10b981',
124
+ warning: '#f59e0b',
125
+ error: '#ef4444',
126
+ info: '#3b82f6'
127
+ }
120
128
  });
121
129
 
122
130
  // Tree Search Bar
123
- const TreeSearchBar;
124
- searchValue;
125
- onSearchChange) => void;
126
- filterable;
127
- theme;
128
- size;
131
+ const TreeSearchBar: React.FC<{
132
+ searchable: boolean;
133
+ searchValue: string;
134
+ onSearchChange: (value: string) => void;
135
+ filterable: boolean;
136
+ theme: string;
137
+ size: 'sm' | 'md' | 'lg';
129
138
  }> = ({
130
139
  searchable,
131
140
  searchValue,
@@ -139,9 +148,10 @@ const TreeSearchBar;
139
148
  const colors = themeConfig?.colors || getDefaultColors();
140
149
 
141
150
  const sizeClasses = {
142
- sm,
143
- md,
144
- lg};
151
+ sm: 'h-8 text-sm px-3',
152
+ md: 'h-10 text-base px-4',
153
+ lg: 'h-12 text-lg px-5'
154
+ };
145
155
 
146
156
  if (!searchable && !filterable) return null;
147
157
 
@@ -159,9 +169,10 @@ const TreeSearchBar;
159
169
  placeholder="Search nodes..."
160
170
  className={`w-full ${sizeClasses[size]} pl-10 pr-4 rounded-lg border outline-none`}
161
171
  style={{
162
- backgroundColor,
163
- border}`,
164
- color}}
172
+ backgroundColor: colors.surface.background,
173
+ border: `1px solid ${colors.surface.border}`,
174
+ color: colors.text.primary
175
+ }}
165
176
  onFocus={(e) => {
166
177
  e.target.style.borderColor = colors.primary[500];
167
178
  e.target.style.boxShadow = `0 0 0 3px ${colors.primary[500]}20`;
@@ -185,7 +196,7 @@ const TreeSearchBar;
185
196
  };
186
197
 
187
198
  // Individual Tree Item Component
188
- const TreeItem= ({
199
+ const TreeItem: React.FC<TreeItemProps> = ({
189
200
  node,
190
201
  level = 0,
191
202
  expandedKeys,
@@ -198,7 +209,11 @@ const TreeItem= ({
198
209
  theme,
199
210
  size,
200
211
  variant,
201
- // draggable = false, // TODO, // TODO, // TODO, // TODO= true,
212
+ // draggable = false, // TODO: Implement drag and drop
213
+ // onDragStart, // TODO: Implement drag and drop
214
+ // onDragEnd, // TODO: Implement drag and drop
215
+ // onDrop, // TODO: Implement drag and drop
216
+ showLines = true,
202
217
  showIcons = true
203
218
  }) => {
204
219
  // const { getTheme } = useTheme();
@@ -211,30 +226,32 @@ const TreeItem= ({
211
226
  const isClickable = !!onClick;
212
227
 
213
228
  const iconSizes = {
214
- sm,
215
- md,
216
- lg};
229
+ sm: 'w-3 h-3',
230
+ md: 'w-4 h-4',
231
+ lg: 'w-5 h-5'
232
+ };
217
233
 
218
234
  const indentWidth = {
219
- sm,
220
- md,
221
- lg};
235
+ sm: 16,
236
+ md: 20,
237
+ lg: 24
238
+ };
222
239
 
223
- const handleToggleExpand = (e) => {
240
+ const handleToggleExpand = (e: React.MouseEvent) => {
224
241
  e.stopPropagation();
225
242
  if (hasChildren && expandable) {
226
243
  onToggleExpand?.(node.id, !isExpanded);
227
244
  }
228
245
  };
229
246
 
230
- const handleSelectionChange = (e) => {
247
+ const handleSelectionChange = (e: React.MouseEvent) => {
231
248
  e.stopPropagation();
232
249
  if (selectable) {
233
250
  onSelectionChange?.(node.id, !isSelected);
234
251
  }
235
252
  };
236
253
 
237
- const handleClick = (e) => {
254
+ const handleClick = (e: React.MouseEvent) => {
238
255
  if (isClickable) {
239
256
  onClick?.(node, e);
240
257
  }
@@ -270,10 +287,11 @@ const TreeItem= ({
270
287
  return (
271
288
  <>
272
289
  <div
273
- className={`tree__node tree__node--${size} ${variant !== 'default' ? `tree__node--${variant}` } ${
274
- isSelected ? 'tree__node--selected' } ${isClickable ? 'tree__node--clickable' }`}
290
+ className={`tree__node tree__node--${size} ${variant !== 'default' ? `tree__node--${variant}` : ''} ${
291
+ isSelected ? 'tree__node--selected' : ''
292
+ } ${isClickable ? 'tree__node--clickable' : ''}`}
275
293
  style={{
276
- paddingLeft] + 12}px`
294
+ paddingLeft: `${level * indentWidth[size] + 12}px`
277
295
  }}
278
296
  onClick={handleClick}
279
297
  >
@@ -282,7 +300,7 @@ const TreeItem= ({
282
300
  <div
283
301
  className="tree__line"
284
302
  style={{
285
- left) * indentWidth[size] + 12 + indentWidth[size] / 2 - 1}px`
303
+ left: `${(level - 1) * indentWidth[size] + 12 + indentWidth[size] / 2 - 1}px`
286
304
  }}
287
305
  />
288
306
  )}
@@ -294,14 +312,16 @@ const TreeItem= ({
294
312
  onClick={handleToggleExpand}
295
313
  className={`tree__node-toggle tree__node-toggle--${size}`}
296
314
  >
297
- <div className={`tree__expand-icon ${isExpanded ? 'tree__expand-icon--expanded' }`}>
315
+ <div className={`tree__expand-icon ${isExpanded ? 'tree__expand-icon--expanded' : ''}`}>
298
316
  {isExpanded ? (
299
317
  <ChevronDownIcon className={`tree__icon tree__icon--${size}`} />
300
- ) ={`tree__icon tree__icon--${size}`} />
318
+ ) : (
319
+ <ChevronRightIcon className={`tree__icon tree__icon--${size}`} />
301
320
  )}
302
321
  </div>
303
322
  </button>
304
- ) ={`tree__node-spacer tree__node-spacer--${size}`} />
323
+ ) : (
324
+ <div className={`tree__node-spacer tree__node-spacer--${size}`} />
305
325
  )}
306
326
  </div>
307
327
 
@@ -311,8 +331,10 @@ const TreeItem= ({
311
331
  <button
312
332
  onClick={handleSelectionChange}
313
333
  className={`tree__checkbox-input ${
314
- checkboxState ? 'tree__checkbox-input--checked' } ${
315
- checkboxState === 'indeterminate' ? 'tree__checkbox-input--indeterminate' }`}
334
+ checkboxState ? 'tree__checkbox-input--checked' : ''
335
+ } ${
336
+ checkboxState === 'indeterminate' ? 'tree__checkbox-input--indeterminate' : ''
337
+ }`}
316
338
  >
317
339
  {checkboxState === true && <CheckIcon className="tree__checkbox-icon" />}
318
340
  {checkboxState === 'indeterminate' && <MinusIcon className="tree__checkbox-icon" />}
@@ -332,7 +354,8 @@ const TreeItem= ({
332
354
  <div className="tree__node-main">
333
355
  <div className="tree__node-text">
334
356
  <span className={`tree__node-label ${
335
- isSelected ? 'tree__node-label--selected' }`}>
357
+ isSelected ? 'tree__node-label--selected' : ''
358
+ }`}>
336
359
  {node.label}
337
360
  </span>
338
361
  {node.description && (
@@ -390,7 +413,7 @@ const TreeItem= ({
390
413
  };
391
414
 
392
415
  // Main Tree Component
393
- export const Tree= ({
416
+ export const Tree: React.FC<TreeProps> = ({
394
417
  data,
395
418
  expandedKeys = [],
396
419
  selectedKeys = [],
@@ -399,11 +422,17 @@ export const Tree= ({
399
422
  onNodeClick,
400
423
  selectable = false,
401
424
  expandable = true,
402
- // draggable = false, // TODO, // TODO, // TODO, // TODO= false,
425
+ // draggable = false, // TODO: Implement drag and drop
426
+ // onDragStart, // TODO: Implement drag and drop
427
+ // onDragEnd, // TODO: Implement drag and drop
428
+ // onDrop, // TODO: Implement drag and drop
429
+ searchable = false,
403
430
  searchValue = '',
404
431
  onSearchChange,
405
432
  filterable = false,
406
- // filters = [], // TODO, // TODO= true,
433
+ // filters = [], // TODO: Implement filter functionality
434
+ // onFiltersChange, // TODO: Implement filter functionality
435
+ showLines = true,
407
436
  showIcons = true,
408
437
  expandAll = false,
409
438
  collapseAll = false,
@@ -425,22 +454,23 @@ export const Tree= ({
425
454
 
426
455
  const searchLower = searchValue.toLowerCase();
427
456
 
428
- const filterNode = (node)=> {
457
+ const filterNode = (node: TreeNode): TreeNode | null => {
429
458
  const matchesSearch = node.label.toLowerCase().includes(searchLower) ||
430
459
  node.description?.toLowerCase().includes(searchLower);
431
460
 
432
- let filteredChildren] = [];
461
+ let filteredChildren: TreeNode[] = [];
433
462
  if (node.children) {
434
463
  filteredChildren = node.children
435
464
  .map(child => filterNode(child))
436
- .filter((child)=> child !== null);
465
+ .filter((child): child is TreeNode => child !== null);
437
466
  }
438
467
 
439
468
  // Include node if it matches search OR has matching children
440
469
  if (matchesSearch || filteredChildren.length > 0) {
441
470
  return {
442
471
  ...node,
443
- children};
472
+ children: filteredChildren.length > 0 ? filteredChildren : node.children
473
+ };
444
474
  }
445
475
 
446
476
  return null;
@@ -448,15 +478,15 @@ export const Tree= ({
448
478
 
449
479
  return data
450
480
  .map(node => filterNode(node))
451
- .filter((node)=> node !== null);
481
+ .filter((node): node is TreeNode => node !== null);
452
482
  }, [data, searchable, searchValue]);
453
483
 
454
484
  // Auto-expand all nodes when expandAll changes
455
485
  React.useEffect(() => {
456
486
  if (expandAll) {
457
- const getAllNodeIds = (nodes])] => {
458
- const ids] = [];
459
- const traverse = (nodeList]) => {
487
+ const getAllNodeIds = (nodes: TreeNode[]): string[] => {
488
+ const ids: string[] = [];
489
+ const traverse = (nodeList: TreeNode[]) => {
460
490
  nodeList.forEach(node => {
461
491
  if (node.children && node.children.length > 0) {
462
492
  ids.push(node.id);
@@ -480,18 +510,18 @@ export const Tree= ({
480
510
  }
481
511
  }, [collapseAll, onExpandedKeysChange]);
482
512
 
483
- const handleToggleExpand = useCallback((nodeId, expanded) => {
513
+ const handleToggleExpand = useCallback((nodeId: string, expanded: boolean) => {
484
514
  const newExpandedKeys = expanded
485
515
  ? [...expandedKeys, nodeId]
486
- => key !== nodeId);
516
+ : expandedKeys.filter(key => key !== nodeId);
487
517
 
488
518
  onExpandedKeysChange?.(newExpandedKeys);
489
519
  }, [expandedKeys, onExpandedKeysChange]);
490
520
 
491
- const handleSelectionChange = useCallback((nodeId, selected) => {
521
+ const handleSelectionChange = useCallback((nodeId: string, selected: boolean) => {
492
522
  const newSelectedKeys = selected
493
523
  ? [...selectedKeys, nodeId]
494
- => key !== nodeId);
524
+ : selectedKeys.filter(key => key !== nodeId);
495
525
 
496
526
  onSelectedKeysChange?.(newSelectedKeys);
497
527
  }, [selectedKeys, onSelectedKeysChange]);
@@ -500,7 +530,7 @@ export const Tree= ({
500
530
  return (
501
531
  <div
502
532
  className={`p-8 text-center ${className}`}
503
- style={{ color}}
533
+ style={{ color: colors.text.muted }}
504
534
  >
505
535
  Loading...
506
536
  </div>
@@ -512,10 +542,11 @@ export const Tree= ({
512
542
  <div
513
543
  className={`p-8 text-center ${className}`}
514
544
  style={{
515
- color,
516
- backgroundColor,
517
- border}30`,
518
- borderRadius}}
545
+ color: colors.semantic.error,
546
+ backgroundColor: colors.semantic.error + '10',
547
+ border: `1px solid ${colors.semantic.error}30`,
548
+ borderRadius: '8px'
549
+ }}
519
550
  >
520
551
  {error}
521
552
  </div>
@@ -523,7 +554,7 @@ export const Tree= ({
523
554
  }
524
555
 
525
556
  return (
526
- <div className={`tree__container tree__container--${size} ${variant !== 'default' ? `tree__container--${variant}` } ${className}`}>
557
+ <div className={`tree__container tree__container--${size} ${variant !== 'default' ? `tree__container--${variant}` : ''} ${className}`}>
527
558
  {/* Search Bar */}
528
559
  <TreeSearchBar
529
560
  searchable={searchable}
@@ -535,12 +566,13 @@ export const Tree= ({
535
566
  />
536
567
 
537
568
  {/* Tree */}
538
- <div className={`tree__tree tree__tree--${size} ${variant !== 'default' ? `tree__tree--${variant}` }`}>
569
+ <div className={`tree__tree tree__tree--${size} ${variant !== 'default' ? `tree__tree--${variant}` : ''}`}>
539
570
  {filteredData.length === 0 ? (
540
571
  <div className="tree__empty">
541
572
  {emptyMessage}
542
573
  </div>
543
- ) ="tree__nodes">
574
+ ) : (
575
+ <div className="tree__nodes">
544
576
  {filteredData.map((node) => (
545
577
  <TreeItem
546
578
  key={node.id}