@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
@@ -2,49 +2,54 @@ import React, { useState, useCallback } from 'react';
2
2
  import { AlertProps, AlertAction } from './types';
3
3
 
4
4
  // Simple icon components
5
- const CheckCircleIcon}> = ({ className = '' }) => (
5
+ const CheckCircleIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
6
6
  <svg className={className} fill="currentColor" viewBox="0 0 20 20">
7
7
  <path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" />
8
8
  </svg>
9
9
  );
10
10
 
11
- const ExclamationTriangleIcon}> = ({ className = '' }) => (
11
+ const ExclamationTriangleIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
12
12
  <svg className={className} fill="currentColor" viewBox="0 0 20 20">
13
13
  <path fillRule="evenodd" d="M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z" clipRule="evenodd" />
14
14
  </svg>
15
15
  );
16
16
 
17
- const XCircleIcon}> = ({ className = '' }) => (
17
+ const XCircleIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
18
18
  <svg className={className} fill="currentColor" viewBox="0 0 20 20">
19
19
  <path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" />
20
20
  </svg>
21
21
  );
22
22
 
23
- const InformationCircleIcon}> = ({ className = '' }) => (
23
+ const InformationCircleIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
24
24
  <svg className={className} fill="currentColor" viewBox="0 0 20 20">
25
25
  <path fillRule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clipRule="evenodd" />
26
26
  </svg>
27
27
  );
28
28
 
29
- const XMarkIcon}> = ({ className = '' }) => (
29
+ const XMarkIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
30
30
  <svg className={className} fill="currentColor" viewBox="0 0 20 20">
31
31
  <path fillRule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clipRule="evenodd" />
32
32
  </svg>
33
33
  );
34
34
 
35
35
  // Get icon for alert type
36
- const getAlertIcon = (type], className) => {
36
+ const getAlertIcon = (type: AlertProps['type'], className: string) => {
37
37
  switch (type) {
38
- case 'success'={className} />;
39
- case 'warning'={className} />;
40
- case 'error'={className} />;
41
- case 'info'={className} />;
42
- default;
38
+ case 'success':
39
+ return <CheckCircleIcon className={className} />;
40
+ case 'warning':
41
+ return <ExclamationTriangleIcon className={className} />;
42
+ case 'error':
43
+ return <XCircleIcon className={className} />;
44
+ case 'info':
45
+ return <InformationCircleIcon className={className} />;
46
+ default:
47
+ return null;
43
48
  }
44
49
  };
45
50
 
46
51
  // Alert Action Button Component
47
- const AlertActionButton}> = ({
52
+ const AlertActionButton: React.FC<AlertAction & { theme: string }> = ({
48
53
  label,
49
54
  onClick,
50
55
  variant = 'primary'
@@ -61,7 +66,7 @@ const AlertActionButton}> = ({
61
66
  };
62
67
 
63
68
  // Main Alert Component
64
- export const Alert= ({
69
+ export const Alert: React.FC<AlertProps> = ({
65
70
  title,
66
71
  message,
67
72
  type = 'info',
@@ -79,7 +84,9 @@ export const Alert= ({
79
84
  }) => {
80
85
  // const { getTheme } = useTheme();
81
86
  // const themeConfig = getTheme(theme);
82
- // Note, setIsVisible] = useState(true);
87
+ // Note: colors not needed as we're using semantic CSS classes
88
+
89
+ const [isVisible, setIsVisible] = useState(true);
83
90
 
84
91
  const handleDismiss = useCallback(() => {
85
92
  if (onDismiss) {
@@ -116,7 +123,7 @@ export const Alert= ({
116
123
  </h3>
117
124
  )}
118
125
 
119
- <div className={`alert__message ${!title ? 'alert__message--only' }`}>
126
+ <div className={`alert__message ${!title ? 'alert__message--only' : ''}`}>
120
127
  {message}
121
128
  </div>
122
129
 
@@ -2,49 +2,54 @@ import React, { useState, useCallback } from 'react';
2
2
  import { AlertProps, AlertAction } from './types';
3
3
 
4
4
  // Simple icon components
5
- const CheckCircleIcon}> = ({ className = '' }) => (
5
+ const CheckCircleIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
6
6
  <svg className={className} fill="currentColor" viewBox="0 0 20 20">
7
7
  <path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" />
8
8
  </svg>
9
9
  );
10
10
 
11
- const ExclamationTriangleIcon}> = ({ className = '' }) => (
11
+ const ExclamationTriangleIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
12
12
  <svg className={className} fill="currentColor" viewBox="0 0 20 20">
13
13
  <path fillRule="evenodd" d="M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z" clipRule="evenodd" />
14
14
  </svg>
15
15
  );
16
16
 
17
- const XCircleIcon}> = ({ className = '' }) => (
17
+ const XCircleIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
18
18
  <svg className={className} fill="currentColor" viewBox="0 0 20 20">
19
19
  <path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clipRule="evenodd" />
20
20
  </svg>
21
21
  );
22
22
 
23
- const InformationCircleIcon}> = ({ className = '' }) => (
23
+ const InformationCircleIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
24
24
  <svg className={className} fill="currentColor" viewBox="0 0 20 20">
25
25
  <path fillRule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clipRule="evenodd" />
26
26
  </svg>
27
27
  );
28
28
 
29
- const XMarkIcon}> = ({ className = '' }) => (
29
+ const XMarkIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
30
30
  <svg className={className} fill="currentColor" viewBox="0 0 20 20">
31
31
  <path fillRule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clipRule="evenodd" />
32
32
  </svg>
33
33
  );
34
34
 
35
35
  // Get icon for alert type
36
- const getAlertIcon = (type], className) => {
36
+ const getAlertIcon = (type: AlertProps['type'], className: string) => {
37
37
  switch (type) {
38
- case 'success'={className} />;
39
- case 'warning'={className} />;
40
- case 'error'={className} />;
41
- case 'info'={className} />;
42
- default;
38
+ case 'success':
39
+ return <CheckCircleIcon className={className} />;
40
+ case 'warning':
41
+ return <ExclamationTriangleIcon className={className} />;
42
+ case 'error':
43
+ return <XCircleIcon className={className} />;
44
+ case 'info':
45
+ return <InformationCircleIcon className={className} />;
46
+ default:
47
+ return null;
43
48
  }
44
49
  };
45
50
 
46
51
  // Alert Action Button Component
47
- const AlertActionButton}> = ({
52
+ const AlertActionButton: React.FC<AlertAction & { theme: string }> = ({
48
53
  label,
49
54
  onClick,
50
55
  variant = 'primary'
@@ -61,7 +66,7 @@ const AlertActionButton}> = ({
61
66
  };
62
67
 
63
68
  // Main Alert Component
64
- export const Alert= ({
69
+ export const Alert: React.FC<AlertProps> = ({
65
70
  title,
66
71
  message,
67
72
  type = 'info',
@@ -79,7 +84,9 @@ export const Alert= ({
79
84
  }) => {
80
85
  // const { getTheme } = useTheme();
81
86
  // const themeConfig = getTheme(theme);
82
- // Note, setIsVisible] = useState(true);
87
+ // Note: colors not needed as we're using semantic CSS classes
88
+
89
+ const [isVisible, setIsVisible] = useState(true);
83
90
 
84
91
  const handleDismiss = useCallback(() => {
85
92
  if (onDismiss) {
@@ -116,7 +123,7 @@ export const Alert= ({
116
123
  </h3>
117
124
  )}
118
125
 
119
- <div className={`alert__message ${!title ? 'alert__message--only' }`}>
126
+ <div className={`alert__message ${!title ? 'alert__message--only' : ''}`}>
120
127
  {message}
121
128
  </div>
122
129
 
@@ -4,15 +4,15 @@ import { ProgressProps, ProgressStep } from './types';
4
4
 
5
5
  // Default color fallbacks for when theme is not available
6
6
  const getDefaultColors = () => ({
7
- surface, surface, border, divider},
8
- text, secondary, muted, inverse, onPrimary, onSecondary, onSurface},
9
- interactive, active, focus, disabled},
10
- primary},
11
- semantic, warning, error, info}
7
+ surface: { background: '#ffffff', surface: '#f3f4f6', border: '#d1d5db', divider: '#e5e7eb' },
8
+ text: { primary: '#111827', secondary: '#6b7280', muted: '#9ca3af', inverse: '#ffffff', onPrimary: '#ffffff', onSecondary: '#ffffff', onSurface: '#111827' },
9
+ interactive: { hover: '#f3f4f6', active: '#e5e7eb', focus: '#3b82f6', disabled: '#d1d5db' },
10
+ primary: { 500: '#3b82f6' },
11
+ semantic: { success: '#10b981', warning: '#f59e0b', error: '#ef4444', info: '#3b82f6' }
12
12
  });
13
13
 
14
14
  // Linear Progress Component
15
- const LinearProgress= ({
15
+ const LinearProgress: React.FC<ProgressProps> = ({
16
16
  value,
17
17
  max = 100,
18
18
  min = 0,
@@ -22,20 +22,22 @@ const LinearProgress= ({
22
22
  size = 'md',
23
23
  className = ''
24
24
  }) => {
25
- // Note= Math.min(Math.max(((value - min) / (max - min)) * 100, 0), 100);
25
+ // Note: theme and colors not needed as we're using semantic CSS classes
26
+
27
+ const percentage = Math.min(Math.max(((value - min) / (max - min)) * 100, 0), 100);
26
28
 
27
29
  return (
28
30
  <div className={`progress__container progress__container--${size} ${className}`}>
29
31
  <div
30
- className={`progress__bar ${animated ? 'progress__bar--animated' } ${striped ? 'progress__bar--striped' } ${color ? `progress__bar--${color}` }`}
31
- style={{ width}%` }}
32
+ className={`progress__bar ${animated ? 'progress__bar--animated' : ''} ${striped ? 'progress__bar--striped' : ''} ${color ? `progress__bar--${color}` : ''}`}
33
+ style={{ width: `${percentage}%` }}
32
34
  />
33
35
  </div>
34
36
  );
35
37
  };
36
38
 
37
39
  // Circular Progress Component
38
- const CircularProgress= ({
40
+ const CircularProgress: React.FC<ProgressProps> = ({
39
41
  value,
40
42
  max = 100,
41
43
  min = 0,
@@ -74,7 +76,7 @@ const CircularProgress= ({
74
76
  cx="50"
75
77
  cy="50"
76
78
  r={radius}
77
- className={`progress__circle-progress ${animated ? 'progress__circle-progress--animated' }`}
79
+ className={`progress__circle-progress ${animated ? 'progress__circle-progress--animated' : ''}`}
78
80
  stroke={progressColor || color || colors.primary[500]}
79
81
  strokeWidth={thickness}
80
82
  strokeDasharray={strokeDasharray}
@@ -90,25 +92,36 @@ const CircularProgress= ({
90
92
  };
91
93
 
92
94
  // Steps Progress Component
93
- const StepsProgress] }> = ({
95
+ const StepsProgress: React.FC<ProgressProps & { steps?: ProgressStep[] }> = ({
94
96
  steps = [],
95
97
  className = ''
96
98
  }) => {
97
- // Note= (status]) => {
99
+ // Note: size and colors not needed as we're using semantic CSS classes
100
+
101
+ const getStatusIcon = (status: ProgressStep['status']) => {
98
102
  switch (status) {
99
- case 'completed'="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
103
+ case 'completed':
104
+ return (
105
+ <svg className="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
100
106
  <path fillRule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clipRule="evenodd" />
101
107
  </svg>
102
108
  );
103
- case 'active'="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
109
+ case 'active':
110
+ return (
111
+ <svg className="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
104
112
  <path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z" clipRule="evenodd" />
105
113
  </svg>
106
114
  );
107
- case 'error'="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
115
+ case 'error':
116
+ return (
117
+ <svg className="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
108
118
  <path fillRule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z" clipRule="evenodd" />
109
119
  </svg>
110
120
  );
111
- case 'pending'="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
121
+ case 'pending':
122
+ default:
123
+ return (
124
+ <svg className="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
112
125
  <path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z" clipRule="evenodd" />
113
126
  </svg>
114
127
  );
@@ -133,7 +146,7 @@ const StepsProgress] }> = ({
133
146
  {/* Step connector */}
134
147
  {index < steps.length - 1 && (
135
148
  <div
136
- className={`progress__step-connector ${step.status === 'completed' ? 'progress__step-connector--completed' }`}
149
+ className={`progress__step-connector ${step.status === 'completed' ? 'progress__step-connector--completed' : ''}`}
137
150
  />
138
151
  )}
139
152
 
@@ -155,7 +168,7 @@ const StepsProgress] }> = ({
155
168
  };
156
169
 
157
170
  // Main Progress Component
158
- export const Progress= ({
171
+ export const Progress: React.FC<ProgressProps> = ({
159
172
  value,
160
173
  max = 100,
161
174
  min = 0,
@@ -205,7 +218,10 @@ export const Progress= ({
205
218
 
206
219
  const renderProgress = () => {
207
220
  switch (variant) {
208
- case 'circular'={currentValue}
221
+ case 'circular':
222
+ return (
223
+ <CircularProgress
224
+ value={currentValue}
209
225
  max={max}
210
226
  min={min}
211
227
  animated={animated}
@@ -217,14 +233,21 @@ export const Progress= ({
217
233
  className={className}
218
234
  />
219
235
  );
220
- case 'steps'={currentValue}
236
+ case 'steps':
237
+ return (
238
+ <StepsProgress
239
+ value={currentValue}
221
240
  max={max}
222
241
  min={min}
223
242
  size={size}
224
243
  className={className}
225
244
  />
226
245
  );
227
- case 'linear'={currentValue}
246
+ case 'linear':
247
+ default:
248
+ return (
249
+ <LinearProgress
250
+ value={currentValue}
228
251
  max={max}
229
252
  min={min}
230
253
  animated={animated}
@@ -246,12 +269,12 @@ export const Progress= ({
246
269
  {(showLabel || showValue || showPercentage) && (
247
270
  <div className="flex justify-between items-center mb-2">
248
271
  {showLabel && label && (
249
- <span className="text-sm font-medium" style={{ color}}>
272
+ <span className="text-sm font-medium" style={{ color: colors.text.primary }}>
250
273
  {label}
251
274
  </span>
252
275
  )}
253
276
  {(showValue || showPercentage) && (
254
- <span className="text-sm" style={{ color}}>
277
+ <span className="text-sm" style={{ color: colors.text.secondary }}>
255
278
  {showValue && `${currentValue}/${max}`}
256
279
  {showValue && showPercentage && ' - '}
257
280
  {showPercentage && `${Math.round(((currentValue - min) / (max - min)) * 100)}%`}
@@ -4,15 +4,15 @@ import { ProgressProps, ProgressStep } from './types';
4
4
 
5
5
  // Default color fallbacks for when theme is not available
6
6
  const getDefaultColors = () => ({
7
- surface, surface, border, divider},
8
- text, secondary, muted, inverse, onPrimary, onSecondary, onSurface},
9
- interactive, active, focus, disabled},
10
- primary},
11
- semantic, warning, error, info}
7
+ surface: { background: '#ffffff', surface: '#f3f4f6', border: '#d1d5db', divider: '#e5e7eb' },
8
+ text: { primary: '#111827', secondary: '#6b7280', muted: '#9ca3af', inverse: '#ffffff', onPrimary: '#ffffff', onSecondary: '#ffffff', onSurface: '#111827' },
9
+ interactive: { hover: '#f3f4f6', active: '#e5e7eb', focus: '#3b82f6', disabled: '#d1d5db' },
10
+ primary: { 500: '#3b82f6' },
11
+ semantic: { success: '#10b981', warning: '#f59e0b', error: '#ef4444', info: '#3b82f6' }
12
12
  });
13
13
 
14
14
  // Linear Progress Component
15
- const LinearProgress= ({
15
+ const LinearProgress: React.FC<ProgressProps> = ({
16
16
  value,
17
17
  max = 100,
18
18
  min = 0,
@@ -22,20 +22,22 @@ const LinearProgress= ({
22
22
  size = 'md',
23
23
  className = ''
24
24
  }) => {
25
- // Note= Math.min(Math.max(((value - min) / (max - min)) * 100, 0), 100);
25
+ // Note: theme and colors not needed as we're using semantic CSS classes
26
+
27
+ const percentage = Math.min(Math.max(((value - min) / (max - min)) * 100, 0), 100);
26
28
 
27
29
  return (
28
30
  <div className={`progress__container progress__container--${size} ${className}`}>
29
31
  <div
30
- className={`progress__bar ${animated ? 'progress__bar--animated' } ${striped ? 'progress__bar--striped' } ${color ? `progress__bar--${color}` }`}
31
- style={{ width}%` }}
32
+ className={`progress__bar ${animated ? 'progress__bar--animated' : ''} ${striped ? 'progress__bar--striped' : ''} ${color ? `progress__bar--${color}` : ''}`}
33
+ style={{ width: `${percentage}%` }}
32
34
  />
33
35
  </div>
34
36
  );
35
37
  };
36
38
 
37
39
  // Circular Progress Component
38
- const CircularProgress= ({
40
+ const CircularProgress: React.FC<ProgressProps> = ({
39
41
  value,
40
42
  max = 100,
41
43
  min = 0,
@@ -74,7 +76,7 @@ const CircularProgress= ({
74
76
  cx="50"
75
77
  cy="50"
76
78
  r={radius}
77
- className={`progress__circle-progress ${animated ? 'progress__circle-progress--animated' }`}
79
+ className={`progress__circle-progress ${animated ? 'progress__circle-progress--animated' : ''}`}
78
80
  stroke={progressColor || color || colors.primary[500]}
79
81
  strokeWidth={thickness}
80
82
  strokeDasharray={strokeDasharray}
@@ -90,25 +92,36 @@ const CircularProgress= ({
90
92
  };
91
93
 
92
94
  // Steps Progress Component
93
- const StepsProgress] }> = ({
95
+ const StepsProgress: React.FC<ProgressProps & { steps?: ProgressStep[] }> = ({
94
96
  steps = [],
95
97
  className = ''
96
98
  }) => {
97
- // Note= (status]) => {
99
+ // Note: size and colors not needed as we're using semantic CSS classes
100
+
101
+ const getStatusIcon = (status: ProgressStep['status']) => {
98
102
  switch (status) {
99
- case 'completed'="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
103
+ case 'completed':
104
+ return (
105
+ <svg className="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
100
106
  <path fillRule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clipRule="evenodd" />
101
107
  </svg>
102
108
  );
103
- case 'active'="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
109
+ case 'active':
110
+ return (
111
+ <svg className="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
104
112
  <path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z" clipRule="evenodd" />
105
113
  </svg>
106
114
  );
107
- case 'error'="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
115
+ case 'error':
116
+ return (
117
+ <svg className="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
108
118
  <path fillRule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z" clipRule="evenodd" />
109
119
  </svg>
110
120
  );
111
- case 'pending'="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
121
+ case 'pending':
122
+ default:
123
+ return (
124
+ <svg className="progress__step-icon" fill="currentColor" viewBox="0 0 20 20">
112
125
  <path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z" clipRule="evenodd" />
113
126
  </svg>
114
127
  );
@@ -133,7 +146,7 @@ const StepsProgress] }> = ({
133
146
  {/* Step connector */}
134
147
  {index < steps.length - 1 && (
135
148
  <div
136
- className={`progress__step-connector ${step.status === 'completed' ? 'progress__step-connector--completed' }`}
149
+ className={`progress__step-connector ${step.status === 'completed' ? 'progress__step-connector--completed' : ''}`}
137
150
  />
138
151
  )}
139
152
 
@@ -155,7 +168,7 @@ const StepsProgress] }> = ({
155
168
  };
156
169
 
157
170
  // Main Progress Component
158
- export const Progress= ({
171
+ export const Progress: React.FC<ProgressProps> = ({
159
172
  value,
160
173
  max = 100,
161
174
  min = 0,
@@ -205,7 +218,10 @@ export const Progress= ({
205
218
 
206
219
  const renderProgress = () => {
207
220
  switch (variant) {
208
- case 'circular'={currentValue}
221
+ case 'circular':
222
+ return (
223
+ <CircularProgress
224
+ value={currentValue}
209
225
  max={max}
210
226
  min={min}
211
227
  animated={animated}
@@ -217,14 +233,21 @@ export const Progress= ({
217
233
  className={className}
218
234
  />
219
235
  );
220
- case 'steps'={currentValue}
236
+ case 'steps':
237
+ return (
238
+ <StepsProgress
239
+ value={currentValue}
221
240
  max={max}
222
241
  min={min}
223
242
  size={size}
224
243
  className={className}
225
244
  />
226
245
  );
227
- case 'linear'={currentValue}
246
+ case 'linear':
247
+ default:
248
+ return (
249
+ <LinearProgress
250
+ value={currentValue}
228
251
  max={max}
229
252
  min={min}
230
253
  animated={animated}
@@ -246,12 +269,12 @@ export const Progress= ({
246
269
  {(showLabel || showValue || showPercentage) && (
247
270
  <div className="flex justify-between items-center mb-2">
248
271
  {showLabel && label && (
249
- <span className="text-sm font-medium" style={{ color}}>
272
+ <span className="text-sm font-medium" style={{ color: colors.text.primary }}>
250
273
  {label}
251
274
  </span>
252
275
  )}
253
276
  {(showValue || showPercentage) && (
254
- <span className="text-sm" style={{ color}}>
277
+ <span className="text-sm" style={{ color: colors.text.secondary }}>
255
278
  {showValue && `${currentValue}/${max}`}
256
279
  {showValue && showPercentage && ' - '}
257
280
  {showPercentage && `${Math.round(((currentValue - min) / (max - min)) * 100)}%`}