@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
@@ -10,29 +10,29 @@ import { ReactNode } from 'react';
10
10
  // ============================================================================
11
11
 
12
12
  export interface NavigationBaseProps {
13
- className?;
14
- 'data-testid'?;
15
- theme?;
13
+ className?: string;
14
+ 'data-testid'?: string;
15
+ theme?: 'stan-design' | 'enterprise' | 'harvey';
16
16
  }
17
17
 
18
18
  export interface NavigationItem {
19
- id;
20
- label;
21
- href?;
22
- icon?;
23
- disabled?;
24
- active?;
25
- children?];
26
- onClick?) => void;
27
- badge?;
28
- description?;
19
+ id: string;
20
+ label: string;
21
+ href?: string;
22
+ icon?: ReactNode;
23
+ disabled?: boolean;
24
+ active?: boolean;
25
+ children?: NavigationItem[];
26
+ onClick?: () => void;
27
+ badge?: ReactNode;
28
+ description?: string;
29
29
  }
30
30
 
31
31
  export interface NavigationGroup {
32
- id;
33
- title?;
34
- items];
35
- divider?;
32
+ id: string;
33
+ title?: string;
34
+ items: NavigationItem[];
35
+ divider?: boolean;
36
36
  }
37
37
 
38
38
  // ============================================================================
@@ -40,23 +40,23 @@ export interface NavigationGroup {
40
40
  // ============================================================================
41
41
 
42
42
  export interface BreadcrumbProps extends NavigationBaseProps {
43
- items];
44
- separator?;
45
- maxItems?;
46
- showHome?;
47
- homeIcon?;
48
- onItemClick?) => void;
49
- truncate?;
50
- responsive?;
43
+ items: BreadcrumbItem[];
44
+ separator?: ReactNode;
45
+ maxItems?: number;
46
+ showHome?: boolean;
47
+ homeIcon?: ReactNode;
48
+ onItemClick?: (item: BreadcrumbItem) => void;
49
+ truncate?: boolean;
50
+ responsive?: boolean;
51
51
  }
52
52
 
53
53
  export interface BreadcrumbItem {
54
- id;
55
- label;
56
- href?;
57
- icon?;
58
- onClick?) => void;
59
- disabled?;
54
+ id: string;
55
+ label: string;
56
+ href?: string;
57
+ icon?: ReactNode;
58
+ onClick?: () => void;
59
+ disabled?: boolean;
60
60
  }
61
61
 
62
62
  // ============================================================================
@@ -64,33 +64,33 @@ export interface BreadcrumbItem {
64
64
  // ============================================================================
65
65
 
66
66
  export interface PaginationProps extends NavigationBaseProps {
67
- currentPage;
68
- totalPages;
69
- totalItems?;
70
- itemsPerPage?;
71
- showFirstLast?;
72
- showPrevNext?;
73
- showPageNumbers?;
74
- maxPageNumbers?;
75
- size?;
76
- variant?;
77
- onPageChange) => void;
78
- onItemsPerPageChange?) => void;
79
- itemsPerPageOptions?];
80
- showItemsPerPage?;
81
- showTotal?;
82
- totalLabel?;
83
- disabled?;
84
- loading?;
67
+ currentPage: number;
68
+ totalPages: number;
69
+ totalItems?: number;
70
+ itemsPerPage?: number;
71
+ showFirstLast?: boolean;
72
+ showPrevNext?: boolean;
73
+ showPageNumbers?: boolean;
74
+ maxPageNumbers?: number;
75
+ size?: 'sm' | 'md' | 'lg';
76
+ variant?: 'default' | 'outlined' | 'minimal';
77
+ onPageChange: (page: number) => void;
78
+ onItemsPerPageChange?: (itemsPerPage: number) => void;
79
+ itemsPerPageOptions?: number[];
80
+ showItemsPerPage?: boolean;
81
+ showTotal?: boolean;
82
+ totalLabel?: string;
83
+ disabled?: boolean;
84
+ loading?: boolean;
85
85
  }
86
86
 
87
87
  export interface PaginationItem {
88
- type;
89
- page?;
90
- disabled?;
91
- active?;
92
- label;
93
- onClick?) => void;
88
+ type: 'page' | 'ellipsis' | 'previous' | 'next' | 'first' | 'last';
89
+ page?: number;
90
+ disabled?: boolean;
91
+ active?: boolean;
92
+ label: string;
93
+ onClick?: () => void;
94
94
  }
95
95
 
96
96
  // ============================================================================
@@ -98,34 +98,34 @@ export interface PaginationItem {
98
98
  // ============================================================================
99
99
 
100
100
  export interface TabsProps extends NavigationBaseProps {
101
- tabs];
102
- activeTab?;
103
- defaultActiveTab?;
104
- onTabChange?) => void;
105
- variant?;
106
- size?;
107
- orientation?;
108
- fullWidth?;
109
- centered?;
110
- disabled?;
111
- loading?;
112
- closable?;
113
- onTabClose?) => void;
114
- addable?;
115
- onTabAdd?) => void;
116
- draggable?;
117
- onTabsReorder?]) => void;
101
+ tabs: TabItem[];
102
+ activeTab?: string;
103
+ defaultActiveTab?: string;
104
+ onTabChange?: (tabId: string) => void;
105
+ variant?: 'default' | 'pills' | 'underline' | 'cards' | 'minimal';
106
+ size?: 'sm' | 'md' | 'lg';
107
+ orientation?: 'horizontal' | 'vertical';
108
+ fullWidth?: boolean;
109
+ centered?: boolean;
110
+ disabled?: boolean;
111
+ loading?: boolean;
112
+ closable?: boolean;
113
+ onTabClose?: (tabId: string) => void;
114
+ addable?: boolean;
115
+ onTabAdd?: () => void;
116
+ draggable?: boolean;
117
+ onTabsReorder?: (tabs: TabItem[]) => void;
118
118
  }
119
119
 
120
120
  export interface TabItem {
121
- id;
122
- label;
123
- content;
124
- icon?;
125
- disabled?;
126
- closable?;
127
- badge?;
128
- description?;
121
+ id: string;
122
+ label: string;
123
+ content: ReactNode;
124
+ icon?: ReactNode;
125
+ disabled?: boolean;
126
+ closable?: boolean;
127
+ badge?: ReactNode;
128
+ description?: string;
129
129
  }
130
130
 
131
131
  // ============================================================================
@@ -133,45 +133,45 @@ export interface TabItem {
133
133
  // ============================================================================
134
134
 
135
135
  export interface StepperProps extends NavigationBaseProps {
136
- steps];
137
- currentStep?;
138
- defaultCurrentStep?;
139
- onStepChange?) => void;
140
- variant?;
141
- size?;
142
- showStepNumbers?;
143
- showStepLabels?;
144
- showStepDescriptions?;
145
- showStepIcons?;
146
- allowStepClick?;
147
- allowStepNavigation?;
148
- showProgress?;
149
- showStepStatus?;
150
- onStepComplete?) => void;
151
- onStepError?) => void;
152
- onFinish?) => void;
153
- onCancel?) => void;
136
+ steps: StepItem[];
137
+ currentStep?: number;
138
+ defaultCurrentStep?: number;
139
+ onStepChange?: (stepIndex: number) => void;
140
+ variant?: 'default' | 'vertical' | 'horizontal' | 'wizard';
141
+ size?: 'sm' | 'md' | 'lg';
142
+ showStepNumbers?: boolean;
143
+ showStepLabels?: boolean;
144
+ showStepDescriptions?: boolean;
145
+ showStepIcons?: boolean;
146
+ allowStepClick?: boolean;
147
+ allowStepNavigation?: boolean;
148
+ showProgress?: boolean;
149
+ showStepStatus?: boolean;
150
+ onStepComplete?: (stepIndex: number) => void;
151
+ onStepError?: (stepIndex: number) => void;
152
+ onFinish?: () => void;
153
+ onCancel?: () => void;
154
154
  }
155
155
 
156
156
  export interface StepItem {
157
- id;
158
- label;
159
- description?;
160
- icon?;
161
- status?;
162
- disabled?;
163
- required?;
164
- validation?) => boolean | Promise<boolean>;
165
- content?;
166
- actions?];
157
+ id: string;
158
+ label: string;
159
+ description?: string;
160
+ icon?: ReactNode;
161
+ status?: 'pending' | 'active' | 'completed' | 'error' | 'warning';
162
+ disabled?: boolean;
163
+ required?: boolean;
164
+ validation?: () => boolean | Promise<boolean>;
165
+ content?: ReactNode;
166
+ actions?: StepAction[];
167
167
  }
168
168
 
169
169
  export interface StepAction {
170
- label;
171
- variant?;
172
- onClick) => void;
173
- disabled?;
174
- loading?;
170
+ label: string;
171
+ variant?: 'primary' | 'secondary' | 'outline' | 'ghost';
172
+ onClick: () => void;
173
+ disabled?: boolean;
174
+ loading?: boolean;
175
175
  }
176
176
 
177
177
  // ============================================================================
@@ -179,26 +179,26 @@ export interface StepAction {
179
179
  // ============================================================================
180
180
 
181
181
  export interface MenuProps extends NavigationBaseProps {
182
- items];
183
- groups?];
184
- variant?;
185
- size?;
186
- orientation?;
187
- trigger?;
188
- placement?;
189
- offset?;
190
- showArrow?;
191
- fullWidth?;
192
- disabled?;
193
- loading?;
194
- searchable?;
195
- onSearch?) => void;
196
- filterable?;
197
- onFilter?) => void;
198
- selectable?;
199
- multiSelect?;
200
- selectedItems?];
201
- onSelectionChange?]) => void;
182
+ items: NavigationItem[];
183
+ groups?: NavigationGroup[];
184
+ variant?: 'default' | 'dropdown' | 'context' | 'command';
185
+ size?: 'sm' | 'md' | 'lg';
186
+ orientation?: 'horizontal' | 'vertical';
187
+ trigger?: 'click' | 'hover' | 'focus';
188
+ placement?: 'top' | 'bottom' | 'left' | 'right';
189
+ offset?: number;
190
+ showArrow?: boolean;
191
+ fullWidth?: boolean;
192
+ disabled?: boolean;
193
+ loading?: boolean;
194
+ searchable?: boolean;
195
+ onSearch?: (query: string) => void;
196
+ filterable?: boolean;
197
+ onFilter?: (filter: string) => void;
198
+ selectable?: boolean;
199
+ multiSelect?: boolean;
200
+ selectedItems?: string[];
201
+ onSelectionChange?: (selectedItems: string[]) => void;
202
202
  }
203
203
 
204
204
  // ============================================================================
@@ -206,35 +206,35 @@ export interface MenuProps extends NavigationBaseProps {
206
206
  // ============================================================================
207
207
 
208
208
  export interface SidebarProps extends NavigationBaseProps {
209
- items];
210
- groups?];
211
- variant?;
212
- size?;
213
- position?;
214
- collapsed?;
215
- defaultCollapsed?;
216
- onCollapseChange?) => void;
217
- collapsible?;
218
- showToggle?;
219
- toggleIcon?;
220
- header?;
221
- footer?;
222
- overlay?;
223
- overlayCloseOnClick?;
224
- overlayCloseOnEscape?;
225
- overlayCloseOnOutsideClick?;
226
- responsive?;
227
- breakpoint?;
228
- onItemClick?) => void;
229
- onGroupToggle?, expanded) => void;
230
- expandedGroups?];
231
- defaultExpandedGroups?];
232
- showGroupIcons?;
233
- showItemIcons?;
234
- showItemBadges?;
235
- showItemDescriptions?;
236
- sticky?;
237
- zIndex?;
209
+ items: NavigationItem[];
210
+ groups?: NavigationGroup[];
211
+ variant?: 'default' | 'collapsible' | 'overlay' | 'drawer';
212
+ size?: 'sm' | 'md' | 'lg' | 'xl';
213
+ position?: 'left' | 'right';
214
+ collapsed?: boolean;
215
+ defaultCollapsed?: boolean;
216
+ onCollapseChange?: (collapsed: boolean) => void;
217
+ collapsible?: boolean;
218
+ showToggle?: boolean;
219
+ toggleIcon?: ReactNode;
220
+ header?: ReactNode;
221
+ footer?: ReactNode;
222
+ overlay?: boolean;
223
+ overlayCloseOnClick?: boolean;
224
+ overlayCloseOnEscape?: boolean;
225
+ overlayCloseOnOutsideClick?: boolean;
226
+ responsive?: boolean;
227
+ breakpoint?: 'sm' | 'md' | 'lg' | 'xl';
228
+ onItemClick?: (item: NavigationItem) => void;
229
+ onGroupToggle?: (groupId: string, expanded: boolean) => void;
230
+ expandedGroups?: string[];
231
+ defaultExpandedGroups?: string[];
232
+ showGroupIcons?: boolean;
233
+ showItemIcons?: boolean;
234
+ showItemBadges?: boolean;
235
+ showItemDescriptions?: boolean;
236
+ sticky?: boolean;
237
+ zIndex?: number;
238
238
  }
239
239
 
240
240
  // ============================================================================
@@ -242,57 +242,58 @@ export interface SidebarProps extends NavigationBaseProps {
242
242
  // ============================================================================
243
243
 
244
244
  export interface NavigationState {
245
- activeItem?;
246
- expandedGroups];
247
- collapsed;
248
- searchQuery;
249
- filterValue;
250
- selectedItems];
245
+ activeItem?: string;
246
+ expandedGroups: string[];
247
+ collapsed: boolean;
248
+ searchQuery: string;
249
+ filterValue: string;
250
+ selectedItems: string[];
251
251
  }
252
252
 
253
253
  export interface NavigationContextValue {
254
- state;
255
- dispatch;
256
- theme;
254
+ state: NavigationState;
255
+ dispatch: React.Dispatch<NavigationAction>;
256
+ theme: string;
257
257
  }
258
258
 
259
- payload}
260
- | { type; payload}
261
- | { type; payload}
262
- | { type; payload}
263
- | { type; payload}
264
- | { type; payload] }
265
- | { type};
259
+ export type NavigationAction =
260
+ | { type: 'SET_ACTIVE_ITEM'; payload: string }
261
+ | { type: 'TOGGLE_GROUP'; payload: string }
262
+ | { type: 'SET_COLLAPSED'; payload: boolean }
263
+ | { type: 'SET_SEARCH_QUERY'; payload: string }
264
+ | { type: 'SET_FILTER_VALUE'; payload: string }
265
+ | { type: 'SET_SELECTED_ITEMS'; payload: string[] }
266
+ | { type: 'RESET_STATE' };
266
267
 
267
268
  // ============================================================================
268
269
  // NAVIGATION UTILITY TYPES
269
270
  // ============================================================================
270
271
 
271
272
  export interface NavigationBreakpoint {
272
- sm;
273
- md;
274
- lg;
275
- xl;
273
+ sm: string;
274
+ md: string;
275
+ lg: string;
276
+ xl: string;
276
277
  }
277
278
 
278
279
  export interface NavigationSpacing {
279
- xs;
280
- sm;
281
- md;
282
- lg;
283
- xl;
280
+ xs: string;
281
+ sm: string;
282
+ md: string;
283
+ lg: string;
284
+ xl: string;
284
285
  }
285
286
 
286
287
  export interface NavigationAnimation {
287
- duration;
288
- easing;
289
- delay?;
288
+ duration: string;
289
+ easing: string;
290
+ delay?: string;
290
291
  }
291
292
 
292
293
  export interface NavigationAccessibility {
293
- ariaLabel?;
294
- ariaDescribedBy?;
295
- ariaLabelledBy?;
296
- role?;
297
- tabIndex?;
294
+ ariaLabel?: string;
295
+ ariaDescribedBy?: string;
296
+ ariaLabelledBy?: string;
297
+ role?: string;
298
+ tabIndex?: number;
298
299
  }
@@ -1,18 +1,18 @@
1
1
  import React from 'react';
2
2
 
3
3
  export interface BackdropProps {
4
- isVisible;
5
- onClick?) => void;
6
- className?;
7
- blur?;
8
- opacity?;
9
- zIndex?;
10
- children?;
11
- theme?;
12
- animation?;
4
+ isVisible: boolean;
5
+ onClick?: () => void;
6
+ className?: string;
7
+ blur?: boolean;
8
+ opacity?: number;
9
+ zIndex?: number;
10
+ children?: React.ReactNode;
11
+ theme?: 'light' | 'dark' | 'primary' | 'success' | 'warning' | 'error';
12
+ animation?: boolean;
13
13
  }
14
14
 
15
- export const Backdrop= ({
15
+ export const Backdrop: React.FC<BackdropProps> = ({
16
16
  isVisible,
17
17
  onClick,
18
18
  className = '',
@@ -27,7 +27,7 @@ export const Backdrop= ({
27
27
  return null;
28
28
  }
29
29
 
30
- const handleClick = (event) => {
30
+ const handleClick = (event: React.MouseEvent) => {
31
31
  // Only trigger onClick if clicking directly on the backdrop
32
32
  if (event.target === event.currentTarget && onClick) {
33
33
  onClick();
@@ -50,11 +50,11 @@ export const Backdrop= ({
50
50
 
51
51
  const containerClasses = [
52
52
  'backdrop__container',
53
- blur ? 'backdrop__container--blur' ,
54
- theme ? `backdrop__container--theme-${theme}` ,
53
+ blur ? 'backdrop__container--blur' : '',
54
+ theme ? `backdrop__container--theme-${theme}` : '',
55
55
  getOpacityClass(),
56
56
  getZIndexClass(),
57
- animation ? 'backdrop__container--enter' ,
57
+ animation ? 'backdrop__container--enter' : '',
58
58
  className
59
59
  ].filter(Boolean).join(' ');
60
60
 
@@ -62,8 +62,9 @@ export const Backdrop= ({
62
62
  <div
63
63
  className={containerClasses}
64
64
  style={{
65
- '--backdrop-z-index',
66
- '--backdrop-opacity'} as React.CSSProperties}
65
+ '--backdrop-z-index': zIndex,
66
+ '--backdrop-opacity': opacity
67
+ } as React.CSSProperties}
67
68
  onClick={handleClick}
68
69
  role="presentation"
69
70
  aria-hidden="true"
@@ -1,18 +1,18 @@
1
1
  import React from 'react';
2
2
 
3
3
  export interface BackdropProps {
4
- isVisible;
5
- onClick?) => void;
6
- className?;
7
- blur?;
8
- opacity?;
9
- zIndex?;
10
- children?;
11
- theme?;
12
- animation?;
4
+ isVisible: boolean;
5
+ onClick?: () => void;
6
+ className?: string;
7
+ blur?: boolean;
8
+ opacity?: number;
9
+ zIndex?: number;
10
+ children?: React.ReactNode;
11
+ theme?: 'light' | 'dark' | 'primary' | 'success' | 'warning' | 'error';
12
+ animation?: boolean;
13
13
  }
14
14
 
15
- export const Backdrop= ({
15
+ export const Backdrop: React.FC<BackdropProps> = ({
16
16
  isVisible,
17
17
  onClick,
18
18
  className = '',
@@ -27,7 +27,7 @@ export const Backdrop= ({
27
27
  return null;
28
28
  }
29
29
 
30
- const handleClick = (event) => {
30
+ const handleClick = (event: React.MouseEvent) => {
31
31
  // Only trigger onClick if clicking directly on the backdrop
32
32
  if (event.target === event.currentTarget && onClick) {
33
33
  onClick();
@@ -50,11 +50,11 @@ export const Backdrop= ({
50
50
 
51
51
  const containerClasses = [
52
52
  'backdrop__container',
53
- blur ? 'backdrop__container--blur' ,
54
- theme ? `backdrop__container--theme-${theme}` ,
53
+ blur ? 'backdrop__container--blur' : '',
54
+ theme ? `backdrop__container--theme-${theme}` : '',
55
55
  getOpacityClass(),
56
56
  getZIndexClass(),
57
- animation ? 'backdrop__container--enter' ,
57
+ animation ? 'backdrop__container--enter' : '',
58
58
  className
59
59
  ].filter(Boolean).join(' ');
60
60
 
@@ -62,8 +62,9 @@ export const Backdrop= ({
62
62
  <div
63
63
  className={containerClasses}
64
64
  style={{
65
- '--backdrop-z-index',
66
- '--backdrop-opacity'} as React.CSSProperties}
65
+ '--backdrop-z-index': zIndex,
66
+ '--backdrop-opacity': opacity
67
+ } as React.CSSProperties}
67
68
  onClick={handleClick}
68
69
  role="presentation"
69
70
  aria-hidden="true"