@cdx-ui/components 0.0.1-beta.4 → 0.0.1-beta.40

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 (283) hide show
  1. package/README.md +18 -11
  2. package/lib/commonjs/components/Avatar/index.js +1 -1
  3. package/lib/commonjs/components/Avatar/styles.js +36 -29
  4. package/lib/commonjs/components/Avatar/styles.js.map +1 -1
  5. package/lib/commonjs/components/Button/styles.js +2 -2
  6. package/lib/commonjs/components/Button/styles.js.map +1 -1
  7. package/lib/commonjs/components/CLAUDE.md +90 -0
  8. package/lib/commonjs/components/Card/index.js +22 -4
  9. package/lib/commonjs/components/Card/index.js.map +1 -1
  10. package/lib/commonjs/components/Card/styles.js +27 -5
  11. package/lib/commonjs/components/Card/styles.js.map +1 -1
  12. package/lib/commonjs/components/Checkbox/index.js +5 -29
  13. package/lib/commonjs/components/Checkbox/index.js.map +1 -1
  14. package/lib/commonjs/components/Checkbox/styles.js +39 -47
  15. package/lib/commonjs/components/Checkbox/styles.js.map +1 -1
  16. package/lib/commonjs/components/Chip/index.js +78 -9
  17. package/lib/commonjs/components/Chip/index.js.map +1 -1
  18. package/lib/commonjs/components/Chip/styles.js +207 -21
  19. package/lib/commonjs/components/Chip/styles.js.map +1 -1
  20. package/lib/commonjs/components/Field/index.js +8 -2
  21. package/lib/commonjs/components/Field/index.js.map +1 -1
  22. package/lib/commonjs/components/Field/styles.js +4 -4
  23. package/lib/commonjs/components/Field/styles.js.map +1 -1
  24. package/lib/commonjs/components/Heading/styles.js +1 -1
  25. package/lib/commonjs/components/Heading/styles.js.map +1 -1
  26. package/lib/commonjs/components/Icon/index.js +1 -2
  27. package/lib/commonjs/components/Icon/index.js.map +1 -1
  28. package/lib/commonjs/components/IconButton/index.js +6 -1
  29. package/lib/commonjs/components/IconButton/index.js.map +1 -1
  30. package/lib/commonjs/components/IconButton/styles.js +135 -10
  31. package/lib/commonjs/components/IconButton/styles.js.map +1 -1
  32. package/lib/commonjs/components/Input/styles.js +7 -6
  33. package/lib/commonjs/components/Input/styles.js.map +1 -1
  34. package/lib/commonjs/components/ListItem/index.js +283 -0
  35. package/lib/commonjs/components/ListItem/index.js.map +1 -0
  36. package/lib/commonjs/components/ListItem/styles.js +130 -0
  37. package/lib/commonjs/components/ListItem/styles.js.map +1 -0
  38. package/lib/commonjs/components/ProgressSegmented/index.js +22 -10
  39. package/lib/commonjs/components/ProgressSegmented/index.js.map +1 -1
  40. package/lib/commonjs/components/Radio/index.js +167 -0
  41. package/lib/commonjs/components/Radio/index.js.map +1 -0
  42. package/lib/commonjs/components/Radio/styles.js +31 -0
  43. package/lib/commonjs/components/Radio/styles.js.map +1 -0
  44. package/lib/commonjs/components/Text/styles.js +2 -2
  45. package/lib/commonjs/components/Text/styles.js.map +1 -1
  46. package/lib/commonjs/components/Tile/index.js +251 -0
  47. package/lib/commonjs/components/Tile/index.js.map +1 -0
  48. package/lib/commonjs/components/Tile/styles.js +52 -0
  49. package/lib/commonjs/components/Tile/styles.js.map +1 -0
  50. package/lib/commonjs/components/index.js +36 -0
  51. package/lib/commonjs/components/index.js.map +1 -1
  52. package/lib/commonjs/figma/Avatar.figma.js +54 -0
  53. package/lib/commonjs/figma/Avatar.figma.js.map +1 -0
  54. package/lib/commonjs/figma/Button.figma.js +28 -11
  55. package/lib/commonjs/figma/Button.figma.js.map +1 -1
  56. package/lib/commonjs/figma/CLAUDE.md +30 -0
  57. package/lib/commonjs/figma/Card.Header.figma.js +28 -0
  58. package/lib/commonjs/figma/Card.Header.figma.js.map +1 -0
  59. package/lib/commonjs/figma/Card.figma.js +42 -0
  60. package/lib/commonjs/figma/Card.figma.js.map +1 -0
  61. package/lib/commonjs/figma/Checkbox.figma.js +55 -0
  62. package/lib/commonjs/figma/Checkbox.figma.js.map +1 -0
  63. package/lib/commonjs/figma/Chip.figma.js +68 -0
  64. package/lib/commonjs/figma/Chip.figma.js.map +1 -0
  65. package/lib/commonjs/figma/Field.Input.figma.js +57 -0
  66. package/lib/commonjs/figma/Field.Input.figma.js.map +1 -0
  67. package/lib/commonjs/figma/Field.Select.figma.js +57 -0
  68. package/lib/commonjs/figma/Field.Select.figma.js.map +1 -0
  69. package/lib/commonjs/figma/Heading.figma.js +30 -0
  70. package/lib/commonjs/figma/Heading.figma.js.map +1 -0
  71. package/lib/commonjs/figma/Icon.figma.js +20 -0
  72. package/lib/commonjs/figma/Icon.figma.js.map +1 -0
  73. package/lib/commonjs/figma/IconButton.figma.js +47 -0
  74. package/lib/commonjs/figma/IconButton.figma.js.map +1 -0
  75. package/lib/commonjs/figma/Input.figma.js +52 -0
  76. package/lib/commonjs/figma/Input.figma.js.map +1 -0
  77. package/lib/commonjs/figma/ProgressSegmented.figma.js +39 -0
  78. package/lib/commonjs/figma/ProgressSegmented.figma.js.map +1 -0
  79. package/lib/commonjs/figma/Radio.figma.js +38 -0
  80. package/lib/commonjs/figma/Radio.figma.js.map +1 -0
  81. package/lib/commonjs/figma/Select.figma.js +53 -0
  82. package/lib/commonjs/figma/Select.figma.js.map +1 -0
  83. package/lib/commonjs/figma/Text.figma.js +29 -0
  84. package/lib/commonjs/figma/Text.figma.js.map +1 -0
  85. package/lib/commonjs/figma/icons.figma.batch.js +27 -0
  86. package/lib/commonjs/figma/icons.figma.batch.js.map +1 -0
  87. package/lib/commonjs/figma/icons.figma.batch.json +17705 -0
  88. package/lib/commonjs/styles/primitives.js +42 -5
  89. package/lib/commonjs/styles/primitives.js.map +1 -1
  90. package/lib/module/components/Avatar/index.js +1 -1
  91. package/lib/module/components/Avatar/styles.js +36 -29
  92. package/lib/module/components/Avatar/styles.js.map +1 -1
  93. package/lib/module/components/Button/styles.js +2 -2
  94. package/lib/module/components/Button/styles.js.map +1 -1
  95. package/lib/module/components/CLAUDE.md +90 -0
  96. package/lib/module/components/Card/index.js +23 -4
  97. package/lib/module/components/Card/index.js.map +1 -1
  98. package/lib/module/components/Card/styles.js +27 -5
  99. package/lib/module/components/Card/styles.js.map +1 -1
  100. package/lib/module/components/Checkbox/index.js +6 -30
  101. package/lib/module/components/Checkbox/index.js.map +1 -1
  102. package/lib/module/components/Checkbox/styles.js +40 -48
  103. package/lib/module/components/Checkbox/styles.js.map +1 -1
  104. package/lib/module/components/Chip/index.js +82 -13
  105. package/lib/module/components/Chip/index.js.map +1 -1
  106. package/lib/module/components/Chip/styles.js +206 -20
  107. package/lib/module/components/Chip/styles.js.map +1 -1
  108. package/lib/module/components/Field/index.js +9 -3
  109. package/lib/module/components/Field/index.js.map +1 -1
  110. package/lib/module/components/Field/styles.js +4 -4
  111. package/lib/module/components/Field/styles.js.map +1 -1
  112. package/lib/module/components/Heading/styles.js +1 -1
  113. package/lib/module/components/Heading/styles.js.map +1 -1
  114. package/lib/module/components/Icon/index.js +1 -2
  115. package/lib/module/components/Icon/index.js.map +1 -1
  116. package/lib/module/components/IconButton/index.js +6 -1
  117. package/lib/module/components/IconButton/index.js.map +1 -1
  118. package/lib/module/components/IconButton/styles.js +135 -10
  119. package/lib/module/components/IconButton/styles.js.map +1 -1
  120. package/lib/module/components/Input/styles.js +7 -6
  121. package/lib/module/components/Input/styles.js.map +1 -1
  122. package/lib/module/components/ListItem/index.js +226 -0
  123. package/lib/module/components/ListItem/index.js.map +1 -0
  124. package/lib/module/components/ListItem/styles.js +127 -0
  125. package/lib/module/components/ListItem/styles.js.map +1 -0
  126. package/lib/module/components/ProgressSegmented/index.js +23 -11
  127. package/lib/module/components/ProgressSegmented/index.js.map +1 -1
  128. package/lib/module/components/Radio/index.js +164 -0
  129. package/lib/module/components/Radio/index.js.map +1 -0
  130. package/lib/module/components/Radio/styles.js +27 -0
  131. package/lib/module/components/Radio/styles.js.map +1 -0
  132. package/lib/module/components/Text/styles.js +2 -2
  133. package/lib/module/components/Text/styles.js.map +1 -1
  134. package/lib/module/components/Tile/index.js +243 -0
  135. package/lib/module/components/Tile/index.js.map +1 -0
  136. package/lib/module/components/Tile/styles.js +48 -0
  137. package/lib/module/components/Tile/styles.js.map +1 -0
  138. package/lib/module/components/index.js +3 -0
  139. package/lib/module/components/index.js.map +1 -1
  140. package/lib/module/figma/Avatar.figma.js +48 -0
  141. package/lib/module/figma/Avatar.figma.js.map +1 -0
  142. package/lib/module/figma/Button.figma.js +28 -11
  143. package/lib/module/figma/Button.figma.js.map +1 -1
  144. package/lib/module/figma/CLAUDE.md +30 -0
  145. package/lib/module/figma/Card.Header.figma.js +22 -0
  146. package/lib/module/figma/Card.Header.figma.js.map +1 -0
  147. package/lib/module/figma/Card.figma.js +36 -0
  148. package/lib/module/figma/Card.figma.js.map +1 -0
  149. package/lib/module/figma/Checkbox.figma.js +49 -0
  150. package/lib/module/figma/Checkbox.figma.js.map +1 -0
  151. package/lib/module/figma/Chip.figma.js +62 -0
  152. package/lib/module/figma/Chip.figma.js.map +1 -0
  153. package/lib/module/figma/Field.Input.figma.js +51 -0
  154. package/lib/module/figma/Field.Input.figma.js.map +1 -0
  155. package/lib/module/figma/Field.Select.figma.js +51 -0
  156. package/lib/module/figma/Field.Select.figma.js.map +1 -0
  157. package/lib/module/figma/Heading.figma.js +24 -0
  158. package/lib/module/figma/Heading.figma.js.map +1 -0
  159. package/lib/module/figma/Icon.figma.js +14 -0
  160. package/lib/module/figma/Icon.figma.js.map +1 -0
  161. package/lib/module/figma/IconButton.figma.js +41 -0
  162. package/lib/module/figma/IconButton.figma.js.map +1 -0
  163. package/lib/module/figma/Input.figma.js +46 -0
  164. package/lib/module/figma/Input.figma.js.map +1 -0
  165. package/lib/module/figma/ProgressSegmented.figma.js +33 -0
  166. package/lib/module/figma/ProgressSegmented.figma.js.map +1 -0
  167. package/lib/module/figma/Radio.figma.js +32 -0
  168. package/lib/module/figma/Radio.figma.js.map +1 -0
  169. package/lib/module/figma/Select.figma.js +47 -0
  170. package/lib/module/figma/Select.figma.js.map +1 -0
  171. package/lib/module/figma/Text.figma.js +23 -0
  172. package/lib/module/figma/Text.figma.js.map +1 -0
  173. package/lib/module/figma/icons.figma.batch.js +22 -0
  174. package/lib/module/figma/icons.figma.batch.js.map +1 -0
  175. package/lib/module/figma/icons.figma.batch.json +17705 -0
  176. package/lib/module/styles/primitives.js +42 -5
  177. package/lib/module/styles/primitives.js.map +1 -1
  178. package/lib/typescript/components/Avatar/styles.d.ts +4 -4
  179. package/lib/typescript/components/Avatar/styles.d.ts.map +1 -1
  180. package/lib/typescript/components/Card/index.d.ts +4 -3
  181. package/lib/typescript/components/Card/index.d.ts.map +1 -1
  182. package/lib/typescript/components/Card/styles.d.ts +13 -3
  183. package/lib/typescript/components/Card/styles.d.ts.map +1 -1
  184. package/lib/typescript/components/Checkbox/index.d.ts +1 -2
  185. package/lib/typescript/components/Checkbox/index.d.ts.map +1 -1
  186. package/lib/typescript/components/Checkbox/styles.d.ts +4 -14
  187. package/lib/typescript/components/Checkbox/styles.d.ts.map +1 -1
  188. package/lib/typescript/components/Chip/index.d.ts +19 -6
  189. package/lib/typescript/components/Chip/index.d.ts.map +1 -1
  190. package/lib/typescript/components/Chip/styles.d.ts +13 -4
  191. package/lib/typescript/components/Chip/styles.d.ts.map +1 -1
  192. package/lib/typescript/components/Field/FieldLabel.web.d.ts +2 -2
  193. package/lib/typescript/components/Field/FieldLabel.web.d.ts.map +1 -1
  194. package/lib/typescript/components/Field/index.d.ts.map +1 -1
  195. package/lib/typescript/components/Field/styles.d.ts.map +1 -1
  196. package/lib/typescript/components/Heading/styles.d.ts +1 -1
  197. package/lib/typescript/components/Icon/index.d.ts.map +1 -1
  198. package/lib/typescript/components/IconButton/index.d.ts.map +1 -1
  199. package/lib/typescript/components/IconButton/styles.d.ts +6 -2
  200. package/lib/typescript/components/IconButton/styles.d.ts.map +1 -1
  201. package/lib/typescript/components/Input/styles.d.ts.map +1 -1
  202. package/lib/typescript/components/ListItem/index.d.ts +49 -0
  203. package/lib/typescript/components/ListItem/index.d.ts.map +1 -0
  204. package/lib/typescript/components/ListItem/styles.d.ts +30 -0
  205. package/lib/typescript/components/ListItem/styles.d.ts.map +1 -0
  206. package/lib/typescript/components/ProgressSegmented/index.d.ts +14 -3
  207. package/lib/typescript/components/ProgressSegmented/index.d.ts.map +1 -1
  208. package/lib/typescript/components/Radio/index.d.ts +40 -0
  209. package/lib/typescript/components/Radio/index.d.ts.map +1 -0
  210. package/lib/typescript/components/Radio/styles.d.ts +8 -0
  211. package/lib/typescript/components/Radio/styles.d.ts.map +1 -0
  212. package/lib/typescript/components/Stack/styles.d.ts +2 -2
  213. package/lib/typescript/components/Text/styles.d.ts +1 -1
  214. package/lib/typescript/components/Tile/index.d.ts +70 -0
  215. package/lib/typescript/components/Tile/index.d.ts.map +1 -0
  216. package/lib/typescript/components/Tile/styles.d.ts +18 -0
  217. package/lib/typescript/components/Tile/styles.d.ts.map +1 -0
  218. package/lib/typescript/components/index.d.ts +3 -0
  219. package/lib/typescript/components/index.d.ts.map +1 -1
  220. package/lib/typescript/figma/Avatar.figma.d.ts +8 -0
  221. package/lib/typescript/figma/Avatar.figma.d.ts.map +1 -0
  222. package/lib/typescript/figma/Button.figma.d.ts.map +1 -1
  223. package/lib/typescript/figma/Card.Header.figma.d.ts +8 -0
  224. package/lib/typescript/figma/Card.Header.figma.d.ts.map +1 -0
  225. package/lib/typescript/figma/Card.figma.d.ts +8 -0
  226. package/lib/typescript/figma/Card.figma.d.ts.map +1 -0
  227. package/lib/typescript/figma/Checkbox.figma.d.ts +8 -0
  228. package/lib/typescript/figma/Checkbox.figma.d.ts.map +1 -0
  229. package/lib/typescript/figma/Chip.figma.d.ts +8 -0
  230. package/lib/typescript/figma/Chip.figma.d.ts.map +1 -0
  231. package/lib/typescript/figma/Field.Input.figma.d.ts +8 -0
  232. package/lib/typescript/figma/Field.Input.figma.d.ts.map +1 -0
  233. package/lib/typescript/figma/Field.Select.figma.d.ts +8 -0
  234. package/lib/typescript/figma/Field.Select.figma.d.ts.map +1 -0
  235. package/lib/typescript/figma/Heading.figma.d.ts +8 -0
  236. package/lib/typescript/figma/Heading.figma.d.ts.map +1 -0
  237. package/lib/typescript/figma/Icon.figma.d.ts +8 -0
  238. package/lib/typescript/figma/Icon.figma.d.ts.map +1 -0
  239. package/lib/typescript/figma/IconButton.figma.d.ts +8 -0
  240. package/lib/typescript/figma/IconButton.figma.d.ts.map +1 -0
  241. package/lib/typescript/figma/Input.figma.d.ts +8 -0
  242. package/lib/typescript/figma/Input.figma.d.ts.map +1 -0
  243. package/lib/typescript/figma/ProgressSegmented.figma.d.ts +8 -0
  244. package/lib/typescript/figma/ProgressSegmented.figma.d.ts.map +1 -0
  245. package/lib/typescript/figma/Radio.figma.d.ts +8 -0
  246. package/lib/typescript/figma/Radio.figma.d.ts.map +1 -0
  247. package/lib/typescript/figma/Select.figma.d.ts +8 -0
  248. package/lib/typescript/figma/Select.figma.d.ts.map +1 -0
  249. package/lib/typescript/figma/Text.figma.d.ts +8 -0
  250. package/lib/typescript/figma/Text.figma.d.ts.map +1 -0
  251. package/lib/typescript/figma/icons.figma.batch.d.ts +14 -0
  252. package/lib/typescript/figma/icons.figma.batch.d.ts.map +1 -0
  253. package/lib/typescript/styles/primitives.d.ts +38 -0
  254. package/lib/typescript/styles/primitives.d.ts.map +1 -1
  255. package/package.json +4 -4
  256. package/src/components/Avatar/index.tsx +1 -1
  257. package/src/components/Avatar/styles.ts +49 -34
  258. package/src/components/Button/styles.ts +2 -2
  259. package/src/components/CLAUDE.md +90 -0
  260. package/src/components/Card/index.tsx +41 -16
  261. package/src/components/Card/styles.ts +43 -23
  262. package/src/components/Checkbox/index.tsx +8 -19
  263. package/src/components/Checkbox/styles.ts +82 -86
  264. package/src/components/Chip/index.tsx +104 -27
  265. package/src/components/Chip/styles.ts +232 -18
  266. package/src/components/Field/FieldLabel.web.tsx +1 -1
  267. package/src/components/Field/index.tsx +10 -3
  268. package/src/components/Field/styles.ts +5 -4
  269. package/src/components/Heading/styles.ts +1 -1
  270. package/src/components/Icon/index.tsx +1 -2
  271. package/src/components/IconButton/index.tsx +3 -2
  272. package/src/components/IconButton/styles.ts +136 -10
  273. package/src/components/Input/styles.ts +14 -9
  274. package/src/components/ListItem/index.tsx +285 -0
  275. package/src/components/ListItem/styles.ts +153 -0
  276. package/src/components/ProgressSegmented/index.tsx +49 -14
  277. package/src/components/Radio/index.tsx +192 -0
  278. package/src/components/Radio/styles.ts +59 -0
  279. package/src/components/Text/styles.ts +2 -2
  280. package/src/components/Tile/index.tsx +296 -0
  281. package/src/components/Tile/styles.ts +82 -0
  282. package/src/components/index.ts +3 -0
  283. package/src/styles/primitives.ts +42 -5
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+
3
+ import { forwardRef } from 'react';
4
+ import { Pressable, Text, View } from 'react-native';
5
+ import { createRadio, dataAttributes } from '@cdx-ui/primitives';
6
+ import { cn } from '@cdx-ui/utils';
7
+ import { radioGroupVariants, radioIndicatorVariants, radioInnerDotVariants, radioLabelVariants, radioRootVariants } from './styles';
8
+
9
+ // =============================================================================
10
+ // STYLED INDICATOR BASE
11
+ // =============================================================================
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ const RadioIndicatorBase = /*#__PURE__*/forwardRef(({
14
+ className,
15
+ children,
16
+ style,
17
+ ...props
18
+ }, ref) => {
19
+ // On web, data attributes arrive as `dataSet: { checked: true }`.
20
+ // On native, they arrive as individual `data-checked: "true"` props.
21
+ const ds = props.dataSet;
22
+ const isChecked = ds ? ds.checked === true : props['data-checked'] === 'true';
23
+ const isInvalid = ds ? ds.invalid === true : props['data-invalid'] === 'true';
24
+ const isHovered = ds ? ds.hover === true : props['data-hover'] === 'true';
25
+ return /*#__PURE__*/_jsxs(View, {
26
+ ref: ref,
27
+ className: cn(radioIndicatorVariants(), className),
28
+ style: style,
29
+ ...props,
30
+ children: [/*#__PURE__*/_jsx(View, {
31
+ className: cn(radioInnerDotVariants()),
32
+ ...dataAttributes({
33
+ checked: isChecked,
34
+ invalid: isInvalid,
35
+ hover: isHovered
36
+ })
37
+ }), children]
38
+ });
39
+ });
40
+ RadioIndicatorBase.displayName = 'Radio.IndicatorBase';
41
+
42
+ // =============================================================================
43
+ // PRIMITIVE ASSEMBLY
44
+ // =============================================================================
45
+
46
+ const RadioPrimitive = createRadio({
47
+ Root: Pressable,
48
+ Indicator: RadioIndicatorBase,
49
+ Label: Text,
50
+ Group: View
51
+ });
52
+
53
+ // =============================================================================
54
+ // RADIO ROOT
55
+ // =============================================================================
56
+
57
+ const RadioRoot = /*#__PURE__*/forwardRef(({
58
+ className,
59
+ children,
60
+ style,
61
+ ...props
62
+ }, ref) => {
63
+ const computedClassName = cn(radioRootVariants(), className);
64
+ return /*#__PURE__*/_jsx(RadioPrimitive, {
65
+ ref: ref,
66
+ className: computedClassName,
67
+ style: style,
68
+ ...props,
69
+ children: children
70
+ });
71
+ });
72
+ RadioRoot.displayName = 'Radio';
73
+
74
+ // =============================================================================
75
+ // RADIO INDICATOR
76
+ // =============================================================================
77
+
78
+ const RadioIndicator = /*#__PURE__*/forwardRef(({
79
+ className,
80
+ children,
81
+ style,
82
+ ...props
83
+ }, ref) => {
84
+ return /*#__PURE__*/_jsx(RadioPrimitive.Indicator, {
85
+ ref: ref,
86
+ className: className,
87
+ style: style,
88
+ ...props,
89
+ children: children
90
+ });
91
+ });
92
+ RadioIndicator.displayName = 'Radio.Indicator';
93
+
94
+ // =============================================================================
95
+ // RADIO LABEL
96
+ // =============================================================================
97
+
98
+ const RadioLabel = /*#__PURE__*/forwardRef(({
99
+ className,
100
+ children,
101
+ style,
102
+ ...props
103
+ }, ref) => {
104
+ const computedClassName = cn(radioLabelVariants(), className);
105
+ return /*#__PURE__*/_jsx(RadioPrimitive.Label, {
106
+ ref: ref,
107
+ className: computedClassName,
108
+ style: style,
109
+ ...props,
110
+ children: children
111
+ });
112
+ });
113
+ RadioLabel.displayName = 'Radio.Label';
114
+
115
+ // =============================================================================
116
+ // RADIO GROUP
117
+ // =============================================================================
118
+
119
+ const RadioGroup = /*#__PURE__*/forwardRef(({
120
+ className,
121
+ children,
122
+ style,
123
+ direction = 'column',
124
+ value,
125
+ defaultValue,
126
+ onChange,
127
+ isDisabled,
128
+ isInvalid,
129
+ isRequired,
130
+ isReadOnly,
131
+ name,
132
+ ...viewProps
133
+ }, ref) => {
134
+ const computedClassName = cn(radioGroupVariants({
135
+ direction
136
+ }), className);
137
+ return /*#__PURE__*/_jsx(RadioPrimitive.Group, {
138
+ ref: ref,
139
+ className: computedClassName,
140
+ style: style,
141
+ value: value,
142
+ defaultValue: defaultValue,
143
+ onChange: onChange,
144
+ isDisabled: isDisabled,
145
+ isInvalid: isInvalid,
146
+ isRequired: isRequired,
147
+ isReadOnly: isReadOnly,
148
+ name: name,
149
+ ...viewProps,
150
+ children: children
151
+ });
152
+ });
153
+ RadioGroup.displayName = 'Radio.Group';
154
+
155
+ // =============================================================================
156
+ // COMPOUND COMPONENT
157
+ // =============================================================================
158
+
159
+ export const Radio = Object.assign(RadioRoot, {
160
+ Indicator: RadioIndicator,
161
+ Label: RadioLabel,
162
+ Group: RadioGroup
163
+ });
164
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","Pressable","Text","View","createRadio","dataAttributes","cn","radioGroupVariants","radioIndicatorVariants","radioInnerDotVariants","radioLabelVariants","radioRootVariants","jsx","_jsx","jsxs","_jsxs","RadioIndicatorBase","className","children","style","props","ref","ds","dataSet","isChecked","checked","isInvalid","invalid","isHovered","hover","displayName","RadioPrimitive","Root","Indicator","Label","Group","RadioRoot","computedClassName","RadioIndicator","RadioLabel","RadioGroup","direction","value","defaultValue","onChange","isDisabled","isRequired","isReadOnly","name","viewProps","Radio","Object","assign"],"sourceRoot":"../../../../src","sources":["components/Radio/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAwB,OAAO;AAClD,SAASC,SAAS,EAAEC,IAAI,EAAkBC,IAAI,QAAwB,cAAc;AACpF,SAASC,WAAW,EAAEC,cAAc,QAA0B,oBAAoB;AAClF,SAASC,EAAE,QAAQ,eAAe;AAClC,SACEC,kBAAkB,EAClBC,sBAAsB,EACtBC,qBAAqB,EACrBC,kBAAkB,EAClBC,iBAAiB,QACZ,UAAU;;AAEjB;AACA;AACA;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEA,MAAMC,kBAAkB,gBAAGhB,UAAU,CACnC,CAAC;EAAEiB,SAAS;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACjD;EACA;EACA,MAAMC,EAAE,GAAIF,KAAK,CAASG,OAAO;EACjC,MAAMC,SAAS,GAAGF,EAAE,GAAGA,EAAE,CAACG,OAAO,KAAK,IAAI,GAAIL,KAAK,CAAS,cAAc,CAAC,KAAK,MAAM;EACtF,MAAMM,SAAS,GAAGJ,EAAE,GAAGA,EAAE,CAACK,OAAO,KAAK,IAAI,GAAIP,KAAK,CAAS,cAAc,CAAC,KAAK,MAAM;EACtF,MAAMQ,SAAS,GAAGN,EAAE,GAAGA,EAAE,CAACO,KAAK,KAAK,IAAI,GAAIT,KAAK,CAAS,YAAY,CAAC,KAAK,MAAM;EAElF,oBACEL,KAAA,CAACZ,IAAI;IAACkB,GAAG,EAAEA,GAAI;IAACJ,SAAS,EAAEX,EAAE,CAACE,sBAAsB,CAAC,CAAC,EAAES,SAAS,CAAE;IAACE,KAAK,EAAEA,KAAM;IAAA,GAAKC,KAAK;IAAAF,QAAA,gBACzFL,IAAA,CAACV,IAAI;MACHc,SAAS,EAAEX,EAAE,CAACG,qBAAqB,CAAC,CAAC,CAAE;MAAA,GACnCJ,cAAc,CAAC;QAAEoB,OAAO,EAAED,SAAS;QAAEG,OAAO,EAAED,SAAS;QAAEG,KAAK,EAAED;MAAU,CAAC;IAAC,CACjF,CAAC,EACDV,QAAQ;EAAA,CACL,CAAC;AAEX,CACF,CAAC;AAEDF,kBAAkB,CAACc,WAAW,GAAG,qBAAqB;;AAEtD;AACA;AACA;;AAEA,MAAMC,cAAc,GAAG3B,WAAW,CAAC;EACjC4B,IAAI,EAAE/B,SAAS;EACfgC,SAAS,EAAEjB,kBAAkB;EAC7BkB,KAAK,EAAEhC,IAAI;EACXiC,KAAK,EAAEhC;AACT,CAAC,CAAC;;AAEF;AACA;AACA;;AAOA,MAAMiC,SAAS,gBAAGpC,UAAU,CAAmB,CAAC;EAAEiB,SAAS;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAChG,MAAMgB,iBAAiB,GAAG/B,EAAE,CAACK,iBAAiB,CAAC,CAAC,EAAEM,SAAS,CAAC;EAE5D,oBACEJ,IAAA,CAACkB,cAAc;IAACV,GAAG,EAAEA,GAAW;IAACJ,SAAS,EAAEoB,iBAAkB;IAAClB,KAAK,EAAEA,KAAM;IAAA,GAAKC,KAAK;IAAAF,QAAA,EACnFA;EAAQ,CACK,CAAC;AAErB,CAAC,CAAC;AAEFkB,SAAS,CAACN,WAAW,GAAG,OAAO;;AAE/B;AACA;AACA;;AAOA,MAAMQ,cAAc,gBAAGtC,UAAU,CAC/B,CAAC;EAAEiB,SAAS;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACjD,oBACER,IAAA,CAACkB,cAAc,CAACE,SAAS;IAACZ,GAAG,EAAEA,GAAW;IAACJ,SAAS,EAAEA,SAAU;IAACE,KAAK,EAAEA,KAAM;IAAA,GAAKC,KAAK;IAAAF,QAAA,EACrFA;EAAQ,CACe,CAAC;AAE/B,CACF,CAAC;AAEDoB,cAAc,CAACR,WAAW,GAAG,iBAAiB;;AAE9C;AACA;AACA;;AAOA,MAAMS,UAAU,gBAAGvC,UAAU,CAC3B,CAAC;EAAEiB,SAAS;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACjD,MAAMgB,iBAAiB,GAAG/B,EAAE,CAACI,kBAAkB,CAAC,CAAC,EAAEO,SAAS,CAAC;EAE7D,oBACEJ,IAAA,CAACkB,cAAc,CAACG,KAAK;IAACb,GAAG,EAAEA,GAAW;IAACJ,SAAS,EAAEoB,iBAAkB;IAAClB,KAAK,EAAEA,KAAM;IAAA,GAAKC,KAAK;IAAAF,QAAA,EACzFA;EAAQ,CACW,CAAC;AAE3B,CACF,CAAC;AAEDqB,UAAU,CAACT,WAAW,GAAG,aAAa;;AAEtC;AACA;AACA;;AAgBA,MAAMU,UAAU,gBAAGxC,UAAU,CAC3B,CACE;EACEiB,SAAS;EACTC,QAAQ;EACRC,KAAK;EACLsB,SAAS,GAAG,QAAQ;EACpBC,KAAK;EACLC,YAAY;EACZC,QAAQ;EACRC,UAAU;EACVnB,SAAS;EACToB,UAAU;EACVC,UAAU;EACVC,IAAI;EACJ,GAAGC;AACL,CAAC,EACD5B,GAAG,KACA;EACH,MAAMgB,iBAAiB,GAAG/B,EAAE,CAACC,kBAAkB,CAAC;IAAEkC;EAAU,CAAC,CAAC,EAAExB,SAAS,CAAC;EAE1E,oBACEJ,IAAA,CAACkB,cAAc,CAACI,KAAK;IACnBd,GAAG,EAAEA,GAAW;IAChBJ,SAAS,EAAEoB,iBAAkB;IAC7BlB,KAAK,EAAEA,KAAM;IACbuB,KAAK,EAAEA,KAAM;IACbC,YAAY,EAAEA,YAAa;IAC3BC,QAAQ,EAAEA,QAAS;IACnBC,UAAU,EAAEA,UAAW;IACvBnB,SAAS,EAAEA,SAAU;IACrBoB,UAAU,EAAEA,UAAW;IACvBC,UAAU,EAAEA,UAAW;IACvBC,IAAI,EAAEA,IAAK;IAAA,GACPC,SAAS;IAAA/B,QAAA,EAEZA;EAAQ,CACW,CAAC;AAE3B,CACF,CAAC;AAEDsB,UAAU,CAACV,WAAW,GAAG,aAAa;;AAEtC;AACA;AACA;;AAQA,OAAO,MAAMoB,KAAK,GAAGC,MAAM,CAACC,MAAM,CAAChB,SAAS,EAAE;EAC5CH,SAAS,EAAEK,cAAc;EACzBJ,KAAK,EAAEK,UAAU;EACjBJ,KAAK,EAAEK;AACT,CAAC,CAA2B","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ import { Platform } from 'react-native';
4
+ import { cva } from 'class-variance-authority';
5
+ import { DISABLED_CURSOR, TRANSITION_COLORS } from '../../styles/primitives';
6
+ export const radioRootVariants = cva(['flex-row items-center gap-2', 'data-[disabled=true]:opacity-[var(--opacity-disabled)]', DISABLED_CURSOR]);
7
+ export const radioIndicatorVariants = cva(['items-center justify-center', 'rounded-[var(--border-radius-round)]', 'border-2', 'h-5 w-5', 'bg-surface-primary', 'data-[checked=false]:border-content-secondary', 'data-[checked=true]:border-stroke-action', 'data-[invalid=true]:border-stroke-danger', 'data-[checked=true]:data-[invalid=true]:border-stroke-danger', Platform.select({
8
+ web: [TRANSITION_COLORS, 'data-[hover=true]:data-[checked=true]:border-surface-action-strong-hover', 'data-[hover=true]:data-[invalid=true]:border-surface-danger-strong-hover', 'web:data-[focus-visible=true]:outline-none', 'web:data-[focus-visible=true]:ring-2 web:data-[focus-visible=true]:ring-[var(--color-stroke-ring)] web:data-[focus-visible=true]:ring-offset-2'].join(' '),
9
+ default: ''
10
+ })]);
11
+ export const radioInnerDotVariants = cva(['rounded-[var(--border-radius-round)]', 'h-2.5 w-2.5', 'scale-0', 'data-[checked=true]:scale-100', 'bg-surface-action-strong', 'data-[invalid=true]:bg-surface-danger-strong', Platform.select({
12
+ web: ['data-[hover=true]:bg-surface-action-strong-hover', 'data-[hover=true]:data-[invalid=true]:bg-surface-danger-strong-hover'].join(' '),
13
+ default: ''
14
+ })]);
15
+ export const radioLabelVariants = cva(['body-md', 'text-content-primary']);
16
+ export const radioGroupVariants = cva([], {
17
+ variants: {
18
+ direction: {
19
+ column: 'gap-2',
20
+ row: 'flex-row gap-4'
21
+ }
22
+ },
23
+ defaultVariants: {
24
+ direction: 'column'
25
+ }
26
+ });
27
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Platform","cva","DISABLED_CURSOR","TRANSITION_COLORS","radioRootVariants","radioIndicatorVariants","select","web","join","default","radioInnerDotVariants","radioLabelVariants","radioGroupVariants","variants","direction","column","row","defaultVariants"],"sourceRoot":"../../../../src","sources":["components/Radio/styles.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,GAAG,QAAQ,0BAA0B;AAC9C,SAASC,eAAe,EAAEC,iBAAiB,QAAQ,yBAAyB;AAE5E,OAAO,MAAMC,iBAAiB,GAAGH,GAAG,CAAC,CACnC,6BAA6B,EAC7B,wDAAwD,EACxDC,eAAe,CAChB,CAAC;AAEF,OAAO,MAAMG,sBAAsB,GAAGJ,GAAG,CAAC,CACxC,6BAA6B,EAC7B,sCAAsC,EACtC,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,+CAA+C,EAC/C,0CAA0C,EAC1C,0CAA0C,EAC1C,8DAA8D,EAC9DD,QAAQ,CAACM,MAAM,CAAC;EACdC,GAAG,EAAE,CACHJ,iBAAiB,EACjB,0EAA0E,EAC1E,0EAA0E,EAC1E,4CAA4C,EAC5C,gJAAgJ,CACjJ,CAACK,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;AACX,CAAC,CAAC,CACH,CAAC;AAEF,OAAO,MAAMC,qBAAqB,GAAGT,GAAG,CAAC,CACvC,sCAAsC,EACtC,aAAa,EACb,SAAS,EACT,+BAA+B,EAC/B,0BAA0B,EAC1B,8CAA8C,EAC9CD,QAAQ,CAACM,MAAM,CAAC;EACdC,GAAG,EAAE,CACH,kDAAkD,EAClD,sEAAsE,CACvE,CAACC,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;AACX,CAAC,CAAC,CACH,CAAC;AAEF,OAAO,MAAME,kBAAkB,GAAGV,GAAG,CAAC,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AAE1E,OAAO,MAAMW,kBAAkB,GAAGX,GAAG,CAAC,EAAE,EAAE;EACxCY,QAAQ,EAAE;IACRC,SAAS,EAAE;MACTC,MAAM,EAAE,OAAO;MACfC,GAAG,EAAE;IACP;EACF,CAAC;EACDC,eAAe,EAAE;IAAEH,SAAS,EAAE;EAAS;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -2,8 +2,8 @@
2
2
 
3
3
  import { Platform } from 'react-native';
4
4
  import { cva } from 'class-variance-authority';
5
- export const textStyle = cva([`text-content-primary font-normal`, Platform.select({
6
- web: 'font-sans my-0 bg-transparent display-inline no-underline',
5
+ export const textStyle = cva(['text-content-primary', Platform.select({
6
+ web: 'font-body my-0 bg-transparent no-underline',
7
7
  default: ''
8
8
  })], {
9
9
  variants: {
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","cva","textStyle","select","web","default","variants","size","xl","lg","md","sm","xs"],"sourceRoot":"../../../../src","sources":["components/Text/styles.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,GAAG,QAA2B,0BAA0B;AAEjE,OAAO,MAAMC,SAAS,GAAGD,GAAG,CAC1B,CACE,kCAAkC,EAClCD,QAAQ,CAACG,MAAM,CAAC;EACdC,GAAG,EAAE,2DAA2D;EAChEC,OAAO,EAAE;AACX,CAAC,CAAC,CACH,EACD;EACEC,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE;IACN;EACF;AACF,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Platform","cva","textStyle","select","web","default","variants","size","xl","lg","md","sm","xs"],"sourceRoot":"../../../../src","sources":["components/Text/styles.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,GAAG,QAA2B,0BAA0B;AAEjE,OAAO,MAAMC,SAAS,GAAGD,GAAG,CAC1B,CACE,sBAAsB,EACtBD,QAAQ,CAACG,MAAM,CAAC;EACdC,GAAG,EAAE,4CAA4C;EACjDC,OAAO,EAAE;AACX,CAAC,CAAC,CACH,EACD;EACEC,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE;IACN;EACF;AACF,CACF,CAAC","ignoreList":[]}
@@ -0,0 +1,243 @@
1
+ "use strict";
2
+
3
+ import { forwardRef } from 'react';
4
+ import { Pressable, Text, View } from 'react-native';
5
+ import { createTile, useTileContext } from '@cdx-ui/primitives';
6
+ import { Check } from '@cdx-ui/icons';
7
+ import { dataAttributes } from '@cdx-ui/primitives';
8
+ import { cn, useStyleContext, withStyleContext } from '@cdx-ui/utils';
9
+ import { checkboxIndicatorVariants, checkboxIconVariants } from '../Checkbox/styles';
10
+ import { Icon } from '../Icon';
11
+ import { radioIndicatorVariants, radioInnerDotVariants } from '../Radio/styles';
12
+ import { tileContentVariants, tileDescriptionVariants, tileGroupVariants, tileIndicatorVariants, tileLeadingSlotVariants, tileRootVariants, tileTitleVariants, tileTrailingSlotVariants } from './styles';
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ const TILE_SCOPE = 'TILE';
15
+ const TILE_GROUP_SCOPE = 'TILE_GROUP';
16
+ const RootPressable = withStyleContext(Pressable, TILE_SCOPE);
17
+ const GroupView = withStyleContext(View, TILE_GROUP_SCOPE);
18
+ const useTileGroupStyleContext = () => {
19
+ // `useStyleContext` types the result as a `Record`, but at runtime the value is
20
+ // `undefined` when no provider is in scope (e.g. standalone Tile). Cast through
21
+ // `unknown` to acknowledge that.
22
+ const ctx = useStyleContext(TILE_GROUP_SCOPE);
23
+ return ctx ?? {};
24
+ };
25
+ const TilePrimitive = createTile({
26
+ Pressable: RootPressable,
27
+ Group: GroupView,
28
+ LeadingSlot: View,
29
+ Content: View,
30
+ Title: Text,
31
+ Description: Text,
32
+ Indicator: View,
33
+ TrailingSlot: View
34
+ });
35
+
36
+ // =============================================================================
37
+ // TILE GROUP
38
+ // =============================================================================
39
+
40
+ /**
41
+ * Discriminated union mirroring `ITileGroupProps`, with `className` and layout variants added at
42
+ * the styled layer. Distributing the intersection across each branch keeps `interface … extends`
43
+ * ergonomics and avoids tripping `@typescript-eslint` on `(union) & { ... }`.
44
+ *
45
+ * `direction` and `spacing` constrain the group layout to the three supported patterns:
46
+ * - `direction="column"` + `spacing="default"` — vertical stack with gaps (default).
47
+ * - `direction="column"` + `spacing="none"` — tight vertical stack (rows touch).
48
+ * - `direction="row"` + `spacing="default"` — side-by-side horizontal layout.
49
+ *
50
+ * `shape` (when set) is propagated to child `Tile`s via `withStyleContext`, matching the
51
+ * Avatar size-propagation pattern. A per-tile `shape` prop overrides the inherited value.
52
+ */
53
+
54
+ const TileGroup = /*#__PURE__*/forwardRef(({
55
+ className,
56
+ style,
57
+ children,
58
+ direction,
59
+ spacing,
60
+ shape,
61
+ ...props
62
+ }, ref) => /*#__PURE__*/_jsx(TilePrimitive.Group, {
63
+ ref: ref,
64
+ className: cn(tileGroupVariants({
65
+ direction,
66
+ spacing
67
+ }), className),
68
+ style: style,
69
+ context: {
70
+ shape
71
+ },
72
+ ...props,
73
+ children: children
74
+ }));
75
+ TileGroup.displayName = 'Tile.Group';
76
+
77
+ // =============================================================================
78
+ // TILE ROOT
79
+ // =============================================================================
80
+
81
+ const TileRoot = /*#__PURE__*/forwardRef(({
82
+ shape: shapeProp,
83
+ showSeparator,
84
+ className,
85
+ style,
86
+ context,
87
+ ...props
88
+ }, ref) => {
89
+ const {
90
+ shape: inheritedShape
91
+ } = useTileGroupStyleContext();
92
+ const shape = shapeProp ?? inheritedShape ?? 'card';
93
+ const computedClassName = cn(tileRootVariants({
94
+ shape,
95
+ showSeparator
96
+ }), className);
97
+ return /*#__PURE__*/_jsx(TilePrimitive, {
98
+ ref: ref,
99
+ className: computedClassName,
100
+ context: {
101
+ ...context,
102
+ shape
103
+ },
104
+ style: style,
105
+ ...props
106
+ });
107
+ });
108
+ TileRoot.displayName = 'Tile';
109
+
110
+ // =============================================================================
111
+ // SLOTS
112
+ // =============================================================================
113
+
114
+ const TileLeadingSlot = /*#__PURE__*/forwardRef(({
115
+ className,
116
+ style,
117
+ ...props
118
+ }, ref) => /*#__PURE__*/_jsx(TilePrimitive.LeadingSlot, {
119
+ ref: ref,
120
+ className: cn(tileLeadingSlotVariants(), className),
121
+ style: style,
122
+ ...props
123
+ }));
124
+ TileLeadingSlot.displayName = 'Tile.LeadingSlot';
125
+ const TileContent = /*#__PURE__*/forwardRef(({
126
+ className,
127
+ style,
128
+ ...props
129
+ }, ref) => /*#__PURE__*/_jsx(TilePrimitive.Content, {
130
+ ref: ref,
131
+ className: cn(tileContentVariants(), className),
132
+ style: style,
133
+ ...props
134
+ }));
135
+ TileContent.displayName = 'Tile.Content';
136
+ const TileTitle = /*#__PURE__*/forwardRef(({
137
+ className,
138
+ style,
139
+ numberOfLines = 1,
140
+ ...props
141
+ }, ref) => /*#__PURE__*/_jsx(TilePrimitive.Title, {
142
+ ref: ref,
143
+ className: cn(tileTitleVariants(), className),
144
+ style: style,
145
+ numberOfLines: numberOfLines,
146
+ ...props
147
+ }));
148
+ TileTitle.displayName = 'Tile.Title';
149
+ const TileDescription = /*#__PURE__*/forwardRef(({
150
+ className,
151
+ style,
152
+ ...props
153
+ }, ref) => /*#__PURE__*/_jsx(TilePrimitive.Description, {
154
+ ref: ref,
155
+ className: cn(tileDescriptionVariants(), className),
156
+ style: style,
157
+ ...props
158
+ }));
159
+ TileDescription.displayName = 'Tile.Description';
160
+
161
+ /**
162
+ * Decorative selection affordance. Renders pure CVA-styled Views — no interactive hooks,
163
+ * no nested Pressable, zero runtime overhead. The Tile root owns the press target and
164
+ * ARIA role; this subtree is `aria-hidden` via `createTileIndicator`.
165
+ *
166
+ * The visual is inferred from the tile context: `single` (radio semantics) → radio ring,
167
+ * `multiple` (checkbox semantics) → checkbox square. An explicit `indicatorType` prop
168
+ * overrides — primarily for standalone tiles that want a radio-style visual.
169
+ */
170
+ function TileIndicatorVisual({
171
+ indicatorType
172
+ }) {
173
+ const {
174
+ isSelected,
175
+ isDisabled,
176
+ selectionType
177
+ } = useTileContext();
178
+ const effectiveType = indicatorType ?? (selectionType === 'single' ? 'radio' : 'checkbox');
179
+ const stateAttrs = dataAttributes({
180
+ checked: isSelected,
181
+ disabled: isDisabled
182
+ });
183
+ if (effectiveType === 'radio') {
184
+ return /*#__PURE__*/_jsx(View, {
185
+ className: radioIndicatorVariants(),
186
+ ...stateAttrs,
187
+ children: /*#__PURE__*/_jsx(View, {
188
+ className: radioInnerDotVariants(),
189
+ ...dataAttributes({
190
+ checked: isSelected,
191
+ invalid: false
192
+ })
193
+ })
194
+ });
195
+ }
196
+ return /*#__PURE__*/_jsx(View, {
197
+ className: cn(checkboxIndicatorVariants()),
198
+ ...stateAttrs,
199
+ children: isSelected && /*#__PURE__*/_jsx(Icon, {
200
+ as: Check,
201
+ className: checkboxIconVariants()
202
+ })
203
+ });
204
+ }
205
+ const TileIndicator = /*#__PURE__*/forwardRef(({
206
+ className,
207
+ children,
208
+ style,
209
+ indicatorType,
210
+ ...props
211
+ }, ref) => /*#__PURE__*/_jsx(TilePrimitive.Indicator, {
212
+ ref: ref,
213
+ className: cn(tileIndicatorVariants(), className),
214
+ style: style,
215
+ indicatorType: indicatorType,
216
+ ...props,
217
+ children: children ?? /*#__PURE__*/_jsx(TileIndicatorVisual, {
218
+ indicatorType: indicatorType
219
+ })
220
+ }));
221
+ TileIndicator.displayName = 'Tile.Indicator';
222
+ const TileTrailingSlot = /*#__PURE__*/forwardRef(({
223
+ className,
224
+ style,
225
+ ...props
226
+ }, ref) => /*#__PURE__*/_jsx(TilePrimitive.TrailingSlot, {
227
+ ref: ref,
228
+ className: cn(tileTrailingSlotVariants(), className),
229
+ style: style,
230
+ ...props
231
+ }));
232
+ TileTrailingSlot.displayName = 'Tile.TrailingSlot';
233
+ export const Tile = Object.assign(TileRoot, {
234
+ Group: TileGroup,
235
+ LeadingSlot: TileLeadingSlot,
236
+ Content: TileContent,
237
+ Title: TileTitle,
238
+ Description: TileDescription,
239
+ Indicator: TileIndicator,
240
+ TrailingSlot: TileTrailingSlot
241
+ });
242
+ export { useTileContext };
243
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","Pressable","Text","View","createTile","useTileContext","Check","dataAttributes","cn","useStyleContext","withStyleContext","checkboxIndicatorVariants","checkboxIconVariants","Icon","radioIndicatorVariants","radioInnerDotVariants","tileContentVariants","tileDescriptionVariants","tileGroupVariants","tileIndicatorVariants","tileLeadingSlotVariants","tileRootVariants","tileTitleVariants","tileTrailingSlotVariants","jsx","_jsx","TILE_SCOPE","TILE_GROUP_SCOPE","RootPressable","GroupView","useTileGroupStyleContext","ctx","TilePrimitive","Group","LeadingSlot","Content","Title","Description","Indicator","TrailingSlot","TileGroup","className","style","children","direction","spacing","shape","props","ref","context","displayName","TileRoot","shapeProp","showSeparator","inheritedShape","computedClassName","TileLeadingSlot","TileContent","TileTitle","numberOfLines","TileDescription","TileIndicatorVisual","indicatorType","isSelected","isDisabled","selectionType","effectiveType","stateAttrs","checked","disabled","invalid","as","TileIndicator","TileTrailingSlot","Tile","Object","assign"],"sourceRoot":"../../../../src","sources":["components/Tile/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ import { Platform } from 'react-native';
4
+ import { cva } from 'class-variance-authority';
5
+ import { TRANSITION_COLORS } from '../../styles/primitives';
6
+ export const tileGroupVariants = cva(['flex w-full'], {
7
+ variants: {
8
+ direction: {
9
+ column: 'flex-col',
10
+ row: 'flex-row'
11
+ },
12
+ spacing: {
13
+ default: 'gap-2',
14
+ none: 'gap-0'
15
+ }
16
+ },
17
+ defaultVariants: {
18
+ direction: 'column',
19
+ spacing: 'default'
20
+ }
21
+ });
22
+ export const tileRootVariants = cva(['flex-row self-stretch gap-3 px-4 py-3', 'data-[disabled=true]:opacity-50', TRANSITION_COLORS, Platform.select({
23
+ web: ['outline-none', 'data-[hover=true]:data-[disabled=false]:bg-surface-action-tint-hover', 'data-[active=true]:data-[disabled=false]:data-[hover=true]:bg-surface-action-tint-active', 'data-[hover=true]:data-[disabled=false]:data-[state=unselected]:border-stroke-action', 'focus-visible:data-[disabled=false]:ring-2 focus-visible:data-[disabled=false]:ring-stroke-focus focus-visible:data-[disabled=false]:ring-offset-2'].join(' '),
24
+ default: ['data-[active=true]:bg-surface-action-tint-hover', 'data-[active=true]:border-stroke-action'].join(' ')
25
+ })], {
26
+ variants: {
27
+ shape: {
28
+ flat: 'rounded-none border-0 bg-transparent',
29
+ card: ['rounded-[var(--border-radius-default)] border-1 border-solid', 'border-stroke-secondary', 'bg-surface-primary', 'data-[state=selected]:border-stroke-action', 'data-[state=selected]:border-1.5', 'data-[state=selected]:bg-surface-action-tint'].join(' ')
30
+ },
31
+ showSeparator: {
32
+ true: ['border-b border-solid border-stroke-secondary! native:data-[active=true]:border-stroke-secondary' // Override border-stroke-action on hover
33
+ ],
34
+ false: ''
35
+ }
36
+ },
37
+ defaultVariants: {
38
+ shape: 'card',
39
+ showSeparator: false
40
+ }
41
+ });
42
+ export const tileLeadingSlotVariants = cva(['flex shrink-0 items-center justify-center']);
43
+ export const tileTrailingSlotVariants = cva(['flex shrink-0 items-center justify-center']);
44
+ export const tileContentVariants = cva(['min-w-0 flex-1 flex-col gap-0.5 no-underline']);
45
+ export const tileTitleVariants = cva(['text-base font-medium text-content-primary no-underline']);
46
+ export const tileDescriptionVariants = cva(['text-sm text-content-secondary no-underline']);
47
+ export const tileIndicatorVariants = cva(['flex shrink-0 items-center justify-center']);
48
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Platform","cva","TRANSITION_COLORS","tileGroupVariants","variants","direction","column","row","spacing","default","none","defaultVariants","tileRootVariants","select","web","join","shape","flat","card","showSeparator","true","false","tileLeadingSlotVariants","tileTrailingSlotVariants","tileContentVariants","tileTitleVariants","tileDescriptionVariants","tileIndicatorVariants"],"sourceRoot":"../../../../src","sources":["components/Tile/styles.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,GAAG,QAA2B,0BAA0B;AACjE,SAASC,iBAAiB,QAAQ,yBAAyB;AAE3D,OAAO,MAAMC,iBAAiB,GAAGF,GAAG,CAAC,CAAC,aAAa,CAAC,EAAE;EACpDG,QAAQ,EAAE;IACRC,SAAS,EAAE;MACTC,MAAM,EAAE,UAAU;MAClBC,GAAG,EAAE;IACP,CAAC;IACDC,OAAO,EAAE;MACPC,OAAO,EAAE,OAAO;MAChBC,IAAI,EAAE;IACR;EACF,CAAC;EACDC,eAAe,EAAE;IACfN,SAAS,EAAE,QAAQ;IACnBG,OAAO,EAAE;EACX;AACF,CAAC,CAAC;AAIF,OAAO,MAAMI,gBAAgB,GAAGX,GAAG,CACjC,CACE,uCAAuC,EACvC,iCAAiC,EACjCC,iBAAiB,EACjBF,QAAQ,CAACa,MAAM,CAAC;EACdC,GAAG,EAAE,CACH,cAAc,EACd,sEAAsE,EACtE,0FAA0F,EAC1F,sFAAsF,EACtF,oJAAoJ,CACrJ,CAACC,IAAI,CAAC,GAAG,CAAC;EACXN,OAAO,EAAE,CACP,iDAAiD,EACjD,yCAAyC,CAC1C,CAACM,IAAI,CAAC,GAAG;AACZ,CAAC,CAAC,CACH,EACD;EACEX,QAAQ,EAAE;IACRY,KAAK,EAAE;MACLC,IAAI,EAAE,sCAAsC;MAC5CC,IAAI,EAAE,CACJ,8DAA8D,EAC9D,yBAAyB,EACzB,oBAAoB,EACpB,4CAA4C,EAC5C,kCAAkC,EAClC,8CAA8C,CAC/C,CAACH,IAAI,CAAC,GAAG;IACZ,CAAC;IACDI,aAAa,EAAE;MACbC,IAAI,EAAE,CACJ,kGAAkG,CAAE;MAAA,CACrG;MACDC,KAAK,EAAE;IACT;EACF,CAAC;EACDV,eAAe,EAAE;IACfK,KAAK,EAAE,MAAM;IACbG,aAAa,EAAE;EACjB;AACF,CACF,CAAC;AAED,OAAO,MAAMG,uBAAuB,GAAGrB,GAAG,CAAC,CAAC,2CAA2C,CAAC,CAAC;AAEzF,OAAO,MAAMsB,wBAAwB,GAAGtB,GAAG,CAAC,CAAC,2CAA2C,CAAC,CAAC;AAE1F,OAAO,MAAMuB,mBAAmB,GAAGvB,GAAG,CAAC,CAAC,8CAA8C,CAAC,CAAC;AAExF,OAAO,MAAMwB,iBAAiB,GAAGxB,GAAG,CAAC,CAAC,yDAAyD,CAAC,CAAC;AAEjG,OAAO,MAAMyB,uBAAuB,GAAGzB,GAAG,CAAC,CAAC,6CAA6C,CAAC,CAAC;AAE3F,OAAO,MAAM0B,qBAAqB,GAAG1B,GAAG,CAAC,CAAC,2CAA2C,CAAC,CAAC","ignoreList":[]}
@@ -15,11 +15,14 @@ export * from './Image';
15
15
  export * from './Input';
16
16
  export * from './OtpInput';
17
17
  export * from './Link';
18
+ export * from './ListItem';
18
19
  export * from './ProgressBar';
19
20
  export * from './ProgressSegmented';
21
+ export * from './Radio';
20
22
  export * from './Select';
21
23
  export * from './VirtualizedList';
22
24
  export * from './Switch';
25
+ export * from './Tile';
23
26
  export { HStack, VStack } from './Stack';
24
27
  export * from './Heading';
25
28
  export * from './Text';
@@ -1 +1 @@
1
- {"version":3,"names":["HStack","VStack"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA,cAAc,eAAe;AAC7B,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,OAAO;AACrB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,QAAQ;AACtB,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,YAAY;AAC1B,cAAc,QAAQ;AACtB,cAAc,eAAe;AAC7B,cAAc,qBAAqB;AACnC,cAAc,UAAU;AACxB,cAAc,mBAAmB;AACjC,cAAc,UAAU;AACxB,SAASA,MAAM,EAAEC,MAAM,QAAQ,SAAS;AACxC,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["HStack","VStack"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA,cAAc,eAAe;AAC7B,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,OAAO;AACrB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,QAAQ;AACtB,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,YAAY;AAC1B,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,eAAe;AAC7B,cAAc,qBAAqB;AACnC,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,mBAAmB;AACjC,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,SAASA,MAAM,EAAEC,MAAM,QAAQ,SAAS;AACxC,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,cAAc","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ // url=https://www.figma.com/design/0lEVMVlLj8ZS4fgItr3pmd/%E2%AD%90-Forge-DS--React-Native-Components?node-id=449-377
4
+ // source=packages/components/src/components/Avatar/index.tsx
5
+ // component=Avatar
6
+ import figma from 'figma';
7
+ const instance = figma.selectedInstance;
8
+
9
+ // size: 1:1 mapping between Figma and code values
10
+ const size = instance.getEnum('size', {
11
+ '2xs': '2xs',
12
+ xs: 'xs',
13
+ sm: 'sm',
14
+ md: 'md',
15
+ lg: 'lg',
16
+ xl: 'xl',
17
+ '2xl': '2xl'
18
+ });
19
+
20
+ // type: VARIANT — determines which Avatar sub-component to render.
21
+ // Not a code prop; used only to choose Avatar.Image, Avatar.Text, or Avatar.Icon.
22
+ const type = instance.getEnum('type', {
23
+ image: 'image',
24
+ text: 'text',
25
+ icon: 'icon'
26
+ });
27
+
28
+ // icon: INSTANCE_SWAP → Avatar.Icon `as` prop (CdxIcon identifier).
29
+ // Prefer metadata.props.componentName exposed by icon Code Connect templates.
30
+ // Falls back to executeTemplate().example (placeholder pill) when the icon lacks Code Connect.
31
+ const iconResult = instance.getInstanceSwap('icon')?.executeTemplate();
32
+ const iconName = iconResult?.metadata?.props?.componentName;
33
+ const iconSnippet = iconName ?? iconResult?.example;
34
+ const iconImports = iconName ? [`import { ${iconName} } from '@cdx-ui/icons'`] : [];
35
+
36
+ // text: TEXT property — the initials or label rendered inside Avatar.Text
37
+ const textContent = instance.getString('text');
38
+ export default {
39
+ id: 'avatar',
40
+ imports: ["import { Avatar } from '@cdx-ui/components'", ...iconImports],
41
+ example: figma.code`
42
+ <Avatar size="${size}">
43
+ ${type === 'image' ? figma.code`<Avatar.Image src="..." />` : null}
44
+ ${type === 'text' ? figma.code`<Avatar.Text>${textContent}</Avatar.Text>` : null}
45
+ ${type === 'icon' ? figma.code`<Avatar.Icon as={${iconSnippet}} />` : null}
46
+ </Avatar>`
47
+ };
48
+ //# sourceMappingURL=Avatar.figma.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["figma","instance","selectedInstance","size","getEnum","xs","sm","md","lg","xl","type","image","text","icon","iconResult","getInstanceSwap","executeTemplate","iconName","metadata","props","componentName","iconSnippet","example","iconImports","textContent","getString","id","imports","code"],"sourceRoot":"../../../src","sources":["figma/Avatar.figma.ts"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,KAAK,MAAM,OAAO;AAEzB,MAAMC,QAAQ,GAAGD,KAAK,CAACE,gBAAgB;;AAEvC;AACA,MAAMC,IAAI,GAAGF,QAAQ,CAACG,OAAO,CAAC,MAAM,EAAE;EACpC,KAAK,EAAE,KAAK;EACZC,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE,IAAI;EACR,KAAK,EAAE;AACT,CAAC,CAAC;;AAEF;AACA;AACA,MAAMC,IAAI,GAAGT,QAAQ,CAACG,OAAO,CAAC,MAAM,EAAE;EACpCO,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE;AACR,CAAC,CAAC;;AAEF;AACA;AACA;AACA,MAAMC,UAAU,GAAGb,QAAQ,CAACc,eAAe,CAAC,MAAM,CAAC,EAAEC,eAAe,CAAC,CAAC;AACtE,MAAMC,QAAQ,GAAGH,UAAU,EAAEI,QAAQ,EAAEC,KAAK,EAAEC,aAAmC;AACjF,MAAMC,WAAW,GAAGJ,QAAQ,IAAIH,UAAU,EAAEQ,OAAO;AAEnD,MAAMC,WAAW,GAAGN,QAAQ,GAAG,CAAC,YAAYA,QAAQ,yBAAyB,CAAC,GAAG,EAAE;;AAEnF;AACA,MAAMO,WAAW,GAAGvB,QAAQ,CAACwB,SAAS,CAAC,MAAM,CAAC;AAE9C,eAAe;EACbC,EAAE,EAAE,QAAQ;EACZC,OAAO,EAAE,CAAC,6CAA6C,EAAE,GAAGJ,WAAW,CAAC;EACxED,OAAO,EAAEtB,KAAK,CAAC4B,IAAI;AACrB,gBAAgBzB,IAAI;AACpB,IAAIO,IAAI,KAAK,OAAO,GAAGV,KAAK,CAAC4B,IAAI,4BAA4B,GAAG,IAAI;AACpE,IAAIlB,IAAI,KAAK,MAAM,GAAGV,KAAK,CAAC4B,IAAI,gBAAgBJ,WAAW,gBAAgB,GAAG,IAAI;AAClF,IAAId,IAAI,KAAK,MAAM,GAAGV,KAAK,CAAC4B,IAAI,oBAAoBP,WAAW,MAAM,GAAG,IAAI;AAC5E;AACA,CAAC","ignoreList":[]}