@coinbase/cds-mobile 9.6.5 → 9.6.7
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
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
|
+
## 9.6.7 (7/20/2026 PST)
|
|
12
|
+
|
|
13
|
+
#### 🐞 Fixes
|
|
14
|
+
|
|
15
|
+
- Fix: TextInput inside labelVariant padding. [[#797](https://github.com/coinbase/cds/pull/797)]
|
|
16
|
+
|
|
17
|
+
## 9.6.6 (7/14/2026 PST)
|
|
18
|
+
|
|
19
|
+
#### 🐞 Fixes
|
|
20
|
+
|
|
21
|
+
- Fix: do not animate initial animated caret render. [[#792](https://github.com/coinbase/cds/pull/792)]
|
|
22
|
+
|
|
11
23
|
## 9.6.5 (7/13/2026 PST)
|
|
12
24
|
|
|
13
25
|
#### 🐞 Fixes
|
|
@@ -6,13 +6,12 @@ export type AnimatedCaretBaseProps = SharedProps & {
|
|
|
6
6
|
rotate: number;
|
|
7
7
|
};
|
|
8
8
|
export type AnimatedCaretProps = AnimatedCaretBaseProps & Partial<Omit<IconProps, 'name'>>;
|
|
9
|
-
export declare const useAnimatedCaretAnimation: () => {
|
|
9
|
+
export declare const useAnimatedCaretAnimation: (rotate: number) => {
|
|
10
10
|
animatedStyles: {
|
|
11
11
|
transform: {
|
|
12
12
|
rotate: Animated.AnimatedInterpolation<string | number>;
|
|
13
13
|
}[];
|
|
14
14
|
};
|
|
15
|
-
animate: (rotate: number) => void;
|
|
16
15
|
};
|
|
17
16
|
export declare const AnimatedCaret: React.NamedExoticComponent<AnimatedCaretProps>;
|
|
18
17
|
//# sourceMappingURL=AnimatedCaret.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimatedCaret.d.ts","sourceRoot":"","sources":["../../src/motion/AnimatedCaret.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AnimatedCaret.d.ts","sourceRoot":"","sources":["../../src/motion/AnimatedCaret.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAG1E,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAGrD,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG;IACjD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3F,eAAO,MAAM,yBAAyB,GAAI,QAAQ,MAAM;;;;;;CA2BvD,CAAC;AAEF,eAAO,MAAM,aAAa,gDAsBxB,CAAC"}
|
|
@@ -125,6 +125,7 @@ export const InputStack = /*#__PURE__*/memo(function InputStack(_props) {
|
|
|
125
125
|
children: startNode
|
|
126
126
|
}), !!labelNode && labelVariant === 'inside' ? /*#__PURE__*/_jsxs(VStack, {
|
|
127
127
|
flexGrow: 1,
|
|
128
|
+
paddingY: 1,
|
|
128
129
|
children: [labelNode, inputNode]
|
|
129
130
|
}) : inputNode, !!endNode && /*#__PURE__*/_jsx(_Fragment, {
|
|
130
131
|
children: endNode
|
|
@@ -91,7 +91,7 @@ export const TextInput = /*#__PURE__*/memo(_ref => {
|
|
|
91
91
|
const containerSpacing = useMemo(() => _extends({}, !!start && {
|
|
92
92
|
paddingStart: theme.space[0.5]
|
|
93
93
|
}, labelVariant === 'inside' && hasLabel && !compact && {
|
|
94
|
-
paddingBottom:
|
|
94
|
+
paddingBottom: 0,
|
|
95
95
|
paddingTop: 0
|
|
96
96
|
}), [start, theme.space, labelVariant, hasLabel, compact]);
|
|
97
97
|
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
const _excluded = ["rotate", "size", "color", "style"];
|
|
2
2
|
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; }
|
|
3
3
|
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); }
|
|
4
|
-
import React, { memo,
|
|
4
|
+
import React, { memo, useEffect, useMemo, useRef, useState } from 'react';
|
|
5
5
|
import { Animated } from 'react-native';
|
|
6
|
-
import { usePreviousValue } from '@coinbase/cds-common/hooks/usePreviousValue';
|
|
7
6
|
import { animateRotateConfig } from '@coinbase/cds-common/motion/animatedCaret';
|
|
8
7
|
import { convertMotionConfig } from '../animation/convertMotionConfig';
|
|
9
8
|
import { Icon } from '../icons/Icon';
|
|
10
9
|
import { HStack } from '../layout/HStack';
|
|
11
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
-
export const useAnimatedCaretAnimation =
|
|
13
|
-
const rotateValue =
|
|
14
|
-
const
|
|
11
|
+
export const useAnimatedCaretAnimation = rotate => {
|
|
12
|
+
const [rotateValue] = useState(() => new Animated.Value(rotate));
|
|
13
|
+
const isInitialRender = useRef(true);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
if (isInitialRender.current) {
|
|
16
|
+
isInitialRender.current = false;
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
15
19
|
Animated.timing(rotateValue, convertMotionConfig(_extends({}, animateRotateConfig, {
|
|
16
20
|
toValue: rotate
|
|
17
21
|
}))).start();
|
|
18
|
-
}, [rotateValue]);
|
|
22
|
+
}, [rotate, rotateValue]);
|
|
19
23
|
const interpolatedRotateValue = rotateValue.interpolate({
|
|
20
24
|
inputRange: [0, 360],
|
|
21
25
|
outputRange: ['0deg', '360deg']
|
|
@@ -25,9 +29,8 @@ export const useAnimatedCaretAnimation = () => {
|
|
|
25
29
|
transform: [{
|
|
26
30
|
rotate: interpolatedRotateValue
|
|
27
31
|
}]
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
}), [interpolatedRotateValue, animate]);
|
|
32
|
+
}
|
|
33
|
+
}), [interpolatedRotateValue]);
|
|
31
34
|
};
|
|
32
35
|
export const AnimatedCaret = /*#__PURE__*/memo(function AnimatedCaret(_ref) {
|
|
33
36
|
let {
|
|
@@ -38,13 +41,8 @@ export const AnimatedCaret = /*#__PURE__*/memo(function AnimatedCaret(_ref) {
|
|
|
38
41
|
} = _ref,
|
|
39
42
|
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
40
43
|
const {
|
|
41
|
-
animatedStyles
|
|
42
|
-
|
|
43
|
-
} = useAnimatedCaretAnimation();
|
|
44
|
-
const previousRotate = usePreviousValue(rotate);
|
|
45
|
-
useEffect(() => {
|
|
46
|
-
if (rotate !== previousRotate) animate(rotate);
|
|
47
|
-
}, [rotate, previousRotate, animate]);
|
|
44
|
+
animatedStyles
|
|
45
|
+
} = useAnimatedCaretAnimation(rotate);
|
|
48
46
|
return (
|
|
49
47
|
/*#__PURE__*/
|
|
50
48
|
// HStack to limit rotate boundary
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbase/cds-mobile",
|
|
3
|
-
"version": "9.6.
|
|
3
|
+
"version": "9.6.7",
|
|
4
4
|
"description": "Coinbase Design System - Mobile",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -206,8 +206,8 @@
|
|
|
206
206
|
"react-native-worklets": "0.5.2"
|
|
207
207
|
},
|
|
208
208
|
"dependencies": {
|
|
209
|
-
"@coinbase/cds-common": "^9.6.
|
|
210
|
-
"@coinbase/cds-icons": "^5.
|
|
209
|
+
"@coinbase/cds-common": "^9.6.7",
|
|
210
|
+
"@coinbase/cds-icons": "^5.21.0",
|
|
211
211
|
"@coinbase/cds-illustrations": "^4.44.0",
|
|
212
212
|
"@coinbase/cds-lottie-files": "^3.3.4",
|
|
213
213
|
"@coinbase/cds-utils": "^2.3.5",
|