@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
@@ -8,39 +8,39 @@ import React from 'react';
8
8
  // ============================================================================
9
9
 
10
10
  export interface DataDisplayBaseProps {
11
- className?;
12
- theme?;
13
- size?;
14
- variant?;
15
- loading?;
16
- error?;
17
- emptyMessage?;
11
+ className?: string;
12
+ theme?: 'stan-design' | 'enterprise' | 'harvey';
13
+ size?: 'sm' | 'md' | 'lg';
14
+ variant?: 'default' | 'bordered' | 'striped';
15
+ loading?: boolean;
16
+ error?: string | null;
17
+ emptyMessage?: string;
18
18
  }
19
19
 
20
20
  export interface SortableColumn {
21
- key;
22
- label;
23
- sortable?;
24
- width?;
25
- align?;
21
+ key: string;
22
+ label: string;
23
+ sortable?: boolean;
24
+ width?: string | number;
25
+ align?: 'left' | 'center' | 'right';
26
26
  }
27
27
 
28
28
  export interface SortConfig {
29
- key;
30
- direction;
29
+ key: string;
30
+ direction: 'asc' | 'desc';
31
31
  }
32
32
 
33
33
  export interface PaginationConfig {
34
- currentPage;
35
- pageSize;
36
- totalItems;
37
- pageSizeOptions?];
34
+ currentPage: number;
35
+ pageSize: number;
36
+ totalItems: number;
37
+ pageSizeOptions?: number[];
38
38
  }
39
39
 
40
40
  export interface FilterConfig {
41
- key;
42
- value;
43
- operator;
41
+ key: string;
42
+ value: string | number | boolean;
43
+ operator: 'equals' | 'contains' | 'starts_with' | 'ends_with' | 'greater_than' | 'less_than';
44
44
  }
45
45
 
46
46
  // ============================================================================
@@ -48,44 +48,44 @@ export interface FilterConfig {
48
48
  // ============================================================================
49
49
 
50
50
  export interface TableProps extends DataDisplayBaseProps {
51
- columns];
52
- data, any>[];
53
- sortable?;
54
- selectable?;
55
- expandable?;
56
- onSort?) => void;
57
- onSelectionChange?]) => void;
58
- onRowClick?, any>, index) => void;
59
- onRowExpand?, any>, expanded) => void;
60
- selectedKeys?];
61
- expandedKeys?];
62
- sortConfig?;
63
- pagination?;
64
- onPageChange?) => void;
65
- onPageSizeChange?) => void;
66
- filters?];
67
- onFiltersChange?]) => void;
68
- searchable?;
69
- searchValue?;
70
- onSearchChange?) => void;
71
- rowKey?, any>) => string);
72
- loading?;
73
- error?;
74
- emptyMessage?;
51
+ columns: SortableColumn[];
52
+ data: Record<string, any>[];
53
+ sortable?: boolean;
54
+ selectable?: boolean;
55
+ expandable?: boolean;
56
+ onSort?: (config: SortConfig) => void;
57
+ onSelectionChange?: (selectedKeys: string[]) => void;
58
+ onRowClick?: (row: Record<string, any>, index: number) => void;
59
+ onRowExpand?: (row: Record<string, any>, expanded: boolean) => void;
60
+ selectedKeys?: string[];
61
+ expandedKeys?: string[];
62
+ sortConfig?: SortConfig;
63
+ pagination?: PaginationConfig;
64
+ onPageChange?: (page: number) => void;
65
+ onPageSizeChange?: (pageSize: number) => void;
66
+ filters?: FilterConfig[];
67
+ onFiltersChange?: (filters: FilterConfig[]) => void;
68
+ searchable?: boolean;
69
+ searchValue?: string;
70
+ onSearchChange?: (value: string) => void;
71
+ rowKey?: string | ((row: Record<string, any>) => string);
72
+ loading?: boolean;
73
+ error?: string | null;
74
+ emptyMessage?: string;
75
75
  }
76
76
 
77
77
  export interface TableRowProps {
78
- row, any>;
79
- index;
80
- columns];
81
- selected;
82
- expanded;
83
- onSelect) => void;
84
- onExpand) => void;
85
- onClick) => void;
86
- theme;
87
- size;
88
- variant;
78
+ row: Record<string, any>;
79
+ index: number;
80
+ columns: SortableColumn[];
81
+ selected: boolean;
82
+ expanded: boolean;
83
+ onSelect: (checked: boolean) => void;
84
+ onExpand: () => void;
85
+ onClick: () => void;
86
+ theme: 'stan-design' | 'enterprise' | 'harvey';
87
+ size: 'sm' | 'md' | 'lg';
88
+ variant: 'default' | 'bordered' | 'striped' | 'compact';
89
89
  }
90
90
 
91
91
  // ============================================================================
@@ -93,47 +93,47 @@ export interface TableRowProps {
93
93
  // ============================================================================
94
94
 
95
95
  export interface DataGridProps extends DataDisplayBaseProps {
96
- columns];
97
- data, any>[];
98
- sortable?;
99
- filterable?;
100
- groupable?;
101
- resizable?;
102
- reorderable?;
103
- onSort?) => void;
104
- onFiltersChange?]) => void;
105
- onGroupChange?]) => void;
106
- onColumnResize?, newWidth) => void;
107
- onColumnReorder?, toIndex) => void;
108
- sortConfig?;
109
- filters?];
110
- groups?];
111
- columnWidths?, number>;
112
- columnOrder?];
113
- pagination?;
114
- onPageChange?) => void;
115
- onPageSizeChange?) => void;
116
- searchable?;
117
- searchValue?;
118
- onSearchChange?) => void;
119
- rowKey?, any>) => string);
120
- selectable?;
121
- onSelectionChange?]) => void;
122
- selectedKeys?];
123
- loading?;
124
- error?;
125
- emptyMessage?;
96
+ columns: SortableColumn[];
97
+ data: Record<string, any>[];
98
+ sortable?: boolean;
99
+ filterable?: boolean;
100
+ groupable?: boolean;
101
+ resizable?: boolean;
102
+ reorderable?: boolean;
103
+ onSort?: (config: SortConfig) => void;
104
+ onFiltersChange?: (filters: FilterConfig[]) => void;
105
+ onGroupChange?: (groups: string[]) => void;
106
+ onColumnResize?: (columnKey: string, newWidth: number) => void;
107
+ onColumnReorder?: (fromIndex: number, toIndex: number) => void;
108
+ sortConfig?: SortConfig;
109
+ filters?: FilterConfig[];
110
+ groups?: string[];
111
+ columnWidths?: Record<string, number>;
112
+ columnOrder?: string[];
113
+ pagination?: PaginationConfig;
114
+ onPageChange?: (page: number) => void;
115
+ onPageSizeChange?: (pageSize: number) => void;
116
+ searchable?: boolean;
117
+ searchValue?: string;
118
+ onSearchChange?: (value: string) => void;
119
+ rowKey?: string | ((row: Record<string, any>) => string);
120
+ selectable?: boolean;
121
+ onSelectionChange?: (selectedKeys: string[]) => void;
122
+ selectedKeys?: string[];
123
+ loading?: boolean;
124
+ error?: string | null;
125
+ emptyMessage?: string;
126
126
  }
127
127
 
128
128
  export interface DataGridColumnProps {
129
- column;
130
- index;
131
- onSort) => void;
132
- onResize) => void;
133
- sortConfig?;
134
- theme;
135
- size;
136
- resizable;
129
+ column: SortableColumn;
130
+ index: number;
131
+ onSort: () => void;
132
+ onResize: (width: number) => void;
133
+ sortConfig?: SortConfig;
134
+ theme: 'stan-design' | 'enterprise' | 'harvey';
135
+ size: 'sm' | 'md' | 'lg';
136
+ resizable: boolean;
137
137
  }
138
138
 
139
139
  // ============================================================================
@@ -141,67 +141,68 @@ export interface DataGridColumnProps {
141
141
  // ============================================================================
142
142
 
143
143
  export interface ListProps extends DataDisplayBaseProps {
144
- items];
145
- selectable?;
146
- multiSelect?;
147
- onSelectionChange?]) => void;
148
- selectedKeys?];
149
- onClick?, index) => void;
150
- onItemClick?, index) => void;
151
- onItemAction?, item) => void;
152
- actions?];
153
- itemRenderer?, index) => React.ReactNode;
154
- searchable?;
155
- searchValue?;
156
- onSearchChange?) => void;
157
- filterable?;
158
- filters?];
159
- onFiltersChange?]) => void;
160
- sortable?;
161
- sortConfig?;
162
- onSort?) => void;
163
- pagination?;
164
- onPageChange?) => void;
165
- onPageSizeChange?) => void;
166
- showDividers?;
167
- loading?;
168
- error?;
169
- emptyMessage?;
144
+ items: ListItem[];
145
+ selectable?: boolean;
146
+ multiSelect?: boolean;
147
+ onSelectionChange?: (selectedKeys: string[]) => void;
148
+ selectedKeys?: string[];
149
+ onClick?: (item: ListItem, index: number) => void;
150
+ onItemClick?: (item: ListItem, index: number) => void;
151
+ onItemAction?: (action: string, item: ListItem) => void;
152
+ actions?: ListAction[];
153
+ itemRenderer?: (item: ListItem, index: number) => React.ReactNode;
154
+ searchable?: boolean;
155
+ searchValue?: string;
156
+ onSearchChange?: (value: string) => void;
157
+ filterable?: boolean;
158
+ filters?: ListFilter[];
159
+ onFiltersChange?: (filters: ListFilter[]) => void;
160
+ sortable?: boolean;
161
+ sortConfig?: SortConfig;
162
+ onSort?: (config: SortConfig) => void;
163
+ pagination?: PaginationConfig;
164
+ onPageChange?: (page: number) => void;
165
+ onPageSizeChange?: (pageSize: number) => void;
166
+ showDividers?: boolean;
167
+ loading?: boolean;
168
+ error?: string | null;
169
+ emptyMessage?: string;
170
170
  }
171
171
 
172
172
  export interface ListItem {
173
- id;
174
- key?;
175
- title;
176
- description?;
177
- subtitle?;
178
- avatar?;
179
- icon?;
180
- metadata?;
181
- status?;
182
- badge?;
183
- [key];
173
+ id: string;
174
+ key?: string;
175
+ title: string;
176
+ description?: string;
177
+ subtitle?: string;
178
+ avatar?: string | React.ReactNode;
179
+ icon?: React.ReactNode;
180
+ metadata?: {
181
+ timestamp?: string;
182
+ status?: 'active' | 'inactive' | 'warning' | 'error';
183
+ badge?: string;
184
+ [key: string]: any;
184
185
  };
185
- actions?];
186
- disabled?;
187
- selected?;
186
+ actions?: ListAction[];
187
+ disabled?: boolean;
188
+ selected?: boolean;
188
189
  }
189
190
 
190
191
  export interface ListAction {
191
- key;
192
- label;
193
- icon?;
194
- onClick) => void;
195
- disabled?;
196
- variant?;
192
+ key: string;
193
+ label: string;
194
+ icon?: React.ReactNode;
195
+ onClick: (item: ListItem) => void;
196
+ disabled?: boolean;
197
+ variant?: 'default' | 'primary' | 'secondary' | 'danger';
197
198
  }
198
199
 
199
200
  export interface ListFilter {
200
- key;
201
- label;
202
- type;
203
- options?; label}[];
204
- value?;
201
+ key: string;
202
+ label: string;
203
+ type: 'text' | 'select' | 'checkbox' | 'date';
204
+ options?: { value: string; label: string }[];
205
+ value?: any;
205
206
  }
206
207
 
207
208
  // ============================================================================
@@ -209,77 +210,78 @@ export interface ListFilter {
209
210
  // ============================================================================
210
211
 
211
212
  export interface TreeProps extends DataDisplayBaseProps {
212
- data];
213
- expandedKeys?];
214
- selectedKeys?];
215
- onExpandedKeysChange?]) => void;
216
- onSelectedKeysChange?]) => void;
217
- onNodeClick?, event) => void;
218
- selectable?;
219
- expandable?;
220
- draggable?;
221
- onDragStart?, event) => void;
222
- onDragEnd?, event) => void;
223
- onDrop?, dropNode, event) => void;
224
- searchable?;
225
- searchValue?;
226
- onSearchChange?) => void;
227
- filterable?;
228
- filters?];
229
- onFiltersChange?]) => void;
230
- showLines?;
231
- showIcons?;
232
- expandAll?;
233
- collapseAll?;
234
- loading?;
235
- error?;
236
- emptyMessage?;
213
+ data: TreeNode[];
214
+ expandedKeys?: string[];
215
+ selectedKeys?: string[];
216
+ onExpandedKeysChange?: (expandedKeys: string[]) => void;
217
+ onSelectedKeysChange?: (selectedKeys: string[]) => void;
218
+ onNodeClick?: (node: TreeNode, event: React.MouseEvent) => void;
219
+ selectable?: boolean;
220
+ expandable?: boolean;
221
+ draggable?: boolean;
222
+ onDragStart?: (node: TreeNode, event: React.DragEvent) => void;
223
+ onDragEnd?: (node: TreeNode, event: React.DragEvent) => void;
224
+ onDrop?: (dragNode: TreeNode, dropNode: TreeNode, event: React.DragEvent) => void;
225
+ searchable?: boolean;
226
+ searchValue?: string;
227
+ onSearchChange?: (value: string) => void;
228
+ filterable?: boolean;
229
+ filters?: TreeFilter[];
230
+ onFiltersChange?: (filters: TreeFilter[]) => void;
231
+ showLines?: boolean;
232
+ showIcons?: boolean;
233
+ expandAll?: boolean;
234
+ collapseAll?: boolean;
235
+ loading?: boolean;
236
+ error?: string | null;
237
+ emptyMessage?: string;
237
238
  }
238
239
 
239
240
  export interface TreeNode {
240
- id;
241
- key?;
242
- label;
243
- description?;
244
- children?];
245
- icon?;
246
- disabled?;
247
- selectable?;
248
- expandable?;
249
- metadata?;
250
- status?;
251
- [key];
241
+ id: string;
242
+ key?: string;
243
+ label: string;
244
+ description?: string;
245
+ children?: TreeNode[];
246
+ icon?: React.ReactNode;
247
+ disabled?: boolean;
248
+ selectable?: boolean;
249
+ expandable?: boolean;
250
+ metadata?: {
251
+ count?: number;
252
+ status?: 'active' | 'inactive' | 'warning' | 'error';
253
+ [key: string]: any;
252
254
  };
253
- data?, any>;
255
+ data?: Record<string, any>;
254
256
  }
255
257
 
256
258
  export interface TreeItemProps {
257
- node;
258
- level?;
259
- expandedKeys];
260
- selectedKeys];
261
- selectable?;
262
- expandable?;
263
- onToggleExpand?, expanded) => void;
264
- onSelectionChange?, selected) => void;
265
- onClick?, event) => void;
266
- theme;
267
- size;
268
- variant;
269
- draggable?;
270
- onDragStart?, event) => void;
271
- onDragEnd?, event) => void;
272
- onDrop?, dropNode, event) => void;
273
- showLines?;
274
- showIcons?;
259
+ node: TreeNode;
260
+ level?: number;
261
+ expandedKeys: string[];
262
+ selectedKeys: string[];
263
+ selectable?: boolean;
264
+ expandable?: boolean;
265
+ onToggleExpand?: (nodeId: string, expanded: boolean) => void;
266
+ onSelectionChange?: (nodeId: string, selected: boolean) => void;
267
+ onClick?: (node: TreeNode, event: React.MouseEvent) => void;
268
+ theme: string;
269
+ size: 'sm' | 'md' | 'lg';
270
+ variant: 'default' | 'bordered' | 'striped';
271
+ draggable?: boolean;
272
+ onDragStart?: (node: TreeNode, event: React.DragEvent) => void;
273
+ onDragEnd?: (node: TreeNode, event: React.DragEvent) => void;
274
+ onDrop?: (dragNode: TreeNode, dropNode: TreeNode, event: React.DragEvent) => void;
275
+ showLines?: boolean;
276
+ showIcons?: boolean;
275
277
  }
276
278
 
277
279
  export interface TreeFilter {
278
- key;
279
- label;
280
- type;
281
- options?; label}[];
282
- value?;
280
+ key: string;
281
+ label: string;
282
+ type: 'text' | 'select' | 'checkbox' | 'date';
283
+ options?: { value: string; label: string }[];
284
+ value?: any;
283
285
  }
284
286
 
285
287
  // ============================================================================
@@ -287,70 +289,71 @@ export interface TreeFilter {
287
289
  // ============================================================================
288
290
 
289
291
  export interface TimelineProps extends DataDisplayBaseProps {
290
- items];
291
- mode?;
292
- reverse?;
293
- actions?];
294
- onItemClick?) => void;
295
- searchable?;
296
- searchValue?;
297
- onSearchChange?) => void;
298
- filterable?;
299
- filters?];
300
- onFiltersChange?]) => void;
301
- showConnector?;
302
- loading?;
303
- error?;
304
- emptyMessage?;
292
+ items: TimelineItem[];
293
+ mode?: 'left' | 'right' | 'alternate';
294
+ reverse?: boolean;
295
+ actions?: TimelineAction[];
296
+ onItemClick?: (item: TimelineItem) => void;
297
+ searchable?: boolean;
298
+ searchValue?: string;
299
+ onSearchChange?: (value: string) => void;
300
+ filterable?: boolean;
301
+ filters?: TimelineFilter[];
302
+ onFiltersChange?: (filters: TimelineFilter[]) => void;
303
+ showConnector?: boolean;
304
+ loading?: boolean;
305
+ error?: string | null;
306
+ emptyMessage?: string;
305
307
  }
306
308
 
307
309
  export interface TimelineItem {
308
- id;
309
- title;
310
- description?;
311
- timestamp;
312
- type?;
313
- status?;
314
- icon?;
315
- content?;
316
- metadata?;
317
- category?;
318
- tags?];
319
- [key];
310
+ id: string;
311
+ title: string;
312
+ description?: string;
313
+ timestamp: string;
314
+ type?: 'event' | 'task' | 'user' | 'system';
315
+ status?: 'success' | 'warning' | 'error' | 'info' | 'pending' | 'processing' | 'completed';
316
+ icon?: React.ReactNode;
317
+ content?: React.ReactNode;
318
+ metadata?: {
319
+ author?: string;
320
+ category?: string;
321
+ tags?: string[];
322
+ [key: string]: any;
320
323
  };
321
- actions?];
322
- disabled?;
323
- data?, any>;
324
+ actions?: TimelineAction[];
325
+ disabled?: boolean;
326
+ data?: Record<string, any>;
324
327
  }
325
328
 
326
329
  export interface TimelineAction {
327
- key;
328
- label;
329
- icon?;
330
- onClick) => void;
331
- disabled?;
332
- variant?;
330
+ key: string;
331
+ label: string;
332
+ icon?: React.ReactNode;
333
+ onClick: (item: TimelineItem) => void;
334
+ disabled?: boolean;
335
+ variant?: 'default' | 'primary' | 'secondary' | 'danger';
333
336
  }
334
337
 
335
338
  export interface TimelineItemProps {
336
- item;
337
- position;
338
- isLast;
339
- mode;
340
- actions];
341
- onClick?) => void;
342
- theme;
343
- size;
344
- variant;
345
- showConnector;
339
+ item: TimelineItem;
340
+ position: 'left' | 'right';
341
+ isLast: boolean;
342
+ mode: 'left' | 'right' | 'alternate';
343
+ actions: TimelineAction[];
344
+ onClick?: (item: TimelineItem) => void;
345
+ theme: string;
346
+ size: 'sm' | 'md' | 'lg';
347
+ variant: 'default' | 'bordered' | 'striped';
348
+ showConnector: boolean;
346
349
  }
347
350
 
348
351
  export interface TimelineFilter {
349
- key;
350
- label;
351
- type;
352
- options?; label}[];
353
- value?;
352
+ key: string;
353
+ label: string;
354
+ type: 'text' | 'select' | 'checkbox' | 'date';
355
+ options?: { value: string; label: string }[];
356
+ value?: any;
354
357
  }
355
358
 
356
359
  // ============================================================================
@@ -358,149 +361,171 @@ export interface TimelineFilter {
358
361
  // ============================================================================
359
362
 
360
363
  export interface ChartProps extends DataDisplayBaseProps {
361
- type?;
362
- data;
363
- options?;
364
- height?;
365
- width?;
366
- responsive?;
367
- showLegend?;
368
- showValues?;
369
- showGrid?;
370
- animate?;
371
- onDataPointClick?, index) => void;
372
- onLegendClick?, index) => void;
373
- loading?;
374
- error?;
375
- emptyMessage?;
364
+ type?: 'line' | 'bar' | 'pie' | 'doughnut' | 'area';
365
+ data: ChartData;
366
+ options?: ChartOptions;
367
+ height?: number | string;
368
+ width?: number | string;
369
+ responsive?: boolean;
370
+ showLegend?: boolean;
371
+ showValues?: boolean;
372
+ showGrid?: boolean;
373
+ animate?: boolean;
374
+ onDataPointClick?: (point: ChartDataPoint, index: number) => void;
375
+ onLegendClick?: (legend: ChartLegend, index: number) => void;
376
+ loading?: boolean;
377
+ error?: string | null;
378
+ emptyMessage?: string;
376
379
  }
377
380
 
378
381
  export interface ChartData {
379
- labels];
380
- datasets];
382
+ labels: string[];
383
+ datasets: ChartDataset[];
381
384
  }
382
385
 
383
386
  export interface ChartDataset {
384
- label;
385
- data)[];
386
- color?;
387
- backgroundColor?];
388
- borderColor?];
389
- borderWidth?;
390
- fill?;
391
- tension?;
392
- pointRadius?;
393
- pointHoverRadius?;
394
- pointBackgroundColor?];
395
- pointBorderColor?];
396
- pointBorderWidth?;
397
- pointStyle?;
398
- hidden?;
387
+ label: string;
388
+ data: (number | ChartDataPoint)[];
389
+ color?: string;
390
+ backgroundColor?: string | string[];
391
+ borderColor?: string | string[];
392
+ borderWidth?: number;
393
+ fill?: boolean;
394
+ tension?: number;
395
+ pointRadius?: number;
396
+ pointHoverRadius?: number;
397
+ pointBackgroundColor?: string | string[];
398
+ pointBorderColor?: string | string[];
399
+ pointBorderWidth?: number;
400
+ pointStyle?: string;
401
+ hidden?: boolean;
399
402
  }
400
403
 
401
404
  export interface ChartDataPoint {
402
- label;
403
- value;
404
- datasetIndex;
405
- index;
406
- x;
407
- y;
405
+ label: string;
406
+ value: number;
407
+ datasetIndex: number;
408
+ index: number;
409
+ x: number;
410
+ y: number;
408
411
  }
409
412
 
410
413
  export interface ChartLegend {
411
- text;
412
- fillStyle;
413
- strokeStyle;
414
- lineWidth;
415
- hidden;
416
- index;
414
+ text: string;
415
+ fillStyle: string;
416
+ strokeStyle: string;
417
+ lineWidth: number;
418
+ hidden: boolean;
419
+ index: number;
417
420
  }
418
421
 
419
422
  export interface ChartOptions {
420
- title?;
421
- subtitle?;
422
- showPoints?;
423
- showLabels?;
424
- responsive?;
425
- maintainAspectRatio?;
426
- plugins?;
427
- text?;
428
- color?;
429
- font?;
430
- size?;
431
- weight?;
423
+ title?: string;
424
+ subtitle?: string;
425
+ showPoints?: boolean;
426
+ showLabels?: boolean;
427
+ responsive?: boolean;
428
+ maintainAspectRatio?: boolean;
429
+ plugins?: {
430
+ title?: {
431
+ display?: boolean;
432
+ text?: string;
433
+ color?: string;
434
+ font?: {
435
+ family?: string;
436
+ size?: number;
437
+ weight?: string;
432
438
  };
433
439
  };
434
- legend?;
435
- position?;
436
- labels?;
437
- font?;
438
- size?;
439
- weight?;
440
+ legend?: {
441
+ display?: boolean;
442
+ position?: 'top' | 'left' | 'bottom' | 'right';
443
+ labels?: {
444
+ color?: string;
445
+ font?: {
446
+ family?: string;
447
+ size?: number;
448
+ weight?: string;
440
449
  };
441
- usePointStyle?;
442
- padding?;
450
+ usePointStyle?: boolean;
451
+ padding?: number;
443
452
  };
444
453
  };
445
- tooltip?;
446
- mode?;
447
- intersect?;
448
- backgroundColor?;
449
- titleColor?;
450
- bodyColor?;
451
- borderColor?;
452
- borderWidth?;
454
+ tooltip?: {
455
+ enabled?: boolean;
456
+ mode?: 'index' | 'dataset' | 'point' | 'nearest' | 'x' | 'y';
457
+ intersect?: boolean;
458
+ backgroundColor?: string;
459
+ titleColor?: string;
460
+ bodyColor?: string;
461
+ borderColor?: string;
462
+ borderWidth?: number;
453
463
  };
454
464
  };
455
- scales?;
456
- title?;
457
- text?;
458
- color?;
459
- font?;
460
- size?;
461
- weight?;
465
+ scales?: {
466
+ x?: {
467
+ display?: boolean;
468
+ title?: {
469
+ display?: boolean;
470
+ text?: string;
471
+ color?: string;
472
+ font?: {
473
+ family?: string;
474
+ size?: number;
475
+ weight?: string;
462
476
  };
463
477
  };
464
- grid?;
465
- color?;
466
- borderColor?;
467
- borderWidth?;
478
+ grid?: {
479
+ display?: boolean;
480
+ color?: string;
481
+ borderColor?: string;
482
+ borderWidth?: number;
468
483
  };
469
- ticks?;
470
- font?;
471
- size?;
472
- weight?;
484
+ ticks?: {
485
+ color?: string;
486
+ font?: {
487
+ family?: string;
488
+ size?: number;
489
+ weight?: string;
473
490
  };
474
491
  };
475
492
  };
476
- y?;
477
- title?;
478
- text?;
479
- color?;
480
- font?;
481
- size?;
482
- weight?;
493
+ y?: {
494
+ display?: boolean;
495
+ title?: {
496
+ display?: boolean;
497
+ text?: string;
498
+ color?: string;
499
+ font?: {
500
+ family?: string;
501
+ size?: number;
502
+ weight?: string;
483
503
  };
484
504
  };
485
- grid?;
486
- color?;
487
- borderColor?;
488
- borderWidth?;
505
+ grid?: {
506
+ display?: boolean;
507
+ color?: string;
508
+ borderColor?: string;
509
+ borderWidth?: number;
489
510
  };
490
- ticks?;
491
- font?;
492
- size?;
493
- weight?;
511
+ ticks?: {
512
+ color?: string;
513
+ font?: {
514
+ family?: string;
515
+ size?: number;
516
+ weight?: string;
494
517
  };
495
518
  };
496
519
  };
497
520
  };
498
- animation?;
499
- easing?;
521
+ animation?: {
522
+ duration?: number;
523
+ easing?: string;
500
524
  };
501
- interaction?;
502
- intersect?;
503
- axis?;
525
+ interaction?: {
526
+ mode?: 'nearest' | 'index' | 'dataset' | 'point' | 'x' | 'y';
527
+ intersect?: boolean;
528
+ axis?: 'x' | 'y';
504
529
  };
505
530
  }
506
531