@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
@@ -3,11 +3,17 @@ import { Slot } from "@radix-ui/react-slot"
3
3
 
4
4
  export interface ButtonProps
5
5
  extends React.ButtonHTMLAttributes<HTMLButtonElement> {
6
- variant?}
6
+ variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link'
7
+ size?: 'default' | 'sm' | 'lg' | 'icon' | 'mobile'
8
+ asChild?: boolean
9
+ }
7
10
 
8
11
  const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
9
12
  ({ className, variant = 'default', size = 'default', asChild = false, ...props }, ref) => {
10
- const Comp = asChild ? Slot = 'button'
13
+ const Comp = asChild ? Slot : "button"
14
+
15
+ // Build semantic CSS classes using BEM methodology
16
+ const baseClass = 'button'
11
17
  const variantClass = `button--variant-${variant}`
12
18
  const sizeClass = `button--size-${size}`
13
19
 
@@ -1,7 +1,18 @@
1
1
  import * as React from "react"
2
2
 
3
3
  export interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
4
- variant?}
4
+ variant?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error'
5
+ elevation?: 'base' | 'elevated' | 'interactive'
6
+ size?: 'compact' | 'normal' | 'spacious'
7
+ interactive?: boolean
8
+ disabled?: boolean
9
+ loading?: boolean
10
+ fullWidth?: boolean
11
+ centered?: boolean
12
+ textAlign?: 'left' | 'center' | 'right'
13
+ animateIn?: boolean
14
+ animateOut?: boolean
15
+ }
5
16
 
6
17
  const Card = React.forwardRef<HTMLDivElement, CardProps>(
7
18
  ({
@@ -24,8 +35,17 @@ const Card = React.forwardRef<HTMLDivElement, CardProps>(
24
35
  const variantClass = `card--variant-${variant}`
25
36
  const elevationClass = `card--elevation-${elevation}`
26
37
  const sizeClass = `card--size-${size}`
27
- const interactiveClass = interactive ? 'card--interactive' = disabled ? 'card--disabled' = loading ? 'card--loading' = fullWidth ? 'card--full-width' = centered ? 'card--centered' = `card--text-${textAlign}`
28
- const animateInClass = animateIn ? 'card--animate-in' = animateOut ? 'card--animate-out' = [
38
+ const interactiveClass = interactive ? 'card--interactive' : ''
39
+ const disabledClass = disabled ? 'card--disabled' : ''
40
+ const loadingClass = loading ? 'card--loading' : ''
41
+ const fullWidthClass = fullWidth ? 'card--full-width' : ''
42
+ const centeredClass = centered ? 'card--centered' : ''
43
+ const textAlignClass = `card--text-${textAlign}`
44
+ const animateInClass = animateIn ? 'card--animate-in' : ''
45
+ const animateOutClass = animateOut ? 'card--animate-out' : ''
46
+
47
+ // Combine classes
48
+ const cardClasses = [
29
49
  baseClass,
30
50
  variantClass,
31
51
  elevationClass,
@@ -55,7 +75,8 @@ const Card = React.forwardRef<HTMLDivElement, CardProps>(
55
75
  Card.displayName = "Card"
56
76
 
57
77
  export interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
58
- spacing?}
78
+ spacing?: 'compact' | 'normal' | 'spacious'
79
+ }
59
80
 
60
81
  const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(
61
82
  ({ className, spacing = 'normal', ...props }, ref) => {
@@ -80,7 +101,8 @@ const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(
80
101
  CardHeader.displayName = "CardHeader"
81
102
 
82
103
  export interface CardTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
83
- size?}
104
+ size?: 'small' | 'normal' | 'large'
105
+ }
84
106
 
85
107
  const CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(
86
108
  ({ className, size = 'normal', ...props }, ref) => {
@@ -105,7 +127,8 @@ const CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(
105
127
  CardTitle.displayName = "CardTitle"
106
128
 
107
129
  export interface CardDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
108
- size?}
130
+ size?: 'small' | 'normal'
131
+ }
109
132
 
110
133
  const CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionProps>(
111
134
  ({ className, size = 'normal', ...props }, ref) => {
@@ -130,7 +153,8 @@ const CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionPr
130
153
  CardDescription.displayName = "CardDescription"
131
154
 
132
155
  export interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {
133
- spacing?}
156
+ spacing?: 'compact' | 'normal' | 'spacious'
157
+ }
134
158
 
135
159
  const CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(
136
160
  ({ className, spacing = 'normal', ...props }, ref) => {
@@ -155,7 +179,8 @@ const CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(
155
179
  CardContent.displayName = "CardContent"
156
180
 
157
181
  export interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {
158
- layout?}
182
+ layout?: 'horizontal' | 'vertical' | 'stacked' | 'justified' | 'centered'
183
+ }
159
184
 
160
185
  const CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(
161
186
  ({ className, layout = 'horizontal', ...props }, ref) => {
@@ -1,7 +1,18 @@
1
1
  import * as React from "react"
2
2
 
3
3
  export interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
4
- variant?}
4
+ variant?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error'
5
+ elevation?: 'base' | 'elevated' | 'interactive'
6
+ size?: 'compact' | 'normal' | 'spacious'
7
+ interactive?: boolean
8
+ disabled?: boolean
9
+ loading?: boolean
10
+ fullWidth?: boolean
11
+ centered?: boolean
12
+ textAlign?: 'left' | 'center' | 'right'
13
+ animateIn?: boolean
14
+ animateOut?: boolean
15
+ }
5
16
 
6
17
  const Card = React.forwardRef<HTMLDivElement, CardProps>(
7
18
  ({
@@ -24,8 +35,17 @@ const Card = React.forwardRef<HTMLDivElement, CardProps>(
24
35
  const variantClass = `card--variant-${variant}`
25
36
  const elevationClass = `card--elevation-${elevation}`
26
37
  const sizeClass = `card--size-${size}`
27
- const interactiveClass = interactive ? 'card--interactive' = disabled ? 'card--disabled' = loading ? 'card--loading' = fullWidth ? 'card--full-width' = centered ? 'card--centered' = `card--text-${textAlign}`
28
- const animateInClass = animateIn ? 'card--animate-in' = animateOut ? 'card--animate-out' = [
38
+ const interactiveClass = interactive ? 'card--interactive' : ''
39
+ const disabledClass = disabled ? 'card--disabled' : ''
40
+ const loadingClass = loading ? 'card--loading' : ''
41
+ const fullWidthClass = fullWidth ? 'card--full-width' : ''
42
+ const centeredClass = centered ? 'card--centered' : ''
43
+ const textAlignClass = `card--text-${textAlign}`
44
+ const animateInClass = animateIn ? 'card--animate-in' : ''
45
+ const animateOutClass = animateOut ? 'card--animate-out' : ''
46
+
47
+ // Combine classes
48
+ const cardClasses = [
29
49
  baseClass,
30
50
  variantClass,
31
51
  elevationClass,
@@ -55,7 +75,8 @@ const Card = React.forwardRef<HTMLDivElement, CardProps>(
55
75
  Card.displayName = "Card"
56
76
 
57
77
  export interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
58
- spacing?}
78
+ spacing?: 'compact' | 'normal' | 'spacious'
79
+ }
59
80
 
60
81
  const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(
61
82
  ({ className, spacing = 'normal', ...props }, ref) => {
@@ -80,7 +101,8 @@ const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(
80
101
  CardHeader.displayName = "CardHeader"
81
102
 
82
103
  export interface CardTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
83
- size?}
104
+ size?: 'small' | 'normal' | 'large'
105
+ }
84
106
 
85
107
  const CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(
86
108
  ({ className, size = 'normal', ...props }, ref) => {
@@ -105,7 +127,8 @@ const CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(
105
127
  CardTitle.displayName = "CardTitle"
106
128
 
107
129
  export interface CardDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
108
- size?}
130
+ size?: 'small' | 'normal'
131
+ }
109
132
 
110
133
  const CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionProps>(
111
134
  ({ className, size = 'normal', ...props }, ref) => {
@@ -130,7 +153,8 @@ const CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionPr
130
153
  CardDescription.displayName = "CardDescription"
131
154
 
132
155
  export interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {
133
- spacing?}
156
+ spacing?: 'compact' | 'normal' | 'spacious'
157
+ }
134
158
 
135
159
  const CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(
136
160
  ({ className, spacing = 'normal', ...props }, ref) => {
@@ -155,7 +179,8 @@ const CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(
155
179
  CardContent.displayName = "CardContent"
156
180
 
157
181
  export interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {
158
- layout?}
182
+ layout?: 'horizontal' | 'vertical' | 'stacked' | 'justified' | 'centered'
183
+ }
159
184
 
160
185
  const CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(
161
186
  ({ className, layout = 'horizontal', ...props }, ref) => {
@@ -3,15 +3,15 @@ import * as CheckboxPrimitive from "@radix-ui/react-checkbox"
3
3
  import { Check } from "lucide-react"
4
4
 
5
5
  export interface CheckboxProps extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {
6
- size?;
6
+ size?: 'small' | 'default' | 'large';
7
7
  }
8
8
 
9
9
  const Checkbox = React.forwardRef<
10
10
  React.ElementRef<typeof CheckboxPrimitive.Root>,
11
11
  CheckboxProps
12
12
  >(({ className, size = 'default', ...props }, ref) => {
13
- const sizeClass = size !== 'default' ? `checkbox--size-${size}` ;
14
- const checkmarkSize = size === 'small' ? 'h-3 w-3' === 'large' ? 'h-5 w-5' ;
13
+ const sizeClass = size !== 'default' ? `checkbox--size-${size}` : '';
14
+ const checkmarkSize = size === 'small' ? 'h-3 w-3' : size === 'large' ? 'h-5 w-5' : 'h-4 w-4';
15
15
 
16
16
  return (
17
17
  <CheckboxPrimitive.Root
@@ -3,15 +3,15 @@ import * as CheckboxPrimitive from "@radix-ui/react-checkbox"
3
3
  import { Check } from "lucide-react"
4
4
 
5
5
  export interface CheckboxProps extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {
6
- size?;
6
+ size?: 'small' | 'default' | 'large';
7
7
  }
8
8
 
9
9
  const Checkbox = React.forwardRef<
10
10
  React.ElementRef<typeof CheckboxPrimitive.Root>,
11
11
  CheckboxProps
12
12
  >(({ className, size = 'default', ...props }, ref) => {
13
- const sizeClass = size !== 'default' ? `checkbox--size-${size}` ;
14
- const checkmarkSize = size === 'small' ? 'h-3 w-3' === 'large' ? 'h-5 w-5' ;
13
+ const sizeClass = size !== 'default' ? `checkbox--size-${size}` : '';
14
+ const checkmarkSize = size === 'small' ? 'h-3 w-3' : size === 'large' ? 'h-5 w-5' : 'h-4 w-4';
15
15
 
16
16
  return (
17
17
  <CheckboxPrimitive.Root
@@ -6,14 +6,14 @@ import { ColorScale, SemanticColors } from '../../themes/types';
6
6
  import { ColorManager } from '../../themes/colorManager';
7
7
 
8
8
  export interface ColorPreviewProps {
9
- colorScale?;
10
- semanticColors?;
11
- scaleName?;
12
- showAccessibility?;
13
- className?;
9
+ colorScale?: ColorScale;
10
+ semanticColors?: SemanticColors;
11
+ scaleName?: string;
12
+ showAccessibility?: boolean;
13
+ className?: string;
14
14
  }
15
15
 
16
- export const ColorPreview= ({
16
+ export const ColorPreview: React.FC<ColorPreviewProps> = ({
17
17
  colorScale,
18
18
  semanticColors,
19
19
  scaleName = 'Color Scale',
@@ -27,7 +27,7 @@ export const ColorPreview= ({
27
27
  const semantic = semanticColors || currentThemeConfig?.colors.semantic;
28
28
 
29
29
  // Type guard to ensure semantic colors are strings
30
- const isStringColor = (color)=>
30
+ const isStringColor = (color: unknown): color is string =>
31
31
  typeof color === 'string' && color.length > 0;
32
32
 
33
33
  if (!colors) {
@@ -70,18 +70,20 @@ export const ColorPreview= ({
70
70
  {/* Color Scale Preview */}
71
71
  <div>
72
72
  <h4 className="text-sm font-medium mb-3">Color Scale</h4>
73
- <div className="grid grid-cols-2 md=> {
73
+ <div className="grid grid-cols-2 md:grid-cols-5 gap-3">
74
+ {scaleShades.map(shade => {
74
75
  const color = colors[shade as keyof ColorScale];
75
76
  if (!color) return null;
76
77
 
77
78
  const accessibility = showAccessibility
78
79
  ? ColorManager.checkColorContrast(color, '#ffffff')
79
- ;
80
+ : null;
80
81
 
81
82
  return (
82
83
  <div key={shade} className="space-y-2">
83
84
  <div
84
- className="w-full h-16 rounded-lg border border-gray-200 dark={{ backgroundColor}}
85
+ className="w-full h-16 rounded-lg border border-gray-200 dark:border-gray-700"
86
+ style={{ backgroundColor: color }}
85
87
  />
86
88
  <div className="text-center">
87
89
  <div className="text-xs font-mono font-medium">{shade}</div>
@@ -89,11 +91,13 @@ export const ColorPreview= ({
89
91
  {showAccessibility && accessibility && (
90
92
  <div className="mt-1">
91
93
  <Badge
92
- variant={accessibility.aa ? 'default' }
94
+ variant={accessibility.aa ? 'default' : 'destructive'}
93
95
  className="text-xs"
94
96
  >
95
- {accessibility.contrastRatio.toFixed(1)}="text-xs mt-1">
96
- {accessibility.aa ? 'AA' }
97
+ {accessibility.contrastRatio.toFixed(1)}:1
98
+ </Badge>
99
+ <div className="text-xs mt-1">
100
+ {accessibility.aa ? 'AA' : 'Fail'}
97
101
  {accessibility.aaa && ' AAA'}
98
102
  </div>
99
103
  </div>
@@ -108,9 +112,12 @@ export const ColorPreview= ({
108
112
  {(colors.light || colors.dark || colors.contrast) && (
109
113
  <div className="mt-4">
110
114
  <h5 className="text-sm font-medium mb-2">Additional Variations</h5>
111
- <div className="grid grid-cols-1 md="space-y-2">
115
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-3">
116
+ {colors.light && (
117
+ <div className="space-y-2">
112
118
  <div
113
- className="w-full h-12 rounded-lg border border-gray-200 dark={{ backgroundColor}}
119
+ className="w-full h-12 rounded-lg border border-gray-200 dark:border-gray-700"
120
+ style={{ backgroundColor: colors.light }}
114
121
  />
115
122
  <div className="text-center">
116
123
  <div className="text-xs font-medium">Light</div>
@@ -122,7 +129,8 @@ export const ColorPreview= ({
122
129
  {colors.dark && (
123
130
  <div className="space-y-2">
124
131
  <div
125
- className="w-full h-12 rounded-lg border border-gray-200 dark={{ backgroundColor}}
132
+ className="w-full h-12 rounded-lg border border-gray-200 dark:border-gray-700"
133
+ style={{ backgroundColor: colors.dark }}
126
134
  />
127
135
  <div className="text-center">
128
136
  <div className="text-xs font-medium">Dark</div>
@@ -134,7 +142,8 @@ export const ColorPreview= ({
134
142
  {colors.contrast && (
135
143
  <div className="space-y-2">
136
144
  <div
137
- className="w-full h-12 rounded-lg border border-gray-200 dark={{ backgroundColor}}
145
+ className="w-full h-12 rounded-lg border border-gray-200 dark:border-gray-700"
146
+ style={{ backgroundColor: colors.contrast }}
138
147
  />
139
148
  <div className="text-center">
140
149
  <div className="text-xs font-medium">Contrast</div>
@@ -151,17 +160,19 @@ export const ColorPreview= ({
151
160
  {semantic && (
152
161
  <div>
153
162
  <h4 className="text-sm font-medium mb-3">Semantic Colors</h4>
154
- <div className="grid grid-cols-2 md).map(([name, color]) => {
163
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-3">
164
+ {Object.entries(semantic).map(([name, color]) => {
155
165
  if (!isStringColor(color) || name.includes('Light') || name.includes('Dark')) return null;
156
166
 
157
167
  const accessibility = showAccessibility
158
168
  ? ColorManager.checkColorContrast(color, '#ffffff')
159
- ;
169
+ : null;
160
170
 
161
171
  return (
162
172
  <div key={name} className="space-y-2">
163
173
  <div
164
- className="w-full h-16 rounded-lg border border-gray-200 dark={{ backgroundColor}}
174
+ className="w-full h-16 rounded-lg border border-gray-200 dark:border-gray-700"
175
+ style={{ backgroundColor: color }}
165
176
  />
166
177
  <div className="text-center">
167
178
  <div className="text-xs font-medium capitalize">
@@ -171,10 +182,13 @@ export const ColorPreview= ({
171
182
  {showAccessibility && accessibility && (
172
183
  <div className="mt-1">
173
184
  <Badge
174
- variant={accessibility.aa ? 'default' }
185
+ variant={accessibility.aa ? 'default' : 'destructive'}
175
186
  className="text-xs"
176
187
  >
177
- {accessibility.contrastRatio.toFixed(1)})}
188
+ {accessibility.contrastRatio.toFixed(1)}:1
189
+ </Badge>
190
+ </div>
191
+ )}
178
192
  </div>
179
193
  </div>
180
194
  );
@@ -184,13 +198,15 @@ export const ColorPreview= ({
184
198
  {/* Light and Dark variants */}
185
199
  <div className="mt-4">
186
200
  <h5 className="text-sm font-medium mb-2">Semantic Variants</h5>
187
- <div className="grid grid-cols-2 md).map(([name, color]) => {
201
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-3">
202
+ {Object.entries(semantic).map(([name, color]) => {
188
203
  if (!isStringColor(color) || !name.includes('Light') && !name.includes('Dark')) return null;
189
204
 
190
205
  return (
191
206
  <div key={name} className="space-y-2">
192
207
  <div
193
- className="w-full h-12 rounded-lg border border-gray-200 dark={{ backgroundColor}}
208
+ className="w-full h-12 rounded-lg border border-gray-200 dark:border-gray-700"
209
+ style={{ backgroundColor: color }}
194
210
  />
195
211
  <div className="text-center">
196
212
  <div className="text-xs font-medium capitalize">
@@ -213,10 +229,15 @@ export const ColorPreview= ({
213
229
  <div className="space-y-2 text-xs text-muted-foreground">
214
230
  <div className="flex items-center gap-2">
215
231
  <Badge variant="default" className="text-xs">AA</Badge>
216
- <span>WCAG AA standard="flex items-center gap-2">
232
+ <span>WCAG AA standard: 4.5:1 contrast ratio</span>
233
+ </div>
234
+ <div className="flex items-center gap-2">
217
235
  <Badge variant="secondary" className="text-xs">AAA</Badge>
218
- <span>WCAG AAA standard="text-xs">
219
- <strong>Note, test against appropriate dark backgrounds.
236
+ <span>WCAG AAA standard: 7:1 contrast ratio</span>
237
+ </div>
238
+ <div className="text-xs">
239
+ <strong>Note:</strong> Colors are tested against white background.
240
+ For dark themes, test against appropriate dark backgrounds.
220
241
  </div>
221
242
  </div>
222
243
  </div>
@@ -227,19 +248,19 @@ export const ColorPreview= ({
227
248
  <h4 className="text-sm font-medium mb-2">Usage Examples</h4>
228
249
  <div className="space-y-3">
229
250
  {/* Primary color usage */}
230
- <div className="p-3 rounded-lg border" style={{ backgroundColor] }}>
251
+ <div className="p-3 rounded-lg border" style={{ backgroundColor: colors[100] }}>
231
252
  <div className="space-y-2">
232
- <h5 className="font-medium" style={{ color] }}>
253
+ <h5 className="font-medium" style={{ color: colors[900] }}>
233
254
  Primary Color Usage
234
255
  </h5>
235
- <p className="text-sm" style={{ color] }}>
256
+ <p className="text-sm" style={{ color: colors[700] }}>
236
257
  This is an example of how the primary color scale can be used for text and backgrounds.
237
258
  </p>
238
259
  <div className="flex gap-2">
239
- <Badge style={{ backgroundColor], color}}>
260
+ <Badge style={{ backgroundColor: colors[500], color: '#ffffff' }}>
240
261
  Primary Button
241
262
  </Badge>
242
- <Badge variant="outline" style={{ borderColor], color] }}>
263
+ <Badge variant="outline" style={{ borderColor: colors[500], color: colors[700] }}>
243
264
  Secondary Button
244
265
  </Badge>
245
266
  </div>
@@ -248,23 +269,24 @@ export const ColorPreview= ({
248
269
 
249
270
  {/* Semantic color usage */}
250
271
  {semantic && (
251
- <div className="grid grid-cols-1 md="p-3 rounded-lg border" style={{ backgroundColor}}>
272
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-3">
273
+ <div className="p-3 rounded-lg border" style={{ backgroundColor: semantic.successLight }}>
252
274
  <div className="space-y-2">
253
- <h5 className="font-medium" style={{ color}}>
275
+ <h5 className="font-medium" style={{ color: semantic.successDark }}>
254
276
  Success State
255
277
  </h5>
256
- <p className="text-sm" style={{ color}}>
278
+ <p className="text-sm" style={{ color: semantic.success }}>
257
279
  This shows how semantic colors can be used for different states.
258
280
  </p>
259
281
  </div>
260
282
  </div>
261
283
 
262
- <div className="p-3 rounded-lg border" style={{ backgroundColor}}>
284
+ <div className="p-3 rounded-lg border" style={{ backgroundColor: semantic.errorLight }}>
263
285
  <div className="space-y-2">
264
- <h5 className="font-medium" style={{ color}}>
286
+ <h5 className="font-medium" style={{ color: semantic.errorDark }}>
265
287
  Error State
266
288
  </h5>
267
- <p className="text-sm" style={{ color}}>
289
+ <p className="text-sm" style={{ color: semantic.error }}>
268
290
  Error messages and validation feedback use semantic colors.
269
291
  </p>
270
292
  </div>
@@ -280,11 +302,11 @@ export const ColorPreview= ({
280
302
 
281
303
  // Multi-color preview component
282
304
  export interface ColorShowcaseProps {
283
- showAccessibility?;
284
- className?;
305
+ showAccessibility?: boolean;
306
+ className?: string;
285
307
  }
286
308
 
287
- export const ColorShowcase= ({
309
+ export const ColorShowcase: React.FC<ColorShowcaseProps> = ({
288
310
  showAccessibility = true,
289
311
  className = ''
290
312
  }) => {
@@ -301,7 +323,7 @@ export const ColorShowcase= ({
301
323
  const { primary, secondary, semantic, neutral, surface, text } = currentThemeConfig.colors;
302
324
 
303
325
  // Type guard to ensure colors are strings
304
- const isStringColor = (color)=>
326
+ const isStringColor = (color: unknown): color is string =>
305
327
  typeof color === 'string' && color.length > 0;
306
328
 
307
329
  return (
@@ -339,7 +361,8 @@ export const ColorShowcase= ({
339
361
  </CardDescription>
340
362
  </CardHeader>
341
363
  <CardContent>
342
- <div className="grid grid-cols-1 md="space-y-3">
364
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
365
+ <div className="space-y-3">
343
366
  <h4 className="text-sm font-medium">Surface Colors</h4>
344
367
  <div className="space-y-2">
345
368
  {Object.entries(surface).map(([name, color]) => {
@@ -348,7 +371,7 @@ export const ColorShowcase= ({
348
371
  <div key={name} className="flex items-center gap-3">
349
372
  <div
350
373
  className="w-8 h-8 rounded border"
351
- style={{ backgroundColor}}
374
+ style={{ backgroundColor: color }}
352
375
  />
353
376
  <div>
354
377
  <div className="text-sm font-medium capitalize">{name}</div>
@@ -369,7 +392,7 @@ export const ColorShowcase= ({
369
392
  <div key={name} className="flex items-center gap-3">
370
393
  <div
371
394
  className="w-8 h-8 rounded border"
372
- style={{ backgroundColor}}
395
+ style={{ backgroundColor: color }}
373
396
  />
374
397
  <div>
375
398
  <div className="text-sm font-medium capitalize">{name}</div>