@cdx-ui/components 0.0.1-alpha.3 → 0.0.1-alpha.30

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 (402) hide show
  1. package/README.md +20 -2
  2. package/lib/commonjs/components/AlertDialog/index.js +117 -0
  3. package/lib/commonjs/components/AlertDialog/index.js.map +1 -0
  4. package/lib/commonjs/components/Avatar/index.js +156 -0
  5. package/lib/commonjs/components/Avatar/index.js.map +1 -0
  6. package/lib/commonjs/components/Avatar/styles.js +80 -0
  7. package/lib/commonjs/components/Avatar/styles.js.map +1 -0
  8. package/lib/commonjs/components/BottomSheet/index.js +248 -0
  9. package/lib/commonjs/components/BottomSheet/index.js.map +1 -0
  10. package/lib/commonjs/components/BottomSheet/styles.js +61 -0
  11. package/lib/commonjs/components/BottomSheet/styles.js.map +1 -0
  12. package/lib/commonjs/components/Box/Box.js +1 -0
  13. package/lib/commonjs/components/Box/Box.js.map +1 -1
  14. package/lib/commonjs/components/Button/buttonSharedVariants.js +200 -0
  15. package/lib/commonjs/components/Button/buttonSharedVariants.js.map +1 -0
  16. package/lib/commonjs/components/Button/index.js +31 -13
  17. package/lib/commonjs/components/Button/index.js.map +1 -1
  18. package/lib/commonjs/components/Button/styles.js +170 -187
  19. package/lib/commonjs/components/Button/styles.js.map +1 -1
  20. package/lib/commonjs/components/Card/index.js +104 -0
  21. package/lib/commonjs/components/Card/index.js.map +1 -0
  22. package/lib/commonjs/components/Card/styles.js +28 -0
  23. package/lib/commonjs/components/Card/styles.js.map +1 -0
  24. package/lib/commonjs/components/Checkbox/index.js +180 -0
  25. package/lib/commonjs/components/Checkbox/index.js.map +1 -0
  26. package/lib/commonjs/components/Checkbox/styles.js +68 -0
  27. package/lib/commonjs/components/Checkbox/styles.js.map +1 -0
  28. package/lib/commonjs/components/Chip/index.js +103 -0
  29. package/lib/commonjs/components/Chip/index.js.map +1 -0
  30. package/lib/commonjs/components/Chip/styles.js +50 -0
  31. package/lib/commonjs/components/Chip/styles.js.map +1 -0
  32. package/lib/commonjs/components/Dialog/index.js +275 -0
  33. package/lib/commonjs/components/Dialog/index.js.map +1 -0
  34. package/lib/commonjs/components/Dialog/styles.js +63 -0
  35. package/lib/commonjs/components/Dialog/styles.js.map +1 -0
  36. package/lib/commonjs/components/Form/FormLabelRoot.js +33 -0
  37. package/lib/commonjs/components/Form/FormLabelRoot.js.map +1 -0
  38. package/lib/commonjs/components/Form/FormLabelRoot.web.js +18 -0
  39. package/lib/commonjs/components/Form/FormLabelRoot.web.js.map +1 -0
  40. package/lib/commonjs/components/Form/FormRoot.js +25 -0
  41. package/lib/commonjs/components/Form/FormRoot.js.map +1 -0
  42. package/lib/commonjs/components/Form/FormRoot.web.js +17 -0
  43. package/lib/commonjs/components/Form/FormRoot.web.js.map +1 -0
  44. package/lib/commonjs/components/Form/index.js +255 -0
  45. package/lib/commonjs/components/Form/index.js.map +1 -0
  46. package/lib/commonjs/components/Form/styles.js +57 -0
  47. package/lib/commonjs/components/Form/styles.js.map +1 -0
  48. package/lib/commonjs/components/Heading/index.js +35 -0
  49. package/lib/commonjs/components/Heading/index.js.map +1 -0
  50. package/lib/commonjs/components/Heading/styles.js +24 -0
  51. package/lib/commonjs/components/Heading/styles.js.map +1 -0
  52. package/lib/commonjs/components/Icon/index.js +61 -0
  53. package/lib/commonjs/components/Icon/index.js.map +1 -0
  54. package/lib/commonjs/components/IconButton/index.js +80 -0
  55. package/lib/commonjs/components/IconButton/index.js.map +1 -0
  56. package/lib/commonjs/components/IconButton/styles.js +91 -0
  57. package/lib/commonjs/components/IconButton/styles.js.map +1 -0
  58. package/lib/commonjs/components/Image/Image.js +69 -0
  59. package/lib/commonjs/components/Image/Image.js.map +1 -0
  60. package/lib/commonjs/components/Image/index.js +13 -0
  61. package/lib/commonjs/components/Image/index.js.map +1 -0
  62. package/lib/commonjs/components/Input/BaseInput.android.js +20 -0
  63. package/lib/commonjs/components/Input/BaseInput.android.js.map +1 -0
  64. package/lib/commonjs/components/Input/index.js +10 -16
  65. package/lib/commonjs/components/Input/index.js.map +1 -1
  66. package/lib/commonjs/components/Input/styles.js +16 -30
  67. package/lib/commonjs/components/Input/styles.js.map +1 -1
  68. package/lib/commonjs/components/Link/index.js +94 -0
  69. package/lib/commonjs/components/Link/index.js.map +1 -0
  70. package/lib/commonjs/components/Link/styles.js +16 -0
  71. package/lib/commonjs/components/Link/styles.js.map +1 -0
  72. package/lib/commonjs/components/ProgressSegmented/index.js +62 -0
  73. package/lib/commonjs/components/ProgressSegmented/index.js.map +1 -0
  74. package/lib/commonjs/components/ProgressSegmented/styles.js +21 -0
  75. package/lib/commonjs/components/ProgressSegmented/styles.js.map +1 -0
  76. package/lib/commonjs/components/Select/SelectTriggerHost.js +10 -0
  77. package/lib/commonjs/components/Select/SelectTriggerHost.js.map +1 -0
  78. package/lib/commonjs/components/Select/SelectTriggerHost.web.js +98 -0
  79. package/lib/commonjs/components/Select/SelectTriggerHost.web.js.map +1 -0
  80. package/lib/commonjs/components/Select/index.js +13 -13
  81. package/lib/commonjs/components/Select/index.js.map +1 -1
  82. package/lib/commonjs/components/Select/styles.js +29 -53
  83. package/lib/commonjs/components/Select/styles.js.map +1 -1
  84. package/lib/commonjs/components/Stack/HStack.js +8 -21
  85. package/lib/commonjs/components/Stack/HStack.js.map +1 -1
  86. package/lib/commonjs/components/Stack/VStack.js +8 -21
  87. package/lib/commonjs/components/Stack/VStack.js.map +1 -1
  88. package/lib/commonjs/components/Stack/styles.js +39 -0
  89. package/lib/commonjs/components/Stack/styles.js.map +1 -0
  90. package/lib/commonjs/components/Switch/BaseSwitch.js +46 -0
  91. package/lib/commonjs/components/Switch/BaseSwitch.js.map +1 -0
  92. package/lib/commonjs/components/Switch/BaseSwitch.web.js +56 -0
  93. package/lib/commonjs/components/Switch/BaseSwitch.web.js.map +1 -0
  94. package/lib/commonjs/components/Switch/index.js +13 -0
  95. package/lib/commonjs/components/Switch/index.js.map +1 -0
  96. package/lib/commonjs/components/Switch/styles.js +128 -0
  97. package/lib/commonjs/components/Switch/styles.js.map +1 -0
  98. package/lib/commonjs/components/Text/index.js +18 -9
  99. package/lib/commonjs/components/Text/index.js.map +1 -1
  100. package/lib/commonjs/components/Text/styles.js +24 -0
  101. package/lib/commonjs/components/Text/styles.js.map +1 -0
  102. package/lib/commonjs/components/VirtualizedList/index.js +19 -0
  103. package/lib/commonjs/components/VirtualizedList/index.js.map +1 -0
  104. package/lib/commonjs/components/index.js +192 -0
  105. package/lib/commonjs/components/index.js.map +1 -1
  106. package/lib/commonjs/index.js +40 -0
  107. package/lib/commonjs/index.js.map +1 -1
  108. package/lib/commonjs/metro/withCdxMetroConfig.js +24 -0
  109. package/lib/commonjs/metro/withCdxMetroConfig.js.map +1 -0
  110. package/lib/commonjs/styles/index.js +17 -0
  111. package/lib/commonjs/styles/index.js.map +1 -0
  112. package/lib/commonjs/styles/primitives.js +123 -0
  113. package/lib/commonjs/styles/primitives.js.map +1 -0
  114. package/lib/module/components/AlertDialog/index.js +112 -0
  115. package/lib/module/components/AlertDialog/index.js.map +1 -0
  116. package/lib/module/components/Avatar/index.js +152 -0
  117. package/lib/module/components/Avatar/index.js.map +1 -0
  118. package/lib/module/components/Avatar/styles.js +77 -0
  119. package/lib/module/components/Avatar/styles.js.map +1 -0
  120. package/lib/module/components/BottomSheet/index.js +242 -0
  121. package/lib/module/components/BottomSheet/index.js.map +1 -0
  122. package/lib/module/components/BottomSheet/styles.js +58 -0
  123. package/lib/module/components/BottomSheet/styles.js.map +1 -0
  124. package/lib/module/components/Box/Box.js +1 -0
  125. package/lib/module/components/Box/Box.js.map +1 -1
  126. package/lib/module/components/Button/buttonSharedVariants.js +195 -0
  127. package/lib/module/components/Button/buttonSharedVariants.js.map +1 -0
  128. package/lib/module/components/Button/index.js +32 -14
  129. package/lib/module/components/Button/index.js.map +1 -1
  130. package/lib/module/components/Button/styles.js +168 -186
  131. package/lib/module/components/Button/styles.js.map +1 -1
  132. package/lib/module/components/Card/index.js +100 -0
  133. package/lib/module/components/Card/index.js.map +1 -0
  134. package/lib/module/components/Card/styles.js +25 -0
  135. package/lib/module/components/Card/styles.js.map +1 -0
  136. package/lib/module/components/Checkbox/index.js +176 -0
  137. package/lib/module/components/Checkbox/index.js.map +1 -0
  138. package/lib/module/components/Checkbox/styles.js +64 -0
  139. package/lib/module/components/Checkbox/styles.js.map +1 -0
  140. package/lib/module/components/Chip/index.js +99 -0
  141. package/lib/module/components/Chip/index.js.map +1 -0
  142. package/lib/module/components/Chip/styles.js +46 -0
  143. package/lib/module/components/Chip/styles.js.map +1 -0
  144. package/lib/module/components/Dialog/index.js +267 -0
  145. package/lib/module/components/Dialog/index.js.map +1 -0
  146. package/lib/module/components/Dialog/styles.js +60 -0
  147. package/lib/module/components/Dialog/styles.js.map +1 -0
  148. package/lib/module/components/Form/FormLabelRoot.js +29 -0
  149. package/lib/module/components/Form/FormLabelRoot.js.map +1 -0
  150. package/lib/module/components/Form/FormLabelRoot.web.js +13 -0
  151. package/lib/module/components/Form/FormLabelRoot.web.js.map +1 -0
  152. package/lib/module/components/Form/FormRoot.js +21 -0
  153. package/lib/module/components/Form/FormRoot.js.map +1 -0
  154. package/lib/module/components/Form/FormRoot.web.js +12 -0
  155. package/lib/module/components/Form/FormRoot.web.js.map +1 -0
  156. package/lib/module/components/Form/index.js +252 -0
  157. package/lib/module/components/Form/index.js.map +1 -0
  158. package/lib/module/components/Form/styles.js +53 -0
  159. package/lib/module/components/Form/styles.js.map +1 -0
  160. package/lib/module/components/Heading/index.js +31 -0
  161. package/lib/module/components/Heading/index.js.map +1 -0
  162. package/lib/module/components/Heading/styles.js +20 -0
  163. package/lib/module/components/Heading/styles.js.map +1 -0
  164. package/lib/module/components/Icon/index.js +57 -0
  165. package/lib/module/components/Icon/index.js.map +1 -0
  166. package/lib/module/components/IconButton/index.js +76 -0
  167. package/lib/module/components/IconButton/index.js.map +1 -0
  168. package/lib/module/components/IconButton/styles.js +87 -0
  169. package/lib/module/components/IconButton/styles.js.map +1 -0
  170. package/lib/module/components/Image/Image.js +67 -0
  171. package/lib/module/components/Image/Image.js.map +1 -0
  172. package/lib/module/components/Image/index.js +4 -0
  173. package/lib/module/components/Image/index.js.map +1 -0
  174. package/lib/module/components/Input/BaseInput.android.js +16 -0
  175. package/lib/module/components/Input/BaseInput.android.js.map +1 -0
  176. package/lib/module/components/Input/index.js +10 -16
  177. package/lib/module/components/Input/index.js.map +1 -1
  178. package/lib/module/components/Input/styles.js +16 -30
  179. package/lib/module/components/Input/styles.js.map +1 -1
  180. package/lib/module/components/Link/index.js +85 -0
  181. package/lib/module/components/Link/index.js.map +1 -0
  182. package/lib/module/components/Link/styles.js +12 -0
  183. package/lib/module/components/Link/styles.js.map +1 -0
  184. package/lib/module/components/ProgressSegmented/index.js +58 -0
  185. package/lib/module/components/ProgressSegmented/index.js.map +1 -0
  186. package/lib/module/components/ProgressSegmented/styles.js +17 -0
  187. package/lib/module/components/ProgressSegmented/styles.js.map +1 -0
  188. package/lib/module/components/Select/SelectTriggerHost.js +7 -0
  189. package/lib/module/components/Select/SelectTriggerHost.js.map +1 -0
  190. package/lib/module/components/Select/SelectTriggerHost.web.js +93 -0
  191. package/lib/module/components/Select/SelectTriggerHost.web.js.map +1 -0
  192. package/lib/module/components/Select/index.js +14 -14
  193. package/lib/module/components/Select/index.js.map +1 -1
  194. package/lib/module/components/Select/styles.js +29 -53
  195. package/lib/module/components/Select/styles.js.map +1 -1
  196. package/lib/module/components/Stack/HStack.js +8 -21
  197. package/lib/module/components/Stack/HStack.js.map +1 -1
  198. package/lib/module/components/Stack/VStack.js +8 -21
  199. package/lib/module/components/Stack/VStack.js.map +1 -1
  200. package/lib/module/components/Stack/styles.js +35 -0
  201. package/lib/module/components/Stack/styles.js.map +1 -0
  202. package/lib/module/components/Switch/BaseSwitch.js +42 -0
  203. package/lib/module/components/Switch/BaseSwitch.js.map +1 -0
  204. package/lib/module/components/Switch/BaseSwitch.web.js +52 -0
  205. package/lib/module/components/Switch/BaseSwitch.web.js.map +1 -0
  206. package/lib/module/components/Switch/index.js +9 -0
  207. package/lib/module/components/Switch/index.js.map +1 -0
  208. package/lib/module/components/Switch/styles.js +125 -0
  209. package/lib/module/components/Switch/styles.js.map +1 -0
  210. package/lib/module/components/Text/index.js +19 -1
  211. package/lib/module/components/Text/index.js.map +1 -1
  212. package/lib/module/components/Text/styles.js +20 -0
  213. package/lib/module/components/Text/styles.js.map +1 -0
  214. package/lib/module/components/VirtualizedList/index.js +15 -0
  215. package/lib/module/components/VirtualizedList/index.js.map +1 -0
  216. package/lib/module/components/index.js +16 -0
  217. package/lib/module/components/index.js.map +1 -1
  218. package/lib/module/index.js +3 -0
  219. package/lib/module/index.js.map +1 -1
  220. package/lib/module/metro/withCdxMetroConfig.js +20 -0
  221. package/lib/module/metro/withCdxMetroConfig.js.map +1 -0
  222. package/lib/module/styles/index.js +4 -0
  223. package/lib/module/styles/index.js.map +1 -0
  224. package/lib/module/styles/primitives.js +119 -0
  225. package/lib/module/styles/primitives.js.map +1 -0
  226. package/lib/typescript/components/AlertDialog/index.d.ts +30 -0
  227. package/lib/typescript/components/AlertDialog/index.d.ts.map +1 -0
  228. package/lib/typescript/components/Avatar/index.d.ts +40 -0
  229. package/lib/typescript/components/Avatar/index.d.ts.map +1 -0
  230. package/lib/typescript/components/Avatar/styles.d.ts +16 -0
  231. package/lib/typescript/components/Avatar/styles.d.ts.map +1 -0
  232. package/lib/typescript/components/BottomSheet/index.d.ts +61 -0
  233. package/lib/typescript/components/BottomSheet/index.d.ts.map +1 -0
  234. package/lib/typescript/components/BottomSheet/styles.d.ts +16 -0
  235. package/lib/typescript/components/BottomSheet/styles.d.ts.map +1 -0
  236. package/lib/typescript/components/Box/Box.d.ts +1 -0
  237. package/lib/typescript/components/Box/Box.d.ts.map +1 -1
  238. package/lib/typescript/components/Button/buttonSharedVariants.d.ts +29 -0
  239. package/lib/typescript/components/Button/buttonSharedVariants.d.ts.map +1 -0
  240. package/lib/typescript/components/Button/index.d.ts +6 -3
  241. package/lib/typescript/components/Button/index.d.ts.map +1 -1
  242. package/lib/typescript/components/Button/styles.d.ts +14 -8
  243. package/lib/typescript/components/Button/styles.d.ts.map +1 -1
  244. package/lib/typescript/components/Card/index.d.ts +30 -0
  245. package/lib/typescript/components/Card/index.d.ts.map +1 -0
  246. package/lib/typescript/components/Card/styles.d.ts +6 -0
  247. package/lib/typescript/components/Card/styles.d.ts.map +1 -0
  248. package/lib/typescript/components/Checkbox/index.d.ts +46 -0
  249. package/lib/typescript/components/Checkbox/index.d.ts.map +1 -0
  250. package/lib/typescript/components/Checkbox/styles.d.ts +18 -0
  251. package/lib/typescript/components/Checkbox/styles.d.ts.map +1 -0
  252. package/lib/typescript/components/Chip/index.d.ts +27 -0
  253. package/lib/typescript/components/Chip/index.d.ts.map +1 -0
  254. package/lib/typescript/components/Chip/styles.d.ts +12 -0
  255. package/lib/typescript/components/Chip/styles.d.ts.map +1 -0
  256. package/lib/typescript/components/Dialog/index.d.ts +61 -0
  257. package/lib/typescript/components/Dialog/index.d.ts.map +1 -0
  258. package/lib/typescript/components/Dialog/styles.d.ts +14 -0
  259. package/lib/typescript/components/Dialog/styles.d.ts.map +1 -0
  260. package/lib/typescript/components/Form/FormLabelRoot.d.ts +18 -0
  261. package/lib/typescript/components/Form/FormLabelRoot.d.ts.map +1 -0
  262. package/lib/typescript/components/Form/FormLabelRoot.web.d.ts +20 -0
  263. package/lib/typescript/components/Form/FormLabelRoot.web.d.ts.map +1 -0
  264. package/lib/typescript/components/Form/FormRoot.d.ts +12 -0
  265. package/lib/typescript/components/Form/FormRoot.d.ts.map +1 -0
  266. package/lib/typescript/components/Form/FormRoot.web.d.ts +10 -0
  267. package/lib/typescript/components/Form/FormRoot.web.d.ts.map +1 -0
  268. package/lib/typescript/components/Form/index.d.ts +64 -0
  269. package/lib/typescript/components/Form/index.d.ts.map +1 -0
  270. package/lib/typescript/components/Form/styles.d.ts +22 -0
  271. package/lib/typescript/components/Form/styles.d.ts.map +1 -0
  272. package/lib/typescript/components/Heading/index.d.ts +10 -0
  273. package/lib/typescript/components/Heading/index.d.ts.map +1 -0
  274. package/lib/typescript/components/Heading/styles.d.ts +6 -0
  275. package/lib/typescript/components/Heading/styles.d.ts.map +1 -0
  276. package/lib/typescript/components/Icon/index.d.ts +27 -0
  277. package/lib/typescript/components/Icon/index.d.ts.map +1 -0
  278. package/lib/typescript/components/IconButton/index.d.ts +15 -0
  279. package/lib/typescript/components/IconButton/index.d.ts.map +1 -0
  280. package/lib/typescript/components/IconButton/styles.d.ts +16 -0
  281. package/lib/typescript/components/IconButton/styles.d.ts.map +1 -0
  282. package/lib/typescript/components/Image/Image.d.ts +47 -0
  283. package/lib/typescript/components/Image/Image.d.ts.map +1 -0
  284. package/lib/typescript/components/Image/index.d.ts +2 -0
  285. package/lib/typescript/components/Image/index.d.ts.map +1 -0
  286. package/lib/typescript/components/Input/BaseInput.android.d.ts +3 -0
  287. package/lib/typescript/components/Input/BaseInput.android.d.ts.map +1 -0
  288. package/lib/typescript/components/Input/index.d.ts +7 -5
  289. package/lib/typescript/components/Input/index.d.ts.map +1 -1
  290. package/lib/typescript/components/Input/styles.d.ts +5 -7
  291. package/lib/typescript/components/Input/styles.d.ts.map +1 -1
  292. package/lib/typescript/components/Link/index.d.ts +26 -0
  293. package/lib/typescript/components/Link/index.d.ts.map +1 -0
  294. package/lib/typescript/components/Link/styles.d.ts +4 -0
  295. package/lib/typescript/components/Link/styles.d.ts.map +1 -0
  296. package/lib/typescript/components/ProgressSegmented/index.d.ts +15 -0
  297. package/lib/typescript/components/ProgressSegmented/index.d.ts.map +1 -0
  298. package/lib/typescript/components/ProgressSegmented/styles.d.ts +8 -0
  299. package/lib/typescript/components/ProgressSegmented/styles.d.ts.map +1 -0
  300. package/lib/typescript/components/Select/SelectTriggerHost.d.ts +3 -0
  301. package/lib/typescript/components/Select/SelectTriggerHost.d.ts.map +1 -0
  302. package/lib/typescript/components/Select/SelectTriggerHost.web.d.ts +13 -0
  303. package/lib/typescript/components/Select/SelectTriggerHost.web.d.ts.map +1 -0
  304. package/lib/typescript/components/Select/index.d.ts +7 -4
  305. package/lib/typescript/components/Select/index.d.ts.map +1 -1
  306. package/lib/typescript/components/Select/styles.d.ts +6 -8
  307. package/lib/typescript/components/Select/styles.d.ts.map +1 -1
  308. package/lib/typescript/components/Stack/HStack.d.ts +1 -12
  309. package/lib/typescript/components/Stack/HStack.d.ts.map +1 -1
  310. package/lib/typescript/components/Stack/VStack.d.ts +1 -12
  311. package/lib/typescript/components/Stack/VStack.d.ts.map +1 -1
  312. package/lib/typescript/components/Stack/styles.d.ts +10 -0
  313. package/lib/typescript/components/Stack/styles.d.ts.map +1 -0
  314. package/lib/typescript/components/Switch/BaseSwitch.d.ts +9 -0
  315. package/lib/typescript/components/Switch/BaseSwitch.d.ts.map +1 -0
  316. package/lib/typescript/components/Switch/BaseSwitch.web.d.ts +15 -0
  317. package/lib/typescript/components/Switch/BaseSwitch.web.d.ts.map +1 -0
  318. package/lib/typescript/components/Switch/index.d.ts +7 -0
  319. package/lib/typescript/components/Switch/index.d.ts.map +1 -0
  320. package/lib/typescript/components/Switch/styles.d.ts +26 -0
  321. package/lib/typescript/components/Switch/styles.d.ts.map +1 -0
  322. package/lib/typescript/components/Text/index.d.ts +9 -1
  323. package/lib/typescript/components/Text/index.d.ts.map +1 -1
  324. package/lib/typescript/components/Text/styles.d.ts +6 -0
  325. package/lib/typescript/components/Text/styles.d.ts.map +1 -0
  326. package/lib/typescript/components/VirtualizedList/index.d.ts +8 -0
  327. package/lib/typescript/components/VirtualizedList/index.d.ts.map +1 -0
  328. package/lib/typescript/components/index.d.ts +16 -0
  329. package/lib/typescript/components/index.d.ts.map +1 -1
  330. package/lib/typescript/index.d.ts +3 -0
  331. package/lib/typescript/index.d.ts.map +1 -1
  332. package/lib/typescript/metro/withCdxMetroConfig.d.ts +19 -0
  333. package/lib/typescript/metro/withCdxMetroConfig.d.ts.map +1 -0
  334. package/lib/typescript/styles/index.d.ts +2 -0
  335. package/lib/typescript/styles/index.d.ts.map +1 -0
  336. package/lib/typescript/styles/primitives.d.ts +85 -0
  337. package/lib/typescript/styles/primitives.d.ts.map +1 -0
  338. package/package.json +23 -16
  339. package/src/components/AlertDialog/index.tsx +124 -0
  340. package/src/components/Avatar/index.tsx +172 -0
  341. package/src/components/Avatar/styles.ts +83 -0
  342. package/src/components/BottomSheet/index.tsx +316 -0
  343. package/src/components/BottomSheet/styles.ts +79 -0
  344. package/src/components/Box/Box.tsx +1 -0
  345. package/src/components/Button/buttonSharedVariants.ts +281 -0
  346. package/src/components/Button/index.tsx +24 -15
  347. package/src/components/Button/styles.ts +195 -229
  348. package/src/components/Card/index.tsx +115 -0
  349. package/src/components/Card/styles.ts +41 -0
  350. package/src/components/Checkbox/index.tsx +207 -0
  351. package/src/components/Checkbox/styles.ts +103 -0
  352. package/src/components/Chip/index.tsx +91 -0
  353. package/src/components/Chip/styles.ts +51 -0
  354. package/src/components/Dialog/index.tsx +304 -0
  355. package/src/components/Dialog/styles.ts +88 -0
  356. package/src/components/Form/FormLabelRoot.tsx +33 -0
  357. package/src/components/Form/FormLabelRoot.web.tsx +18 -0
  358. package/src/components/Form/FormRoot.tsx +19 -0
  359. package/src/components/Form/FormRoot.web.tsx +12 -0
  360. package/src/components/Form/index.tsx +272 -0
  361. package/src/components/Form/styles.ts +75 -0
  362. package/src/components/Heading/index.tsx +36 -0
  363. package/src/components/Heading/styles.tsx +26 -0
  364. package/src/components/Icon/index.tsx +54 -0
  365. package/src/components/IconButton/index.tsx +93 -0
  366. package/src/components/IconButton/styles.ts +131 -0
  367. package/src/components/Image/Image.tsx +77 -0
  368. package/src/components/Image/index.ts +1 -0
  369. package/src/components/Input/BaseInput.android.tsx +13 -0
  370. package/src/components/Input/index.tsx +9 -22
  371. package/src/components/Input/styles.ts +42 -37
  372. package/src/components/Link/index.tsx +83 -0
  373. package/src/components/Link/styles.ts +20 -0
  374. package/src/components/ProgressSegmented/index.tsx +81 -0
  375. package/src/components/ProgressSegmented/styles.ts +19 -0
  376. package/src/components/Select/SelectTriggerHost.tsx +4 -0
  377. package/src/components/Select/SelectTriggerHost.web.tsx +136 -0
  378. package/src/components/Select/index.tsx +14 -14
  379. package/src/components/Select/styles.ts +68 -75
  380. package/src/components/Stack/HStack.tsx +8 -19
  381. package/src/components/Stack/VStack.tsx +8 -23
  382. package/src/components/Stack/styles.ts +37 -0
  383. package/src/components/Switch/BaseSwitch.tsx +38 -0
  384. package/src/components/Switch/BaseSwitch.web.tsx +69 -0
  385. package/src/components/Switch/index.tsx +11 -0
  386. package/src/components/Switch/styles.ts +120 -0
  387. package/src/components/Text/index.tsx +16 -0
  388. package/src/components/Text/styles.tsx +26 -0
  389. package/src/components/VirtualizedList/index.tsx +19 -0
  390. package/src/components/index.ts +16 -0
  391. package/src/index.ts +3 -0
  392. package/src/metro/withCdxMetroConfig.ts +29 -0
  393. package/src/styles/index.ts +1 -0
  394. package/src/styles/primitives.ts +107 -0
  395. package/lib/commonjs/components/Text/Text.js +0 -30
  396. package/lib/commonjs/components/Text/Text.js.map +0 -1
  397. package/lib/module/components/Text/Text.js +0 -26
  398. package/lib/module/components/Text/Text.js.map +0 -1
  399. package/lib/typescript/components/Text/Text.d.ts +0 -11
  400. package/lib/typescript/components/Text/Text.d.ts.map +0 -1
  401. package/src/components/Text/Text.tsx +0 -58
  402. package/src/components/Text/index.ts +0 -1
@@ -1,7 +1,23 @@
1
+ export * from './AlertDialog';
2
+ export * from './Avatar';
3
+ export * from './BottomSheet';
1
4
  export * from './Box';
2
5
  export * from './Button';
6
+ export * from './Card';
7
+ export * from './Checkbox';
8
+ export * from './Chip';
9
+ export * from './Dialog';
10
+ export * from './Form';
11
+ export * from './Image';
3
12
  export * from './Input';
13
+ export * from './Link';
14
+ export * from './ProgressSegmented';
4
15
  export * from './Select';
16
+ export * from './VirtualizedList';
17
+ export * from './Switch';
5
18
  export { HStack, VStack } from './Stack';
19
+ export * from './Heading';
6
20
  export * from './Text';
21
+ export * from './Icon';
22
+ export * from './IconButton';
7
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACzC,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC"}
@@ -1,2 +1,5 @@
1
+ /// <reference types="uniwind/types" preserve="true" />
1
2
  export * from './components';
3
+ export { View, ScrollView, KeyboardAvoidingView } from 'react-native';
4
+ export { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context';
2
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { MetroConfig } from 'metro-config';
2
+ export interface CdxMetroConfigOptions {
3
+ /** Path to the CSS entry file (e.g., `'./global.css'`). */
4
+ cssEntryFile: string;
5
+ /** Path where generated Tailwind class type definitions are written. */
6
+ generatedTypesFile?: string;
7
+ }
8
+ /**
9
+ * Wraps a Metro config with CDX UI's styling-layer configuration.
10
+ *
11
+ * Today this delegates to Uniwind. If the styling layer is swapped (see
12
+ * `docs/research/uniwind-to-nativewind-contingency.md`), only the internals
13
+ * of this function change — consuming Metro configs stay the same.
14
+ *
15
+ * Must be the **outermost** Metro config wrapper (after any other wrappers
16
+ * like `withStorybook`).
17
+ */
18
+ export declare function withCdxMetroConfig<T extends MetroConfig>(config: T, options: CdxMetroConfigOptions): T;
19
+ //# sourceMappingURL=withCdxMetroConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withCdxMetroConfig.d.ts","sourceRoot":"","sources":["../../../src/metro/withCdxMetroConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,WAAW,EACtD,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,qBAAqB,GAC7B,CAAC,CAKH"}
@@ -0,0 +1,2 @@
1
+ export * from './primitives';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/styles/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,85 @@
1
+ export declare const COLOR_BG_PRIMARY = "bg-white";
2
+ export declare const COLOR_BG_SUBTLE = "bg-slate-50";
3
+ export declare const COLOR_BG_MUTED = "bg-slate-100";
4
+ export declare const COLOR_BG_INVERSE = "bg-slate-900";
5
+ export declare const COLOR_BORDER_DEFAULT = "border-slate-200";
6
+ export declare const COLOR_BORDER_STRONG = "border-slate-300";
7
+ export declare const COLOR_BORDER_FOCUS = "border-slate-900";
8
+ export declare const COLOR_BORDER_INVALID = "border-red-500";
9
+ export declare const COLOR_TEXT_PRIMARY = "text-slate-900";
10
+ export declare const COLOR_TEXT_SECONDARY = "text-slate-500";
11
+ export declare const COLOR_TEXT_MUTED = "text-slate-400";
12
+ export declare const COLOR_TEXT_INVERSE = "text-white";
13
+ export declare const COLOR_TEXT_PLACEHOLDER = "text-slate-400";
14
+ export declare const COLOR_TEXT_INVALID = "text-red-600";
15
+ export declare const COLOR_BRAND_DEFAULT = "bg-slate-900";
16
+ export declare const COLOR_BRAND_HOVER = "bg-slate-800";
17
+ export declare const COLOR_BRAND_ACTIVE = "bg-slate-700";
18
+ export declare const COLOR_ACCENT_DEFAULT = "bg-slate-900";
19
+ export declare const COLOR_ACCENT_BORDER = "border-slate-900";
20
+ export declare const SEMANTIC_COLORS: {
21
+ readonly action: {
22
+ readonly bg: "bg-slate-900";
23
+ readonly bgHover: "bg-slate-800";
24
+ readonly bgActive: "bg-slate-700";
25
+ readonly border: "border-slate-900";
26
+ readonly text: "text-slate-900";
27
+ readonly ring: "ring-slate-400/50";
28
+ };
29
+ readonly danger: {
30
+ readonly bg: "bg-red-600";
31
+ readonly bgHover: "bg-red-700";
32
+ readonly bgActive: "bg-red-800";
33
+ readonly border: "border-red-600";
34
+ readonly text: "text-red-600";
35
+ readonly ring: "ring-red-400/50";
36
+ };
37
+ readonly warning: {
38
+ readonly bg: "bg-amber-500";
39
+ readonly bgHover: "bg-amber-600";
40
+ readonly bgActive: "bg-amber-700";
41
+ readonly border: "border-amber-500";
42
+ readonly text: "text-amber-600";
43
+ readonly ring: "ring-amber-400/50";
44
+ };
45
+ readonly success: {
46
+ readonly bg: "bg-green-600";
47
+ readonly bgHover: "bg-green-700";
48
+ readonly bgActive: "bg-green-800";
49
+ readonly border: "border-green-600";
50
+ readonly text: "text-green-600";
51
+ readonly ring: "ring-green-400/50";
52
+ };
53
+ readonly info: {
54
+ readonly bg: "bg-sky-500";
55
+ readonly bgHover: "bg-sky-600";
56
+ readonly bgActive: "bg-sky-700";
57
+ readonly border: "border-sky-500";
58
+ readonly text: "text-sky-600";
59
+ readonly ring: "ring-sky-400/50";
60
+ };
61
+ };
62
+ export declare const FOCUS_RING = "ring-2 ring-slate-400/50 ring-offset-2";
63
+ export declare const RADIUS_SM = "rounded-lg";
64
+ export declare const RADIUS_MD = "rounded-xl";
65
+ export declare const RADIUS_FULL = "rounded-full";
66
+ export declare const SHADOW_SM = "shadow-sm";
67
+ export declare const SHADOW_MD = "shadow-md";
68
+ export declare const SIZE_SCALE: {
69
+ readonly default: {
70
+ readonly height: "h-10";
71
+ readonly px: "px-4";
72
+ readonly gap: "gap-2";
73
+ readonly text: "text-base";
74
+ };
75
+ readonly small: {
76
+ readonly height: "h-8";
77
+ readonly px: "px-3";
78
+ readonly gap: "gap-1.5";
79
+ readonly text: "text-sm";
80
+ };
81
+ };
82
+ export declare const TRANSITION_COLORS = "transition-colors duration-150";
83
+ export declare const DISABLED_OPACITY = "data-[disabled=true]:opacity-50";
84
+ export declare const DISABLED_CURSOR = "data-[disabled=true]:cursor-not-allowed data-[disabled=true]:pointer-events-none";
85
+ //# sourceMappingURL=primitives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/styles/primitives.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAC3C,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAC7C,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAG/C,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AACtD,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAGrD,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AACjD,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAC/C,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAGjD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAGjD,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AACnD,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AAItD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyClB,CAAC;AAGX,eAAO,MAAM,UAAU,2CAA2C,CAAC;AAGnE,eAAO,MAAM,SAAS,eAAe,CAAC;AACtC,eAAO,MAAM,SAAS,eAAe,CAAC;AACtC,eAAO,MAAM,WAAW,iBAAiB,CAAC;AAG1C,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,SAAS,cAAc,CAAC;AAMrC,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAGb,CAAC;AAGX,eAAO,MAAM,iBAAiB,mCAAmC,CAAC;AAGlE,eAAO,MAAM,gBAAgB,oCAAoC,CAAC;AAClE,eAAO,MAAM,eAAe,qFACwD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cdx-ui/components",
3
- "version": "0.0.1-alpha.3",
3
+ "version": "0.0.1-alpha.30",
4
4
  "main": "lib/commonjs/index.js",
5
5
  "module": "lib/module/index.js",
6
6
  "react-native": "src/index.ts",
@@ -9,13 +9,18 @@
9
9
  "exports": {
10
10
  ".": {
11
11
  "react-native": "./src/index.ts",
12
- "source": "./src/index.ts",
13
12
  "types": "./lib/typescript/index.d.ts",
14
13
  "import": "./lib/module/index.js",
15
14
  "require": "./lib/commonjs/index.js",
16
15
  "default": "./lib/module/index.js"
17
16
  },
18
- "./styles.css": "./src/styles.css"
17
+ "./styles.css": "./src/styles.css",
18
+ "./metro": {
19
+ "types": "./lib/typescript/metro/withCdxMetroConfig.d.ts",
20
+ "require": "./lib/commonjs/metro/withCdxMetroConfig.js",
21
+ "import": "./lib/module/metro/withCdxMetroConfig.js",
22
+ "default": "./lib/commonjs/metro/withCdxMetroConfig.js"
23
+ }
19
24
  },
20
25
  "files": [
21
26
  "lib",
@@ -36,13 +41,17 @@
36
41
  ]
37
42
  },
38
43
  "peerDependencies": {
39
- "react": "*",
40
- "react-native": "*",
44
+ "@shopify/flash-list": ">=2.0.0",
45
+ "react": "^18.2.0 || ^19.0.0",
46
+ "react-native": ">=0.76.0",
41
47
  "react-native-reanimated": ">=3.0.0",
42
- "react-native-web": "*",
43
- "uniwind": "*"
48
+ "react-native-safe-area-context": ">=4.0.0",
49
+ "react-native-web": ">=0.19.0"
44
50
  },
45
51
  "peerDependenciesMeta": {
52
+ "@shopify/flash-list": {
53
+ "optional": true
54
+ },
46
55
  "react-native": {
47
56
  "optional": true
48
57
  },
@@ -51,18 +60,15 @@
51
60
  },
52
61
  "react-native-web": {
53
62
  "optional": true
54
- },
55
- "react-dom": {
56
- "optional": true
57
- },
58
- "uniwind": {
59
- "optional": true
60
63
  }
61
64
  },
62
65
  "dependencies": {
66
+ "@gorhom/bottom-sheet": "^5.2.6",
63
67
  "class-variance-authority": "^0.7.1",
64
- "@cdx-ui/primitives": "0.0.1-alpha.3",
65
- "@cdx-ui/utils": "0.0.1-alpha.3"
68
+ "uniwind": "1.4.1",
69
+ "@cdx-ui/icons": "0.0.1-alpha.30",
70
+ "@cdx-ui/primitives": "0.0.1-alpha.30",
71
+ "@cdx-ui/utils": "0.0.1-alpha.30"
66
72
  },
67
73
  "devDependencies": {
68
74
  "@types/react": "*",
@@ -88,6 +94,7 @@
88
94
  },
89
95
  "scripts": {
90
96
  "build": "bob build",
91
- "lint": "eslint src/"
97
+ "lint": "eslint src/",
98
+ "test": "jest --config ../../jest.config.js"
92
99
  }
93
100
  }
@@ -0,0 +1,124 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { View } from 'react-native';
3
+ import { useDialog } from '@cdx-ui/primitives';
4
+ import { composeEventHandlers } from '@cdx-ui/utils';
5
+ import { Button, type ButtonProps } from '../Button';
6
+ import { Dialog, type DialogRootProps } from '../Dialog';
7
+
8
+ // =============================================================================
9
+ // ALERT DIALOG ROOT (Dialog with non-dismissible defaults + alertdialog role)
10
+ // =============================================================================
11
+
12
+ export interface AlertDialogRootProps extends DialogRootProps {}
13
+
14
+ const AlertDialogRoot = forwardRef<View, AlertDialogRootProps>(
15
+ (
16
+ {
17
+ closeOnBackdropPress = false,
18
+ closeOnEscKey = false,
19
+ role = 'alertdialog',
20
+ children,
21
+ ...props
22
+ },
23
+ ref,
24
+ ) => (
25
+ <Dialog
26
+ ref={ref}
27
+ closeOnBackdropPress={closeOnBackdropPress}
28
+ closeOnEscKey={closeOnEscKey}
29
+ role={role}
30
+ {...props}
31
+ >
32
+ {children}
33
+ </Dialog>
34
+ ),
35
+ );
36
+ AlertDialogRoot.displayName = 'AlertDialog';
37
+
38
+ // =============================================================================
39
+ // ALERT DIALOG ACTION
40
+ // =============================================================================
41
+
42
+ export interface AlertDialogActionProps extends Omit<ButtonProps, 'variant'> {
43
+ readonly asChild?: boolean;
44
+ }
45
+
46
+ const AlertDialogAction = forwardRef<View, AlertDialogActionProps>(
47
+ ({ asChild = false, children, color = 'action', className, ...props }, ref) => {
48
+ if (asChild && React.isValidElement(children)) {
49
+ return React.cloneElement(children as React.ReactElement<any>, {
50
+ ref,
51
+ className,
52
+ ...props,
53
+ });
54
+ }
55
+
56
+ return (
57
+ <Button ref={ref} variant="strong" color={color} className={className} {...props}>
58
+ <Button.Label>{children}</Button.Label>
59
+ </Button>
60
+ );
61
+ },
62
+ );
63
+ AlertDialogAction.displayName = 'AlertDialog.Action';
64
+
65
+ // =============================================================================
66
+ // ALERT DIALOG CANCEL
67
+ // =============================================================================
68
+
69
+ export interface AlertDialogCancelProps extends Omit<ButtonProps, 'variant'> {
70
+ readonly asChild?: boolean;
71
+ }
72
+
73
+ const AlertDialogCancel = forwardRef<View, AlertDialogCancelProps>(
74
+ ({ asChild = false, children, onPress, className, ...props }, ref) => {
75
+ const { onOpenChange } = useDialog();
76
+ const handlePress = composeEventHandlers(onPress, () => onOpenChange(false));
77
+
78
+ if (asChild && React.isValidElement(children)) {
79
+ return React.cloneElement(children as React.ReactElement<any>, {
80
+ ref,
81
+ onPress: handlePress,
82
+ className,
83
+ ...props,
84
+ });
85
+ }
86
+
87
+ return (
88
+ <Button ref={ref} variant="outline" onPress={handlePress} className={className} {...props}>
89
+ <Button.Label>{children}</Button.Label>
90
+ </Button>
91
+ );
92
+ },
93
+ );
94
+ AlertDialogCancel.displayName = 'AlertDialog.Cancel';
95
+
96
+ // =============================================================================
97
+ // COMPOUND EXPORT
98
+ // =============================================================================
99
+
100
+ type AlertDialogCompoundComponent = typeof AlertDialogRoot & {
101
+ Trigger: typeof Dialog.Trigger;
102
+ Content: typeof Dialog.Content;
103
+ Header: typeof Dialog.Header;
104
+ Title: typeof Dialog.Title;
105
+ Description: typeof Dialog.Description;
106
+ Body: typeof Dialog.Body;
107
+ Footer: typeof Dialog.Footer;
108
+ Close: typeof Dialog.Close;
109
+ Action: typeof AlertDialogAction;
110
+ Cancel: typeof AlertDialogCancel;
111
+ };
112
+
113
+ export const AlertDialog = Object.assign(AlertDialogRoot, {
114
+ Trigger: Dialog.Trigger,
115
+ Content: Dialog.Content,
116
+ Header: Dialog.Header,
117
+ Title: Dialog.Title,
118
+ Description: Dialog.Description,
119
+ Body: Dialog.Body,
120
+ Footer: Dialog.Footer,
121
+ Close: Dialog.Close,
122
+ Action: AlertDialogAction,
123
+ Cancel: AlertDialogCancel,
124
+ }) as AlertDialogCompoundComponent;
@@ -0,0 +1,172 @@
1
+ import { forwardRef, type ReactNode } from 'react';
2
+ import { Image, Text, View, type ImageProps, type TextProps, type ViewProps } from 'react-native';
3
+ import { createAvatar, type IAvatarImageProps, type IAvatarProps } from '@cdx-ui/primitives';
4
+ import { cn, useStyleContext, withStyleContext } from '@cdx-ui/utils';
5
+ import { Icon as IconComponent, type IconProps } from '../Icon';
6
+ import {
7
+ type AvatarVariantProps,
8
+ avatarBadgeVariants,
9
+ avatarIconVariants,
10
+ avatarTextVariants,
11
+ avatarImageVariants,
12
+ avatarRootVariants,
13
+ } from './styles';
14
+
15
+ const SCOPE = 'AVATAR';
16
+
17
+ const Root = withStyleContext(View, SCOPE);
18
+
19
+ const useAvatarStyleContext = () => useStyleContext(SCOPE) as AvatarVariantProps;
20
+
21
+ const AvatarPrimitive = createAvatar({
22
+ Root,
23
+ Image,
24
+ Text,
25
+ Icon: IconComponent,
26
+ Badge: View,
27
+ });
28
+
29
+ // =============================================================================
30
+ // AVATAR ROOT
31
+ // =============================================================================
32
+
33
+ export interface AvatarProps extends ViewProps, IAvatarProps, AvatarVariantProps {
34
+ className?: string;
35
+ children?: ReactNode;
36
+ }
37
+
38
+ const AvatarRoot = forwardRef<View, AvatarProps>(
39
+ ({ size = 'lg', className, children, style, ...props }, ref) => {
40
+ const computedClassName = cn(avatarRootVariants({ size }), className);
41
+
42
+ return (
43
+ <AvatarPrimitive
44
+ ref={ref as never}
45
+ className={computedClassName}
46
+ style={style}
47
+ context={{ size }}
48
+ {...props}
49
+ >
50
+ {children}
51
+ </AvatarPrimitive>
52
+ );
53
+ },
54
+ );
55
+
56
+ AvatarRoot.displayName = 'Avatar';
57
+
58
+ // =============================================================================
59
+ // AVATAR IMAGE
60
+ // =============================================================================
61
+
62
+ export interface AvatarImageProps extends Omit<ImageProps, 'source'>, IAvatarImageProps {
63
+ className?: string;
64
+ }
65
+
66
+ const AvatarImage = forwardRef<Image, AvatarImageProps>(({ className, style, ...props }, ref) => {
67
+ const computedClassName = cn(avatarImageVariants(), className);
68
+
69
+ return (
70
+ <AvatarPrimitive.Image
71
+ ref={ref as never}
72
+ className={computedClassName}
73
+ style={style}
74
+ {...props}
75
+ />
76
+ );
77
+ });
78
+
79
+ AvatarImage.displayName = 'Avatar.Image';
80
+
81
+ // =============================================================================
82
+ // AVATAR TEXT
83
+ // =============================================================================
84
+
85
+ export interface AvatarTextProps extends TextProps {
86
+ className?: string;
87
+ children?: ReactNode;
88
+ }
89
+
90
+ const AvatarText = forwardRef<Text, AvatarTextProps>(
91
+ ({ className, children, style, ...props }, ref) => {
92
+ const { size } = useAvatarStyleContext();
93
+ const computedClassName = cn(avatarTextVariants({ size }), className);
94
+
95
+ return (
96
+ <AvatarPrimitive.Text
97
+ ref={ref as never}
98
+ className={computedClassName}
99
+ style={style}
100
+ {...props}
101
+ >
102
+ {children}
103
+ </AvatarPrimitive.Text>
104
+ );
105
+ },
106
+ );
107
+
108
+ AvatarText.displayName = 'Avatar.Text';
109
+
110
+ // =============================================================================
111
+ // AVATAR ICON
112
+ // =============================================================================
113
+
114
+ export interface AvatarIconProps extends Omit<IconProps, 'children'> {
115
+ className?: string;
116
+ }
117
+
118
+ const AvatarIcon = ({ className, style, ...props }: AvatarIconProps) => {
119
+ const { size } = useAvatarStyleContext();
120
+ const computedClassName = cn(avatarIconVariants({ size }), className);
121
+
122
+ return <AvatarPrimitive.Icon className={computedClassName} style={style} {...props} />;
123
+ };
124
+
125
+ AvatarIcon.displayName = 'Avatar.Icon';
126
+
127
+ // =============================================================================
128
+ // AVATAR BADGE
129
+ // =============================================================================
130
+
131
+ export interface AvatarBadgeProps extends ViewProps {
132
+ className?: string;
133
+ children?: ReactNode;
134
+ }
135
+
136
+ const AvatarBadge = forwardRef<View, AvatarBadgeProps>(
137
+ ({ className, children, style, ...props }, ref) => {
138
+ const { size } = useAvatarStyleContext();
139
+ const computedClassName = cn(avatarBadgeVariants({ size }), className);
140
+
141
+ return (
142
+ <AvatarPrimitive.Badge
143
+ ref={ref as never}
144
+ className={computedClassName}
145
+ style={style}
146
+ {...props}
147
+ >
148
+ {children}
149
+ </AvatarPrimitive.Badge>
150
+ );
151
+ },
152
+ );
153
+
154
+ AvatarBadge.displayName = 'Avatar.Badge';
155
+
156
+ // =============================================================================
157
+ // COMPOUND COMPONENT
158
+ // =============================================================================
159
+
160
+ type AvatarCompoundComponent = typeof AvatarRoot & {
161
+ Image: typeof AvatarImage;
162
+ Text: typeof AvatarText;
163
+ Icon: typeof AvatarIcon;
164
+ Badge: typeof AvatarBadge;
165
+ };
166
+
167
+ export const Avatar = Object.assign(AvatarRoot, {
168
+ Image: AvatarImage,
169
+ Text: AvatarText,
170
+ Icon: AvatarIcon,
171
+ Badge: AvatarBadge,
172
+ }) as AvatarCompoundComponent;
@@ -0,0 +1,83 @@
1
+ import { cva, type VariantProps } from 'class-variance-authority';
2
+ import { COLOR_BG_MUTED, COLOR_TEXT_SECONDARY, RADIUS_FULL } from '../../styles/primitives';
3
+
4
+ // ── Root ─────────────────────────────────────────────────
5
+
6
+ export const avatarRootVariants = cva(
7
+ [RADIUS_FULL, 'relative items-center justify-center', COLOR_BG_MUTED],
8
+ {
9
+ variants: {
10
+ size: {
11
+ sm: 'w-8 h-8',
12
+ md: 'w-10 h-10',
13
+ lg: 'w-12 h-12',
14
+ xl: 'w-16 h-16',
15
+ '2xl': 'w-20 h-20',
16
+ },
17
+ },
18
+ defaultVariants: {
19
+ size: 'lg',
20
+ },
21
+ },
22
+ );
23
+
24
+ // ── Image ────────────────────────────────────────────────
25
+
26
+ export const avatarImageVariants = cva([
27
+ 'absolute top-0 left-0 w-full h-full',
28
+ RADIUS_FULL,
29
+ 'overflow-hidden',
30
+ ]);
31
+
32
+ // ── Text ─────────────────────────────────────────────────
33
+
34
+ export const avatarTextVariants = cva([COLOR_TEXT_SECONDARY, 'font-semibold'], {
35
+ variants: {
36
+ size: {
37
+ sm: 'text-xs',
38
+ md: 'text-sm',
39
+ lg: 'text-base',
40
+ xl: 'text-xl',
41
+ '2xl': 'text-2xl',
42
+ },
43
+ },
44
+ defaultVariants: {
45
+ size: 'lg',
46
+ },
47
+ });
48
+
49
+ // ── Icon ─────────────────────────────────────────────────
50
+
51
+ export const avatarIconVariants = cva([COLOR_TEXT_SECONDARY], {
52
+ variants: {
53
+ size: {
54
+ sm: 'size-4',
55
+ md: 'size-5',
56
+ lg: 'size-6',
57
+ xl: 'size-8',
58
+ '2xl': 'size-10',
59
+ },
60
+ },
61
+ defaultVariants: {
62
+ size: 'lg',
63
+ },
64
+ });
65
+
66
+ // ── Badge ────────────────────────────────────────────────
67
+
68
+ export const avatarBadgeVariants = cva(['absolute border-2 border-white', RADIUS_FULL], {
69
+ variants: {
70
+ size: {
71
+ sm: 'w-2.5 h-2.5 bottom-0 right-0',
72
+ md: 'w-3 h-3 bottom-0 right-0',
73
+ lg: 'w-3.5 h-3.5 bottom-0 right-0',
74
+ xl: 'w-4 h-4 bottom-0.5 right-0.5',
75
+ '2xl': 'w-5 h-5 bottom-0.5 right-0.5',
76
+ },
77
+ },
78
+ defaultVariants: {
79
+ size: 'lg',
80
+ },
81
+ });
82
+
83
+ export type AvatarVariantProps = VariantProps<typeof avatarRootVariants>;