@idealyst/components 1.0.82 → 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 +25 -7
  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 +347 -0
  170. package/src/Select/Select.styles.tsx +335 -0
  171. package/src/Select/Select.web.tsx +276 -0
  172. package/src/Select/index.native.ts +2 -0
  173. package/src/Select/index.ts +5 -0
  174. package/src/Select/index.web.ts +5 -0
  175. package/src/Select/types.ts +124 -0
  176. package/src/Skeleton/Skeleton.native.tsx +139 -0
  177. package/src/Skeleton/Skeleton.styles.tsx +59 -0
  178. package/src/Skeleton/Skeleton.web.tsx +112 -0
  179. package/src/Skeleton/index.native.ts +4 -0
  180. package/src/Skeleton/index.ts +5 -0
  181. package/src/Skeleton/index.web.ts +5 -0
  182. package/src/Skeleton/types.ts +75 -0
  183. package/src/Slider/Slider.native.tsx +248 -0
  184. package/src/Slider/Slider.styles.tsx +241 -0
  185. package/src/Slider/Slider.web.tsx +226 -0
  186. package/src/Slider/index.native.ts +3 -0
  187. package/src/Slider/index.ts +5 -0
  188. package/src/Slider/index.web.ts +5 -0
  189. package/src/Slider/types.ts +31 -0
  190. package/src/Switch/Switch.native.tsx +131 -0
  191. package/src/Switch/Switch.styles.tsx +169 -0
  192. package/src/Switch/Switch.web.tsx +121 -0
  193. package/src/Switch/index.native.ts +3 -0
  194. package/src/Switch/index.ts +5 -0
  195. package/src/Switch/index.web.ts +5 -0
  196. package/src/Switch/types.ts +21 -0
  197. package/src/TabBar/TabBar.native.tsx +142 -0
  198. package/src/TabBar/TabBar.styles.tsx +399 -0
  199. package/src/TabBar/TabBar.web.tsx +205 -0
  200. package/src/TabBar/index.native.tsx +3 -0
  201. package/src/TabBar/index.ts +3 -0
  202. package/src/TabBar/index.web.tsx +3 -0
  203. package/src/TabBar/types.ts +26 -0
  204. package/src/Table/Table.native.tsx +122 -0
  205. package/src/Table/Table.styles.tsx +283 -0
  206. package/src/Table/Table.web.tsx +112 -0
  207. package/src/Table/index.native.tsx +3 -0
  208. package/src/Table/index.ts +3 -0
  209. package/src/Table/index.web.tsx +3 -0
  210. package/src/Table/types.ts +28 -0
  211. package/src/Text/Text.native.tsx +12 -11
  212. package/src/Text/Text.styles.tsx +76 -64
  213. package/src/Text/Text.web.tsx +14 -9
  214. package/src/Text/index.ts +5 -5
  215. package/src/Text/index.web.ts +5 -3
  216. package/src/Text/types.ts +20 -13
  217. package/src/TextArea/TextArea.native.tsx +134 -0
  218. package/src/TextArea/TextArea.styles.tsx +175 -0
  219. package/src/TextArea/TextArea.web.tsx +156 -0
  220. package/src/TextArea/index.native.ts +3 -0
  221. package/src/TextArea/index.ts +3 -0
  222. package/src/TextArea/index.web.ts +3 -0
  223. package/src/TextArea/types.ts +30 -0
  224. package/src/Tooltip/Tooltip.native.tsx +165 -0
  225. package/src/Tooltip/Tooltip.styles.tsx +73 -0
  226. package/src/Tooltip/Tooltip.web.tsx +87 -0
  227. package/src/Tooltip/index.native.ts +3 -0
  228. package/src/Tooltip/index.ts +3 -0
  229. package/src/Tooltip/types.ts +18 -0
  230. package/src/Video/Video.native.tsx +105 -0
  231. package/src/Video/Video.styles.tsx +39 -0
  232. package/src/Video/Video.web.tsx +115 -0
  233. package/src/Video/index.native.ts +5 -0
  234. package/src/Video/index.ts +5 -0
  235. package/src/Video/types.ts +29 -0
  236. package/src/View/View.native.tsx +9 -14
  237. package/src/View/View.styles.tsx +101 -93
  238. package/src/View/View.web.tsx +16 -17
  239. package/src/View/index.ts +5 -5
  240. package/src/View/index.web.ts +5 -3
  241. package/src/View/types.ts +29 -21
  242. package/src/examples/AccordionExamples.tsx +126 -0
  243. package/src/examples/AlertExamples.tsx +280 -0
  244. package/src/examples/AvatarExamples.tsx +23 -23
  245. package/src/examples/BadgeExamples.tsx +109 -41
  246. package/src/examples/BreadcrumbExamples.tsx +312 -0
  247. package/src/examples/ButtonExamples.tsx +160 -33
  248. package/src/examples/CardExamples.tsx +40 -40
  249. package/src/examples/CheckboxExamples.tsx +12 -12
  250. package/src/examples/ChipExamples.tsx +197 -0
  251. package/src/examples/DialogExamples.tsx +22 -22
  252. package/src/examples/DividerExamples.tsx +49 -49
  253. package/src/examples/IconExamples.tsx +270 -54
  254. package/src/examples/ImageExamples.tsx +174 -0
  255. package/src/examples/InputExamples.tsx +75 -17
  256. package/src/examples/ListExamples.tsx +288 -0
  257. package/src/examples/MenuExamples.tsx +144 -0
  258. package/src/examples/PopoverExamples.tsx +69 -73
  259. package/src/examples/ProgressExamples.tsx +137 -0
  260. package/src/examples/RadioButtonExamples.tsx +161 -0
  261. package/src/examples/SVGImageExamples.tsx +19 -17
  262. package/src/examples/ScreenExamples.tsx +31 -31
  263. package/src/examples/SelectExamples.tsx +423 -0
  264. package/src/examples/SkeletonExamples.tsx +206 -0
  265. package/src/examples/SliderExamples.tsx +200 -0
  266. package/src/examples/SwitchExamples.tsx +182 -0
  267. package/src/examples/TabBarExamples.tsx +143 -0
  268. package/src/examples/TableExamples.tsx +280 -0
  269. package/src/examples/TextAreaExamples.tsx +173 -0
  270. package/src/examples/TextExamples.tsx +28 -32
  271. package/src/examples/ThemeExtensionExamples.tsx +10 -10
  272. package/src/examples/TooltipExamples.tsx +126 -0
  273. package/src/examples/VideoExamples.tsx +144 -0
  274. package/src/examples/ViewExamples.tsx +64 -56
  275. package/src/examples/index.ts +18 -3
  276. package/src/hooks/useMergeRefs.ts +16 -0
  277. package/src/hooks/useSmartPosition.native.ts +169 -0
  278. package/src/index.native.ts +80 -9
  279. package/src/index.ts +75 -1
  280. package/src/internal/BoundedModalContent.native.tsx +58 -0
  281. package/src/internal/PositionedPortal.tsx +254 -0
  282. package/src/internal/SafeAreaDebugOverlay.native.tsx +173 -0
  283. package/src/unistyles.d.ts +6 -0
  284. package/src/utils/buildSizeVariants.ts +16 -0
  285. package/src/utils/deepMerge.ts +43 -0
  286. package/src/utils/positionUtils.native.ts +280 -0
  287. package/src/utils/styleHelpers.ts +48 -0
  288. package/LLM-ACCESS-GUIDE.md +0 -143
  289. package/src/ActivityIndicator/README.md +0 -132
  290. package/src/Avatar/README.md +0 -139
  291. package/src/Badge/README.md +0 -170
  292. package/src/Button/Button.types.ts +0 -12
  293. package/src/Button/README.md +0 -262
  294. package/src/Card/README.md +0 -258
  295. package/src/Checkbox/README.md +0 -102
  296. package/src/Dialog/README.md +0 -210
  297. package/src/Divider/README.md +0 -108
  298. package/src/Icon/README.md +0 -81
  299. package/src/Input/README.md +0 -100
  300. package/src/SVGImage/README.md +0 -209
  301. package/src/Screen/README.md +0 -86
  302. package/src/Text/README.md +0 -94
  303. package/src/View/README.md +0 -107
  304. package/src/examples/AllExamples.tsx +0 -84
  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,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();
@@ -1,188 +0,0 @@
1
- // =============================================================================
2
- // THEME PACKAGE - Complete theming solution
3
- // =============================================================================
4
- // This file exports everything needed for theming in a clean, organized way
5
-
6
- // Import everything we need first
7
- import {
8
- createTheme,
9
- generateColorPalette,
10
- lighten,
11
- darken,
12
- createLightResolvedIntents,
13
- createDarkResolvedIntents,
14
- createLightResolvedColors,
15
- createDarkResolvedColors,
16
- extendTheme,
17
- type ThemeConfig,
18
- type ThemeColorPalette,
19
- type ResolvedIntent,
20
- type ThemeColorSystem,
21
- } from './themeBuilder';
22
-
23
- import {
24
- createDefaultLightTheme,
25
- createDefaultDarkTheme,
26
- createStandardPalettes,
27
- createDarkPalettes,
28
- createLightIntentMappings,
29
- createDarkIntentMappings,
30
- createLightColorMappings,
31
- createDarkColorMappings,
32
- defaultLightTheme,
33
- defaultDarkTheme,
34
- commonThemeProperties,
35
- } from './defaultThemes';
36
-
37
- import {
38
- extendedThemes,
39
- extendedColorPalettes,
40
- extendedDarkColorPalettes,
41
- type ExtendedColorVariant,
42
- type ExtendedIntentVariant,
43
- } from '../examples/extendedTheme';
44
-
45
- import { breakpoints } from './breakpoints';
46
- // Note: Removed import from ../unistyles to prevent circular dependency
47
- // when navigation package imports from this theme index
48
-
49
- // Re-export everything for external use
50
- export {
51
- // Core theme building functionality
52
- createTheme,
53
- generateColorPalette,
54
- lighten,
55
- darken,
56
- createLightResolvedIntents,
57
- createDarkResolvedIntents,
58
- createLightResolvedColors,
59
- createDarkResolvedColors,
60
- extendTheme,
61
- type ThemeConfig,
62
- type ThemeColorPalette,
63
- type ResolvedIntent,
64
- type ThemeColorSystem,
65
-
66
- // Default themes and palettes
67
- createDefaultLightTheme,
68
- createDefaultDarkTheme,
69
- createStandardPalettes,
70
- createDarkPalettes,
71
- createLightIntentMappings,
72
- createDarkIntentMappings,
73
- createLightColorMappings,
74
- createDarkColorMappings,
75
- defaultLightTheme,
76
- defaultDarkTheme,
77
- commonThemeProperties,
78
-
79
- // Extended themes for examples
80
- extendedThemes,
81
- extendedColorPalettes,
82
- extendedDarkColorPalettes,
83
- type ExtendedColorVariant,
84
- type ExtendedIntentVariant,
85
-
86
- // Breakpoints for responsive design
87
- breakpoints,
88
-
89
- // Legacy theme exports for backward compatibility (avoiding circular dependency)
90
- extendedThemes as legacyThemes,
91
- };
92
-
93
- // Individual theme exports for backward compatibility
94
- export const lightTheme = extendedThemes.light;
95
- export const darkTheme = extendedThemes.dark;
96
-
97
- // =============================================================================
98
- // THEME PRESETS - Ready-to-use theme configurations
99
- // =============================================================================
100
-
101
- /**
102
- * Complete theme presets ready for immediate use
103
- */
104
- export const themePresets = {
105
- // Standard themes
106
- light: defaultLightTheme,
107
- dark: defaultDarkTheme,
108
-
109
- // Extended themes with additional colors
110
- lightExtended: extendedThemes.light,
111
- darkExtended: extendedThemes.dark,
112
- } as const;
113
-
114
- /**
115
- * Theme creation utilities
116
- */
117
- export const themeUtils = {
118
- // Color palette generation
119
- generateColorPalette,
120
- lighten,
121
- darken,
122
-
123
- // Theme creation
124
- createTheme,
125
- extendTheme,
126
-
127
- // Palette creators
128
- createStandardPalettes,
129
- createDarkPalettes,
130
-
131
- // Intent creators
132
- createLightIntentMappings,
133
- createDarkIntentMappings,
134
-
135
- // Color system creators
136
- createLightColorMappings,
137
- createDarkColorMappings,
138
- } as const;
139
-
140
- /**
141
- * Type definitions for theme-related interfaces
142
- */
143
- export type ThemePreset = keyof typeof themePresets;
144
- export type ThemeMode = 'light' | 'dark';
145
- export type AppTheme = typeof extendedThemes.light; // Define AppTheme to avoid circular dependency
146
-
147
- // =============================================================================
148
- // CONVENIENCE EXPORTS - For common use cases
149
- // =============================================================================
150
-
151
- /**
152
- * Quick access to commonly used themes
153
- */
154
- export const quickThemes = {
155
- light: extendedThemes.light,
156
- dark: extendedThemes.dark,
157
- } as const;
158
-
159
- /**
160
- * All available color palettes (standard + extended)
161
- */
162
- export const allColorPalettes = {
163
- ...createStandardPalettes(),
164
- ...extendedColorPalettes,
165
- } as const;
166
-
167
- // =============================================================================
168
- // DOCUMENTATION HELPERS
169
- // =============================================================================
170
-
171
- /**
172
- * Theme documentation and examples
173
- */
174
- export const themeDocumentation = {
175
- description: 'Complete theming system for cross-platform React components',
176
- availableThemes: Object.keys(themePresets),
177
- availablePalettes: Object.keys(allColorPalettes),
178
- themeStructure: {
179
- palettes: 'Color palettes with 50-900 shades',
180
- intents: 'Semantic color mappings (primary, success, error, etc.)',
181
- colors: 'Component color system (text, surface, border, interactive)',
182
- typography: 'Font families, sizes, weights, and line heights',
183
- spacing: 'Consistent spacing scale',
184
- borderRadius: 'Border radius scale',
185
- shadows: 'Shadow definitions for elevation',
186
- transitions: 'Animation timing definitions',
187
- },
188
- } as const;