@coinbase/cds-mcp-server 8.17.2 → 8.17.4

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 (284) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/mcp-docs/mobile/components/Accordion.txt +188 -0
  3. package/mcp-docs/mobile/components/AccordionItem.txt +29 -0
  4. package/mcp-docs/mobile/components/Alert.txt +155 -0
  5. package/mcp-docs/mobile/components/AreaChart.txt +265 -0
  6. package/mcp-docs/mobile/components/Avatar.txt +195 -0
  7. package/mcp-docs/mobile/components/AvatarButton.txt +225 -0
  8. package/mcp-docs/mobile/components/Banner.txt +221 -0
  9. package/mcp-docs/mobile/components/BarChart.txt +815 -0
  10. package/mcp-docs/mobile/components/Box.txt +173 -0
  11. package/mcp-docs/mobile/components/BrowserBar.txt +146 -0
  12. package/mcp-docs/mobile/components/Button.txt +198 -0
  13. package/mcp-docs/mobile/components/ButtonGroup.txt +79 -0
  14. package/mcp-docs/mobile/components/Carousel.txt +1083 -0
  15. package/mcp-docs/mobile/components/CartesianChart.txt +825 -0
  16. package/mcp-docs/mobile/components/CellMedia.txt +70 -0
  17. package/mcp-docs/mobile/components/Checkbox.txt +245 -0
  18. package/mcp-docs/mobile/components/CheckboxCell.txt +201 -0
  19. package/mcp-docs/mobile/components/CheckboxGroup.txt +284 -0
  20. package/mcp-docs/mobile/components/Chip.txt +194 -0
  21. package/mcp-docs/mobile/components/Coachmark.txt +157 -0
  22. package/mcp-docs/mobile/components/Collapsible.txt +104 -0
  23. package/mcp-docs/mobile/components/ContainedAssetCard.txt +134 -0
  24. package/mcp-docs/mobile/components/ContentCard.txt +365 -0
  25. package/mcp-docs/mobile/components/ContentCardBody.txt +135 -0
  26. package/mcp-docs/mobile/components/ContentCardFooter.txt +127 -0
  27. package/mcp-docs/mobile/components/ContentCardHeader.txt +145 -0
  28. package/mcp-docs/mobile/components/ContentCell.txt +226 -0
  29. package/mcp-docs/mobile/components/ControlGroup.txt +443 -0
  30. package/mcp-docs/mobile/components/DatePicker.txt +496 -0
  31. package/mcp-docs/mobile/components/Divider.txt +138 -0
  32. package/mcp-docs/mobile/components/DotCount.txt +145 -0
  33. package/mcp-docs/mobile/components/DotStatusColor.txt +58 -0
  34. package/mcp-docs/mobile/components/DotSymbol.txt +134 -0
  35. package/mcp-docs/mobile/components/Fallback.txt +157 -0
  36. package/mcp-docs/mobile/components/FloatingAssetCard.txt +155 -0
  37. package/mcp-docs/mobile/components/HStack.txt +234 -0
  38. package/mcp-docs/mobile/components/HeroSquare.txt +47 -0
  39. package/mcp-docs/mobile/components/Icon.txt +51 -0
  40. package/mcp-docs/mobile/components/IconButton.txt +268 -0
  41. package/mcp-docs/mobile/components/InputChip.txt +187 -0
  42. package/mcp-docs/mobile/components/Interactable.txt +186 -0
  43. package/mcp-docs/mobile/components/LineChart.txt +1324 -0
  44. package/mcp-docs/mobile/components/Link.txt +291 -0
  45. package/mcp-docs/mobile/components/ListCell.txt +412 -0
  46. package/mcp-docs/mobile/components/LogoMark.txt +84 -0
  47. package/mcp-docs/mobile/components/LogoWordMark.txt +93 -0
  48. package/mcp-docs/mobile/components/Lottie.txt +138 -0
  49. package/mcp-docs/mobile/components/LottieStatusAnimation.txt +46 -0
  50. package/mcp-docs/mobile/components/Modal.txt +83 -0
  51. package/mcp-docs/mobile/components/ModalBody.txt +33 -0
  52. package/mcp-docs/mobile/components/ModalFooter.txt +24 -0
  53. package/mcp-docs/mobile/components/ModalHeader.txt +27 -0
  54. package/mcp-docs/mobile/components/MultiContentModule.txt +379 -0
  55. package/mcp-docs/mobile/components/NavigationTitle.txt +131 -0
  56. package/mcp-docs/mobile/components/NavigationTitleSelect.txt +141 -0
  57. package/mcp-docs/mobile/components/NudgeCard.txt +89 -0
  58. package/mcp-docs/mobile/components/Numpad.txt +340 -0
  59. package/mcp-docs/mobile/components/Overlay.txt +151 -0
  60. package/mcp-docs/mobile/components/PageFooter.txt +160 -0
  61. package/mcp-docs/mobile/components/PageHeader.txt +185 -0
  62. package/mcp-docs/mobile/components/PeriodSelector.txt +407 -0
  63. package/mcp-docs/mobile/components/Pictogram.txt +47 -0
  64. package/mcp-docs/mobile/components/Point.txt +204 -0
  65. package/mcp-docs/mobile/components/PortalProvider.txt +78 -0
  66. package/mcp-docs/mobile/components/Pressable.txt +210 -0
  67. package/mcp-docs/mobile/components/ProgressBar.txt +129 -0
  68. package/mcp-docs/mobile/components/ProgressBarWithFixedLabels.txt +160 -0
  69. package/mcp-docs/mobile/components/ProgressBarWithFloatLabel.txt +137 -0
  70. package/mcp-docs/mobile/components/ProgressCircle.txt +236 -0
  71. package/mcp-docs/mobile/components/Radio.txt +241 -0
  72. package/mcp-docs/mobile/components/RadioCell.txt +201 -0
  73. package/mcp-docs/mobile/components/RadioGroup.txt +281 -0
  74. package/mcp-docs/mobile/components/ReferenceLine.txt +152 -0
  75. package/mcp-docs/mobile/components/RemoteImage.txt +105 -0
  76. package/mcp-docs/mobile/components/RemoteImageGroup.txt +60 -0
  77. package/mcp-docs/mobile/components/RollingNumber.txt +788 -0
  78. package/mcp-docs/mobile/components/Scrubber.txt +203 -0
  79. package/mcp-docs/mobile/components/SearchInput.txt +191 -0
  80. package/mcp-docs/mobile/components/SectionHeader.txt +204 -0
  81. package/mcp-docs/mobile/components/SegmentedTabs.txt +315 -0
  82. package/mcp-docs/mobile/components/Select.txt +211 -0
  83. package/mcp-docs/mobile/components/SelectChip.txt +323 -0
  84. package/mcp-docs/mobile/components/SelectOption.txt +84 -0
  85. package/mcp-docs/mobile/components/SlideButton.txt +330 -0
  86. package/mcp-docs/mobile/components/Spacer.txt +83 -0
  87. package/mcp-docs/mobile/components/Sparkline.txt +122 -0
  88. package/mcp-docs/mobile/components/SparklineGradient.txt +106 -0
  89. package/mcp-docs/mobile/components/SparklineInteractive.txt +156 -0
  90. package/mcp-docs/mobile/components/SparklineInteractiveHeader.txt +72 -0
  91. package/mcp-docs/mobile/components/Spinner.txt +48 -0
  92. package/mcp-docs/mobile/components/SpotIcon.txt +47 -0
  93. package/mcp-docs/mobile/components/SpotRectangle.txt +47 -0
  94. package/mcp-docs/mobile/components/SpotSquare.txt +47 -0
  95. package/mcp-docs/mobile/components/Stepper.txt +527 -0
  96. package/mcp-docs/mobile/components/SubBrandLogoMark.txt +125 -0
  97. package/mcp-docs/mobile/components/SubBrandLogoWordMark.txt +125 -0
  98. package/mcp-docs/mobile/components/Switch.txt +97 -0
  99. package/mcp-docs/mobile/components/TabIndicator.txt +48 -0
  100. package/mcp-docs/mobile/components/TabLabel.txt +153 -0
  101. package/mcp-docs/mobile/components/TabNavigation.txt +146 -0
  102. package/mcp-docs/mobile/components/TabbedChips.txt +142 -0
  103. package/mcp-docs/mobile/components/Tabs.txt +190 -0
  104. package/mcp-docs/mobile/components/Tag.txt +300 -0
  105. package/mcp-docs/mobile/components/Text.txt +211 -0
  106. package/mcp-docs/mobile/components/TextInput.txt +717 -0
  107. package/mcp-docs/mobile/components/ThemeProvider.txt +132 -0
  108. package/mcp-docs/mobile/components/Toast.txt +196 -0
  109. package/mcp-docs/mobile/components/Tooltip.txt +59 -0
  110. package/mcp-docs/mobile/components/TopNavBar.txt +161 -0
  111. package/mcp-docs/mobile/components/Tour.txt +158 -0
  112. package/mcp-docs/mobile/components/Tray.txt +252 -0
  113. package/mcp-docs/mobile/components/UpsellCard.txt +321 -0
  114. package/mcp-docs/mobile/components/VStack.txt +222 -0
  115. package/mcp-docs/mobile/components/XAxis.txt +621 -0
  116. package/mcp-docs/mobile/components/YAxis.txt +567 -0
  117. package/mcp-docs/mobile/getting-started/ai-overview.txt +108 -0
  118. package/mcp-docs/mobile/getting-started/installation.txt +57 -0
  119. package/mcp-docs/mobile/getting-started/introduction.txt +102 -0
  120. package/mcp-docs/mobile/getting-started/playground.txt +28 -0
  121. package/mcp-docs/mobile/getting-started/styling.txt +84 -0
  122. package/mcp-docs/mobile/getting-started/theming.txt +286 -0
  123. package/mcp-docs/mobile/hooks/useDimensions.txt +72 -0
  124. package/mcp-docs/mobile/hooks/useEventHandler.txt +120 -0
  125. package/mcp-docs/mobile/hooks/useMergeRefs.txt +116 -0
  126. package/mcp-docs/mobile/hooks/useOverlayContentContext.txt +280 -0
  127. package/mcp-docs/mobile/hooks/usePreviousValue.txt +74 -0
  128. package/mcp-docs/mobile/hooks/useRefMap.txt +178 -0
  129. package/mcp-docs/mobile/hooks/useTheme.txt +321 -0
  130. package/mcp-docs/mobile/routes.txt +139 -0
  131. package/mcp-docs/web/components/Accordion.txt +189 -0
  132. package/mcp-docs/web/components/AccordionItem.txt +31 -0
  133. package/mcp-docs/web/components/Alert.txt +164 -0
  134. package/mcp-docs/web/components/AreaChart.txt +510 -0
  135. package/mcp-docs/web/components/Avatar.txt +211 -0
  136. package/mcp-docs/web/components/AvatarButton.txt +240 -0
  137. package/mcp-docs/web/components/Banner.txt +226 -0
  138. package/mcp-docs/web/components/BarChart.txt +1267 -0
  139. package/mcp-docs/web/components/Box.txt +175 -0
  140. package/mcp-docs/web/components/Button.txt +212 -0
  141. package/mcp-docs/web/components/ButtonGroup.txt +79 -0
  142. package/mcp-docs/web/components/Calendar.txt +181 -0
  143. package/mcp-docs/web/components/Carousel.txt +1575 -0
  144. package/mcp-docs/web/components/CartesianChart.txt +1044 -0
  145. package/mcp-docs/web/components/CellMedia.txt +56 -0
  146. package/mcp-docs/web/components/Checkbox.txt +188 -0
  147. package/mcp-docs/web/components/CheckboxCell.txt +202 -0
  148. package/mcp-docs/web/components/CheckboxGroup.txt +219 -0
  149. package/mcp-docs/web/components/Chip.txt +196 -0
  150. package/mcp-docs/web/components/Coachmark.txt +188 -0
  151. package/mcp-docs/web/components/Collapsible.txt +119 -0
  152. package/mcp-docs/web/components/ContainedAssetCard.txt +232 -0
  153. package/mcp-docs/web/components/ContentCard.txt +367 -0
  154. package/mcp-docs/web/components/ContentCardBody.txt +137 -0
  155. package/mcp-docs/web/components/ContentCardFooter.txt +129 -0
  156. package/mcp-docs/web/components/ContentCardHeader.txt +147 -0
  157. package/mcp-docs/web/components/ContentCell.txt +219 -0
  158. package/mcp-docs/web/components/ControlGroup.txt +436 -0
  159. package/mcp-docs/web/components/DatePicker.txt +505 -0
  160. package/mcp-docs/web/components/Divider.txt +143 -0
  161. package/mcp-docs/web/components/DotCount.txt +149 -0
  162. package/mcp-docs/web/components/DotStatusColor.txt +58 -0
  163. package/mcp-docs/web/components/DotSymbol.txt +137 -0
  164. package/mcp-docs/web/components/Dropdown.txt +119 -0
  165. package/mcp-docs/web/components/Fallback.txt +163 -0
  166. package/mcp-docs/web/components/FloatingAssetCard.txt +250 -0
  167. package/mcp-docs/web/components/FullscreenAlert.txt +69 -0
  168. package/mcp-docs/web/components/FullscreenModal.txt +145 -0
  169. package/mcp-docs/web/components/FullscreenModalLayout.txt +187 -0
  170. package/mcp-docs/web/components/Grid.txt +236 -0
  171. package/mcp-docs/web/components/GridColumn.txt +209 -0
  172. package/mcp-docs/web/components/HStack.txt +236 -0
  173. package/mcp-docs/web/components/HeroSquare.txt +48 -0
  174. package/mcp-docs/web/components/Icon.txt +145 -0
  175. package/mcp-docs/web/components/IconButton.txt +390 -0
  176. package/mcp-docs/web/components/InputChip.txt +187 -0
  177. package/mcp-docs/web/components/Interactable.txt +193 -0
  178. package/mcp-docs/web/components/LineChart.txt +1576 -0
  179. package/mcp-docs/web/components/Link.txt +243 -0
  180. package/mcp-docs/web/components/ListCell.txt +418 -0
  181. package/mcp-docs/web/components/LogoMark.txt +84 -0
  182. package/mcp-docs/web/components/LogoWordMark.txt +93 -0
  183. package/mcp-docs/web/components/Lottie.txt +157 -0
  184. package/mcp-docs/web/components/LottieStatusAnimation.txt +57 -0
  185. package/mcp-docs/web/components/MediaQueryProvider.txt +108 -0
  186. package/mcp-docs/web/components/Modal.txt +196 -0
  187. package/mcp-docs/web/components/ModalBody.txt +117 -0
  188. package/mcp-docs/web/components/ModalFooter.txt +119 -0
  189. package/mcp-docs/web/components/ModalHeader.txt +123 -0
  190. package/mcp-docs/web/components/MultiContentModule.txt +381 -0
  191. package/mcp-docs/web/components/NavigationBar.txt +102 -0
  192. package/mcp-docs/web/components/NavigationTitle.txt +25 -0
  193. package/mcp-docs/web/components/NavigationTitleSelect.txt +45 -0
  194. package/mcp-docs/web/components/NudgeCard.txt +181 -0
  195. package/mcp-docs/web/components/Overlay.txt +171 -0
  196. package/mcp-docs/web/components/PageFooter.txt +184 -0
  197. package/mcp-docs/web/components/PageHeader.txt +243 -0
  198. package/mcp-docs/web/components/Pagination.txt +499 -0
  199. package/mcp-docs/web/components/PeriodSelector.txt +703 -0
  200. package/mcp-docs/web/components/Pictogram.txt +48 -0
  201. package/mcp-docs/web/components/Point.txt +460 -0
  202. package/mcp-docs/web/components/PortalProvider.txt +76 -0
  203. package/mcp-docs/web/components/Pressable.txt +193 -0
  204. package/mcp-docs/web/components/ProgressBar.txt +163 -0
  205. package/mcp-docs/web/components/ProgressBarWithFixedLabels.txt +212 -0
  206. package/mcp-docs/web/components/ProgressBarWithFloatLabel.txt +181 -0
  207. package/mcp-docs/web/components/ProgressCircle.txt +443 -0
  208. package/mcp-docs/web/components/Radio.txt +219 -0
  209. package/mcp-docs/web/components/RadioCell.txt +215 -0
  210. package/mcp-docs/web/components/RadioGroup.txt +288 -0
  211. package/mcp-docs/web/components/ReferenceLine.txt +451 -0
  212. package/mcp-docs/web/components/RemoteImage.txt +165 -0
  213. package/mcp-docs/web/components/RemoteImageGroup.txt +86 -0
  214. package/mcp-docs/web/components/RollingNumber.txt +1021 -0
  215. package/mcp-docs/web/components/Scrubber.txt +231 -0
  216. package/mcp-docs/web/components/SearchInput.txt +117 -0
  217. package/mcp-docs/web/components/SectionHeader.txt +217 -0
  218. package/mcp-docs/web/components/SegmentedTabs.txt +324 -0
  219. package/mcp-docs/web/components/Select.txt +224 -0
  220. package/mcp-docs/web/components/SelectChip.txt +314 -0
  221. package/mcp-docs/web/components/SelectOption.txt +165 -0
  222. package/mcp-docs/web/components/Sidebar.txt +349 -0
  223. package/mcp-docs/web/components/SidebarItem.txt +131 -0
  224. package/mcp-docs/web/components/SidebarMoreMenu.txt +30 -0
  225. package/mcp-docs/web/components/Spacer.txt +173 -0
  226. package/mcp-docs/web/components/Sparkline.txt +122 -0
  227. package/mcp-docs/web/components/SparklineGradient.txt +106 -0
  228. package/mcp-docs/web/components/SparklineInteractive.txt +153 -0
  229. package/mcp-docs/web/components/SparklineInteractiveHeader.txt +76 -0
  230. package/mcp-docs/web/components/Spinner.txt +128 -0
  231. package/mcp-docs/web/components/SpotIcon.txt +48 -0
  232. package/mcp-docs/web/components/SpotRectangle.txt +48 -0
  233. package/mcp-docs/web/components/SpotSquare.txt +48 -0
  234. package/mcp-docs/web/components/Stepper.txt +682 -0
  235. package/mcp-docs/web/components/SubBrandLogoMark.txt +125 -0
  236. package/mcp-docs/web/components/SubBrandLogoWordMark.txt +125 -0
  237. package/mcp-docs/web/components/Switch.txt +85 -0
  238. package/mcp-docs/web/components/TabIndicator.txt +48 -0
  239. package/mcp-docs/web/components/TabLabel.txt +158 -0
  240. package/mcp-docs/web/components/TabNavigation.txt +159 -0
  241. package/mcp-docs/web/components/TabbedChips.txt +155 -0
  242. package/mcp-docs/web/components/Table.txt +367 -0
  243. package/mcp-docs/web/components/TableBody.txt +83 -0
  244. package/mcp-docs/web/components/TableCaption.txt +102 -0
  245. package/mcp-docs/web/components/TableCell.txt +165 -0
  246. package/mcp-docs/web/components/TableCellFallback.txt +97 -0
  247. package/mcp-docs/web/components/TableFooter.txt +83 -0
  248. package/mcp-docs/web/components/TableHeader.txt +100 -0
  249. package/mcp-docs/web/components/TableRow.txt +140 -0
  250. package/mcp-docs/web/components/Tabs.txt +212 -0
  251. package/mcp-docs/web/components/Tag.txt +304 -0
  252. package/mcp-docs/web/components/Text.txt +232 -0
  253. package/mcp-docs/web/components/TextInput.txt +652 -0
  254. package/mcp-docs/web/components/ThemeProvider.txt +199 -0
  255. package/mcp-docs/web/components/TileButton.txt +158 -0
  256. package/mcp-docs/web/components/Toast.txt +203 -0
  257. package/mcp-docs/web/components/Tooltip.txt +89 -0
  258. package/mcp-docs/web/components/Tour.txt +179 -0
  259. package/mcp-docs/web/components/Tray.txt +288 -0
  260. package/mcp-docs/web/components/UpsellCard.txt +319 -0
  261. package/mcp-docs/web/components/VStack.txt +224 -0
  262. package/mcp-docs/web/components/XAxis.txt +619 -0
  263. package/mcp-docs/web/components/YAxis.txt +548 -0
  264. package/mcp-docs/web/getting-started/ai-overview.txt +108 -0
  265. package/mcp-docs/web/getting-started/installation.txt +103 -0
  266. package/mcp-docs/web/getting-started/introduction.txt +102 -0
  267. package/mcp-docs/web/getting-started/playground.txt +28 -0
  268. package/mcp-docs/web/getting-started/styling.txt +161 -0
  269. package/mcp-docs/web/getting-started/templates.txt +121 -0
  270. package/mcp-docs/web/getting-started/theming.txt +426 -0
  271. package/mcp-docs/web/hooks/useBreakpoints.txt +61 -0
  272. package/mcp-docs/web/hooks/useDimensions.txt +114 -0
  273. package/mcp-docs/web/hooks/useEventHandler.txt +120 -0
  274. package/mcp-docs/web/hooks/useHasMounted.txt +75 -0
  275. package/mcp-docs/web/hooks/useIsoEffect.txt +58 -0
  276. package/mcp-docs/web/hooks/useMediaQuery.txt +114 -0
  277. package/mcp-docs/web/hooks/useMergeRefs.txt +116 -0
  278. package/mcp-docs/web/hooks/useOverlayContentContext.txt +279 -0
  279. package/mcp-docs/web/hooks/usePreviousValue.txt +74 -0
  280. package/mcp-docs/web/hooks/useRefMap.txt +178 -0
  281. package/mcp-docs/web/hooks/useScrollBlocker.txt +82 -0
  282. package/mcp-docs/web/hooks/useTheme.txt +364 -0
  283. package/mcp-docs/web/routes.txt +163 -0
  284. package/package.json +1 -1
@@ -0,0 +1,412 @@
1
+ # ListCell
2
+
3
+ A versatile cell component used for displaying content in a list format, supporting various layouts and interactions.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { ListCell } from '@coinbase/cds-mobile/cells/ListCell'
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Basic usage
14
+
15
+ ```tsx
16
+ <ListCell
17
+ spacingVariant="condensed"
18
+ title="Basic List Cell"
19
+ description="A simple example of ListCell"
20
+ />
21
+ ```
22
+
23
+ :::note
24
+ Prefer `spacingVariant="condensed"` for the new ListCell design. The `compact` may be removed in a future major release.
25
+ :::
26
+
27
+ ```tsx
28
+ <VStack>
29
+ {/* Preferred (new design) */}
30
+ <ListCell
31
+ accessory="arrow"
32
+ description="New design (condensed)"
33
+ detail="$12,345.00"
34
+ spacingVariant="condensed"
35
+ media={<Avatar src={assets.eth.imageUrl} size="m" />}
36
+ onClick={console.log}
37
+ title="Condensed"
38
+ variant="positive"
39
+ />
40
+
41
+ {/* Deprecated options kept for backward compatibility */}
42
+ <ListCell
43
+ accessory="arrow"
44
+ detail="$12,345.00"
45
+ spacingVariant="compact"
46
+ media={<Avatar src={assets.eth.imageUrl} size="m" />}
47
+ onClick={console.log}
48
+ title="Compact (deprecated)"
49
+ variant="positive"
50
+ />
51
+ <ListCell
52
+ accessory="arrow"
53
+ detail="$12,345.00"
54
+ spacingVariant="normal"
55
+ media={<Avatar src={assets.eth.imageUrl} size="m" />}
56
+ onClick={console.log}
57
+ title="Normal"
58
+ variant="positive"
59
+ />
60
+ </VStack>
61
+ ```
62
+
63
+ ### With Media
64
+
65
+ ```tsx
66
+ <ListCell
67
+ spacingVariant="condensed"
68
+ title="List Cell with Media"
69
+ description="Shows usage with media"
70
+ media={<Icon active name="info" />}
71
+ />
72
+ ```
73
+
74
+ ### With Detail and Subdetail
75
+
76
+ ```tsx
77
+ <ListCell
78
+ spacingVariant="condensed"
79
+ title="List Cell with Details"
80
+ description="Shows usage with detail and subdetail"
81
+ detail="$1,234.56"
82
+ subdetail="+2.5%"
83
+ variant="positive"
84
+ />
85
+ ```
86
+
87
+ ### With Accessory
88
+
89
+ ```tsx
90
+ <ListCell
91
+ spacingVariant="condensed"
92
+ title="List Cell with Accessory"
93
+ description="Shows usage with accessory"
94
+ accessory="arrow"
95
+ />
96
+ ```
97
+
98
+ ### Interactive Cell
99
+
100
+ ```tsx
101
+ <ListCell
102
+ spacingVariant="condensed"
103
+ title="Interactive List Cell"
104
+ description="Tap to interact"
105
+ media={<Icon active name="info" />}
106
+ accessory="arrow"
107
+ onPress={() => alert('Cell pressed!')}
108
+ />
109
+ ```
110
+
111
+ ### With Helper Text
112
+
113
+ ```tsx
114
+ <VStack gap={3}>
115
+ <ListCell
116
+ spacingVariant="condensed"
117
+ title="List Cell with Helper Text"
118
+ description="Shows usage with helper text below the cell"
119
+ helperText={<CellHelperText>This is a default helper message.</CellHelperText>}
120
+ media={<Avatar src={assets.btc.imageUrl} />}
121
+ end={<Button compact>Action</Button>}
122
+ />
123
+ <ListCell
124
+ spacingVariant="condensed"
125
+ title="List Cell with Warning"
126
+ description="Shows usage with a warning message"
127
+ helperText={<CellHelperText variant="warning">This is a warning message.</CellHelperText>}
128
+ media={<Avatar src={assets.btc.imageUrl} />}
129
+ end={<Button compact>Action</Button>}
130
+ />
131
+ <ListCell
132
+ spacingVariant="condensed"
133
+ title="List Cell with Error"
134
+ description="Shows usage with an error message"
135
+ helperText={<CellHelperText variant="error">This is an error message.</CellHelperText>}
136
+ media={<Avatar src={assets.btc.imageUrl} />}
137
+ end={<Button compact>Action</Button>}
138
+ />
139
+ </VStack>
140
+ ```
141
+
142
+ ### Accessibility Label
143
+
144
+ The accessibility props are only applied when the `<ListCell>` has a value for the `onPress` prop. Otherwise, content passed into the `<ListCell>` must use accessibility props and attributes as needed.
145
+
146
+ ```tsx
147
+ <VStack gap={1}>
148
+ <ListCell
149
+ accessibilityLabel="Accessibility label. Describes content for entire list cell. Applied when onPress prop has a value"
150
+ intermediary={<Icon name="chartLine" />}
151
+ media={<Avatar src={assets.btc.imageUrl} />}
152
+ onPress={() => console.log('List cell pressed')}
153
+ title="BTC"
154
+ />
155
+
156
+ <ListCell
157
+ intermediary={<Icon accessibilityLabel="Chart icon" name="chartLine" />}
158
+ media={<Avatar accessibilityLabel="Bitcoin" src={assets.btc.imageUrl} />}
159
+ title="BTC"
160
+ />
161
+ </VStack>
162
+ ```
163
+
164
+ ### Compact Mode
165
+
166
+ ```tsx
167
+ <ListCell
168
+ spacingVariant="compact"
169
+ title="Compact List Cell"
170
+ description="Shows compact variant"
171
+ media={<Icon active name="info" />}
172
+ />
173
+ ```
174
+
175
+ ### Selected State
176
+
177
+ ```tsx
178
+ <ListCell
179
+ spacingVariant="condensed"
180
+ selected
181
+ title="Selected List Cell"
182
+ description="Shows selected state"
183
+ media={<Icon active name="info" />}
184
+ />
185
+ ```
186
+
187
+ ### Loading States
188
+
189
+ The ListCellFallback component provides loading state representations of ListCell. It uses placeholder rectangles to indicate where content will appear, creating a smooth loading experience. The mobile version leverages the theme system for consistent line heights and reuses the ListCell component structure for layout consistency.
190
+
191
+ ```tsx
192
+ <VStack gap={3}>
193
+ {/* Basic loading state */}
194
+ <ListCellFallback spacingVariant="condensed" title description />
195
+
196
+ {/* Loading state with media */}
197
+ <ListCellFallback spacingVariant="condensed" title description media="icon" />
198
+
199
+ {/* Loading state with details */}
200
+ <ListCellFallback spacingVariant="condensed" title description detail subdetail />
201
+
202
+ {/* Full loading state with custom widths */}
203
+ <ListCellFallback
204
+ spacingVariant="condensed"
205
+ title
206
+ description
207
+ detail
208
+ subdetail
209
+ media="icon"
210
+ compact
211
+ rectWidthVariant={1} // Creates a deterministic variant of the loading state
212
+ disableRandomRectWidth
213
+ />
214
+ </VStack>
215
+ ```
216
+
217
+ :::note
218
+ The mobile ListCellFallback uses theme-based line heights and reuses the ListCell component structure, resulting in a more consistent loading state appearance. The compact prop is also supported for loading states.
219
+ :::
220
+
221
+ ### Anatomy
222
+
223
+ Without helper text (top-only layout):
224
+
225
+ ```text
226
+ ┌───────────────────────────────────────────────────────────────────────────┐
227
+ │ root (Box) │
228
+ │┌─────────────────────────────────────────────────────────────────────────┐│
229
+ ││ pressable ││
230
+ ││┌───────────────────────────────────────────────────────────────────────┐││
231
+ │││ contentContainer & mainContent (HStack) │││
232
+ │││ ┌─────┐ ┌────────────────┐ ┌────────────┐ ┌────────────┐ ┌─────────┐ │││
233
+ │││ │media│ │ VStack │ │intermediary│ │ end │ │accessory│ │││
234
+ │││ │ │ │ ┌──────────┐ │ │ │ │ (detail │ │ │ │││
235
+ │││ │ │ │ │ title │ │ │ │ │ or │ │ │ │││
236
+ │││ │ │ │ └──────────┘ │ │ │ │ action) │ │ │ │││
237
+ │││ │ │ │ ┌────────────┐ │ │ │ │ │ │ │ │││
238
+ │││ │ │ │ │ description│ │ │ │ │ │ │ │ │││
239
+ │││ │ │ │ └────────────┘ │ │ │ │ │ │ │ │││
240
+ │││ └─────┘ └────────────────┘ └────────────┘ └────────────┘ └─────────┘ │││
241
+ ││└───────────────────────────────────────────────────────────────────────┘││
242
+ │└─────────────────────────────────────────────────────────────────────────┘│
243
+ └───────────────────────────────────────────────────────────────────────────┘
244
+ ```
245
+
246
+ With helper text (top + bottom layout):
247
+
248
+ ```text
249
+ ┌─────────────────────────────────────────────────────────────────────────────┐
250
+ │ root (Box) │
251
+ │┌───────────────────────────────────────────────────────────────────────────┐│
252
+ ││ pressable ││
253
+ ││┌─────────────────────────────────────────────────────────────────────────┐││
254
+ │││ contentContainer (VStack) │││
255
+ │││┌───────────────────────────────────────────────────────────────────────┐│││
256
+ ││││ mainContent (HStack) ││││
257
+ ││││ ┌─────┐ ┌────────────────┐ ┌────────────┐ ┌────────────┐ ┌─────────┐ ││││
258
+ ││││ │media│ │ VStack │ │intermediary│ │ end │ │accessory│ ││││
259
+ ││││ │ │ │ ┌──────────┐ │ │ │ │ (detail │ │ │ ││││
260
+ ││││ │ │ │ │ title │ │ │ │ │ or │ │ │ ││││
261
+ ││││ │ │ │ └──────────┘ │ │ │ │ action) │ │ │ ││││
262
+ ││││ │ │ │ ┌────────────┐ │ │ │ │ │ │ │ ││││
263
+ ││││ │ │ │ │ description│ │ │ │ │ │ │ │ ││││
264
+ ││││ │ │ │ └────────────┘ │ │ │ │ │ │ │ ││││
265
+ ││││ └─────┘ └────────────────┘ └────────────┘ └────────────┘ └─────────┘ ││││
266
+ │││└───────────────────────────────────────────────────────────────────────┘│││
267
+ │││┌───────────────────────────────────────────────────────────────────────┐│││
268
+ ││││ helperText ││││
269
+ │││└───────────────────────────────────────────────────────────────────────┘│││
270
+ ││└─────────────────────────────────────────────────────────────────────────┘││
271
+ │└───────────────────────────────────────────────────────────────────────────┘│
272
+ └─────────────────────────────────────────────────────────────────────────────┘
273
+ ```
274
+
275
+ Mapping to `styles` / `classNames` keys:
276
+
277
+ - root: outer `Box` wrapping the entire cell
278
+ - pressable: interactive overlay when `href` / `onPress` event handlers are present
279
+ - contentContainer: container around top and optional bottom content
280
+ - mainContent: inner horizontal layout that holds the main pieces
281
+ - title/description: stacked text column within `topContent`
282
+ - media: leading media container
283
+ - intermediary: middle container between main and end
284
+ - end: container for `detail` / `subdetail` or `end` prop you pass in
285
+ - accessory: trailing accessory container
286
+ - helperText: container below main content to display helper text
287
+
288
+ ## Props
289
+
290
+ | Prop | Type | Required | Default | Description |
291
+ | --- | --- | --- | --- | --- |
292
+ | `accessory` | `more \| selected \| arrow` | No | `-` | Accessory to display at the end of the cell. |
293
+ | `action` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | - |
294
+ | `adjustsFontSizeToFit` | `boolean` | No | `-` | Specifies whether font should be scaled down automatically to fit given style constraints. |
295
+ | `alignContent` | `flex-start \| flex-end \| center \| stretch \| space-between \| space-around \| space-evenly` | No | `-` | - |
296
+ | `alignItems` | `flex-start \| flex-end \| center \| stretch \| baseline` | No | `-` | - |
297
+ | `alignSelf` | `auto \| FlexAlignType` | No | `-` | - |
298
+ | `animated` | `boolean` | No | `-` | - |
299
+ | `aspectRatio` | `string \| number` | No | `-` | - |
300
+ | `background` | `currentColor \| fg \| fgMuted \| fgInverse \| fgPrimary \| fgWarning \| fgPositive \| fgNegative \| bg \| bgAlternate \| bgInverse \| bgOverlay \| bgElevation1 \| bgElevation2 \| bgPrimary \| bgPrimaryWash \| bgSecondary \| bgTertiary \| bgSecondaryWash \| bgNegative \| bgNegativeWash \| bgPositive \| bgPositiveWash \| bgWarning \| bgWarningWash \| bgLine \| bgLineHeavy \| bgLineInverse \| bgLinePrimary \| bgLinePrimarySubtle \| accentSubtleRed \| accentBoldRed \| accentSubtleGreen \| accentBoldGreen \| accentSubtleBlue \| accentBoldBlue \| accentSubtlePurple \| accentBoldPurple \| accentSubtleYellow \| accentBoldYellow \| accentSubtleGray \| accentBoldGray \| transparent` | No | `-` | - |
301
+ | `borderBottomLeftRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
302
+ | `borderBottomRightRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
303
+ | `borderBottomWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
304
+ | `borderColor` | `currentColor \| fg \| fgMuted \| fgInverse \| fgPrimary \| fgWarning \| fgPositive \| fgNegative \| bg \| bgAlternate \| bgInverse \| bgOverlay \| bgElevation1 \| bgElevation2 \| bgPrimary \| bgPrimaryWash \| bgSecondary \| bgTertiary \| bgSecondaryWash \| bgNegative \| bgNegativeWash \| bgPositive \| bgPositiveWash \| bgWarning \| bgWarningWash \| bgLine \| bgLineHeavy \| bgLineInverse \| bgLinePrimary \| bgLinePrimarySubtle \| accentSubtleRed \| accentBoldRed \| accentSubtleGreen \| accentBoldGreen \| accentSubtleBlue \| accentBoldBlue \| accentSubtlePurple \| accentBoldPurple \| accentSubtleYellow \| accentBoldYellow \| accentSubtleGray \| accentBoldGray \| transparent` | No | `-` | - |
305
+ | `borderEndWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
306
+ | `borderRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
307
+ | `borderStartWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
308
+ | `borderTopLeftRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
309
+ | `borderTopRightRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
310
+ | `borderTopWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
311
+ | `borderWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
312
+ | `bordered` | `boolean` | No | `-` | Add a border around all sides of the box. |
313
+ | `borderedBottom` | `boolean` | No | `-` | Add a border to the bottom side of the box. |
314
+ | `borderedEnd` | `boolean` | No | `-` | Add a border to the trailing side of the box. |
315
+ | `borderedHorizontal` | `boolean` | No | `-` | Add a border to the leading and trailing sides of the box. |
316
+ | `borderedStart` | `boolean` | No | `-` | Add a border to the leading side of the box. |
317
+ | `borderedTop` | `boolean` | No | `-` | Add a border to the top side of the box. |
318
+ | `borderedVertical` | `boolean` | No | `-` | Add a border to the top and bottom sides of the box. |
319
+ | `bottom` | `string \| number` | No | `-` | - |
320
+ | `bottomContent` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | The content to display below the main cell content. |
321
+ | `color` | `currentColor \| fg \| fgMuted \| fgInverse \| fgPrimary \| fgWarning \| fgPositive \| fgNegative \| bg \| bgAlternate \| bgInverse \| bgOverlay \| bgElevation1 \| bgElevation2 \| bgPrimary \| bgPrimaryWash \| bgSecondary \| bgTertiary \| bgSecondaryWash \| bgNegative \| bgNegativeWash \| bgPositive \| bgPositiveWash \| bgWarning \| bgWarningWash \| bgLine \| bgLineHeavy \| bgLineInverse \| bgLinePrimary \| bgLinePrimarySubtle \| accentSubtleRed \| accentBoldRed \| accentSubtleGreen \| accentBoldGreen \| accentSubtleBlue \| accentBoldBlue \| accentSubtlePurple \| accentBoldPurple \| accentSubtleYellow \| accentBoldYellow \| accentSubtleGray \| accentBoldGray \| transparent` | No | `-` | - |
322
+ | `columnGap` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1.5` | No | `-` | - |
323
+ | `compact` | `boolean` | No | `-` | - |
324
+ | `dangerouslySetBackground` | `string` | No | `-` | - |
325
+ | `description` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | Description of content. Max 1 line (with title) or 2 lines (without), otherwise will truncate. |
326
+ | `detail` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | Label and/or extra detail. This prop is only intended to accept a string or Text component; other use cases, while allowed, are not supported and may result in unexpected behavior. |
327
+ | `detailWidth` | `string \| number` | No | `-` | - |
328
+ | `disableMultilineTitle` | `boolean` | No | `false When there is no description the title will take up two lines by default. When this is set to true multiline title behavior is overwritten, and regardless of description text state the title will take up a single line truncating with ellipses.` | - |
329
+ | `disableSelectionAccessory` | `boolean` | No | `-` | Disable the default accessory that is displayed when the cell is selected. If accessory is provided, that will continue to be displayed, otherwise no accessory will be displayed when the cell is selected. |
330
+ | `disabled` | `boolean` | No | `-` | Is the cell disabled? Will apply opacity and disable interaction. |
331
+ | `display` | `flex \| none` | No | `-` | - |
332
+ | `elevation` | `0 \| 1 \| 2` | No | `-` | Determines box shadow styles. Parent should have overflow set to visible to ensure styles are not clipped. |
333
+ | `end` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | End-aligned content (e.g., value, status). Replaces the deprecated detail prop. End-aligned content (e.g., CTA, form element, metric). Replacement for the deprecated action prop, and takes precedence over it. If the content is a action (like button, link, etc), we recommand avoid using alongside onPress. If used alongside onClick, the end action is triggered first and then the onClick handler. |
334
+ | `flexBasis` | `string \| number` | No | `-` | - |
335
+ | `flexDirection` | `row \| column \| row-reverse \| column-reverse` | No | `-` | - |
336
+ | `flexGrow` | `number` | No | `-` | - |
337
+ | `flexShrink` | `number` | No | `-` | - |
338
+ | `flexWrap` | `wrap \| nowrap \| wrap-reverse` | No | `-` | - |
339
+ | `font` | `inherit \| FontFamily` | No | `-` | - |
340
+ | `fontFamily` | `inherit \| FontFamily` | No | `-` | - |
341
+ | `fontSize` | `inherit \| FontSize` | No | `-` | - |
342
+ | `fontWeight` | `inherit \| FontWeight` | No | `-` | - |
343
+ | `gap` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1.5` | No | `-` | - |
344
+ | `height` | `string \| number` | No | `-` | - |
345
+ | `helperText` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | Assistive message to display below the cell content. |
346
+ | `innerSpacing` | `CellSpacing` | No | `-` | The spacing to use on the inner content of Cell |
347
+ | `intermediary` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | Middle content between main content and detail. For internal use only. |
348
+ | `justifyContent` | `flex-start \| flex-end \| center \| space-between \| space-around \| space-evenly` | No | `-` | - |
349
+ | `left` | `string \| number` | No | `-` | - |
350
+ | `lineHeight` | `inherit \| LineHeight` | No | `-` | - |
351
+ | `margin` | `0 \| -1 \| -2 \| -3 \| -4 \| -5 \| -6 \| -7 \| -8 \| -9 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1.5` | No | `-` | - |
352
+ | `marginBottom` | `0 \| -1 \| -2 \| -3 \| -4 \| -5 \| -6 \| -7 \| -8 \| -9 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1.5` | No | `-` | - |
353
+ | `marginEnd` | `0 \| -1 \| -2 \| -3 \| -4 \| -5 \| -6 \| -7 \| -8 \| -9 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1.5` | No | `-` | - |
354
+ | `marginStart` | `0 \| -1 \| -2 \| -3 \| -4 \| -5 \| -6 \| -7 \| -8 \| -9 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1.5` | No | `-` | - |
355
+ | `marginTop` | `0 \| -1 \| -2 \| -3 \| -4 \| -5 \| -6 \| -7 \| -8 \| -9 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1.5` | No | `-` | - |
356
+ | `marginX` | `0 \| -1 \| -2 \| -3 \| -4 \| -5 \| -6 \| -7 \| -8 \| -9 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1.5` | No | `-` | - |
357
+ | `marginY` | `0 \| -1 \| -2 \| -3 \| -4 \| -5 \| -6 \| -7 \| -8 \| -9 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1.5` | No | `-` | - |
358
+ | `maxHeight` | `string \| number` | No | `-` | - |
359
+ | `maxWidth` | `string \| number` | No | `-` | - |
360
+ | `media` | `ReactElement` | No | `-` | Media rendered at the start of the cell (icon, avatar, image, etc). |
361
+ | `minHeight` | `string \| number` | No | `-` | - |
362
+ | `minWidth` | `string \| number` | No | `-` | - |
363
+ | `multiline` | `boolean` | No | `-` | Allow the description to span multiple lines. This *will* break fixed height requirements, so should not be used in a FlatList. |
364
+ | `onLayout` | `((event: LayoutChangeEvent) => void)` | No | `-` | Measure the dimensions of the cell. Invoked on mount and layout changes with {nativeEvent: { layout: {x, y, width, height}}}. |
365
+ | `onPointerCancel` | `((event: PointerEvent) => void)` | No | `-` | - |
366
+ | `onPointerCancelCapture` | `((event: PointerEvent) => void)` | No | `-` | - |
367
+ | `onPointerDown` | `((event: PointerEvent) => void)` | No | `-` | - |
368
+ | `onPointerDownCapture` | `((event: PointerEvent) => void)` | No | `-` | - |
369
+ | `onPointerEnter` | `((event: PointerEvent) => void)` | No | `-` | - |
370
+ | `onPointerEnterCapture` | `((event: PointerEvent) => void)` | No | `-` | - |
371
+ | `onPointerLeave` | `((event: PointerEvent) => void)` | No | `-` | - |
372
+ | `onPointerLeaveCapture` | `((event: PointerEvent) => void)` | No | `-` | - |
373
+ | `onPointerMove` | `((event: PointerEvent) => void)` | No | `-` | - |
374
+ | `onPointerMoveCapture` | `((event: PointerEvent) => void)` | No | `-` | - |
375
+ | `onPointerUp` | `((event: PointerEvent) => void)` | No | `-` | - |
376
+ | `onPointerUpCapture` | `((event: PointerEvent) => void)` | No | `-` | - |
377
+ | `onPress` | `((event: GestureResponderEvent) => void) \| null` | No | `-` | Called when a single tap gesture is detected. |
378
+ | `opacity` | `number \| AnimatedNode` | No | `-` | - |
379
+ | `outerSpacing` | `CellSpacing` | No | `-` | The spacing to use on the parent wrapper of Cell |
380
+ | `overflow` | `visible \| hidden \| scroll` | No | `-` | - |
381
+ | `padding` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1.5` | No | `-` | - |
382
+ | `paddingBottom` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1.5` | No | `-` | - |
383
+ | `paddingEnd` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1.5` | No | `-` | - |
384
+ | `paddingStart` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1.5` | No | `-` | - |
385
+ | `paddingTop` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1.5` | No | `-` | - |
386
+ | `paddingX` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1.5` | No | `-` | - |
387
+ | `paddingY` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1.5` | No | `-` | - |
388
+ | `pin` | `top \| bottom \| left \| right \| all` | No | `-` | Direction in which to absolutely pin the box. |
389
+ | `position` | `absolute \| relative \| static \| fixed \| sticky` | No | `-` | - |
390
+ | `priority` | `end \| start \| middle \| (end \| start \| middle)[]` | No | `-` | Which piece of content has the highest priority in regards to text truncation, growing, and shrinking. |
391
+ | `right` | `string \| number` | No | `-` | - |
392
+ | `rowGap` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1.5` | No | `-` | - |
393
+ | `selected` | `boolean` | No | `-` | Is the cell selected? Will apply a background and selected accessory. |
394
+ | `spacingVariant` | `compact \| normal \| condensed` | No | `'normal'` | Spacing variant configuration. Deprecated value: compact. Prefer condensed. When spacingVariant=normal: 1. min-height is 80px 2. padding is var(--space-2) var(--space-3) 3. border-radius is var(--borderRadius-200) 4. when there is a description, titles numberOfLines={1} otherwise titles numberOfLines={2} 5. description and subdetail have font body When spacingVariant=compact: 1. same as spacingVariant=normal, except min-height is 40px When spacingVariant=condensed: 1. min-height is undefined 2. padding is var(--space-1) var(--space-2) 3. border-radius is --borderRadius-0 4. titles numberOfLines={2} 5. description and subdetail have font label2 |
395
+ | `style` | `false \| RegisteredStyle<ViewStyle> \| Value \| AnimatedInterpolation<string \| number> \| WithAnimatedObject<ViewStyle> \| WithAnimatedArray<Falsy \| ViewStyle \| RegisteredStyle<ViewStyle> \| RecursiveArray<Falsy \| ViewStyle \| RegisteredStyle<ViewStyle>> \| readonly (Falsy \| ViewStyle \| RegisteredStyle<ViewStyle>)[]> \| null` | No | `-` | - |
396
+ | `styles` | `({ root?: StyleProp<ViewStyle>; contentContainer?: StyleProp<ViewStyle>; topContent?: StyleProp<ViewStyle>; bottomContent?: StyleProp<ViewStyle>; pressable?: StyleProp<ViewStyle>; media?: StyleProp<ViewStyle>; intermediary?: StyleProp<ViewStyle>; end?: StyleProp<ViewStyle>; accessory?: StyleProp<ViewStyle>; } & { root?: StyleProp<ViewStyle>; media?: StyleProp<ViewStyle>; intermediary?: StyleProp<ViewStyle>; end?: StyleProp<ViewStyle>; accessory?: StyleProp<ViewStyle>; contentContainer?: StyleProp<ViewStyle>; pressable?: StyleProp<ViewStyle>; mainContent?: StyleProp<ViewStyle>; helperText?: StyleProp<ViewStyle>; title?: StyleProp<TextStyle>; description?: StyleProp<TextStyle>; })` | No | `-` | Styles for the components |
397
+ | `subdetail` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | Subdetail providing more information. This prop is only intended to accept a string or Text component; other use cases, while allowed, are not supported and may result in unexpected behavior. |
398
+ | `subdetailFont` | `inherit \| FontFamily` | No | `-` | Font to apply to the subdetail text. |
399
+ | `testID` | `string` | No | `-` | Used to locate this element in unit and end-to-end tests. Under the hood, testID translates to data-testid on Web. On Mobile, testID stays the same - testID Used to locate this element in unit and end-to-end tests. Used to locate this view in end-to-end tests. |
400
+ | `textAlign` | `left \| right \| auto \| center \| justify` | No | `-` | - |
401
+ | `textDecorationLine` | `none \| underline \| line-through \| underline line-through` | No | `-` | - |
402
+ | `textDecorationStyle` | `solid \| dotted \| dashed \| double` | No | `-` | - |
403
+ | `textTransform` | `none \| capitalize \| uppercase \| lowercase` | No | `-` | - |
404
+ | `title` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | Title of content. Max 1 line (with description) or 2 lines (without), otherwise will truncate. |
405
+ | `top` | `string \| number` | No | `-` | - |
406
+ | `transform` | `string \| (({ scaleX: AnimatableNumericValue; } & { scaleY?: undefined; translateX?: undefined; translateY?: undefined; perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ scaleY: AnimatableNumericValue; } & { scaleX?: undefined; translateX?: undefined; translateY?: undefined; perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ translateX: AnimatableNumericValue \| ${number}%; } & { scaleX?: undefined; scaleY?: undefined; translateY?: undefined; perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ translateY: AnimatableNumericValue \| ${number}%; } & { scaleX?: undefined; scaleY?: undefined; translateX?: undefined; perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ perspective: AnimatableNumericValue; } & { scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ rotate: AnimatableStringValue; } & { scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; perspective?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ rotateX: AnimatableStringValue; } & { scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; perspective?: undefined; rotate?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ rotateY: AnimatableStringValue; } & { scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateZ?: undefined; scale?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ rotateZ: AnimatableStringValue; } & { scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; scale?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ scale: AnimatableNumericValue; } & { scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; skewX?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ skewX: AnimatableStringValue; } & { scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; skewY?: undefined; matrix?: undefined; }) \| ({ skewY: AnimatableStringValue; } & { scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; skewX?: undefined; matrix?: undefined; }) \| ({ matrix: AnimatableNumericValue[]; } & { scaleX?: undefined; scaleY?: undefined; translateX?: undefined; translateY?: undefined; perspective?: undefined; rotate?: undefined; rotateX?: undefined; rotateY?: undefined; rotateZ?: undefined; scale?: undefined; skewX?: undefined; skewY?: undefined; }))[]` | No | `-` | - |
407
+ | `userSelect` | `none \| auto \| contain \| text \| all` | No | `-` | - |
408
+ | `variant` | `warning \| positive \| negative \| foregroundMuted` | No | `-` | Variant color to apply to the subdetail text. |
409
+ | `width` | `string \| number` | No | `-` | - |
410
+ | `zIndex` | `number` | No | `-` | - |
411
+
412
+
@@ -0,0 +1,84 @@
1
+ # LogoMark
2
+
3
+ The Coinbase logo mark for branding.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { LogoMark } from '@coinbase/cds-mobile/icons/LogoMark'
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Basic usage
14
+
15
+ ```tsx
16
+ <VStack alignItems="center">
17
+ <Box width="100%">
18
+ <LogoMark size={32} />
19
+ </Box>
20
+ </VStack>
21
+ ```
22
+
23
+ ### Different Sizes
24
+
25
+ ```tsx
26
+ <VStack gap={4}>
27
+ <VStack gap={2}>
28
+ <Text font="label2" color="fgMuted">
29
+ Size 16
30
+ </Text>
31
+ <Box width="100%">
32
+ <LogoMark size={16} />
33
+ </Box>
34
+ </VStack>
35
+ <VStack gap={2}>
36
+ <Text font="label2" color="fgMuted">
37
+ Size 24
38
+ </Text>
39
+ <Box width="100%">
40
+ <LogoMark size={24} />
41
+ </Box>
42
+ </VStack>
43
+ <VStack gap={2}>
44
+ <Text font="label2" color="fgMuted">
45
+ Size 32
46
+ </Text>
47
+ <Box width="100%">
48
+ <LogoMark size={32} />
49
+ </Box>
50
+ </VStack>
51
+ </VStack>
52
+ ```
53
+
54
+ ### Foreground Variations
55
+
56
+ ```tsx
57
+ <VStack gap={4}>
58
+ <VStack gap={2}>
59
+ <Text font="label2" color="fgMuted">
60
+ Default (brand blue in light mode, white in dark mode)
61
+ </Text>
62
+ <Box width="100%">
63
+ <LogoMark size={32} />
64
+ </Box>
65
+ </VStack>
66
+ <VStack gap={2}>
67
+ <Text font="label2" color="fgMuted">
68
+ Foreground (high contrast black in light mode, white in dark mode)
69
+ </Text>
70
+ <Box width="100%">
71
+ <LogoMark size={32} foreground={true} />
72
+ </Box>
73
+ </VStack>
74
+ </VStack>
75
+ ```
76
+
77
+ ## Props
78
+
79
+ | Prop | Type | Required | Default | Description |
80
+ | --- | --- | --- | --- | --- |
81
+ | `foreground` | `boolean` | No | `-` | - |
82
+ | `size` | `16 \| 24 \| 32` | No | `-` | - |
83
+
84
+
@@ -0,0 +1,93 @@
1
+ # LogoWordMark
2
+
3
+ The full Coinbase logo with text for branding.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { LogoWordmark } from '@coinbase/cds-mobile/icons/LogoWordmark'
9
+ ```
10
+
11
+ ## Examples
12
+
13
+ ### Basic usage
14
+
15
+ ```tsx
16
+ <VStack alignItems="center">
17
+ <Box height="40px">
18
+ <LogoWordmark />
19
+ </Box>
20
+ </VStack>
21
+ ```
22
+
23
+ ### Foreground Variations
24
+
25
+ ```tsx
26
+ <VStack gap={4}>
27
+ <VStack gap={2}>
28
+ <Text font="label2" color="fgMuted">
29
+ Default (brand blue in light mode, white in dark mode)
30
+ </Text>
31
+ <Box height="40px">
32
+ <LogoWordmark />
33
+ </Box>
34
+ </VStack>
35
+ <VStack gap={2}>
36
+ <Text font="label2" color="fgMuted">
37
+ Foreground (high contrast black in light mode, white in dark mode)
38
+ </Text>
39
+ <Box height="40px">
40
+ <LogoWordmark foreground={true} />
41
+ </Box>
42
+ </VStack>
43
+ </VStack>
44
+ ```
45
+
46
+ ### Sizing
47
+
48
+ LogoWordmark doesn't have a `size` prop. Instead, control its size by setting the width or height of its container. The component will automatically maintain its aspect ratio.
49
+
50
+ ```tsx
51
+ <VStack gap={4}>
52
+ <VStack gap={2}>
53
+ <Text font="label2" color="fgMuted">
54
+ Small (24px height)
55
+ </Text>
56
+ <Box height="24px">
57
+ <LogoWordmark />
58
+ </Box>
59
+ </VStack>
60
+ <VStack gap={2}>
61
+ <Text font="label2" color="fgMuted">
62
+ Medium (40px height)
63
+ </Text>
64
+ <Box height="40px">
65
+ <LogoWordmark />
66
+ </Box>
67
+ </VStack>
68
+ <VStack gap={2}>
69
+ <Text font="label2" color="fgMuted">
70
+ Large (60px height)
71
+ </Text>
72
+ <Box height="60px">
73
+ <LogoWordmark />
74
+ </Box>
75
+ </VStack>
76
+ <VStack gap={2}>
77
+ <Text font="label2" color="fgMuted">
78
+ Width-constrained (150px width)
79
+ </Text>
80
+ <Box width="150px">
81
+ <LogoWordmark />
82
+ </Box>
83
+ </VStack>
84
+ </VStack>
85
+ ```
86
+
87
+ ## Props
88
+
89
+ | Prop | Type | Required | Default | Description |
90
+ | --- | --- | --- | --- | --- |
91
+ | `foreground` | `boolean` | No | `-` | - |
92
+
93
+