@coinbase/cds-mcp-server 9.0.0-rc.2 → 9.0.0
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 +62 -2
- package/mcp-docs/mobile/components/DateInput.txt +3 -2
- package/mcp-docs/mobile/components/DatePicker.txt +3 -2
- package/mcp-docs/mobile/components/HeroSquare.txt +33 -4
- package/mcp-docs/mobile/components/IconButton.txt +10 -0
- package/mcp-docs/mobile/components/PageFooter.txt +23 -0
- package/mcp-docs/mobile/components/PeriodSelector.txt +2 -1
- package/mcp-docs/mobile/components/Pictogram.txt +28 -3
- package/mcp-docs/mobile/components/SearchInput.txt +3 -2
- package/mcp-docs/mobile/components/SegmentedTabs.txt +29 -1
- package/mcp-docs/mobile/components/SelectOption.txt +77 -0
- package/mcp-docs/mobile/components/SpotIcon.txt +28 -3
- package/mcp-docs/mobile/components/SpotRectangle.txt +28 -3
- package/mcp-docs/mobile/components/SpotSquare.txt +28 -3
- package/mcp-docs/mobile/components/TabbedChipsAlpha.txt +2 -1
- package/mcp-docs/mobile/components/Tabs.txt +38 -22
- package/mcp-docs/mobile/components/TextInput.txt +3 -2
- package/mcp-docs/mobile/guides/_v9MobileInstallCommands.txt +9 -0
- package/mcp-docs/mobile/guides/_v9MobilePeerDependencies.txt +15 -0
- package/mcp-docs/mobile/guides/_v9WebInstallCommands.txt +9 -0
- package/mcp-docs/mobile/guides/_v9WebPeerDependencies.txt +5 -0
- package/mcp-docs/mobile/guides/v9-migration-guide.txt +348 -0
- package/mcp-docs/mobile/routes.txt +5 -0
- package/mcp-docs/web/components/CellMedia.txt +1 -1
- package/mcp-docs/web/components/DateInput.txt +3 -0
- package/mcp-docs/web/components/DatePicker.txt +3 -0
- package/mcp-docs/web/components/FullscreenAlert.txt +1 -1
- package/mcp-docs/web/components/HeroSquare.txt +46 -5
- package/mcp-docs/web/components/IconButton.txt +9 -112
- package/mcp-docs/web/components/PageFooter.txt +23 -0
- package/mcp-docs/web/components/PeriodSelector.txt +2 -1
- package/mcp-docs/web/components/Pictogram.txt +39 -4
- package/mcp-docs/web/components/SearchInput.txt +3 -0
- package/mcp-docs/web/components/SegmentedTabs.txt +29 -1
- package/mcp-docs/web/components/SpotIcon.txt +39 -4
- package/mcp-docs/web/components/SpotRectangle.txt +39 -4
- package/mcp-docs/web/components/SpotSquare.txt +39 -4
- package/mcp-docs/web/components/TabbedChipsAlpha.txt +2 -1
- package/mcp-docs/web/components/Tabs.txt +38 -22
- package/mcp-docs/web/components/TextInput.txt +3 -0
- package/mcp-docs/web/guides/_v9MobileInstallCommands.txt +9 -0
- package/mcp-docs/web/guides/_v9MobilePeerDependencies.txt +15 -0
- package/mcp-docs/web/guides/_v9WebInstallCommands.txt +9 -0
- package/mcp-docs/web/guides/_v9WebPeerDependencies.txt +5 -0
- package/mcp-docs/web/guides/v9-migration-guide.txt +348 -0
- package/mcp-docs/web/routes.txt +5 -0
- package/package.json +1 -1
|
@@ -12,13 +12,13 @@ import { SpotIcon } from '@coinbase/cds-mobile/illustratations/SpotIcon'
|
|
|
12
12
|
|
|
13
13
|
## Examples
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
#### Basic example
|
|
16
16
|
|
|
17
17
|
```jsx
|
|
18
18
|
<SpotIcon name="shield" dimension="32x32" />
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
#### `scaleMultiplier` prop
|
|
22
22
|
|
|
23
23
|
If no predefined dimensions fit your use case, you can use the `scaleMultiplier` prop to scale the illustration.
|
|
24
24
|
|
|
@@ -28,7 +28,7 @@ Use `scaleMultiplier` sparingly and with caution. We have predefined dimensions
|
|
|
28
28
|
<SpotIcon name="shield" scaleMultiplier={1.5} />
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
#### Scaling with dimension
|
|
32
32
|
|
|
33
33
|
If `dimension` and `scaleMultiplier` are both provided the component will scale based on the provided dimension.
|
|
34
34
|
|
|
@@ -36,11 +36,36 @@ If `dimension` and `scaleMultiplier` are both provided the component will scale
|
|
|
36
36
|
<SpotIcon name="shield" dimension="24x24" scaleMultiplier={1.5} />
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
### Theming
|
|
40
|
+
|
|
41
|
+
Use the `applyTheme` prop to enable dynamic theming. When set, the illustration is colored by the active `ThemeProvider`'s illustration palette instead of using the hardcoded light or dark variant.
|
|
42
|
+
|
|
43
|
+
```jsx
|
|
44
|
+
const customTheme = {
|
|
45
|
+
...defaultTheme,
|
|
46
|
+
lightIllustrationColor: {
|
|
47
|
+
...defaultTheme.lightIllustrationColor,
|
|
48
|
+
primary: 'rgb(220, 38, 38)',
|
|
49
|
+
accent1: 'rgb(124, 58, 237)',
|
|
50
|
+
},
|
|
51
|
+
darkIllustrationColor: {
|
|
52
|
+
...defaultTheme.darkIllustrationColor,
|
|
53
|
+
primary: 'rgb(248, 113, 113)',
|
|
54
|
+
accent1: 'rgb(167, 139, 250)',
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
<ThemeProvider activeColorScheme="light" theme={customTheme}>
|
|
59
|
+
<SpotIcon applyTheme name="shield" dimension="32x32" />
|
|
60
|
+
</ThemeProvider>;
|
|
61
|
+
```
|
|
62
|
+
|
|
39
63
|
## Props
|
|
40
64
|
|
|
41
65
|
| Prop | Type | Required | Default | Description |
|
|
42
66
|
| --- | --- | --- | --- | --- |
|
|
43
67
|
| `name` | `done \| warning \| error \| advancedTradeProduct \| arrowsUpDown \| assetHubProduct \| assetManagementProduct \| bank \| base \| borrowProduct \| cloudProduct \| coinbase \| commerceProduct \| custodyProduct \| delegateProduct \| derivativesProduct \| email \| exchangeProduct \| helpCenterProduct \| institutionalProduct \| learningRewardsProduct \| nftProduct \| nodeProduct \| participateProduct \| privateClientProduct \| rewardsProduct \| rosettaProduct \| shield \| venturesProduct \| wallet \| walletLogo \| 2fa \| authenticator \| bonusFivePercent \| bonusTwoPercent \| businessProduct \| chat \| coinbaseOneEarn \| coinbaseOneProductInvestWeekly \| creditCard \| delegate \| fast \| idVerification \| instoDelegate \| outage \| pieChart \| recurringPurchases \| send \| layeredNetworks \| noFees \| assetEmptyStateAa \| assetEmptyStateAb \| assetEmptyStateAc \| assetEmptyStateAd \| assetEmptyStateAe \| assetEmptyStateBa \| assetEmptyStateBb \| assetEmptyStateBc \| assetEmptyStateBd \| assetEmptyStateBe \| assetEmptyStateCa \| assetEmptyStateCb \| assetEmptyStateCc \| assetEmptyStateCd \| assetEmptyStateCe \| assetEmptyStateDa \| assetEmptyStateDb \| assetEmptyStateDc \| assetEmptyStateDd \| assetEmptyStateDe \| assetEmptyStateEa \| assetEmptyStateEb \| assetEmptyStateEc \| assetEmptyStateEd \| assetEmptyStateEe \| cb1Cash \| coinbaseOneChart \| coinbaseOneProduct \| contract \| dataMarketplace \| instantAccess \| instoAdvancedTradeProduct \| instoAssetHubProduct \| instoAuthenticator \| instoBorrowProduct \| instoBusinessProduct \| instoChat \| instoCloudProduct \| instoCoinbaseOneEarn \| instoCommerceProduct \| instoCustodyProduct \| instoDataMarketplace \| instoDerivativesProduct \| instoFast \| instoHelpCenterProduct \| instoIdVerification \| instoLayeredNetworks \| instoLearningRewardsProduct \| instoMultiCoin \| instoPaySDKProduct \| instoPieChart \| instoPrimeProduct \| instoPrivateClientProduct \| instoProductCoinbaseCard \| instoProductCompliance \| instoProductPro \| instoProductWallet \| instoRecurringPurchases \| instoRewardsProduct \| instoShield \| instoSignInProduct \| instoStakingProduct \| instoWalletAsAServiceProduct \| internationalExchangeProduct \| multiCoin \| paySDKProduct \| primeProduct \| productCoinbaseCard \| productCompliance \| productEarn \| productPro \| productWallet \| signInProduct \| stakingProduct \| walletAsAServiceProduct` | Yes | `-` | Name of illustration as defined in Figma |
|
|
68
|
+
| `applyTheme` | `boolean` | No | `-` | Apply the theme to the illustration |
|
|
44
69
|
| `dimension` | `32x32 \| 24x24` | No | `-` | HeroSquare Default: 240x240 SpotSquare Default: 96x96 Pictogram Default: 48x48 SpotRectangle Default: 240x120 |
|
|
45
70
|
| `fallback` | `ReactElement<unknown, string \| JSXElementConstructor<any>> \| null` | No | `null` | Fallback element to render if unable to find an illustration with the matching name |
|
|
46
71
|
| `scaleMultiplier` | `number` | No | `-` | Multiply the width & height while maintaining aspect ratio |
|
|
@@ -12,13 +12,13 @@ import { SpotRectangle } from '@coinbase/cds-mobile/illustratations/SpotRectangl
|
|
|
12
12
|
|
|
13
13
|
## Examples
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
#### Basic example
|
|
16
16
|
|
|
17
17
|
```jsx
|
|
18
18
|
<SpotRectangle name="creditCardExcitement" />
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
#### `scaleMultiplier` prop
|
|
22
22
|
|
|
23
23
|
If no predefined dimensions fit your use case, you can use the `scaleMultiplier` prop to scale the illustration.
|
|
24
24
|
|
|
@@ -28,7 +28,7 @@ Use `scaleMultiplier` sparingly and with caution. We have predefined dimensions
|
|
|
28
28
|
<SpotRectangle name="creditCardExcitement" scaleMultiplier={1.5} />
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
#### Scaling with dimension
|
|
32
32
|
|
|
33
33
|
If `dimension` and `scaleMultiplier` are both provided the component will scale based on the provided dimension.
|
|
34
34
|
|
|
@@ -36,11 +36,36 @@ If `dimension` and `scaleMultiplier` are both provided the component will scale
|
|
|
36
36
|
<SpotRectangle name="creditCardExcitement" dimension="240x120" scaleMultiplier={1.5} />
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
### Theming
|
|
40
|
+
|
|
41
|
+
Use the `applyTheme` prop to enable dynamic theming. When set, the illustration is colored by the active `ThemeProvider`'s illustration palette instead of using the hardcoded light or dark variant.
|
|
42
|
+
|
|
43
|
+
```jsx
|
|
44
|
+
const customTheme = {
|
|
45
|
+
...defaultTheme,
|
|
46
|
+
lightIllustrationColor: {
|
|
47
|
+
...defaultTheme.lightIllustrationColor,
|
|
48
|
+
primary: 'rgb(220, 38, 38)',
|
|
49
|
+
accent1: 'rgb(124, 58, 237)',
|
|
50
|
+
},
|
|
51
|
+
darkIllustrationColor: {
|
|
52
|
+
...defaultTheme.darkIllustrationColor,
|
|
53
|
+
primary: 'rgb(248, 113, 113)',
|
|
54
|
+
accent1: 'rgb(167, 139, 250)',
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
<ThemeProvider activeColorScheme="light" theme={customTheme}>
|
|
59
|
+
<SpotRectangle applyTheme name="creditCardExcitement" />
|
|
60
|
+
</ThemeProvider>;
|
|
61
|
+
```
|
|
62
|
+
|
|
39
63
|
## Props
|
|
40
64
|
|
|
41
65
|
| Prop | Type | Required | Default | Description |
|
|
42
66
|
| --- | --- | --- | --- | --- |
|
|
43
67
|
| `name` | `margin \| blockchain \| bridging \| calendar \| coinbaseOneLogo \| concierge \| diamond \| earn \| login \| nft \| securityShield \| staking \| tokenSales \| cb1BankTransfers \| ethStakingRewards \| futures \| globalTransactions \| governance \| instoKey \| lightningNetworkSend \| startToday \| usdcLoan \| wrapEth \| phoneNumber \| accessToAdvancedCharts \| addPhoneNumber \| advancedTrading \| advancedTradingChartsIndicatorsCandles \| advancedTradingUi \| appTrackingTransparency \| automaticPayments \| backedByUsDollar \| basedInUsa \| bigBtc \| borrowWallet \| browserExtension \| cardBoosted \| cbbtc \| coinbaseCardLock \| coinbaseCardPocket \| coinbaseFees \| coinbaseOneDiscountedAmount \| coinbaseOnePhoneLightning \| coinbaseOneRewards \| coinbaseOneSavingFunds \| collectingNfts \| commerceAccounting \| commerceInvoices \| completeAQuiz \| congratulationsOnEarningCrypto \| contactsListWarning \| crossBorderPayments \| cryptoAndMore \| cryptoApps \| cryptoAssets \| cryptoEconomy \| cryptoForBeginners \| cryptoPortfolio \| cryptoWallet \| decentralization \| decentralizedWebWeb3 \| defiDecentralizedBorrowingLending \| defiDecentralizedTradingExchange \| defiEarn \| defiHow \| defiRisk \| didDecentralizedIdentity \| digitalCollectibles \| documentCertified \| documentSuccess \| earnInterest \| earnToLearn \| encryptedEverything \| estimatedAmount \| exploreDecentralizedApps \| fileYourCryptoTaxes \| fileYourCryptoTaxesCheck \| focusLimitOrders \| freeBtc \| gainsAndLosses \| gasFeesNetworkFees \| getStartedInMinutes \| graphChartTrading \| hardwareWallets \| holdCrypto \| holdingCrypto \| instoPrimeStaking \| instoStaking \| insuranceProtection \| invest \| layeredNetworks \| leverage \| linkingYourWalletToYourCoinbaseAccount \| liquidationBufferGreen \| liquidationBufferRed \| liquidationBufferYellow \| marginWarning \| mining \| moneyDecentralized \| multicoinSupport \| multiPlatformMobileAppBrowserExtension \| multipleAccountsWalletsForOneUser \| noFees \| notificationsAlt \| onTheList \| openEmail \| optInPushNotificationsEmail \| p2pPayments \| portfolioPerformance \| poweredByEthereum \| primeDeFi \| primeEarn \| primeStaking \| quickAndSimple \| readyToTrade \| referralsBitcoin \| referralsCoinbaseOne \| referralsGenericCoin \| retailUSDCRewards \| secureAndTrusted \| secureGlobalTransactions \| secureStorage \| selfCustody \| semiCustodial \| sendCryptoFaster \| shareOnSocialMedia \| sidechain \| stableValue \| stayInControlSelfHostedWalletsStorage \| stressTestedColdStorage \| switchAdvancedToSimpleTrading \| taxesDetails \| tradeImmediately \| trendingHotAssets \| verifyEmail \| verifyInfo \| walletNotifications \| walletSecurity \| watchVideos \| addBank \| advancedTradeCharts \| apiKey \| appUpdate \| borrowLoan \| browserHistory \| cardWaitlist \| cbEth \| clawMachinePig \| coinGateway \| connectWalletTutorial \| creditCardExcitement \| creditCardExcitementCoinbaseOne \| cryptoEconomyCoin \| cryptoEconomyEurc \| cryptoEconomyUSDC \| currency \| derivativesLoop \| downloadCoinbaseWalletArrow \| downloadingStatement \| emptyNfts \| emptyTrading \| eth2SellSend \| eth2SendSell \| eth2SendSellTwo \| ethAddress \| ethStakeOrWrap \| ethStakeOrWrapTwo \| ethStakingMovement \| ethTrading \| ethTradingTwo \| ethWrappedStakingRewards \| faceId \| fiatInterest \| giftBoxRewards \| highFees \| insto \| instoAboutOnchain \| instoApiKey \| instoConsensusWaitingForApprovals \| instoCryptoAndMore \| instoCurrency \| instoDesignateSigner \| instoEmptyTrading \| instoEthStakingMovement \| instoGetStartedInMinutes \| instoMargin \| instoOnchainSetupInProgress \| instoQRCode \| instoRefreshKey \| instoSemiCustodial \| instoSetupComplete \| instoSetupOnchain \| leadingProtocol \| leadingProtocolMorpho \| ledgerFailed \| ledgerSignatureRejected \| lendGraph \| linkCoinbaseWallet \| loanValue \| noTransactions \| portfolioOverview \| portfolioOverviewRelaunch \| primeOrderConfirmation \| primePriceLadder \| primeTradePreferences \| protectedNotes \| ratDashboard \| ratFoundWallet \| ratMigration \| ratMigrationerror \| referralsBonus \| scanCode \| secureAccount \| sendingCrypto \| stakingUpgrade \| trade \| transferCoins \| transferEth \| transferFunds \| trustedContacts \| unauthorizedTransfers \| uob \| update \| uploadDocument \| usdcLoanEth \| walletReconnect \| walletReconnectSuccess \| wrapEthTwo \| yieldHolding` | Yes | `-` | Name of illustration as defined in Figma |
|
|
68
|
+
| `applyTheme` | `boolean` | No | `-` | Apply the theme to the illustration |
|
|
44
69
|
| `dimension` | `240x120` | No | `-` | HeroSquare Default: 240x240 SpotSquare Default: 96x96 Pictogram Default: 48x48 SpotRectangle Default: 240x120 |
|
|
45
70
|
| `fallback` | `ReactElement<unknown, string \| JSXElementConstructor<any>> \| null` | No | `null` | Fallback element to render if unable to find an illustration with the matching name |
|
|
46
71
|
| `scaleMultiplier` | `number` | No | `-` | Multiply the width & height while maintaining aspect ratio |
|
|
@@ -12,13 +12,13 @@ import { SpotSquare } from '@coinbase/cds-mobile/illustratations/SpotSquare'
|
|
|
12
12
|
|
|
13
13
|
## Examples
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
#### Basic example
|
|
16
16
|
|
|
17
17
|
```jsx
|
|
18
18
|
<SpotSquare name="yieldCenterUSDC" />
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
#### `scaleMultiplier` prop
|
|
22
22
|
|
|
23
23
|
If no predefined dimensions fit your use case, you can use the `scaleMultiplier` prop to scale the illustration.
|
|
24
24
|
|
|
@@ -28,7 +28,7 @@ Use `scaleMultiplier` sparingly and with caution. We have predefined dimensions
|
|
|
28
28
|
<SpotSquare name="yieldCenterUSDC" scaleMultiplier={1.5} />
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
#### Scaling with dimension
|
|
32
32
|
|
|
33
33
|
If `dimension` and `scaleMultiplier` are both provided the component will scale based on the provided dimension.
|
|
34
34
|
|
|
@@ -36,11 +36,36 @@ If `dimension` and `scaleMultiplier` are both provided the component will scale
|
|
|
36
36
|
<SpotSquare name="yieldCenterUSDC" dimension="120x120" scaleMultiplier={1.5} />
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
### Theming
|
|
40
|
+
|
|
41
|
+
Use the `applyTheme` prop to enable dynamic theming. When set, the illustration is colored by the active `ThemeProvider`'s illustration palette instead of using the hardcoded light or dark variant.
|
|
42
|
+
|
|
43
|
+
```jsx
|
|
44
|
+
const customTheme = {
|
|
45
|
+
...defaultTheme,
|
|
46
|
+
lightIllustrationColor: {
|
|
47
|
+
...defaultTheme.lightIllustrationColor,
|
|
48
|
+
primary: 'rgb(220, 38, 38)',
|
|
49
|
+
accent1: 'rgb(124, 58, 237)',
|
|
50
|
+
},
|
|
51
|
+
darkIllustrationColor: {
|
|
52
|
+
...defaultTheme.darkIllustrationColor,
|
|
53
|
+
primary: 'rgb(248, 113, 113)',
|
|
54
|
+
accent1: 'rgb(167, 139, 250)',
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
<ThemeProvider activeColorScheme="light" theme={customTheme}>
|
|
59
|
+
<SpotSquare applyTheme name="yieldCenterUSDC" />
|
|
60
|
+
</ThemeProvider>;
|
|
61
|
+
```
|
|
62
|
+
|
|
39
63
|
## Props
|
|
40
64
|
|
|
41
65
|
| Prop | Type | Required | Default | Description |
|
|
42
66
|
| --- | --- | --- | --- | --- |
|
|
43
67
|
| `name` | `baseQuickBuy \| blockchain \| bridging \| coinbaseOneLogo \| earn \| nft \| options \| pieChartWithArrow \| priceAlerts \| refresh \| securityShield \| staking \| addCard \| baseCreatorCoin \| bonusFivePercent \| bonusTwoPercent \| cardBlocked \| cardDeclined \| coinbaseOneEarn \| coinbaseUnlockOffers \| ethStaking \| ethStakingRewards \| futures \| globalTransactions \| idError \| inrTrade \| instoAuthenticatorProgress \| lightningNetworkSend \| outage \| pieChartWithArrowBlue \| startToday \| wrapEth \| phoneNumber \| accessToAdvancedCharts \| addPhoneNumber \| advancedTrading \| advancedTradingChartsIndicatorsCandles \| advancedTradingUi \| appTrackingTransparency \| automaticPayments \| backedByUsDollar \| basedInUsa \| bigBtc \| borrowWallet \| browserExtension \| coinbaseCardLock \| coinbaseCardPocket \| coinbaseFees \| coinbaseOneDiscountedAmount \| coinbaseOneRewards \| coinbaseOneSavingFunds \| coinbaseOneTokenRewards \| coinbaseOneZeroPortal \| coinFifty \| collectingNfts \| commerceAccounting \| commerceInvoices \| completeAQuiz \| congratulationsOnEarningCrypto \| contactsListWarning \| crossBorderPayments \| cryptoAndMore \| cryptoApps \| cryptoAssets \| cryptoEconomy \| cryptoForBeginners \| cryptoPortfolio \| cryptoWallet \| decentralization \| decentralizedWebWeb3 \| defiDecentralizedBorrowingLending \| defiDecentralizedTradingExchange \| defiEarn \| defiHow \| defiRisk \| didDecentralizedIdentity \| digitalCollectibles \| documentCertified \| documentSuccess \| earnInterest \| earnToLearn \| encryptedEverything \| estimatedAmount \| focusLimitOrders \| freeBtc \| gainsAndLosses \| gasFeesNetworkFees \| getStartedInMinutes \| hardwareWallets \| holdCrypto \| holdingCrypto \| instoEthStakingRewards \| instoPrimeStaking \| instoStaking \| insuranceProtection \| invest \| layeredNetworks \| layerThree \| linkingYourWalletToYourCoinbaseAccount \| mining \| moneyDecentralized \| multicoinSupport \| multiPlatformMobileAppBrowserExtension \| multipleAccountsWalletsForOneUser \| noFees \| notificationsAlt \| onTheList \| openEmail \| optInPushNotificationsEmail \| p2pPayments \| performance \| portfolioPerformance \| poweredByEthereum \| predictionsMarkets \| primeDeFi \| primeEarn \| primeStaking \| quickAndSimple \| readyToTrade \| retailUSDCRewards \| secureAndTrusted \| secureGlobalTransactions \| secureStorage \| selfCustody \| semiCustodial \| sendCryptoFaster \| shareOnSocialMedia \| sidechain \| stableValue \| stayInControlSelfHostedWalletsStorage \| stressTestedColdStorage \| switchAdvancedToSimpleTrading \| taxesDetails \| tradeImmediately \| trendingHotAssets \| verifyEmail \| verifyInfo \| walletNotifications \| walletSecurity \| watchVideos \| eth2SendSell \| ethStakeOrWrap \| ethStakeOrWrapTwo \| linkCoinbaseWallet \| addEth \| addMultipleCrypto \| addPasswordProtection \| announcementAdvancedTrading \| assetForward \| assetRefresh \| baseCautionMedium \| baseChartMedium \| baseCheckMedium \| baseCheckTrophyMedium \| baseCoinCryptoMedium \| baseCoinNetworkMedium \| baseConnectMedium \| baseDecentralizationMedium \| baseDiamondMedium \| baseEmptyMedium \| baseErrorButterflyMedium \| baseErrorMedium \| baseIdMedium \| baseLoadingMedium \| baseLocationMedium \| baseMintNftMedium \| baseNetworkMedium \| baseNftMedium \| basePaycoinMedium \| basePeopleMedium \| basePiechartMedium \| baseRewardChest \| baseRewardClam \| baseRewardPlate \| baseRewardPodium \| baseRewardSun \| baseRewardTrophyEmblem \| baseRewardTrophyStars \| baseSecurityMedium \| baseSendMedium \| baseSwitch \| baseTargetMedium \| baseUsdcMedium \| boostedCard \| borrowLimitsAddressed \| bullishCase \| cardAnnouncement \| cardAutoReload \| cardShipped \| cbEthWrappingUnavailable \| checkVerifacation \| coinbaseCardSparkle \| coinbaseLock \| coinbaseOneBoostedCard \| coinbaseOneBoostedCardCB1 \| coinbaseOneConcierge \| coinbaseOneStakeOrWrap \| coinbaseOneStaking \| coinbaseOneStarToken \| coinbaseOneUSDC \| coinbaseOneZero \| confirmAddress \| confirmEmail \| confirmIDCard \| confirmSocialSecurity \| cryptoEconomyArrows \| dappWallet \| darkModeIntroduction \| defiEarnAnnouncement \| defiNfts \| directDepositExcitement \| earnInterestOnCryptocurrency \| fileYourCryptoTaxesCheckOther \| fileYourCryptoTaxesOther \| frameEmpty \| giftBoxCrypto \| gifting \| goldSilverFutures \| guideBullCase \| guideCryptoBeginner \| guideFiveThings \| guideNftDefi \| guideStartInvesting \| instantUnstaking \| instoDappWallet \| instoEthStaking \| instoPixDeposits \| instoSecurityKey \| instoSideChainSide \| instoUbiKey \| instoWaiting \| interestForYou \| miniGift \| moneyRewards \| nftTag \| noPortfolio \| nuxChecklist \| nuxEarnCrypto \| nuxEarnYield \| nuxPopularAssets \| nuxRecurringBuys \| offersEmpty \| phoneNotifications \| pixBankDeposits \| pixDeposits \| recommendInvestments \| referralsPeople \| refreshMobileApp \| rewardExpiring \| saveTheDate \| sparkleToken \| starToken \| swapEth \| switchReward \| taxDocuments \| transferringCrypto \| unsupportedAsset \| waitlistSignup \| walletApp \| walletQuestsChest \| walletQuestsTrophy \| yieldCenter \| yieldCenterUSDC` | Yes | `-` | Name of illustration as defined in Figma |
|
|
68
|
+
| `applyTheme` | `boolean` | No | `-` | Apply the theme to the illustration |
|
|
44
69
|
| `dimension` | `96x96` | No | `-` | HeroSquare Default: 240x240 SpotSquare Default: 96x96 Pictogram Default: 48x48 SpotRectangle Default: 240x120 |
|
|
45
70
|
| `fallback` | `ReactElement<unknown, string \| JSXElementConstructor<any>> \| null` | No | `null` | Fallback element to render if unable to find an illustration with the matching name |
|
|
46
71
|
| `scaleMultiplier` | `number` | No | `-` | Multiply the width & height while maintaining aspect ratio |
|
|
@@ -194,6 +194,7 @@ render(<Example />);
|
|
|
194
194
|
| `tabs` | `TabbedChipProps<TabId>[]` | Yes | `-` | - |
|
|
195
195
|
| `TabComponent` | `FC<TabbedChipProps<TabId>>` | No | `-` | - |
|
|
196
196
|
| `TabsActiveIndicatorComponent` | `TabsActiveIndicatorComponent` | No | `-` | - |
|
|
197
|
+
| `activeColor` | `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 | `-` | Color when a tab is active. |
|
|
197
198
|
| `alignContent` | `flex-start \| flex-end \| center \| stretch \| space-between \| space-around \| space-evenly` | No | `-` | - |
|
|
198
199
|
| `alignItems` | `flex-start \| flex-end \| center \| stretch \| baseline` | No | `-` | - |
|
|
199
200
|
| `alignSelf` | `auto \| FlexAlignType` | No | `-` | - |
|
|
@@ -220,7 +221,7 @@ render(<Example />);
|
|
|
220
221
|
| `borderedTop` | `boolean` | No | `-` | Add a border to the top side of the box. |
|
|
221
222
|
| `borderedVertical` | `boolean` | No | `-` | Add a border to the top and bottom sides of the box. |
|
|
222
223
|
| `bottom` | `null \| number \| AnimatedNode \| auto \| ${number}%` | No | `-` | - |
|
|
223
|
-
| `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 | `-` |
|
|
224
|
+
| `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 | `-` | Color when a tab is inactive. |
|
|
224
225
|
| `columnGap` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1.5` | No | `-` | - |
|
|
225
226
|
| `compact` | `boolean` | No | `false` | Turn on to use a compact Chip component for each tab. |
|
|
226
227
|
| `dangerouslySetBackground` | `string` | No | `-` | - |
|
|
@@ -12,11 +12,11 @@ import { Tabs, DefaultTabsActiveIndicator } from '@coinbase/cds-mobile/tabs'
|
|
|
12
12
|
|
|
13
13
|
## Examples
|
|
14
14
|
|
|
15
|
-
Tabs manages which tab is active and positions the animated indicator. For
|
|
15
|
+
Tabs manages which tab is active and positions the animated indicator. For **pill / segmented** controls, use [SegmentedTabs](/components/navigation/SegmentedTabs/) instead.
|
|
16
16
|
|
|
17
17
|
### Basics
|
|
18
18
|
|
|
19
|
-
Out of the box, **`Tabs`** uses **`DefaultTab`** for each row (headline text, optional [DotCount](/components/other/DotCount/) via `count` / `max` on each tab) and **`DefaultTabsActiveIndicator`** for the animated underline. **`activeBackground`**
|
|
19
|
+
Out of the box, **`Tabs`** uses **`DefaultTab`** for each row (headline text, optional [DotCount](/components/other/DotCount/) via `count` / `max` on each tab) and **`DefaultTabsActiveIndicator`** for the animated underline. Set **`color`** / **`activeColor`** on **`Tabs`** for inactive / active label tokens, and **`activeBackground`** for the underline (forwarded to the indicator as its **`background`** token).
|
|
20
20
|
|
|
21
21
|
```jsx
|
|
22
22
|
function Example() {
|
|
@@ -29,23 +29,15 @@ function Example() {
|
|
|
29
29
|
return (
|
|
30
30
|
<Tabs
|
|
31
31
|
accessibilityLabel="Example tabs"
|
|
32
|
-
activeBackground="bgPrimary"
|
|
33
32
|
activeTab={activeTab}
|
|
34
|
-
background="bg"
|
|
35
33
|
gap={4}
|
|
36
34
|
onChange={setActiveTab}
|
|
37
|
-
// default value; can be omitted.
|
|
38
|
-
TabComponent={DefaultTab}
|
|
39
35
|
tabs={tabs}
|
|
40
|
-
// default value; can be omitted.
|
|
41
|
-
TabsActiveIndicatorComponent={DefaultTabsActiveIndicator}
|
|
42
36
|
/>
|
|
43
37
|
);
|
|
44
38
|
}
|
|
45
39
|
```
|
|
46
40
|
|
|
47
|
-
You can omit `TabComponent` explicitly: **`Tabs`** defaults it to **`DefaultTab`**.
|
|
48
|
-
|
|
49
41
|
#### No initial selection
|
|
50
42
|
|
|
51
43
|
```jsx
|
|
@@ -59,9 +51,7 @@ function Example() {
|
|
|
59
51
|
return (
|
|
60
52
|
<Tabs
|
|
61
53
|
accessibilityLabel="Example tabs"
|
|
62
|
-
activeBackground="bgPrimary"
|
|
63
54
|
activeTab={activeTab}
|
|
64
|
-
background="bg"
|
|
65
55
|
gap={4}
|
|
66
56
|
onChange={setActiveTab}
|
|
67
57
|
tabs={tabs}
|
|
@@ -82,9 +72,7 @@ function Example() {
|
|
|
82
72
|
return (
|
|
83
73
|
<Tabs
|
|
84
74
|
accessibilityLabel="Mail folders"
|
|
85
|
-
activeBackground="bgPrimary"
|
|
86
75
|
activeTab={activeTab}
|
|
87
|
-
background="bg"
|
|
88
76
|
gap={4}
|
|
89
77
|
onChange={setActiveTab}
|
|
90
78
|
tabs={tabs}
|
|
@@ -106,9 +94,40 @@ function Example() {
|
|
|
106
94
|
return (
|
|
107
95
|
<Tabs
|
|
108
96
|
accessibilityLabel="Example tabs"
|
|
109
|
-
activeBackground="bgPrimary"
|
|
110
97
|
activeTab={activeTab}
|
|
111
|
-
|
|
98
|
+
gap={4}
|
|
99
|
+
onChange={setActiveTab}
|
|
100
|
+
tabs={tabs}
|
|
101
|
+
/>
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Accessibility
|
|
107
|
+
|
|
108
|
+
Set **`accessibilityLabel`** on **`Tabs`**. **`DefaultTab`** wires `accessibilityRole="tab"` and selection state; keep tab panels in sync in your screen content.
|
|
109
|
+
|
|
110
|
+
### Styling
|
|
111
|
+
|
|
112
|
+
#### Colors
|
|
113
|
+
|
|
114
|
+
You can set **`color`** and **`activeColor`** for label tokens, and **`activeBackground`** for the underline.
|
|
115
|
+
|
|
116
|
+
```jsx
|
|
117
|
+
function Example() {
|
|
118
|
+
const tabs = [
|
|
119
|
+
{ id: 'tab1', label: 'Tab 1' },
|
|
120
|
+
{ id: 'tab2', label: 'Tab 2' },
|
|
121
|
+
{ id: 'tab3', label: 'Tab 3' },
|
|
122
|
+
];
|
|
123
|
+
const [activeTab, setActiveTab] = useState(tabs[0]);
|
|
124
|
+
return (
|
|
125
|
+
<Tabs
|
|
126
|
+
accessibilityLabel="Example tabs"
|
|
127
|
+
activeBackground="fg"
|
|
128
|
+
activeColor="fg"
|
|
129
|
+
activeTab={activeTab}
|
|
130
|
+
color="fgMuted"
|
|
112
131
|
gap={4}
|
|
113
132
|
onChange={setActiveTab}
|
|
114
133
|
tabs={tabs}
|
|
@@ -147,7 +166,7 @@ function Example() {
|
|
|
147
166
|
}, []);
|
|
148
167
|
|
|
149
168
|
const ActiveIndicator = useCallback(
|
|
150
|
-
(props) => <TabsActiveIndicator {...props} background="
|
|
169
|
+
(props) => <TabsActiveIndicator {...props} background="bgPositive" bottom={0} height={2} />,
|
|
151
170
|
[],
|
|
152
171
|
);
|
|
153
172
|
|
|
@@ -214,10 +233,6 @@ function Example() {
|
|
|
214
233
|
}
|
|
215
234
|
```
|
|
216
235
|
|
|
217
|
-
### Accessibility
|
|
218
|
-
|
|
219
|
-
Set **`accessibilityLabel`** on **`Tabs`**. **`DefaultTab`** wires `accessibilityRole="tab"` and selection state; keep tab panels in sync in your screen content.
|
|
220
|
-
|
|
221
236
|
## Props
|
|
222
237
|
|
|
223
238
|
| Prop | Type | Required | Default | Description |
|
|
@@ -228,6 +243,7 @@ Set **`accessibilityLabel`** on **`Tabs`**. **`DefaultTab`** wires `accessibilit
|
|
|
228
243
|
| `TabComponent` | `TabComponent<TabId, TTab>` | No | `-` | The default Component to render each tab. |
|
|
229
244
|
| `TabsActiveIndicatorComponent` | `TabsActiveIndicatorComponent` | No | `-` | The default Component to render the tabs active indicator. |
|
|
230
245
|
| `activeBackground` | `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 | `-` | Background color passed to the TabsActiveIndicatorComponent. |
|
|
246
|
+
| `activeColor` | `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 | `-` | Color when a tab is active. |
|
|
231
247
|
| `alignContent` | `flex-start \| flex-end \| center \| stretch \| space-between \| space-around \| space-evenly` | No | `-` | - |
|
|
232
248
|
| `alignItems` | `flex-start \| flex-end \| center \| stretch \| baseline` | No | `-` | - |
|
|
233
249
|
| `alignSelf` | `auto \| FlexAlignType` | No | `-` | - |
|
|
@@ -253,7 +269,7 @@ Set **`accessibilityLabel`** on **`Tabs`**. **`DefaultTab`** wires `accessibilit
|
|
|
253
269
|
| `borderedTop` | `boolean` | No | `-` | Add a border to the top side of the box. |
|
|
254
270
|
| `borderedVertical` | `boolean` | No | `-` | Add a border to the top and bottom sides of the box. |
|
|
255
271
|
| `bottom` | `null \| number \| AnimatedNode \| auto \| ${number}%` | No | `-` | - |
|
|
256
|
-
| `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 | `-` |
|
|
272
|
+
| `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 | `-` | Color when a tab is inactive. |
|
|
257
273
|
| `columnGap` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10 \| 0.25 \| 0.5 \| 0.75 \| 1.5` | No | `-` | - |
|
|
258
274
|
| `dangerouslySetBackground` | `string` | No | `-` | - |
|
|
259
275
|
| `disabled` | `boolean` | No | `-` | Disable interactions on all the tabs. |
|
|
@@ -716,6 +716,8 @@ function TextInputKeyboardExample() {
|
|
|
716
716
|
| `keyboardAppearance` | `light \| default \| dark` | No | `-` | Determines the color of the keyboard. |
|
|
717
717
|
| `keyboardType` | `default \| url \| number-pad \| decimal-pad \| numeric \| email-address \| phone-pad \| visible-password \| ascii-capable \| numbers-and-punctuation \| name-phone-pad \| twitter \| web-search` | No | `-` | enum(default, numeric, email-address, ascii-capable, numbers-and-punctuation, url, number-pad, phone-pad, name-phone-pad, decimal-pad, twitter, web-search, visible-password) Determines which keyboard to open, e.g.numeric. The following values work across platforms: - default - numeric - email-address - phone-pad The following values work on iOS: - ascii-capable - numbers-and-punctuation - url - number-pad - name-phone-pad - decimal-pad - twitter - web-search The following values work on Android: - visible-password |
|
|
718
718
|
| `label` | `string` | No | `-` | Short messageArea indicating purpose of input |
|
|
719
|
+
| `labelColor` | `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 | `-` | Color token for the field label. |
|
|
720
|
+
| `labelFont` | `display1 \| display2 \| display3 \| title1 \| title2 \| title3 \| title4 \| headline \| body \| label1 \| label2 \| caption \| legal` | No | `-` | Typography token for the field label. |
|
|
719
721
|
| `labelNode` | `null \| string \| number \| bigint \| false \| true \| ReactElement<unknown, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal \| Promise<AwaitedReactNode>` | No | `-` | React node to render label. Takes precedence over label. |
|
|
720
722
|
| `labelVariant` | `inside \| outside` | No | `'outside'` | The variant of the label. Only used when compact is not true. |
|
|
721
723
|
| `lineBreakModeIOS` | `middle \| wordWrapping \| char \| clip \| head \| tail` | No | `-` | Set line break mode on iOS. |
|
|
@@ -753,7 +755,7 @@ function TextInputKeyboardExample() {
|
|
|
753
755
|
| `passwordRules` | `string \| null` | No | `-` | Provide rules for your password. For example, say you want to require a password with at least eight characters consisting of a mix of uppercase and lowercase letters, at least one number, and at most two consecutive characters. required: upper; required: lower; required: digit; max-consecutive: 2; minlength: 8; |
|
|
754
756
|
| `placeholder` | `string` | No | `-` | Placeholder text displayed inside of the input. Will be replaced if there is a value. The string that will be rendered before text input has been entered |
|
|
755
757
|
| `placeholderTextColor` | `string \| OpaqueColorValue` | No | `-` | The text color of the placeholder string |
|
|
756
|
-
| `readOnly` | `boolean` | No | `-` | If true, text is not editable. The default value is false. |
|
|
758
|
+
| `readOnly` | `boolean` | No | `-` | When true, the value cannot be edited but the control may remain focusable (unlike disabled). If true, text is not editable. The default value is false. |
|
|
757
759
|
| `ref` | `null \| RefObject<View \| null> \| (instance: View \| null) => void \| (() => VoidOrUndefinedOnly)` | No | `-` | Allows getting a ref to the component instance. Once the component unmounts, React will set ref.current to null (or call the ref with null if you passed a callback ref). |
|
|
758
760
|
| `rejectResponderTermination` | `boolean \| null` | No | `-` | If true, allows TextInput to pass touch events to the parent component. This allows components to be swipeable from the TextInput on iOS, as is the case on Android by default. If false, TextInput always asks to handle the input (except when disabled). |
|
|
759
761
|
| `returnKeyLabel` | `string` | No | `-` | Sets the return key to the label. Use it instead of returnKeyType. |
|
|
@@ -762,7 +764,6 @@ function TextInputKeyboardExample() {
|
|
|
762
764
|
| `secureTextEntry` | `boolean` | No | `-` | If true, the text input obscures the text entered so that sensitive text like passwords stay secure. The default value is false. |
|
|
763
765
|
| `selectTextOnFocus` | `boolean` | No | `-` | If true, all text will automatically be selected on focus |
|
|
764
766
|
| `selection` | `{ start: number; end?: number; } \| undefined` | No | `-` | The start and end of the text inputs selection. Set start and end to the same value to position the cursor. |
|
|
765
|
-
| `selectionColor` | `string \| OpaqueColorValue` | No | `-` | The highlight (and cursor on ios) color of the text input |
|
|
766
767
|
| `selectionHandleColor` | `ColorValue \| null` | No | `-` | When provided it will set the color of the selection handles when highlighting text. Unlike the behavior of selectionColor the handle color will be set independently from the color of the text selection box. |
|
|
767
768
|
| `selectionState` | `DocumentSelectionState` | No | `-` | See DocumentSelectionState.js, some state that is responsible for maintaining selection information for a document |
|
|
768
769
|
| `showSoftInputOnFocus` | `boolean` | No | `-` | When false, it will prevent the soft keyboard from showing when the field is focused. The default value is true |
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
**📖 Live documentation:** https://cds.coinbase.com/guides/_v9MobileInstallCommands/
|
|
2
|
+
|
|
3
|
+
```bash
|
|
4
|
+
# npm
|
|
5
|
+
npm install @coinbase/cds-common@9.0.0-rc.2 @coinbase/cds-mobile@9.0.0-rc.2
|
|
6
|
+
|
|
7
|
+
# yarn
|
|
8
|
+
yarn add @coinbase/cds-common@9.0.0-rc.2 @coinbase/cds-mobile@9.0.0-rc.2
|
|
9
|
+
```
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
**📖 Live documentation:** https://cds.coinbase.com/guides/_v9MobilePeerDependencies/
|
|
2
|
+
|
|
3
|
+
<br />
|
|
4
|
+
|
|
5
|
+
| Package | Previous range | Required range |
|
|
6
|
+
| -------------------------------- | -------------- | -------------- |
|
|
7
|
+
| `react` | `^18.3.1` | `~19.1.2` |
|
|
8
|
+
| `react-native` | `^0.74.5` | `~0.81.5` |
|
|
9
|
+
| `lottie-react-native` | `^6.7.0` | `7.3.1` |
|
|
10
|
+
| `react-native-gesture-handler` | `^2.16.2` | `2.28.0` |
|
|
11
|
+
| `react-native-reanimated` | `^3.14.0` | `4.1.1` |
|
|
12
|
+
| `react-native-safe-area-context` | `^4.10.5` | `5.6.0` |
|
|
13
|
+
| `react-native-svg` | `^14.1.0` | `15.12.1` |
|
|
14
|
+
| `@shopify/react-native-skia` | - | `2.2.12` |
|
|
15
|
+
| `react-native-worklets` | - | `0.5.2` |
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
**📖 Live documentation:** https://cds.coinbase.com/guides/_v9WebInstallCommands/
|
|
2
|
+
|
|
3
|
+
```bash
|
|
4
|
+
# npm
|
|
5
|
+
npm install @coinbase/cds-common@9.0.0-rc.2 @coinbase/cds-web@9.0.0-rc.2
|
|
6
|
+
|
|
7
|
+
# yarn
|
|
8
|
+
yarn add @coinbase/cds-common@9.0.0-rc.2 @coinbase/cds-web@9.0.0-rc.2
|
|
9
|
+
```
|