@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
@@ -0,0 +1,197 @@
1
+ import React, { useState } from 'react';
2
+ import { Screen, View, Text, Chip, Divider } from '@idealyst/components';
3
+
4
+ export const ChipExamples = () => {
5
+ const [selectedChips, setSelectedChips] = useState<Set<string>>(new Set());
6
+ const [tags, setTags] = useState(['React', 'TypeScript', 'JavaScript', 'Node.js']);
7
+
8
+ const toggleChip = (id: string) => {
9
+ const newSelected = new Set(selectedChips);
10
+ if (newSelected.has(id)) {
11
+ newSelected.delete(id);
12
+ } else {
13
+ newSelected.add(id);
14
+ }
15
+ setSelectedChips(newSelected);
16
+ };
17
+
18
+ const removeTag = (tag: string) => {
19
+ setTags(tags.filter(t => t !== tag));
20
+ };
21
+
22
+ return (
23
+ <Screen background="primary" safeArea>
24
+ <View spacing="lg" style={{ maxWidth: 800, width: '100%', paddingHorizontal: 16, marginHorizontal: 'auto' }}>
25
+ <Text size="xl" weight="bold">Chip Examples</Text>
26
+
27
+ <Divider spacing="md" />
28
+ <Text size="lg" weight="semibold">Basic Chips</Text>
29
+
30
+ <View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8 }}>
31
+ <Chip label="Default" />
32
+ <Chip label="Primary" intent="primary" />
33
+ <Chip label="Success" intent="success" />
34
+ <Chip label="Error" intent="error" />
35
+ <Chip label="Warning" intent="warning" />
36
+ <Chip label="Neutral" intent="neutral" />
37
+ </View>
38
+
39
+ <Divider spacing="md" />
40
+ <Text size="lg" weight="semibold">Variants</Text>
41
+
42
+ <Text size="md" weight="semibold">Filled (Default)</Text>
43
+ <View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8 }}>
44
+ <Chip label="Filled Primary" type="filled" intent="primary" />
45
+ <Chip label="Filled Success" type="filled" intent="success" />
46
+ <Chip label="Filled Error" type="filled" intent="error" />
47
+ </View>
48
+
49
+ <Text size="md" weight="semibold">Outlined</Text>
50
+ <View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8 }}>
51
+ <Chip label="Outlined Primary" type="outlined" intent="primary" />
52
+ <Chip label="Outlined Success" type="outlined" intent="success" />
53
+ <Chip label="Outlined Error" type="outlined" intent="error" />
54
+ </View>
55
+
56
+ <Text size="md" weight="semibold">Soft</Text>
57
+ <View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8 }}>
58
+ <Chip label="Soft Primary" type="soft" intent="primary" />
59
+ <Chip label="Soft Success" type="soft" intent="success" />
60
+ <Chip label="Soft Error" type="soft" intent="error" />
61
+ </View>
62
+
63
+ <Divider spacing="md" />
64
+ <Text size="lg" weight="semibold">Sizes</Text>
65
+
66
+ <View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8, alignItems: 'center' }}>
67
+ <Chip label="Small" size="sm" />
68
+ <Chip label="Medium" size="md" />
69
+ <Chip label="Large" size="lg" />
70
+ </View>
71
+
72
+ <Divider spacing="md" />
73
+ <Text size="lg" weight="semibold">With Icons</Text>
74
+
75
+ <View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8 }}>
76
+ <Chip label="Star" icon="star" />
77
+ <Chip label="Heart" icon="heart" intent="error" />
78
+ <Chip label="Check" icon="check" intent="success" />
79
+ <Chip label="Info" icon="information" type="outlined" />
80
+ </View>
81
+
82
+ <Divider spacing="md" />
83
+ <Text size="lg" weight="semibold">Deletable Chips</Text>
84
+
85
+ <View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8 }}>
86
+ {tags.map(tag => (
87
+ <Chip
88
+ key={tag}
89
+ label={tag}
90
+ deletable
91
+ onDelete={() => removeTag(tag)}
92
+ intent="primary"
93
+ type="outlined"
94
+ />
95
+ ))}
96
+ </View>
97
+ <Text size="sm" color="secondary">Click the X to remove tags</Text>
98
+
99
+ <Divider spacing="md" />
100
+ <Text size="lg" weight="semibold">Selectable Chips</Text>
101
+
102
+ <View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8 }}>
103
+ {['Option 1', 'Option 2', 'Option 3', 'Option 4'].map(option => (
104
+ <Chip
105
+ key={option}
106
+ label={option}
107
+ selectable
108
+ selected={selectedChips.has(option)}
109
+ onPress={() => toggleChip(option)}
110
+ intent="primary"
111
+ type="outlined"
112
+ />
113
+ ))}
114
+ </View>
115
+ <Text size="sm" color="secondary">
116
+ Selected: {Array.from(selectedChips).join(', ') || 'None'}
117
+ </Text>
118
+
119
+ <Divider spacing="md" />
120
+ <Text size="lg" weight="semibold">Clickable Chips</Text>
121
+
122
+ <View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8 }}>
123
+ <Chip
124
+ label="Click me!"
125
+ onPress={() => alert('Chip clicked!')}
126
+ intent="primary"
127
+ />
128
+ <Chip
129
+ label="Another action"
130
+ onPress={() => console.log('Clicked')}
131
+ type="outlined"
132
+ intent="success"
133
+ />
134
+ </View>
135
+
136
+ <Divider spacing="md" />
137
+ <Text size="lg" weight="semibold">Disabled State</Text>
138
+
139
+ <View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8 }}>
140
+ <Chip label="Disabled" disabled />
141
+ <Chip label="Disabled Outlined" type="outlined" disabled />
142
+ <Chip label="Disabled Deletable" deletable onDelete={() => {}} disabled />
143
+ <Chip label="Disabled Selectable" selectable onPress={() => {}} disabled />
144
+ </View>
145
+
146
+ <Divider spacing="md" />
147
+ <Text size="lg" weight="semibold">Filter Example</Text>
148
+
149
+ <View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8 }}>
150
+ <Chip
151
+ label="All"
152
+ selectable
153
+ selected={selectedChips.has('filter-all')}
154
+ onPress={() => toggleChip('filter-all')}
155
+ type="soft"
156
+ intent="neutral"
157
+ />
158
+ <Chip
159
+ label="Active"
160
+ selectable
161
+ selected={selectedChips.has('filter-active')}
162
+ onPress={() => toggleChip('filter-active')}
163
+ type="soft"
164
+ intent="success"
165
+ />
166
+ <Chip
167
+ label="Completed"
168
+ selectable
169
+ selected={selectedChips.has('filter-completed')}
170
+ onPress={() => toggleChip('filter-completed')}
171
+ type="soft"
172
+ intent="primary"
173
+ />
174
+ <Chip
175
+ label="Archived"
176
+ selectable
177
+ selected={selectedChips.has('filter-archived')}
178
+ onPress={() => toggleChip('filter-archived')}
179
+ type="soft"
180
+ intent="neutral"
181
+ />
182
+ </View>
183
+
184
+ <Divider spacing="md" />
185
+ <Text size="lg" weight="semibold">Category Tags</Text>
186
+
187
+ <View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8 }}>
188
+ <Chip label="Design" type="soft" intent="primary" size="sm" />
189
+ <Chip label="Development" type="soft" intent="success" size="sm" />
190
+ <Chip label="Marketing" type="soft" intent="warning" size="sm" />
191
+ <Chip label="Sales" type="soft" intent="error" size="sm" />
192
+ <Chip label="Support" type="soft" intent="neutral" size="sm" />
193
+ </View>
194
+ </View>
195
+ </Screen>
196
+ );
197
+ };
@@ -10,13 +10,13 @@ export const DialogExamples = () => {
10
10
  return (
11
11
  <Screen background="primary" padding="lg">
12
12
  <View spacing="none">
13
- <Text size="large" weight="bold" align="center">
13
+ <Text size="lg" weight="bold" align="center">
14
14
  Dialog Examples
15
15
  </Text>
16
16
 
17
17
  {/* Basic Dialog */}
18
18
  <View spacing="md">
19
- <Text size="medium" weight="semibold">Basic Dialog</Text>
19
+ <Text size="md" weight="semibold">Basic Dialog</Text>
20
20
  <Button onPress={() => setBasicOpen(true)}>
21
21
  Open Basic Dialog
22
22
  </Button>
@@ -28,7 +28,7 @@ export const DialogExamples = () => {
28
28
  <Text>This is a basic dialog with a title and some content.</Text>
29
29
  <View spacing="md" style={{ marginTop: 16 }}>
30
30
  <Button
31
- variant="contained"
31
+ type="contained"
32
32
  intent="primary"
33
33
  onPress={() => setBasicOpen(false)}
34
34
  >
@@ -40,7 +40,7 @@ export const DialogExamples = () => {
40
40
 
41
41
  {/* Dialog Variants */}
42
42
  <View spacing="md">
43
- <Text size="medium" weight="semibold">Dialog Variants</Text>
43
+ <Text size="md" weight="semibold">Dialog Variants</Text>
44
44
  <View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap' }}>
45
45
  <Button onPress={() => setAlertOpen(true)}>
46
46
  Alert Dialog
@@ -55,12 +55,12 @@ export const DialogExamples = () => {
55
55
  open={alertOpen}
56
56
  onOpenChange={setAlertOpen}
57
57
  title="Important Alert"
58
- variant="alert"
58
+ type="alert"
59
59
  >
60
60
  <Text>This is an alert dialog. It has a top border to indicate importance.</Text>
61
61
  <View spacing="md" style={{ marginTop: 16 }}>
62
62
  <Button
63
- variant="contained"
63
+ type="contained"
64
64
  intent="primary"
65
65
  onPress={() => setAlertOpen(false)}
66
66
  >
@@ -74,20 +74,20 @@ export const DialogExamples = () => {
74
74
  open={confirmationOpen}
75
75
  onOpenChange={setConfirmationOpen}
76
76
  title="Confirm Action"
77
- variant="confirmation"
77
+ type="confirmation"
78
78
  closeOnBackdropClick={false}
79
79
  >
80
80
  <Text>Are you sure you want to delete this item? This action cannot be undone.</Text>
81
81
  <View style={{ flexDirection: 'row', gap: 12, marginTop: 16 }}>
82
82
  <Button
83
- variant="outlined"
83
+ type="outlined"
84
84
  intent="neutral"
85
85
  onPress={() => setConfirmationOpen(false)}
86
86
  >
87
87
  Cancel
88
88
  </Button>
89
89
  <Button
90
- variant="contained"
90
+ type="contained"
91
91
  intent="error"
92
92
  onPress={() => setConfirmationOpen(false)}
93
93
  >
@@ -99,31 +99,31 @@ export const DialogExamples = () => {
99
99
 
100
100
  {/* Dialog Sizes */}
101
101
  <View spacing="md">
102
- <Text size="medium" weight="semibold">Dialog Sizes</Text>
102
+ <Text size="md" weight="semibold">Dialog Sizes</Text>
103
103
  <View style={{ flexDirection: 'row', gap: 12, flexWrap: 'wrap' }}>
104
- {['small', 'medium', 'large'].map((size) => (
105
- <Button
104
+ {['sm', 'md', 'lg'].map((size) => (
105
+ <Button
106
106
  key={size}
107
107
  onPress={() => setSizesOpen(size)}
108
108
  >
109
- {size.charAt(0).toUpperCase() + size.slice(1)} Dialog
109
+ {size === 'sm' ? 'Small' : size === 'md' ? 'Medium' : 'Large'} Dialog
110
110
  </Button>
111
111
  ))}
112
112
  </View>
113
-
113
+
114
114
  {sizesOpen && (
115
115
  <Dialog
116
116
  open={!!sizesOpen}
117
117
  onOpenChange={() => setSizesOpen(null)}
118
- title={`${sizesOpen.charAt(0).toUpperCase() + sizesOpen.slice(1)} Dialog`}
119
- size={sizesOpen as 'small' | 'medium' | 'large'}
118
+ title={`${sizesOpen === 'sm' ? 'Small' : sizesOpen === 'md' ? 'Medium' : 'Large'} Dialog`}
119
+ size={sizesOpen as 'sm' | 'md' | 'lg'}
120
120
  >
121
121
  <Text>
122
122
  This is a {sizesOpen} dialog. The width and maximum width are adjusted based on the size prop.
123
123
  </Text>
124
124
  <View spacing="md" style={{ marginTop: 16 }}>
125
125
  <Button
126
- variant="contained"
126
+ type="contained"
127
127
  intent="primary"
128
128
  onPress={() => setSizesOpen(null)}
129
129
  >
@@ -137,17 +137,17 @@ export const DialogExamples = () => {
137
137
 
138
138
  {/* Dialog Options */}
139
139
  <View spacing="md">
140
- <Text size="medium" weight="semibold">Dialog Options</Text>
141
- <Text size="small" color="secondary">
140
+ <Text size="md" weight="semibold">Dialog Options</Text>
141
+ <Text size="sm" color="secondary">
142
142
  • Close on backdrop click: Enabled by default, disabled for confirmation dialog above
143
143
  </Text>
144
- <Text size="small" color="secondary">
144
+ <Text size="sm" color="secondary">
145
145
  • Close on escape key: Enabled by default (web only)
146
146
  </Text>
147
- <Text size="small" color="secondary">
147
+ <Text size="sm" color="secondary">
148
148
  • Hardware back button: Handled automatically (native only)
149
149
  </Text>
150
- <Text size="small" color="secondary">
150
+ <Text size="sm" color="secondary">
151
151
  • Focus management: Automatic focus trapping and restoration (web only)
152
152
  </Text>
153
153
  </View>
@@ -5,27 +5,27 @@ export const DividerExamples = () => {
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
  Divider Examples
10
10
  </Text>
11
11
 
12
12
  {/* Horizontal Dividers */}
13
13
  <View spacing="md">
14
- <Text size="medium" weight="semibold">Horizontal Dividers</Text>
14
+ <Text size="md" weight="semibold">Horizontal Dividers</Text>
15
15
  <View style={{ gap: 10 }}>
16
- <Card variant="outlined" padding="medium">
16
+ <Card type="outlined" padding="md">
17
17
  <Text>Content above</Text>
18
18
  <Divider orientation="horizontal" />
19
19
  <Text>Content below</Text>
20
20
  </Card>
21
- <Card variant="outlined" padding="medium">
21
+ <Card type="outlined" padding="md">
22
22
  <Text>Content above</Text>
23
- <Divider orientation="horizontal" variant="dashed" />
23
+ <Divider orientation="horizontal" type="dashed" />
24
24
  <Text>Content below</Text>
25
25
  </Card>
26
- <Card variant="outlined" padding="medium">
26
+ <Card type="outlined" padding="md">
27
27
  <Text>Content above</Text>
28
- <Divider orientation="horizontal" variant="dotted" />
28
+ <Divider orientation="horizontal" type="dotted" />
29
29
  <Text>Content below</Text>
30
30
  </Card>
31
31
  </View>
@@ -33,21 +33,21 @@ export const DividerExamples = () => {
33
33
 
34
34
  {/* Divider Variants */}
35
35
  <View spacing="md">
36
- <Text size="medium" weight="semibold">Variants</Text>
36
+ <Text size="md" weight="semibold">Variants</Text>
37
37
  <View style={{ gap: 10 }}>
38
- <Card variant="outlined" padding="medium">
38
+ <Card type="outlined" padding="md">
39
39
  <Text>Solid divider</Text>
40
- <Divider variant="solid" />
40
+ <Divider type="solid" />
41
41
  <Text>Content below</Text>
42
42
  </Card>
43
- <Card variant="outlined" padding="medium">
43
+ <Card type="outlined" padding="md">
44
44
  <Text>Dashed divider</Text>
45
- <Divider variant="dashed" />
45
+ <Divider type="dashed" />
46
46
  <Text>Content below</Text>
47
47
  </Card>
48
- <Card variant="outlined" padding="medium">
48
+ <Card type="outlined" padding="md">
49
49
  <Text>Dotted divider</Text>
50
- <Divider variant="dotted" />
50
+ <Divider type="dotted" />
51
51
  <Text>Content below</Text>
52
52
  </Card>
53
53
  </View>
@@ -55,19 +55,19 @@ export const DividerExamples = () => {
55
55
 
56
56
  {/* Divider Thickness */}
57
57
  <View spacing="md">
58
- <Text size="medium" weight="semibold">Thickness</Text>
58
+ <Text size="md" weight="semibold">Thickness</Text>
59
59
  <View style={{ gap: 10 }}>
60
- <Card variant="outlined" padding="medium">
60
+ <Card type="outlined" padding="md">
61
61
  <Text>Thin divider</Text>
62
62
  <Divider thickness="thin" />
63
63
  <Text>Content below</Text>
64
64
  </Card>
65
- <Card variant="outlined" padding="medium">
65
+ <Card type="outlined" padding="md">
66
66
  <Text>Medium divider</Text>
67
- <Divider thickness="medium" />
67
+ <Divider thickness="md" />
68
68
  <Text>Content below</Text>
69
69
  </Card>
70
- <Card variant="outlined" padding="medium">
70
+ <Card type="outlined" padding="md">
71
71
  <Text>Thick divider</Text>
72
72
  <Divider thickness="thick" />
73
73
  <Text>Content below</Text>
@@ -77,45 +77,45 @@ export const DividerExamples = () => {
77
77
 
78
78
  {/* Divider Intents */}
79
79
  <View spacing="md">
80
- <Text size="medium" weight="semibold">Intents</Text>
80
+ <Text size="md" weight="semibold">Intents</Text>
81
81
  <View style={{ gap: 10 }}>
82
- <Card variant="outlined" padding="medium">
82
+ <Card type="outlined" padding="md">
83
83
  <Text>Primary divider</Text>
84
84
  <Divider intent="primary" />
85
85
  <Text>Content below</Text>
86
86
  </Card>
87
87
 
88
- <Card variant="outlined" padding="medium">
88
+ <Card type="outlined" padding="md">
89
89
  <Text>Neutral divider</Text>
90
90
  <Divider intent="neutral" />
91
91
  <Text>Content below</Text>
92
92
  </Card>
93
93
 
94
- <Card variant="outlined" padding="medium">
94
+ <Card type="outlined" padding="md">
95
95
  <Text>Neutral divider</Text>
96
96
  <Divider intent="neutral" />
97
97
  <Text>Content below</Text>
98
98
  </Card>
99
99
 
100
- <Card variant="outlined" padding="medium">
100
+ <Card type="outlined" padding="md">
101
101
  <Text>Success divider</Text>
102
102
  <Divider intent="success" />
103
103
  <Text>Content below</Text>
104
104
  </Card>
105
105
 
106
- <Card variant="outlined" padding="medium">
106
+ <Card type="outlined" padding="md">
107
107
  <Text>Error divider</Text>
108
108
  <Divider intent="error" />
109
109
  <Text>Content below</Text>
110
110
  </Card>
111
111
 
112
- <Card variant="outlined" padding="medium">
112
+ <Card type="outlined" padding="md">
113
113
  <Text>Warning divider</Text>
114
114
  <Divider intent="warning" />
115
115
  <Text>Content below</Text>
116
116
  </Card>
117
117
 
118
- <Card variant="outlined" padding="medium">
118
+ <Card type="outlined" padding="md">
119
119
  <Text>Info divider</Text>
120
120
  <Divider intent="info" />
121
121
  <Text>Content below</Text>
@@ -125,29 +125,29 @@ export const DividerExamples = () => {
125
125
 
126
126
  {/* Divider Spacing */}
127
127
  <View spacing="md">
128
- <Text size="medium" weight="semibold">Spacing</Text>
128
+ <Text size="md" weight="semibold">Spacing</Text>
129
129
  <View style={{ gap: 10 }}>
130
- <Card variant="outlined" padding="medium">
130
+ <Card type="outlined" padding="md">
131
131
  <Text>No spacing</Text>
132
132
  <Divider spacing="none" />
133
133
  <Text>Content immediately after</Text>
134
134
  </Card>
135
135
 
136
- <Card variant="outlined" padding="medium">
136
+ <Card type="outlined" padding="md">
137
137
  <Text>Small spacing</Text>
138
- <Divider spacing="small" />
138
+ <Divider spacing="sm" />
139
139
  <Text>Content with small spacing</Text>
140
140
  </Card>
141
141
 
142
- <Card variant="outlined" padding="medium">
142
+ <Card type="outlined" padding="md">
143
143
  <Text>Medium spacing</Text>
144
- <Divider spacing="medium" />
144
+ <Divider spacing="md" />
145
145
  <Text>Content with medium spacing</Text>
146
146
  </Card>
147
147
 
148
- <Card variant="outlined" padding="medium">
148
+ <Card type="outlined" padding="md">
149
149
  <Text>Large spacing</Text>
150
- <Divider spacing="large" />
150
+ <Divider spacing="lg" />
151
151
  <Text>Content with large spacing</Text>
152
152
  </Card>
153
153
  </View>
@@ -155,20 +155,20 @@ export const DividerExamples = () => {
155
155
 
156
156
  {/* Divider with Content */}
157
157
  <View spacing="md">
158
- <Text size="medium" weight="semibold">With Content</Text>
158
+ <Text size="md" weight="semibold">With Content</Text>
159
159
  <View style={{ gap: 10 }}>
160
- <Card variant="outlined" padding="medium">
160
+ <Card type="outlined" padding="md">
161
161
  <Text>Content above</Text>
162
- <Divider spacing="medium">
163
- <Text size="small" color="secondary">OR</Text>
162
+ <Divider spacing="md">
163
+ <Text size="sm" color="secondary">OR</Text>
164
164
  </Divider>
165
165
  <Text>Content below</Text>
166
166
  </Card>
167
167
 
168
- <Card variant="outlined" padding="medium">
168
+ <Card type="outlined" padding="md">
169
169
  <Text>Content above</Text>
170
- <Divider spacing="medium" intent="primary">
171
- <Text size="small" color="primary" weight="semibold">SECTION</Text>
170
+ <Divider spacing="md" intent="primary">
171
+ <Text size="sm" color="primary" weight="semibold">SECTION</Text>
172
172
  </Divider>
173
173
  <Text>Content below</Text>
174
174
  </Card>
@@ -177,13 +177,13 @@ export const DividerExamples = () => {
177
177
 
178
178
  {/* Vertical Dividers */}
179
179
  <View spacing="md">
180
- <Text size="medium" weight="semibold">Vertical Dividers</Text>
181
- <Card variant="outlined" padding="medium">
180
+ <Text size="md" weight="semibold">Vertical Dividers</Text>
181
+ <Card type="outlined" padding="md">
182
182
  <View style={{ flexDirection: 'row', alignItems: 'center', gap: 8 }}>
183
183
  <Text>Left</Text>
184
184
  <Divider orientation="vertical" />
185
185
  <Text>Center</Text>
186
- <Divider orientation="vertical" variant="dashed" />
186
+ <Divider orientation="vertical" type="dashed" />
187
187
  <Text>Right</Text>
188
188
  </View>
189
189
  </Card>
@@ -191,21 +191,21 @@ export const DividerExamples = () => {
191
191
 
192
192
  {/* Custom Length */}
193
193
  <View spacing="md">
194
- <Text size="medium" weight="semibold">Custom Length</Text>
194
+ <Text size="md" weight="semibold">Custom Length</Text>
195
195
  <View style={{ gap: 10 }}>
196
- <Card variant="outlined" padding="medium">
196
+ <Card type="outlined" padding="md">
197
197
  <Text>Auto length</Text>
198
198
  <Divider length="auto" />
199
199
  <Text>Content below</Text>
200
200
  </Card>
201
201
 
202
- <Card variant="outlined" padding="medium">
202
+ <Card type="outlined" padding="md">
203
203
  <Text>Full length</Text>
204
204
  <Divider length="full" />
205
205
  <Text>Content below</Text>
206
206
  </Card>
207
207
 
208
- <Card variant="outlined" padding="medium">
208
+ <Card type="outlined" padding="md">
209
209
  <Text>50% length</Text>
210
210
  <Divider length={50} />
211
211
  <Text>Content below</Text>