@coinbase/cds-mobile 9.2.0 → 9.2.2

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.2.2 (6/10/2026 PST)
12
+
13
+ #### 🐞 Fixes
14
+
15
+ - Fix: custom Switch sizes now center in the background track correctly. [[#750](https://github.com/coinbase/cds/pull/750)]
16
+
17
+ ## 9.2.1 (6/9/2026 PST)
18
+
19
+ #### 🐞 Fixes
20
+
21
+ - Fix: add tabbed-chips to exports in web/mobile packages.
22
+
11
23
  ## 9.2.0 (5/28/2026 PST)
12
24
 
13
25
  #### 🚀 Updates
@@ -2,4 +2,5 @@ export * from './combobox';
2
2
  export * from './data-card';
3
3
  export * from './select';
4
4
  export * from './select-chip';
5
+ export * from './tabbed-chips';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/alpha/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/alpha/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './TabbedChips';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/alpha/tabbed-chips/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../src/controls/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,KAAK,SAAS,EAAc,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAOrF,OAAO,EAAW,KAAK,gBAAgB,EAAyB,MAAM,WAAW,CAAC;AAElF,MAAM,MAAM,eAAe,CAAC,WAAW,SAAS,MAAM,IAAI,IAAI,CAC5D,gBAAgB,CAAC,WAAW,CAAC,EAC7B,aAAa,GAAG,SAAS,CAC1B,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,WAAW,SAAS,MAAM,IAAI,eAAe,CAAC,WAAW,CAAC,GAAG;IACnF;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,oCAAoC;IACpC,MAAM,CAAC,EAAE;QACP,oDAAoD;QACpD,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B;;;WAGG;QACH,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KAChC,CAAC;CACH,CAAC;AAyHF,eAAO,MAAM,MAAM;IA5IjB;;;;;;;OAOG;eACQ,KAAK,CAAC,SAAS;IAC1B,oCAAoC;aAC3B;QACP,oDAAoD;QACpD,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B;;;WAGG;QACH,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KAChC;8BA0HsC,CAAC"}
1
+ {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../src/controls/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,KAAK,SAAS,EAAc,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAOrF,OAAO,EAAW,KAAK,gBAAgB,EAAyB,MAAM,WAAW,CAAC;AAElF,MAAM,MAAM,eAAe,CAAC,WAAW,SAAS,MAAM,IAAI,IAAI,CAC5D,gBAAgB,CAAC,WAAW,CAAC,EAC7B,aAAa,GAAG,SAAS,CAC1B,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,WAAW,SAAS,MAAM,IAAI,eAAe,CAAC,WAAW,CAAC,GAAG;IACnF;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,oCAAoC;IACpC,MAAM,CAAC,EAAE;QACP,oDAAoD;QACpD,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B;;;WAGG;QACH,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KAChC,CAAC;CACH,CAAC;AA6HF,eAAO,MAAM,MAAM;IAhJjB;;;;;;;OAOG;eACQ,KAAK,CAAC,SAAS;IAC1B,oCAAoC;aAC3B;QACP,oDAAoD;QACpD,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B;;;WAGG;QACH,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KAChC;8BA8HsC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './combobox';
2
2
  export * from './data-card';
3
3
  export * from './select';
4
- export * from './select-chip';
4
+ export * from './select-chip';
5
+ export * from './tabbed-chips';
@@ -0,0 +1 @@
1
+ export * from './TabbedChips';
@@ -31,6 +31,10 @@ const SwitchIcon = _ref => {
31
31
  switchHeight,
32
32
  switchThumbSize
33
33
  } = theme.controlSize;
34
+
35
+ // Inset that keeps the thumb centered within the track regardless of the
36
+ // configured track/thumb sizes (built-in themes use a 1px inset).
37
+ const thumbInset = (switchHeight - switchThumbSize) / 2;
34
38
  const trackStyle = useMemo(() => [{
35
39
  width: switchWidth,
36
40
  height: switchHeight
@@ -39,16 +43,16 @@ const SwitchIcon = _ref => {
39
43
  width: switchThumbSize,
40
44
  height: switchThumbSize,
41
45
  position: 'absolute',
42
- top: 1 - borderSize,
43
- left: 1 - borderSize
46
+ top: thumbInset - borderSize,
47
+ left: thumbInset - borderSize
44
48
  }, {
45
49
  transform: [{
46
50
  translateX: animatedScaleValue.interpolate({
47
51
  inputRange: [0.9, 1],
48
- outputRange: [0, switchWidth - switchThumbSize - 2]
52
+ outputRange: [0, switchWidth - switchThumbSize - thumbInset * 2]
49
53
  })
50
54
  }]
51
- }], [animatedScaleValue, borderSize, switchThumbSize, switchWidth]);
55
+ }], [animatedScaleValue, borderSize, thumbInset, switchThumbSize, switchWidth]);
52
56
  return /*#__PURE__*/_jsx(Interactable, {
53
57
  background: background,
54
58
  borderColor: borderColor,
@@ -1,12 +1,16 @@
1
+ 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); }
1
2
  import React, { useState } from 'react';
2
3
  import { Example, ExampleScreen } from '../../examples/ExampleScreen';
3
4
  import { VStack } from '../../layout';
5
+ import { ThemeProvider } from '../../system/ThemeProvider';
6
+ import { defaultTheme } from '../../themes/defaultTheme';
4
7
  import { Switch } from '../Switch';
5
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
9
  const SwitchScreen = () => {
7
10
  const [isChecked, setIsChecked] = useState(false);
8
11
  const [isChecked2, setIsChecked2] = useState(true);
9
12
  const [isChecked3, setIsChecked3] = useState(false);
13
+ const [isChecked4, setIsChecked4] = useState(false);
10
14
  return /*#__PURE__*/_jsxs(ExampleScreen, {
11
15
  children: [/*#__PURE__*/_jsx(Example, {
12
16
  inline: true,
@@ -64,6 +68,37 @@ const SwitchScreen = () => {
64
68
  })]
65
69
  });
66
70
  }
71
+ }), /*#__PURE__*/_jsx(Example, {
72
+ inline: true,
73
+ title: "Custom Theme",
74
+ children: () => {
75
+ const toggleChecked = () => setIsChecked4(prevChecked => !prevChecked);
76
+ const customTheme = _extends({}, defaultTheme, {
77
+ controlSize: _extends({}, defaultTheme.controlSize, {
78
+ switchHeight: 24,
79
+ switchThumbSize: 20,
80
+ switchWidth: 44
81
+ })
82
+ });
83
+ return /*#__PURE__*/_jsx(ThemeProvider, {
84
+ activeColorScheme: "light",
85
+ theme: customTheme,
86
+ children: /*#__PURE__*/_jsxs(VStack, {
87
+ gap: 2,
88
+ children: [/*#__PURE__*/_jsx(Switch, {
89
+ checked: isChecked4,
90
+ onChange: toggleChecked,
91
+ children: "Interactive"
92
+ }), /*#__PURE__*/_jsx(Switch, {
93
+ checked: false,
94
+ children: "Off"
95
+ }), /*#__PURE__*/_jsx(Switch, {
96
+ checked: true,
97
+ children: "On"
98
+ })]
99
+ })
100
+ });
101
+ }
67
102
  }), /*#__PURE__*/_jsx(Example, {
68
103
  inline: true,
69
104
  title: "Elevation",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cds-mobile",
3
- "version": "9.2.0",
3
+ "version": "9.2.2",
4
4
  "description": "Coinbase Design System - Mobile",
5
5
  "repository": {
6
6
  "type": "git",
@@ -37,6 +37,10 @@
37
37
  "types": "./dts/alpha/select-chip/index.d.ts",
38
38
  "default": "./esm/alpha/select-chip/index.js"
39
39
  },
40
+ "./alpha/tabbed-chips": {
41
+ "types": "./dts/alpha/tabbed-chips/index.d.ts",
42
+ "default": "./esm/alpha/tabbed-chips/index.js"
43
+ },
40
44
  "./animation": {
41
45
  "types": "./dts/animation/index.d.ts",
42
46
  "default": "./esm/animation/index.js"
@@ -202,9 +206,9 @@
202
206
  "react-native-worklets": "0.5.2"
203
207
  },
204
208
  "dependencies": {
205
- "@coinbase/cds-common": "^9.2.0",
206
- "@coinbase/cds-icons": "^5.18.0",
207
- "@coinbase/cds-illustrations": "^4.40.1",
209
+ "@coinbase/cds-common": "^9.2.2",
210
+ "@coinbase/cds-icons": "^5.19.0",
211
+ "@coinbase/cds-illustrations": "^4.41.0",
208
212
  "@coinbase/cds-lottie-files": "^3.3.4",
209
213
  "@coinbase/cds-utils": "^2.3.5",
210
214
  "@floating-ui/react-native": "^0.10.5",