@coinbase/cds-mobile 8.69.0 → 8.70.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 +12 -0
- package/dts/cells/Cell.d.ts +2 -1
- package/dts/cells/Cell.d.ts.map +1 -1
- package/dts/tabs/DefaultTab.d.ts +4 -2
- package/dts/tabs/DefaultTab.d.ts.map +1 -1
- package/dts/tabs/DefaultTabsActiveIndicator.d.ts.map +1 -1
- package/dts/tabs/SegmentedTab.d.ts +4 -4
- package/dts/tabs/Tabs.d.ts +10 -1
- package/dts/tabs/Tabs.d.ts.map +1 -1
- package/esm/system/__stories__/componentConfigStickerSheet/StickerSheet.js +4 -0
- package/esm/system/__stories__/componentConfigStickerSheet/customComponentConfig.js +13 -1
- package/esm/system/__stories__/componentConfigStickerSheet/examples/ListCell.js +2 -0
- package/esm/system/__stories__/componentConfigStickerSheet/examples/Tabs.js +24 -0
- package/esm/tabs/DefaultTab.js +5 -3
- package/esm/tabs/DefaultTabsActiveIndicator.js +1 -2
- package/esm/tabs/Tabs.js +18 -12
- package/esm/tabs/__stories__/SegmentedTabs.stories.js +8 -1
- package/esm/tabs/__stories__/Tabs.stories.js +0 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,18 @@ All notable changes to this project will be documented in this file.
|
|
|
8
8
|
|
|
9
9
|
<!-- template-start -->
|
|
10
10
|
|
|
11
|
+
## 8.70.0 (5/8/2026 PST)
|
|
12
|
+
|
|
13
|
+
#### 🚀 Updates
|
|
14
|
+
|
|
15
|
+
- Feat: support active color on Tabs. [[#669](https://github.com/coinbase/cds/pull/669)]
|
|
16
|
+
|
|
17
|
+
## 8.69.1 (5/6/2026 PST)
|
|
18
|
+
|
|
19
|
+
#### 🐞 Fixes
|
|
20
|
+
|
|
21
|
+
- Fix: support BoxBaseProps in mobile ListCell. [[#667](https://github.com/coinbase/cds/pull/666)]
|
|
22
|
+
|
|
11
23
|
## 8.69.0 ((5/5/2026, 02:27 PM PST))
|
|
12
24
|
|
|
13
25
|
This is an artificial version bump with no new change.
|
package/dts/cells/Cell.d.ts
CHANGED
|
@@ -22,7 +22,8 @@ export type CellSpacing = Pick<
|
|
|
22
22
|
| 'marginBottom'
|
|
23
23
|
| 'marginStart'
|
|
24
24
|
>;
|
|
25
|
-
export type CellBaseProps =
|
|
25
|
+
export type CellBaseProps = BoxBaseProps &
|
|
26
|
+
SharedProps &
|
|
26
27
|
LinkableProps &
|
|
27
28
|
Pick<PressableProps, 'blendStyles'> & {
|
|
28
29
|
accessory?: React.ReactElement<CellAccessoryProps>;
|
package/dts/cells/Cell.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cell.d.ts","sourceRoot":"","sources":["../../src/cells/Cell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAM5E,OAAO,EAAO,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGtE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,YAAY,EACV,SAAS,GACT,UAAU,GACV,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,eAAe,GACf,cAAc,GACd,QAAQ,GACR,SAAS,GACT,SAAS,GACT,WAAW,GACX,WAAW,GACX,cAAc,GACd,aAAa,CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"Cell.d.ts","sourceRoot":"","sources":["../../src/cells/Cell.tsx"],"names":[],"mappings":"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"}
|
package/dts/tabs/DefaultTab.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export type DefaultTabLabelProps = Partial<Pick<DotCountBaseProps, 'count' | 'ma
|
|
|
15
15
|
Pick<SharedAccessibilityProps, 'accessibilityLabel'>;
|
|
16
16
|
export type DefaultTabProps<TabId extends string = string> = Omit<
|
|
17
17
|
PressableProps,
|
|
18
|
-
'children' | 'onPress' | 'style'
|
|
18
|
+
'children' | 'onPress' | 'style' | 'color'
|
|
19
19
|
> &
|
|
20
20
|
TabComponentProps<TabId, TabValue<TabId> & DefaultTabLabelProps> & {
|
|
21
21
|
/** Callback that is fired when the tab is pressed, after the active tab updates. */
|
|
@@ -29,7 +29,7 @@ type DefaultTabComponent = <TabId extends string = string>(
|
|
|
29
29
|
) => React.ReactElement;
|
|
30
30
|
declare const DefaultTabComponent: React.MemoExoticComponent<
|
|
31
31
|
React.ForwardRefExoticComponent<
|
|
32
|
-
Omit<PressableProps, 'children' | 'style' | 'onPress'> &
|
|
32
|
+
Omit<PressableProps, 'children' | 'color' | 'style' | 'onPress'> &
|
|
33
33
|
Omit<
|
|
34
34
|
TabValue<string> &
|
|
35
35
|
Partial<Pick<DotCountBaseProps, 'max' | 'count'>> &
|
|
@@ -37,6 +37,8 @@ declare const DefaultTabComponent: React.MemoExoticComponent<
|
|
|
37
37
|
'id' | 'Component'
|
|
38
38
|
> & {
|
|
39
39
|
id: string;
|
|
40
|
+
color?: import('@coinbase/cds-common').ThemeVars.Color;
|
|
41
|
+
activeColor?: import('@coinbase/cds-common').ThemeVars.Color;
|
|
40
42
|
style?: StyleProp<ViewStyle>;
|
|
41
43
|
} & {
|
|
42
44
|
/** Callback that is fired when the tab is pressed, after the active tab updates. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultTab.d.ts","sourceRoot":"","sources":["../../src/tabs/DefaultTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAGlE,OAAO,EAAY,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAKpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEhD,qEAAqE;AACrE,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,GAClF,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,CAAC;AAEvD,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAC/D,cAAc,EACd,UAAU,GAAG,SAAS,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"DefaultTab.d.ts","sourceRoot":"","sources":["../../src/tabs/DefaultTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAGlE,OAAO,EAAY,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAKpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEhD,qEAAqE;AACrE,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,GAClF,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,CAAC;AAEvD,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAC/D,cAAc,EACd,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAC3C,GACC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAC,GAAG;IACjE,oFAAoF;IACpF,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC5D,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEJ,KAAK,mBAAmB,GAAG,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EACvD,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;CAAE,KAC/D,KAAK,CAAC,YAAY,CAAC;AAExB,QAAA,MAAM,mBAAmB;;;;;;IATrB,oFAAoF;mCACvD,qBAAqB,KAAK,IAAI;YACnD,SAAS,CAAC,SAAS,CAAC;+BA4E/B,CAAC;AAIF,eAAO,MAAM,UAAU,EAA0B,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultTabsActiveIndicator.d.ts","sourceRoot":"","sources":["../../src/tabs/DefaultTabsActiveIndicator.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,wBAAwB,EAAoB,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultTabsActiveIndicator.d.ts","sourceRoot":"","sources":["../../src/tabs/DefaultTabsActiveIndicator.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,wBAAwB,EAAoB,MAAM,QAAQ,CAAC;AAOzE,eAAO,MAAM,0BAA0B,+FAOlC,wBAAwB,oDAmC5B,CAAC"}
|
|
@@ -13,13 +13,13 @@ export type SegmentedTabBaseProps<TabId extends string = string> = TabValue<TabI
|
|
|
13
13
|
Pick<TextBaseProps, 'font' | 'fontFamily' | 'fontSize' | 'fontWeight' | 'lineHeight'> &
|
|
14
14
|
Omit<PressableBaseProps, 'children' | 'disabled' | 'onPress' | 'style'> & {
|
|
15
15
|
/**
|
|
16
|
-
* Text color when
|
|
17
|
-
* @default
|
|
16
|
+
* Text color when active.
|
|
17
|
+
* @default fgInverse
|
|
18
18
|
*/
|
|
19
19
|
activeColor?: ThemeVars.Color;
|
|
20
20
|
/**
|
|
21
|
-
* Text color when
|
|
22
|
-
* @default
|
|
21
|
+
* Text color when inactive.
|
|
22
|
+
* @default fg
|
|
23
23
|
*/
|
|
24
24
|
color?: ThemeVars.Color;
|
|
25
25
|
};
|
package/dts/tabs/Tabs.d.ts
CHANGED
|
@@ -18,6 +18,14 @@ export type TabComponentProps<
|
|
|
18
18
|
TTab extends TabValue<TabId> = TabValue<TabId>,
|
|
19
19
|
> = Omit<TTab, 'Component' | 'id'> & {
|
|
20
20
|
id: TabId;
|
|
21
|
+
/**
|
|
22
|
+
* Color when a tab is inactive.
|
|
23
|
+
*/
|
|
24
|
+
color?: ThemeVars.Color;
|
|
25
|
+
/**
|
|
26
|
+
* Color when a tab is active.
|
|
27
|
+
*/
|
|
28
|
+
activeColor?: ThemeVars.Color;
|
|
21
29
|
style?: StyleProp<ViewStyle>;
|
|
22
30
|
};
|
|
23
31
|
export type TabComponent<
|
|
@@ -29,7 +37,8 @@ export type TabsBaseProps<
|
|
|
29
37
|
TabId extends string = string,
|
|
30
38
|
TTab extends TabValue<TabId> = TabValue<TabId>,
|
|
31
39
|
> = Omit<BoxBaseProps, 'onChange'> &
|
|
32
|
-
Omit<TabsOptions<TabId, TTab>, 'tabs'> &
|
|
40
|
+
Omit<TabsOptions<TabId, TTab>, 'tabs'> &
|
|
41
|
+
Pick<TabComponentProps<TabId, TTab>, 'color' | 'activeColor'> & {
|
|
33
42
|
/** The array of tabs data. Each tab may optionally define a custom Component to render. */
|
|
34
43
|
tabs: (TTab & {
|
|
35
44
|
Component?: TabComponent<TabId, TTab>;
|
package/dts/tabs/Tabs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../src/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+E,MAAM,OAAO,CAAC;AACpG,OAAO,EAAE,KAAK,SAAS,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAOpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,QAAQ,EAEd,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAe,KAAK,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAGzE,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAsBrE,eAAO,MAAM,gBAAgB;;;;;CAKQ,CAAC;AAEtC,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,IAAI,CAAC;CACrB,GAAG,QAAQ,CAAC;AAEb,MAAM,MAAM,iBAAiB,CAC3B,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,IAAI,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAC5C,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC,GAAG;IACnC,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,YAAY,CACtB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,IAAI,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAC5C,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAE7C,MAAM,MAAM,4BAA4B,GAAG,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC;AAE9E,MAAM,MAAM,aAAa,CACvB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,IAAI,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAC5C,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAChC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../src/tabs/Tabs.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ import { SearchExample } from './examples/Search';
|
|
|
16
16
|
import { SegmentedTabsExample } from './examples/SegmentedTabs';
|
|
17
17
|
import { SelectExample } from './examples/Select';
|
|
18
18
|
import { SelectChipExample } from './examples/SelectChip';
|
|
19
|
+
import { TabsExample } from './examples/Tabs';
|
|
19
20
|
import { TagExample } from './examples/Tag';
|
|
20
21
|
import { TextInputExample } from './examples/TextInput';
|
|
21
22
|
import { Container } from './Container';
|
|
@@ -38,6 +39,9 @@ export const StickerSheet = /*#__PURE__*/memo(() => {
|
|
|
38
39
|
}), /*#__PURE__*/_jsx(Container, {
|
|
39
40
|
title: "Segmented Tabs",
|
|
40
41
|
children: /*#__PURE__*/_jsx(SegmentedTabsExample, {})
|
|
42
|
+
}), /*#__PURE__*/_jsx(Container, {
|
|
43
|
+
title: "Tabs",
|
|
44
|
+
children: /*#__PURE__*/_jsx(TabsExample, {})
|
|
41
45
|
}), /*#__PURE__*/_jsx(Container, {
|
|
42
46
|
title: "Select Input (SelectOption)",
|
|
43
47
|
children: /*#__PURE__*/_jsx(SelectExample, {})
|
|
@@ -112,5 +112,17 @@ export const customComponentConfig = {
|
|
|
112
112
|
font: props.compact ? 'label2' : 'body',
|
|
113
113
|
labelColor: 'fgMuted',
|
|
114
114
|
labelFont: props.compact ? props.align === 'end' ? 'label1' : 'label2' : 'body'
|
|
115
|
-
})
|
|
115
|
+
}),
|
|
116
|
+
ListCell: props => {
|
|
117
|
+
var _props$spacingVariant;
|
|
118
|
+
const spacingVariant = (_props$spacingVariant = props.spacingVariant) != null ? _props$spacingVariant : props.compact ? 'compact' : 'normal';
|
|
119
|
+
return _extends({}, spacingVariant === 'normal' ? {
|
|
120
|
+
minHeight: 36
|
|
121
|
+
} : {});
|
|
122
|
+
},
|
|
123
|
+
Tabs: {
|
|
124
|
+
activeColor: 'fg',
|
|
125
|
+
color: 'fgMuted',
|
|
126
|
+
activeBackground: 'fg'
|
|
127
|
+
}
|
|
116
128
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React, { memo, useState } from 'react';
|
|
2
|
+
import { Tabs } from '../../../../tabs/Tabs';
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
const tabs = [{
|
|
5
|
+
id: 'orderBook',
|
|
6
|
+
label: 'Order book'
|
|
7
|
+
}, {
|
|
8
|
+
id: 'tradeHistory',
|
|
9
|
+
label: 'Trade history'
|
|
10
|
+
}, {
|
|
11
|
+
id: 'orders',
|
|
12
|
+
label: 'Orders'
|
|
13
|
+
}];
|
|
14
|
+
export const TabsExample = /*#__PURE__*/memo(() => {
|
|
15
|
+
const [activeTab, setActiveTab] = useState(tabs[0]);
|
|
16
|
+
return /*#__PURE__*/_jsx(Tabs, {
|
|
17
|
+
accessibilityLabel: "Market views",
|
|
18
|
+
activeTab: activeTab,
|
|
19
|
+
background: "bg",
|
|
20
|
+
gap: 4,
|
|
21
|
+
onChange: setActiveTab,
|
|
22
|
+
tabs: tabs
|
|
23
|
+
});
|
|
24
|
+
});
|
package/esm/tabs/DefaultTab.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["id", "label", "disabled", "onPress", "count", "max", "accessibilityLabel", "style", "testID"];
|
|
1
|
+
const _excluded = ["id", "label", "disabled", "onPress", "count", "max", "accessibilityLabel", "style", "testID", "color", "activeColor"];
|
|
2
2
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
3
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
4
4
|
import React, { forwardRef, memo, useCallback, useMemo } from 'react';
|
|
@@ -22,7 +22,9 @@ const DefaultTabComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref
|
|
|
22
22
|
max,
|
|
23
23
|
accessibilityLabel,
|
|
24
24
|
style,
|
|
25
|
-
testID
|
|
25
|
+
testID,
|
|
26
|
+
color = 'fg',
|
|
27
|
+
activeColor = 'fgPrimary'
|
|
26
28
|
} = _ref,
|
|
27
29
|
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
28
30
|
const theme = useTheme();
|
|
@@ -60,7 +62,7 @@ const DefaultTabComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref
|
|
|
60
62
|
alignItems: "center",
|
|
61
63
|
gap: 0.5,
|
|
62
64
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
63
|
-
color: isActive ?
|
|
65
|
+
color: isActive ? activeColor : color,
|
|
64
66
|
font: "headline",
|
|
65
67
|
style: labelPaddingStyle,
|
|
66
68
|
children: label
|
|
@@ -7,8 +7,7 @@ import { Box } from '../layout';
|
|
|
7
7
|
import { tabsSpringConfig } from './Tabs';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* Default underline-style indicator for mobile `Tabs`.
|
|
11
|
-
* `TabsActiveIndicatorComponent={DefaultTabsActiveIndicator}` with `TabComponent={DefaultTab}`.
|
|
10
|
+
* Default underline-style indicator for mobile `Tabs`.
|
|
12
11
|
*/
|
|
13
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
13
|
const AnimatedBox = Animated.createAnimatedComponent(Box);
|
package/esm/tabs/Tabs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const _excluded = ["id", "registerRef"],
|
|
2
|
-
_excluded2 = ["tabs", "TabComponent", "TabsActiveIndicatorComponent", "activeBackground", "activeTab", "disabled", "onChange", "styles", "style", "role", "position", "alignSelf", "opacity", "onActiveTabElementChange", "borderRadius", "borderTopLeftRadius", "borderTopRightRadius", "borderBottomLeftRadius", "borderBottomRightRadius", "testID"],
|
|
2
|
+
_excluded2 = ["tabs", "TabComponent", "TabsActiveIndicatorComponent", "activeBackground", "color", "activeColor", "activeTab", "disabled", "onChange", "styles", "style", "role", "position", "alignSelf", "opacity", "onActiveTabElementChange", "borderRadius", "borderTopLeftRadius", "borderTopRightRadius", "borderBottomLeftRadius", "borderBottomRightRadius", "testID"],
|
|
3
3
|
_excluded3 = ["id", "Component"],
|
|
4
4
|
_excluded4 = ["activeTabRect", "position", "style", "testID"];
|
|
5
5
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
@@ -42,6 +42,8 @@ const TabsComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_props, ref) =>
|
|
|
42
42
|
TabComponent = DefaultTab,
|
|
43
43
|
TabsActiveIndicatorComponent = DefaultTabsActiveIndicator,
|
|
44
44
|
activeBackground,
|
|
45
|
+
color,
|
|
46
|
+
activeColor,
|
|
45
47
|
activeTab,
|
|
46
48
|
disabled,
|
|
47
49
|
onChange,
|
|
@@ -100,6 +102,7 @@ const TabsComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_props, ref) =>
|
|
|
100
102
|
borderRadius: borderRadius,
|
|
101
103
|
borderTopLeftRadius: borderTopLeftRadius,
|
|
102
104
|
borderTopRightRadius: borderTopRightRadius,
|
|
105
|
+
color: color,
|
|
103
106
|
onLayout: updateActiveTabRect,
|
|
104
107
|
opacity: opacity != null ? opacity : disabled ? accessibleOpacityDisabled : 1,
|
|
105
108
|
position: position,
|
|
@@ -119,20 +122,23 @@ const TabsComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_props, ref) =>
|
|
|
119
122
|
borderTopRightRadius: borderTopRightRadius,
|
|
120
123
|
style: styles == null ? void 0 : styles.activeIndicator,
|
|
121
124
|
testID: testID ? testID + "-active-indicator" : undefined
|
|
122
|
-
}), tabs.map(
|
|
123
|
-
|
|
125
|
+
}), tabs.map(tabProps => {
|
|
126
|
+
const {
|
|
124
127
|
id,
|
|
125
128
|
Component: CustomTabComponent
|
|
126
|
-
} =
|
|
127
|
-
|
|
129
|
+
} = tabProps,
|
|
130
|
+
tabRest = _objectWithoutPropertiesLoose(tabProps, _excluded3);
|
|
128
131
|
const RenderedTab = CustomTabComponent != null ? CustomTabComponent : TabComponent;
|
|
132
|
+
const renderedTabProps = _extends({}, tabRest, {
|
|
133
|
+
activeColor,
|
|
134
|
+
color,
|
|
135
|
+
id,
|
|
136
|
+
style: styles == null ? void 0 : styles.tab
|
|
137
|
+
});
|
|
129
138
|
return /*#__PURE__*/_jsx(TabContainer, {
|
|
130
139
|
id: id,
|
|
131
140
|
registerRef: registerRef,
|
|
132
|
-
children: /*#__PURE__*/_jsx(RenderedTab, _extends({
|
|
133
|
-
id: id,
|
|
134
|
-
style: styles == null ? void 0 : styles.tab
|
|
135
|
-
}, props))
|
|
141
|
+
children: /*#__PURE__*/_jsx(RenderedTab, _extends({}, renderedTabProps))
|
|
136
142
|
}, id);
|
|
137
143
|
})]
|
|
138
144
|
})
|
|
@@ -140,14 +146,14 @@ const TabsComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_props, ref) =>
|
|
|
140
146
|
}));
|
|
141
147
|
TabsComponent.displayName = 'Tabs';
|
|
142
148
|
export const Tabs = TabsComponent;
|
|
143
|
-
export const TabsActiveIndicator =
|
|
149
|
+
export const TabsActiveIndicator = _ref2 => {
|
|
144
150
|
let {
|
|
145
151
|
activeTabRect,
|
|
146
152
|
position = 'absolute',
|
|
147
153
|
style,
|
|
148
154
|
testID = 'tabs-active-indicator'
|
|
149
|
-
} =
|
|
150
|
-
props = _objectWithoutPropertiesLoose(
|
|
155
|
+
} = _ref2,
|
|
156
|
+
props = _objectWithoutPropertiesLoose(_ref2, _excluded4);
|
|
151
157
|
const previousActiveTabRect = useRef(activeTabRect);
|
|
152
158
|
const newActiveTabRect = {
|
|
153
159
|
x: activeTabRect.x,
|
|
@@ -292,7 +292,14 @@ const SegmentedTabsScreen = () => /*#__PURE__*/_jsxs(ExampleScreen, {
|
|
|
292
292
|
defaultActiveTab: basicSegments[0],
|
|
293
293
|
tabs: basicSegments,
|
|
294
294
|
title: "Border Radius"
|
|
295
|
-
}), /*#__PURE__*/_jsx(CustomStylesExample, {}), /*#__PURE__*/_jsx(IconLabelsExample, {})
|
|
295
|
+
}), /*#__PURE__*/_jsx(CustomStylesExample, {}), /*#__PURE__*/_jsx(IconLabelsExample, {}), /*#__PURE__*/_jsx(SegmentedTabsExample, {
|
|
296
|
+
activeBackground: "bgPositiveWash",
|
|
297
|
+
activeColor: "bgPositive",
|
|
298
|
+
color: "fgMuted",
|
|
299
|
+
defaultActiveTab: basicSegments[0],
|
|
300
|
+
tabs: basicSegments,
|
|
301
|
+
title: "Label Colors"
|
|
302
|
+
})]
|
|
296
303
|
});
|
|
297
304
|
const CustomStylesExample = () => {
|
|
298
305
|
const theme = useTheme();
|
|
@@ -97,7 +97,6 @@ const TabsWithPanelsExample = () => {
|
|
|
97
97
|
children: "Pair tab buttons with content regions that follow the active tab (see panel below)."
|
|
98
98
|
}), /*#__PURE__*/_jsx(Tabs, {
|
|
99
99
|
TabComponent: DefaultTab,
|
|
100
|
-
TabsActiveIndicatorComponent: DefaultTabsActiveIndicator,
|
|
101
100
|
accessibilityLabel: "Content sections",
|
|
102
101
|
activeBackground: "bg",
|
|
103
102
|
activeTab: activeTab,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbase/cds-mobile",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.70.0",
|
|
4
4
|
"description": "Coinbase Design System - Mobile",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -196,7 +196,7 @@
|
|
|
196
196
|
"react-native-svg": "^14.1.0"
|
|
197
197
|
},
|
|
198
198
|
"dependencies": {
|
|
199
|
-
"@coinbase/cds-common": "^8.
|
|
199
|
+
"@coinbase/cds-common": "^8.70.0",
|
|
200
200
|
"@coinbase/cds-icons": "^5.16.0",
|
|
201
201
|
"@coinbase/cds-illustrations": "^4.38.0",
|
|
202
202
|
"@coinbase/cds-lottie-files": "^3.3.4",
|