@cdx-ui/components 0.0.1-beta.7 → 0.0.1-beta.71

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 (692) hide show
  1. package/README.md +37 -19
  2. package/lib/commonjs/components/AlertDialog/index.js +17 -14
  3. package/lib/commonjs/components/AlertDialog/index.js.map +1 -1
  4. package/lib/commonjs/components/Avatar/index.js +126 -26
  5. package/lib/commonjs/components/Avatar/index.js.map +1 -1
  6. package/lib/commonjs/components/Avatar/styles.js +36 -29
  7. package/lib/commonjs/components/Avatar/styles.js.map +1 -1
  8. package/lib/commonjs/components/Button/index.js +143 -29
  9. package/lib/commonjs/components/Button/index.js.map +1 -1
  10. package/lib/commonjs/components/Button/styles.js +94 -29
  11. package/lib/commonjs/components/Button/styles.js.map +1 -1
  12. package/lib/commonjs/components/CLAUDE.md +194 -0
  13. package/lib/commonjs/components/Card/index.js +22 -4
  14. package/lib/commonjs/components/Card/index.js.map +1 -1
  15. package/lib/commonjs/components/Card/styles.js +27 -4
  16. package/lib/commonjs/components/Card/styles.js.map +1 -1
  17. package/lib/commonjs/components/Checkbox/index.js +71 -48
  18. package/lib/commonjs/components/Checkbox/index.js.map +1 -1
  19. package/lib/commonjs/components/Checkbox/styles.js +41 -47
  20. package/lib/commonjs/components/Checkbox/styles.js.map +1 -1
  21. package/lib/commonjs/components/Chip/index.js +94 -17
  22. package/lib/commonjs/components/Chip/index.js.map +1 -1
  23. package/lib/commonjs/components/Chip/styles.js +178 -21
  24. package/lib/commonjs/components/Chip/styles.js.map +1 -1
  25. package/lib/commonjs/components/Dialog/index.js +140 -65
  26. package/lib/commonjs/components/Dialog/index.js.map +1 -1
  27. package/lib/commonjs/components/Dialog/styles.js +60 -14
  28. package/lib/commonjs/components/Dialog/styles.js.map +1 -1
  29. package/lib/commonjs/components/Field/index.js +77 -27
  30. package/lib/commonjs/components/Field/index.js.map +1 -1
  31. package/lib/commonjs/components/Field/styles.js +4 -4
  32. package/lib/commonjs/components/Field/styles.js.map +1 -1
  33. package/lib/commonjs/components/Form/index.js +5 -12
  34. package/lib/commonjs/components/Form/index.js.map +1 -1
  35. package/lib/commonjs/components/Heading/styles.js +1 -1
  36. package/lib/commonjs/components/Heading/styles.js.map +1 -1
  37. package/lib/commonjs/components/Icon/index.js +3 -4
  38. package/lib/commonjs/components/Icon/index.js.map +1 -1
  39. package/lib/commonjs/components/IconButton/index.js +11 -34
  40. package/lib/commonjs/components/IconButton/index.js.map +1 -1
  41. package/lib/commonjs/components/IconButton/styles.js +135 -10
  42. package/lib/commonjs/components/IconButton/styles.js.map +1 -1
  43. package/lib/commonjs/components/Input/index.js +50 -20
  44. package/lib/commonjs/components/Input/index.js.map +1 -1
  45. package/lib/commonjs/components/Input/styles.js +7 -6
  46. package/lib/commonjs/components/Input/styles.js.map +1 -1
  47. package/lib/commonjs/components/Link/index.js +35 -9
  48. package/lib/commonjs/components/Link/index.js.map +1 -1
  49. package/lib/commonjs/components/Link/styles.js +56 -6
  50. package/lib/commonjs/components/Link/styles.js.map +1 -1
  51. package/lib/commonjs/components/ListItem/index.js +132 -79
  52. package/lib/commonjs/components/ListItem/index.js.map +1 -1
  53. package/lib/commonjs/components/ListItem/styles.js +29 -57
  54. package/lib/commonjs/components/ListItem/styles.js.map +1 -1
  55. package/lib/commonjs/components/OtpInput/index.js +94 -28
  56. package/lib/commonjs/components/OtpInput/index.js.map +1 -1
  57. package/lib/commonjs/components/ProgressBar/index.js +8 -13
  58. package/lib/commonjs/components/ProgressBar/index.js.map +1 -1
  59. package/lib/commonjs/components/ProgressSegmented/index.js +24 -10
  60. package/lib/commonjs/components/ProgressSegmented/index.js.map +1 -1
  61. package/lib/commonjs/components/QuickActionButton/index.js +133 -0
  62. package/lib/commonjs/components/QuickActionButton/index.js.map +1 -0
  63. package/lib/commonjs/components/QuickActionButton/styles.js +17 -0
  64. package/lib/commonjs/components/QuickActionButton/styles.js.map +1 -0
  65. package/lib/commonjs/components/Radio/index.js +165 -0
  66. package/lib/commonjs/components/Radio/index.js.map +1 -0
  67. package/lib/commonjs/components/Radio/styles.js +31 -0
  68. package/lib/commonjs/components/Radio/styles.js.map +1 -0
  69. package/lib/commonjs/components/ScopedTheme/index.js +24 -0
  70. package/lib/commonjs/components/ScopedTheme/index.js.map +1 -0
  71. package/lib/commonjs/components/Select/index.js +111 -39
  72. package/lib/commonjs/components/Select/index.js.map +1 -1
  73. package/lib/commonjs/components/Select/styles.js +17 -20
  74. package/lib/commonjs/components/Select/styles.js.map +1 -1
  75. package/lib/commonjs/components/Skeleton/index.js +37 -0
  76. package/lib/commonjs/components/Skeleton/index.js.map +1 -0
  77. package/lib/commonjs/components/Skeleton/styles.js +9 -0
  78. package/lib/commonjs/components/Skeleton/styles.js.map +1 -0
  79. package/lib/commonjs/components/Switch/BaseSwitch.js +23 -13
  80. package/lib/commonjs/components/Switch/BaseSwitch.js.map +1 -1
  81. package/lib/commonjs/components/Switch/BaseSwitch.web.js +25 -21
  82. package/lib/commonjs/components/Switch/BaseSwitch.web.js.map +1 -1
  83. package/lib/commonjs/components/Switch/index.js +34 -3
  84. package/lib/commonjs/components/Switch/index.js.map +1 -1
  85. package/lib/commonjs/components/Text/styles.js +2 -2
  86. package/lib/commonjs/components/Text/styles.js.map +1 -1
  87. package/lib/commonjs/components/Tile/index.js +324 -0
  88. package/lib/commonjs/components/Tile/index.js.map +1 -0
  89. package/lib/commonjs/components/Tile/styles.js +52 -0
  90. package/lib/commonjs/components/Tile/styles.js.map +1 -0
  91. package/lib/commonjs/components/VirtualizedList/index.js.map +1 -1
  92. package/lib/commonjs/components/index.js +60 -0
  93. package/lib/commonjs/components/index.js.map +1 -1
  94. package/lib/commonjs/figma/AlertDialog.Description.figma.js +20 -0
  95. package/lib/commonjs/figma/AlertDialog.Description.figma.js.map +1 -0
  96. package/lib/commonjs/figma/AlertDialog.Footer.figma.js +41 -0
  97. package/lib/commonjs/figma/AlertDialog.Footer.figma.js.map +1 -0
  98. package/lib/commonjs/figma/AlertDialog.Header.figma.js +28 -0
  99. package/lib/commonjs/figma/AlertDialog.Header.figma.js.map +1 -0
  100. package/lib/commonjs/figma/AlertDialog.Text.figma.js +20 -0
  101. package/lib/commonjs/figma/AlertDialog.Text.figma.js.map +1 -0
  102. package/lib/commonjs/figma/AlertDialog.Title.figma.js +27 -0
  103. package/lib/commonjs/figma/AlertDialog.Title.figma.js.map +1 -0
  104. package/lib/commonjs/figma/AlertDialog.figma.js +43 -0
  105. package/lib/commonjs/figma/AlertDialog.figma.js.map +1 -0
  106. package/lib/commonjs/figma/Avatar.figma.js +57 -0
  107. package/lib/commonjs/figma/Avatar.figma.js.map +1 -0
  108. package/lib/commonjs/figma/Button.figma.js +4 -7
  109. package/lib/commonjs/figma/Button.figma.js.map +1 -1
  110. package/lib/commonjs/figma/CLAUDE.md +30 -0
  111. package/lib/commonjs/figma/Card.Header.figma.js +28 -0
  112. package/lib/commonjs/figma/Card.Header.figma.js.map +1 -0
  113. package/lib/commonjs/figma/Card.figma.js +42 -0
  114. package/lib/commonjs/figma/Card.figma.js.map +1 -0
  115. package/lib/commonjs/figma/Checkbox.figma.js +55 -0
  116. package/lib/commonjs/figma/Checkbox.figma.js.map +1 -0
  117. package/lib/commonjs/figma/Chip.figma.js +68 -0
  118. package/lib/commonjs/figma/Chip.figma.js.map +1 -0
  119. package/lib/commonjs/figma/Dialog.Description.figma.js +20 -0
  120. package/lib/commonjs/figma/Dialog.Description.figma.js.map +1 -0
  121. package/lib/commonjs/figma/Dialog.Footer.figma.js +30 -0
  122. package/lib/commonjs/figma/Dialog.Footer.figma.js.map +1 -0
  123. package/lib/commonjs/figma/Dialog.Header.figma.js +29 -0
  124. package/lib/commonjs/figma/Dialog.Header.figma.js.map +1 -0
  125. package/lib/commonjs/figma/Dialog.Text.figma.js +20 -0
  126. package/lib/commonjs/figma/Dialog.Text.figma.js.map +1 -0
  127. package/lib/commonjs/figma/Dialog.Title.figma.js +27 -0
  128. package/lib/commonjs/figma/Dialog.Title.figma.js.map +1 -0
  129. package/lib/commonjs/figma/Dialog.figma.js +51 -0
  130. package/lib/commonjs/figma/Dialog.figma.js.map +1 -0
  131. package/lib/commonjs/figma/Field.Input.figma.js +57 -0
  132. package/lib/commonjs/figma/Field.Input.figma.js.map +1 -0
  133. package/lib/commonjs/figma/Field.Select.figma.js +57 -0
  134. package/lib/commonjs/figma/Field.Select.figma.js.map +1 -0
  135. package/lib/commonjs/figma/Heading.figma.js +30 -0
  136. package/lib/commonjs/figma/Heading.figma.js.map +1 -0
  137. package/lib/commonjs/figma/Icon.figma.js +20 -0
  138. package/lib/commonjs/figma/Icon.figma.js.map +1 -0
  139. package/lib/commonjs/figma/IconButton.figma.js +47 -0
  140. package/lib/commonjs/figma/IconButton.figma.js.map +1 -0
  141. package/lib/commonjs/figma/Input.figma.js +52 -0
  142. package/lib/commonjs/figma/Input.figma.js.map +1 -0
  143. package/lib/commonjs/figma/Link.figma.js +30 -0
  144. package/lib/commonjs/figma/Link.figma.js.map +1 -0
  145. package/lib/commonjs/figma/ListItem.Description.figma.js +23 -0
  146. package/lib/commonjs/figma/ListItem.Description.figma.js.map +1 -0
  147. package/lib/commonjs/figma/ListItem.LeadingSlot.figma.js +24 -0
  148. package/lib/commonjs/figma/ListItem.LeadingSlot.figma.js.map +1 -0
  149. package/lib/commonjs/figma/ListItem.Meta.figma.js +23 -0
  150. package/lib/commonjs/figma/ListItem.Meta.figma.js.map +1 -0
  151. package/lib/commonjs/figma/ListItem.SectionHeader.figma.js +24 -0
  152. package/lib/commonjs/figma/ListItem.SectionHeader.figma.js.map +1 -0
  153. package/lib/commonjs/figma/ListItem.Title.figma.js +23 -0
  154. package/lib/commonjs/figma/ListItem.Title.figma.js.map +1 -0
  155. package/lib/commonjs/figma/ListItem.TrailingSlot.figma.js +24 -0
  156. package/lib/commonjs/figma/ListItem.TrailingSlot.figma.js.map +1 -0
  157. package/lib/commonjs/figma/ListItem.figma.js +50 -0
  158. package/lib/commonjs/figma/ListItem.figma.js.map +1 -0
  159. package/lib/commonjs/figma/ProgressSegmented.figma.js +39 -0
  160. package/lib/commonjs/figma/ProgressSegmented.figma.js.map +1 -0
  161. package/lib/commonjs/figma/QuickActionButton.figma.js +38 -0
  162. package/lib/commonjs/figma/QuickActionButton.figma.js.map +1 -0
  163. package/lib/commonjs/figma/Radio.figma.js +40 -0
  164. package/lib/commonjs/figma/Radio.figma.js.map +1 -0
  165. package/lib/commonjs/figma/Select.figma.js +53 -0
  166. package/lib/commonjs/figma/Select.figma.js.map +1 -0
  167. package/lib/commonjs/figma/Text.figma.js +32 -0
  168. package/lib/commonjs/figma/Text.figma.js.map +1 -0
  169. package/lib/commonjs/figma/icons.figma.batch.js +27 -0
  170. package/lib/commonjs/figma/icons.figma.batch.js.map +1 -0
  171. package/lib/commonjs/figma/icons.figma.batch.json +17705 -0
  172. package/lib/commonjs/hooks/index.js +19 -0
  173. package/lib/commonjs/hooks/index.js.map +1 -0
  174. package/lib/commonjs/hooks/useForgeBottomTabScreenOptions.js +246 -0
  175. package/lib/commonjs/hooks/useForgeBottomTabScreenOptions.js.map +1 -0
  176. package/lib/commonjs/index.js +24 -0
  177. package/lib/commonjs/index.js.map +1 -1
  178. package/lib/commonjs/metro/withCdxMetroConfig.js +7 -18
  179. package/lib/commonjs/metro/withCdxMetroConfig.js.map +1 -1
  180. package/lib/commonjs/metro/withForgeMetroConfig.js +24 -0
  181. package/lib/commonjs/metro/withForgeMetroConfig.js.map +1 -0
  182. package/lib/commonjs/navigation/forgeTabIcon.js +43 -0
  183. package/lib/commonjs/navigation/forgeTabIcon.js.map +1 -0
  184. package/lib/commonjs/navigation/forgeTabIcon.native.js +35 -0
  185. package/lib/commonjs/navigation/forgeTabIcon.native.js.map +1 -0
  186. package/lib/commonjs/navigation/index.js +13 -0
  187. package/lib/commonjs/navigation/index.js.map +1 -0
  188. package/lib/commonjs/navigation/types.js +38 -0
  189. package/lib/commonjs/navigation/types.js.map +1 -0
  190. package/lib/commonjs/styles/primitives.js +43 -6
  191. package/lib/commonjs/styles/primitives.js.map +1 -1
  192. package/lib/commonjs/utils/positionToDataIcon.js +41 -0
  193. package/lib/commonjs/utils/positionToDataIcon.js.map +1 -0
  194. package/lib/module/components/AlertDialog/index.js +18 -15
  195. package/lib/module/components/AlertDialog/index.js.map +1 -1
  196. package/lib/module/components/Avatar/index.js +129 -29
  197. package/lib/module/components/Avatar/index.js.map +1 -1
  198. package/lib/module/components/Avatar/styles.js +36 -29
  199. package/lib/module/components/Avatar/styles.js.map +1 -1
  200. package/lib/module/components/Button/index.js +146 -33
  201. package/lib/module/components/Button/index.js.map +1 -1
  202. package/lib/module/components/Button/styles.js +93 -28
  203. package/lib/module/components/Button/styles.js.map +1 -1
  204. package/lib/module/components/CLAUDE.md +194 -0
  205. package/lib/module/components/Card/index.js +23 -4
  206. package/lib/module/components/Card/index.js.map +1 -1
  207. package/lib/module/components/Card/styles.js +27 -4
  208. package/lib/module/components/Card/styles.js.map +1 -1
  209. package/lib/module/components/Checkbox/index.js +75 -52
  210. package/lib/module/components/Checkbox/index.js.map +1 -1
  211. package/lib/module/components/Checkbox/styles.js +43 -48
  212. package/lib/module/components/Checkbox/styles.js.map +1 -1
  213. package/lib/module/components/Chip/index.js +98 -21
  214. package/lib/module/components/Chip/index.js.map +1 -1
  215. package/lib/module/components/Chip/styles.js +177 -20
  216. package/lib/module/components/Chip/styles.js.map +1 -1
  217. package/lib/module/components/Dialog/index.js +147 -72
  218. package/lib/module/components/Dialog/index.js.map +1 -1
  219. package/lib/module/components/Dialog/styles.js +60 -14
  220. package/lib/module/components/Dialog/styles.js.map +1 -1
  221. package/lib/module/components/Field/index.js +81 -32
  222. package/lib/module/components/Field/index.js.map +1 -1
  223. package/lib/module/components/Field/styles.js +4 -4
  224. package/lib/module/components/Field/styles.js.map +1 -1
  225. package/lib/module/components/Form/index.js +7 -14
  226. package/lib/module/components/Form/index.js.map +1 -1
  227. package/lib/module/components/Heading/styles.js +1 -1
  228. package/lib/module/components/Heading/styles.js.map +1 -1
  229. package/lib/module/components/Icon/index.js +3 -4
  230. package/lib/module/components/Icon/index.js.map +1 -1
  231. package/lib/module/components/IconButton/index.js +12 -35
  232. package/lib/module/components/IconButton/index.js.map +1 -1
  233. package/lib/module/components/IconButton/styles.js +135 -10
  234. package/lib/module/components/IconButton/styles.js.map +1 -1
  235. package/lib/module/components/Input/index.js +53 -23
  236. package/lib/module/components/Input/index.js.map +1 -1
  237. package/lib/module/components/Input/styles.js +7 -6
  238. package/lib/module/components/Input/styles.js.map +1 -1
  239. package/lib/module/components/Link/index.js +38 -11
  240. package/lib/module/components/Link/index.js.map +1 -1
  241. package/lib/module/components/Link/styles.js +55 -6
  242. package/lib/module/components/Link/styles.js.map +1 -1
  243. package/lib/module/components/ListItem/index.js +137 -84
  244. package/lib/module/components/ListItem/index.js.map +1 -1
  245. package/lib/module/components/ListItem/styles.js +30 -58
  246. package/lib/module/components/ListItem/styles.js.map +1 -1
  247. package/lib/module/components/OtpInput/index.js +94 -28
  248. package/lib/module/components/OtpInput/index.js.map +1 -1
  249. package/lib/module/components/ProgressBar/index.js +9 -14
  250. package/lib/module/components/ProgressBar/index.js.map +1 -1
  251. package/lib/module/components/ProgressSegmented/index.js +25 -11
  252. package/lib/module/components/ProgressSegmented/index.js.map +1 -1
  253. package/lib/module/components/QuickActionButton/index.js +129 -0
  254. package/lib/module/components/QuickActionButton/index.js.map +1 -0
  255. package/lib/module/components/QuickActionButton/styles.js +13 -0
  256. package/lib/module/components/QuickActionButton/styles.js.map +1 -0
  257. package/lib/module/components/Radio/index.js +161 -0
  258. package/lib/module/components/Radio/index.js.map +1 -0
  259. package/lib/module/components/Radio/styles.js +27 -0
  260. package/lib/module/components/Radio/styles.js.map +1 -0
  261. package/lib/module/components/ScopedTheme/index.js +19 -0
  262. package/lib/module/components/ScopedTheme/index.js.map +1 -0
  263. package/lib/module/components/Select/index.js +117 -45
  264. package/lib/module/components/Select/index.js.map +1 -1
  265. package/lib/module/components/Select/styles.js +18 -21
  266. package/lib/module/components/Select/styles.js.map +1 -1
  267. package/lib/module/components/Skeleton/index.js +32 -0
  268. package/lib/module/components/Skeleton/index.js.map +1 -0
  269. package/lib/module/components/Skeleton/styles.js +5 -0
  270. package/lib/module/components/Skeleton/styles.js.map +1 -0
  271. package/lib/module/components/Switch/BaseSwitch.js +24 -14
  272. package/lib/module/components/Switch/BaseSwitch.js.map +1 -1
  273. package/lib/module/components/Switch/BaseSwitch.web.js +26 -22
  274. package/lib/module/components/Switch/BaseSwitch.web.js.map +1 -1
  275. package/lib/module/components/Switch/index.js +35 -4
  276. package/lib/module/components/Switch/index.js.map +1 -1
  277. package/lib/module/components/Text/styles.js +2 -2
  278. package/lib/module/components/Text/styles.js.map +1 -1
  279. package/lib/module/components/Tile/index.js +315 -0
  280. package/lib/module/components/Tile/index.js.map +1 -0
  281. package/lib/module/components/Tile/styles.js +48 -0
  282. package/lib/module/components/Tile/styles.js.map +1 -0
  283. package/lib/module/components/VirtualizedList/index.js.map +1 -1
  284. package/lib/module/components/index.js +5 -0
  285. package/lib/module/components/index.js.map +1 -1
  286. package/lib/module/figma/AlertDialog.Description.figma.js +14 -0
  287. package/lib/module/figma/AlertDialog.Description.figma.js.map +1 -0
  288. package/lib/module/figma/AlertDialog.Footer.figma.js +35 -0
  289. package/lib/module/figma/AlertDialog.Footer.figma.js.map +1 -0
  290. package/lib/module/figma/AlertDialog.Header.figma.js +22 -0
  291. package/lib/module/figma/AlertDialog.Header.figma.js.map +1 -0
  292. package/lib/module/figma/AlertDialog.Text.figma.js +14 -0
  293. package/lib/module/figma/AlertDialog.Text.figma.js.map +1 -0
  294. package/lib/module/figma/AlertDialog.Title.figma.js +21 -0
  295. package/lib/module/figma/AlertDialog.Title.figma.js.map +1 -0
  296. package/lib/module/figma/AlertDialog.figma.js +37 -0
  297. package/lib/module/figma/AlertDialog.figma.js.map +1 -0
  298. package/lib/module/figma/Avatar.figma.js +51 -0
  299. package/lib/module/figma/Avatar.figma.js.map +1 -0
  300. package/lib/module/figma/Button.figma.js +4 -7
  301. package/lib/module/figma/Button.figma.js.map +1 -1
  302. package/lib/module/figma/CLAUDE.md +30 -0
  303. package/lib/module/figma/Card.Header.figma.js +22 -0
  304. package/lib/module/figma/Card.Header.figma.js.map +1 -0
  305. package/lib/module/figma/Card.figma.js +36 -0
  306. package/lib/module/figma/Card.figma.js.map +1 -0
  307. package/lib/module/figma/Checkbox.figma.js +49 -0
  308. package/lib/module/figma/Checkbox.figma.js.map +1 -0
  309. package/lib/module/figma/Chip.figma.js +62 -0
  310. package/lib/module/figma/Chip.figma.js.map +1 -0
  311. package/lib/module/figma/Dialog.Description.figma.js +14 -0
  312. package/lib/module/figma/Dialog.Description.figma.js.map +1 -0
  313. package/lib/module/figma/Dialog.Footer.figma.js +24 -0
  314. package/lib/module/figma/Dialog.Footer.figma.js.map +1 -0
  315. package/lib/module/figma/Dialog.Header.figma.js +23 -0
  316. package/lib/module/figma/Dialog.Header.figma.js.map +1 -0
  317. package/lib/module/figma/Dialog.Text.figma.js +14 -0
  318. package/lib/module/figma/Dialog.Text.figma.js.map +1 -0
  319. package/lib/module/figma/Dialog.Title.figma.js +21 -0
  320. package/lib/module/figma/Dialog.Title.figma.js.map +1 -0
  321. package/lib/module/figma/Dialog.figma.js +45 -0
  322. package/lib/module/figma/Dialog.figma.js.map +1 -0
  323. package/lib/module/figma/Field.Input.figma.js +51 -0
  324. package/lib/module/figma/Field.Input.figma.js.map +1 -0
  325. package/lib/module/figma/Field.Select.figma.js +51 -0
  326. package/lib/module/figma/Field.Select.figma.js.map +1 -0
  327. package/lib/module/figma/Heading.figma.js +24 -0
  328. package/lib/module/figma/Heading.figma.js.map +1 -0
  329. package/lib/module/figma/Icon.figma.js +14 -0
  330. package/lib/module/figma/Icon.figma.js.map +1 -0
  331. package/lib/module/figma/IconButton.figma.js +41 -0
  332. package/lib/module/figma/IconButton.figma.js.map +1 -0
  333. package/lib/module/figma/Input.figma.js +46 -0
  334. package/lib/module/figma/Input.figma.js.map +1 -0
  335. package/lib/module/figma/Link.figma.js +24 -0
  336. package/lib/module/figma/Link.figma.js.map +1 -0
  337. package/lib/module/figma/ListItem.Description.figma.js +17 -0
  338. package/lib/module/figma/ListItem.Description.figma.js.map +1 -0
  339. package/lib/module/figma/ListItem.LeadingSlot.figma.js +18 -0
  340. package/lib/module/figma/ListItem.LeadingSlot.figma.js.map +1 -0
  341. package/lib/module/figma/ListItem.Meta.figma.js +17 -0
  342. package/lib/module/figma/ListItem.Meta.figma.js.map +1 -0
  343. package/lib/module/figma/ListItem.SectionHeader.figma.js +18 -0
  344. package/lib/module/figma/ListItem.SectionHeader.figma.js.map +1 -0
  345. package/lib/module/figma/ListItem.Title.figma.js +17 -0
  346. package/lib/module/figma/ListItem.Title.figma.js.map +1 -0
  347. package/lib/module/figma/ListItem.TrailingSlot.figma.js +18 -0
  348. package/lib/module/figma/ListItem.TrailingSlot.figma.js.map +1 -0
  349. package/lib/module/figma/ListItem.figma.js +44 -0
  350. package/lib/module/figma/ListItem.figma.js.map +1 -0
  351. package/lib/module/figma/ProgressSegmented.figma.js +33 -0
  352. package/lib/module/figma/ProgressSegmented.figma.js.map +1 -0
  353. package/lib/module/figma/QuickActionButton.figma.js +32 -0
  354. package/lib/module/figma/QuickActionButton.figma.js.map +1 -0
  355. package/lib/module/figma/Radio.figma.js +34 -0
  356. package/lib/module/figma/Radio.figma.js.map +1 -0
  357. package/lib/module/figma/Select.figma.js +47 -0
  358. package/lib/module/figma/Select.figma.js.map +1 -0
  359. package/lib/module/figma/Text.figma.js +26 -0
  360. package/lib/module/figma/Text.figma.js.map +1 -0
  361. package/lib/module/figma/icons.figma.batch.js +22 -0
  362. package/lib/module/figma/icons.figma.batch.js.map +1 -0
  363. package/lib/module/figma/icons.figma.batch.json +17705 -0
  364. package/lib/module/hooks/index.js +4 -0
  365. package/lib/module/hooks/index.js.map +1 -0
  366. package/lib/module/hooks/useForgeBottomTabScreenOptions.js +242 -0
  367. package/lib/module/hooks/useForgeBottomTabScreenOptions.js.map +1 -0
  368. package/lib/module/index.js +2 -0
  369. package/lib/module/index.js.map +1 -1
  370. package/lib/module/metro/withCdxMetroConfig.js +3 -17
  371. package/lib/module/metro/withCdxMetroConfig.js.map +1 -1
  372. package/lib/module/metro/withForgeMetroConfig.js +20 -0
  373. package/lib/module/metro/withForgeMetroConfig.js.map +1 -0
  374. package/lib/module/navigation/forgeTabIcon.js +39 -0
  375. package/lib/module/navigation/forgeTabIcon.js.map +1 -0
  376. package/lib/module/navigation/forgeTabIcon.native.js +31 -0
  377. package/lib/module/navigation/forgeTabIcon.native.js.map +1 -0
  378. package/lib/module/navigation/index.js +4 -0
  379. package/lib/module/navigation/index.js.map +1 -0
  380. package/lib/module/navigation/types.js +36 -0
  381. package/lib/module/navigation/types.js.map +1 -0
  382. package/lib/module/styles/primitives.js +43 -6
  383. package/lib/module/styles/primitives.js.map +1 -1
  384. package/lib/module/utils/positionToDataIcon.js +38 -0
  385. package/lib/module/utils/positionToDataIcon.js.map +1 -0
  386. package/lib/typescript/components/AlertDialog/index.d.ts +3 -2
  387. package/lib/typescript/components/AlertDialog/index.d.ts.map +1 -1
  388. package/lib/typescript/components/Avatar/index.d.ts +6 -2
  389. package/lib/typescript/components/Avatar/index.d.ts.map +1 -1
  390. package/lib/typescript/components/Avatar/styles.d.ts +4 -4
  391. package/lib/typescript/components/Avatar/styles.d.ts.map +1 -1
  392. package/lib/typescript/components/Button/index.d.ts +44 -9
  393. package/lib/typescript/components/Button/index.d.ts.map +1 -1
  394. package/lib/typescript/components/Button/styles.d.ts +7 -4
  395. package/lib/typescript/components/Button/styles.d.ts.map +1 -1
  396. package/lib/typescript/components/Card/index.d.ts +4 -3
  397. package/lib/typescript/components/Card/index.d.ts.map +1 -1
  398. package/lib/typescript/components/Card/styles.d.ts +13 -3
  399. package/lib/typescript/components/Card/styles.d.ts.map +1 -1
  400. package/lib/typescript/components/Checkbox/index.d.ts +4 -3
  401. package/lib/typescript/components/Checkbox/index.d.ts.map +1 -1
  402. package/lib/typescript/components/Checkbox/styles.d.ts +4 -14
  403. package/lib/typescript/components/Checkbox/styles.d.ts.map +1 -1
  404. package/lib/typescript/components/Chip/index.d.ts +31 -8
  405. package/lib/typescript/components/Chip/index.d.ts.map +1 -1
  406. package/lib/typescript/components/Chip/styles.d.ts +12 -4
  407. package/lib/typescript/components/Chip/styles.d.ts.map +1 -1
  408. package/lib/typescript/components/Dialog/index.d.ts +25 -13
  409. package/lib/typescript/components/Dialog/index.d.ts.map +1 -1
  410. package/lib/typescript/components/Dialog/styles.d.ts +16 -5
  411. package/lib/typescript/components/Dialog/styles.d.ts.map +1 -1
  412. package/lib/typescript/components/Field/index.d.ts +14 -7
  413. package/lib/typescript/components/Field/index.d.ts.map +1 -1
  414. package/lib/typescript/components/Field/styles.d.ts.map +1 -1
  415. package/lib/typescript/components/Form/index.d.ts +4 -4
  416. package/lib/typescript/components/Form/index.d.ts.map +1 -1
  417. package/lib/typescript/components/Heading/styles.d.ts +1 -1
  418. package/lib/typescript/components/Icon/index.d.ts +5 -5
  419. package/lib/typescript/components/Icon/index.d.ts.map +1 -1
  420. package/lib/typescript/components/IconButton/index.d.ts +3 -3
  421. package/lib/typescript/components/IconButton/index.d.ts.map +1 -1
  422. package/lib/typescript/components/IconButton/styles.d.ts +6 -2
  423. package/lib/typescript/components/IconButton/styles.d.ts.map +1 -1
  424. package/lib/typescript/components/Input/index.d.ts +11 -3
  425. package/lib/typescript/components/Input/index.d.ts.map +1 -1
  426. package/lib/typescript/components/Input/styles.d.ts.map +1 -1
  427. package/lib/typescript/components/Link/index.d.ts +4 -2
  428. package/lib/typescript/components/Link/index.d.ts.map +1 -1
  429. package/lib/typescript/components/Link/styles.d.ts +9 -2
  430. package/lib/typescript/components/Link/styles.d.ts.map +1 -1
  431. package/lib/typescript/components/ListItem/index.d.ts +28 -6
  432. package/lib/typescript/components/ListItem/index.d.ts.map +1 -1
  433. package/lib/typescript/components/ListItem/styles.d.ts +3 -10
  434. package/lib/typescript/components/ListItem/styles.d.ts.map +1 -1
  435. package/lib/typescript/components/OtpInput/index.d.ts +1 -1
  436. package/lib/typescript/components/OtpInput/index.d.ts.map +1 -1
  437. package/lib/typescript/components/ProgressBar/index.d.ts +4 -4
  438. package/lib/typescript/components/ProgressBar/index.d.ts.map +1 -1
  439. package/lib/typescript/components/ProgressSegmented/index.d.ts +14 -3
  440. package/lib/typescript/components/ProgressSegmented/index.d.ts.map +1 -1
  441. package/lib/typescript/components/QuickActionButton/index.d.ts +41 -0
  442. package/lib/typescript/components/QuickActionButton/index.d.ts.map +1 -0
  443. package/lib/typescript/components/QuickActionButton/styles.d.ts +7 -0
  444. package/lib/typescript/components/QuickActionButton/styles.d.ts.map +1 -0
  445. package/lib/typescript/components/Radio/index.d.ts +44 -0
  446. package/lib/typescript/components/Radio/index.d.ts.map +1 -0
  447. package/lib/typescript/components/Radio/styles.d.ts +8 -0
  448. package/lib/typescript/components/Radio/styles.d.ts.map +1 -0
  449. package/lib/typescript/components/ScopedTheme/index.d.ts +16 -0
  450. package/lib/typescript/components/ScopedTheme/index.d.ts.map +1 -0
  451. package/lib/typescript/components/Select/index.d.ts +35 -2
  452. package/lib/typescript/components/Select/index.d.ts.map +1 -1
  453. package/lib/typescript/components/Select/styles.d.ts.map +1 -1
  454. package/lib/typescript/components/Skeleton/index.d.ts +9 -0
  455. package/lib/typescript/components/Skeleton/index.d.ts.map +1 -0
  456. package/lib/typescript/components/Skeleton/styles.d.ts +4 -0
  457. package/lib/typescript/components/Skeleton/styles.d.ts.map +1 -0
  458. package/lib/typescript/components/Stack/styles.d.ts +2 -2
  459. package/lib/typescript/components/Switch/BaseSwitch.d.ts +12 -5
  460. package/lib/typescript/components/Switch/BaseSwitch.d.ts.map +1 -1
  461. package/lib/typescript/components/Switch/BaseSwitch.web.d.ts +11 -5
  462. package/lib/typescript/components/Switch/BaseSwitch.web.d.ts.map +1 -1
  463. package/lib/typescript/components/Switch/index.d.ts +5 -1
  464. package/lib/typescript/components/Switch/index.d.ts.map +1 -1
  465. package/lib/typescript/components/Text/styles.d.ts +1 -1
  466. package/lib/typescript/components/Tile/index.d.ts +76 -0
  467. package/lib/typescript/components/Tile/index.d.ts.map +1 -0
  468. package/lib/typescript/components/Tile/styles.d.ts +18 -0
  469. package/lib/typescript/components/Tile/styles.d.ts.map +1 -0
  470. package/lib/typescript/components/VirtualizedList/index.d.ts +2 -1
  471. package/lib/typescript/components/VirtualizedList/index.d.ts.map +1 -1
  472. package/lib/typescript/components/index.d.ts +5 -0
  473. package/lib/typescript/components/index.d.ts.map +1 -1
  474. package/lib/typescript/figma/AlertDialog.Description.figma.d.ts +8 -0
  475. package/lib/typescript/figma/AlertDialog.Description.figma.d.ts.map +1 -0
  476. package/lib/typescript/figma/AlertDialog.Footer.figma.d.ts +8 -0
  477. package/lib/typescript/figma/AlertDialog.Footer.figma.d.ts.map +1 -0
  478. package/lib/typescript/figma/AlertDialog.Header.figma.d.ts +8 -0
  479. package/lib/typescript/figma/AlertDialog.Header.figma.d.ts.map +1 -0
  480. package/lib/typescript/figma/AlertDialog.Text.figma.d.ts +8 -0
  481. package/lib/typescript/figma/AlertDialog.Text.figma.d.ts.map +1 -0
  482. package/lib/typescript/figma/AlertDialog.Title.figma.d.ts +8 -0
  483. package/lib/typescript/figma/AlertDialog.Title.figma.d.ts.map +1 -0
  484. package/lib/typescript/figma/AlertDialog.figma.d.ts +8 -0
  485. package/lib/typescript/figma/AlertDialog.figma.d.ts.map +1 -0
  486. package/lib/typescript/figma/Avatar.figma.d.ts +11 -0
  487. package/lib/typescript/figma/Avatar.figma.d.ts.map +1 -0
  488. package/lib/typescript/figma/Button.figma.d.ts.map +1 -1
  489. package/lib/typescript/figma/Card.Header.figma.d.ts +8 -0
  490. package/lib/typescript/figma/Card.Header.figma.d.ts.map +1 -0
  491. package/lib/typescript/figma/Card.figma.d.ts +8 -0
  492. package/lib/typescript/figma/Card.figma.d.ts.map +1 -0
  493. package/lib/typescript/figma/Checkbox.figma.d.ts +8 -0
  494. package/lib/typescript/figma/Checkbox.figma.d.ts.map +1 -0
  495. package/lib/typescript/figma/Chip.figma.d.ts +8 -0
  496. package/lib/typescript/figma/Chip.figma.d.ts.map +1 -0
  497. package/lib/typescript/figma/Dialog.Description.figma.d.ts +8 -0
  498. package/lib/typescript/figma/Dialog.Description.figma.d.ts.map +1 -0
  499. package/lib/typescript/figma/Dialog.Footer.figma.d.ts +8 -0
  500. package/lib/typescript/figma/Dialog.Footer.figma.d.ts.map +1 -0
  501. package/lib/typescript/figma/Dialog.Header.figma.d.ts +8 -0
  502. package/lib/typescript/figma/Dialog.Header.figma.d.ts.map +1 -0
  503. package/lib/typescript/figma/Dialog.Text.figma.d.ts +8 -0
  504. package/lib/typescript/figma/Dialog.Text.figma.d.ts.map +1 -0
  505. package/lib/typescript/figma/Dialog.Title.figma.d.ts +8 -0
  506. package/lib/typescript/figma/Dialog.Title.figma.d.ts.map +1 -0
  507. package/lib/typescript/figma/Dialog.figma.d.ts +8 -0
  508. package/lib/typescript/figma/Dialog.figma.d.ts.map +1 -0
  509. package/lib/typescript/figma/Field.Input.figma.d.ts +8 -0
  510. package/lib/typescript/figma/Field.Input.figma.d.ts.map +1 -0
  511. package/lib/typescript/figma/Field.Select.figma.d.ts +8 -0
  512. package/lib/typescript/figma/Field.Select.figma.d.ts.map +1 -0
  513. package/lib/typescript/figma/Heading.figma.d.ts +8 -0
  514. package/lib/typescript/figma/Heading.figma.d.ts.map +1 -0
  515. package/lib/typescript/figma/Icon.figma.d.ts +8 -0
  516. package/lib/typescript/figma/Icon.figma.d.ts.map +1 -0
  517. package/lib/typescript/figma/IconButton.figma.d.ts +8 -0
  518. package/lib/typescript/figma/IconButton.figma.d.ts.map +1 -0
  519. package/lib/typescript/figma/Input.figma.d.ts +8 -0
  520. package/lib/typescript/figma/Input.figma.d.ts.map +1 -0
  521. package/lib/typescript/figma/Link.figma.d.ts +8 -0
  522. package/lib/typescript/figma/Link.figma.d.ts.map +1 -0
  523. package/lib/typescript/figma/ListItem.Description.figma.d.ts +11 -0
  524. package/lib/typescript/figma/ListItem.Description.figma.d.ts.map +1 -0
  525. package/lib/typescript/figma/ListItem.LeadingSlot.figma.d.ts +8 -0
  526. package/lib/typescript/figma/ListItem.LeadingSlot.figma.d.ts.map +1 -0
  527. package/lib/typescript/figma/ListItem.Meta.figma.d.ts +11 -0
  528. package/lib/typescript/figma/ListItem.Meta.figma.d.ts.map +1 -0
  529. package/lib/typescript/figma/ListItem.SectionHeader.figma.d.ts +8 -0
  530. package/lib/typescript/figma/ListItem.SectionHeader.figma.d.ts.map +1 -0
  531. package/lib/typescript/figma/ListItem.Title.figma.d.ts +11 -0
  532. package/lib/typescript/figma/ListItem.Title.figma.d.ts.map +1 -0
  533. package/lib/typescript/figma/ListItem.TrailingSlot.figma.d.ts +8 -0
  534. package/lib/typescript/figma/ListItem.TrailingSlot.figma.d.ts.map +1 -0
  535. package/lib/typescript/figma/ListItem.figma.d.ts +8 -0
  536. package/lib/typescript/figma/ListItem.figma.d.ts.map +1 -0
  537. package/lib/typescript/figma/ProgressSegmented.figma.d.ts +8 -0
  538. package/lib/typescript/figma/ProgressSegmented.figma.d.ts.map +1 -0
  539. package/lib/typescript/figma/QuickActionButton.figma.d.ts +8 -0
  540. package/lib/typescript/figma/QuickActionButton.figma.d.ts.map +1 -0
  541. package/lib/typescript/figma/Radio.figma.d.ts +8 -0
  542. package/lib/typescript/figma/Radio.figma.d.ts.map +1 -0
  543. package/lib/typescript/figma/Select.figma.d.ts +8 -0
  544. package/lib/typescript/figma/Select.figma.d.ts.map +1 -0
  545. package/lib/typescript/figma/Text.figma.d.ts +11 -0
  546. package/lib/typescript/figma/Text.figma.d.ts.map +1 -0
  547. package/lib/typescript/figma/icons.figma.batch.d.ts +14 -0
  548. package/lib/typescript/figma/icons.figma.batch.d.ts.map +1 -0
  549. package/lib/typescript/hooks/index.d.ts +2 -0
  550. package/lib/typescript/hooks/index.d.ts.map +1 -0
  551. package/lib/typescript/hooks/useForgeBottomTabScreenOptions.d.ts +137 -0
  552. package/lib/typescript/hooks/useForgeBottomTabScreenOptions.d.ts.map +1 -0
  553. package/lib/typescript/index.d.ts +2 -0
  554. package/lib/typescript/index.d.ts.map +1 -1
  555. package/lib/typescript/metro/withCdxMetroConfig.d.ts +4 -18
  556. package/lib/typescript/metro/withCdxMetroConfig.d.ts.map +1 -1
  557. package/lib/typescript/metro/withForgeMetroConfig.d.ts +19 -0
  558. package/lib/typescript/metro/withForgeMetroConfig.d.ts.map +1 -0
  559. package/lib/typescript/navigation/forgeTabIcon.d.ts +27 -0
  560. package/lib/typescript/navigation/forgeTabIcon.d.ts.map +1 -0
  561. package/lib/typescript/navigation/forgeTabIcon.native.d.ts +15 -0
  562. package/lib/typescript/navigation/forgeTabIcon.native.d.ts.map +1 -0
  563. package/lib/typescript/navigation/index.d.ts +4 -0
  564. package/lib/typescript/navigation/index.d.ts.map +1 -0
  565. package/lib/typescript/navigation/types.d.ts +37 -0
  566. package/lib/typescript/navigation/types.d.ts.map +1 -0
  567. package/lib/typescript/styles/primitives.d.ts +38 -0
  568. package/lib/typescript/styles/primitives.d.ts.map +1 -1
  569. package/lib/typescript/utils/positionToDataIcon.d.ts +29 -0
  570. package/lib/typescript/utils/positionToDataIcon.d.ts.map +1 -0
  571. package/package.json +11 -9
  572. package/src/components/AlertDialog/index.tsx +21 -20
  573. package/src/components/Avatar/index.tsx +135 -45
  574. package/src/components/Avatar/styles.ts +49 -34
  575. package/src/components/Button/index.tsx +253 -47
  576. package/src/components/Button/styles.ts +78 -37
  577. package/src/components/CLAUDE.md +194 -0
  578. package/src/components/Card/index.tsx +41 -16
  579. package/src/components/Card/styles.ts +42 -15
  580. package/src/components/Checkbox/index.tsx +101 -51
  581. package/src/components/Checkbox/styles.ts +84 -86
  582. package/src/components/Chip/index.tsx +136 -32
  583. package/src/components/Chip/styles.ts +220 -18
  584. package/src/components/Dialog/index.tsx +199 -93
  585. package/src/components/Dialog/styles.ts +72 -30
  586. package/src/components/Field/index.tsx +121 -50
  587. package/src/components/Field/styles.ts +5 -4
  588. package/src/components/Form/index.tsx +18 -14
  589. package/src/components/Heading/styles.ts +1 -1
  590. package/src/components/Icon/index.tsx +6 -7
  591. package/src/components/IconButton/index.tsx +13 -36
  592. package/src/components/IconButton/styles.ts +136 -10
  593. package/src/components/Input/index.tsx +75 -32
  594. package/src/components/Input/styles.ts +15 -9
  595. package/src/components/Link/index.tsx +57 -18
  596. package/src/components/Link/styles.ts +49 -9
  597. package/src/components/ListItem/index.tsx +157 -87
  598. package/src/components/ListItem/styles.ts +50 -81
  599. package/src/components/OtpInput/index.tsx +126 -43
  600. package/src/components/ProgressBar/index.tsx +11 -16
  601. package/src/components/ProgressSegmented/index.tsx +50 -14
  602. package/src/components/QuickActionButton/index.tsx +161 -0
  603. package/src/components/QuickActionButton/styles.ts +42 -0
  604. package/src/components/Radio/index.tsx +214 -0
  605. package/src/components/Radio/styles.ts +59 -0
  606. package/src/components/ScopedTheme/index.tsx +17 -0
  607. package/src/components/Select/index.tsx +175 -55
  608. package/src/components/Select/styles.ts +48 -51
  609. package/src/components/Skeleton/index.tsx +42 -0
  610. package/src/components/Skeleton/styles.ts +5 -0
  611. package/src/components/Switch/BaseSwitch.tsx +38 -16
  612. package/src/components/Switch/BaseSwitch.web.tsx +28 -35
  613. package/src/components/Switch/index.tsx +51 -4
  614. package/src/components/Text/styles.ts +2 -2
  615. package/src/components/Tile/index.tsx +347 -0
  616. package/src/components/Tile/styles.ts +82 -0
  617. package/src/components/VirtualizedList/index.tsx +11 -1
  618. package/src/components/index.ts +5 -0
  619. package/src/hooks/index.ts +5 -0
  620. package/src/hooks/useForgeBottomTabScreenOptions.ts +245 -0
  621. package/src/index.ts +2 -0
  622. package/src/metro/withCdxMetroConfig.ts +4 -29
  623. package/src/metro/withForgeMetroConfig.ts +29 -0
  624. package/src/navigation/forgeTabIcon.native.ts +36 -0
  625. package/src/navigation/forgeTabIcon.ts +33 -0
  626. package/src/navigation/index.ts +3 -0
  627. package/src/navigation/types.ts +54 -0
  628. package/src/styles/primitives.ts +43 -6
  629. package/src/utils/positionToDataIcon.ts +34 -0
  630. package/lib/commonjs/components/Field/FieldLabel.js +0 -33
  631. package/lib/commonjs/components/Field/FieldLabel.js.map +0 -1
  632. package/lib/commonjs/components/Field/FieldLabel.web.js +0 -22
  633. package/lib/commonjs/components/Field/FieldLabel.web.js.map +0 -1
  634. package/lib/commonjs/components/Form/FormRoot.js +0 -25
  635. package/lib/commonjs/components/Form/FormRoot.js.map +0 -1
  636. package/lib/commonjs/components/Form/FormRoot.web.js +0 -17
  637. package/lib/commonjs/components/Form/FormRoot.web.js.map +0 -1
  638. package/lib/commonjs/components/Input/BaseInput.android.js +0 -20
  639. package/lib/commonjs/components/Input/BaseInput.android.js.map +0 -1
  640. package/lib/commonjs/components/Input/BaseInput.js +0 -13
  641. package/lib/commonjs/components/Input/BaseInput.js.map +0 -1
  642. package/lib/commonjs/components/Input/BaseInput.web.js +0 -50
  643. package/lib/commonjs/components/Input/BaseInput.web.js.map +0 -1
  644. package/lib/commonjs/components/Select/SelectTriggerHost.js +0 -10
  645. package/lib/commonjs/components/Select/SelectTriggerHost.js.map +0 -1
  646. package/lib/commonjs/components/Select/SelectTriggerHost.web.js +0 -98
  647. package/lib/commonjs/components/Select/SelectTriggerHost.web.js.map +0 -1
  648. package/lib/module/components/Field/FieldLabel.js +0 -29
  649. package/lib/module/components/Field/FieldLabel.js.map +0 -1
  650. package/lib/module/components/Field/FieldLabel.web.js +0 -17
  651. package/lib/module/components/Field/FieldLabel.web.js.map +0 -1
  652. package/lib/module/components/Form/FormRoot.js +0 -21
  653. package/lib/module/components/Form/FormRoot.js.map +0 -1
  654. package/lib/module/components/Form/FormRoot.web.js +0 -12
  655. package/lib/module/components/Form/FormRoot.web.js.map +0 -1
  656. package/lib/module/components/Input/BaseInput.android.js +0 -16
  657. package/lib/module/components/Input/BaseInput.android.js.map +0 -1
  658. package/lib/module/components/Input/BaseInput.js +0 -4
  659. package/lib/module/components/Input/BaseInput.js.map +0 -1
  660. package/lib/module/components/Input/BaseInput.web.js +0 -45
  661. package/lib/module/components/Input/BaseInput.web.js.map +0 -1
  662. package/lib/module/components/Select/SelectTriggerHost.js +0 -7
  663. package/lib/module/components/Select/SelectTriggerHost.js.map +0 -1
  664. package/lib/module/components/Select/SelectTriggerHost.web.js +0 -93
  665. package/lib/module/components/Select/SelectTriggerHost.web.js.map +0 -1
  666. package/lib/typescript/components/Field/FieldLabel.d.ts +0 -18
  667. package/lib/typescript/components/Field/FieldLabel.d.ts.map +0 -1
  668. package/lib/typescript/components/Field/FieldLabel.web.d.ts +0 -16
  669. package/lib/typescript/components/Field/FieldLabel.web.d.ts.map +0 -1
  670. package/lib/typescript/components/Form/FormRoot.d.ts +0 -14
  671. package/lib/typescript/components/Form/FormRoot.d.ts.map +0 -1
  672. package/lib/typescript/components/Form/FormRoot.web.d.ts +0 -10
  673. package/lib/typescript/components/Form/FormRoot.web.d.ts.map +0 -1
  674. package/lib/typescript/components/Input/BaseInput.android.d.ts +0 -3
  675. package/lib/typescript/components/Input/BaseInput.android.d.ts.map +0 -1
  676. package/lib/typescript/components/Input/BaseInput.d.ts +0 -2
  677. package/lib/typescript/components/Input/BaseInput.d.ts.map +0 -1
  678. package/lib/typescript/components/Input/BaseInput.web.d.ts +0 -3
  679. package/lib/typescript/components/Input/BaseInput.web.d.ts.map +0 -1
  680. package/lib/typescript/components/Select/SelectTriggerHost.d.ts +0 -3
  681. package/lib/typescript/components/Select/SelectTriggerHost.d.ts.map +0 -1
  682. package/lib/typescript/components/Select/SelectTriggerHost.web.d.ts +0 -13
  683. package/lib/typescript/components/Select/SelectTriggerHost.web.d.ts.map +0 -1
  684. package/src/components/Field/FieldLabel.tsx +0 -33
  685. package/src/components/Field/FieldLabel.web.tsx +0 -25
  686. package/src/components/Form/FormRoot.tsx +0 -20
  687. package/src/components/Form/FormRoot.web.tsx +0 -12
  688. package/src/components/Input/BaseInput.android.tsx +0 -13
  689. package/src/components/Input/BaseInput.tsx +0 -1
  690. package/src/components/Input/BaseInput.web.tsx +0 -41
  691. package/src/components/Select/SelectTriggerHost.tsx +0 -4
  692. package/src/components/Select/SelectTriggerHost.web.tsx +0 -136
@@ -10,14 +10,14 @@ export const buttonRootVariants = cva(
10
10
  'rounded-[var(--border-radius-button)]',
11
11
  'web:outline-none web:focus:outline-none web:focus-visible:outline-none',
12
12
  TRANSITION_COLORS,
13
- 'data-[disabled=true]:opacity-[--opacity-disabled]',
13
+ 'data-[disabled=true]:opacity-[var(--opacity-disabled)]',
14
14
  DISABLED_CURSOR,
15
- 'web:data-[focus-visible=true]:ring-2 web:data-[focus-visible=true]:ring-[--color-stroke-focus] web:data-[focus-visible=true]:ring-offset-2',
15
+ 'web:data-[focus-visible=true]:ring-2 web:data-[focus-visible=true]:ring-stroke-focus web:data-[focus-visible=true]:ring-offset-2',
16
16
  ],
17
17
  {
18
18
  variants: {
19
19
  variant: {
20
- strong: ['border-b-1 border-black/75'], // TODO: Replace with token
20
+ solid: ['border-b-1 border-black/75'], // TODO: Replace with token
21
21
  outline: ['bg-transparent', 'border border-stroke-primary'],
22
22
  ghost: ['bg-transparent'],
23
23
  },
@@ -29,7 +29,7 @@ export const buttonRootVariants = cva(
29
29
  info: [],
30
30
  },
31
31
  size: {
32
- default: 'h-10 px-4 gap-2',
32
+ default: 'h-11 px-4 gap-2',
33
33
  small: 'h-8 px-3 gap-1.5',
34
34
  },
35
35
  fullWidth: {
@@ -38,9 +38,9 @@ export const buttonRootVariants = cva(
38
38
  },
39
39
  },
40
40
  compoundVariants: [
41
- // ── strong × color (filled surface) ──────────────────────────────
41
+ // ── solid × color (filled surface) ──────────────────────────────
42
42
  {
43
- variant: 'strong',
43
+ variant: 'solid',
44
44
  color: 'action',
45
45
  className: [
46
46
  'bg-surface-action-strong',
@@ -51,7 +51,7 @@ export const buttonRootVariants = cva(
51
51
  ],
52
52
  },
53
53
  {
54
- variant: 'strong',
54
+ variant: 'solid',
55
55
  color: 'danger',
56
56
  className: [
57
57
  'bg-surface-danger-strong',
@@ -62,7 +62,7 @@ export const buttonRootVariants = cva(
62
62
  ],
63
63
  },
64
64
  {
65
- variant: 'strong',
65
+ variant: 'solid',
66
66
  color: 'warning',
67
67
  className: [
68
68
  'bg-surface-warning-strong',
@@ -73,7 +73,7 @@ export const buttonRootVariants = cva(
73
73
  ],
74
74
  },
75
75
  {
76
- variant: 'strong',
76
+ variant: 'solid',
77
77
  color: 'success',
78
78
  className: [
79
79
  'bg-surface-success-strong',
@@ -84,7 +84,7 @@ export const buttonRootVariants = cva(
84
84
  ],
85
85
  },
86
86
  {
87
- variant: 'strong',
87
+ variant: 'solid',
88
88
  color: 'info',
89
89
  className: [
90
90
  'bg-surface-info-strong',
@@ -205,7 +205,7 @@ export const buttonRootVariants = cva(
205
205
  },
206
206
  ],
207
207
  defaultVariants: {
208
- variant: 'strong',
208
+ variant: 'solid',
209
209
  color: 'action',
210
210
  size: 'default',
211
211
  fullWidth: false,
@@ -216,7 +216,7 @@ export const buttonRootVariants = cva(
216
216
  export const buttonTextVariants = cva(['font-medium', 'text-center'], {
217
217
  variants: {
218
218
  variant: {
219
- strong: [],
219
+ solid: [],
220
220
  outline: [],
221
221
  ghost: [],
222
222
  },
@@ -233,12 +233,12 @@ export const buttonTextVariants = cva(['font-medium', 'text-center'], {
233
233
  },
234
234
  },
235
235
  compoundVariants: [
236
- // ── strong × color (filled foreground text) ──────────────────────
237
- { variant: 'strong', color: 'action', className: 'text-content-action-on-strong' },
238
- { variant: 'strong', color: 'danger', className: 'text-content-danger-on-strong' },
239
- { variant: 'strong', color: 'warning', className: 'text-content-warning-on-strong' },
240
- { variant: 'strong', color: 'success', className: 'text-content-success-on-strong' },
241
- { variant: 'strong', color: 'info', className: 'text-content-info-on-strong' },
236
+ // ── solid × color (filled foreground text) ──────────────────────
237
+ { variant: 'solid', color: 'action', className: 'text-content-action-on-strong' },
238
+ { variant: 'solid', color: 'danger', className: 'text-content-danger-on-strong' },
239
+ { variant: 'solid', color: 'warning', className: 'text-content-warning-on-strong' },
240
+ { variant: 'solid', color: 'success', className: 'text-content-success-on-strong' },
241
+ { variant: 'solid', color: 'info', className: 'text-content-info-on-strong' },
242
242
 
243
243
  // ── outline/ghost × color (transparent foreground text) ──────────
244
244
  { variant: ['outline', 'ghost'], color: 'action', className: 'text-content-action' },
@@ -248,16 +248,25 @@ export const buttonTextVariants = cva(['font-medium', 'text-center'], {
248
248
  { variant: ['outline', 'ghost'], color: 'info', className: 'text-content-info' },
249
249
  ],
250
250
  defaultVariants: {
251
- variant: 'strong',
251
+ variant: 'solid',
252
252
  color: 'action',
253
253
  size: 'default',
254
254
  },
255
255
  });
256
256
 
257
- export const buttonSpinnerVariants = cva([], {
257
+ export const buttonSpinnerVariants = cva([
258
+ 'data-[icon=inline-start]:me-1.5',
259
+ 'data-[icon=inline-end]:ms-1.5',
260
+ ]);
261
+
262
+ // Spinner color is set via Uniwind's `colorClassName` prop (maps to the native
263
+ // `color` prop on `ActivityIndicator`). `accent-*` utilities ONLY take effect
264
+ // when passed through `colorClassName` — putting them on `className` is a no-op
265
+ // because the underlying `color` prop is not part of the `style` object.
266
+ export const buttonSpinnerColorVariants = cva([], {
258
267
  variants: {
259
268
  variant: {
260
- strong: [],
269
+ solid: [],
261
270
  outline: [],
262
271
  ghost: [],
263
272
  },
@@ -270,29 +279,29 @@ export const buttonSpinnerVariants = cva([], {
270
279
  },
271
280
  },
272
281
  compoundVariants: [
273
- // ── strong × color ───────────────────────────────────────────────
282
+ // ── solid × color ───────────────────────────────────────────────
274
283
  {
275
- variant: 'strong',
284
+ variant: 'solid',
276
285
  color: 'action',
277
286
  className: 'accent-[var(--color-content-action-on-strong)]',
278
287
  },
279
288
  {
280
- variant: 'strong',
289
+ variant: 'solid',
281
290
  color: 'danger',
282
291
  className: 'accent-[var(--color-content-danger-on-strong)]',
283
292
  },
284
293
  {
285
- variant: 'strong',
294
+ variant: 'solid',
286
295
  color: 'warning',
287
296
  className: 'accent-[var(--color-content-warning-on-strong)]',
288
297
  },
289
298
  {
290
- variant: 'strong',
299
+ variant: 'solid',
291
300
  color: 'success',
292
301
  className: 'accent-[var(--color-content-success-on-strong)]',
293
302
  },
294
303
  {
295
- variant: 'strong',
304
+ variant: 'solid',
296
305
  color: 'info',
297
306
  className: 'accent-[var(--color-content-info-on-strong)]',
298
307
  },
@@ -325,7 +334,7 @@ export const buttonSpinnerVariants = cva([], {
325
334
  },
326
335
  ],
327
336
  defaultVariants: {
328
- variant: 'strong',
337
+ variant: 'solid',
329
338
  color: 'action',
330
339
  },
331
340
  });
@@ -349,17 +358,49 @@ export const buttonGroupVariants = cva([], {
349
358
  },
350
359
  });
351
360
 
352
- export const buttonIconVariants = cva([], {
353
- variants: {
354
- size: {
355
- default: 'size-5',
356
- small: 'size-4',
361
+ export const buttonIconVariants = cva(
362
+ ['data-[icon=inline-start]:me-1.5', 'data-[icon=inline-end]:ms-1.5'],
363
+ {
364
+ variants: {
365
+ variant: {
366
+ solid: [],
367
+ outline: [],
368
+ ghost: [],
369
+ },
370
+ color: {
371
+ action: [],
372
+ danger: [],
373
+ warning: [],
374
+ success: [],
375
+ info: [],
376
+ },
377
+ size: {
378
+ default: 'size-5',
379
+ small: 'size-4',
380
+ },
381
+ },
382
+ compoundVariants: [
383
+ // ── solid × color (filled foreground icon) ──────────────────────
384
+ { variant: 'solid', color: 'action', className: 'text-content-action-on-strong' },
385
+ { variant: 'solid', color: 'danger', className: 'text-content-danger-on-strong' },
386
+ { variant: 'solid', color: 'warning', className: 'text-content-warning-on-strong' },
387
+ { variant: 'solid', color: 'success', className: 'text-content-success-on-strong' },
388
+ { variant: 'solid', color: 'info', className: 'text-content-info-on-strong' },
389
+
390
+ // ── outline/ghost × color (transparent foreground icon) ──────────
391
+ { variant: ['outline', 'ghost'], color: 'action', className: 'text-content-action' },
392
+ { variant: ['outline', 'ghost'], color: 'danger', className: 'text-content-danger' },
393
+ { variant: ['outline', 'ghost'], color: 'warning', className: 'text-content-warning' },
394
+ { variant: ['outline', 'ghost'], color: 'success', className: 'text-content-success' },
395
+ { variant: ['outline', 'ghost'], color: 'info', className: 'text-content-info' },
396
+ ],
397
+ defaultVariants: {
398
+ variant: 'solid',
399
+ color: 'action',
400
+ size: 'default',
357
401
  },
358
402
  },
359
- defaultVariants: {
360
- size: 'default',
361
- },
362
- });
403
+ );
363
404
 
364
405
  export type ButtonVariantProps = VariantProps<typeof buttonRootVariants>;
365
406
  export type ButtonGroupVariantProps = VariantProps<typeof buttonGroupVariants>;
@@ -0,0 +1,194 @@
1
+ # Components — authoring & styling conventions
2
+
3
+ Auto-loaded when working in `packages/components/src/components/**`. Covers both the
4
+ styled component files (`index.tsx`) and their co-located CVA variant files (`styles.ts`).
5
+
6
+ ---
7
+
8
+ ## Component Authoring (`index.tsx`)
9
+
10
+ Styled components in `@cdx-ui/components` follow a consistent pattern. Read the full guides before making changes:
11
+
12
+ - `docs/internal/practices/composition.md` — compound component pattern, naming conventions
13
+ - `docs/internal/practices/types.md` — prop types, `I*Props` vs `*Props`, exporting
14
+ - `docs/internal/practices/styling.md` — `cn()`, CVA, token classes, `Platform.select()`
15
+ - `docs/internal/practices/state.md` — `useControllableState`, `composeEventHandlers`
16
+ - `docs/internal/practices/data-attributes.md` — `data-[state]`, `data-slot`, and `data-icon` conventions
17
+ - `docs/internal/practices/as-child.md` — styled-layer `asChild` via re-exported `Slot`
18
+
19
+ ## Six standards (Standards 4–6 apply here)
20
+
21
+ Standards 1–3 govern primitive-layer authoring (see `packages/primitives/src/CLAUDE.md`).
22
+ Standards 4–6 govern the styled layer:
23
+
24
+ ### Standard 4 — `data-slot` attributes
25
+
26
+ Every public styled slot emits a stable `data-slot="<component>-<part>"` attribute on its outermost rendered element. The convention is lowercase, kebab-case, `<component>` then `-<slot>` if not the root.
27
+
28
+ | Slot | Attribute |
29
+ | ------------------ | ---------------------------- |
30
+ | `<Button>` root | `data-slot="button"` |
31
+ | `<Button.Label>` | `data-slot="button-label"` |
32
+ | `<Button.Icon>` | `data-slot="button-icon"` |
33
+ | `<Button.Spinner>` | `data-slot="button-spinner"` |
34
+ | `<Button.Group>` | `data-slot="button-group"` |
35
+ | `<IconButton>` | `data-slot="icon-button"` |
36
+ | `<Dialog.Content>` | `data-slot="dialog-content"` |
37
+
38
+ Use `dataAttributes({ slot: '<component>-<part>' })` from `@cdx-ui/primitives` so the helper handles native (flat `data-*` keys) and web (RNW `dataSet`) correctly.
39
+
40
+ #### Combining multiple data-attribute sources — use `mergeDataAttributes`
41
+
42
+ When the same element receives `data-*` from more than one source (e.g. a slot identifier plus a position hint, or consumer-supplied data attrs flowing in through props), do **not** chain multiple `{...dataAttributes(...)}` spreads — on web each call returns `{ dataSet: {...} }` and a plain JSX spread replaces the `dataSet` key entirely, so the second source wipes out the first. Use `mergeDataAttributes(...)` from `@cdx-ui/primitives` to combine sources; later args win on key conflicts:
43
+
44
+ ```tsx
45
+ import { dataAttributes, mergeDataAttributes } from '@cdx-ui/primitives';
46
+
47
+ <Element
48
+ ref={ref}
49
+ className={...}
50
+ style={style}
51
+ {...props}
52
+ {...mergeDataAttributes(
53
+ props, // pulls in any consumer-supplied data attrs
54
+ dataAttributes({ slot: '<component>-<part>' }),
55
+ positionToDataIcon(position), // optional, may be undefined
56
+ )}
57
+ />
58
+ ```
59
+
60
+ Spread `{...props}` first, then the merge — so any keys that `mergeDataAttributes` produces overwrite their counterparts in props with the merged values.
61
+
62
+ When the styled component renders a primitive Root, the primitive Root applies the same pattern internally — incoming data attrs (slot from the styled layer) are merged with the primitive's own interaction-state data attrs and emitted once. The styled layer doesn't need to do anything special; just pass `data-slot` through and the primitive's merge does the rest.
63
+
64
+ ### Standard 5 — Static design variants vs. interaction state
65
+
66
+ Variant functions take only static design inputs (`variant`/`color`/`size`/`fullWidth`/etc.). Interaction states (`hover`/`focus`/`active`/`disabled`/`focus-visible`) are expressed as `data-[...]:` selectors **inside** CVA variant strings, never as variant inputs.
67
+
68
+ - CSS-layer state changes are free of React work: when the primitive flips `data-hover=true`, the CSS engine (web) and Uniwind's native style layer reconcile styles without re-rendering React, re-running CVA, or invoking `cn()`/`tailwind-merge`.
69
+ - Variant-input state changes cascade React work: CVA re-runs, `cn()` re-merges, and className-prop reconciliation cascades through the tree.
70
+ - Sub-slots can react to root state via parent selectors (`data-[hover=true]:`) without each slot subscribing to context (per Standard 1).
71
+
72
+ ### Standard 6 — Position hints (`data-icon="inline-start|inline-end"`)
73
+
74
+ Icon-/spinner-bearing styled slots accept an optional `position?: 'leading' | 'trailing'` prop that emits `data-icon="inline-start|inline-end"`. Spacing rules in CVA target the `data-icon` attribute via logical-property utilities (`me-*`/`ms-*`) so RTL is handled for free.
75
+
76
+ Mapping (via the shared `positionToDataIcon` helper at `packages/components/src/utils/positionToDataIcon.ts`):
77
+
78
+ - `position="leading"` → `data-icon="inline-start"`
79
+ - `position="trailing"` → `data-icon="inline-end"`
80
+ - `position` omitted → no `data-icon` attribute, baseline spacing applies
81
+
82
+ ```tsx
83
+ import { positionToDataIcon, type IconSlotPosition } from '../../utils/positionToDataIcon';
84
+
85
+ interface ButtonIconProps {
86
+ position?: IconSlotPosition;
87
+ // ...
88
+ }
89
+
90
+ <Icon {...positionToDataIcon(position)} {...props} />;
91
+ ```
92
+
93
+ ```tsx
94
+ <Button>
95
+ <Button.Icon as={CheckIcon} position="leading" />
96
+ <Button.Label>Confirm</Button.Label>
97
+ </Button>
98
+ ```
99
+
100
+ CVA expresses padding via logical-property selectors:
101
+
102
+ ```ts
103
+ cva(['data-[icon=inline-start]:me-1.5 data-[icon=inline-end]:ms-1.5'], { ... });
104
+ ```
105
+
106
+ Where: **styled layer.** Pure styling hint with no behavior or a11y semantics — fails Standard 3, so no primitive involvement.
107
+
108
+ ## Canonical reference
109
+
110
+ `packages/components/src/components/Button/index.tsx` + `Button/styles.ts` is the canonical example for Standards 4–6:
111
+
112
+ - `data-slot` on `Button`, `Button.Label`, `Button.Icon`, `Button.Spinner`, `Button.Group`
113
+ - `asChild` re-uses `Slot` from `@cdx-ui/primitives` — no new primitive needed for sub-slots
114
+ - `buttonIconVariants` / `buttonSpinnerVariants` carry `data-[icon=inline-start]:me-1.5 data-[icon=inline-end]:ms-1.5` so leading/trailing padding works without per-call overrides
115
+
116
+ `packages/components/src/components/IconButton/index.tsx` shows the second axis of Standard 1: a styled-layer slot (the glyph) is the place that opts into `useButtonContext()` when its styling reacts to interaction state. The pattern is the same as the primitive Root — call `useButtonContext()`, spread `dataAttributes({ ... })` — only it lives in the styled layer.
117
+
118
+ ### Pattern summary
119
+
120
+ Each component follows this structure (see `Button/index.tsx`):
121
+
122
+ 1. **Imports** — RN base components, primitive `Root` and `Slot` from `@cdx-ui/primitives`, `cn` + style context from `@cdx-ui/utils`, variant functions from `./styles`
123
+ 2. **Scope constant** — `const SCOPE = 'COMPONENT_NAME'` for `withStyleContext` / `useStyleContext` (or a `ParentContext.Provider` wrapper for static variant context)
124
+ 3. **Root component** — renders the primitive Root (or a host element directly when no primitive exists), spreads `dataAttributes({ slot: '<component>' })`
125
+ 4. **Sub-slots** — each accepts `asChild`, renders a host element via `const Comp = asChild ? Slot : DefaultElement`, spreads `dataAttributes({ slot: '<component>-<slot>' })`. Sub-slots **do not** call `useButtonContext()` (or its equivalent) unless their own styling reacts to interaction state.
126
+ 5. **Position-aware sub-slots** — icon/spinner-style slots accept `position?: 'leading' | 'trailing'` and emit `data-icon` via `dataAttributes({ icon: '...' })`.
127
+ 6. **Compound export** — `Object.assign(RootComponent, { Sub1, Sub2 }) as CompoundType`
128
+
129
+ ### Key rules
130
+
131
+ - Props interface extends RN base props + primitive `I*Props` + CVA `VariantProps` + `{ className?: string }`
132
+ - Always accept and spread `style` alongside `className`
133
+ - Variant defaults in destructuring must match CVA `defaultVariants`
134
+ - `displayName` set on every exported sub-component
135
+ - `className` is merged last via `cn()` so consumer overrides always win
136
+ - Never hardcode colors — use semantic token classes (`bg-surface-*`, `text-content-*`, `border-stroke-*`)
137
+ - Event handlers composed via `composeEventHandlers` from `@cdx-ui/utils`
138
+ - Third-party libraries fully abstracted — no adopted library types leak to consumers
139
+ - **`data-slot`** emitted on every styled slot via `dataAttributes({ slot: '<component>-<part>' })`
140
+ - **`asChild`** supported on every styled slot — `const Comp = asChild ? Slot : DefaultElement`
141
+ - **`position`** prop on icon/spinner-style slots maps to `data-icon="inline-start|inline-end"`
142
+
143
+ ---
144
+
145
+ ## Styling Conventions (`styles.ts`)
146
+
147
+ Variant definitions live in co-located `styles.ts` files using CVA. Read the full guides before making changes:
148
+
149
+ - `docs/internal/practices/styling.md` — `cn()`, CVA, token architecture, dark mode, `Platform.select()`
150
+ - `docs/internal/practices/data-attributes.md` — `data-[state]` and `data-icon` selectors
151
+
152
+ ### Pattern summary
153
+
154
+ Each `styles.ts` exports CVA variant functions and their derived `VariantProps` types (see `Button/styles.ts` as the canonical example):
155
+
156
+ ```ts
157
+ import { Platform } from 'react-native';
158
+ import { cva, type VariantProps } from 'class-variance-authority';
159
+ import { DISABLED_CURSOR, TRANSITION_COLORS } from '../../styles/primitives';
160
+
161
+ export const componentRootVariants = cva(
162
+ [
163
+ /* base classes + interaction state selectors (data-[hover=true]:..., data-[active=true]:...) */
164
+ ],
165
+ {
166
+ variants: {
167
+ /* static design axes only — variant, color, size, fullWidth, etc. */
168
+ },
169
+ compoundVariants: [
170
+ /* variant × variant combinations */
171
+ ],
172
+ defaultVariants: {
173
+ /* defaults matching the component's destructured defaults */
174
+ },
175
+ },
176
+ );
177
+
178
+ export type ComponentVariantProps = VariantProps<typeof componentRootVariants>;
179
+ ```
180
+
181
+ ### Key rules
182
+
183
+ - **Semantic token classes only** — use `bg-surface-action-strong`, `text-content-primary`, `border-stroke-primary`, etc. Never hardcode hex colors, `bg-white`, `text-black`, or raw Tailwind color scales for themed values.
184
+ - **`data-[state]` selectors** — use `data-[disabled=true]:`, `data-[hover=true]:`, `data-[active=true]:`, `data-[focus-visible=true]:` for interaction states. Primitives emit these data attributes (Standard 1). **Interaction state is never a CVA variant input** (Standard 5).
185
+ - **`data-[icon=inline-start|inline-end]` selectors** for icon/spinner position spacing (Standard 6) — pair with logical-property utilities (`me-*`/`ms-*`) so RTL flips automatically.
186
+ - **`Platform.select()`** for platform-specific classes — web gets `data-[hover=true]` styles (hover exists on web); native responds only to `data-[active=true]` (press). Always set `default` (native) and `web` keys.
187
+ - **Shared style primitives** — import `DISABLED_CURSOR`, `TRANSITION_COLORS`, etc. from `../../styles/primitives` for cross-component consistency.
188
+ - **`web:` prefix** for web-only utilities — e.g., `web:outline-none`, `web:focus-visible:ring-2`.
189
+ - **`compoundVariants`** for variant × variant combinations where simple variant merging is insufficient.
190
+ - **`defaultVariants`** must match the destructured defaults in the component's `index.tsx`.
191
+ - **One `cva()` per sub-component** — root, text, icon, spinner, etc. each get their own variant function.
192
+ - **Export `VariantProps` types** — derived via `VariantProps<typeof variantFn>` for the component layer to consume.
193
+ - **No dynamic string construction** — all Tailwind class names must be statically detectable by the Tailwind scanner.
194
+ - **CSS variables for token values** — use `rounded-[var(--border-radius-button)]` syntax when referencing design tokens not mapped to Tailwind utilities.
@@ -1,31 +1,48 @@
1
1
  import { forwardRef, type ReactNode } from 'react';
2
2
  import { View, type ViewProps } from 'react-native';
3
- import { cn } from '@cdx-ui/utils';
3
+ import { cn, useStyleContext, withStyleContext } from '@cdx-ui/utils';
4
4
  import {
5
5
  cardContentVariants,
6
6
  cardFooterVariants,
7
7
  cardHeaderVariants,
8
8
  cardRootVariants,
9
+ type CardContentVariantProps,
10
+ type CardFooterVariantProps,
11
+ type CardVariantProps,
9
12
  } from './styles';
10
13
 
11
14
  // =============================================================================
12
15
  // STYLED ROOT COMPONENT
13
16
  // =============================================================================
14
17
 
15
- export interface CardProps extends ViewProps {
18
+ const SCOPE = 'CARD';
19
+
20
+ const Root = withStyleContext(View, SCOPE);
21
+
22
+ const useCardStyleContext = () => useStyleContext(SCOPE) as CardVariantProps;
23
+
24
+ export interface CardProps extends ViewProps, CardVariantProps {
16
25
  className?: string;
17
26
  children?: ReactNode;
18
27
  }
19
28
 
20
- const CardRoot = forwardRef<View, CardProps>(({ className, children, style, ...props }, ref) => {
21
- const computedClassName = cn(cardRootVariants(), className);
29
+ const CardRoot = forwardRef<View, CardProps>(
30
+ ({ className, children, style, fullBleed, ...props }, ref) => {
31
+ const computedClassName = cn(cardRootVariants(), className);
22
32
 
23
- return (
24
- <View ref={ref} className={computedClassName} style={style} {...props}>
25
- {children}
26
- </View>
27
- );
28
- });
33
+ return (
34
+ <Root
35
+ ref={ref}
36
+ className={computedClassName}
37
+ style={style}
38
+ context={{ fullBleed }}
39
+ {...props}
40
+ >
41
+ {children}
42
+ </Root>
43
+ );
44
+ },
45
+ );
29
46
 
30
47
  CardRoot.displayName = 'Card';
31
48
 
@@ -56,14 +73,18 @@ CardHeader.displayName = 'Card.Header';
56
73
  // STYLED CONTENT COMPONENT
57
74
  // =============================================================================
58
75
 
59
- export interface CardContentProps extends ViewProps {
76
+ export interface CardContentProps extends ViewProps, CardContentVariantProps {
60
77
  className?: string;
61
78
  children?: ReactNode;
62
79
  }
63
80
 
64
81
  const CardContent = forwardRef<View, CardContentProps>(
65
- ({ className, children, style, ...props }, ref) => {
66
- const computedClassName = cn(cardContentVariants(), className);
82
+ ({ className, children, style, fullBleed, ...props }, ref) => {
83
+ const { fullBleed: fullBleedFromContext } = useCardStyleContext();
84
+ const computedClassName = cn(
85
+ cardContentVariants({ fullBleed: fullBleed ?? fullBleedFromContext }),
86
+ className,
87
+ );
67
88
 
68
89
  return (
69
90
  <View ref={ref} className={computedClassName} style={style} {...props}>
@@ -79,14 +100,18 @@ CardContent.displayName = 'Card.Content';
79
100
  // STYLED FOOTER COMPONENT
80
101
  // =============================================================================
81
102
 
82
- export interface CardFooterProps extends ViewProps {
103
+ export interface CardFooterProps extends ViewProps, CardFooterVariantProps {
83
104
  className?: string;
84
105
  children?: ReactNode;
85
106
  }
86
107
 
87
108
  const CardFooter = forwardRef<View, CardFooterProps>(
88
- ({ className, children, style, ...props }, ref) => {
89
- const computedClassName = cn(cardFooterVariants(), className);
109
+ ({ className, children, style, fullBleed, ...props }, ref) => {
110
+ const { fullBleed: fullBleedFromContext } = useCardStyleContext();
111
+ const computedClassName = cn(
112
+ cardFooterVariants({ fullBleed: fullBleed ?? fullBleedFromContext }),
113
+ className,
114
+ );
90
115
 
91
116
  return (
92
117
  <View ref={ref} className={computedClassName} style={style} {...props}>
@@ -1,20 +1,31 @@
1
- import { cva } from 'class-variance-authority';
1
+ import { cva, VariantProps } from 'class-variance-authority';
2
2
 
3
3
  // ── Root ────────────────────────────────────────────────────
4
4
 
5
- export const cardRootVariants = cva([
6
- 'bg-surface-primary',
7
- 'border border-stroke-secondary',
8
- 'rounded-[var(--border-radius-default)]',
9
- 'overflow-hidden',
10
- ]);
5
+ export const cardRootVariants = cva(
6
+ [
7
+ 'bg-surface-primary',
8
+ 'border border-stroke-secondary',
9
+ 'rounded-[var(--border-radius-default)]',
10
+ 'overflow-hidden',
11
+ ],
12
+ {
13
+ variants: {
14
+ fullBleed: {
15
+ true: '',
16
+ false: '',
17
+ },
18
+ },
19
+ },
20
+ );
11
21
 
12
22
  // ── Header ──────────────────────────────────────────────────
13
23
 
14
24
  export const cardHeaderVariants = cva([
15
- 'flex-row items-center justify-between p-4',
16
25
  'border-t-8 border-t-surface-brand-strong',
17
- 'border-b border-b-solid border-b-stroke-secondary',
26
+ 'border-b border-solid border-b-stroke-secondary',
27
+ 'flex-row items-center justify-between gap-0.5',
28
+ 'px-5 py-3',
18
29
  ]);
19
30
 
20
31
  // ── Title ───────────────────────────────────────────────────
@@ -23,12 +34,28 @@ export const cardTitleVariants = cva(['flex-1']);
23
34
 
24
35
  // ── Content ─────────────────────────────────────────────────
25
36
 
26
- export const cardContentVariants = cva(['text-content-primary', 'p-4']);
37
+ export const cardContentVariants = cva(['text-content-primary', 'p-5'], {
38
+ variants: {
39
+ fullBleed: {
40
+ true: 'p-0',
41
+ },
42
+ },
43
+ });
27
44
 
28
45
  // ── Footer ──────────────────────────────────────────────────
29
46
 
30
- export const cardFooterVariants = cva([
31
- 'p-4 border-t',
32
- 'border-stroke-secondary',
33
- 'flex-row items-center gap-2',
34
- ]);
47
+ export const cardFooterVariants = cva(['flex-col items-stretch gap-2'], {
48
+ variants: {
49
+ fullBleed: {
50
+ true: 'p-5',
51
+ false: 'px-5 pb-5 pt-0',
52
+ },
53
+ },
54
+ defaultVariants: {
55
+ fullBleed: false,
56
+ },
57
+ });
58
+
59
+ export type CardVariantProps = VariantProps<typeof cardRootVariants>;
60
+ export type CardContentVariantProps = VariantProps<typeof cardContentVariants>;
61
+ export type CardFooterVariantProps = VariantProps<typeof cardFooterVariants>;