@idealyst/components 1.0.83 → 1.0.85

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,94 +0,0 @@
1
- # Text Component
2
-
3
- A comprehensive text component with extensive styling options and theme integration.
4
-
5
- ## Features
6
-
7
- - ✅ Cross-platform (React & React Native)
8
- - ✅ Multiple sizes and weights
9
- - ✅ Color variants and intent-based colors
10
- - ✅ Text alignment options
11
- - ✅ Theme integration
12
- - ✅ TypeScript support
13
-
14
- ## Basic Usage
15
-
16
- ```tsx
17
- import { Text } from '@idealyst/components';
18
-
19
- // Basic text
20
- <Text>Hello World</Text>
21
-
22
- // Styled text
23
- <Text
24
- size="large"
25
- weight="bold"
26
- color="primary"
27
- align="center"
28
- >
29
- Welcome to the App
30
- </Text>
31
- ```
32
-
33
- ## Props
34
-
35
- | Prop | Type | Default | Description |
36
- |------|------|---------|-------------|
37
- | `children` | `ReactNode` | - | Text content to display |
38
- | `size` | `'small' \| 'medium' \| 'large' \| 'xlarge'` | `'medium'` | Font size |
39
- | `weight` | `'light' \| 'normal' \| 'medium' \| 'semibold' \| 'bold'` | `'normal'` | Font weight |
40
- | `color` | `ColorVariant \| string` | - | Text color |
41
- | `intent` | `IntentVariant` | - | Intent-based color scheme |
42
- | `align` | `'left' \| 'center' \| 'right'` | `'left'` | Text alignment |
43
- | `style` | `TextStyle` | - | Additional custom styles |
44
-
45
- ## Size Options
46
-
47
- | Size | Font Size | Use Case |
48
- |------|-----------|----------|
49
- | `small` | 12px | Captions, helper text |
50
- | `medium` | 14px | Body text, standard content |
51
- | `large` | 16px | Headings, important text |
52
- | `xlarge` | 20px | Page titles, feature headings |
53
-
54
- ## Weight Options
55
-
56
- - `light` - Light font weight
57
- - `normal` - Regular font weight (default)
58
- - `medium` - Medium font weight
59
- - `semibold` - Semi-bold font weight
60
- - `bold` - Bold font weight
61
-
62
- ## Examples
63
-
64
- ### Headings
65
- ```tsx
66
- <Text size="xlarge" weight="bold">Page Title</Text>
67
- <Text size="large" weight="semibold">Section Heading</Text>
68
- <Text size="medium" weight="medium">Subsection</Text>
69
- ```
70
-
71
- ### Body Text
72
- ```tsx
73
- <Text size="medium">
74
- This is regular body text with normal weight and medium size.
75
- </Text>
76
- <Text size="small" color="secondary">
77
- This is caption text with smaller size and secondary color.
78
- </Text>
79
- ```
80
-
81
- ### Intent Colors
82
- ```tsx
83
- <Text intent="success">Success message</Text>
84
- <Text intent="error">Error message</Text>
85
- <Text intent="warning">Warning message</Text>
86
- <Text intent="primary">Primary text</Text>
87
- ```
88
-
89
- ### Alignment
90
- ```tsx
91
- <Text align="left">Left aligned text</Text>
92
- <Text align="center">Center aligned text</Text>
93
- <Text align="right">Right aligned text</Text>
94
- ```
@@ -1,107 +0,0 @@
1
- # View Component
2
-
3
- A flexible container component with built-in spacing and styling options.
4
-
5
- ## Features
6
-
7
- - ✅ Cross-platform (React & React Native)
8
- - ✅ Built-in spacing system
9
- - ✅ Background color variants
10
- - ✅ Flexible layout options
11
- - ✅ Theme integration
12
- - ✅ TypeScript support
13
-
14
- ## Basic Usage
15
-
16
- ```tsx
17
- import { View, Text } from '@idealyst/components';
18
-
19
- // Basic view
20
- <View>
21
- <Text>Content inside view</Text>
22
- </View>
23
-
24
- // View with spacing
25
- <View spacing="lg">
26
- <Text>First item</Text>
27
- <Text>Second item</Text>
28
- <Text>Third item</Text>
29
- </View>
30
-
31
- // Styled view
32
- <View
33
- spacing="md"
34
- background="secondary"
35
- style={{ padding: 16, borderRadius: 8 }}
36
- >
37
- <Text>Styled content</Text>
38
- </View>
39
- ```
40
-
41
- ## Props
42
-
43
- | Prop | Type | Default | Description |
44
- |------|------|---------|-------------|
45
- | `children` | `ReactNode` | - | Content to display inside the view |
46
- | `spacing` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| 'xxl'` | - | Gap between child elements |
47
- | `background` | `BackgroundVariant` | - | Background color variant |
48
- | `style` | `ViewStyle` | - | Additional custom styles |
49
-
50
- ## Spacing System
51
-
52
- The spacing prop adds consistent gaps between child elements:
53
-
54
- | Spacing | Value | Use Case |
55
- |---------|-------|----------|
56
- | `xs` | 4px | Tight spacing |
57
- | `sm` | 8px | Small spacing |
58
- | `md` | 16px | Medium spacing |
59
- | `lg` | 24px | Large spacing |
60
- | `xl` | 32px | Extra large spacing |
61
- | `xxl` | 48px | Extra extra large spacing |
62
-
63
- ## Examples
64
-
65
- ### Vertical Lists
66
- ```tsx
67
- <View spacing="md">
68
- <Text size="large" weight="bold">Settings</Text>
69
- <Text>Profile Settings</Text>
70
- <Text>Notification Settings</Text>
71
- <Text>Privacy Settings</Text>
72
- </View>
73
- ```
74
-
75
- ### Card Content
76
- ```tsx
77
- <Card>
78
- <View spacing="sm">
79
- <Text size="large" weight="bold">Card Title</Text>
80
- <Text color="secondary">Card subtitle</Text>
81
- <Text>Card content goes here with proper spacing between elements.</Text>
82
- </View>
83
- </Card>
84
- ```
85
-
86
- ### Form Layout
87
- ```tsx
88
- <View spacing="lg">
89
- <Input label="Name" value={name} onChangeText={setName} />
90
- <Input label="Email" value={email} onChangeText={setEmail} />
91
- <Button onPress={handleSubmit}>Submit</Button>
92
- </View>
93
- ```
94
-
95
- ### Nested Views
96
- ```tsx
97
- <View spacing="xl">
98
- <View spacing="sm">
99
- <Text size="large" weight="bold">Section 1</Text>
100
- <Text>Content for section 1</Text>
101
- </View>
102
- <View spacing="sm">
103
- <Text size="large" weight="bold">Section 2</Text>
104
- <Text>Content for section 2</Text>
105
- </View>
106
- </View>
107
- ```
@@ -1,88 +0,0 @@
1
- import React from 'react';
2
- import { Screen, View, Text, Divider } from '../index';
3
- import { ButtonExamples } from './ButtonExamples';
4
- import { TextExamples } from './TextExamples';
5
- import { ViewExamples } from './ViewExamples';
6
- import { InputExamples } from './InputExamples';
7
- import { IconExamples } from './IconExamples';
8
- import { CardExamples } from './CardExamples';
9
- import { CheckboxExamples } from './CheckboxExamples';
10
- import { DividerExamples } from './DividerExamples';
11
- import { BadgeExamples } from './BadgeExamples';
12
- import { AvatarExamples } from './AvatarExamples';
13
- import { ScreenExamples } from './ScreenExamples';
14
- import { SVGImageExamples } from './SVGImageExamples';
15
- import { DialogExamples } from './DialogExamples';
16
- import { PopoverExamples } from './PopoverExamples';
17
- import { SelectExamples } from './SelectExamples';
18
- import { ThemeExtensionExamples } from './ThemeExtensionExamples';
19
-
20
- export const AllExamples = () => {
21
- return (
22
- <Screen background="primary" padding="xl">
23
- <View spacing="none" style={{ maxWidth: 800, alignSelf: 'center' }}>
24
- <Text size="xlarge" weight="bold" align="center" color="primary">
25
- Idealyst Component Library Examples
26
- </Text>
27
- <Text size="medium" align="center" color="secondary">
28
- Comprehensive showcase of all available components
29
- </Text>
30
-
31
- <Divider spacing="large" intent="primary">
32
- <Text size="small" weight="semibold" color="primary">COMPONENTS</Text>
33
- </Divider>
34
-
35
- <ButtonExamples />
36
- <Divider spacing="medium" />
37
-
38
- <TextExamples />
39
- <Divider spacing="medium" />
40
-
41
- <ViewExamples />
42
- <Divider spacing="medium" />
43
-
44
- <InputExamples />
45
- <Divider spacing="medium" />
46
-
47
- <IconExamples />
48
- <Divider spacing="medium" />
49
-
50
- <CardExamples />
51
- <Divider spacing="medium" />
52
-
53
- <CheckboxExamples />
54
- <Divider spacing="medium" />
55
-
56
- <DividerExamples />
57
- <Divider spacing="medium" />
58
-
59
- <BadgeExamples />
60
- <Divider spacing="medium" />
61
-
62
- <AvatarExamples />
63
- <Divider spacing="medium" />
64
-
65
- <ScreenExamples />
66
- <Divider spacing="medium" />
67
-
68
- <SVGImageExamples />
69
- <Divider spacing="medium" />
70
-
71
- <DialogExamples />
72
- <Divider spacing="medium" />
73
-
74
- <PopoverExamples />
75
- <Divider spacing="medium" />
76
-
77
- <SelectExamples />
78
- <Divider spacing="medium" />
79
-
80
- <Divider spacing="large" intent="success">
81
- <Text size="small" weight="semibold" color="green">THEME SYSTEM</Text>
82
- </Divider>
83
-
84
- <ThemeExtensionExamples />
85
- </View>
86
- </Screen>
87
- );
88
- };
@@ -1,136 +0,0 @@
1
- # Component Examples
2
-
3
- This directory contains comprehensive examples showcasing all components from the Idealyst component library. Each example demonstrates the various props, variants, and use cases for each component.
4
-
5
- ## Available Examples
6
-
7
- ### Individual Component Examples
8
- - **ButtonExamples**: Demonstrates all button variants, sizes, intents, and states
9
- - **TextExamples**: Shows text sizes, weights, colors, and alignment options
10
- - **ViewExamples**: Displays layout capabilities with spacing, backgrounds, and borders
11
- - **InputExamples**: Covers input types, sizes, variants, and states
12
- - **CardExamples**: Showcases card layouts, variants, intents, and interactive features
13
- - **CheckboxExamples**: Demonstrates checkbox states, sizes, intents, and custom content
14
- - **DividerExamples**: Shows divider orientations, variants, and styling options
15
- - **BadgeExamples**: Displays badge variants, intents, and use cases
16
- - **AvatarExamples**: Demonstrates avatar sizes, shapes, and fallback options
17
-
18
- ### Master Example
19
- - **AllExamples**: A comprehensive showcase of all components in one scrollable view
20
-
21
- ## Usage
22
-
23
- ### Import Individual Examples
24
- ```typescript
25
- import { ButtonExamples, TextExamples, CardExamples } from '@idealyst/components/examples';
26
-
27
- // Use in your component
28
- <ButtonExamples />
29
- ```
30
-
31
- ### Import All Examples
32
- ```typescript
33
- import { AllExamples } from '@idealyst/components/examples';
34
-
35
- // Display all examples at once
36
- <AllExamples />
37
- ```
38
-
39
- ## Example Structure
40
-
41
- Each example component follows this structure:
42
- - **Header**: Component name and description
43
- - **Grouped Sections**: Related variants and properties
44
- - **Interactive Elements**: Demonstrating user interactions
45
- - **Edge Cases**: Disabled states, error states, etc.
46
- - **Real-world Usage**: Practical implementation examples
47
-
48
- ## Features Demonstrated
49
-
50
- ### Button Examples
51
- - Variants: contained, outlined, text
52
- - Sizes: small, medium, large
53
- - Intents: primary, neutral, success, error, warning
54
- - States: normal, disabled
55
-
56
- ### Text Examples
57
- - Sizes: small, medium, large, xlarge
58
- - Weights: light, normal, medium, semibold, bold
59
- - Colors: primary, secondary, success, warning, error
60
- - Alignment: left, center, right
61
-
62
- ### View Examples
63
- - Spacing: none, xs, sm, md, lg, xl
64
- - Backgrounds: transparent, surface, primary, secondary
65
- - Border radius: none, xs, sm, md, lg, xl
66
- - Borders: none, thin, thick
67
- - Layout patterns: flex layouts, positioning
68
-
69
- ### Input Examples
70
- - Types: text, email, password, number
71
- - Sizes: small, medium, large
72
- - Variants: default, outlined, filled
73
- - States: normal, disabled, error, pre-filled
74
- - Auto-capitalization: none, sentences, words, characters
75
-
76
- ### Card Examples
77
- - Variants: default, outlined, elevated, filled
78
- - Intents: neutral, primary, success, error, warning, info
79
- - Padding: none, small, medium, large
80
- - Radius: none, small, medium, large
81
- - Interactive: clickable, disabled states
82
- - Complex layouts: multi-element cards
83
-
84
- ### Checkbox Examples
85
- - Basic states: checked, unchecked, indeterminate
86
- - Sizes: small, medium, large
87
- - Intents: primary, neutral, success, error, warning, info
88
- - Variants: default, outlined
89
- - States: normal, disabled
90
- - Custom content: complex labels, helper text, errors
91
-
92
- ### Divider Examples
93
- - Orientations: horizontal, vertical
94
- - Variants: solid, dashed, dotted
95
- - Thickness: thin, medium, thick
96
- - Intents: primary, secondary, neutral, success, error, warning, info
97
- - Spacing: none, small, medium, large
98
- - With content: text labels, sections
99
-
100
- ### Badge Examples
101
- - Variants: filled, outlined, dot
102
- - Sizes: small, medium, large
103
- - Intents: primary, success, error, warning, neutral, info
104
- - Use cases: numbers, status, categories, notifications
105
-
106
- ### Avatar Examples
107
- - Sizes: small, medium, large, xlarge
108
- - Shapes: circle, square
109
- - Fallbacks: initials, placeholder text
110
- - Images: with proper fallbacks
111
- - Groups: overlapping avatars
112
-
113
- ## Best Practices
114
-
115
- 1. **Interactive Testing**: All examples include interactive elements to test functionality
116
- 2. **Accessibility**: Examples demonstrate proper labeling and accessibility features
117
- 3. **Responsive Design**: Components adapt to different screen sizes
118
- 4. **Theme Integration**: All examples use the theme system properly
119
- 5. **Real-world Context**: Examples show practical usage scenarios
120
-
121
- ## Development Notes
122
-
123
- - Examples are built using the same components they demonstrate
124
- - All examples use TypeScript for type safety
125
- - Components follow the established design system patterns
126
- - Examples are optimized for both web and native platforms
127
-
128
- ## Contributing
129
-
130
- When adding new components:
131
- 1. Create a new example file: `ComponentNameExamples.tsx`
132
- 2. Follow the established pattern of grouped sections
133
- 3. Include all variants, sizes, and states
134
- 4. Add interactive elements where applicable
135
- 5. Export the component in `index.ts`
136
- 6. Update the `AllExamples` component to include the new example
@@ -1,95 +0,0 @@
1
- /**
2
- * Validation Examples
3
- *
4
- * This file demonstrates how the theme validation system works
5
- * and how components can use it to validate their props.
6
- */
7
-
8
- import React from 'react';
9
- import { View } from 'react-native';
10
- import { useUnistyles } from 'react-native-unistyles';
11
- import Text from '../Text';
12
- import Button from '../Button';
13
- import Badge from '../Badge';
14
- import { validateColorProp, validateIntentProp } from '../theme';
15
-
16
- export function ValidationExamples() {
17
- const { theme } = useUnistyles();
18
-
19
- // Example: Valid usage
20
- const handleValidUsage = () => {
21
- console.log('=== Valid Usage Examples ===');
22
-
23
- // These should not produce warnings
24
- validateColorProp(theme, 'blue', 'Text');
25
- validateColorProp(theme, 'primary', 'Text');
26
- validateIntentProp(theme, 'primary', 'Button');
27
- validateIntentProp(theme, 'success', 'Button');
28
- };
29
-
30
- // Example: Invalid usage
31
- const handleInvalidUsage = () => {
32
- console.log('=== Invalid Usage Examples ===');
33
-
34
- // These should produce warnings in development
35
- validateColorProp(theme, 'invalidColor', 'Text');
36
- validateColorProp(theme, 'neonPink', 'Text');
37
- validateIntentProp(theme, 'invalidIntent', 'Button');
38
- validateIntentProp(theme, 'danger', 'Button'); // 'danger' doesn't exist, should be 'error'
39
- };
40
-
41
- return (
42
- <View style={{ padding: 20, gap: 16 }}>
43
- <Text size="large" weight="bold">
44
- Theme Validation Examples
45
- </Text>
46
-
47
- <Text>
48
- Open the browser console to see validation warnings when using invalid colors or intents.
49
- </Text>
50
-
51
- {/* Valid examples */}
52
- <View style={{ gap: 8 }}>
53
- <Text weight="semibold">✅ Valid Usage (no warnings):</Text>
54
- <Text color="blue">Blue text (valid palette color)</Text>
55
- <Text color="blue">Blue text (valid palette color)</Text>
56
- <Button intent="primary" onPress={handleValidUsage}>
57
- Valid Button
58
- </Button>
59
- <Badge color="green">Valid Badge</Badge>
60
- </View>
61
-
62
- {/* Invalid examples that would show warnings */}
63
- <View style={{ gap: 8 }}>
64
- <Text weight="semibold">⚠️ Invalid Usage (shows warnings):</Text>
65
- <Button onPress={handleInvalidUsage}>
66
- Click to Test Invalid Props (check console)
67
- </Button>
68
-
69
- <Text size="small" color="secondary">
70
- Note: The invalid examples are triggered programmatically to avoid
71
- runtime TypeScript errors. In real usage, TypeScript would catch
72
- most of these at compile time.
73
- </Text>
74
- </View>
75
-
76
- {/* Extensibility example */}
77
- <View style={{ gap: 8 }}>
78
- <Text weight="semibold">🔧 Extensibility:</Text>
79
- <Text size="small">
80
- When you add new colors to your theme palette (e.g., 'orange', 'teal'),
81
- they automatically become available in all components that use ColorVariant.
82
- The validation system will recognize them as valid options.
83
- </Text>
84
-
85
- <Text size="small">
86
- Example: If you add 'orange' to your theme.palettes, then
87
- &lt;Text color="orange"&gt; and &lt;Badge color="orange"&gt;
88
- will work without any code changes to the components.
89
- </Text>
90
- </View>
91
- </View>
92
- );
93
- }
94
-
95
- export default ValidationExamples;