@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
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { SkeletonProps, SkeletonTextProps, SkeletonAvatarProps, SkeletonButtonProps } from './types';
3
3
 
4
4
  // Base Skeleton Component
5
- const BaseSkeleton= ({
5
+ const BaseSkeleton: React.FC<SkeletonProps> = ({
6
6
  width,
7
7
  height,
8
8
  variant = 'rectangular',
@@ -10,24 +10,31 @@ const BaseSkeleton= ({
10
10
  className = '',
11
11
  size = 'md'
12
12
  }) => {
13
- // Note= () => {
13
+ // Note: theme and colors not needed as we're using semantic CSS classes
14
+
15
+ const getDefaultDimensions = () => {
14
16
  if (width && height) return { width, height };
15
17
 
16
18
  switch (variant) {
17
- case 'circular') {
18
- case 'sm', height};
19
- case 'lg', height};
20
- default, height};
19
+ case 'circular':
20
+ switch (size) {
21
+ case 'sm': return { width: '2rem', height: '2rem' };
22
+ case 'lg': return { width: '4rem', height: '4rem' };
23
+ default: return { width: '3rem', height: '3rem' };
21
24
  }
22
- case 'text') {
23
- case 'sm', height};
24
- case 'lg', height};
25
- default, height};
25
+ case 'text':
26
+ switch (size) {
27
+ case 'sm': return { width: '100%', height: '0.875rem' };
28
+ case 'lg': return { width: '100%', height: '1.25rem' };
29
+ default: return { width: '100%', height: '1rem' };
26
30
  }
27
- case 'rectangular') {
28
- case 'sm', height};
29
- case 'lg', height};
30
- default, height};
31
+ case 'rectangular':
32
+ case 'rounded':
33
+ default:
34
+ switch (size) {
35
+ case 'sm': return { width: '100%', height: '2rem' };
36
+ case 'lg': return { width: '100%', height: '4rem' };
37
+ default: return { width: '100%', height: '3rem' };
31
38
  }
32
39
  }
33
40
  };
@@ -38,8 +45,9 @@ const BaseSkeleton= ({
38
45
  <div
39
46
  className={`skeleton__base skeleton__base--${variant} skeleton__base--${animation} skeleton__base--${size} ${className}`}
40
47
  style={{
41
- width,
42
- height}}
48
+ width: dimensions.width,
49
+ height: dimensions.height
50
+ }}
43
51
  aria-busy="true"
44
52
  role="progressbar"
45
53
  aria-label="Loading content"
@@ -48,7 +56,7 @@ const BaseSkeleton= ({
48
56
  };
49
57
 
50
58
  // Skeleton Text Component
51
- export const SkeletonText= ({
59
+ export const SkeletonText: React.FC<SkeletonTextProps> = ({
52
60
  lines = 3,
53
61
  lineHeight,
54
62
  lastLineWidth,
@@ -59,9 +67,9 @@ export const SkeletonText= ({
59
67
  const getLineHeight = () => {
60
68
  if (lineHeight) return lineHeight;
61
69
  switch (props.size) {
62
- case 'sm';
63
- case 'lg';
64
- default;
70
+ case 'sm': return '0.875rem';
71
+ case 'lg': return '1.25rem';
72
+ default: return '1rem';
65
73
  }
66
74
  };
67
75
 
@@ -72,14 +80,15 @@ export const SkeletonText= ({
72
80
 
73
81
  return (
74
82
  <div className={`skeleton__text skeleton__text--spacing-${spacing} ${className}`}>
75
- {Array.from({ length}).map((_, index) => (
83
+ {Array.from({ length: lines }).map((_, index) => (
76
84
  <div
77
85
  key={index}
78
86
  className={`skeleton__text-line skeleton__text-line--${props.size || 'md'} skeleton__base--${props.animation || 'pulse'} ${
79
- index === lines - 1 ? 'skeleton__text-line--last' }`}
87
+ index === lines - 1 ? 'skeleton__text-line--last' : ''
88
+ }`}
80
89
  style={{
81
- width=== lines - 1 ? getLastLineWidth() ,
82
- height)
90
+ width: index === lines - 1 ? getLastLineWidth() : '100%',
91
+ height: getLineHeight()
83
92
  }}
84
93
  aria-busy="true"
85
94
  />
@@ -89,7 +98,7 @@ export const SkeletonText= ({
89
98
  };
90
99
 
91
100
  // Skeleton Avatar Component
92
- export const SkeletonAvatar= ({
101
+ export const SkeletonAvatar: React.FC<SkeletonAvatarProps> = ({
93
102
  size = 'md',
94
103
  shape = 'circular',
95
104
  className = '',
@@ -106,7 +115,7 @@ export const SkeletonAvatar= ({
106
115
  };
107
116
 
108
117
  // Skeleton Button Component
109
- export const SkeletonButton= ({
118
+ export const SkeletonButton: React.FC<SkeletonButtonProps> = ({
110
119
  size = 'md',
111
120
  variant = 'contained',
112
121
  fullWidth = false,
@@ -116,7 +125,8 @@ export const SkeletonButton= ({
116
125
  return (
117
126
  <div
118
127
  className={`skeleton__button skeleton__button--${size} skeleton__button--${variant} ${
119
- fullWidth ? 'skeleton__button--full-width' } skeleton__base--${props.animation || 'pulse'} ${className}`}
128
+ fullWidth ? 'skeleton__button--full-width' : ''
129
+ } skeleton__base--${props.animation || 'pulse'} ${className}`}
120
130
  aria-busy="true"
121
131
  role="progressbar"
122
132
  aria-label="Loading button"
@@ -125,7 +135,7 @@ export const SkeletonButton= ({
125
135
  };
126
136
 
127
137
  // Main Skeleton Component
128
- export const Skeleton= ({
138
+ export const Skeleton: React.FC<SkeletonProps> = ({
129
139
  width,
130
140
  height,
131
141
  variant = 'rectangular',
@@ -144,7 +154,7 @@ export const Skeleton= ({
144
154
  if (rows > 1) {
145
155
  return (
146
156
  <div className={`skeleton__container skeleton__container--spacing-${spacing} ${className}`}>
147
- {Array.from({ length}).map((_, index) => (
157
+ {Array.from({ length: rows }).map((_, index) => (
148
158
  <BaseSkeleton
149
159
  key={index}
150
160
  width={width}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { SkeletonProps, SkeletonTextProps, SkeletonAvatarProps, SkeletonButtonProps } from './types';
3
3
 
4
4
  // Base Skeleton Component
5
- const BaseSkeleton= ({
5
+ const BaseSkeleton: React.FC<SkeletonProps> = ({
6
6
  width,
7
7
  height,
8
8
  variant = 'rectangular',
@@ -10,24 +10,31 @@ const BaseSkeleton= ({
10
10
  className = '',
11
11
  size = 'md'
12
12
  }) => {
13
- // Note= () => {
13
+ // Note: theme and colors not needed as we're using semantic CSS classes
14
+
15
+ const getDefaultDimensions = () => {
14
16
  if (width && height) return { width, height };
15
17
 
16
18
  switch (variant) {
17
- case 'circular') {
18
- case 'sm', height};
19
- case 'lg', height};
20
- default, height};
19
+ case 'circular':
20
+ switch (size) {
21
+ case 'sm': return { width: '2rem', height: '2rem' };
22
+ case 'lg': return { width: '4rem', height: '4rem' };
23
+ default: return { width: '3rem', height: '3rem' };
21
24
  }
22
- case 'text') {
23
- case 'sm', height};
24
- case 'lg', height};
25
- default, height};
25
+ case 'text':
26
+ switch (size) {
27
+ case 'sm': return { width: '100%', height: '0.875rem' };
28
+ case 'lg': return { width: '100%', height: '1.25rem' };
29
+ default: return { width: '100%', height: '1rem' };
26
30
  }
27
- case 'rectangular') {
28
- case 'sm', height};
29
- case 'lg', height};
30
- default, height};
31
+ case 'rectangular':
32
+ case 'rounded':
33
+ default:
34
+ switch (size) {
35
+ case 'sm': return { width: '100%', height: '2rem' };
36
+ case 'lg': return { width: '100%', height: '4rem' };
37
+ default: return { width: '100%', height: '3rem' };
31
38
  }
32
39
  }
33
40
  };
@@ -38,8 +45,9 @@ const BaseSkeleton= ({
38
45
  <div
39
46
  className={`skeleton__base skeleton__base--${variant} skeleton__base--${animation} skeleton__base--${size} ${className}`}
40
47
  style={{
41
- width,
42
- height}}
48
+ width: dimensions.width,
49
+ height: dimensions.height
50
+ }}
43
51
  aria-busy="true"
44
52
  role="progressbar"
45
53
  aria-label="Loading content"
@@ -48,7 +56,7 @@ const BaseSkeleton= ({
48
56
  };
49
57
 
50
58
  // Skeleton Text Component
51
- export const SkeletonText= ({
59
+ export const SkeletonText: React.FC<SkeletonTextProps> = ({
52
60
  lines = 3,
53
61
  lineHeight,
54
62
  lastLineWidth,
@@ -59,9 +67,9 @@ export const SkeletonText= ({
59
67
  const getLineHeight = () => {
60
68
  if (lineHeight) return lineHeight;
61
69
  switch (props.size) {
62
- case 'sm';
63
- case 'lg';
64
- default;
70
+ case 'sm': return '0.875rem';
71
+ case 'lg': return '1.25rem';
72
+ default: return '1rem';
65
73
  }
66
74
  };
67
75
 
@@ -72,14 +80,15 @@ export const SkeletonText= ({
72
80
 
73
81
  return (
74
82
  <div className={`skeleton__text skeleton__text--spacing-${spacing} ${className}`}>
75
- {Array.from({ length}).map((_, index) => (
83
+ {Array.from({ length: lines }).map((_, index) => (
76
84
  <div
77
85
  key={index}
78
86
  className={`skeleton__text-line skeleton__text-line--${props.size || 'md'} skeleton__base--${props.animation || 'pulse'} ${
79
- index === lines - 1 ? 'skeleton__text-line--last' }`}
87
+ index === lines - 1 ? 'skeleton__text-line--last' : ''
88
+ }`}
80
89
  style={{
81
- width=== lines - 1 ? getLastLineWidth() ,
82
- height)
90
+ width: index === lines - 1 ? getLastLineWidth() : '100%',
91
+ height: getLineHeight()
83
92
  }}
84
93
  aria-busy="true"
85
94
  />
@@ -89,7 +98,7 @@ export const SkeletonText= ({
89
98
  };
90
99
 
91
100
  // Skeleton Avatar Component
92
- export const SkeletonAvatar= ({
101
+ export const SkeletonAvatar: React.FC<SkeletonAvatarProps> = ({
93
102
  size = 'md',
94
103
  shape = 'circular',
95
104
  className = '',
@@ -106,7 +115,7 @@ export const SkeletonAvatar= ({
106
115
  };
107
116
 
108
117
  // Skeleton Button Component
109
- export const SkeletonButton= ({
118
+ export const SkeletonButton: React.FC<SkeletonButtonProps> = ({
110
119
  size = 'md',
111
120
  variant = 'contained',
112
121
  fullWidth = false,
@@ -116,7 +125,8 @@ export const SkeletonButton= ({
116
125
  return (
117
126
  <div
118
127
  className={`skeleton__button skeleton__button--${size} skeleton__button--${variant} ${
119
- fullWidth ? 'skeleton__button--full-width' } skeleton__base--${props.animation || 'pulse'} ${className}`}
128
+ fullWidth ? 'skeleton__button--full-width' : ''
129
+ } skeleton__base--${props.animation || 'pulse'} ${className}`}
120
130
  aria-busy="true"
121
131
  role="progressbar"
122
132
  aria-label="Loading button"
@@ -125,7 +135,7 @@ export const SkeletonButton= ({
125
135
  };
126
136
 
127
137
  // Main Skeleton Component
128
- export const Skeleton= ({
138
+ export const Skeleton: React.FC<SkeletonProps> = ({
129
139
  width,
130
140
  height,
131
141
  variant = 'rectangular',
@@ -144,7 +154,7 @@ export const Skeleton= ({
144
154
  if (rows > 1) {
145
155
  return (
146
156
  <div className={`skeleton__container skeleton__container--spacing-${spacing} ${className}`}>
147
- {Array.from({ length}).map((_, index) => (
157
+ {Array.from({ length: rows }).map((_, index) => (
148
158
  <BaseSkeleton
149
159
  key={index}
150
160
  width={width}
@@ -2,75 +2,97 @@ import React, { useState, useEffect, useCallback, useRef } from 'react';
2
2
  import { ToastProps, ToastAction, ToastContainerProps } 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 toast type
36
- const getToastIcon = (type], className) => {
36
+ const getToastIcon = (type: ToastProps['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
- // Note= (type], colors) => {
51
+ // Note: getToastColors function removed as we're using semantic CSS classes
52
+ /*
53
+ const getToastColors = (type: ToastProps['type'], colors: any) => {
47
54
  switch (type) {
48
- case 'success',
49
- border,
50
- text,
51
- icon};
52
- case 'warning',
53
- border,
54
- text,
55
- icon};
56
- case 'error',
57
- border,
58
- text,
59
- icon};
60
- case 'info',
61
- border,
62
- text,
63
- icon};
64
- default,
65
- border,
66
- text,
67
- icon};
55
+ case 'success':
56
+ return {
57
+ background: colors.semantic.success + '10',
58
+ border: colors.semantic.success + '30',
59
+ text: colors.semantic.success,
60
+ icon: colors.semantic.success
61
+ };
62
+ case 'warning':
63
+ return {
64
+ background: colors.semantic.warning + '10',
65
+ border: colors.semantic.warning + '30',
66
+ text: colors.semantic.warning,
67
+ icon: colors.semantic.warning
68
+ };
69
+ case 'error':
70
+ return {
71
+ background: colors.semantic.error + '10',
72
+ border: colors.semantic.error + '30',
73
+ text: colors.semantic.error,
74
+ icon: colors.semantic.error
75
+ };
76
+ case 'info':
77
+ return {
78
+ background: colors.semantic.info + '10',
79
+ border: colors.semantic.info + '30',
80
+ text: colors.semantic.info,
81
+ icon: colors.semantic.info
82
+ };
83
+ default:
84
+ return {
85
+ background: colors.surface.surface,
86
+ border: colors.surface.border,
87
+ text: colors.text.primary,
88
+ icon: colors.text.secondary
89
+ };
68
90
  }
69
91
  };
70
92
  */
71
93
 
72
94
  // Toast Action Button Component
73
- const ToastActionButton= ({
95
+ const ToastActionButton: React.FC<ToastAction> = ({
74
96
  label,
75
97
  action,
76
98
  variant = 'primary'
@@ -87,7 +109,7 @@ const ToastActionButton= ({
87
109
  };
88
110
 
89
111
  // Individual Toast Component
90
- export const Toast= ({
112
+ export const Toast: React.FC<ToastProps> = ({
91
113
  title,
92
114
  message,
93
115
  type = 'default',
@@ -104,7 +126,9 @@ export const Toast= ({
104
126
  variant = 'default',
105
127
  className = '',
106
128
  }) => {
107
- // Note, setIsVisible] = useState(true);
129
+ // Note: theme and colors not needed as we're using semantic CSS classes
130
+
131
+ const [isVisible, setIsVisible] = useState(true);
108
132
  const [progressValue, setProgressValue] = useState(100);
109
133
  const timeoutRef = useRef<NodeJS.Timeout | null>(null);
110
134
  const progressRef = useRef<NodeJS.Timeout | null>(null);
@@ -190,7 +214,7 @@ export const Toast= ({
190
214
  <div className="toast__progress">
191
215
  <div
192
216
  className={`toast__progress-bar toast__progress-bar--${type}`}
193
- style={{ width}%` }}
217
+ style={{ width: `${progressValue}%` }}
194
218
  />
195
219
  </div>
196
220
  )}
@@ -208,7 +232,7 @@ export const Toast= ({
208
232
  </h3>
209
233
  )}
210
234
 
211
- <div className={`toast__message ${!title ? 'toast__message--only' }`}>
235
+ <div className={`toast__message ${!title ? 'toast__message--only' : ''}`}>
212
236
  {message}
213
237
  </div>
214
238
 
@@ -239,7 +263,7 @@ export const Toast= ({
239
263
  };
240
264
 
241
265
  // Toast Container Component
242
- export const ToastContainer}> = ({
266
+ export const ToastContainer: React.FC<ToastContainerProps & { children: React.ReactNode }> = ({
243
267
  position = 'top-right',
244
268
  className = '',
245
269
  children
@@ -2,75 +2,97 @@ import React, { useState, useEffect, useCallback, useRef } from 'react';
2
2
  import { ToastProps, ToastAction, ToastContainerProps } 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 toast type
36
- const getToastIcon = (type], className) => {
36
+ const getToastIcon = (type: ToastProps['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
- // Note= (type], colors) => {
51
+ // Note: getToastColors function removed as we're using semantic CSS classes
52
+ /*
53
+ const getToastColors = (type: ToastProps['type'], colors: any) => {
47
54
  switch (type) {
48
- case 'success',
49
- border,
50
- text,
51
- icon};
52
- case 'warning',
53
- border,
54
- text,
55
- icon};
56
- case 'error',
57
- border,
58
- text,
59
- icon};
60
- case 'info',
61
- border,
62
- text,
63
- icon};
64
- default,
65
- border,
66
- text,
67
- icon};
55
+ case 'success':
56
+ return {
57
+ background: colors.semantic.success + '10',
58
+ border: colors.semantic.success + '30',
59
+ text: colors.semantic.success,
60
+ icon: colors.semantic.success
61
+ };
62
+ case 'warning':
63
+ return {
64
+ background: colors.semantic.warning + '10',
65
+ border: colors.semantic.warning + '30',
66
+ text: colors.semantic.warning,
67
+ icon: colors.semantic.warning
68
+ };
69
+ case 'error':
70
+ return {
71
+ background: colors.semantic.error + '10',
72
+ border: colors.semantic.error + '30',
73
+ text: colors.semantic.error,
74
+ icon: colors.semantic.error
75
+ };
76
+ case 'info':
77
+ return {
78
+ background: colors.semantic.info + '10',
79
+ border: colors.semantic.info + '30',
80
+ text: colors.semantic.info,
81
+ icon: colors.semantic.info
82
+ };
83
+ default:
84
+ return {
85
+ background: colors.surface.surface,
86
+ border: colors.surface.border,
87
+ text: colors.text.primary,
88
+ icon: colors.text.secondary
89
+ };
68
90
  }
69
91
  };
70
92
  */
71
93
 
72
94
  // Toast Action Button Component
73
- const ToastActionButton= ({
95
+ const ToastActionButton: React.FC<ToastAction> = ({
74
96
  label,
75
97
  action,
76
98
  variant = 'primary'
@@ -87,7 +109,7 @@ const ToastActionButton= ({
87
109
  };
88
110
 
89
111
  // Individual Toast Component
90
- export const Toast= ({
112
+ export const Toast: React.FC<ToastProps> = ({
91
113
  title,
92
114
  message,
93
115
  type = 'default',
@@ -104,7 +126,9 @@ export const Toast= ({
104
126
  variant = 'default',
105
127
  className = '',
106
128
  }) => {
107
- // Note, setIsVisible] = useState(true);
129
+ // Note: theme and colors not needed as we're using semantic CSS classes
130
+
131
+ const [isVisible, setIsVisible] = useState(true);
108
132
  const [progressValue, setProgressValue] = useState(100);
109
133
  const timeoutRef = useRef<NodeJS.Timeout | null>(null);
110
134
  const progressRef = useRef<NodeJS.Timeout | null>(null);
@@ -190,7 +214,7 @@ export const Toast= ({
190
214
  <div className="toast__progress">
191
215
  <div
192
216
  className={`toast__progress-bar toast__progress-bar--${type}`}
193
- style={{ width}%` }}
217
+ style={{ width: `${progressValue}%` }}
194
218
  />
195
219
  </div>
196
220
  )}
@@ -208,7 +232,7 @@ export const Toast= ({
208
232
  </h3>
209
233
  )}
210
234
 
211
- <div className={`toast__message ${!title ? 'toast__message--only' }`}>
235
+ <div className={`toast__message ${!title ? 'toast__message--only' : ''}`}>
212
236
  {message}
213
237
  </div>
214
238
 
@@ -239,7 +263,7 @@ export const Toast= ({
239
263
  };
240
264
 
241
265
  // Toast Container Component
242
- export const ToastContainer}> = ({
266
+ export const ToastContainer: React.FC<ToastContainerProps & { children: React.ReactNode }> = ({
243
267
  position = 'top-right',
244
268
  className = '',
245
269
  children