@coinbase/cds-mobile 8.30.0 → 8.31.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 +10 -0
- package/dts/controls/InputStack.d.ts +6 -0
- package/dts/controls/InputStack.d.ts.map +1 -1
- package/dts/controls/TextInput.d.ts +2 -0
- package/dts/controls/TextInput.d.ts.map +1 -1
- package/esm/controls/InputStack.js +5 -4
- package/esm/controls/TextInput.js +8 -6
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,16 @@ All notable changes to this project will be documented in this file.
|
|
|
8
8
|
|
|
9
9
|
<!-- template-start -->
|
|
10
10
|
|
|
11
|
+
## 8.31.0 (12/12/2025 PST)
|
|
12
|
+
|
|
13
|
+
#### 🚀 Updates
|
|
14
|
+
|
|
15
|
+
- Add inputBackground prop to InputStack and TextInput.
|
|
16
|
+
|
|
17
|
+
## 8.30.1 ((12/12/2025, 03:00 PM PST))
|
|
18
|
+
|
|
19
|
+
This is an artificial version bump with no new change.
|
|
20
|
+
|
|
11
21
|
## 8.30.0 (12/12/2025 PST)
|
|
12
22
|
|
|
13
23
|
#### 🚀 Updates
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Animated } from 'react-native';
|
|
3
3
|
import type { StyleProp, ViewStyle } from 'react-native';
|
|
4
|
+
import type { ThemeVars } from '@coinbase/cds-common/core/theme';
|
|
4
5
|
import type { InputVariant } from '@coinbase/cds-common/types/InputBaseProps';
|
|
5
6
|
import type { SharedProps } from '@coinbase/cds-common/types/SharedProps';
|
|
6
7
|
import type { BoxBaseProps, BoxProps } from '../layout';
|
|
@@ -60,6 +61,11 @@ export type InputStackBaseProps = SharedProps & {
|
|
|
60
61
|
* @default 'outside'
|
|
61
62
|
*/
|
|
62
63
|
labelVariant?: 'inside' | 'outside';
|
|
64
|
+
/**
|
|
65
|
+
* Background color of the input
|
|
66
|
+
* @default 'bg'
|
|
67
|
+
*/
|
|
68
|
+
inputBackground?: ThemeVars.Color;
|
|
63
69
|
};
|
|
64
70
|
export type InputStackProps = Omit<BoxProps, 'width' | 'height' | 'borderRadius'> &
|
|
65
71
|
InputStackBaseProps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputStack.d.ts","sourceRoot":"","sources":["../../src/controls/InputStack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAoB,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"InputStack.d.ts","sourceRoot":"","sources":["../../src/controls/InputStack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAoB,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAI1E,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAKxD,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG;IAC9C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;SAGK;IACL,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,uHAAuH;IACvH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,sEAAsE;IACtE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,mHAAmH;IACnH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,iCAAiC;IACjC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,iGAAiG;IACjG,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,qDAAqD;IACrD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IACxC;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oCAAoC;IACpC,WAAW,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IACtE;;;OAGG;IACH,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACpC;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAC,GAC/E,mBAAmB,CAAC;AAWtB,eAAO,MAAM,UAAU,6CA+HrB,CAAC"}
|
|
@@ -23,6 +23,7 @@ export type TextInputBaseProps = SharedProps &
|
|
|
23
23
|
| 'borderRadius'
|
|
24
24
|
| 'enableColorSurge'
|
|
25
25
|
| 'labelVariant'
|
|
26
|
+
| 'inputBackground'
|
|
26
27
|
> & {
|
|
27
28
|
/**
|
|
28
29
|
* Aligns text inside input and helperText
|
|
@@ -95,6 +96,7 @@ export declare const TextInput: React.MemoExoticComponent<
|
|
|
95
96
|
| 'variant'
|
|
96
97
|
| 'enableColorSurge'
|
|
97
98
|
| 'labelVariant'
|
|
99
|
+
| 'inputBackground'
|
|
98
100
|
> & {
|
|
99
101
|
/**
|
|
100
102
|
* Aligns text inside input and helperText
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextInput.d.ts","sourceRoot":"","sources":["../../src/controls/TextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAEV,SAAS,IAAI,WAAW,EAExB,cAAc,IAAI,gBAAgB,EAEnC,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAcjF,OAAO,EAAc,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGpE,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAC1C,IAAI,CACF,wBAAwB,EACxB,oBAAoB,GAAG,yBAAyB,GAAG,mBAAmB,CACvE,GACD,gBAAgB,GAChB,IAAI,CACF,mBAAmB,EACjB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,UAAU,GACV,cAAc,GACd,kBAAkB,GAClB,cAAc,
|
|
1
|
+
{"version":3,"file":"TextInput.d.ts","sourceRoot":"","sources":["../../src/controls/TextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAEV,SAAS,IAAI,WAAW,EAExB,cAAc,IAAI,gBAAgB,EAEnC,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAcjF,OAAO,EAAc,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGpE,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAC1C,IAAI,CACF,wBAAwB,EACxB,oBAAoB,GAAG,yBAAyB,GAAG,mBAAmB,CACvE,GACD,gBAAgB,GAChB,IAAI,CACF,mBAAmB,EACjB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,UAAU,GACV,cAAc,GACd,kBAAkB,GAClB,cAAc,GACd,iBAAiB,CACpB,GAAG;IACF;;;OAGG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uHAAuH;IACvH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,mHAAmH;IACnH,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF;;;OAGG;IACH,qCAAqC,CAAC,EAAE,MAAM,CAAC;IAC/C;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B,CAAC;AAEJ,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAC7C,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,GAAG,WAAW,CAAC,GAAG;IAC5E,KAAK,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAChD;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAWJ,eAAO,MAAM,SAAS;IAjElB;;;OAGG;YACK,cAAc,CAAC,OAAO,CAAC;IAC/B;;OAEG;aACM,MAAM;IACf,uHAAuH;YAC/G,KAAK,CAAC,SAAS;IACvB,mHAAmH;UAC7G,KAAK,CAAC,SAAS;IACrB;;OAEG;gBACS;QACV,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;IACD;;;OAGG;4CACqC,MAAM;IAC9C;;;OAGG;gBACS,KAAK,CAAC,SAAS;;YAKnB,gBAAgB,CAAC,OAAO,CAAC;eACtB,gBAAgB,CAAC,UAAU,CAAC;mBACxB,gBAAgB,CAAC,cAAc,CAAC;IAC/C;;;OAGG;gBACS,cAAc;IAC1B;;;OAGG;gBACS,gBAAgB,CAAC,WAAW,CAAC,GAAG,OAAO;IACnD;;;OAGG;eACQ,OAAO;sCAgPrB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["width", "prependNode", "endNode", "appendNode", "startNode", "disabled", "inputNode", "helperTextNode", "borderStyle", "variant", "labelNode", "testID", "borderRadius", "borderFocusedStyle", "focused", "enableColorSurge", "labelVariant"];
|
|
1
|
+
const _excluded = ["width", "prependNode", "endNode", "appendNode", "startNode", "disabled", "inputNode", "helperTextNode", "borderStyle", "variant", "labelNode", "testID", "borderRadius", "borderFocusedStyle", "focused", "enableColorSurge", "labelVariant", "inputBackground"];
|
|
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, { memo, useMemo } from 'react';
|
|
@@ -38,7 +38,8 @@ export const InputStack = /*#__PURE__*/memo(function InputStack(_ref) {
|
|
|
38
38
|
borderFocusedStyle,
|
|
39
39
|
focused,
|
|
40
40
|
enableColorSurge,
|
|
41
|
-
labelVariant = 'outside'
|
|
41
|
+
labelVariant = 'outside',
|
|
42
|
+
inputBackground = 'bg'
|
|
42
43
|
} = _ref,
|
|
43
44
|
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
44
45
|
const theme = useTheme();
|
|
@@ -55,11 +56,11 @@ export const InputStack = /*#__PURE__*/memo(function InputStack(_ref) {
|
|
|
55
56
|
borderColor: variant === 'secondary' ? 'transparent' : theme.color[variant === 'foregroundMuted' || !variant ? 'bgLineHeavy' : variantColorMap[variant]],
|
|
56
57
|
flexDirection: 'row',
|
|
57
58
|
flexGrow: 1,
|
|
58
|
-
backgroundColor: variant === 'secondary' ? theme.color.bgSecondary : theme.color
|
|
59
|
+
backgroundColor: variant === 'secondary' ? theme.color.bgSecondary : theme.color[inputBackground],
|
|
59
60
|
borderRadius: theme.borderRadius[borderRadius],
|
|
60
61
|
overflow: 'hidden'
|
|
61
62
|
}, inputBorderRadius);
|
|
62
|
-
}, [prependNode, appendNode, variant, theme.color, theme.borderRadius, borderRadius]);
|
|
63
|
+
}, [prependNode, appendNode, variant, theme.color, theme.borderRadius, borderRadius, inputBackground]);
|
|
63
64
|
const inputAreaStyles = useMemo(() => {
|
|
64
65
|
return [inputAreaStyle, borderStyle];
|
|
65
66
|
}, [borderStyle, inputAreaStyle]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["label", "helperText", "variant", "testID", "testIDMap", "start", "end", "width", "disabled", "align", "compact", "suffix", "accessibilityLabel", "borderRadius", "enableColorSurge", "helperTextErrorIconAccessibilityLabel", "bordered", "labelVariant", "labelNode"];
|
|
1
|
+
const _excluded = ["label", "helperText", "variant", "testID", "testIDMap", "start", "end", "width", "disabled", "align", "compact", "suffix", "accessibilityLabel", "borderRadius", "enableColorSurge", "helperTextErrorIconAccessibilityLabel", "bordered", "labelVariant", "labelNode", "inputBackground"];
|
|
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, { cloneElement, forwardRef, isValidElement, memo, useCallback, useMemo, useRef, useState } from 'react';
|
|
@@ -46,7 +46,8 @@ export const TextInput = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) =
|
|
|
46
46
|
helperTextErrorIconAccessibilityLabel = 'error',
|
|
47
47
|
bordered = true,
|
|
48
48
|
labelVariant = 'outside',
|
|
49
|
-
labelNode
|
|
49
|
+
labelNode,
|
|
50
|
+
inputBackground
|
|
50
51
|
} = _ref,
|
|
51
52
|
editableInputProps = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
52
53
|
const theme = useTheme();
|
|
@@ -102,7 +103,7 @@ export const TextInput = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) =
|
|
|
102
103
|
}
|
|
103
104
|
return start;
|
|
104
105
|
}, [start]);
|
|
105
|
-
const
|
|
106
|
+
const readOnlyInputBackground = useMemo(() => {
|
|
106
107
|
if (!disabled && editableInputAddonProps.readOnly) {
|
|
107
108
|
return 'bgSecondary';
|
|
108
109
|
}
|
|
@@ -116,7 +117,7 @@ export const TextInput = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) =
|
|
|
116
117
|
enableColorSurge: enableColorSurge,
|
|
117
118
|
endNode: (suffix !== '' || !!end) && /*#__PURE__*/_jsx(HStack, {
|
|
118
119
|
alignItems: "center",
|
|
119
|
-
background:
|
|
120
|
+
background: readOnlyInputBackground,
|
|
120
121
|
gap: 2,
|
|
121
122
|
justifyContent: "center",
|
|
122
123
|
testID: (_testIDMap$end = testIDMap == null ? void 0 : testIDMap.end) != null ? _testIDMap$end : '',
|
|
@@ -146,6 +147,7 @@ export const TextInput = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) =
|
|
|
146
147
|
testID: (_testIDMap$helperText = testIDMap == null ? void 0 : testIDMap.helperText) != null ? _testIDMap$helperText : '',
|
|
147
148
|
children: helperText
|
|
148
149
|
}) : helperText),
|
|
150
|
+
inputBackground: readOnlyInputBackground != null ? readOnlyInputBackground : inputBackground,
|
|
149
151
|
inputNode: /*#__PURE__*/_jsx(NativeInput, _extends({
|
|
150
152
|
ref: refs,
|
|
151
153
|
accessibilityHint: typeof helperText === 'string' ? helperText : undefined,
|
|
@@ -165,7 +167,7 @@ export const TextInput = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) =
|
|
|
165
167
|
paddingBottom: 0,
|
|
166
168
|
paddingStart: start ? 0.5 : 2,
|
|
167
169
|
paddingEnd: 2,
|
|
168
|
-
background:
|
|
170
|
+
background: readOnlyInputBackground
|
|
169
171
|
}, {
|
|
170
172
|
testID: (_testIDMap$label = testIDMap == null ? void 0 : testIDMap.label) != null ? _testIDMap$label : '',
|
|
171
173
|
children: label
|
|
@@ -174,7 +176,7 @@ export const TextInput = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) =
|
|
|
174
176
|
labelVariant: labelVariant,
|
|
175
177
|
startNode: (compact && !!label || !!start) && /*#__PURE__*/_jsx(Box, {
|
|
176
178
|
alignItems: "center",
|
|
177
|
-
background:
|
|
179
|
+
background: readOnlyInputBackground,
|
|
178
180
|
justifyContent: "center",
|
|
179
181
|
testID: testIDMap == null ? void 0 : testIDMap.start,
|
|
180
182
|
children: /*#__PURE__*/_jsx(Pressable, {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbase/cds-mobile",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.31.0",
|
|
4
4
|
"description": "Coinbase Design System - Mobile",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
"react-native-svg": "^14.1.0"
|
|
155
155
|
},
|
|
156
156
|
"dependencies": {
|
|
157
|
-
"@coinbase/cds-common": "^8.
|
|
157
|
+
"@coinbase/cds-common": "^8.31.0",
|
|
158
158
|
"@coinbase/cds-icons": "^5.8.0",
|
|
159
159
|
"@coinbase/cds-illustrations": "^4.29.0",
|
|
160
160
|
"@coinbase/cds-lottie-files": "^3.3.3",
|