@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
@@ -0,0 +1,126 @@
1
+ import React from 'react';
2
+ import { Screen, View, Text } from '../index';
3
+ import Accordion from '../Accordion';
4
+ import type { AccordionItem } from '../Accordion/types';
5
+
6
+ export const AccordionExamples: React.FC = () => {
7
+ const basicItems: AccordionItem[] = [
8
+ {
9
+ id: 'item1',
10
+ title: 'What is React?',
11
+ content: 'React is a JavaScript library for building user interfaces. It lets you compose complex UIs from small and isolated pieces of code called components.',
12
+ },
13
+ {
14
+ id: 'item2',
15
+ title: 'What is TypeScript?',
16
+ content: 'TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.',
17
+ },
18
+ {
19
+ id: 'item3',
20
+ title: 'What is Unistyles?',
21
+ content: 'Unistyles is a cross-platform styling library that works with both React and React Native, providing a unified API for styling components.',
22
+ },
23
+ ];
24
+
25
+ const richContentItems: AccordionItem[] = [
26
+ {
27
+ id: 'rich1',
28
+ title: 'Rich Content Example',
29
+ content: (
30
+ <View spacing="sm">
31
+ <Text weight="semibold">Features:</Text>
32
+ <Text>• Cross-platform support</Text>
33
+ <Text>• Type-safe styling</Text>
34
+ <Text>• Theme variants</Text>
35
+ </View>
36
+ ),
37
+ },
38
+ {
39
+ id: 'rich2',
40
+ title: 'Another Section',
41
+ content: (
42
+ <View>
43
+ <Text>This section contains rich content with multiple paragraphs.</Text>
44
+ <Text style={{ marginTop: 8 }}>You can include any React components here.</Text>
45
+ </View>
46
+ ),
47
+ },
48
+ ];
49
+
50
+ const disabledItems: AccordionItem[] = [
51
+ { id: 'enabled1', title: 'Enabled Item', content: 'This item is enabled.' },
52
+ { id: 'disabled', title: 'Disabled Item', content: 'This item is disabled.', disabled: true },
53
+ { id: 'enabled2', title: 'Another Enabled Item', content: 'This item is also enabled.' },
54
+ ];
55
+
56
+ return (
57
+ <Screen background="primary" padding="lg">
58
+ <View spacing="lg">
59
+ <Text size="xl" weight="bold">Accordion Examples</Text>
60
+
61
+ <View spacing="md">
62
+ <Text size="lg" weight="semibold">Basic Accordion</Text>
63
+ <Accordion items={basicItems} />
64
+ </View>
65
+
66
+ <View spacing="md">
67
+ <Text size="lg" weight="semibold">Allow Multiple Expanded</Text>
68
+ <Accordion items={basicItems} allowMultiple />
69
+ </View>
70
+
71
+ <View spacing="md">
72
+ <Text size="lg" weight="semibold">Default Expanded</Text>
73
+ <Accordion items={basicItems} defaultExpanded={['item1', 'item2']} allowMultiple />
74
+ </View>
75
+
76
+ <View spacing="md">
77
+ <Text size="lg" weight="semibold">Variants</Text>
78
+ <View spacing="sm">
79
+ <View spacing="xs">
80
+ <Text size="sm" weight="medium">Default</Text>
81
+ <Accordion items={basicItems} type="standard" />
82
+ </View>
83
+ <View spacing="xs">
84
+ <Text size="sm" weight="medium">Separated</Text>
85
+ <Accordion items={basicItems} type="separated" />
86
+ </View>
87
+ <View spacing="xs">
88
+ <Text size="sm" weight="medium">Bordered</Text>
89
+ <Accordion items={basicItems} type="bordered" />
90
+ </View>
91
+ </View>
92
+ </View>
93
+
94
+ <View spacing="md">
95
+ <Text size="lg" weight="semibold">Sizes</Text>
96
+ <View spacing="sm">
97
+ <View spacing="xs">
98
+ <Text size="sm" weight="medium">Small</Text>
99
+ <Accordion items={basicItems} size="sm" type="separated" />
100
+ </View>
101
+ <View spacing="xs">
102
+ <Text size="sm" weight="medium">Medium (default)</Text>
103
+ <Accordion items={basicItems} size="md" type="separated" />
104
+ </View>
105
+ <View spacing="xs">
106
+ <Text size="sm" weight="medium">Large</Text>
107
+ <Accordion items={basicItems} size="lg" type="separated" />
108
+ </View>
109
+ </View>
110
+ </View>
111
+
112
+ <View spacing="md">
113
+ <Text size="lg" weight="semibold">Rich Content</Text>
114
+ <Accordion items={richContentItems} type="bordered" />
115
+ </View>
116
+
117
+ <View spacing="md">
118
+ <Text size="lg" weight="semibold">Disabled Items</Text>
119
+ <Accordion items={disabledItems} type="separated" />
120
+ </View>
121
+ </View>
122
+ </Screen>
123
+ );
124
+ };
125
+
126
+ export default AccordionExamples;
@@ -0,0 +1,280 @@
1
+ import React, { useState } from 'react';
2
+ import { Alert, Screen, View, Text, Divider, Button } from '../index';
3
+ export const AlertExamples = () => {
4
+ const [successVisible, setSuccessVisible] = useState(true);
5
+ const [errorVisible, setErrorVisible] = useState(true);
6
+
7
+ return (
8
+ <Screen background="primary" safeArea>
9
+ <View spacing="lg" style={{ maxWidth: 800, width: '100%', paddingHorizontal: 16, marginHorizontal: 'auto' }}>
10
+ <Text size="xl" weight="bold">Alert Examples</Text>
11
+
12
+ <View spacing="md">
13
+ <Text size="lg" weight="semibold">Intent Variants</Text>
14
+
15
+ <View spacing="sm">
16
+ <Alert
17
+ intent="primary"
18
+ title="Primary"
19
+ message="This is a primary alert for main actions and information."
20
+ />
21
+
22
+ <Alert
23
+ intent="success"
24
+ title="Success"
25
+ message="Your changes have been saved successfully."
26
+ />
27
+
28
+ <Alert
29
+ intent="error"
30
+ title="Error"
31
+ message="There was an error processing your request."
32
+ />
33
+
34
+ <Alert
35
+ intent="warning"
36
+ title="Warning"
37
+ message="Your session will expire in 5 minutes."
38
+ />
39
+
40
+ <Alert
41
+ intent="info"
42
+ title="Information"
43
+ message="A new version of the app is available."
44
+ />
45
+
46
+ <Alert
47
+ intent="neutral"
48
+ title="Note"
49
+ message="This is a general informational message."
50
+ />
51
+ </View>
52
+ </View>
53
+
54
+ <View spacing="md">
55
+ <Text size="lg" weight="semibold">Style Variants</Text>
56
+
57
+ <View spacing="sm">
58
+ <Text size="md" weight="semibold">Filled</Text>
59
+ <Alert
60
+ type="filled"
61
+ intent="primary"
62
+ title="Filled Alert"
63
+ message="This is a filled alert with solid background."
64
+ />
65
+ </View>
66
+
67
+ <View spacing="sm">
68
+ <Text size="md" weight="semibold">Outlined</Text>
69
+ <Alert
70
+ type="outlined"
71
+ intent="primary"
72
+ title="Outlined Alert"
73
+ message="This is an outlined alert with border."
74
+ />
75
+ </View>
76
+
77
+ <View spacing="sm">
78
+ <Text size="md" weight="semibold">Soft (Default)</Text>
79
+ <Alert
80
+ type="soft"
81
+ intent="primary"
82
+ title="Soft Alert"
83
+ message="This is a soft alert with subtle background."
84
+ />
85
+ </View>
86
+ </View>
87
+
88
+ <View spacing="md">
89
+ <Text size="lg" weight="semibold">Without Icons</Text>
90
+
91
+ <Alert
92
+ intent="success"
93
+ title="No Icon"
94
+ message="This alert does not display an icon."
95
+ showIcon={false}
96
+ />
97
+ </View>
98
+
99
+ <View spacing="md">
100
+ <Text size="lg" weight="semibold">Custom Icons</Text>
101
+
102
+ <View spacing="sm">
103
+ <Alert
104
+ intent="info"
105
+ title="Custom Icon"
106
+ message="This alert uses a custom icon."
107
+ icon="🚀"
108
+ />
109
+
110
+ <Alert
111
+ intent="warning"
112
+ title="Custom Component Icon"
113
+ message="You can also use custom React components as icons."
114
+ icon={<Text style={{ fontSize: 20 }}>⭐</Text>}
115
+ />
116
+ </View>
117
+ </View>
118
+
119
+ <View spacing="md">
120
+ <Text size="lg" weight="semibold">Dismissible Alerts</Text>
121
+
122
+ <View spacing="sm">
123
+ {successVisible && (
124
+ <Alert
125
+ intent="success"
126
+ title="Dismissible Success"
127
+ message="Click the X button to dismiss this alert."
128
+ dismissible
129
+ onDismiss={() => setSuccessVisible(false)}
130
+ />
131
+ )}
132
+
133
+ {!successVisible && (
134
+ <Button onPress={() => setSuccessVisible(true)}>
135
+ Show Success Alert
136
+ </Button>
137
+ )}
138
+
139
+ {errorVisible && (
140
+ <Alert
141
+ type="outlined"
142
+ intent="error"
143
+ title="Dismissible Error"
144
+ message="This outlined alert can also be dismissed."
145
+ dismissible
146
+ onDismiss={() => setErrorVisible(false)}
147
+ />
148
+ )}
149
+
150
+ {!errorVisible && (
151
+ <Button onPress={() => setErrorVisible(true)}>
152
+ Show Error Alert
153
+ </Button>
154
+ )}
155
+ </View>
156
+ </View>
157
+
158
+ <View spacing="md">
159
+ <Text size="lg" weight="semibold">With Actions</Text>
160
+
161
+ <View spacing="sm">
162
+ <Alert
163
+ intent="warning"
164
+ title="Unsaved Changes"
165
+ message="You have unsaved changes. Do you want to save them?"
166
+ actions={
167
+ <View style={{ flexDirection: 'row', gap: 8 }}>
168
+ <Button type="contained" intent="primary" size="sm">
169
+ Save
170
+ </Button>
171
+ <Button type="outlined" intent="neutral" size="sm">
172
+ Discard
173
+ </Button>
174
+ </View>
175
+ }
176
+ />
177
+
178
+ <Alert
179
+ type="outlined"
180
+ intent="info"
181
+ title="New Feature Available"
182
+ message="Check out our new collaboration features."
183
+ actions={
184
+ <Button type="text" intent="primary" size="sm">
185
+ Learn More
186
+ </Button>
187
+ }
188
+ />
189
+ </View>
190
+ </View>
191
+
192
+ <View spacing="md">
193
+ <Text size="lg" weight="semibold">With Children</Text>
194
+
195
+ <Alert
196
+ intent="info"
197
+ title="Custom Content"
198
+ >
199
+ <View spacing="sm">
200
+ <Text size="sm">You can use children to add custom content:</Text>
201
+ <View style={{ paddingLeft: 16 }}>
202
+ <Text size="sm">• Custom formatted text</Text>
203
+ <Text size="sm">• Lists and structured content</Text>
204
+ <Text size="sm">• Any React components</Text>
205
+ </View>
206
+ </View>
207
+ </Alert>
208
+ </View>
209
+
210
+ <View spacing="md">
211
+ <Text size="lg" weight="semibold">Complex Example</Text>
212
+
213
+ <Alert
214
+ type="filled"
215
+ intent="success"
216
+ title="Payment Successful"
217
+ message="Your order has been confirmed and will be shipped soon."
218
+ dismissible
219
+ onDismiss={() => console.log('Dismissed')}
220
+ actions={
221
+ <View style={{ flexDirection: 'row', gap: 8 }}>
222
+ <Button type="outlined" size="sm" onPress={() => console.log('View order')}>
223
+ View Order
224
+ </Button>
225
+ <Button type="outlined" size="sm" onPress={() => console.log('Track')}>
226
+ Track Shipment
227
+ </Button>
228
+ </View>
229
+ }
230
+ />
231
+ </View>
232
+
233
+ <View spacing="md">
234
+ <Text size="lg" weight="semibold">All Intent Colors (Soft Variant)</Text>
235
+
236
+ <View spacing="sm">
237
+ {(['primary', 'success', 'error', 'warning', 'info', 'neutral'] as const).map((intent) => (
238
+ <Alert
239
+ key={intent}
240
+ type="soft"
241
+ intent={intent}
242
+ message={`${intent.charAt(0).toUpperCase() + intent.slice(1)} alert message`}
243
+ />
244
+ ))}
245
+ </View>
246
+ </View>
247
+
248
+ <View spacing="md">
249
+ <Text size="lg" weight="semibold">All Intent Colors (Outlined Variant)</Text>
250
+
251
+ <View spacing="sm">
252
+ {(['primary', 'success', 'error', 'warning', 'info', 'neutral'] as const).map((intent) => (
253
+ <Alert
254
+ key={intent}
255
+ type="outlined"
256
+ intent={intent}
257
+ message={`${intent.charAt(0).toUpperCase() + intent.slice(1)} alert message`}
258
+ />
259
+ ))}
260
+ </View>
261
+ </View>
262
+
263
+ <View spacing="md">
264
+ <Text size="lg" weight="semibold">All Intent Colors (Filled Variant)</Text>
265
+
266
+ <View spacing="sm">
267
+ {(['primary', 'success', 'error', 'warning', 'info', 'neutral'] as const).map((intent) => (
268
+ <Alert
269
+ key={intent}
270
+ type="filled"
271
+ intent={intent}
272
+ message={`${intent.charAt(0).toUpperCase() + intent.slice(1)} alert message`}
273
+ />
274
+ ))}
275
+ </View>
276
+ </View>
277
+ </View>
278
+ </Screen>
279
+ );
280
+ };
@@ -5,33 +5,33 @@ export const AvatarExamples = () => {
5
5
  return (
6
6
  <Screen background="primary" padding="lg">
7
7
  <View spacing="none">
8
- <Text size="large" weight="bold" align="center">
8
+ <Text size="lg" weight="bold" align="center">
9
9
  Avatar Examples
10
10
  </Text>
11
11
 
12
12
  {/* Avatar Sizes */}
13
13
  <View spacing="md">
14
- <Text size="medium" weight="semibold">Sizes</Text>
14
+ <Text size="md" weight="semibold">Sizes</Text>
15
15
  <View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap', alignItems: 'center' }}>
16
- <Avatar size="small" fallback="S" />
17
- <Avatar size="medium" fallback="M" />
18
- <Avatar size="large" fallback="L" />
19
- <Avatar size="xlarge" fallback="XL" />
16
+ <Avatar size="sm" fallback="S" />
17
+ <Avatar size="md" fallback="M" />
18
+ <Avatar size="lg" fallback="L" />
19
+ <Avatar size="xl" fallback="XL" />
20
20
  </View>
21
21
  </View>
22
22
 
23
23
  {/* Avatar Shapes */}
24
24
  <View spacing="md">
25
- <Text size="medium" weight="semibold">Shapes</Text>
25
+ <Text size="md" weight="semibold">Shapes</Text>
26
26
  <View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap', alignItems: 'center' }}>
27
- <Avatar shape="circle" fallback="C" size="large" />
28
- <Avatar shape="square" fallback="S" size="large" />
27
+ <Avatar shape="circle" fallback="C" size="lg" />
28
+ <Avatar shape="square" fallback="S" size="lg" />
29
29
  </View>
30
30
  </View>
31
31
 
32
32
  {/* Avatar with Fallbacks */}
33
33
  <View spacing="md">
34
- <Text size="medium" weight="semibold">Fallback Text</Text>
34
+ <Text size="md" weight="semibold">Fallback Text</Text>
35
35
  <View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap', alignItems: 'center' }}>
36
36
  <Avatar fallback="JD" alt="John Doe" />
37
37
  <Avatar fallback="AB" alt="Alice Brown" />
@@ -42,7 +42,7 @@ export const AvatarExamples = () => {
42
42
 
43
43
  {/* Avatar with Images */}
44
44
  <View spacing="md">
45
- <Text size="medium" weight="semibold">With Images</Text>
45
+ <Text size="md" weight="semibold">With Images</Text>
46
46
  <View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap', alignItems: 'center' }}>
47
47
  <Avatar
48
48
  src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=150&h=150&fit=crop&crop=face"
@@ -64,30 +64,30 @@ export const AvatarExamples = () => {
64
64
 
65
65
  {/* Avatar Group */}
66
66
  <View spacing="md">
67
- <Text size="medium" weight="semibold">Avatar Group</Text>
67
+ <Text size="md" weight="semibold">Avatar Group</Text>
68
68
  <View style={{ flexDirection: 'row', gap: -8, alignItems: 'center' }}>
69
- <Avatar fallback="JD" size="medium" />
70
- <Avatar fallback="AB" size="medium" />
71
- <Avatar fallback="MJ" size="medium" />
72
- <Avatar fallback="+3" size="medium" />
69
+ <Avatar fallback="JD" size="md" />
70
+ <Avatar fallback="AB" size="md" />
71
+ <Avatar fallback="MJ" size="md" />
72
+ <Avatar fallback="+3" size="md" />
73
73
  </View>
74
74
  </View>
75
75
 
76
76
  {/* Different Size Combinations */}
77
77
  <View spacing="md">
78
- <Text size="medium" weight="semibold">Size Combinations</Text>
78
+ <Text size="md" weight="semibold">Size Combinations</Text>
79
79
  <View spacing="sm">
80
80
  <View style={{ flexDirection: 'row', gap: 8, alignItems: 'center' }}>
81
- <Avatar size="small" fallback="S" />
82
- <Text size="small">Small avatar with text</Text>
81
+ <Avatar size="sm" fallback="S" />
82
+ <Text size="sm">Small avatar with text</Text>
83
83
  </View>
84
84
  <View style={{ flexDirection: 'row', gap: 8, alignItems: 'center' }}>
85
- <Avatar size="medium" fallback="M" />
86
- <Text size="medium">Medium avatar with text</Text>
85
+ <Avatar size="md" fallback="M" />
86
+ <Text size="md">Medium avatar with text</Text>
87
87
  </View>
88
88
  <View style={{ flexDirection: 'row', gap: 8, alignItems: 'center' }}>
89
- <Avatar size="large" fallback="L" />
90
- <Text size="large">Large avatar with text</Text>
89
+ <Avatar size="lg" fallback="L" />
90
+ <Text size="lg">Large avatar with text</Text>
91
91
  </View>
92
92
  </View>
93
93
  </View>