@idealyst/components 1.0.83 → 1.0.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/CLAUDE.md +199 -232
  2. package/README.md +5 -5
  3. package/package.json +20 -2
  4. package/plugin/README.md +272 -0
  5. package/plugin/test-cases.jsx +112 -0
  6. package/plugin/web-legacy.js +320 -0
  7. package/plugin/web.js +422 -124
  8. package/src/Accordion/Accordion.native.tsx +182 -0
  9. package/src/Accordion/Accordion.styles.tsx +260 -0
  10. package/src/Accordion/Accordion.web.tsx +147 -0
  11. package/src/Accordion/index.native.tsx +3 -0
  12. package/src/Accordion/index.ts +3 -0
  13. package/src/Accordion/index.web.tsx +3 -0
  14. package/src/Accordion/types.ts +23 -0
  15. package/src/ActivityIndicator/ActivityIndicator.native.tsx +17 -12
  16. package/src/ActivityIndicator/ActivityIndicator.styles.tsx +83 -109
  17. package/src/ActivityIndicator/ActivityIndicator.web.tsx +23 -17
  18. package/src/ActivityIndicator/index.ts +5 -2
  19. package/src/ActivityIndicator/index.web.ts +5 -2
  20. package/src/ActivityIndicator/types.ts +15 -10
  21. package/src/Alert/Alert.native.tsx +113 -0
  22. package/src/Alert/Alert.styles.tsx +304 -0
  23. package/src/Alert/Alert.web.tsx +123 -0
  24. package/src/Alert/index.native.ts +5 -0
  25. package/src/Alert/index.ts +5 -0
  26. package/src/Alert/index.web.ts +5 -0
  27. package/src/Alert/types.ts +21 -0
  28. package/src/Avatar/Avatar.native.tsx +8 -6
  29. package/src/Avatar/Avatar.styles.tsx +64 -58
  30. package/src/Avatar/Avatar.web.tsx +13 -8
  31. package/src/Avatar/index.ts +5 -2
  32. package/src/Avatar/index.web.ts +5 -2
  33. package/src/Avatar/types.ts +19 -13
  34. package/src/Badge/Badge.native.tsx +59 -14
  35. package/src/Badge/Badge.styles.tsx +125 -139
  36. package/src/Badge/Badge.web.tsx +72 -16
  37. package/src/Badge/index.ts +5 -2
  38. package/src/Badge/index.web.ts +5 -2
  39. package/src/Badge/types.ts +23 -11
  40. package/src/Breadcrumb/Breadcrumb.native.tsx +225 -0
  41. package/src/Breadcrumb/Breadcrumb.styles.tsx +234 -0
  42. package/src/Breadcrumb/Breadcrumb.web.tsx +268 -0
  43. package/src/Breadcrumb/index.native.ts +5 -0
  44. package/src/Breadcrumb/index.ts +5 -0
  45. package/src/Breadcrumb/index.web.ts +5 -0
  46. package/src/Breadcrumb/types.ts +56 -0
  47. package/src/Button/Button.native.tsx +75 -24
  48. package/src/Button/Button.styles.tsx +248 -205
  49. package/src/Button/Button.web.tsx +82 -25
  50. package/src/Button/index.ts +5 -5
  51. package/src/Button/index.web.ts +5 -3
  52. package/src/Button/types.ts +32 -15
  53. package/src/Card/Card.native.tsx +14 -11
  54. package/src/Card/Card.styles.tsx +146 -220
  55. package/src/Card/Card.web.tsx +20 -21
  56. package/src/Card/index.ts +5 -5
  57. package/src/Card/index.web.ts +5 -3
  58. package/src/Card/types.ts +24 -17
  59. package/src/Checkbox/Checkbox.native.tsx +24 -34
  60. package/src/Checkbox/Checkbox.styles.tsx +223 -275
  61. package/src/Checkbox/Checkbox.web.tsx +30 -37
  62. package/src/Checkbox/index.ts +5 -5
  63. package/src/Checkbox/index.web.ts +5 -3
  64. package/src/Checkbox/types.ts +26 -20
  65. package/src/Chip/Chip.native.tsx +126 -0
  66. package/src/Chip/Chip.styles.tsx +138 -0
  67. package/src/Chip/Chip.web.tsx +154 -0
  68. package/src/Chip/index.native.ts +5 -0
  69. package/src/Chip/index.ts +5 -0
  70. package/src/Chip/index.web.ts +5 -0
  71. package/src/Chip/types.ts +51 -0
  72. package/src/Dialog/Dialog.native.tsx +65 -12
  73. package/src/Dialog/Dialog.styles.tsx +154 -136
  74. package/src/Dialog/Dialog.web.tsx +16 -11
  75. package/src/Dialog/index.ts +5 -2
  76. package/src/Dialog/index.web.ts +5 -2
  77. package/src/Dialog/types.ts +22 -16
  78. package/src/Divider/Divider.native.tsx +19 -14
  79. package/src/Divider/Divider.styles.tsx +273 -595
  80. package/src/Divider/Divider.web.tsx +19 -12
  81. package/src/Divider/index.ts +5 -5
  82. package/src/Divider/index.web.ts +5 -3
  83. package/src/Divider/types.ts +28 -19
  84. package/src/Icon/Icon.native.tsx +17 -24
  85. package/src/Icon/Icon.styles.tsx +64 -48
  86. package/src/Icon/Icon.web.tsx +14 -11
  87. package/src/Icon/IconSvg/IconSvg.native.tsx +42 -0
  88. package/src/Icon/IconSvg/IconSvg.web.tsx +40 -0
  89. package/src/Icon/IconSvg/index.native.ts +1 -0
  90. package/src/Icon/IconSvg/index.ts +1 -0
  91. package/src/Icon/icon-resolver.native.ts +27 -0
  92. package/src/Icon/icon-resolver.ts +70 -0
  93. package/src/Icon/index.ts +5 -5
  94. package/src/Icon/index.web.ts +5 -3
  95. package/src/Icon/types.ts +17 -11
  96. package/src/Image/Image.native.tsx +86 -0
  97. package/src/Image/Image.styles.tsx +57 -0
  98. package/src/Image/Image.web.tsx +92 -0
  99. package/src/Image/index.native.ts +5 -0
  100. package/src/Image/index.ts +5 -0
  101. package/src/Image/types.ts +21 -0
  102. package/src/Input/Input.native.tsx +103 -26
  103. package/src/Input/Input.styles.tsx +240 -177
  104. package/src/Input/Input.web.tsx +141 -38
  105. package/src/Input/index.ts +5 -5
  106. package/src/Input/index.web.ts +5 -3
  107. package/src/Input/types.ts +43 -20
  108. package/src/List/List.native.tsx +56 -0
  109. package/src/List/List.styles.tsx +257 -0
  110. package/src/List/List.web.tsx +43 -0
  111. package/src/List/ListContext.tsx +16 -0
  112. package/src/List/ListItem.native.tsx +111 -0
  113. package/src/List/ListItem.web.tsx +110 -0
  114. package/src/List/ListSection.native.tsx +31 -0
  115. package/src/List/ListSection.web.tsx +33 -0
  116. package/src/List/index.native.tsx +5 -0
  117. package/src/List/index.ts +5 -0
  118. package/src/List/index.web.tsx +5 -0
  119. package/src/List/types.ts +42 -0
  120. package/src/Menu/Menu.native.tsx +150 -0
  121. package/src/Menu/Menu.styles.tsx +185 -0
  122. package/src/Menu/Menu.web.tsx +99 -0
  123. package/src/Menu/MenuItem.native.tsx +66 -0
  124. package/src/Menu/MenuItem.styles.tsx +119 -0
  125. package/src/Menu/MenuItem.web.tsx +67 -0
  126. package/src/Menu/index.native.ts +3 -0
  127. package/src/Menu/index.ts +3 -0
  128. package/src/Menu/index.web.ts +3 -0
  129. package/src/Menu/types.ts +30 -0
  130. package/src/Popover/Popover.native.tsx +102 -32
  131. package/src/Popover/Popover.styles.tsx +100 -67
  132. package/src/Popover/Popover.web.tsx +36 -260
  133. package/src/Popover/index.ts +5 -2
  134. package/src/Popover/index.web.ts +5 -2
  135. package/src/Popover/types.ts +14 -13
  136. package/src/Pressable/Pressable.native.tsx +7 -6
  137. package/src/Pressable/Pressable.web.tsx +8 -6
  138. package/src/Pressable/index.ts +5 -2
  139. package/src/Pressable/index.web.ts +5 -2
  140. package/src/Pressable/types.ts +11 -10
  141. package/src/Progress/Progress.native.tsx +179 -0
  142. package/src/Progress/Progress.styles.tsx +164 -0
  143. package/src/Progress/Progress.web.tsx +144 -0
  144. package/src/Progress/index.native.ts +1 -0
  145. package/src/Progress/index.ts +5 -0
  146. package/src/Progress/index.web.ts +5 -0
  147. package/src/Progress/types.ts +21 -0
  148. package/src/RadioButton/RadioButton.native.tsx +88 -0
  149. package/src/RadioButton/RadioButton.styles.tsx +163 -0
  150. package/src/RadioButton/RadioButton.web.tsx +85 -0
  151. package/src/RadioButton/RadioGroup.native.tsx +43 -0
  152. package/src/RadioButton/RadioGroup.web.tsx +49 -0
  153. package/src/RadioButton/index.native.ts +2 -0
  154. package/src/RadioButton/index.ts +2 -0
  155. package/src/RadioButton/index.web.ts +2 -0
  156. package/src/RadioButton/types.ts +29 -0
  157. package/src/SVGImage/SVGImage.native.tsx +9 -7
  158. package/src/SVGImage/SVGImage.styles.tsx +63 -55
  159. package/src/SVGImage/SVGImage.web.tsx +16 -13
  160. package/src/SVGImage/index.ts +5 -5
  161. package/src/SVGImage/index.web.ts +5 -2
  162. package/src/SVGImage/types.ts +7 -3
  163. package/src/Screen/Screen.native.tsx +43 -17
  164. package/src/Screen/Screen.styles.tsx +58 -54
  165. package/src/Screen/Screen.web.tsx +11 -5
  166. package/src/Screen/index.ts +5 -2
  167. package/src/Screen/index.web.ts +5 -2
  168. package/src/Screen/types.ts +23 -9
  169. package/src/Select/Select.native.tsx +140 -63
  170. package/src/Select/Select.styles.tsx +312 -302
  171. package/src/Select/Select.web.tsx +156 -316
  172. package/src/Select/index.ts +5 -2
  173. package/src/Select/index.web.ts +5 -2
  174. package/src/Select/types.ts +13 -7
  175. package/src/Skeleton/Skeleton.native.tsx +139 -0
  176. package/src/Skeleton/Skeleton.styles.tsx +59 -0
  177. package/src/Skeleton/Skeleton.web.tsx +112 -0
  178. package/src/Skeleton/index.native.ts +4 -0
  179. package/src/Skeleton/index.ts +5 -0
  180. package/src/Skeleton/index.web.ts +5 -0
  181. package/src/Skeleton/types.ts +75 -0
  182. package/src/Slider/Slider.native.tsx +248 -0
  183. package/src/Slider/Slider.styles.tsx +241 -0
  184. package/src/Slider/Slider.web.tsx +226 -0
  185. package/src/Slider/index.native.ts +3 -0
  186. package/src/Slider/index.ts +5 -0
  187. package/src/Slider/index.web.ts +5 -0
  188. package/src/Slider/types.ts +31 -0
  189. package/src/Switch/Switch.native.tsx +131 -0
  190. package/src/Switch/Switch.styles.tsx +169 -0
  191. package/src/Switch/Switch.web.tsx +121 -0
  192. package/src/Switch/index.native.ts +3 -0
  193. package/src/Switch/index.ts +5 -0
  194. package/src/Switch/index.web.ts +5 -0
  195. package/src/Switch/types.ts +21 -0
  196. package/src/TabBar/TabBar.native.tsx +142 -0
  197. package/src/TabBar/TabBar.styles.tsx +399 -0
  198. package/src/TabBar/TabBar.web.tsx +205 -0
  199. package/src/TabBar/index.native.tsx +3 -0
  200. package/src/TabBar/index.ts +3 -0
  201. package/src/TabBar/index.web.tsx +3 -0
  202. package/src/TabBar/types.ts +26 -0
  203. package/src/Table/Table.native.tsx +122 -0
  204. package/src/Table/Table.styles.tsx +283 -0
  205. package/src/Table/Table.web.tsx +112 -0
  206. package/src/Table/index.native.tsx +3 -0
  207. package/src/Table/index.ts +3 -0
  208. package/src/Table/index.web.tsx +3 -0
  209. package/src/Table/types.ts +28 -0
  210. package/src/Text/Text.native.tsx +12 -11
  211. package/src/Text/Text.styles.tsx +76 -64
  212. package/src/Text/Text.web.tsx +14 -9
  213. package/src/Text/index.ts +5 -5
  214. package/src/Text/index.web.ts +5 -3
  215. package/src/Text/types.ts +20 -13
  216. package/src/TextArea/TextArea.native.tsx +134 -0
  217. package/src/TextArea/TextArea.styles.tsx +175 -0
  218. package/src/TextArea/TextArea.web.tsx +156 -0
  219. package/src/TextArea/index.native.ts +3 -0
  220. package/src/TextArea/index.ts +3 -0
  221. package/src/TextArea/index.web.ts +3 -0
  222. package/src/TextArea/types.ts +30 -0
  223. package/src/Tooltip/Tooltip.native.tsx +165 -0
  224. package/src/Tooltip/Tooltip.styles.tsx +73 -0
  225. package/src/Tooltip/Tooltip.web.tsx +87 -0
  226. package/src/Tooltip/index.native.ts +3 -0
  227. package/src/Tooltip/index.ts +3 -0
  228. package/src/Tooltip/types.ts +18 -0
  229. package/src/Video/Video.native.tsx +105 -0
  230. package/src/Video/Video.styles.tsx +39 -0
  231. package/src/Video/Video.web.tsx +115 -0
  232. package/src/Video/index.native.ts +5 -0
  233. package/src/Video/index.ts +5 -0
  234. package/src/Video/types.ts +29 -0
  235. package/src/View/View.native.tsx +9 -14
  236. package/src/View/View.styles.tsx +101 -93
  237. package/src/View/View.web.tsx +16 -17
  238. package/src/View/index.ts +5 -5
  239. package/src/View/index.web.ts +5 -3
  240. package/src/View/types.ts +29 -21
  241. package/src/examples/AccordionExamples.tsx +126 -0
  242. package/src/examples/AlertExamples.tsx +280 -0
  243. package/src/examples/AvatarExamples.tsx +23 -23
  244. package/src/examples/BadgeExamples.tsx +109 -41
  245. package/src/examples/BreadcrumbExamples.tsx +312 -0
  246. package/src/examples/ButtonExamples.tsx +160 -33
  247. package/src/examples/CardExamples.tsx +40 -40
  248. package/src/examples/CheckboxExamples.tsx +12 -12
  249. package/src/examples/ChipExamples.tsx +197 -0
  250. package/src/examples/DialogExamples.tsx +22 -22
  251. package/src/examples/DividerExamples.tsx +49 -49
  252. package/src/examples/IconExamples.tsx +270 -54
  253. package/src/examples/ImageExamples.tsx +174 -0
  254. package/src/examples/InputExamples.tsx +75 -17
  255. package/src/examples/ListExamples.tsx +288 -0
  256. package/src/examples/MenuExamples.tsx +144 -0
  257. package/src/examples/PopoverExamples.tsx +69 -73
  258. package/src/examples/ProgressExamples.tsx +137 -0
  259. package/src/examples/RadioButtonExamples.tsx +161 -0
  260. package/src/examples/SVGImageExamples.tsx +19 -17
  261. package/src/examples/ScreenExamples.tsx +31 -31
  262. package/src/examples/SelectExamples.tsx +67 -67
  263. package/src/examples/SkeletonExamples.tsx +206 -0
  264. package/src/examples/SliderExamples.tsx +200 -0
  265. package/src/examples/SwitchExamples.tsx +182 -0
  266. package/src/examples/TabBarExamples.tsx +143 -0
  267. package/src/examples/TableExamples.tsx +280 -0
  268. package/src/examples/TextAreaExamples.tsx +173 -0
  269. package/src/examples/TextExamples.tsx +28 -32
  270. package/src/examples/ThemeExtensionExamples.tsx +10 -10
  271. package/src/examples/TooltipExamples.tsx +126 -0
  272. package/src/examples/VideoExamples.tsx +144 -0
  273. package/src/examples/ViewExamples.tsx +64 -56
  274. package/src/examples/index.ts +17 -3
  275. package/src/hooks/useMergeRefs.ts +16 -0
  276. package/src/hooks/useSmartPosition.native.ts +169 -0
  277. package/src/index.native.ts +80 -9
  278. package/src/index.ts +71 -1
  279. package/src/internal/BoundedModalContent.native.tsx +58 -0
  280. package/src/internal/PositionedPortal.tsx +254 -0
  281. package/src/internal/SafeAreaDebugOverlay.native.tsx +173 -0
  282. package/src/unistyles.d.ts +6 -0
  283. package/src/utils/buildSizeVariants.ts +16 -0
  284. package/src/utils/deepMerge.ts +43 -0
  285. package/src/utils/positionUtils.native.ts +280 -0
  286. package/src/utils/styleHelpers.ts +48 -0
  287. package/LLM-ACCESS-GUIDE.md +0 -143
  288. package/src/ActivityIndicator/README.md +0 -132
  289. package/src/Avatar/README.md +0 -139
  290. package/src/Badge/README.md +0 -170
  291. package/src/Button/Button.types.ts +0 -12
  292. package/src/Button/README.md +0 -262
  293. package/src/Card/README.md +0 -258
  294. package/src/Checkbox/README.md +0 -102
  295. package/src/Dialog/README.md +0 -210
  296. package/src/Divider/README.md +0 -108
  297. package/src/Icon/README.md +0 -81
  298. package/src/Input/README.md +0 -100
  299. package/src/SVGImage/README.md +0 -209
  300. package/src/Screen/README.md +0 -86
  301. package/src/Select/README.md +0 -166
  302. package/src/Text/README.md +0 -94
  303. package/src/View/README.md +0 -107
  304. package/src/examples/AllExamples.tsx +0 -88
  305. package/src/examples/README.md +0 -136
  306. package/src/examples/ValidationExamples.tsx +0 -95
  307. package/src/examples/extendedTheme.ts +0 -329
  308. package/src/theme/breakpoints.ts +0 -8
  309. package/src/theme/colorResolver.ts +0 -218
  310. package/src/theme/colors.ts +0 -315
  311. package/src/theme/defaultThemes.ts +0 -326
  312. package/src/theme/index.ts +0 -188
  313. package/src/theme/themeBuilder.ts +0 -602
  314. package/src/theme/unistyles.d.ts +0 -6
  315. package/src/theme/variantHelpers.ts +0 -584
  316. package/src/theme/variants.ts +0 -56
@@ -1,28 +1,27 @@
1
- import React from 'react';
2
1
  import { Screen, View, Text } from '../index';
3
2
 
4
3
  export const TextExamples = () => {
5
4
  return (
6
5
  <Screen background="primary" padding="lg">
7
6
  <View spacing="none">
8
- <Text size="large" weight="bold" align="center">
7
+ <Text size="lg" weight="bold" align="center">
9
8
  Text Examples
10
9
  </Text>
11
-
10
+
12
11
  {/* Text Sizes */}
13
12
  <View spacing="md">
14
- <Text size="medium" weight="semibold">Sizes</Text>
13
+ <Text size="md" weight="semibold">Sizes</Text>
15
14
  <View spacing="sm" style={{ gap: 10 }}>
16
- <Text size="small">Small text - Lorem ipsum dolor sit amet</Text>
17
- <Text size="medium">Medium text - Lorem ipsum dolor sit amet</Text>
18
- <Text size="large">Large text - Lorem ipsum dolor sit amet</Text>
19
- <Text size="xlarge">Extra large text - Lorem ipsum dolor sit amet</Text>
15
+ <Text size="sm">Small text - Lorem ipsum dolor sit amet</Text>
16
+ <Text size="md">Medium text - Lorem ipsum dolor sit amet</Text>
17
+ <Text size="lg">Large text - Lorem ipsum dolor sit amet</Text>
18
+ <Text size="xl">Extra large text - Lorem ipsum dolor sit amet</Text>
20
19
  </View>
21
20
  </View>
22
21
 
23
22
  {/* Text Weights */}
24
23
  <View spacing="md">
25
- <Text size="medium" weight="semibold">Weights</Text>
24
+ <Text size="md" weight="semibold">Weights</Text>
26
25
  <View spacing="sm" style={{ gap: 10 }}>
27
26
  <Text weight="light">Light weight text</Text>
28
27
  <Text weight="normal">Normal weight text</Text>
@@ -32,35 +31,35 @@ export const TextExamples = () => {
32
31
  </View>
33
32
  </View>
34
33
 
35
- {/* Text Colors */}
34
+ {/* Semantic Text Colors */}
36
35
  <View spacing="md">
37
- <Text size="medium" weight="semibold">Color Variants</Text>
36
+ <Text size="md" weight="semibold">Semantic Text Colors</Text>
38
37
  <View spacing="sm" style={{ gap: 10 }}>
39
- <Text color="primary">Primary color text</Text>
40
- <Text color="secondary">Secondary color text</Text>
41
- <Text color="blue">Blue color text</Text>
42
- <Text color="green">Green color text</Text>
43
- <Text color="red">Red color text</Text>
44
- <Text color="orange">Orange color text</Text>
38
+ <Text color="primary">Primary text - Main text color</Text>
39
+ <Text color="secondary">Secondary text - Subdued text</Text>
40
+ <Text color="tertiary">Tertiary text - More subdued text</Text>
45
41
  </View>
46
42
  </View>
47
43
 
48
- {/* Text Color Shades */}
44
+ {/* Inverse Text Colors */}
49
45
  <View spacing="md">
50
- <Text size="medium" weight="semibold">Color Shades</Text>
46
+ <Text size="md" weight="semibold">Inverse Text Colors (on dark backgrounds)</Text>
51
47
  <View spacing="sm" style={{ gap: 10 }}>
52
- <Text color="blue.300">Blue 300 text</Text>
53
- <Text color="blue.500">Blue 500 text</Text>
54
- <Text color="blue.700">Blue 700 text</Text>
55
- <Text color="red.200">Red 200 text</Text>
56
- <Text color="red.600">Red 600 text</Text>
57
- <Text color="red.900">Red 900 text</Text>
48
+ <View background="inverse" spacing="sm" radius="sm">
49
+ <Text color="inverse">Inverse (of primary) - Light text on dark background</Text>
50
+ </View>
51
+ <View background="inverse" spacing="sm" radius="sm">
52
+ <Text color="inverse-secondary">Inverse secondary (90% opacity)</Text>
53
+ </View>
54
+ <View background="inverse" spacing="sm" radius="sm">
55
+ <Text color="inverse-tertiary">Inverse tertiary (70% opacity)</Text>
56
+ </View>
58
57
  </View>
59
58
  </View>
60
59
 
61
60
  {/* Text Alignment */}
62
61
  <View spacing="md">
63
- <Text size="medium" weight="semibold">Alignment</Text>
62
+ <Text size="md" weight="semibold">Alignment</Text>
64
63
  <View spacing="sm" style={{ gap: 10 }}>
65
64
  <Text align="left">Left aligned text</Text>
66
65
  <Text align="center">Center aligned text</Text>
@@ -70,17 +69,14 @@ export const TextExamples = () => {
70
69
 
71
70
  {/* Combined Examples */}
72
71
  <View spacing="md">
73
- <Text size="medium" weight="semibold">Combined Examples</Text>
72
+ <Text size="md" weight="semibold">Combined Examples</Text>
74
73
  <View spacing="sm" style={{ gap: 10 }}>
75
- <Text size="large" weight="bold" color="primary" align="center">
74
+ <Text size="lg" weight="bold" color="primary" align="center">
76
75
  Large Bold Primary Centered
77
76
  </Text>
78
- <Text size="small" weight="light" color="secondary" align="right">
77
+ <Text size="sm" weight="light" color="secondary" align="right">
79
78
  Small Light Secondary Right
80
79
  </Text>
81
- <Text size="medium" weight="semibold" color="green">
82
- Medium Semibold Green
83
- </Text>
84
80
  </View>
85
81
  </View>
86
82
  </View>
@@ -5,13 +5,13 @@ export const ThemeExtensionExamples = () => {
5
5
  return (
6
6
  <Screen background="primary" padding="lg">
7
7
  <View spacing="lg">
8
- <Text size="large" weight="bold" align="center">
8
+ <Text size="lg" weight="bold" align="center">
9
9
  Extended Theme Test
10
10
  </Text>
11
11
 
12
12
  {/* Extended Colors */}
13
13
  <View spacing="md">
14
- <Text size="medium" weight="semibold">Extended Colors</Text>
14
+ <Text size="md" weight="semibold">Extended Colors</Text>
15
15
  <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap' }}>
16
16
  <Badge color={"orange" as any}>Orange</Badge>
17
17
  <Badge color={"teal" as any}>Teal</Badge>
@@ -31,7 +31,7 @@ export const ThemeExtensionExamples = () => {
31
31
 
32
32
  {/* Extended Intents */}
33
33
  <View spacing="md">
34
- <Text size="medium" weight="semibold">Extended Intents</Text>
34
+ <Text size="md" weight="semibold">Extended Intents</Text>
35
35
  <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap' }}>
36
36
  <Button intent={"accent" as any}>Accent Button</Button>
37
37
  <Button intent={"feature" as any}>Feature Button</Button>
@@ -39,21 +39,21 @@ export const ThemeExtensionExamples = () => {
39
39
  </View>
40
40
 
41
41
  <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap' }}>
42
- <Button intent={"accent" as any} variant="outlined">Accent Outlined</Button>
43
- <Button intent={"feature" as any} variant="outlined">Feature Outlined</Button>
44
- <Button intent={"highlight" as any} variant="outlined">Highlight Outlined</Button>
42
+ <Button intent={"accent" as any} type="outlined">Accent Outlined</Button>
43
+ <Button intent={"feature" as any} type="outlined">Feature Outlined</Button>
44
+ <Button intent={"highlight" as any} type="outlined">Highlight Outlined</Button>
45
45
  </View>
46
46
  </View>
47
47
 
48
48
  {/* Mixed Usage */}
49
49
  <View spacing="md">
50
- <Text size="medium" weight="semibold">Mixed Extended Usage</Text>
50
+ <Text size="md" weight="semibold">Mixed Extended Usage</Text>
51
51
 
52
52
  <Card>
53
53
  <View spacing="sm">
54
54
  <Text color={"orange" as any} weight="bold">Orange Card Header</Text>
55
55
  <Text color="secondary">This card uses extended orange color for the header</Text>
56
- <Button intent={"accent" as any} size="small">Accent Action</Button>
56
+ <Button intent={"accent" as any} size="sm">Accent Action</Button>
57
57
  </View>
58
58
  </Card>
59
59
 
@@ -61,14 +61,14 @@ export const ThemeExtensionExamples = () => {
61
61
  <View spacing="sm">
62
62
  <Text color={"teal" as any} weight="bold">Teal Card Header</Text>
63
63
  <Text color="secondary">This card uses extended teal color for the header</Text>
64
- <Button intent={"feature" as any} size="small">Feature Action</Button>
64
+ <Button intent={"feature" as any} size="sm">Feature Action</Button>
65
65
  </View>
66
66
  </Card>
67
67
  </View>
68
68
 
69
69
  {/* Form with Extended Colors */}
70
70
  <View spacing="md">
71
- <Text size="medium" weight="semibold">Form with Extended Styling</Text>
71
+ <Text size="md" weight="semibold">Form with Extended Styling</Text>
72
72
 
73
73
  <Input
74
74
  placeholder="Input with accent intent"
@@ -0,0 +1,126 @@
1
+ import React from 'react';
2
+ import { Screen, View, Text, Button } from '@idealyst/components';
3
+ import Tooltip from '../Tooltip';
4
+
5
+ export const TooltipExamples: React.FC = () => {
6
+ return (
7
+ <Screen background="primary" padding="lg">
8
+ <View spacing="lg">
9
+ <Text size="xl" weight="bold">Tooltip Examples</Text>
10
+
11
+ <View spacing="md">
12
+ <Text size="lg" weight="semibold">Basic Tooltip</Text>
13
+ <Tooltip content="This is a tooltip">
14
+ <Button type="outlined">Hover over me</Button>
15
+ </Tooltip>
16
+ </View>
17
+
18
+ <View spacing="md">
19
+ <Text size="lg" weight="semibold">Placements</Text>
20
+ <View spacing="sm" style={{ alignItems: 'center' }}>
21
+ <Tooltip content="Top tooltip" placement="top">
22
+ <Button type="outlined">Top</Button>
23
+ </Tooltip>
24
+ <View style={{ flexDirection: 'row', gap: 16 }}>
25
+ <Tooltip content="Left tooltip" placement="left">
26
+ <Button type="outlined">Left</Button>
27
+ </Tooltip>
28
+ <Tooltip content="Right tooltip" placement="right">
29
+ <Button type="outlined">Right</Button>
30
+ </Tooltip>
31
+ </View>
32
+ <Tooltip content="Bottom tooltip" placement="bottom">
33
+ <Button type="outlined">Bottom</Button>
34
+ </Tooltip>
35
+ </View>
36
+ </View>
37
+
38
+ <View spacing="md">
39
+ <Text size="lg" weight="semibold">Sizes</Text>
40
+ <View style={{ flexDirection: 'row', gap: 16, flexWrap: 'wrap' }}>
41
+ <Tooltip content="Small tooltip" size="sm">
42
+ <Button type="outlined" size="sm">Small</Button>
43
+ </Tooltip>
44
+ <Tooltip content="Medium tooltip" size="md">
45
+ <Button type="outlined" size="md">Medium</Button>
46
+ </Tooltip>
47
+ <Tooltip content="Large tooltip" size="lg">
48
+ <Button type="outlined" size="lg">Large</Button>
49
+ </Tooltip>
50
+ </View>
51
+ </View>
52
+
53
+ <View spacing="md">
54
+ <Text size="lg" weight="semibold">Intent Colors</Text>
55
+ <View style={{ flexDirection: 'row', gap: 16, flexWrap: 'wrap' }}>
56
+ <Tooltip content="Primary tooltip" intent="primary">
57
+ <Button type="contained" intent="primary">Primary</Button>
58
+ </Tooltip>
59
+ <Tooltip content="Success tooltip" intent="success">
60
+ <Button type="contained" intent="success">Success</Button>
61
+ </Tooltip>
62
+ <Tooltip content="Warning tooltip" intent="warning">
63
+ <Button type="contained" intent="warning">Warning</Button>
64
+ </Tooltip>
65
+ <Tooltip content="Error tooltip" intent="error">
66
+ <Button type="contained" intent="error">Error</Button>
67
+ </Tooltip>
68
+ <Tooltip content="Neutral tooltip" intent="neutral">
69
+ <Button type="contained" intent="neutral">Neutral</Button>
70
+ </Tooltip>
71
+ </View>
72
+ </View>
73
+
74
+ <View spacing="md">
75
+ <Text size="lg" weight="semibold">Custom Delay</Text>
76
+ <View style={{ flexDirection: 'row', gap: 16, flexWrap: 'wrap' }}>
77
+ <Tooltip content="Instant (0ms)" delay={0}>
78
+ <Button type="outlined">No Delay</Button>
79
+ </Tooltip>
80
+ <Tooltip content="Quick (200ms)" delay={200}>
81
+ <Button type="outlined">Default</Button>
82
+ </Tooltip>
83
+ <Tooltip content="Slow (1000ms)" delay={1000}>
84
+ <Button type="outlined">Slow</Button>
85
+ </Tooltip>
86
+ </View>
87
+ </View>
88
+
89
+ <View spacing="md">
90
+ <Text size="lg" weight="semibold">Long Content</Text>
91
+ <Tooltip content="This is a longer tooltip that demonstrates how the component handles multi-line content automatically">
92
+ <Button type="outlined">Hover for long text</Button>
93
+ </Tooltip>
94
+ </View>
95
+
96
+ <View spacing="md">
97
+ <Text size="lg" weight="semibold">On Text</Text>
98
+ <View>
99
+ <Tooltip content="Additional information">
100
+ <Text style={{ textDecorationLine: 'underline' }}>
101
+ Hover over this text
102
+ </Text>
103
+ </Tooltip>
104
+ </View>
105
+ </View>
106
+
107
+ <View spacing="md">
108
+ <Text size="lg" weight="semibold">Rich Content</Text>
109
+ <Tooltip
110
+ content={
111
+ <View spacing="xs">
112
+ <Text weight="bold">Rich Tooltip</Text>
113
+ <Text>With multiple lines</Text>
114
+ <Text>and formatting</Text>
115
+ </View>
116
+ }
117
+ >
118
+ <Button type="outlined">Rich Content</Button>
119
+ </Tooltip>
120
+ </View>
121
+ </View>
122
+ </Screen>
123
+ );
124
+ };
125
+
126
+ export default TooltipExamples;
@@ -0,0 +1,144 @@
1
+ import React from 'react';
2
+ import { Screen, View, Text } from '@idealyst/components';
3
+ import Video from '../Video';
4
+
5
+ export const VideoExamples: React.FC = () => {
6
+ return (
7
+ <Screen background="primary" padding="lg">
8
+ <View spacing="lg">
9
+ <Text size="xl" weight="bold">Video Examples</Text>
10
+
11
+ <View spacing="sm" style={{ padding: 12, backgroundColor: '#fff3cd', borderRadius: 8 }}>
12
+ <Text size="sm" weight="semibold">Note:</Text>
13
+ <Text size="sm">
14
+ On React Native, this component requires react-native-video to be installed.
15
+ The examples below use sample videos from the web.
16
+ </Text>
17
+ </View>
18
+
19
+ <View spacing="md">
20
+ <Text size="lg" weight="semibold">Basic Video with Controls</Text>
21
+ <Video
22
+ source="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"
23
+ width="100%"
24
+ aspectRatio={16 / 9}
25
+ controls={true}
26
+ />
27
+ </View>
28
+
29
+ <View spacing="md">
30
+ <Text size="lg" weight="semibold">Video with Poster</Text>
31
+ <Video
32
+ source="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ElephantsDream.mp4"
33
+ poster="https://picsum.photos/800/450"
34
+ width="100%"
35
+ aspectRatio={16 / 9}
36
+ controls={true}
37
+ />
38
+ </View>
39
+
40
+ <View spacing="md">
41
+ <Text size="lg" weight="semibold">Autoplay & Loop</Text>
42
+ <Text size="sm" color="secondary">
43
+ Video plays automatically and loops continuously
44
+ </Text>
45
+ <Video
46
+ source="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"
47
+ width="100%"
48
+ aspectRatio={16 / 9}
49
+ autoPlay={true}
50
+ loop={true}
51
+ muted={true}
52
+ controls={true}
53
+ />
54
+ </View>
55
+
56
+ <View spacing="md">
57
+ <Text size="lg" weight="semibold">Fixed Size</Text>
58
+ <Video
59
+ source="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerEscapes.mp4"
60
+ width={640}
61
+ height={360}
62
+ controls={true}
63
+ />
64
+ </View>
65
+
66
+ <View spacing="md">
67
+ <Text size="lg" weight="semibold">Rounded Corners</Text>
68
+ <Video
69
+ source="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4"
70
+ width="100%"
71
+ aspectRatio={16 / 9}
72
+ borderRadius={16}
73
+ controls={true}
74
+ />
75
+ </View>
76
+
77
+ <View spacing="md">
78
+ <Text size="lg" weight="semibold">Different Aspect Ratios</Text>
79
+ <View spacing="sm">
80
+ <Text size="sm" weight="medium">16:9 (Widescreen)</Text>
81
+ <Video
82
+ source="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerJoyrides.mp4"
83
+ width="100%"
84
+ aspectRatio={16 / 9}
85
+ controls={true}
86
+ />
87
+
88
+ <Text size="sm" weight="medium">4:3 (Standard)</Text>
89
+ <Video
90
+ source="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerMeltdowns.mp4"
91
+ width="100%"
92
+ aspectRatio={4 / 3}
93
+ controls={true}
94
+ />
95
+
96
+ <Text size="sm" weight="medium">1:1 (Square)</Text>
97
+ <Video
98
+ source="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/Sintel.mp4"
99
+ width={300}
100
+ aspectRatio={1}
101
+ controls={true}
102
+ />
103
+ </View>
104
+ </View>
105
+
106
+ <View spacing="md">
107
+ <Text size="lg" weight="semibold">Without Controls</Text>
108
+ <Text size="sm" color="secondary">
109
+ Video with controls disabled
110
+ </Text>
111
+ <Video
112
+ source="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/TearsOfSteel.mp4"
113
+ width="100%"
114
+ aspectRatio={16 / 9}
115
+ controls={false}
116
+ autoPlay={true}
117
+ loop={true}
118
+ muted={true}
119
+ />
120
+ </View>
121
+
122
+ <View spacing="md">
123
+ <Text size="lg" weight="semibold">Event Handlers</Text>
124
+ <Text size="sm" color="secondary">
125
+ Check console for video events (onLoad, onPlay, onPause, onEnd)
126
+ </Text>
127
+ <Video
128
+ source="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/VolkswagenGTIReview.mp4"
129
+ width="100%"
130
+ aspectRatio={16 / 9}
131
+ controls={true}
132
+ onLoad={() => console.log('Video loaded')}
133
+ onPlay={() => console.log('Video playing')}
134
+ onPause={() => console.log('Video paused')}
135
+ onEnd={() => console.log('Video ended')}
136
+ onProgress={(progress) => console.log('Progress:', progress)}
137
+ />
138
+ </View>
139
+ </View>
140
+ </Screen>
141
+ );
142
+ };
143
+
144
+ export default VideoExamples;
@@ -1,107 +1,115 @@
1
- import React from 'react';
2
1
  import { Screen, View, Text } from '../index';
3
2
 
4
3
  export const ViewExamples = () => {
5
4
  return (
6
5
  <Screen background="primary" padding="lg">
7
6
  <View spacing="none">
8
- <Text size="large" weight="bold" align="center">
7
+ <Text size="lg" weight="bold" align="center">
9
8
  View Examples
10
9
  </Text>
11
-
10
+
12
11
  {/* Spacing Examples */}
13
12
  <View spacing="md">
14
- <Text size="medium" weight="semibold">Spacing Variants</Text>
15
- <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap' }}>
16
- <View spacing="none" background="surface" border="thin">
17
- <Text size="small">None</Text>
13
+ <Text size="md" weight="semibold">Spacing Variants</Text>
14
+ <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap', alignItems: 'center' }}>
15
+ <View spacing="none" background="secondary" border="thin">
16
+ <Text size="sm">None</Text>
18
17
  </View>
19
- <View spacing="xs" background="surface" border="thin">
20
- <Text size="small">XS</Text>
18
+ <View spacing="xs" background="secondary" border="thin">
19
+ <Text size="sm">XS</Text>
21
20
  </View>
22
- <View spacing="sm" background="surface" border="thin">
23
- <Text size="small">SM</Text>
21
+ <View spacing="sm" background="secondary" border="thin">
22
+ <Text size="sm">SM</Text>
24
23
  </View>
25
- <View spacing="md" background="surface" border="thin">
26
- <Text size="small">MD</Text>
24
+ <View spacing="md" background="secondary" border="thin">
25
+ <Text size="sm">MD</Text>
27
26
  </View>
28
- <View spacing="lg" background="surface" border="thin">
29
- <Text size="small">LG</Text>
27
+ <View spacing="lg" background="secondary" border="thin">
28
+ <Text size="sm">LG</Text>
30
29
  </View>
31
- <View spacing="xl" background="surface" border="thin">
32
- <Text size="small">XL</Text>
30
+ <View spacing="xl" background="secondary" border="thin">
31
+ <Text size="sm">XL</Text>
33
32
  </View>
34
33
  </View>
35
34
  </View>
36
35
 
37
36
  {/* Background Examples */}
38
37
  <View spacing="md">
39
- <Text size="medium" weight="semibold">Background Variants</Text>
38
+ <Text size="md" weight="semibold">Background Variants</Text>
40
39
  <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap' }}>
41
- <View background="transparent" border="thin" spacing="sm">
42
- <Text size="small">Transparent</Text>
40
+ <View background="transparent" border="thin" spacing="sm" radius="sm">
41
+ <Text size="sm" color="primary">Transparent</Text>
42
+ </View>
43
+ <View background="primary" spacing="sm" radius="sm">
44
+ <Text size="sm" color="primary">Primary</Text>
43
45
  </View>
44
- <View background="surface" spacing="sm">
45
- <Text size="small">Surface</Text>
46
+ <View background="secondary" spacing="sm" radius="sm">
47
+ <Text size="sm" color="secondary">Secondary</Text>
46
48
  </View>
47
- <View background="primary" spacing="sm">
48
- <Text size="small" color="primary">Primary</Text>
49
+ <View background="tertiary" spacing="sm" radius="sm">
50
+ <Text size="sm" color="tertiary">Tertiary</Text>
49
51
  </View>
50
- <View background="secondary" spacing="sm">
51
- <Text size="small" color="secondary">Secondary</Text>
52
+ <View background="inverse" spacing="sm" radius="sm">
53
+ <Text size="sm" color="inverse">Inverse (of primary)</Text>
54
+ </View>
55
+ <View background="inverse-secondary" spacing="sm" radius="sm">
56
+ <Text size="sm" color="inverse-secondary">Inverse Secondary</Text>
57
+ </View>
58
+ <View background="inverse-tertiary" spacing="sm" radius="sm">
59
+ <Text size="sm" color="inverse-tertiary">Inverse Tertiary</Text>
52
60
  </View>
53
61
  </View>
54
62
  </View>
55
63
 
56
64
  {/* Border Radius Examples */}
57
65
  <View spacing="md">
58
- <Text size="medium" weight="semibold">Border Radius</Text>
66
+ <Text size="md" weight="semibold">Border Radius</Text>
59
67
  <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap' }}>
60
- <View radius="none" background="surface" spacing="sm" border="thin">
61
- <Text size="small">None</Text>
68
+ <View radius="none" background="inverse" spacing="sm">
69
+ <Text size="sm" color="inverse">None</Text>
62
70
  </View>
63
- <View radius="xs" background="surface" spacing="sm" border="thin">
64
- <Text size="small">XS</Text>
71
+ <View radius="xs" background="inverse" spacing="sm">
72
+ <Text size="sm" color="inverse">XS</Text>
65
73
  </View>
66
- <View radius="sm" background="surface" spacing="sm" border="thin">
67
- <Text size="small">SM</Text>
74
+ <View radius="sm" background="inverse" spacing="sm">
75
+ <Text size="sm" color="inverse">SM</Text>
68
76
  </View>
69
- <View radius="md" background="surface" spacing="sm" border="thin">
70
- <Text size="small">MD</Text>
77
+ <View radius="md" background="inverse" spacing="sm">
78
+ <Text size="sm" color="inverse">MD</Text>
71
79
  </View>
72
- <View radius="lg" background="surface" spacing="sm" border="thin">
73
- <Text size="small">LG</Text>
80
+ <View radius="lg" background="inverse" spacing="sm">
81
+ <Text size="sm" color="inverse">LG</Text>
74
82
  </View>
75
- <View radius="xl" background="surface" spacing="sm" border="thin">
76
- <Text size="small">XL</Text>
83
+ <View radius="xl" background="inverse" spacing="sm">
84
+ <Text size="sm" color="inverse">XL</Text>
77
85
  </View>
78
86
  </View>
79
87
  </View>
80
88
 
81
89
  {/* Border Examples */}
82
90
  <View spacing="md">
83
- <Text size="medium" weight="semibold">Border Variants</Text>
91
+ <Text size="md" weight="semibold">Border Variants</Text>
84
92
  <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap' }}>
85
- <View border="none" background="surface" spacing="sm" radius="sm">
86
- <Text size="small">None</Text>
93
+ <View border="none" background="secondary" spacing="sm" radius="sm">
94
+ <Text size="sm">None</Text>
87
95
  </View>
88
- <View border="thin" background="surface" spacing="sm" radius="sm">
89
- <Text size="small">Thin</Text>
96
+ <View border="thin" background="secondary" spacing="sm" radius="sm">
97
+ <Text size="sm">Thin</Text>
90
98
  </View>
91
- <View border="thick" background="surface" spacing="sm" radius="sm">
92
- <Text size="small">Thick</Text>
99
+ <View border="thick" background="secondary" spacing="sm" radius="sm">
100
+ <Text size="sm">Thick</Text>
93
101
  </View>
94
102
  </View>
95
103
  </View>
96
104
 
97
105
  {/* Layout Examples */}
98
106
  <View spacing="md">
99
- <Text size="medium" weight="semibold">Layout Examples</Text>
107
+ <Text size="md" weight="semibold">Layout Examples</Text>
100
108
  <View spacing="sm" style={{ gap: 10 }}>
101
- <View
102
- background="surface"
103
- spacing="md"
104
- radius="md"
109
+ <View
110
+ background="secondary"
111
+ spacing="md"
112
+ radius="md"
105
113
  border="thin"
106
114
  style={{ flexDirection: 'row', justifyContent: 'space-between' }}
107
115
  >
@@ -109,11 +117,11 @@ export const ViewExamples = () => {
109
117
  <Text>Center</Text>
110
118
  <Text>Right</Text>
111
119
  </View>
112
-
113
- <View
114
- background="surface"
115
- spacing="md"
116
- radius="md"
120
+
121
+ <View
122
+ background="secondary"
123
+ spacing="md"
124
+ radius="md"
117
125
  border="thin"
118
126
  style={{ flexDirection: 'column', alignItems: 'center' }}
119
127
  >