@idealyst/components 1.0.83 → 1.0.84

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 (316) hide show
  1. package/CLAUDE.md +199 -232
  2. package/README.md +5 -5
  3. package/package.json +20 -2
  4. package/plugin/README.md +272 -0
  5. package/plugin/test-cases.jsx +112 -0
  6. package/plugin/web-legacy.js +320 -0
  7. package/plugin/web.js +422 -124
  8. package/src/Accordion/Accordion.native.tsx +182 -0
  9. package/src/Accordion/Accordion.styles.tsx +260 -0
  10. package/src/Accordion/Accordion.web.tsx +147 -0
  11. package/src/Accordion/index.native.tsx +3 -0
  12. package/src/Accordion/index.ts +3 -0
  13. package/src/Accordion/index.web.tsx +3 -0
  14. package/src/Accordion/types.ts +23 -0
  15. package/src/ActivityIndicator/ActivityIndicator.native.tsx +17 -12
  16. package/src/ActivityIndicator/ActivityIndicator.styles.tsx +83 -109
  17. package/src/ActivityIndicator/ActivityIndicator.web.tsx +23 -17
  18. package/src/ActivityIndicator/index.ts +5 -2
  19. package/src/ActivityIndicator/index.web.ts +5 -2
  20. package/src/ActivityIndicator/types.ts +15 -10
  21. package/src/Alert/Alert.native.tsx +113 -0
  22. package/src/Alert/Alert.styles.tsx +304 -0
  23. package/src/Alert/Alert.web.tsx +123 -0
  24. package/src/Alert/index.native.ts +5 -0
  25. package/src/Alert/index.ts +5 -0
  26. package/src/Alert/index.web.ts +5 -0
  27. package/src/Alert/types.ts +21 -0
  28. package/src/Avatar/Avatar.native.tsx +8 -6
  29. package/src/Avatar/Avatar.styles.tsx +64 -58
  30. package/src/Avatar/Avatar.web.tsx +13 -8
  31. package/src/Avatar/index.ts +5 -2
  32. package/src/Avatar/index.web.ts +5 -2
  33. package/src/Avatar/types.ts +19 -13
  34. package/src/Badge/Badge.native.tsx +59 -14
  35. package/src/Badge/Badge.styles.tsx +125 -139
  36. package/src/Badge/Badge.web.tsx +72 -16
  37. package/src/Badge/index.ts +5 -2
  38. package/src/Badge/index.web.ts +5 -2
  39. package/src/Badge/types.ts +23 -11
  40. package/src/Breadcrumb/Breadcrumb.native.tsx +225 -0
  41. package/src/Breadcrumb/Breadcrumb.styles.tsx +234 -0
  42. package/src/Breadcrumb/Breadcrumb.web.tsx +268 -0
  43. package/src/Breadcrumb/index.native.ts +5 -0
  44. package/src/Breadcrumb/index.ts +5 -0
  45. package/src/Breadcrumb/index.web.ts +5 -0
  46. package/src/Breadcrumb/types.ts +56 -0
  47. package/src/Button/Button.native.tsx +75 -24
  48. package/src/Button/Button.styles.tsx +248 -205
  49. package/src/Button/Button.web.tsx +82 -25
  50. package/src/Button/index.ts +5 -5
  51. package/src/Button/index.web.ts +5 -3
  52. package/src/Button/types.ts +32 -15
  53. package/src/Card/Card.native.tsx +14 -11
  54. package/src/Card/Card.styles.tsx +146 -220
  55. package/src/Card/Card.web.tsx +20 -21
  56. package/src/Card/index.ts +5 -5
  57. package/src/Card/index.web.ts +5 -3
  58. package/src/Card/types.ts +24 -17
  59. package/src/Checkbox/Checkbox.native.tsx +24 -34
  60. package/src/Checkbox/Checkbox.styles.tsx +223 -275
  61. package/src/Checkbox/Checkbox.web.tsx +30 -37
  62. package/src/Checkbox/index.ts +5 -5
  63. package/src/Checkbox/index.web.ts +5 -3
  64. package/src/Checkbox/types.ts +26 -20
  65. package/src/Chip/Chip.native.tsx +126 -0
  66. package/src/Chip/Chip.styles.tsx +138 -0
  67. package/src/Chip/Chip.web.tsx +154 -0
  68. package/src/Chip/index.native.ts +5 -0
  69. package/src/Chip/index.ts +5 -0
  70. package/src/Chip/index.web.ts +5 -0
  71. package/src/Chip/types.ts +51 -0
  72. package/src/Dialog/Dialog.native.tsx +65 -12
  73. package/src/Dialog/Dialog.styles.tsx +154 -136
  74. package/src/Dialog/Dialog.web.tsx +16 -11
  75. package/src/Dialog/index.ts +5 -2
  76. package/src/Dialog/index.web.ts +5 -2
  77. package/src/Dialog/types.ts +22 -16
  78. package/src/Divider/Divider.native.tsx +19 -14
  79. package/src/Divider/Divider.styles.tsx +273 -595
  80. package/src/Divider/Divider.web.tsx +19 -12
  81. package/src/Divider/index.ts +5 -5
  82. package/src/Divider/index.web.ts +5 -3
  83. package/src/Divider/types.ts +28 -19
  84. package/src/Icon/Icon.native.tsx +17 -24
  85. package/src/Icon/Icon.styles.tsx +64 -48
  86. package/src/Icon/Icon.web.tsx +14 -11
  87. package/src/Icon/IconSvg/IconSvg.native.tsx +42 -0
  88. package/src/Icon/IconSvg/IconSvg.web.tsx +40 -0
  89. package/src/Icon/IconSvg/index.native.ts +1 -0
  90. package/src/Icon/IconSvg/index.ts +1 -0
  91. package/src/Icon/icon-resolver.native.ts +27 -0
  92. package/src/Icon/icon-resolver.ts +70 -0
  93. package/src/Icon/index.ts +5 -5
  94. package/src/Icon/index.web.ts +5 -3
  95. package/src/Icon/types.ts +17 -11
  96. package/src/Image/Image.native.tsx +86 -0
  97. package/src/Image/Image.styles.tsx +57 -0
  98. package/src/Image/Image.web.tsx +92 -0
  99. package/src/Image/index.native.ts +5 -0
  100. package/src/Image/index.ts +5 -0
  101. package/src/Image/types.ts +21 -0
  102. package/src/Input/Input.native.tsx +103 -26
  103. package/src/Input/Input.styles.tsx +240 -177
  104. package/src/Input/Input.web.tsx +141 -38
  105. package/src/Input/index.ts +5 -5
  106. package/src/Input/index.web.ts +5 -3
  107. package/src/Input/types.ts +43 -20
  108. package/src/List/List.native.tsx +56 -0
  109. package/src/List/List.styles.tsx +257 -0
  110. package/src/List/List.web.tsx +43 -0
  111. package/src/List/ListContext.tsx +16 -0
  112. package/src/List/ListItem.native.tsx +111 -0
  113. package/src/List/ListItem.web.tsx +110 -0
  114. package/src/List/ListSection.native.tsx +31 -0
  115. package/src/List/ListSection.web.tsx +33 -0
  116. package/src/List/index.native.tsx +5 -0
  117. package/src/List/index.ts +5 -0
  118. package/src/List/index.web.tsx +5 -0
  119. package/src/List/types.ts +42 -0
  120. package/src/Menu/Menu.native.tsx +150 -0
  121. package/src/Menu/Menu.styles.tsx +185 -0
  122. package/src/Menu/Menu.web.tsx +99 -0
  123. package/src/Menu/MenuItem.native.tsx +66 -0
  124. package/src/Menu/MenuItem.styles.tsx +119 -0
  125. package/src/Menu/MenuItem.web.tsx +67 -0
  126. package/src/Menu/index.native.ts +3 -0
  127. package/src/Menu/index.ts +3 -0
  128. package/src/Menu/index.web.ts +3 -0
  129. package/src/Menu/types.ts +30 -0
  130. package/src/Popover/Popover.native.tsx +102 -32
  131. package/src/Popover/Popover.styles.tsx +100 -67
  132. package/src/Popover/Popover.web.tsx +36 -260
  133. package/src/Popover/index.ts +5 -2
  134. package/src/Popover/index.web.ts +5 -2
  135. package/src/Popover/types.ts +14 -13
  136. package/src/Pressable/Pressable.native.tsx +7 -6
  137. package/src/Pressable/Pressable.web.tsx +8 -6
  138. package/src/Pressable/index.ts +5 -2
  139. package/src/Pressable/index.web.ts +5 -2
  140. package/src/Pressable/types.ts +11 -10
  141. package/src/Progress/Progress.native.tsx +179 -0
  142. package/src/Progress/Progress.styles.tsx +164 -0
  143. package/src/Progress/Progress.web.tsx +144 -0
  144. package/src/Progress/index.native.ts +1 -0
  145. package/src/Progress/index.ts +5 -0
  146. package/src/Progress/index.web.ts +5 -0
  147. package/src/Progress/types.ts +21 -0
  148. package/src/RadioButton/RadioButton.native.tsx +88 -0
  149. package/src/RadioButton/RadioButton.styles.tsx +163 -0
  150. package/src/RadioButton/RadioButton.web.tsx +85 -0
  151. package/src/RadioButton/RadioGroup.native.tsx +43 -0
  152. package/src/RadioButton/RadioGroup.web.tsx +49 -0
  153. package/src/RadioButton/index.native.ts +2 -0
  154. package/src/RadioButton/index.ts +2 -0
  155. package/src/RadioButton/index.web.ts +2 -0
  156. package/src/RadioButton/types.ts +29 -0
  157. package/src/SVGImage/SVGImage.native.tsx +9 -7
  158. package/src/SVGImage/SVGImage.styles.tsx +63 -55
  159. package/src/SVGImage/SVGImage.web.tsx +16 -13
  160. package/src/SVGImage/index.ts +5 -5
  161. package/src/SVGImage/index.web.ts +5 -2
  162. package/src/SVGImage/types.ts +7 -3
  163. package/src/Screen/Screen.native.tsx +43 -17
  164. package/src/Screen/Screen.styles.tsx +58 -54
  165. package/src/Screen/Screen.web.tsx +11 -5
  166. package/src/Screen/index.ts +5 -2
  167. package/src/Screen/index.web.ts +5 -2
  168. package/src/Screen/types.ts +23 -9
  169. package/src/Select/Select.native.tsx +140 -63
  170. package/src/Select/Select.styles.tsx +312 -302
  171. package/src/Select/Select.web.tsx +156 -316
  172. package/src/Select/index.ts +5 -2
  173. package/src/Select/index.web.ts +5 -2
  174. package/src/Select/types.ts +13 -7
  175. package/src/Skeleton/Skeleton.native.tsx +139 -0
  176. package/src/Skeleton/Skeleton.styles.tsx +59 -0
  177. package/src/Skeleton/Skeleton.web.tsx +112 -0
  178. package/src/Skeleton/index.native.ts +4 -0
  179. package/src/Skeleton/index.ts +5 -0
  180. package/src/Skeleton/index.web.ts +5 -0
  181. package/src/Skeleton/types.ts +75 -0
  182. package/src/Slider/Slider.native.tsx +248 -0
  183. package/src/Slider/Slider.styles.tsx +241 -0
  184. package/src/Slider/Slider.web.tsx +226 -0
  185. package/src/Slider/index.native.ts +3 -0
  186. package/src/Slider/index.ts +5 -0
  187. package/src/Slider/index.web.ts +5 -0
  188. package/src/Slider/types.ts +31 -0
  189. package/src/Switch/Switch.native.tsx +131 -0
  190. package/src/Switch/Switch.styles.tsx +169 -0
  191. package/src/Switch/Switch.web.tsx +121 -0
  192. package/src/Switch/index.native.ts +3 -0
  193. package/src/Switch/index.ts +5 -0
  194. package/src/Switch/index.web.ts +5 -0
  195. package/src/Switch/types.ts +21 -0
  196. package/src/TabBar/TabBar.native.tsx +142 -0
  197. package/src/TabBar/TabBar.styles.tsx +399 -0
  198. package/src/TabBar/TabBar.web.tsx +205 -0
  199. package/src/TabBar/index.native.tsx +3 -0
  200. package/src/TabBar/index.ts +3 -0
  201. package/src/TabBar/index.web.tsx +3 -0
  202. package/src/TabBar/types.ts +26 -0
  203. package/src/Table/Table.native.tsx +122 -0
  204. package/src/Table/Table.styles.tsx +283 -0
  205. package/src/Table/Table.web.tsx +112 -0
  206. package/src/Table/index.native.tsx +3 -0
  207. package/src/Table/index.ts +3 -0
  208. package/src/Table/index.web.tsx +3 -0
  209. package/src/Table/types.ts +28 -0
  210. package/src/Text/Text.native.tsx +12 -11
  211. package/src/Text/Text.styles.tsx +76 -64
  212. package/src/Text/Text.web.tsx +14 -9
  213. package/src/Text/index.ts +5 -5
  214. package/src/Text/index.web.ts +5 -3
  215. package/src/Text/types.ts +20 -13
  216. package/src/TextArea/TextArea.native.tsx +134 -0
  217. package/src/TextArea/TextArea.styles.tsx +175 -0
  218. package/src/TextArea/TextArea.web.tsx +156 -0
  219. package/src/TextArea/index.native.ts +3 -0
  220. package/src/TextArea/index.ts +3 -0
  221. package/src/TextArea/index.web.ts +3 -0
  222. package/src/TextArea/types.ts +30 -0
  223. package/src/Tooltip/Tooltip.native.tsx +165 -0
  224. package/src/Tooltip/Tooltip.styles.tsx +73 -0
  225. package/src/Tooltip/Tooltip.web.tsx +87 -0
  226. package/src/Tooltip/index.native.ts +3 -0
  227. package/src/Tooltip/index.ts +3 -0
  228. package/src/Tooltip/types.ts +18 -0
  229. package/src/Video/Video.native.tsx +105 -0
  230. package/src/Video/Video.styles.tsx +39 -0
  231. package/src/Video/Video.web.tsx +115 -0
  232. package/src/Video/index.native.ts +5 -0
  233. package/src/Video/index.ts +5 -0
  234. package/src/Video/types.ts +29 -0
  235. package/src/View/View.native.tsx +9 -14
  236. package/src/View/View.styles.tsx +101 -93
  237. package/src/View/View.web.tsx +16 -17
  238. package/src/View/index.ts +5 -5
  239. package/src/View/index.web.ts +5 -3
  240. package/src/View/types.ts +29 -21
  241. package/src/examples/AccordionExamples.tsx +126 -0
  242. package/src/examples/AlertExamples.tsx +280 -0
  243. package/src/examples/AvatarExamples.tsx +23 -23
  244. package/src/examples/BadgeExamples.tsx +109 -41
  245. package/src/examples/BreadcrumbExamples.tsx +312 -0
  246. package/src/examples/ButtonExamples.tsx +160 -33
  247. package/src/examples/CardExamples.tsx +40 -40
  248. package/src/examples/CheckboxExamples.tsx +12 -12
  249. package/src/examples/ChipExamples.tsx +197 -0
  250. package/src/examples/DialogExamples.tsx +22 -22
  251. package/src/examples/DividerExamples.tsx +49 -49
  252. package/src/examples/IconExamples.tsx +270 -54
  253. package/src/examples/ImageExamples.tsx +174 -0
  254. package/src/examples/InputExamples.tsx +75 -17
  255. package/src/examples/ListExamples.tsx +288 -0
  256. package/src/examples/MenuExamples.tsx +144 -0
  257. package/src/examples/PopoverExamples.tsx +69 -73
  258. package/src/examples/ProgressExamples.tsx +137 -0
  259. package/src/examples/RadioButtonExamples.tsx +161 -0
  260. package/src/examples/SVGImageExamples.tsx +19 -17
  261. package/src/examples/ScreenExamples.tsx +31 -31
  262. package/src/examples/SelectExamples.tsx +67 -67
  263. package/src/examples/SkeletonExamples.tsx +206 -0
  264. package/src/examples/SliderExamples.tsx +200 -0
  265. package/src/examples/SwitchExamples.tsx +182 -0
  266. package/src/examples/TabBarExamples.tsx +143 -0
  267. package/src/examples/TableExamples.tsx +280 -0
  268. package/src/examples/TextAreaExamples.tsx +173 -0
  269. package/src/examples/TextExamples.tsx +28 -32
  270. package/src/examples/ThemeExtensionExamples.tsx +10 -10
  271. package/src/examples/TooltipExamples.tsx +126 -0
  272. package/src/examples/VideoExamples.tsx +144 -0
  273. package/src/examples/ViewExamples.tsx +64 -56
  274. package/src/examples/index.ts +17 -3
  275. package/src/hooks/useMergeRefs.ts +16 -0
  276. package/src/hooks/useSmartPosition.native.ts +169 -0
  277. package/src/index.native.ts +80 -9
  278. package/src/index.ts +71 -1
  279. package/src/internal/BoundedModalContent.native.tsx +58 -0
  280. package/src/internal/PositionedPortal.tsx +254 -0
  281. package/src/internal/SafeAreaDebugOverlay.native.tsx +173 -0
  282. package/src/unistyles.d.ts +6 -0
  283. package/src/utils/buildSizeVariants.ts +16 -0
  284. package/src/utils/deepMerge.ts +43 -0
  285. package/src/utils/positionUtils.native.ts +280 -0
  286. package/src/utils/styleHelpers.ts +48 -0
  287. package/LLM-ACCESS-GUIDE.md +0 -143
  288. package/src/ActivityIndicator/README.md +0 -132
  289. package/src/Avatar/README.md +0 -139
  290. package/src/Badge/README.md +0 -170
  291. package/src/Button/Button.types.ts +0 -12
  292. package/src/Button/README.md +0 -262
  293. package/src/Card/README.md +0 -258
  294. package/src/Checkbox/README.md +0 -102
  295. package/src/Dialog/README.md +0 -210
  296. package/src/Divider/README.md +0 -108
  297. package/src/Icon/README.md +0 -81
  298. package/src/Input/README.md +0 -100
  299. package/src/SVGImage/README.md +0 -209
  300. package/src/Screen/README.md +0 -86
  301. package/src/Select/README.md +0 -166
  302. package/src/Text/README.md +0 -94
  303. package/src/View/README.md +0 -107
  304. package/src/examples/AllExamples.tsx +0 -88
  305. package/src/examples/README.md +0 -136
  306. package/src/examples/ValidationExamples.tsx +0 -95
  307. package/src/examples/extendedTheme.ts +0 -329
  308. package/src/theme/breakpoints.ts +0 -8
  309. package/src/theme/colorResolver.ts +0 -218
  310. package/src/theme/colors.ts +0 -315
  311. package/src/theme/defaultThemes.ts +0 -326
  312. package/src/theme/index.ts +0 -188
  313. package/src/theme/themeBuilder.ts +0 -602
  314. package/src/theme/unistyles.d.ts +0 -6
  315. package/src/theme/variantHelpers.ts +0 -584
  316. package/src/theme/variants.ts +0 -56
@@ -1,315 +0,0 @@
1
- // Base color palettes - these are the source of truth for all colors
2
- export const colorPalettes = {
3
- blue: {
4
- 50: '#eff6ff',
5
- 100: '#dbeafe',
6
- 200: '#bfdbfe',
7
- 300: '#93c5fd',
8
- 400: '#60a5fa',
9
- 500: '#3b82f6',
10
- 600: '#2563eb',
11
- 700: '#1d4ed8',
12
- 800: '#1e40af',
13
- 900: '#1e3a8a',
14
- },
15
-
16
- green: {
17
- 50: '#f0fdf4',
18
- 100: '#dcfce7',
19
- 200: '#bbf7d0',
20
- 300: '#86efac',
21
- 400: '#4ade80',
22
- 500: '#22c55e',
23
- 600: '#16a34a',
24
- 700: '#15803d',
25
- 800: '#166534',
26
- 900: '#14532d',
27
- },
28
-
29
- red: {
30
- 50: '#fef2f2',
31
- 100: '#fee2e2',
32
- 200: '#fecaca',
33
- 300: '#fca5a5',
34
- 400: '#f87171',
35
- 500: '#ef4444',
36
- 600: '#dc2626',
37
- 700: '#b91c1c',
38
- 800: '#991b1b',
39
- 900: '#7f1d1d',
40
- },
41
-
42
- amber: {
43
- 50: '#fffbeb',
44
- 100: '#fef3c7',
45
- 200: '#fde68a',
46
- 300: '#fcd34d',
47
- 400: '#fbbf24',
48
- 500: '#f59e0b',
49
- 600: '#d97706',
50
- 700: '#b45309',
51
- 800: '#92400e',
52
- 900: '#78350f',
53
- },
54
-
55
- gray: {
56
- 50: '#f9fafb',
57
- 100: '#f3f4f6',
58
- 200: '#e5e7eb',
59
- 300: '#d1d5db',
60
- 400: '#9ca3af',
61
- 500: '#6b7280',
62
- 600: '#4b5563',
63
- 700: '#374151',
64
- 800: '#1f2937',
65
- 900: '#111827',
66
- },
67
-
68
- purple: {
69
- 50: '#f8fafc',
70
- 100: '#f1f5f9',
71
- 200: '#e2e8f0',
72
- 300: '#cbd5e1',
73
- 400: '#94a3b8',
74
- 500: '#64748b',
75
- 600: '#475569',
76
- 700: '#334155',
77
- 800: '#1e293b',
78
- 900: '#0f172a',
79
- },
80
-
81
- pink: {
82
- 50: '#fdf2f8',
83
- 100: '#fce7f3',
84
- 200: '#fbcfe8',
85
- 300: '#f9a8d4',
86
- 400: '#f472b6',
87
- 500: '#ec4899',
88
- 600: '#db2777',
89
- 700: '#be185d',
90
- 800: '#9d174d',
91
- 900: '#831843',
92
- },
93
-
94
- cyan: {
95
- 50: '#ecfeff',
96
- 100: '#cffafe',
97
- 200: '#a5f3fc',
98
- 300: '#67e8f9',
99
- 400: '#22d3ee',
100
- 500: '#06b6d4',
101
- 600: '#0891b2',
102
- 700: '#0e7490',
103
- 800: '#155e75',
104
- 900: '#164e63',
105
- },
106
- } as const;
107
-
108
- // Intent system - maps semantic meanings to color palettes
109
- export const intentMappings = {
110
- primary: {
111
- palette: 'blue' as const,
112
- main: 500 as const,
113
- on: '#ffffff',
114
- container: 100 as const,
115
- onContainer: 800 as const,
116
- light: 200 as const,
117
- dark: 700 as const,
118
- border: 300 as const,
119
- },
120
-
121
- success: {
122
- palette: 'green' as const,
123
- main: 500 as const,
124
- on: '#ffffff',
125
- container: 100 as const,
126
- onContainer: 800 as const,
127
- light: 200 as const,
128
- dark: 700 as const,
129
- border: 300 as const,
130
- },
131
-
132
- error: {
133
- palette: 'red' as const,
134
- main: 500 as const,
135
- on: '#ffffff',
136
- container: 100 as const,
137
- onContainer: 800 as const,
138
- light: 200 as const,
139
- dark: 700 as const,
140
- border: 300 as const,
141
- },
142
-
143
- warning: {
144
- palette: 'amber' as const,
145
- main: 500 as const,
146
- on: '#ffffff',
147
- container: 100 as const,
148
- onContainer: 800 as const,
149
- light: 200 as const,
150
- dark: 700 as const,
151
- border: 300 as const,
152
- },
153
-
154
- neutral: {
155
- palette: 'gray' as const,
156
- main: 500 as const,
157
- on: '#ffffff',
158
- container: 100 as const,
159
- onContainer: 800 as const,
160
- light: 200 as const,
161
- dark: 700 as const,
162
- border: 300 as const,
163
- },
164
-
165
- info: {
166
- palette: 'cyan' as const,
167
- main: 500 as const,
168
- on: '#ffffff',
169
- container: 100 as const,
170
- onContainer: 800 as const,
171
- light: 200 as const,
172
- dark: 700 as const,
173
- border: 300 as const,
174
- },
175
- } as const;
176
-
177
- // Color system for display components (non-actionable)
178
- export const colorMappings = {
179
- // Text colors
180
- text: {
181
- primary: 'gray.900' as const,
182
- secondary: 'gray.600' as const,
183
- disabled: 'gray.400' as const,
184
- inverse: '#ffffff',
185
- },
186
-
187
- // Surface colors
188
- surface: {
189
- primary: '#ffffff',
190
- secondary: 'gray.50' as const,
191
- tertiary: 'gray.100' as const,
192
- inverse: 'gray.900' as const,
193
- },
194
-
195
- // Border colors
196
- border: {
197
- primary: 'gray.200' as const,
198
- secondary: 'gray.300' as const,
199
- focus: 'primary' as const, // References intent.primary.main
200
- },
201
-
202
- // Direct color references (for backward compatibility and special cases)
203
- primary: 'primary' as const, // References intent.primary.main
204
- success: 'success' as const, // References intent.success.main
205
- error: 'error' as const, // References intent.error.main
206
- warning: 'warning' as const, // References intent.warning.main
207
- neutral: 'neutral' as const, // References intent.neutral.main
208
- info: 'info' as const, // References intent.info.main
209
- } as const;
210
-
211
- // Dark theme overrides
212
- export const darkThemeOverrides = {
213
- colorMappings: {
214
- text: {
215
- primary: 'gray.50' as const,
216
- secondary: 'gray.300' as const,
217
- disabled: 'gray.500' as const,
218
- inverse: 'gray.900' as const,
219
- },
220
-
221
- surface: {
222
- primary: 'gray.900' as const,
223
- secondary: 'gray.800' as const,
224
- tertiary: 'gray.700' as const,
225
- inverse: '#ffffff',
226
- },
227
-
228
- border: {
229
- primary: 'gray.700' as const,
230
- secondary: 'gray.600' as const,
231
- focus: 'primary' as const,
232
- },
233
- },
234
-
235
- // Dark theme intent adjustments
236
- intentMappings: {
237
- primary: {
238
- palette: 'blue' as const,
239
- main: 400 as const, // Lighter blue for dark theme
240
- on: 'gray.900' as const, // Dark text on light blue
241
- container: 900 as const, // Very dark blue container
242
- onContainer: 100 as const, // Light text on dark container
243
- light: 800 as const,
244
- dark: 300 as const,
245
- border: 400 as const,
246
- },
247
-
248
- success: {
249
- palette: 'green' as const,
250
- main: 400 as const,
251
- on: 'gray.900' as const,
252
- container: 900 as const,
253
- onContainer: 100 as const,
254
- light: 800 as const,
255
- dark: 300 as const,
256
- border: 400 as const,
257
- },
258
-
259
- error: {
260
- palette: 'red' as const,
261
- main: 400 as const,
262
- on: 'gray.900' as const,
263
- container: 900 as const,
264
- onContainer: 100 as const,
265
- light: 800 as const,
266
- dark: 300 as const,
267
- border: 400 as const,
268
- },
269
-
270
- warning: {
271
- palette: 'amber' as const,
272
- main: 400 as const,
273
- on: 'gray.900' as const,
274
- container: 900 as const,
275
- onContainer: 100 as const,
276
- light: 800 as const,
277
- dark: 300 as const,
278
- border: 400 as const,
279
- },
280
-
281
- neutral: {
282
- palette: 'gray' as const,
283
- main: 400 as const,
284
- on: 'gray.900' as const,
285
- container: 800 as const,
286
- onContainer: 100 as const,
287
- light: 700 as const,
288
- dark: 300 as const,
289
- border: 400 as const,
290
- },
291
-
292
- info: {
293
- palette: 'cyan' as const,
294
- main: 400 as const,
295
- on: 'gray.900' as const,
296
- container: 900 as const,
297
- onContainer: 100 as const,
298
- light: 800 as const,
299
- dark: 300 as const,
300
- border: 400 as const,
301
- },
302
- },
303
- } as const;
304
-
305
- // Import variant types
306
- import type { IntentVariant, ColorVariant, ColorPaletteShade } from './variants';
307
-
308
- // Export types for TypeScript
309
- export type ColorPalette = keyof typeof colorPalettes;
310
- export type ColorShade = keyof typeof colorPalettes.blue;
311
- export type IntentName = keyof typeof intentMappings;
312
- export type ColorName = keyof typeof colorMappings;
313
-
314
- // Ensure our variant types match the actual data structures
315
- export type { IntentVariant, ColorVariant, ColorPaletteShade };
@@ -1,326 +0,0 @@
1
- import {
2
- createTheme,
3
- generateColorPalette,
4
- createLightResolvedIntents,
5
- createDarkResolvedIntents,
6
- createLightResolvedColors,
7
- createDarkResolvedColors,
8
- type ThemeConfig
9
- } from './themeBuilder';
10
-
11
- // Common theme properties shared across all themes
12
- export const commonThemeProperties = {
13
- spacing: {
14
- xs: 4,
15
- sm: 8,
16
- md: 16,
17
- lg: 24,
18
- xl: 32,
19
- xxl: 40,
20
- xxxl: 48,
21
- xxxxl: 64,
22
- },
23
-
24
- borderRadius: {
25
- none: 0,
26
- xs: 2,
27
- sm: 4,
28
- md: 8,
29
- lg: 12,
30
- xl: 16,
31
- xxl: 20,
32
- full: 9999,
33
- },
34
-
35
- typography: {
36
- fontSize: {
37
- xs: 12,
38
- sm: 14,
39
- md: 16,
40
- lg: 18,
41
- xl: 20,
42
- xxl: 24,
43
- xxxl: 32,
44
- xxxxl: 40,
45
- },
46
- fontWeight: {
47
- light: '300',
48
- regular: '400',
49
- medium: '500',
50
- semibold: '600',
51
- bold: '700',
52
- extrabold: '800',
53
- },
54
- lineHeight: {
55
- tight: 1.25,
56
- normal: 1.5,
57
- relaxed: 1.75,
58
- },
59
- },
60
-
61
- shadows: {
62
- sm: {
63
- shadowColor: '#000',
64
- shadowOffset: { width: 0, height: 1 },
65
- shadowOpacity: 0.05,
66
- shadowRadius: 2,
67
- elevation: 1,
68
- },
69
- md: {
70
- shadowColor: '#000',
71
- shadowOffset: { width: 0, height: 4 },
72
- shadowOpacity: 0.1,
73
- shadowRadius: 8,
74
- elevation: 4,
75
- },
76
- lg: {
77
- shadowColor: '#000',
78
- shadowOffset: { width: 0, height: 8 },
79
- shadowOpacity: 0.15,
80
- shadowRadius: 16,
81
- elevation: 8,
82
- },
83
- },
84
-
85
- transitions: {
86
- fast: '0.15s ease',
87
- base: '0.2s ease',
88
- slow: '0.3s ease',
89
- button: 'all 0.2s ease',
90
- fade: 'opacity 0.2s ease',
91
- slide: 'transform 0.3s ease',
92
- },
93
-
94
- // Dynamic helper functions
95
- gap: (value: number) => value * 8,
96
- scale: (value: number) => value * 1.2,
97
- alpha: (color: string, alpha: number) => `${color}${Math.round(alpha * 255).toString(16).padStart(2, '0')}`,
98
- };
99
-
100
- // =============================================================================
101
- // DEFAULT PALETTES
102
- // =============================================================================
103
-
104
- /**
105
- * Helper function to create standard color palettes
106
- */
107
- export function createStandardPalettes(): ThemeConfig['palettes'] {
108
- return {
109
- red: generateColorPalette('#ef4444'),
110
- orange: generateColorPalette('#f97316'),
111
- yellow: generateColorPalette('#eab308'),
112
- green: generateColorPalette('#22c55e'),
113
- blue: generateColorPalette('#3b82f6'),
114
- purple: generateColorPalette('#a855f7'),
115
- black: generateColorPalette('#000000'),
116
- gray: generateColorPalette('#6b7280'),
117
- white: generateColorPalette('#ffffff'),
118
- };
119
- }
120
-
121
- /**
122
- * Helper function to create dark theme palettes with proper dark mode colors
123
- */
124
- export function createDarkPalettes(): ThemeConfig['palettes'] {
125
- const basePalettes = createStandardPalettes();
126
-
127
- return {
128
- ...basePalettes,
129
- // Adjusted gray palette for dark theme
130
- gray: {
131
- 50: '#18181b', // Very dark background
132
- 100: '#27272a', // Dark surface
133
- 200: '#3f3f46', // Medium dark
134
- 300: '#52525b', // Medium
135
- 400: '#71717a', // Medium light
136
- 500: '#a1a1aa', // Light gray
137
- 600: '#d4d4d8', // Lighter gray
138
- 700: '#e4e4e7', // Very light gray
139
- 800: '#f4f4f5', // Nearly white
140
- 900: '#fafafa', // White
141
- },
142
- // Adjusted black palette for dark theme
143
- black: {
144
- 50: '#000000', // Pure black
145
- 100: '#0a0a0a', // Very dark
146
- 200: '#141414', // Dark
147
- 300: '#1f1f1f', // Medium dark
148
- 400: '#2a2a2a', // Medium
149
- 500: '#3c3c3c', // Medium light
150
- 600: '#525252', // Light
151
- 700: '#737373', // Lighter
152
- 800: '#a3a3a3', // Very light
153
- 900: '#d4d4d4', // Nearly white
154
- },
155
- // Adjusted white palette for dark theme
156
- white: {
157
- 50: '#0c0c0c', // Very dark (inverted)
158
- 100: '#171717', // Dark
159
- 200: '#262626', // Medium dark
160
- 300: '#404040', // Medium
161
- 400: '#525252', // Medium light
162
- 500: '#737373', // Light
163
- 600: '#a3a3a3', // Lighter
164
- 700: '#d4d4d4', // Very light
165
- 800: '#f5f5f5', // Nearly white
166
- 900: '#ffffff', // Pure white
167
- },
168
- };
169
- }
170
-
171
- // Convenience functions for complete theme creation
172
- export function createLightIntentMappings(): ThemeConfig['intents'] {
173
- const palettes = createStandardPalettes();
174
- return createLightResolvedIntents(palettes);
175
- }
176
-
177
- export function createDarkIntentMappings(): ThemeConfig['intents'] {
178
- const palettes = createDarkPalettes();
179
- return createDarkResolvedIntents(palettes);
180
- }
181
-
182
- export function createLightColorMappings(): ThemeConfig['colors'] {
183
- const palettes = createStandardPalettes();
184
- return createLightResolvedColors(palettes);
185
- }
186
-
187
- export function createDarkColorMappings(): ThemeConfig['colors'] {
188
- const palettes = createDarkPalettes();
189
- return createDarkResolvedColors(palettes);
190
- }
191
-
192
- // Create default light theme using the explicit theme builder
193
- export function createDefaultLightTheme() {
194
- return createTheme({
195
- name: 'DefaultLight',
196
- mode: 'light',
197
- palettes: createStandardPalettes(),
198
- intents: createLightIntentMappings(),
199
- colors: createLightColorMappings(),
200
-
201
- typography: {
202
- fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
203
- },
204
-
205
- borderRadius: {
206
- sm: 4,
207
- md: 8,
208
- lg: 12,
209
- xl: 16,
210
- xxl: 20,
211
- },
212
-
213
- spacing: {
214
- xs: 4,
215
- sm: 8,
216
- md: 16,
217
- lg: 24,
218
- xl: 32,
219
- xxl: 40,
220
- xxxl: 48,
221
- },
222
-
223
- shadows: {
224
- sm: {
225
- shadowColor: '#000',
226
- shadowOffset: { width: 0, height: 1 },
227
- shadowOpacity: 0.05,
228
- shadowRadius: 2,
229
- elevation: 1,
230
- },
231
- md: {
232
- shadowColor: '#000',
233
- shadowOffset: { width: 0, height: 4 },
234
- shadowOpacity: 0.1,
235
- shadowRadius: 8,
236
- elevation: 4,
237
- },
238
- lg: {
239
- shadowColor: '#000',
240
- shadowOffset: { width: 0, height: 8 },
241
- shadowOpacity: 0.15,
242
- shadowRadius: 16,
243
- elevation: 8,
244
- },
245
- },
246
-
247
- transitions: {
248
- fast: '0.15s ease',
249
- base: '0.2s ease',
250
- slow: '0.3s ease',
251
- button: 'all 0.2s ease',
252
- fade: 'opacity 0.2s ease',
253
- slide: 'transform 0.3s ease',
254
- },
255
- });
256
- }
257
-
258
- // Create default dark theme using the explicit theme builder
259
- export function createDefaultDarkTheme() {
260
- return createTheme({
261
- name: 'DefaultDark',
262
- mode: 'dark',
263
- palettes: createDarkPalettes(),
264
- intents: createDarkIntentMappings(),
265
- colors: createDarkColorMappings(),
266
-
267
- typography: {
268
- fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
269
- },
270
-
271
- borderRadius: {
272
- sm: 4,
273
- md: 8,
274
- lg: 12,
275
- xl: 16,
276
- xxl: 20,
277
- },
278
-
279
- spacing: {
280
- xs: 4,
281
- sm: 8,
282
- md: 16,
283
- lg: 24,
284
- xl: 32,
285
- xxl: 40,
286
- xxxl: 48,
287
- },
288
-
289
- shadows: {
290
- sm: {
291
- shadowColor: '#000',
292
- shadowOffset: { width: 0, height: 1 },
293
- shadowOpacity: 0.2,
294
- shadowRadius: 2,
295
- elevation: 1,
296
- },
297
- md: {
298
- shadowColor: '#000',
299
- shadowOffset: { width: 0, height: 4 },
300
- shadowOpacity: 0.3,
301
- shadowRadius: 8,
302
- elevation: 4,
303
- },
304
- lg: {
305
- shadowColor: '#000',
306
- shadowOffset: { width: 0, height: 8 },
307
- shadowOpacity: 0.4,
308
- shadowRadius: 16,
309
- elevation: 8,
310
- },
311
- },
312
-
313
- transitions: {
314
- fast: '0.15s ease',
315
- base: '0.2s ease',
316
- slow: '0.3s ease',
317
- button: 'all 0.2s ease',
318
- fade: 'opacity 0.2s ease',
319
- slide: 'transform 0.3s ease',
320
- },
321
- });
322
- }
323
-
324
- // Export the created themes
325
- export const defaultLightTheme = createDefaultLightTheme();
326
- export const defaultDarkTheme = createDefaultDarkTheme();