@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.
- package/CHANGELOG.md +8 -0
- package/mcp-docs/mobile/components/Accordion.txt +188 -0
- package/mcp-docs/mobile/components/AccordionItem.txt +29 -0
- package/mcp-docs/mobile/components/Alert.txt +155 -0
- package/mcp-docs/mobile/components/AreaChart.txt +265 -0
- package/mcp-docs/mobile/components/Avatar.txt +195 -0
- package/mcp-docs/mobile/components/AvatarButton.txt +225 -0
- package/mcp-docs/mobile/components/Banner.txt +221 -0
- package/mcp-docs/mobile/components/BarChart.txt +815 -0
- package/mcp-docs/mobile/components/Box.txt +173 -0
- package/mcp-docs/mobile/components/BrowserBar.txt +146 -0
- package/mcp-docs/mobile/components/Button.txt +198 -0
- package/mcp-docs/mobile/components/ButtonGroup.txt +79 -0
- package/mcp-docs/mobile/components/Carousel.txt +1083 -0
- package/mcp-docs/mobile/components/CartesianChart.txt +825 -0
- package/mcp-docs/mobile/components/CellMedia.txt +70 -0
- package/mcp-docs/mobile/components/Checkbox.txt +245 -0
- package/mcp-docs/mobile/components/CheckboxCell.txt +201 -0
- package/mcp-docs/mobile/components/CheckboxGroup.txt +284 -0
- package/mcp-docs/mobile/components/Chip.txt +194 -0
- package/mcp-docs/mobile/components/Coachmark.txt +157 -0
- package/mcp-docs/mobile/components/Collapsible.txt +104 -0
- package/mcp-docs/mobile/components/ContainedAssetCard.txt +134 -0
- package/mcp-docs/mobile/components/ContentCard.txt +365 -0
- package/mcp-docs/mobile/components/ContentCardBody.txt +135 -0
- package/mcp-docs/mobile/components/ContentCardFooter.txt +127 -0
- package/mcp-docs/mobile/components/ContentCardHeader.txt +145 -0
- package/mcp-docs/mobile/components/ContentCell.txt +226 -0
- package/mcp-docs/mobile/components/ControlGroup.txt +443 -0
- package/mcp-docs/mobile/components/DatePicker.txt +496 -0
- package/mcp-docs/mobile/components/Divider.txt +138 -0
- package/mcp-docs/mobile/components/DotCount.txt +145 -0
- package/mcp-docs/mobile/components/DotStatusColor.txt +58 -0
- package/mcp-docs/mobile/components/DotSymbol.txt +134 -0
- package/mcp-docs/mobile/components/Fallback.txt +157 -0
- package/mcp-docs/mobile/components/FloatingAssetCard.txt +155 -0
- package/mcp-docs/mobile/components/HStack.txt +234 -0
- package/mcp-docs/mobile/components/HeroSquare.txt +47 -0
- package/mcp-docs/mobile/components/Icon.txt +51 -0
- package/mcp-docs/mobile/components/IconButton.txt +268 -0
- package/mcp-docs/mobile/components/InputChip.txt +187 -0
- package/mcp-docs/mobile/components/Interactable.txt +186 -0
- package/mcp-docs/mobile/components/LineChart.txt +1324 -0
- package/mcp-docs/mobile/components/Link.txt +291 -0
- package/mcp-docs/mobile/components/ListCell.txt +412 -0
- package/mcp-docs/mobile/components/LogoMark.txt +84 -0
- package/mcp-docs/mobile/components/LogoWordMark.txt +93 -0
- package/mcp-docs/mobile/components/Lottie.txt +138 -0
- package/mcp-docs/mobile/components/LottieStatusAnimation.txt +46 -0
- package/mcp-docs/mobile/components/Modal.txt +83 -0
- package/mcp-docs/mobile/components/ModalBody.txt +33 -0
- package/mcp-docs/mobile/components/ModalFooter.txt +24 -0
- package/mcp-docs/mobile/components/ModalHeader.txt +27 -0
- package/mcp-docs/mobile/components/MultiContentModule.txt +379 -0
- package/mcp-docs/mobile/components/NavigationTitle.txt +131 -0
- package/mcp-docs/mobile/components/NavigationTitleSelect.txt +141 -0
- package/mcp-docs/mobile/components/NudgeCard.txt +89 -0
- package/mcp-docs/mobile/components/Numpad.txt +340 -0
- package/mcp-docs/mobile/components/Overlay.txt +151 -0
- package/mcp-docs/mobile/components/PageFooter.txt +160 -0
- package/mcp-docs/mobile/components/PageHeader.txt +185 -0
- package/mcp-docs/mobile/components/PeriodSelector.txt +407 -0
- package/mcp-docs/mobile/components/Pictogram.txt +47 -0
- package/mcp-docs/mobile/components/Point.txt +204 -0
- package/mcp-docs/mobile/components/PortalProvider.txt +78 -0
- package/mcp-docs/mobile/components/Pressable.txt +210 -0
- package/mcp-docs/mobile/components/ProgressBar.txt +129 -0
- package/mcp-docs/mobile/components/ProgressBarWithFixedLabels.txt +160 -0
- package/mcp-docs/mobile/components/ProgressBarWithFloatLabel.txt +137 -0
- package/mcp-docs/mobile/components/ProgressCircle.txt +236 -0
- package/mcp-docs/mobile/components/Radio.txt +241 -0
- package/mcp-docs/mobile/components/RadioCell.txt +201 -0
- package/mcp-docs/mobile/components/RadioGroup.txt +281 -0
- package/mcp-docs/mobile/components/ReferenceLine.txt +152 -0
- package/mcp-docs/mobile/components/RemoteImage.txt +105 -0
- package/mcp-docs/mobile/components/RemoteImageGroup.txt +60 -0
- package/mcp-docs/mobile/components/RollingNumber.txt +788 -0
- package/mcp-docs/mobile/components/Scrubber.txt +203 -0
- package/mcp-docs/mobile/components/SearchInput.txt +191 -0
- package/mcp-docs/mobile/components/SectionHeader.txt +204 -0
- package/mcp-docs/mobile/components/SegmentedTabs.txt +315 -0
- package/mcp-docs/mobile/components/Select.txt +211 -0
- package/mcp-docs/mobile/components/SelectChip.txt +323 -0
- package/mcp-docs/mobile/components/SelectOption.txt +84 -0
- package/mcp-docs/mobile/components/SlideButton.txt +330 -0
- package/mcp-docs/mobile/components/Spacer.txt +83 -0
- package/mcp-docs/mobile/components/Sparkline.txt +122 -0
- package/mcp-docs/mobile/components/SparklineGradient.txt +106 -0
- package/mcp-docs/mobile/components/SparklineInteractive.txt +156 -0
- package/mcp-docs/mobile/components/SparklineInteractiveHeader.txt +72 -0
- package/mcp-docs/mobile/components/Spinner.txt +48 -0
- package/mcp-docs/mobile/components/SpotIcon.txt +47 -0
- package/mcp-docs/mobile/components/SpotRectangle.txt +47 -0
- package/mcp-docs/mobile/components/SpotSquare.txt +47 -0
- package/mcp-docs/mobile/components/Stepper.txt +527 -0
- package/mcp-docs/mobile/components/SubBrandLogoMark.txt +125 -0
- package/mcp-docs/mobile/components/SubBrandLogoWordMark.txt +125 -0
- package/mcp-docs/mobile/components/Switch.txt +97 -0
- package/mcp-docs/mobile/components/TabIndicator.txt +48 -0
- package/mcp-docs/mobile/components/TabLabel.txt +153 -0
- package/mcp-docs/mobile/components/TabNavigation.txt +146 -0
- package/mcp-docs/mobile/components/TabbedChips.txt +142 -0
- package/mcp-docs/mobile/components/Tabs.txt +190 -0
- package/mcp-docs/mobile/components/Tag.txt +300 -0
- package/mcp-docs/mobile/components/Text.txt +211 -0
- package/mcp-docs/mobile/components/TextInput.txt +717 -0
- package/mcp-docs/mobile/components/ThemeProvider.txt +132 -0
- package/mcp-docs/mobile/components/Toast.txt +196 -0
- package/mcp-docs/mobile/components/Tooltip.txt +59 -0
- package/mcp-docs/mobile/components/TopNavBar.txt +161 -0
- package/mcp-docs/mobile/components/Tour.txt +158 -0
- package/mcp-docs/mobile/components/Tray.txt +252 -0
- package/mcp-docs/mobile/components/UpsellCard.txt +321 -0
- package/mcp-docs/mobile/components/VStack.txt +222 -0
- package/mcp-docs/mobile/components/XAxis.txt +621 -0
- package/mcp-docs/mobile/components/YAxis.txt +567 -0
- package/mcp-docs/mobile/getting-started/ai-overview.txt +108 -0
- package/mcp-docs/mobile/getting-started/installation.txt +57 -0
- package/mcp-docs/mobile/getting-started/introduction.txt +102 -0
- package/mcp-docs/mobile/getting-started/playground.txt +28 -0
- package/mcp-docs/mobile/getting-started/styling.txt +84 -0
- package/mcp-docs/mobile/getting-started/theming.txt +286 -0
- package/mcp-docs/mobile/hooks/useDimensions.txt +72 -0
- package/mcp-docs/mobile/hooks/useEventHandler.txt +120 -0
- package/mcp-docs/mobile/hooks/useMergeRefs.txt +116 -0
- package/mcp-docs/mobile/hooks/useOverlayContentContext.txt +280 -0
- package/mcp-docs/mobile/hooks/usePreviousValue.txt +74 -0
- package/mcp-docs/mobile/hooks/useRefMap.txt +178 -0
- package/mcp-docs/mobile/hooks/useTheme.txt +321 -0
- package/mcp-docs/mobile/routes.txt +139 -0
- package/mcp-docs/web/components/Accordion.txt +189 -0
- package/mcp-docs/web/components/AccordionItem.txt +31 -0
- package/mcp-docs/web/components/Alert.txt +164 -0
- package/mcp-docs/web/components/AreaChart.txt +510 -0
- package/mcp-docs/web/components/Avatar.txt +211 -0
- package/mcp-docs/web/components/AvatarButton.txt +240 -0
- package/mcp-docs/web/components/Banner.txt +226 -0
- package/mcp-docs/web/components/BarChart.txt +1267 -0
- package/mcp-docs/web/components/Box.txt +175 -0
- package/mcp-docs/web/components/Button.txt +212 -0
- package/mcp-docs/web/components/ButtonGroup.txt +79 -0
- package/mcp-docs/web/components/Calendar.txt +181 -0
- package/mcp-docs/web/components/Carousel.txt +1575 -0
- package/mcp-docs/web/components/CartesianChart.txt +1044 -0
- package/mcp-docs/web/components/CellMedia.txt +56 -0
- package/mcp-docs/web/components/Checkbox.txt +188 -0
- package/mcp-docs/web/components/CheckboxCell.txt +202 -0
- package/mcp-docs/web/components/CheckboxGroup.txt +219 -0
- package/mcp-docs/web/components/Chip.txt +196 -0
- package/mcp-docs/web/components/Coachmark.txt +188 -0
- package/mcp-docs/web/components/Collapsible.txt +119 -0
- package/mcp-docs/web/components/ContainedAssetCard.txt +232 -0
- package/mcp-docs/web/components/ContentCard.txt +367 -0
- package/mcp-docs/web/components/ContentCardBody.txt +137 -0
- package/mcp-docs/web/components/ContentCardFooter.txt +129 -0
- package/mcp-docs/web/components/ContentCardHeader.txt +147 -0
- package/mcp-docs/web/components/ContentCell.txt +219 -0
- package/mcp-docs/web/components/ControlGroup.txt +436 -0
- package/mcp-docs/web/components/DatePicker.txt +505 -0
- package/mcp-docs/web/components/Divider.txt +143 -0
- package/mcp-docs/web/components/DotCount.txt +149 -0
- package/mcp-docs/web/components/DotStatusColor.txt +58 -0
- package/mcp-docs/web/components/DotSymbol.txt +137 -0
- package/mcp-docs/web/components/Dropdown.txt +119 -0
- package/mcp-docs/web/components/Fallback.txt +163 -0
- package/mcp-docs/web/components/FloatingAssetCard.txt +250 -0
- package/mcp-docs/web/components/FullscreenAlert.txt +69 -0
- package/mcp-docs/web/components/FullscreenModal.txt +145 -0
- package/mcp-docs/web/components/FullscreenModalLayout.txt +187 -0
- package/mcp-docs/web/components/Grid.txt +236 -0
- package/mcp-docs/web/components/GridColumn.txt +209 -0
- package/mcp-docs/web/components/HStack.txt +236 -0
- package/mcp-docs/web/components/HeroSquare.txt +48 -0
- package/mcp-docs/web/components/Icon.txt +145 -0
- package/mcp-docs/web/components/IconButton.txt +390 -0
- package/mcp-docs/web/components/InputChip.txt +187 -0
- package/mcp-docs/web/components/Interactable.txt +193 -0
- package/mcp-docs/web/components/LineChart.txt +1576 -0
- package/mcp-docs/web/components/Link.txt +243 -0
- package/mcp-docs/web/components/ListCell.txt +418 -0
- package/mcp-docs/web/components/LogoMark.txt +84 -0
- package/mcp-docs/web/components/LogoWordMark.txt +93 -0
- package/mcp-docs/web/components/Lottie.txt +157 -0
- package/mcp-docs/web/components/LottieStatusAnimation.txt +57 -0
- package/mcp-docs/web/components/MediaQueryProvider.txt +108 -0
- package/mcp-docs/web/components/Modal.txt +196 -0
- package/mcp-docs/web/components/ModalBody.txt +117 -0
- package/mcp-docs/web/components/ModalFooter.txt +119 -0
- package/mcp-docs/web/components/ModalHeader.txt +123 -0
- package/mcp-docs/web/components/MultiContentModule.txt +381 -0
- package/mcp-docs/web/components/NavigationBar.txt +102 -0
- package/mcp-docs/web/components/NavigationTitle.txt +25 -0
- package/mcp-docs/web/components/NavigationTitleSelect.txt +45 -0
- package/mcp-docs/web/components/NudgeCard.txt +181 -0
- package/mcp-docs/web/components/Overlay.txt +171 -0
- package/mcp-docs/web/components/PageFooter.txt +184 -0
- package/mcp-docs/web/components/PageHeader.txt +243 -0
- package/mcp-docs/web/components/Pagination.txt +499 -0
- package/mcp-docs/web/components/PeriodSelector.txt +703 -0
- package/mcp-docs/web/components/Pictogram.txt +48 -0
- package/mcp-docs/web/components/Point.txt +460 -0
- package/mcp-docs/web/components/PortalProvider.txt +76 -0
- package/mcp-docs/web/components/Pressable.txt +193 -0
- package/mcp-docs/web/components/ProgressBar.txt +163 -0
- package/mcp-docs/web/components/ProgressBarWithFixedLabels.txt +212 -0
- package/mcp-docs/web/components/ProgressBarWithFloatLabel.txt +181 -0
- package/mcp-docs/web/components/ProgressCircle.txt +443 -0
- package/mcp-docs/web/components/Radio.txt +219 -0
- package/mcp-docs/web/components/RadioCell.txt +215 -0
- package/mcp-docs/web/components/RadioGroup.txt +288 -0
- package/mcp-docs/web/components/ReferenceLine.txt +451 -0
- package/mcp-docs/web/components/RemoteImage.txt +165 -0
- package/mcp-docs/web/components/RemoteImageGroup.txt +86 -0
- package/mcp-docs/web/components/RollingNumber.txt +1021 -0
- package/mcp-docs/web/components/Scrubber.txt +231 -0
- package/mcp-docs/web/components/SearchInput.txt +117 -0
- package/mcp-docs/web/components/SectionHeader.txt +217 -0
- package/mcp-docs/web/components/SegmentedTabs.txt +324 -0
- package/mcp-docs/web/components/Select.txt +224 -0
- package/mcp-docs/web/components/SelectChip.txt +314 -0
- package/mcp-docs/web/components/SelectOption.txt +165 -0
- package/mcp-docs/web/components/Sidebar.txt +349 -0
- package/mcp-docs/web/components/SidebarItem.txt +131 -0
- package/mcp-docs/web/components/SidebarMoreMenu.txt +30 -0
- package/mcp-docs/web/components/Spacer.txt +173 -0
- package/mcp-docs/web/components/Sparkline.txt +122 -0
- package/mcp-docs/web/components/SparklineGradient.txt +106 -0
- package/mcp-docs/web/components/SparklineInteractive.txt +153 -0
- package/mcp-docs/web/components/SparklineInteractiveHeader.txt +76 -0
- package/mcp-docs/web/components/Spinner.txt +128 -0
- package/mcp-docs/web/components/SpotIcon.txt +48 -0
- package/mcp-docs/web/components/SpotRectangle.txt +48 -0
- package/mcp-docs/web/components/SpotSquare.txt +48 -0
- package/mcp-docs/web/components/Stepper.txt +682 -0
- package/mcp-docs/web/components/SubBrandLogoMark.txt +125 -0
- package/mcp-docs/web/components/SubBrandLogoWordMark.txt +125 -0
- package/mcp-docs/web/components/Switch.txt +85 -0
- package/mcp-docs/web/components/TabIndicator.txt +48 -0
- package/mcp-docs/web/components/TabLabel.txt +158 -0
- package/mcp-docs/web/components/TabNavigation.txt +159 -0
- package/mcp-docs/web/components/TabbedChips.txt +155 -0
- package/mcp-docs/web/components/Table.txt +367 -0
- package/mcp-docs/web/components/TableBody.txt +83 -0
- package/mcp-docs/web/components/TableCaption.txt +102 -0
- package/mcp-docs/web/components/TableCell.txt +165 -0
- package/mcp-docs/web/components/TableCellFallback.txt +97 -0
- package/mcp-docs/web/components/TableFooter.txt +83 -0
- package/mcp-docs/web/components/TableHeader.txt +100 -0
- package/mcp-docs/web/components/TableRow.txt +140 -0
- package/mcp-docs/web/components/Tabs.txt +212 -0
- package/mcp-docs/web/components/Tag.txt +304 -0
- package/mcp-docs/web/components/Text.txt +232 -0
- package/mcp-docs/web/components/TextInput.txt +652 -0
- package/mcp-docs/web/components/ThemeProvider.txt +199 -0
- package/mcp-docs/web/components/TileButton.txt +158 -0
- package/mcp-docs/web/components/Toast.txt +203 -0
- package/mcp-docs/web/components/Tooltip.txt +89 -0
- package/mcp-docs/web/components/Tour.txt +179 -0
- package/mcp-docs/web/components/Tray.txt +288 -0
- package/mcp-docs/web/components/UpsellCard.txt +319 -0
- package/mcp-docs/web/components/VStack.txt +224 -0
- package/mcp-docs/web/components/XAxis.txt +619 -0
- package/mcp-docs/web/components/YAxis.txt +548 -0
- package/mcp-docs/web/getting-started/ai-overview.txt +108 -0
- package/mcp-docs/web/getting-started/installation.txt +103 -0
- package/mcp-docs/web/getting-started/introduction.txt +102 -0
- package/mcp-docs/web/getting-started/playground.txt +28 -0
- package/mcp-docs/web/getting-started/styling.txt +161 -0
- package/mcp-docs/web/getting-started/templates.txt +121 -0
- package/mcp-docs/web/getting-started/theming.txt +426 -0
- package/mcp-docs/web/hooks/useBreakpoints.txt +61 -0
- package/mcp-docs/web/hooks/useDimensions.txt +114 -0
- package/mcp-docs/web/hooks/useEventHandler.txt +120 -0
- package/mcp-docs/web/hooks/useHasMounted.txt +75 -0
- package/mcp-docs/web/hooks/useIsoEffect.txt +58 -0
- package/mcp-docs/web/hooks/useMediaQuery.txt +114 -0
- package/mcp-docs/web/hooks/useMergeRefs.txt +116 -0
- package/mcp-docs/web/hooks/useOverlayContentContext.txt +279 -0
- package/mcp-docs/web/hooks/usePreviousValue.txt +74 -0
- package/mcp-docs/web/hooks/useRefMap.txt +178 -0
- package/mcp-docs/web/hooks/useScrollBlocker.txt +82 -0
- package/mcp-docs/web/hooks/useTheme.txt +364 -0
- package/mcp-docs/web/routes.txt +163 -0
- package/package.json +1 -1
|
@@ -0,0 +1,418 @@
|
|
|
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-web/cells/ListCell'
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Examples
|
|
12
|
+
|
|
13
|
+
A ListCell row is divided into the following 5 columns:
|
|
14
|
+
|
|
15
|
+
- Media
|
|
16
|
+
- Title & description
|
|
17
|
+
- Intermediary
|
|
18
|
+
- End (detail & subdetail or action)
|
|
19
|
+
- Accessory
|
|
20
|
+
|
|
21
|
+
:::warning
|
|
22
|
+
|
|
23
|
+
The `title`, `description`, `detail` and `subdetail` props are only intended to accept a string or `Text` component. Other use cases, while allowed, are not supported and may result in unexpected behavior.
|
|
24
|
+
|
|
25
|
+
:::
|
|
26
|
+
|
|
27
|
+
### Basic usage
|
|
28
|
+
|
|
29
|
+
```tsx live
|
|
30
|
+
<ListCell
|
|
31
|
+
spacingVariant="condensed"
|
|
32
|
+
title="Basic List Cell"
|
|
33
|
+
description="A simple example of ListCell"
|
|
34
|
+
/>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
:::note
|
|
38
|
+
Prefer `spacingVariant="condensed"` for the new ListCell design. The `compact` may be removed in a future major release.
|
|
39
|
+
:::
|
|
40
|
+
|
|
41
|
+
```tsx live
|
|
42
|
+
<VStack>
|
|
43
|
+
{/* Preferred (new design) */}
|
|
44
|
+
<ListCell
|
|
45
|
+
accessory="arrow"
|
|
46
|
+
description="New design (condensed)"
|
|
47
|
+
detail="$12,345.00"
|
|
48
|
+
spacingVariant="condensed"
|
|
49
|
+
media={<Avatar src={assets.eth.imageUrl} size="m" />}
|
|
50
|
+
onClick={console.log}
|
|
51
|
+
title="Condensed"
|
|
52
|
+
variant="positive"
|
|
53
|
+
/>
|
|
54
|
+
|
|
55
|
+
{/* Deprecated options kept for backward compatibility */}
|
|
56
|
+
<ListCell
|
|
57
|
+
accessory="arrow"
|
|
58
|
+
detail="$12,345.00"
|
|
59
|
+
spacingVariant="compact"
|
|
60
|
+
media={<Avatar src={assets.eth.imageUrl} size="m" />}
|
|
61
|
+
onClick={console.log}
|
|
62
|
+
title="Compact (deprecated)"
|
|
63
|
+
variant="positive"
|
|
64
|
+
/>
|
|
65
|
+
<ListCell
|
|
66
|
+
accessory="arrow"
|
|
67
|
+
detail="$12,345.00"
|
|
68
|
+
spacingVariant="normal"
|
|
69
|
+
media={<Avatar src={assets.eth.imageUrl} size="m" />}
|
|
70
|
+
onClick={console.log}
|
|
71
|
+
title="Normal"
|
|
72
|
+
variant="positive"
|
|
73
|
+
/>
|
|
74
|
+
</VStack>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### With Leading Icon
|
|
78
|
+
|
|
79
|
+
```tsx live
|
|
80
|
+
<ListCell
|
|
81
|
+
spacingVariant="condensed"
|
|
82
|
+
title="List Cell with Icon"
|
|
83
|
+
description="Shows usage with a leading icon"
|
|
84
|
+
media={<Icon active name="info" />}
|
|
85
|
+
/>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### With Detail and Subdetail
|
|
89
|
+
|
|
90
|
+
```tsx live
|
|
91
|
+
<ListCell
|
|
92
|
+
spacingVariant="condensed"
|
|
93
|
+
title="List Cell with Details"
|
|
94
|
+
description="Shows usage with detail and subdetail"
|
|
95
|
+
detail="Primary detail"
|
|
96
|
+
subdetail="Secondary detail"
|
|
97
|
+
/>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Interactive Cell with Accessory
|
|
101
|
+
|
|
102
|
+
```tsx live
|
|
103
|
+
<ListCell
|
|
104
|
+
spacingVariant="condensed"
|
|
105
|
+
title="Interactive List Cell"
|
|
106
|
+
description="Click or tap to interact"
|
|
107
|
+
accessory="arrow"
|
|
108
|
+
onClick={() => alert('Cell clicked!')}
|
|
109
|
+
/>
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### With Helper Text
|
|
113
|
+
|
|
114
|
+
```tsx live
|
|
115
|
+
<VStack gap={3}>
|
|
116
|
+
<ListCell
|
|
117
|
+
spacingVariant="condensed"
|
|
118
|
+
title="List Cell with Helper Text"
|
|
119
|
+
description="Shows usage with helper text below the cell"
|
|
120
|
+
helperText={
|
|
121
|
+
<CellHelperText font="label2" paddingStart={6}>
|
|
122
|
+
This is a default helper message.
|
|
123
|
+
</CellHelperText>
|
|
124
|
+
}
|
|
125
|
+
media={<Avatar src={assets.btc.imageUrl} />}
|
|
126
|
+
end={<Button compact>Action</Button>}
|
|
127
|
+
/>
|
|
128
|
+
<ListCell
|
|
129
|
+
spacingVariant="condensed"
|
|
130
|
+
title="List Cell with Warning"
|
|
131
|
+
description="Shows usage with a warning message"
|
|
132
|
+
helperText={
|
|
133
|
+
<CellHelperText font="label2" variant="warning" paddingStart={6}>
|
|
134
|
+
This is a warning message.
|
|
135
|
+
</CellHelperText>
|
|
136
|
+
}
|
|
137
|
+
media={<Avatar src={assets.btc.imageUrl} />}
|
|
138
|
+
end={<Button compact>Action</Button>}
|
|
139
|
+
/>
|
|
140
|
+
<ListCell
|
|
141
|
+
spacingVariant="condensed"
|
|
142
|
+
title="List Cell with Error"
|
|
143
|
+
description="Shows usage with an error message"
|
|
144
|
+
helperText={
|
|
145
|
+
<CellHelperText font="label2" variant="error" paddingStart={6}>
|
|
146
|
+
This is an error message.
|
|
147
|
+
</CellHelperText>
|
|
148
|
+
}
|
|
149
|
+
media={<Avatar src={assets.btc.imageUrl} />}
|
|
150
|
+
end={<Button compact>Action</Button>}
|
|
151
|
+
/>
|
|
152
|
+
</VStack>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Accessibility Label
|
|
156
|
+
|
|
157
|
+
The accessibility props are only applied when the `<ListCell>` has a value for the `onClick` prop. Otherwise, content passed into the `<ListCell>` must use accessibility props and attributes as needed.
|
|
158
|
+
|
|
159
|
+
```tsx live
|
|
160
|
+
<VStack gap={1}>
|
|
161
|
+
<ListCell
|
|
162
|
+
accessibilityLabel="Accessibility label. Describes content for entire list cell. Applied when onClick prop has a value"
|
|
163
|
+
intermediary={<Icon name="chartLine" />}
|
|
164
|
+
media={<Avatar src={assets.btc.imageUrl} />}
|
|
165
|
+
onClick={() => window.alert('ListCell clicked!')}
|
|
166
|
+
title="BTC"
|
|
167
|
+
/>
|
|
168
|
+
|
|
169
|
+
<ListCell
|
|
170
|
+
intermediary={<Icon accessibilityLabel="Chart icon" name="chartLine" />}
|
|
171
|
+
media={<Avatar accessibilityLabel="Bitcoin" src={assets.btc.imageUrl} />}
|
|
172
|
+
title="BTC"
|
|
173
|
+
/>
|
|
174
|
+
</VStack>
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Multiline Description
|
|
178
|
+
|
|
179
|
+
```tsx live
|
|
180
|
+
<ListCell
|
|
181
|
+
spacingVariant="condensed"
|
|
182
|
+
title="Multiline Description"
|
|
183
|
+
description="This is a longer description that demonstrates how the text wraps when the multiline prop is enabled. It can span multiple lines without truncating."
|
|
184
|
+
multiline
|
|
185
|
+
/>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Loading States
|
|
189
|
+
|
|
190
|
+
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 web version uses percentage-based widths and custom layouts to match the ListCell's four-column structure.
|
|
191
|
+
|
|
192
|
+
```tsx live
|
|
193
|
+
<VStack gap={3}>
|
|
194
|
+
{/* Basic loading state */}
|
|
195
|
+
<ListCellFallback title description spacingVariant="condensed" />
|
|
196
|
+
|
|
197
|
+
{/* Loading state with media */}
|
|
198
|
+
<ListCellFallback title description media="icon" spacingVariant="condensed" />
|
|
199
|
+
|
|
200
|
+
{/* Loading state with details */}
|
|
201
|
+
<ListCellFallback title description detail subdetail spacingVariant="condensed" />
|
|
202
|
+
|
|
203
|
+
{/* Full loading state with custom widths */}
|
|
204
|
+
<ListCellFallback
|
|
205
|
+
spacingVariant="condensed"
|
|
206
|
+
title
|
|
207
|
+
description
|
|
208
|
+
detail
|
|
209
|
+
subdetail
|
|
210
|
+
helperText
|
|
211
|
+
media="icon"
|
|
212
|
+
rectWidthVariant={2} // Creates a deterministic variant of the loading state
|
|
213
|
+
disableRandomRectWidth
|
|
214
|
+
styles={{ helperText: { paddingLeft: 48 } }}
|
|
215
|
+
/>
|
|
216
|
+
</VStack>
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Anatomy
|
|
220
|
+
|
|
221
|
+
Without helper text (top-only layout):
|
|
222
|
+
|
|
223
|
+
```text
|
|
224
|
+
┌───────────────────────────────────────────────────────────────────────────┐
|
|
225
|
+
│ root (Box) │
|
|
226
|
+
│┌─────────────────────────────────────────────────────────────────────────┐│
|
|
227
|
+
││ pressable ││
|
|
228
|
+
││┌───────────────────────────────────────────────────────────────────────┐││
|
|
229
|
+
│││ contentContainer & mainContent (HStack) │││
|
|
230
|
+
│││ ┌─────┐ ┌────────────────┐ ┌────────────┐ ┌────────────┐ ┌─────────┐ │││
|
|
231
|
+
│││ │media│ │ VStack │ │intermediary│ │ end │ │accessory│ │││
|
|
232
|
+
│││ │ │ │ ┌──────────┐ │ │ │ │ (detail │ │ │ │││
|
|
233
|
+
│││ │ │ │ │ title │ │ │ │ │ or │ │ │ │││
|
|
234
|
+
│││ │ │ │ └──────────┘ │ │ │ │ action) │ │ │ │││
|
|
235
|
+
│││ │ │ │ ┌────────────┐ │ │ │ │ │ │ │ │││
|
|
236
|
+
│││ │ │ │ │ description│ │ │ │ │ │ │ │ │││
|
|
237
|
+
│││ │ │ │ └────────────┘ │ │ │ │ │ │ │ │││
|
|
238
|
+
│││ └─────┘ └────────────────┘ └────────────┘ └────────────┘ └─────────┘ │││
|
|
239
|
+
││└───────────────────────────────────────────────────────────────────────┘││
|
|
240
|
+
│└─────────────────────────────────────────────────────────────────────────┘│
|
|
241
|
+
└───────────────────────────────────────────────────────────────────────────┘
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
With helper text (top + bottom layout):
|
|
245
|
+
|
|
246
|
+
```text
|
|
247
|
+
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
248
|
+
│ root (Box) │
|
|
249
|
+
│┌───────────────────────────────────────────────────────────────────────────┐│
|
|
250
|
+
││ pressable ││
|
|
251
|
+
││┌─────────────────────────────────────────────────────────────────────────┐││
|
|
252
|
+
│││ contentContainer (VStack) │││
|
|
253
|
+
│││┌───────────────────────────────────────────────────────────────────────┐│││
|
|
254
|
+
││││ mainContent (HStack) ││││
|
|
255
|
+
││││ ┌─────┐ ┌────────────────┐ ┌────────────┐ ┌────────────┐ ┌─────────┐ ││││
|
|
256
|
+
││││ │media│ │ VStack │ │intermediary│ │ end │ │accessory│ ││││
|
|
257
|
+
││││ │ │ │ ┌──────────┐ │ │ │ │ (detail │ │ │ ││││
|
|
258
|
+
││││ │ │ │ │ title │ │ │ │ │ or │ │ │ ││││
|
|
259
|
+
││││ │ │ │ └──────────┘ │ │ │ │ action) │ │ │ ││││
|
|
260
|
+
││││ │ │ │ ┌────────────┐ │ │ │ │ │ │ │ ││││
|
|
261
|
+
││││ │ │ │ │ description│ │ │ │ │ │ │ │ ││││
|
|
262
|
+
││││ │ │ │ └────────────┘ │ │ │ │ │ │ │ ││││
|
|
263
|
+
││││ └─────┘ └────────────────┘ └────────────┘ └────────────┘ └─────────┘ ││││
|
|
264
|
+
│││└───────────────────────────────────────────────────────────────────────┘│││
|
|
265
|
+
│││┌───────────────────────────────────────────────────────────────────────┐│││
|
|
266
|
+
││││ helperText ││││
|
|
267
|
+
│││└───────────────────────────────────────────────────────────────────────┘│││
|
|
268
|
+
││└─────────────────────────────────────────────────────────────────────────┘││
|
|
269
|
+
│└───────────────────────────────────────────────────────────────────────────┘│
|
|
270
|
+
└─────────────────────────────────────────────────────────────────────────────┘
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Mapping to `styles` / `classNames` keys:
|
|
274
|
+
|
|
275
|
+
- root: outer `Box` wrapping the entire cell
|
|
276
|
+
- pressable: interactive overlay when `href` / `onClick` keyboard handlers are present
|
|
277
|
+
- contentContainer: container around top and optional bottom content
|
|
278
|
+
- mainContent: inner horizontal layout that holds the main pieces
|
|
279
|
+
- title/description: stacked text column within `topContent`
|
|
280
|
+
- media: leading media container
|
|
281
|
+
- intermediary: middle container between main and end
|
|
282
|
+
- end: container for `detail` / `subdetail` or `end` prop you pass in
|
|
283
|
+
- accessory: trailing accessory container
|
|
284
|
+
- helperText: container below main content to display helper text
|
|
285
|
+
|
|
286
|
+
## Props
|
|
287
|
+
|
|
288
|
+
| Prop | Type | Required | Default | Description |
|
|
289
|
+
| --- | --- | --- | --- | --- |
|
|
290
|
+
| `accessory` | `more \| selected \| arrow` | No | `-` | Accessory to display at the end of the cell. |
|
|
291
|
+
| `action` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | - |
|
|
292
|
+
| `alignContent` | `ResponsiveProp<center \| normal \| start \| end \| flex-start \| flex-end \| stretch \| baseline \| first baseline \| last baseline \| space-between \| space-around \| space-evenly>` | No | `-` | - |
|
|
293
|
+
| `alignItems` | `ResponsiveProp<center \| normal \| start \| end \| flex-start \| flex-end \| self-start \| self-end \| stretch \| baseline \| first baseline \| last baseline>` | No | `-` | - |
|
|
294
|
+
| `alignSelf` | `ResponsiveProp<center \| normal \| auto \| start \| end \| flex-start \| flex-end \| self-start \| self-end \| stretch \| baseline \| first baseline \| last baseline>` | No | `-` | - |
|
|
295
|
+
| `as` | `symbol \| object \| style \| svg \| a \| abbr \| address \| area \| article \| aside \| audio \| b \| base \| bdi \| bdo \| big \| blockquote \| body \| br \| button \| canvas \| caption \| center \| cite \| code \| col \| colgroup \| data \| datalist \| dd \| del \| details \| dfn \| dialog \| div \| dl \| dt \| em \| embed \| fieldset \| figcaption \| figure \| footer \| form \| h1 \| h2 \| h3 \| h4 \| h5 \| h6 \| head \| header \| hgroup \| hr \| html \| i \| iframe \| img \| input \| ins \| kbd \| keygen \| label \| legend \| li \| link \| main \| map \| mark \| menu \| menuitem \| meta \| meter \| nav \| noindex \| noscript \| ol \| optgroup \| option \| output \| p \| param \| picture \| pre \| progress \| q \| rp \| rt \| ruby \| s \| samp \| search \| slot \| script \| section \| select \| small \| source \| span \| strong \| sub \| summary \| sup \| table \| template \| tbody \| td \| textarea \| tfoot \| th \| thead \| time \| title \| tr \| track \| u \| ul \| var \| video \| wbr \| webview \| animate \| animateMotion \| animateTransform \| circle \| clipPath \| defs \| desc \| ellipse \| feBlend \| feColorMatrix \| feComponentTransfer \| feComposite \| feConvolveMatrix \| feDiffuseLighting \| feDisplacementMap \| feDistantLight \| feDropShadow \| feFlood \| feFuncA \| feFuncB \| feFuncG \| feFuncR \| feGaussianBlur \| feImage \| feMerge \| feMergeNode \| feMorphology \| feOffset \| fePointLight \| feSpecularLighting \| feSpotLight \| feTile \| feTurbulence \| filter \| foreignObject \| g \| image \| line \| linearGradient \| marker \| mask \| metadata \| mpath \| path \| pattern \| polygon \| polyline \| radialGradient \| rect \| set \| stop \| switch \| text \| textPath \| tspan \| use \| view \| ComponentClass<any, any> \| FunctionComponent<any>` | No | `-` | - |
|
|
296
|
+
| `aspectRatio` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
|
|
297
|
+
| `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 | `-` | - |
|
|
298
|
+
| `borderBottomLeftRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
|
|
299
|
+
| `borderBottomRightRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
|
|
300
|
+
| `borderBottomWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
|
|
301
|
+
| `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 | `-` | - |
|
|
302
|
+
| `borderEndWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
|
|
303
|
+
| `borderRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
|
|
304
|
+
| `borderStartWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
|
|
305
|
+
| `borderTopLeftRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
|
|
306
|
+
| `borderTopRightRadius` | `0 \| 100 \| 200 \| 300 \| 400 \| 500 \| 600 \| 700 \| 800 \| 900 \| 1000` | No | `-` | - |
|
|
307
|
+
| `borderTopWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
|
|
308
|
+
| `borderWidth` | `0 \| 100 \| 200 \| 300 \| 400 \| 500` | No | `-` | - |
|
|
309
|
+
| `bordered` | `boolean` | No | `-` | Add a border around all sides of the box. |
|
|
310
|
+
| `borderedBottom` | `boolean` | No | `-` | Add a border to the bottom side of the box. |
|
|
311
|
+
| `borderedEnd` | `boolean` | No | `-` | Add a border to the trailing side of the box. |
|
|
312
|
+
| `borderedHorizontal` | `boolean` | No | `-` | Add a border to the leading and trailing sides of the box. |
|
|
313
|
+
| `borderedStart` | `boolean` | No | `-` | Add a border to the leading side of the box. |
|
|
314
|
+
| `borderedTop` | `boolean` | No | `-` | Add a border to the top side of the box. |
|
|
315
|
+
| `borderedVertical` | `boolean` | No | `-` | Add a border to the top and bottom sides of the box. |
|
|
316
|
+
| `bottom` | `ResponsiveProp<Bottom<string \| number>>` | No | `-` | - |
|
|
317
|
+
| `bottomContent` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | The content to display below the main cell content |
|
|
318
|
+
| `classNames` | `{ root?: string; media?: string \| undefined; intermediary?: string \| undefined; end?: string \| undefined; accessory?: string \| undefined; contentContainer?: string \| undefined; pressable?: string \| undefined; mainContent?: string \| undefined; helperText?: string \| undefined; title?: string \| undefined; description?: string \| undefined; } \| undefined` | No | `-` | Class names for the components |
|
|
319
|
+
| `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 | `-` | - |
|
|
320
|
+
| `columnGap` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
|
|
321
|
+
| `compact` | `boolean` | No | `-` | - |
|
|
322
|
+
| `contentClassName` | `string` | No | `-` | - |
|
|
323
|
+
| `dangerouslySetBackground` | `string` | No | `-` | - |
|
|
324
|
+
| `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. |
|
|
325
|
+
| `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. |
|
|
326
|
+
| `detailWidth` | `string \| number` | No | `-` | - |
|
|
327
|
+
| `disableMultilineTitle` | `boolean` | No | `-` | 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. |
|
|
328
|
+
| `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. |
|
|
329
|
+
| `disabled` | `boolean` | No | `-` | Is the cell disabled? Will apply opacity and disable interaction. |
|
|
330
|
+
| `display` | `ResponsiveProp<grid \| revert \| none \| block \| inline \| inline-block \| flex \| inline-flex \| inline-grid \| contents \| flow-root \| list-item>` | No | `-` | - |
|
|
331
|
+
| `elevation` | `0 \| 1 \| 2` | No | `-` | - |
|
|
332
|
+
| `end` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | End-aligned content (e.g., CTA, form element, metric). Replacement for the deprecated action prop, and takes precedence over it. If the content is an action (like button, link, etc), we recommend avoiding use alongside onClick. If used alongside onClick, the end action is triggered first and then the onClick handler. |
|
|
333
|
+
| `flexBasis` | `ResponsiveProp<FlexBasis<string \| number>>` | No | `-` | - |
|
|
334
|
+
| `flexDirection` | `ResponsiveProp<column \| row \| row-reverse \| column-reverse>` | No | `-` | - |
|
|
335
|
+
| `flexGrow` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset` | No | `-` | - |
|
|
336
|
+
| `flexShrink` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset` | No | `-` | - |
|
|
337
|
+
| `flexWrap` | `ResponsiveProp<nowrap \| wrap \| wrap-reverse>` | No | `-` | - |
|
|
338
|
+
| `font` | `ResponsiveProp<FontFamily \| inherit>` | No | `-` | - |
|
|
339
|
+
| `fontFamily` | `ResponsiveProp<FontFamily \| inherit>` | No | `-` | - |
|
|
340
|
+
| `fontSize` | `ResponsiveProp<FontSize \| inherit>` | No | `-` | - |
|
|
341
|
+
| `fontWeight` | `ResponsiveProp<FontWeight \| inherit>` | No | `-` | - |
|
|
342
|
+
| `gap` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
|
|
343
|
+
| `grid` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| none` | No | `-` | - |
|
|
344
|
+
| `gridArea` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
|
|
345
|
+
| `gridAutoColumns` | `ResponsiveProp<GridAutoColumns<string \| number>>` | No | `-` | - |
|
|
346
|
+
| `gridAutoFlow` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| row \| column \| dense` | No | `-` | - |
|
|
347
|
+
| `gridAutoRows` | `ResponsiveProp<GridAutoRows<string \| number>>` | No | `-` | - |
|
|
348
|
+
| `gridColumn` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
|
|
349
|
+
| `gridColumnEnd` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
|
|
350
|
+
| `gridColumnStart` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
|
|
351
|
+
| `gridRow` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
|
|
352
|
+
| `gridRowEnd` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
|
|
353
|
+
| `gridRowStart` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
|
|
354
|
+
| `gridTemplate` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| none` | No | `-` | - |
|
|
355
|
+
| `gridTemplateAreas` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| none` | No | `-` | - |
|
|
356
|
+
| `gridTemplateColumns` | `ResponsiveProp<GridTemplateColumns<string \| number>>` | No | `-` | - |
|
|
357
|
+
| `gridTemplateRows` | `ResponsiveProp<GridTemplateRows<string \| number>>` | No | `-` | - |
|
|
358
|
+
| `height` | `ResponsiveProp<Height<string \| number>>` | No | `-` | - |
|
|
359
|
+
| `helperText` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | Assitive message to display below the cell content |
|
|
360
|
+
| `innerSpacing` | `CellSpacing` | No | `-` | The spacing to use on the inner content of Cell |
|
|
361
|
+
| `intermediary` | `null \| string \| number \| false \| true \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal` | No | `-` | For internal use only. |
|
|
362
|
+
| `justifyContent` | `ResponsiveProp<left \| right \| center \| normal \| start \| end \| flex-start \| flex-end \| stretch \| space-between \| space-around \| space-evenly>` | No | `-` | - |
|
|
363
|
+
| `left` | `ResponsiveProp<Left<string \| number>>` | No | `-` | - |
|
|
364
|
+
| `lineHeight` | `ResponsiveProp<LineHeight \| inherit>` | No | `-` | - |
|
|
365
|
+
| `margin` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
|
|
366
|
+
| `marginBottom` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
|
|
367
|
+
| `marginEnd` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
|
|
368
|
+
| `marginStart` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
|
|
369
|
+
| `marginTop` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
|
|
370
|
+
| `marginX` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
|
|
371
|
+
| `marginY` | `ResponsiveProp<0 \| -5 \| -10 \| -0.25 \| -0.5 \| -0.75 \| -1 \| -1.5 \| -2 \| -3 \| -4 \| -6 \| -7 \| -8 \| -9>` | No | `-` | - |
|
|
372
|
+
| `maxHeight` | `ResponsiveProp<MaxHeight<string \| number>>` | No | `-` | - |
|
|
373
|
+
| `maxWidth` | `ResponsiveProp<MaxWidth<string \| number>>` | No | `-` | - |
|
|
374
|
+
| `media` | `ReactElement` | No | `-` | - |
|
|
375
|
+
| `minHeight` | `ResponsiveProp<MinHeight<string \| number>>` | No | `-` | - |
|
|
376
|
+
| `minWidth` | `ResponsiveProp<MinWidth<string \| number>>` | No | `-` | - |
|
|
377
|
+
| `multiline` | `boolean` | No | `-` | Allow the description to span multiple lines. This *will* break fixed height requirements, so should not be used in a FlatList. |
|
|
378
|
+
| `onClick` | `MouseEventHandler<Element>` | No | `-` | Click handler. |
|
|
379
|
+
| `onKeyDown` | `KeyboardEventHandler<Element>` | No | `-` | Key down handler for keyboard interaction. |
|
|
380
|
+
| `onKeyUp` | `KeyboardEventHandler<Element>` | No | `-` | Key up handler for keyboard interaction. |
|
|
381
|
+
| `opacity` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset` | No | `-` | - |
|
|
382
|
+
| `outerSpacing` | `CellSpacing` | No | `-` | The spacing to use on the parent wrapper of Cell |
|
|
383
|
+
| `overflow` | `ResponsiveProp<hidden \| auto \| visible \| clip \| scroll>` | No | `-` | - |
|
|
384
|
+
| `padding` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
|
|
385
|
+
| `paddingBottom` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
|
|
386
|
+
| `paddingEnd` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
|
|
387
|
+
| `paddingStart` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
|
|
388
|
+
| `paddingTop` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
|
|
389
|
+
| `paddingX` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
|
|
390
|
+
| `paddingY` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
|
|
391
|
+
| `pin` | `top \| bottom \| left \| right \| all` | No | `-` | Direction in which to absolutely pin the box. |
|
|
392
|
+
| `position` | `ResponsiveProp<fixed \| static \| relative \| absolute \| sticky>` | No | `-` | - |
|
|
393
|
+
| `priority` | `start \| end \| middle \| (start \| end \| middle)[]` | No | `-` | Which piece of content has the highest priority in regards to text truncation, growing, and shrinking. |
|
|
394
|
+
| `ref` | `any` | No | `-` | - |
|
|
395
|
+
| `right` | `ResponsiveProp<Right<string \| number>>` | No | `-` | - |
|
|
396
|
+
| `rowGap` | `0 \| 5 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1 \| 1.5 \| 2 \| 3 \| 4 \| 6 \| 7 \| 8 \| 9` | No | `-` | - |
|
|
397
|
+
| `selected` | `boolean` | No | `-` | Is the cell selected? Will apply a background and selected accessory. |
|
|
398
|
+
| `shouldOverflow` | `boolean` | No | `-` | - |
|
|
399
|
+
| `shouldTruncate` | `boolean` | No | `true` | Controls whether the main content should truncate with an ellipsis. Defaults to true (truncates) when not provided. |
|
|
400
|
+
| `spacingVariant` | `normal \| compact \| 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 |
|
|
401
|
+
| `style` | `CSSProperties` | No | `-` | - |
|
|
402
|
+
| `styles` | `{ root?: CSSProperties; media?: CSSProperties \| undefined; intermediary?: CSSProperties \| undefined; end?: CSSProperties \| undefined; accessory?: CSSProperties \| undefined; contentContainer?: CSSProperties \| undefined; pressable?: CSSProperties \| undefined; mainContent?: CSSProperties \| undefined; helperText?: CSSProperties \| undefined; title?: CSSProperties \| undefined; description?: CSSProperties \| undefined; } \| undefined` | No | `-` | Styles for the components |
|
|
403
|
+
| `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. |
|
|
404
|
+
| `subdetailFont` | `ResponsiveProp<FontFamily \| inherit>` | No | `-` | Font to apply to the subdetail text. |
|
|
405
|
+
| `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 |
|
|
406
|
+
| `textAlign` | `ResponsiveProp<center \| start \| end \| justify>` | No | `-` | - |
|
|
407
|
+
| `textDecoration` | `ResponsiveProp<none \| underline \| overline \| line-through \| underline overline \| underline double>` | No | `-` | - |
|
|
408
|
+
| `textTransform` | `ResponsiveProp<capitalize \| lowercase \| none \| uppercase>` | No | `-` | - |
|
|
409
|
+
| `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. |
|
|
410
|
+
| `top` | `ResponsiveProp<Top<string \| number>>` | No | `-` | - |
|
|
411
|
+
| `transform` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| none` | No | `-` | - |
|
|
412
|
+
| `userSelect` | `ResponsiveProp<text \| none \| auto \| all>` | No | `-` | - |
|
|
413
|
+
| `variant` | `warning \| positive \| negative \| foregroundMuted` | No | `-` | Variant color to apply to the subdetail text. |
|
|
414
|
+
| `visibility` | `ResponsiveProp<hidden \| visible>` | No | `-` | - |
|
|
415
|
+
| `width` | `ResponsiveProp<Width<string \| number>>` | No | `-` | - |
|
|
416
|
+
| `zIndex` | `-moz-initial \| inherit \| initial \| revert \| revert-layer \| unset \| auto` | No | `-` | - |
|
|
417
|
+
|
|
418
|
+
|
|
@@ -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-web/icons/LogoMark'
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Examples
|
|
12
|
+
|
|
13
|
+
### Basic usage
|
|
14
|
+
|
|
15
|
+
```tsx live
|
|
16
|
+
<VStack alignItems="center">
|
|
17
|
+
<Box width="100%">
|
|
18
|
+
<LogoMark size={32} />
|
|
19
|
+
</Box>
|
|
20
|
+
</VStack>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Different Sizes
|
|
24
|
+
|
|
25
|
+
```tsx live
|
|
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 live
|
|
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-web/icons/LogoWordmark'
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Examples
|
|
12
|
+
|
|
13
|
+
### Basic usage
|
|
14
|
+
|
|
15
|
+
```tsx live
|
|
16
|
+
<VStack alignItems="center">
|
|
17
|
+
<Box height="40px">
|
|
18
|
+
<LogoWordmark />
|
|
19
|
+
</Box>
|
|
20
|
+
</VStack>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Foreground Variations
|
|
24
|
+
|
|
25
|
+
```tsx live
|
|
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 live
|
|
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
|
+
|