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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/components/ui/accessibility-demo.esm.js +30 -24
  3. package/dist/components/ui/accessibility-demo.js +30 -24
  4. package/dist/components/ui/advanced-component-architecture-demo.esm.js +235 -179
  5. package/dist/components/ui/advanced-component-architecture-demo.js +235 -179
  6. package/dist/components/ui/advanced-transition-system-demo.esm.js +110 -64
  7. package/dist/components/ui/advanced-transition-system-demo.js +110 -64
  8. package/dist/components/ui/advanced-transition-system.esm.js +166 -122
  9. package/dist/components/ui/advanced-transition-system.js +166 -122
  10. package/dist/components/ui/animation/animated-container.esm.js +52 -29
  11. package/dist/components/ui/animation/animated-container.js +52 -29
  12. package/dist/components/ui/animation/staggered-container.esm.js +18 -9
  13. package/dist/components/ui/animation/staggered-container.js +18 -9
  14. package/dist/components/ui/animation-demo.esm.js +67 -35
  15. package/dist/components/ui/animation-demo.js +67 -35
  16. package/dist/components/ui/badge.esm.js +9 -6
  17. package/dist/components/ui/badge.js +9 -6
  18. package/dist/components/ui/battery-conscious-animation-demo.esm.js +122 -87
  19. package/dist/components/ui/battery-conscious-animation-demo.js +122 -87
  20. package/dist/components/ui/border-radius-shadow-demo.esm.js +23 -12
  21. package/dist/components/ui/border-radius-shadow-demo.js +23 -12
  22. package/dist/components/ui/button.esm.js +8 -2
  23. package/dist/components/ui/button.js +8 -2
  24. package/dist/components/ui/card.esm.js +33 -8
  25. package/dist/components/ui/card.js +33 -8
  26. package/dist/components/ui/checkbox.esm.js +3 -3
  27. package/dist/components/ui/checkbox.js +3 -3
  28. package/dist/components/ui/color-preview.esm.js +68 -45
  29. package/dist/components/ui/color-preview.js +68 -45
  30. package/dist/components/ui/data-display/chart.esm.js +112 -84
  31. package/dist/components/ui/data-display/chart.js +112 -84
  32. package/dist/components/ui/data-display/data-grid-simple.esm.js +1 -1
  33. package/dist/components/ui/data-display/data-grid-simple.js +1 -1
  34. package/dist/components/ui/data-display/data-grid.esm.js +80 -67
  35. package/dist/components/ui/data-display/data-grid.js +80 -67
  36. package/dist/components/ui/data-display/list.esm.js +53 -45
  37. package/dist/components/ui/data-display/list.js +53 -45
  38. package/dist/components/ui/data-display/table.esm.js +62 -54
  39. package/dist/components/ui/data-display/table.js +62 -54
  40. package/dist/components/ui/data-display/timeline.esm.js +39 -34
  41. package/dist/components/ui/data-display/timeline.js +39 -34
  42. package/dist/components/ui/data-display/tree.esm.js +116 -84
  43. package/dist/components/ui/data-display/tree.js +116 -84
  44. package/dist/components/ui/data-display/types.esm.js +389 -364
  45. package/dist/components/ui/data-display/types.js +389 -364
  46. package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +120 -70
  47. package/dist/components/ui/enterprise-mobile-experience-demo.js +120 -70
  48. package/dist/components/ui/enterprise-mobile-experience.esm.js +124 -73
  49. package/dist/components/ui/enterprise-mobile-experience.js +124 -73
  50. package/dist/components/ui/feedback/alert.esm.js +22 -15
  51. package/dist/components/ui/feedback/alert.js +22 -15
  52. package/dist/components/ui/feedback/progress.esm.js +47 -24
  53. package/dist/components/ui/feedback/progress.js +47 -24
  54. package/dist/components/ui/feedback/skeleton.esm.js +39 -29
  55. package/dist/components/ui/feedback/skeleton.js +39 -29
  56. package/dist/components/ui/feedback/toast.esm.js +62 -38
  57. package/dist/components/ui/feedback/toast.js +62 -38
  58. package/dist/components/ui/feedback/types.esm.js +83 -83
  59. package/dist/components/ui/feedback/types.js +83 -83
  60. package/dist/components/ui/font-preview.esm.js +41 -39
  61. package/dist/components/ui/font-preview.js +41 -39
  62. package/dist/components/ui/form-demo.esm.js +150 -113
  63. package/dist/components/ui/form-demo.js +150 -113
  64. package/dist/components/ui/hardware-acceleration-demo.esm.js +137 -87
  65. package/dist/components/ui/hardware-acceleration-demo.js +137 -87
  66. package/dist/components/ui/input.esm.js +4 -1
  67. package/dist/components/ui/input.js +4 -1
  68. package/dist/components/ui/layout-demo.esm.js +81 -56
  69. package/dist/components/ui/layout-demo.js +81 -56
  70. package/dist/components/ui/layouts/adaptive-layout.esm.js +27 -8
  71. package/dist/components/ui/layouts/adaptive-layout.js +27 -8
  72. package/dist/components/ui/layouts/desktop-layout.esm.js +39 -19
  73. package/dist/components/ui/layouts/desktop-layout.js +39 -19
  74. package/dist/components/ui/layouts/mobile-layout.esm.js +19 -9
  75. package/dist/components/ui/layouts/mobile-layout.js +19 -9
  76. package/dist/components/ui/layouts/tablet-layout.esm.js +28 -14
  77. package/dist/components/ui/layouts/tablet-layout.js +28 -14
  78. package/dist/components/ui/mobile-form-validation.esm.js +120 -87
  79. package/dist/components/ui/mobile-form-validation.js +120 -87
  80. package/dist/components/ui/mobile-input-demo.esm.js +19 -13
  81. package/dist/components/ui/mobile-input-demo.js +19 -13
  82. package/dist/components/ui/mobile-input.esm.js +185 -120
  83. package/dist/components/ui/mobile-input.js +185 -120
  84. package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +128 -111
  85. package/dist/components/ui/mobile-skeleton-loading-demo.js +128 -111
  86. package/dist/components/ui/navigation/breadcrumb.esm.js +17 -14
  87. package/dist/components/ui/navigation/breadcrumb.js +17 -14
  88. package/dist/components/ui/navigation/index.esm.js +23 -1
  89. package/dist/components/ui/navigation/index.js +23 -1
  90. package/dist/components/ui/navigation/menu.esm.js +49 -35
  91. package/dist/components/ui/navigation/menu.js +49 -35
  92. package/dist/components/ui/navigation/navigation-demo.esm.js +81 -74
  93. package/dist/components/ui/navigation/navigation-demo.js +81 -74
  94. package/dist/components/ui/navigation/pagination.esm.js +62 -50
  95. package/dist/components/ui/navigation/pagination.js +62 -50
  96. package/dist/components/ui/navigation/sidebar.esm.js +56 -42
  97. package/dist/components/ui/navigation/sidebar.js +56 -42
  98. package/dist/components/ui/navigation/stepper.esm.js +34 -23
  99. package/dist/components/ui/navigation/stepper.js +34 -23
  100. package/dist/components/ui/navigation/tabs.esm.js +32 -21
  101. package/dist/components/ui/navigation/tabs.js +32 -21
  102. package/dist/components/ui/navigation/types.esm.js +196 -195
  103. package/dist/components/ui/navigation/types.js +196 -195
  104. package/dist/components/ui/overlay/backdrop.esm.js +17 -16
  105. package/dist/components/ui/overlay/backdrop.js +17 -16
  106. package/dist/components/ui/overlay/focus-manager.esm.js +21 -19
  107. package/dist/components/ui/overlay/focus-manager.js +21 -19
  108. package/dist/components/ui/overlay/index.esm.js +22 -2
  109. package/dist/components/ui/overlay/index.js +22 -2
  110. package/dist/components/ui/overlay/modal.esm.js +38 -34
  111. package/dist/components/ui/overlay/modal.js +38 -34
  112. package/dist/components/ui/overlay/overlay-manager.esm.js +25 -20
  113. package/dist/components/ui/overlay/overlay-manager.js +25 -20
  114. package/dist/components/ui/overlay/popover.esm.js +74 -58
  115. package/dist/components/ui/overlay/popover.js +74 -58
  116. package/dist/components/ui/overlay/portal.esm.js +7 -7
  117. package/dist/components/ui/overlay/portal.js +7 -7
  118. package/dist/components/ui/overlay/tooltip.esm.js +54 -39
  119. package/dist/components/ui/overlay/tooltip.js +54 -39
  120. package/dist/components/ui/overlay/types.esm.js +132 -131
  121. package/dist/components/ui/overlay/types.js +132 -131
  122. package/dist/components/ui/performance-demo.esm.js +135 -88
  123. package/dist/components/ui/performance-demo.js +135 -88
  124. package/dist/components/ui/semantic-input-system-demo.esm.js +117 -80
  125. package/dist/components/ui/semantic-input-system-demo.js +117 -80
  126. package/dist/components/ui/theme-customizer.esm.js +84 -52
  127. package/dist/components/ui/theme-customizer.js +84 -52
  128. package/dist/components/ui/theme-preview.esm.js +95 -43
  129. package/dist/components/ui/theme-preview.js +95 -43
  130. package/dist/components/ui/theme-switcher.esm.js +70 -44
  131. package/dist/components/ui/theme-switcher.js +70 -44
  132. package/dist/components/ui/theme-toggle.esm.js +3 -3
  133. package/dist/components/ui/theme-toggle.js +3 -3
  134. package/dist/components/ui/token-demo.esm.js +33 -21
  135. package/dist/components/ui/token-demo.js +33 -21
  136. package/dist/components/ui/touch-demo.esm.js +102 -73
  137. package/dist/components/ui/touch-demo.js +102 -73
  138. package/dist/components/ui/touch-friendly-interface-demo.esm.js +102 -64
  139. package/dist/components/ui/touch-friendly-interface-demo.js +102 -64
  140. package/dist/components/ui/touch-friendly-interface.esm.js +85 -61
  141. package/dist/components/ui/touch-friendly-interface.js +85 -61
  142. package/dist/hooks/use-accessibility-support.esm.js +115 -85
  143. package/dist/hooks/use-accessibility-support.js +115 -85
  144. package/dist/hooks/use-adaptive-layout.esm.js +56 -33
  145. package/dist/hooks/use-adaptive-layout.js +56 -33
  146. package/dist/hooks/use-advanced-patterns.esm.js +57 -42
  147. package/dist/hooks/use-advanced-patterns.js +57 -42
  148. package/dist/hooks/use-advanced-transition-system.esm.js +112 -71
  149. package/dist/hooks/use-advanced-transition-system.js +112 -71
  150. package/dist/hooks/use-animation-profile.esm.js +63 -34
  151. package/dist/hooks/use-animation-profile.js +63 -34
  152. package/dist/hooks/use-battery-animations.esm.js +80 -55
  153. package/dist/hooks/use-battery-animations.js +80 -55
  154. package/dist/hooks/use-battery-conscious-loading.esm.js +166 -123
  155. package/dist/hooks/use-battery-conscious-loading.js +166 -123
  156. package/dist/hooks/use-battery-optimization.esm.js +78 -55
  157. package/dist/hooks/use-battery-optimization.js +78 -55
  158. package/dist/hooks/use-battery-status.esm.js +73 -51
  159. package/dist/hooks/use-battery-status.js +73 -51
  160. package/dist/hooks/use-component-performance.esm.js +62 -47
  161. package/dist/hooks/use-component-performance.js +62 -47
  162. package/dist/hooks/use-device-loading-states.esm.js +152 -109
  163. package/dist/hooks/use-device-loading-states.js +152 -109
  164. package/dist/hooks/use-device.esm.js +25 -14
  165. package/dist/hooks/use-device.js +25 -14
  166. package/dist/hooks/use-enterprise-mobile-experience.esm.js +137 -88
  167. package/dist/hooks/use-enterprise-mobile-experience.js +137 -88
  168. package/dist/hooks/use-form-feedback.esm.js +124 -81
  169. package/dist/hooks/use-form-feedback.js +124 -81
  170. package/dist/hooks/use-form-performance.esm.js +127 -92
  171. package/dist/hooks/use-form-performance.js +127 -92
  172. package/dist/hooks/use-frame-rate.esm.js +56 -37
  173. package/dist/hooks/use-frame-rate.js +56 -37
  174. package/dist/hooks/use-gestures.esm.js +96 -72
  175. package/dist/hooks/use-gestures.js +96 -72
  176. package/dist/hooks/use-hardware-acceleration.esm.js +65 -37
  177. package/dist/hooks/use-hardware-acceleration.js +65 -37
  178. package/dist/hooks/use-input-accessibility.esm.js +157 -119
  179. package/dist/hooks/use-input-accessibility.js +157 -119
  180. package/dist/hooks/use-input-performance.esm.js +139 -104
  181. package/dist/hooks/use-input-performance.js +139 -104
  182. package/dist/hooks/use-layout-performance.esm.js +50 -29
  183. package/dist/hooks/use-layout-performance.js +50 -29
  184. package/dist/hooks/use-loading-accessibility.esm.js +209 -169
  185. package/dist/hooks/use-loading-accessibility.js +209 -169
  186. package/dist/hooks/use-loading-performance.esm.js +117 -93
  187. package/dist/hooks/use-loading-performance.js +117 -93
  188. package/dist/hooks/use-memory-usage.esm.js +57 -38
  189. package/dist/hooks/use-memory-usage.js +57 -38
  190. package/dist/hooks/use-mobile-form-layout.esm.js +111 -74
  191. package/dist/hooks/use-mobile-form-layout.js +111 -74
  192. package/dist/hooks/use-mobile-form-validation.esm.js +211 -144
  193. package/dist/hooks/use-mobile-form-validation.js +211 -144
  194. package/dist/hooks/use-mobile-keyboard-optimization.esm.js +154 -113
  195. package/dist/hooks/use-mobile-keyboard-optimization.js +154 -113
  196. package/dist/hooks/use-mobile-layout.esm.js +73 -51
  197. package/dist/hooks/use-mobile-layout.js +73 -51
  198. package/dist/hooks/use-mobile-optimization.esm.js +72 -44
  199. package/dist/hooks/use-mobile-optimization.js +72 -44
  200. package/dist/hooks/use-mobile-skeleton.esm.js +97 -64
  201. package/dist/hooks/use-mobile-skeleton.js +97 -64
  202. package/dist/hooks/use-mobile-touch.esm.js +128 -93
  203. package/dist/hooks/use-mobile-touch.js +128 -93
  204. package/dist/hooks/use-performance-throttling.esm.js +72 -48
  205. package/dist/hooks/use-performance-throttling.js +72 -48
  206. package/dist/hooks/use-performance.esm.js +90 -52
  207. package/dist/hooks/use-performance.js +90 -52
  208. package/dist/hooks/use-reusable-architecture.esm.js +94 -65
  209. package/dist/hooks/use-reusable-architecture.js +94 -65
  210. package/dist/hooks/use-semantic-input-types.esm.js +166 -124
  211. package/dist/hooks/use-semantic-input-types.js +166 -124
  212. package/dist/hooks/use-semantic-input.esm.js +178 -126
  213. package/dist/hooks/use-semantic-input.js +178 -126
  214. package/dist/hooks/use-tablet-layout.esm.js +67 -38
  215. package/dist/hooks/use-tablet-layout.js +67 -38
  216. package/dist/hooks/use-touch-friendly-input.esm.js +193 -149
  217. package/dist/hooks/use-touch-friendly-input.js +193 -149
  218. package/dist/hooks/use-touch-friendly-interface.esm.js +99 -67
  219. package/dist/hooks/use-touch-friendly-interface.js +99 -67
  220. package/dist/hooks/use-touch-optimization.esm.js +99 -72
  221. package/dist/hooks/use-touch-optimization.js +99 -72
  222. package/dist/index.esm.js +289 -280
  223. package/dist/index.js +289 -280
  224. package/dist/lib/utils.esm.js +1 -1
  225. package/dist/lib/utils.js +1 -1
  226. package/dist/plugins/theme-css-generator.esm.js +104 -55
  227. package/dist/plugins/theme-css-generator.js +104 -55
  228. package/dist/provider.esm.js +4 -4
  229. package/dist/provider.js +4 -4
  230. package/dist/styles.css +1 -1
  231. package/dist/theme.esm.js +633 -468
  232. package/dist/theme.js +633 -468
  233. package/dist/themes/ThemeContext.esm.js +15 -15
  234. package/dist/themes/ThemeContext.js +15 -15
  235. package/dist/themes/ThemeProvider.esm.js +25 -22
  236. package/dist/themes/ThemeProvider.js +25 -22
  237. package/dist/themes/accessibility.esm.js +147 -108
  238. package/dist/themes/accessibility.js +147 -108
  239. package/dist/themes/aria-patterns.esm.js +198 -162
  240. package/dist/themes/aria-patterns.js +198 -162
  241. package/dist/themes/base-themes.esm.js +14 -11
  242. package/dist/themes/base-themes.js +14 -11
  243. package/dist/themes/colorManager.esm.js +101 -83
  244. package/dist/themes/colorManager.js +101 -83
  245. package/dist/themes/examples/dark-theme.esm.js +133 -103
  246. package/dist/themes/examples/dark-theme.js +133 -103
  247. package/dist/themes/examples/minimal-theme.esm.js +83 -61
  248. package/dist/themes/examples/minimal-theme.js +83 -61
  249. package/dist/themes/focus-management.esm.js +202 -143
  250. package/dist/themes/focus-management.js +202 -143
  251. package/dist/themes/fontLoader.esm.js +28 -19
  252. package/dist/themes/fontLoader.js +28 -19
  253. package/dist/themes/high-contrast.esm.js +152 -104
  254. package/dist/themes/high-contrast.js +152 -104
  255. package/dist/themes/inheritance.esm.js +35 -27
  256. package/dist/themes/inheritance.js +35 -27
  257. package/dist/themes/keyboard-navigation.esm.js +152 -123
  258. package/dist/themes/keyboard-navigation.js +152 -123
  259. package/dist/themes/motion-reduction.esm.js +193 -133
  260. package/dist/themes/motion-reduction.js +193 -133
  261. package/dist/themes/navigation.esm.js +146 -146
  262. package/dist/themes/navigation.js +146 -146
  263. package/dist/themes/screen-reader.esm.js +159 -94
  264. package/dist/themes/screen-reader.js +159 -94
  265. package/dist/themes/systemThemeDetector.esm.js +42 -34
  266. package/dist/themes/systemThemeDetector.js +42 -34
  267. package/dist/themes/themeCSSUpdater.esm.js +21 -9
  268. package/dist/themes/themeCSSUpdater.js +21 -9
  269. package/dist/themes/themePersistence.esm.js +68 -47
  270. package/dist/themes/themePersistence.js +68 -47
  271. package/dist/themes/themes/stan-design.esm.js +633 -468
  272. package/dist/themes/themes/stan-design.js +633 -468
  273. package/dist/themes/types.esm.js +301 -287
  274. package/dist/themes/types.js +301 -287
  275. package/dist/themes/useSystemTheme.esm.js +4 -4
  276. package/dist/themes/useSystemTheme.js +4 -4
  277. package/dist/themes/useTheme.esm.js +4 -4
  278. package/dist/themes/useTheme.js +4 -4
  279. package/dist/themes/validation.esm.js +128 -77
  280. package/dist/themes/validation.js +128 -77
  281. package/dist/tokens/index.esm.js +15 -4
  282. package/dist/tokens/index.js +15 -4
  283. package/dist/tokens/tokenExporter.esm.js +87 -61
  284. package/dist/tokens/tokenExporter.js +87 -61
  285. package/dist/tokens/tokenGenerator.esm.js +86 -77
  286. package/dist/tokens/tokenGenerator.js +86 -77
  287. package/dist/tokens/tokenManager.esm.js +64 -51
  288. package/dist/tokens/tokenManager.js +64 -51
  289. package/dist/tokens/tokenValidator.esm.js +193 -147
  290. package/dist/tokens/tokenValidator.js +193 -147
  291. package/dist/tokens/types.esm.js +49 -35
  292. package/dist/tokens/types.js +49 -35
  293. package/dist/utils/bundle-analyzer.esm.js +83 -65
  294. package/dist/utils/bundle-analyzer.js +83 -65
  295. package/dist/utils/bundle-splitting.esm.js +142 -117
  296. package/dist/utils/bundle-splitting.js +142 -117
  297. package/dist/utils/lazy-loading.esm.js +132 -106
  298. package/dist/utils/lazy-loading.js +132 -106
  299. package/dist/utils/performance-monitor.esm.js +170 -129
  300. package/dist/utils/performance-monitor.js +170 -129
  301. package/dist/utils/tree-shaking.esm.js +69 -61
  302. package/dist/utils/tree-shaking.js +69 -61
  303. package/package.json +1 -1
  304. package/src/index.ts +146 -146
@@ -1,64 +1,78 @@
1
1
  export interface DesignToken {
2
- value;
3
- type;
4
- description?;
5
- category?;
6
- tags?];
2
+ value: string | number;
3
+ type: TokenType;
4
+ description?: string;
5
+ category?: string;
6
+ tags?: string[];
7
7
  }
8
8
 
9
-
9
+ export type TokenType =
10
+ | 'color'
11
+ | 'fontFamily'
12
+ | 'fontSize'
13
+ | 'fontWeight'
14
+ | 'lineHeight'
15
+ | 'letterSpacing'
16
+ | 'spacing'
17
+ | 'borderRadius'
18
+ | 'shadow'
19
+ | 'transition'
20
+ | 'zIndex'
21
+ | 'breakpoint';
10
22
 
11
23
  export interface ColorToken extends DesignToken {
12
- type;
13
- value;
14
- contrast?;
15
- dark;
24
+ type: 'color';
25
+ value: string;
26
+ contrast?: {
27
+ light: string;
28
+ dark: string;
16
29
  };
17
- semantic?;
30
+ semantic?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'error' | 'neutral';
18
31
  }
19
32
 
20
33
  export interface FontToken extends DesignToken {
21
- type;
22
- value;
34
+ type: 'fontFamily' | 'fontSize' | 'fontWeight' | 'lineHeight' | 'letterSpacing';
35
+ value: string | number;
23
36
  }
24
37
 
25
38
  export interface SpacingToken extends DesignToken {
26
- type;
27
- value;
28
- unit?;
39
+ type: 'spacing';
40
+ value: number;
41
+ unit?: 'px' | 'rem' | 'em';
29
42
  }
30
43
 
31
44
  export interface ShadowToken extends DesignToken {
32
- type;
33
- value;
34
- elevation?;
45
+ type: 'shadow';
46
+ value: string;
47
+ elevation?: 'low' | 'medium' | 'high';
35
48
  }
36
49
 
37
50
  export interface TransitionToken extends DesignToken {
38
- type;
39
- value;
40
- easing?;
51
+ type: 'transition';
52
+ value: string;
53
+ easing?: 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out';
41
54
  }
42
55
 
43
56
  export interface TokenGroup {
44
- [key];
57
+ [key: string]: DesignToken | TokenGroup;
45
58
  }
46
59
 
47
60
  export interface ThemeTokens {
48
- theme;
49
- version;
50
- tokens;
51
- font?;
52
- spacing?;
53
- shadow?;
54
- transition?;
55
- breakpoint?;
61
+ theme: string;
62
+ version: string;
63
+ tokens: {
64
+ color?: TokenGroup;
65
+ font?: TokenGroup;
66
+ spacing?: TokenGroup;
67
+ shadow?: TokenGroup;
68
+ transition?: TokenGroup;
69
+ breakpoint?: TokenGroup;
56
70
  };
57
71
  }
58
72
 
59
73
  export interface TokenExportOptions {
60
- format;
61
- platform?;
62
- includeMetadata?;
63
- includeComments?;
74
+ format: 'json' | 'css' | 'scss' | 'js' | 'ts';
75
+ platform?: 'web' | 'ios' | 'android' | 'figma';
76
+ includeMetadata?: boolean;
77
+ includeComments?: boolean;
64
78
  }
@@ -1,64 +1,78 @@
1
1
  export interface DesignToken {
2
- value;
3
- type;
4
- description?;
5
- category?;
6
- tags?];
2
+ value: string | number;
3
+ type: TokenType;
4
+ description?: string;
5
+ category?: string;
6
+ tags?: string[];
7
7
  }
8
8
 
9
-
9
+ export type TokenType =
10
+ | 'color'
11
+ | 'fontFamily'
12
+ | 'fontSize'
13
+ | 'fontWeight'
14
+ | 'lineHeight'
15
+ | 'letterSpacing'
16
+ | 'spacing'
17
+ | 'borderRadius'
18
+ | 'shadow'
19
+ | 'transition'
20
+ | 'zIndex'
21
+ | 'breakpoint';
10
22
 
11
23
  export interface ColorToken extends DesignToken {
12
- type;
13
- value;
14
- contrast?;
15
- dark;
24
+ type: 'color';
25
+ value: string;
26
+ contrast?: {
27
+ light: string;
28
+ dark: string;
16
29
  };
17
- semantic?;
30
+ semantic?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'error' | 'neutral';
18
31
  }
19
32
 
20
33
  export interface FontToken extends DesignToken {
21
- type;
22
- value;
34
+ type: 'fontFamily' | 'fontSize' | 'fontWeight' | 'lineHeight' | 'letterSpacing';
35
+ value: string | number;
23
36
  }
24
37
 
25
38
  export interface SpacingToken extends DesignToken {
26
- type;
27
- value;
28
- unit?;
39
+ type: 'spacing';
40
+ value: number;
41
+ unit?: 'px' | 'rem' | 'em';
29
42
  }
30
43
 
31
44
  export interface ShadowToken extends DesignToken {
32
- type;
33
- value;
34
- elevation?;
45
+ type: 'shadow';
46
+ value: string;
47
+ elevation?: 'low' | 'medium' | 'high';
35
48
  }
36
49
 
37
50
  export interface TransitionToken extends DesignToken {
38
- type;
39
- value;
40
- easing?;
51
+ type: 'transition';
52
+ value: string;
53
+ easing?: 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out';
41
54
  }
42
55
 
43
56
  export interface TokenGroup {
44
- [key];
57
+ [key: string]: DesignToken | TokenGroup;
45
58
  }
46
59
 
47
60
  export interface ThemeTokens {
48
- theme;
49
- version;
50
- tokens;
51
- font?;
52
- spacing?;
53
- shadow?;
54
- transition?;
55
- breakpoint?;
61
+ theme: string;
62
+ version: string;
63
+ tokens: {
64
+ color?: TokenGroup;
65
+ font?: TokenGroup;
66
+ spacing?: TokenGroup;
67
+ shadow?: TokenGroup;
68
+ transition?: TokenGroup;
69
+ breakpoint?: TokenGroup;
56
70
  };
57
71
  }
58
72
 
59
73
  export interface TokenExportOptions {
60
- format;
61
- platform?;
62
- includeMetadata?;
63
- includeComments?;
74
+ format: 'json' | 'css' | 'scss' | 'js' | 'ts';
75
+ platform?: 'web' | 'ios' | 'android' | 'figma';
76
+ includeMetadata?: boolean;
77
+ includeComments?: boolean;
64
78
  }
@@ -1,61 +1,65 @@
1
1
  // Bundle analysis and optimization utilities
2
2
  export interface BundleMetrics {
3
- totalSize;
4
- gzippedSize;
5
- moduleCount;
6
- chunkCount;
7
- largestChunks;
8
- size;
9
- gzippedSize;
10
- modules];
3
+ totalSize: number;
4
+ gzippedSize: number;
5
+ moduleCount: number;
6
+ chunkCount: number;
7
+ largestChunks: Array<{
8
+ name: string;
9
+ size: number;
10
+ gzippedSize: number;
11
+ modules: string[];
11
12
  }>;
12
- duplicateModules];
13
- unusedExports];
14
- optimizationScore;
13
+ duplicateModules: string[];
14
+ unusedExports: string[];
15
+ optimizationScore: number;
15
16
  }
16
17
 
17
18
  export interface PerformanceMetrics {
18
- buildTime;
19
- themeSwitchTime;
20
- componentRenderTime;
21
- memoryUsage;
22
- bundleLoadTime;
19
+ buildTime: number;
20
+ themeSwitchTime: number;
21
+ componentRenderTime: number;
22
+ memoryUsage: number;
23
+ bundleLoadTime: number;
23
24
  }
24
25
 
25
26
  export class BundleAnalyzer {
26
- private metrics;
27
- private performanceMetrics;
27
+ private metrics: BundleMetrics;
28
+ private performanceMetrics: PerformanceMetrics;
28
29
 
29
30
  constructor() {
30
31
  this.metrics = {
31
- totalSize,
32
- gzippedSize,
33
- moduleCount,
34
- chunkCount,
35
- largestChunks],
36
- duplicateModules],
37
- unusedExports],
38
- optimizationScore};
32
+ totalSize: 0,
33
+ gzippedSize: 0,
34
+ moduleCount: 0,
35
+ chunkCount: 0,
36
+ largestChunks: [],
37
+ duplicateModules: [],
38
+ unusedExports: [],
39
+ optimizationScore: 0
40
+ };
39
41
 
40
42
  this.performanceMetrics = {
41
- buildTime,
42
- themeSwitchTime,
43
- componentRenderTime,
44
- memoryUsage,
45
- bundleLoadTime};
43
+ buildTime: 0,
44
+ themeSwitchTime: 0,
45
+ componentRenderTime: 0,
46
+ memoryUsage: 0,
47
+ bundleLoadTime: 0
48
+ };
46
49
  }
47
50
 
48
51
  // Analyze bundle size from build output
49
- analyzeBundleSize(buildOutput)= buildOutput.split('\n');
52
+ analyzeBundleSize(buildOutput: string): BundleMetrics {
53
+ const lines = buildOutput.split('\n');
50
54
  let totalSize = 0;
51
55
  let gzippedSize = 0;
52
- const chunks; size; gzippedSize}> = [];
56
+ const chunks: Array<{ name: string; size: number; gzippedSize: number }> = [];
53
57
 
54
58
  // Parse build output for size information
55
59
  lines.forEach(line => {
56
60
  if (line.includes('dist/assets/') && line.includes('kB')) {
57
61
  // Updated regex to match Vite's output format more accurately
58
- const match = line.match(/dist\/assets\/([^.]+)\.[^.]+\.([^.]+)\s+(\d+\.\d+)\s+kB\s+\│\s+gzip)\s+kB/);
62
+ const match = line.match(/dist\/assets\/([^.]+)\.[^.]+\.([^.]+)\s+(\d+\.\d+)\s+kB\s+\│\s+gzip:\s+(\d+\.\d+)\s+kB/);
59
63
  if (match) {
60
64
  const [, name, ext, size, gzip] = match;
61
65
  const sizeKB = parseFloat(size);
@@ -65,20 +69,23 @@ export class BundleAnalyzer {
65
69
  gzippedSize += gzipKB;
66
70
 
67
71
  chunks.push({
68
- name}.${ext}`,
69
- size,
70
- gzippedSize});
72
+ name: `${name}.${ext}`,
73
+ size: sizeKB,
74
+ gzippedSize: gzipKB
75
+ });
71
76
  } else {
72
- // Fallback= line.match(/(\d+\.\d+)\s+kB/);
77
+ // Fallback: try to parse just the size information
78
+ const sizeMatch = line.match(/(\d+\.\d+)\s+kB/);
73
79
  if (sizeMatch) {
74
80
  const sizeKB = parseFloat(sizeMatch[1]);
75
81
  totalSize += sizeKB;
76
82
  gzippedSize += sizeKB * 0.3; // Estimate gzip size as 30% of original
77
83
 
78
84
  chunks.push({
79
- name,
80
- size,
81
- gzippedSize});
85
+ name: 'unknown',
86
+ size: sizeKB,
87
+ gzippedSize: sizeKB * 0.3
88
+ });
82
89
  }
83
90
  }
84
91
  }
@@ -90,26 +97,28 @@ export class BundleAnalyzer {
90
97
  this.metrics = {
91
98
  totalSize,
92
99
  gzippedSize,
93
- moduleCount),
94
- chunkCount,
95
- largestChunks, 5).map(chunk => ({
100
+ moduleCount: this.estimateModuleCount(totalSize),
101
+ chunkCount: chunks.length,
102
+ largestChunks: chunks.slice(0, 5).map(chunk => ({
96
103
  ...chunk,
97
- modules)
104
+ modules: this.estimateModulesForChunk(chunk.name)
98
105
  })),
99
- duplicateModules),
100
- unusedExports),
101
- optimizationScore)
106
+ duplicateModules: this.detectDuplicateModules(),
107
+ unusedExports: this.detectUnusedExports(),
108
+ optimizationScore: this.calculateOptimizationScore()
102
109
  };
103
110
 
104
111
  return this.metrics;
105
112
  }
106
113
 
107
114
  // Estimate module count based on bundle size
108
- private estimateModuleCount(bundleSizeKB));
115
+ private estimateModuleCount(bundleSizeKB: number): number {
116
+ // Rough estimation: average module size is ~2KB
117
+ return Math.round(bundleSizeKB / 2);
109
118
  }
110
119
 
111
120
  // Estimate modules for a specific chunk
112
- private estimateModulesForChunk(chunkName)] {
121
+ private estimateModulesForChunk(chunkName: string): string[] {
113
122
  // This would be more accurate with actual webpack/vite analysis
114
123
  // For now, provide reasonable estimates based on chunk names
115
124
  if (chunkName.includes('index')) {
@@ -123,21 +132,22 @@ export class BundleAnalyzer {
123
132
  }
124
133
 
125
134
  // Detect duplicate modules (simplified)
126
- private detectDuplicateModules()] {
135
+ private detectDuplicateModules(): string[] {
127
136
  // This would require actual bundle analysis
128
137
  // For now, return common duplicates
129
138
  return ['react', 'react-dom'];
130
139
  }
131
140
 
132
141
  // Detect unused exports (simplified)
133
- private detectUnusedExports()] {
142
+ private detectUnusedExports(): string[] {
134
143
  // This would require actual tree-shaking analysis
135
144
  // For now, return potential unused exports
136
145
  return ['legacy-theme', 'deprecated-utils'];
137
146
  }
138
147
 
139
148
  // Calculate optimization score (0-100)
140
- private calculateOptimizationScore()= 100;
149
+ private calculateOptimizationScore(): number {
150
+ let score = 100;
141
151
 
142
152
  // Penalize large bundle size
143
153
  if (this.metrics.totalSize > 500) score -= 20;
@@ -156,19 +166,23 @@ export class BundleAnalyzer {
156
166
  }
157
167
 
158
168
  // Get current metrics
159
- getMetrics()};
169
+ getMetrics(): BundleMetrics {
170
+ return { ...this.metrics };
160
171
  }
161
172
 
162
173
  // Get performance metrics
163
- getPerformanceMetrics()};
174
+ getPerformanceMetrics(): PerformanceMetrics {
175
+ return { ...this.performanceMetrics };
164
176
  }
165
177
 
166
178
  // Measure build time
167
- measureBuildTime(startTime)= Date.now() - startTime;
179
+ measureBuildTime(startTime: number): void {
180
+ this.performanceMetrics.buildTime = Date.now() - startTime;
168
181
  }
169
182
 
170
183
  // Measure theme switch performance
171
- measureThemeSwitch(callback) => void)= performance.now();
184
+ measureThemeSwitch(callback: () => void): number {
185
+ const startTime = performance.now();
172
186
  callback();
173
187
  const endTime = performance.now();
174
188
  const duration = endTime - startTime;
@@ -177,7 +191,8 @@ export class BundleAnalyzer {
177
191
  }
178
192
 
179
193
  // Measure component render performance
180
- measureComponentRender(callback) => void)= performance.now();
194
+ measureComponentRender(callback: () => void): number {
195
+ const startTime = performance.now();
181
196
  callback();
182
197
  const endTime = performance.now();
183
198
  const duration = endTime - startTime;
@@ -186,7 +201,8 @@ export class BundleAnalyzer {
186
201
  }
187
202
 
188
203
  // Get memory usage (if available)
189
- getMemoryUsage()) {
204
+ getMemoryUsage(): number {
205
+ if ('memory' in performance) {
190
206
  const memory = (performance as any).memory;
191
207
  this.performanceMetrics.memoryUsage = memory.usedJSHeapSize / 1024 / 1024; // MB
192
208
  return this.performanceMetrics.memoryUsage;
@@ -195,8 +211,8 @@ export class BundleAnalyzer {
195
211
  }
196
212
 
197
213
  // Generate optimization recommendations
198
- generateRecommendations()] {
199
- const recommendations] = [];
214
+ generateRecommendations(): string[] {
215
+ const recommendations: string[] = [];
200
216
 
201
217
  if (this.metrics.totalSize > 500) {
202
218
  recommendations.push('Bundle size is large. Consider code splitting and lazy loading.');
@@ -230,10 +246,12 @@ export class BundleAnalyzer {
230
246
  }
231
247
 
232
248
  // Export metrics for external analysis
233
- exportMetrics(),
234
- performance,
235
- recommendations),
236
- timestamp).toISOString()
249
+ exportMetrics(): string {
250
+ return JSON.stringify({
251
+ bundle: this.metrics,
252
+ performance: this.performanceMetrics,
253
+ recommendations: this.generateRecommendations(),
254
+ timestamp: new Date().toISOString()
237
255
  }, null, 2);
238
256
  }
239
257
  }