@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.9 → 0.2.11

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 (306) 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 +0 -1
  89. package/dist/components/ui/navigation/index.js +0 -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 +0 -2
  109. package/dist/components/ui/overlay/index.js +0 -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 +157 -281
  223. package/dist/index.js +157 -281
  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/index.esm.js +1 -1
  256. package/dist/themes/index.js +1 -1
  257. package/dist/themes/inheritance.esm.js +35 -27
  258. package/dist/themes/inheritance.js +35 -27
  259. package/dist/themes/keyboard-navigation.esm.js +152 -123
  260. package/dist/themes/keyboard-navigation.js +152 -123
  261. package/dist/themes/motion-reduction.esm.js +193 -133
  262. package/dist/themes/motion-reduction.js +193 -133
  263. package/dist/themes/navigation.esm.js +146 -146
  264. package/dist/themes/navigation.js +146 -146
  265. package/dist/themes/screen-reader.esm.js +159 -94
  266. package/dist/themes/screen-reader.js +159 -94
  267. package/dist/themes/systemThemeDetector.esm.js +42 -34
  268. package/dist/themes/systemThemeDetector.js +42 -34
  269. package/dist/themes/themeCSSUpdater.esm.js +21 -9
  270. package/dist/themes/themeCSSUpdater.js +21 -9
  271. package/dist/themes/themePersistence.esm.js +68 -47
  272. package/dist/themes/themePersistence.js +68 -47
  273. package/dist/themes/themes/stan-design.esm.js +633 -468
  274. package/dist/themes/themes/stan-design.js +633 -468
  275. package/dist/themes/types.esm.js +301 -287
  276. package/dist/themes/types.js +301 -287
  277. package/dist/themes/useSystemTheme.esm.js +4 -4
  278. package/dist/themes/useSystemTheme.js +4 -4
  279. package/dist/themes/useTheme.esm.js +4 -4
  280. package/dist/themes/useTheme.js +4 -4
  281. package/dist/themes/validation.esm.js +128 -77
  282. package/dist/themes/validation.js +128 -77
  283. package/dist/tokens/index.esm.js +1 -2
  284. package/dist/tokens/index.js +1 -2
  285. package/dist/tokens/tokenExporter.esm.js +87 -61
  286. package/dist/tokens/tokenExporter.js +87 -61
  287. package/dist/tokens/tokenGenerator.esm.js +86 -77
  288. package/dist/tokens/tokenGenerator.js +86 -77
  289. package/dist/tokens/tokenManager.esm.js +64 -51
  290. package/dist/tokens/tokenManager.js +64 -51
  291. package/dist/tokens/tokenValidator.esm.js +193 -147
  292. package/dist/tokens/tokenValidator.js +193 -147
  293. package/dist/tokens/types.esm.js +49 -35
  294. package/dist/tokens/types.js +49 -35
  295. package/dist/utils/bundle-analyzer.esm.js +83 -65
  296. package/dist/utils/bundle-analyzer.js +83 -65
  297. package/dist/utils/bundle-splitting.esm.js +142 -117
  298. package/dist/utils/bundle-splitting.js +142 -117
  299. package/dist/utils/lazy-loading.esm.js +132 -106
  300. package/dist/utils/lazy-loading.js +132 -106
  301. package/dist/utils/performance-monitor.esm.js +170 -129
  302. package/dist/utils/performance-monitor.js +170 -129
  303. package/dist/utils/tree-shaking.esm.js +69 -61
  304. package/dist/utils/tree-shaking.js +69 -61
  305. package/package.json +1 -1
  306. package/src/index.ts +146 -146
@@ -1,35 +1,35 @@
1
1
  // Tree-shaking utilities for optimizing bundle size
2
2
  export interface ExportAnalysis {
3
- module;
4
- exports];
5
- usedExports];
6
- unusedExports];
7
- importCount;
8
- treeShakingScore;
3
+ module: string;
4
+ exports: string[];
5
+ usedExports: string[];
6
+ unusedExports: string[];
7
+ importCount: number;
8
+ treeShakingScore: number;
9
9
  }
10
10
 
11
11
  export interface TreeShakingConfig {
12
- enabled;
13
- analyzeExports;
14
- removeUnused;
15
- preserveSideEffects;
16
- modulesToAnalyze];
17
- excludePatterns];
12
+ enabled: boolean;
13
+ analyzeExports: boolean;
14
+ removeUnused: boolean;
15
+ preserveSideEffects: boolean;
16
+ modulesToAnalyze: string[];
17
+ excludePatterns: string[];
18
18
  }
19
19
 
20
20
  export class TreeShakingOptimizer {
21
- private config;
22
- private exportMap, Set<string>>;
23
- private importMap, Set<string>>;
24
- private usageMap, number>;
25
-
26
- constructor(config= {
27
- enabled,
28
- analyzeExports,
29
- removeUnused,
30
- preserveSideEffects,
31
- modulesToAnalyze],
32
- excludePatterns]
21
+ private config: TreeShakingConfig;
22
+ private exportMap: Map<string, Set<string>>;
23
+ private importMap: Map<string, Set<string>>;
24
+ private usageMap: Map<string, number>;
25
+
26
+ constructor(config: TreeShakingConfig = {
27
+ enabled: true,
28
+ analyzeExports: true,
29
+ removeUnused: true,
30
+ preserveSideEffects: true,
31
+ modulesToAnalyze: [],
32
+ excludePatterns: []
33
33
  }) {
34
34
  this.config = config;
35
35
  this.exportMap = new Map();
@@ -38,21 +38,23 @@ export class TreeShakingOptimizer {
38
38
  }
39
39
 
40
40
  // Analyze module exports
41
- analyzeModuleExports(modulePath, exports])) return;
41
+ analyzeModuleExports(modulePath: string, exports: string[]): void {
42
+ if (!this.config.analyzeExports) return;
42
43
 
43
44
  this.exportMap.set(modulePath, new Set(exports));
44
45
 
45
46
  // Initialize usage count for each export
46
47
  exports.forEach(exportName => {
47
- const key = `${modulePath}}`;
48
+ const key = `${modulePath}:${exportName}`;
48
49
  this.usageMap.set(key, 0);
49
50
  });
50
51
  }
51
52
 
52
53
  // Track import usage
53
- trackImport(modulePath, importName)) return;
54
+ trackImport(modulePath: string, importName: string): void {
55
+ if (!this.config.enabled) return;
54
56
 
55
- const key = `${modulePath}}`;
57
+ const key = `${modulePath}:${importName}`;
56
58
  const currentUsage = this.usageMap.get(key) || 0;
57
59
  this.usageMap.set(key, currentUsage + 1);
58
60
 
@@ -64,16 +66,16 @@ export class TreeShakingOptimizer {
64
66
  }
65
67
 
66
68
  // Analyze tree-shaking effectiveness
67
- analyzeTreeShaking()] {
68
- const analysis] = [];
69
+ analyzeTreeShaking(): ExportAnalysis[] {
70
+ const analysis: ExportAnalysis[] = [];
69
71
 
70
72
  this.exportMap.forEach((exports, modulePath) => {
71
- const usedExports] = [];
72
- const unusedExports] = [];
73
+ const usedExports: string[] = [];
74
+ const unusedExports: string[] = [];
73
75
  let totalUsage = 0;
74
76
 
75
77
  exports.forEach(exportName => {
76
- const key = `${modulePath}}`;
78
+ const key = `${modulePath}:${exportName}`;
77
79
  const usage = this.usageMap.get(key) || 0;
78
80
  totalUsage += usage;
79
81
 
@@ -84,14 +86,14 @@ export class TreeShakingOptimizer {
84
86
  }
85
87
  });
86
88
 
87
- const treeShakingScore = exports.size > 0 ? (usedExports.length / exports.size) * 100 ;
89
+ const treeShakingScore = exports.size > 0 ? (usedExports.length / exports.size) * 100 : 100;
88
90
 
89
91
  analysis.push({
90
- module,
91
- exports),
92
+ module: modulePath,
93
+ exports: Array.from(exports),
92
94
  usedExports,
93
95
  unusedExports,
94
- importCount,
96
+ importCount: totalUsage,
95
97
  treeShakingScore
96
98
  });
97
99
  });
@@ -100,9 +102,9 @@ export class TreeShakingOptimizer {
100
102
  }
101
103
 
102
104
  // Generate tree-shaking recommendations
103
- generateTreeShakingRecommendations()] {
105
+ generateTreeShakingRecommendations(): string[] {
104
106
  const analysis = this.analyzeTreeShaking();
105
- const recommendations] = [];
107
+ const recommendations: string[] = [];
106
108
 
107
109
  analysis.forEach(module => {
108
110
  if (module.treeShakingScore < 50) {
@@ -110,7 +112,7 @@ export class TreeShakingOptimizer {
110
112
  }
111
113
 
112
114
  if (module.unusedExports.length > 0) {
113
- recommendations.push(`Module ${module.module} has ${module.unusedExports.length} unused exports, ')}`);
115
+ recommendations.push(`Module ${module.module} has ${module.unusedExports.length} unused exports: ${module.unusedExports.join(', ')}`);
114
116
  }
115
117
 
116
118
  if (module.exports.length > 20) {
@@ -126,13 +128,13 @@ export class TreeShakingOptimizer {
126
128
  }
127
129
 
128
130
  // Optimize exports by removing unused ones
129
- optimizeExports(), string[]> {
131
+ optimizeExports(): Map<string, string[]> {
130
132
  const optimizedExports = new Map<string, string[]>();
131
133
 
132
134
  this.exportMap.forEach((exports, modulePath) => {
133
135
  if (this.config.removeUnused) {
134
136
  const usedExports = Array.from(exports).filter(exportName => {
135
- const key = `${modulePath}}`;
137
+ const key = `${modulePath}:${exportName}`;
136
138
  return (this.usageMap.get(key) || 0) > 0;
137
139
  });
138
140
  optimizedExports.set(modulePath, usedExports);
@@ -145,7 +147,8 @@ export class TreeShakingOptimizer {
145
147
  }
146
148
 
147
149
  // Check if module has side effects
148
- hasSideEffects(modulePath)) return false;
150
+ hasSideEffects(modulePath: string): boolean {
151
+ if (!this.config.preserveSideEffects) return false;
149
152
 
150
153
  // Check for common side effect patterns
151
154
  const sideEffectPatterns = [
@@ -163,8 +166,9 @@ export class TreeShakingOptimizer {
163
166
  }
164
167
 
165
168
  // Generate optimized import statements
166
- generateOptimizedImports(modulePath, imports])= imports.filter(importName => {
167
- const key = `${modulePath}}`;
169
+ generateOptimizedImports(modulePath: string, imports: string[]): string {
170
+ const usedImports = imports.filter(importName => {
171
+ const key = `${modulePath}:${importName}`;
168
172
  return (this.usageMap.get(key) || 0) > 0;
169
173
  });
170
174
 
@@ -180,11 +184,12 @@ export class TreeShakingOptimizer {
180
184
  }
181
185
 
182
186
  // Analyze bundle impact of tree-shaking
183
- analyzeBundleImpact();
184
- usedExports;
185
- unusedExports;
186
- potentialSavings;
187
- treeShakingEfficiency;
187
+ analyzeBundleImpact(): {
188
+ totalExports: number;
189
+ usedExports: number;
190
+ unusedExports: number;
191
+ potentialSavings: number;
192
+ treeShakingEfficiency: number;
188
193
  } {
189
194
  let totalExports = 0;
190
195
  let usedExports = 0;
@@ -205,7 +210,7 @@ export class TreeShakingOptimizer {
205
210
  });
206
211
  });
207
212
 
208
- const treeShakingEfficiency = totalExports > 0 ? (usedExports / totalExports) * 100 ;
213
+ const treeShakingEfficiency = totalExports > 0 ? (usedExports / totalExports) * 100 : 100;
209
214
  const potentialSavings = unusedExports * 0.5; // Estimate 0.5KB per unused export
210
215
 
211
216
  return {
@@ -218,19 +223,20 @@ export class TreeShakingOptimizer {
218
223
  }
219
224
 
220
225
  // Get tree-shaking statistics
221
- getStatistics();
222
- totalExports;
223
- averageExportsPerModule;
224
- treeShakingScore;
226
+ getStatistics(): {
227
+ modulesAnalyzed: number;
228
+ totalExports: number;
229
+ averageExportsPerModule: number;
230
+ treeShakingScore: number;
225
231
  } {
226
232
  const modulesAnalyzed = this.exportMap.size;
227
233
  const totalExports = Array.from(this.exportMap.values()).reduce((sum, exports) => sum + exports.size, 0);
228
- const averageExportsPerModule = modulesAnalyzed > 0 ? totalExports / modulesAnalyzed ;
234
+ const averageExportsPerModule = modulesAnalyzed > 0 ? totalExports / modulesAnalyzed : 0;
229
235
 
230
236
  const analysis = this.analyzeTreeShaking();
231
237
  const treeShakingScore = analysis.length > 0
232
238
  ? analysis.reduce((sum, module) => sum + module.treeShakingScore, 0) / analysis.length
233
- ;
239
+ : 100;
234
240
 
235
241
  return {
236
242
  modulesAnalyzed,
@@ -241,7 +247,8 @@ export class TreeShakingOptimizer {
241
247
  }
242
248
 
243
249
  // Export tree-shaking analysis
244
- exportAnalysis()= this.analyzeTreeShaking();
250
+ exportAnalysis(): string {
251
+ const analysis = this.analyzeTreeShaking();
245
252
  const impact = this.analyzeBundleImpact();
246
253
  const stats = this.getStatistics();
247
254
  const recommendations = this.generateTreeShakingRecommendations();
@@ -249,14 +256,15 @@ export class TreeShakingOptimizer {
249
256
  return JSON.stringify({
250
257
  analysis,
251
258
  impact,
252
- statistics,
259
+ statistics: stats,
253
260
  recommendations,
254
- timestamp).toISOString()
261
+ timestamp: new Date().toISOString()
255
262
  }, null, 2);
256
263
  }
257
264
 
258
265
  // Reset all data
259
- reset());
266
+ reset(): void {
267
+ this.exportMap.clear();
260
268
  this.importMap.clear();
261
269
  this.usageMap.clear();
262
270
  }
@@ -1,35 +1,35 @@
1
1
  // Tree-shaking utilities for optimizing bundle size
2
2
  export interface ExportAnalysis {
3
- module;
4
- exports];
5
- usedExports];
6
- unusedExports];
7
- importCount;
8
- treeShakingScore;
3
+ module: string;
4
+ exports: string[];
5
+ usedExports: string[];
6
+ unusedExports: string[];
7
+ importCount: number;
8
+ treeShakingScore: number;
9
9
  }
10
10
 
11
11
  export interface TreeShakingConfig {
12
- enabled;
13
- analyzeExports;
14
- removeUnused;
15
- preserveSideEffects;
16
- modulesToAnalyze];
17
- excludePatterns];
12
+ enabled: boolean;
13
+ analyzeExports: boolean;
14
+ removeUnused: boolean;
15
+ preserveSideEffects: boolean;
16
+ modulesToAnalyze: string[];
17
+ excludePatterns: string[];
18
18
  }
19
19
 
20
20
  export class TreeShakingOptimizer {
21
- private config;
22
- private exportMap, Set<string>>;
23
- private importMap, Set<string>>;
24
- private usageMap, number>;
25
-
26
- constructor(config= {
27
- enabled,
28
- analyzeExports,
29
- removeUnused,
30
- preserveSideEffects,
31
- modulesToAnalyze],
32
- excludePatterns]
21
+ private config: TreeShakingConfig;
22
+ private exportMap: Map<string, Set<string>>;
23
+ private importMap: Map<string, Set<string>>;
24
+ private usageMap: Map<string, number>;
25
+
26
+ constructor(config: TreeShakingConfig = {
27
+ enabled: true,
28
+ analyzeExports: true,
29
+ removeUnused: true,
30
+ preserveSideEffects: true,
31
+ modulesToAnalyze: [],
32
+ excludePatterns: []
33
33
  }) {
34
34
  this.config = config;
35
35
  this.exportMap = new Map();
@@ -38,21 +38,23 @@ export class TreeShakingOptimizer {
38
38
  }
39
39
 
40
40
  // Analyze module exports
41
- analyzeModuleExports(modulePath, exports])) return;
41
+ analyzeModuleExports(modulePath: string, exports: string[]): void {
42
+ if (!this.config.analyzeExports) return;
42
43
 
43
44
  this.exportMap.set(modulePath, new Set(exports));
44
45
 
45
46
  // Initialize usage count for each export
46
47
  exports.forEach(exportName => {
47
- const key = `${modulePath}}`;
48
+ const key = `${modulePath}:${exportName}`;
48
49
  this.usageMap.set(key, 0);
49
50
  });
50
51
  }
51
52
 
52
53
  // Track import usage
53
- trackImport(modulePath, importName)) return;
54
+ trackImport(modulePath: string, importName: string): void {
55
+ if (!this.config.enabled) return;
54
56
 
55
- const key = `${modulePath}}`;
57
+ const key = `${modulePath}:${importName}`;
56
58
  const currentUsage = this.usageMap.get(key) || 0;
57
59
  this.usageMap.set(key, currentUsage + 1);
58
60
 
@@ -64,16 +66,16 @@ export class TreeShakingOptimizer {
64
66
  }
65
67
 
66
68
  // Analyze tree-shaking effectiveness
67
- analyzeTreeShaking()] {
68
- const analysis] = [];
69
+ analyzeTreeShaking(): ExportAnalysis[] {
70
+ const analysis: ExportAnalysis[] = [];
69
71
 
70
72
  this.exportMap.forEach((exports, modulePath) => {
71
- const usedExports] = [];
72
- const unusedExports] = [];
73
+ const usedExports: string[] = [];
74
+ const unusedExports: string[] = [];
73
75
  let totalUsage = 0;
74
76
 
75
77
  exports.forEach(exportName => {
76
- const key = `${modulePath}}`;
78
+ const key = `${modulePath}:${exportName}`;
77
79
  const usage = this.usageMap.get(key) || 0;
78
80
  totalUsage += usage;
79
81
 
@@ -84,14 +86,14 @@ export class TreeShakingOptimizer {
84
86
  }
85
87
  });
86
88
 
87
- const treeShakingScore = exports.size > 0 ? (usedExports.length / exports.size) * 100 ;
89
+ const treeShakingScore = exports.size > 0 ? (usedExports.length / exports.size) * 100 : 100;
88
90
 
89
91
  analysis.push({
90
- module,
91
- exports),
92
+ module: modulePath,
93
+ exports: Array.from(exports),
92
94
  usedExports,
93
95
  unusedExports,
94
- importCount,
96
+ importCount: totalUsage,
95
97
  treeShakingScore
96
98
  });
97
99
  });
@@ -100,9 +102,9 @@ export class TreeShakingOptimizer {
100
102
  }
101
103
 
102
104
  // Generate tree-shaking recommendations
103
- generateTreeShakingRecommendations()] {
105
+ generateTreeShakingRecommendations(): string[] {
104
106
  const analysis = this.analyzeTreeShaking();
105
- const recommendations] = [];
107
+ const recommendations: string[] = [];
106
108
 
107
109
  analysis.forEach(module => {
108
110
  if (module.treeShakingScore < 50) {
@@ -110,7 +112,7 @@ export class TreeShakingOptimizer {
110
112
  }
111
113
 
112
114
  if (module.unusedExports.length > 0) {
113
- recommendations.push(`Module ${module.module} has ${module.unusedExports.length} unused exports, ')}`);
115
+ recommendations.push(`Module ${module.module} has ${module.unusedExports.length} unused exports: ${module.unusedExports.join(', ')}`);
114
116
  }
115
117
 
116
118
  if (module.exports.length > 20) {
@@ -126,13 +128,13 @@ export class TreeShakingOptimizer {
126
128
  }
127
129
 
128
130
  // Optimize exports by removing unused ones
129
- optimizeExports(), string[]> {
131
+ optimizeExports(): Map<string, string[]> {
130
132
  const optimizedExports = new Map<string, string[]>();
131
133
 
132
134
  this.exportMap.forEach((exports, modulePath) => {
133
135
  if (this.config.removeUnused) {
134
136
  const usedExports = Array.from(exports).filter(exportName => {
135
- const key = `${modulePath}}`;
137
+ const key = `${modulePath}:${exportName}`;
136
138
  return (this.usageMap.get(key) || 0) > 0;
137
139
  });
138
140
  optimizedExports.set(modulePath, usedExports);
@@ -145,7 +147,8 @@ export class TreeShakingOptimizer {
145
147
  }
146
148
 
147
149
  // Check if module has side effects
148
- hasSideEffects(modulePath)) return false;
150
+ hasSideEffects(modulePath: string): boolean {
151
+ if (!this.config.preserveSideEffects) return false;
149
152
 
150
153
  // Check for common side effect patterns
151
154
  const sideEffectPatterns = [
@@ -163,8 +166,9 @@ export class TreeShakingOptimizer {
163
166
  }
164
167
 
165
168
  // Generate optimized import statements
166
- generateOptimizedImports(modulePath, imports])= imports.filter(importName => {
167
- const key = `${modulePath}}`;
169
+ generateOptimizedImports(modulePath: string, imports: string[]): string {
170
+ const usedImports = imports.filter(importName => {
171
+ const key = `${modulePath}:${importName}`;
168
172
  return (this.usageMap.get(key) || 0) > 0;
169
173
  });
170
174
 
@@ -180,11 +184,12 @@ export class TreeShakingOptimizer {
180
184
  }
181
185
 
182
186
  // Analyze bundle impact of tree-shaking
183
- analyzeBundleImpact();
184
- usedExports;
185
- unusedExports;
186
- potentialSavings;
187
- treeShakingEfficiency;
187
+ analyzeBundleImpact(): {
188
+ totalExports: number;
189
+ usedExports: number;
190
+ unusedExports: number;
191
+ potentialSavings: number;
192
+ treeShakingEfficiency: number;
188
193
  } {
189
194
  let totalExports = 0;
190
195
  let usedExports = 0;
@@ -205,7 +210,7 @@ export class TreeShakingOptimizer {
205
210
  });
206
211
  });
207
212
 
208
- const treeShakingEfficiency = totalExports > 0 ? (usedExports / totalExports) * 100 ;
213
+ const treeShakingEfficiency = totalExports > 0 ? (usedExports / totalExports) * 100 : 100;
209
214
  const potentialSavings = unusedExports * 0.5; // Estimate 0.5KB per unused export
210
215
 
211
216
  return {
@@ -218,19 +223,20 @@ export class TreeShakingOptimizer {
218
223
  }
219
224
 
220
225
  // Get tree-shaking statistics
221
- getStatistics();
222
- totalExports;
223
- averageExportsPerModule;
224
- treeShakingScore;
226
+ getStatistics(): {
227
+ modulesAnalyzed: number;
228
+ totalExports: number;
229
+ averageExportsPerModule: number;
230
+ treeShakingScore: number;
225
231
  } {
226
232
  const modulesAnalyzed = this.exportMap.size;
227
233
  const totalExports = Array.from(this.exportMap.values()).reduce((sum, exports) => sum + exports.size, 0);
228
- const averageExportsPerModule = modulesAnalyzed > 0 ? totalExports / modulesAnalyzed ;
234
+ const averageExportsPerModule = modulesAnalyzed > 0 ? totalExports / modulesAnalyzed : 0;
229
235
 
230
236
  const analysis = this.analyzeTreeShaking();
231
237
  const treeShakingScore = analysis.length > 0
232
238
  ? analysis.reduce((sum, module) => sum + module.treeShakingScore, 0) / analysis.length
233
- ;
239
+ : 100;
234
240
 
235
241
  return {
236
242
  modulesAnalyzed,
@@ -241,7 +247,8 @@ export class TreeShakingOptimizer {
241
247
  }
242
248
 
243
249
  // Export tree-shaking analysis
244
- exportAnalysis()= this.analyzeTreeShaking();
250
+ exportAnalysis(): string {
251
+ const analysis = this.analyzeTreeShaking();
245
252
  const impact = this.analyzeBundleImpact();
246
253
  const stats = this.getStatistics();
247
254
  const recommendations = this.generateTreeShakingRecommendations();
@@ -249,14 +256,15 @@ export class TreeShakingOptimizer {
249
256
  return JSON.stringify({
250
257
  analysis,
251
258
  impact,
252
- statistics,
259
+ statistics: stats,
253
260
  recommendations,
254
- timestamp).toISOString()
261
+ timestamp: new Date().toISOString()
255
262
  }, null, 2);
256
263
  }
257
264
 
258
265
  // Reset all data
259
- reset());
266
+ reset(): void {
267
+ this.exportMap.clear();
260
268
  this.importMap.clear();
261
269
  this.usageMap.clear();
262
270
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rakeyshgidwani/roger-ui-bank-theme-stan-design",
3
- "version": "0.2.9",
3
+ "version": "0.2.11",
4
4
  "description": "Roger UI stan-design theme - Complete design system with components, styles, and utilities",
5
5
  "keywords": [
6
6
  "design-system",