@coinbase/cds-mobile 8.52.1 → 8.53.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/controls/Checkbox.d.ts +9 -5
- package/dts/controls/Checkbox.d.ts.map +1 -1
- package/dts/controls/CheckboxCell.d.ts.map +1 -1
- package/dts/controls/Radio.d.ts +16 -1
- package/dts/controls/Radio.d.ts.map +1 -1
- package/dts/controls/RadioCell.d.ts.map +1 -1
- package/esm/alpha/combobox/__stories__/Combobox.stories.js +135 -10
- package/esm/controls/Checkbox.js +1 -1
- package/esm/controls/CheckboxCell.js +3 -1
- package/esm/controls/Radio.js +2 -1
- package/esm/controls/RadioCell.js +3 -1
- package/esm/controls/__stories__/Checkbox.stories.js +34 -4
- package/esm/controls/__stories__/RadioGroup.stories.js +47 -4
- package/package.json +4 -4
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.53.0 (3/16/2026 PST)
|
|
12
|
+
|
|
13
|
+
#### 🚀 Updates
|
|
14
|
+
|
|
15
|
+
- Feat: update Checkbox borderRadius to match design. [[#509](https://github.com/coinbase/cds/pull/509)]
|
|
16
|
+
|
|
17
|
+
## 8.52.2 (3/11/2026 PST)
|
|
18
|
+
|
|
19
|
+
#### 🐞 Fixes
|
|
20
|
+
|
|
21
|
+
- Configure control borderWidth and controlColor. [[#457](https://github.com/coinbase/cds/pull/457)]
|
|
22
|
+
|
|
11
23
|
## 8.52.1 ((3/11/2026, 09:52 AM PST))
|
|
12
24
|
|
|
13
25
|
This is an artificial version bump with no new change.
|
|
@@ -2,18 +2,22 @@ import React from 'react';
|
|
|
2
2
|
import type { View } from 'react-native';
|
|
3
3
|
import type { ThemeVars } from '@coinbase/cds-common';
|
|
4
4
|
import { type ControlBaseProps } from './Control';
|
|
5
|
-
export type CheckboxBaseProps<CheckboxValue extends string> =
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
export type CheckboxBaseProps<CheckboxValue extends string> = Omit<
|
|
6
|
+
ControlBaseProps<CheckboxValue>,
|
|
7
|
+
'controlColor'
|
|
8
|
+
> & {
|
|
9
|
+
/**
|
|
10
|
+
* Sets the checked/active color of the checkbox.
|
|
11
|
+
* @default fgInverse
|
|
9
12
|
*/
|
|
10
13
|
controlColor?: ThemeVars.Color;
|
|
11
14
|
/**
|
|
12
|
-
*
|
|
15
|
+
* Sets the border width of the checkbox.
|
|
13
16
|
* @default 100
|
|
14
17
|
*/
|
|
15
18
|
borderWidth?: ThemeVars.BorderWidth;
|
|
16
19
|
};
|
|
20
|
+
export type CheckboxProps<CheckboxValue extends string> = CheckboxBaseProps<CheckboxValue>;
|
|
17
21
|
declare const CheckboxWithRef: <CheckboxValue extends string>(
|
|
18
22
|
props: CheckboxProps<CheckboxValue> & {
|
|
19
23
|
ref?: React.Ref<View>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../src/controls/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMtD,OAAO,EAAW,KAAK,gBAAgB,EAAyB,MAAM,WAAW,CAAC;AAElF,MAAM,MAAM,iBAAiB,CAAC,aAAa,SAAS,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../src/controls/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMtD,OAAO,EAAW,KAAK,gBAAgB,EAAyB,MAAM,WAAW,CAAC;AAElF,MAAM,MAAM,iBAAiB,CAAC,aAAa,SAAS,MAAM,IAAI,IAAI,CAChE,gBAAgB,CAAC,aAAa,CAAC,EAC/B,cAAc,CACf,GAAG;IACF;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,aAAa,SAAS,MAAM,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAuE3F,QAAA,MAAM,eAAe,EAiCf,CAAC,aAAa,SAAS,MAAM,EACjC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;CAAE,KAC5D,KAAK,CAAC,YAAY,CAAC;AAGxB,eAAO,MAAM,QAAQ,EAA4B,OAAO,eAAe,GACrE,KAAK,CAAC,mBAAmB,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxCell.d.ts","sourceRoot":"","sources":["../../src/controls/CheckboxCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAChF,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAMjE,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAIzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,MAAM,qBAAqB,CAAC,aAAa,SAAS,MAAM,IAAI;IAChE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IAC5B,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IACzB,kBAAkB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IACrC,kBAAkB,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;CAC5C,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,GACvE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,gBAAgB,CAAC,CAAC;AAE1D,MAAM,MAAM,iBAAiB,CAAC,aAAa,SAAS,MAAM,IACxD,qBAAqB,CAAC,aAAa,CAAC,GAAG;IACrC,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,uCAAuC;QACvC,iBAAiB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,gCAAgC;QAChC,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACxC,yBAAyB;QACzB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC7B,+BAA+B;QAC/B,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KACpC,CAAC;CACH,CAAC;AAEJ,QAAA,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"CheckboxCell.d.ts","sourceRoot":"","sources":["../../src/controls/CheckboxCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAChF,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAMjE,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAIzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,MAAM,qBAAqB,CAAC,aAAa,SAAS,MAAM,IAAI;IAChE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IAC5B,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IACzB,kBAAkB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IACrC,kBAAkB,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;CAC5C,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,GACvE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,gBAAgB,CAAC,CAAC;AAE1D,MAAM,MAAM,iBAAiB,CAAC,aAAa,SAAS,MAAM,IACxD,qBAAqB,CAAC,aAAa,CAAC,GAAG;IACrC,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,uCAAuC;QACvC,iBAAiB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,gCAAgC;QAChC,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACxC,yBAAyB;QACzB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC7B,+BAA+B;QAC/B,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KACpC,CAAC;CACH,CAAC;AAEJ,QAAA,MAAM,mBAAmB,EAyMnB,CAAC,aAAa,SAAS,MAAM,EACjC,KAAK,EAAE,iBAAiB,CAAC,aAAa,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;CAAE,KACzE,KAAK,CAAC,YAAY,CAAC;AAExB,eAAO,MAAM,YAAY,EAAgC,OAAO,mBAAmB,GACjF,KAAK,CAAC,mBAAmB,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
package/dts/controls/Radio.d.ts
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type View } from 'react-native';
|
|
3
|
+
import type { ThemeVars } from '@coinbase/cds-common';
|
|
3
4
|
import { type ControlBaseProps } from './Control';
|
|
4
|
-
export type RadioBaseProps<RadioValue extends string> =
|
|
5
|
+
export type RadioBaseProps<RadioValue extends string> = Omit<
|
|
6
|
+
ControlBaseProps<RadioValue>,
|
|
7
|
+
'controlColor'
|
|
8
|
+
> & {
|
|
9
|
+
/**
|
|
10
|
+
* Sets the checked/active color of the radio.
|
|
11
|
+
* @default bgPrimary
|
|
12
|
+
*/
|
|
13
|
+
controlColor?: ThemeVars.Color;
|
|
14
|
+
/**
|
|
15
|
+
* Sets the border width of the radio.
|
|
16
|
+
* @default 100
|
|
17
|
+
*/
|
|
18
|
+
borderWidth?: ThemeVars.BorderWidth;
|
|
19
|
+
};
|
|
5
20
|
export type RadioProps<RadioValue extends string> = RadioBaseProps<RadioValue>;
|
|
6
21
|
declare const RadioWithRef: <RadioValue extends string>(
|
|
7
22
|
props: RadioProps<RadioValue> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../src/controls/Radio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAChD,OAAO,EAAyC,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../src/controls/Radio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAChD,OAAO,EAAyC,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMtD,OAAO,EAAW,KAAK,gBAAgB,EAAyB,MAAM,WAAW,CAAC;AASlF,MAAM,MAAM,cAAc,CAAC,UAAU,SAAS,MAAM,IAAI,IAAI,CAC1D,gBAAgB,CAAC,UAAU,CAAC,EAC5B,cAAc,CACf,GAAG;IACF;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,UAAU,SAAS,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;AAwD/E,QAAA,MAAM,YAAY,EAuBZ,CAAC,UAAU,SAAS,MAAM,EAC9B,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;CAAE,KACtD,KAAK,CAAC,YAAY,CAAC;AAGxB,eAAO,MAAM,KAAK,EAAyB,OAAO,YAAY,GAC5D,KAAK,CAAC,mBAAmB,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioCell.d.ts","sourceRoot":"","sources":["../../src/controls/RadioCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAChF,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAMjE,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlD,MAAM,MAAM,kBAAkB,CAAC,UAAU,SAAS,MAAM,IAAI;IAC1D,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IAC5B,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IACzB,kBAAkB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IACrC,kBAAkB,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;CAC5C,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,GACpE,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,gBAAgB,CAAC,CAAC;AAEtD,MAAM,MAAM,cAAc,CAAC,UAAU,SAAS,MAAM,IAAI,kBAAkB,CAAC,UAAU,CAAC,GAAG;IACvF,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,oCAAoC;QACpC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACtC,gCAAgC;QAChC,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACxC,yBAAyB;QACzB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC7B,+BAA+B;QAC/B,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KACpC,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"RadioCell.d.ts","sourceRoot":"","sources":["../../src/controls/RadioCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAChF,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAMjE,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlD,MAAM,MAAM,kBAAkB,CAAC,UAAU,SAAS,MAAM,IAAI;IAC1D,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IAC5B,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IACzB,kBAAkB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IACrC,kBAAkB,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;CAC5C,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,GACpE,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,gBAAgB,CAAC,CAAC;AAEtD,MAAM,MAAM,cAAc,CAAC,UAAU,SAAS,MAAM,IAAI,kBAAkB,CAAC,UAAU,CAAC,GAAG;IACvF,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,oCAAoC;QACpC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACtC,gCAAgC;QAChC,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACxC,yBAAyB;QACzB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC7B,+BAA+B;QAC/B,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KACpC,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,gBAAgB,EAwMhB,CAAC,UAAU,SAAS,MAAM,EAC9B,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;CAAE,KACnE,KAAK,CAAC,YAAY,CAAC;AAExB,eAAO,MAAM,SAAS,EAA6B,OAAO,gBAAgB,GACxE,KAAK,CAAC,mBAAmB,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
const _excluded = ["freeSolo", "options", "value", "onChange", "placeholder"];
|
|
1
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); }
|
|
2
|
-
|
|
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
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
5
|
import { useMultiSelect } from '@coinbase/cds-common/select/useMultiSelect';
|
|
4
6
|
import { Button } from '../../../buttons';
|
|
5
7
|
import { Example, ExampleScreen } from '../../../examples/ExampleScreen';
|
|
@@ -118,37 +120,40 @@ const fruitOptions = [{
|
|
|
118
120
|
value: 'lemon',
|
|
119
121
|
label: 'Lemon'
|
|
120
122
|
}];
|
|
123
|
+
function getFlagEmoji(cc) {
|
|
124
|
+
return cc.toUpperCase().split('').map(c => String.fromCodePoint(0x1f1e6 - 65 + c.charCodeAt(0))).join('');
|
|
125
|
+
}
|
|
121
126
|
const countryOptions = [{
|
|
122
127
|
value: 'us',
|
|
123
|
-
label: 'United States
|
|
128
|
+
label: getFlagEmoji('us') + " United States",
|
|
124
129
|
description: 'North America'
|
|
125
130
|
}, {
|
|
126
131
|
value: 'ca',
|
|
127
|
-
label: 'Canada
|
|
132
|
+
label: getFlagEmoji('ca') + " Canada",
|
|
128
133
|
description: 'North America'
|
|
129
134
|
}, {
|
|
130
135
|
value: 'mx',
|
|
131
|
-
label: 'Mexico
|
|
136
|
+
label: getFlagEmoji('mx') + " Mexico",
|
|
132
137
|
description: 'North America'
|
|
133
138
|
}, {
|
|
134
139
|
value: 'uk',
|
|
135
|
-
label: 'United Kingdom
|
|
140
|
+
label: getFlagEmoji('gb') + " United Kingdom",
|
|
136
141
|
description: 'Europe'
|
|
137
142
|
}, {
|
|
138
143
|
value: 'fr',
|
|
139
|
-
label: 'France
|
|
144
|
+
label: getFlagEmoji('fr') + " France",
|
|
140
145
|
description: 'Europe'
|
|
141
146
|
}, {
|
|
142
147
|
value: 'de',
|
|
143
|
-
label: 'Germany
|
|
148
|
+
label: getFlagEmoji('de') + " Germany",
|
|
144
149
|
description: 'Europe'
|
|
145
150
|
}, {
|
|
146
151
|
value: 'jp',
|
|
147
|
-
label: 'Japan
|
|
152
|
+
label: getFlagEmoji('jp') + " Japan",
|
|
148
153
|
description: 'Asia'
|
|
149
154
|
}, {
|
|
150
155
|
value: 'cn',
|
|
151
|
-
label: 'China
|
|
156
|
+
label: getFlagEmoji('cn') + " China",
|
|
152
157
|
description: 'Asia'
|
|
153
158
|
}];
|
|
154
159
|
const cryptoOptions = [{
|
|
@@ -197,6 +202,75 @@ const teamOptions = [{
|
|
|
197
202
|
label: 'Charlie Brown',
|
|
198
203
|
description: 'Marketing'
|
|
199
204
|
}];
|
|
205
|
+
const CREATE_OPTION_PREFIX = '__create__';
|
|
206
|
+
function FreeSoloCombobox(_ref) {
|
|
207
|
+
let {
|
|
208
|
+
freeSolo = false,
|
|
209
|
+
options: initialOptions,
|
|
210
|
+
value,
|
|
211
|
+
onChange,
|
|
212
|
+
placeholder = 'Search or type to add...'
|
|
213
|
+
} = _ref,
|
|
214
|
+
comboboxProps = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
215
|
+
const [searchText, setSearchText] = useState('');
|
|
216
|
+
const [options, setOptions] = useState(initialOptions);
|
|
217
|
+
useEffect(() => {
|
|
218
|
+
if (!freeSolo) return;
|
|
219
|
+
const initialSet = new Set(initialOptions.map(o => o.value));
|
|
220
|
+
const valueSet = new Set(Array.isArray(value) ? value : value != null ? [value] : []);
|
|
221
|
+
setOptions(prev => {
|
|
222
|
+
const addedStillSelected = prev.filter(o => !initialSet.has(o.value) && valueSet.has(o.value));
|
|
223
|
+
return [...initialOptions, ...addedStillSelected];
|
|
224
|
+
});
|
|
225
|
+
}, [value, freeSolo, initialOptions]);
|
|
226
|
+
const optionsWithCreate = useMemo(() => {
|
|
227
|
+
if (!freeSolo) return options;
|
|
228
|
+
const trimmed = searchText.trim();
|
|
229
|
+
if (!trimmed) return options;
|
|
230
|
+
const alreadyExists = options.some(o => typeof o.label === 'string' && o.label.toLowerCase() === trimmed.toLowerCase());
|
|
231
|
+
if (alreadyExists) return options;
|
|
232
|
+
return [...options, {
|
|
233
|
+
value: "" + CREATE_OPTION_PREFIX + trimmed,
|
|
234
|
+
label: "Add \"" + trimmed + "\""
|
|
235
|
+
}];
|
|
236
|
+
}, [options, searchText, freeSolo]);
|
|
237
|
+
const handleChange = useCallback(newValue => {
|
|
238
|
+
if (!freeSolo) {
|
|
239
|
+
onChange(newValue);
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
const values = Array.isArray(newValue) ? newValue : newValue ? [newValue] : [];
|
|
243
|
+
const createValue = values.find(v => String(v).startsWith(CREATE_OPTION_PREFIX));
|
|
244
|
+
if (createValue) {
|
|
245
|
+
const newLabel = String(createValue).slice(CREATE_OPTION_PREFIX.length);
|
|
246
|
+
const newOption = {
|
|
247
|
+
value: newLabel.toLowerCase(),
|
|
248
|
+
label: newLabel
|
|
249
|
+
};
|
|
250
|
+
setOptions(prev => [...prev, newOption]);
|
|
251
|
+
const updatedValues = values.filter(v => !String(v).startsWith(CREATE_OPTION_PREFIX)).concat(newOption.value);
|
|
252
|
+
if (comboboxProps.type === 'multi') {
|
|
253
|
+
onChange(updatedValues);
|
|
254
|
+
} else {
|
|
255
|
+
onChange(newOption.value);
|
|
256
|
+
}
|
|
257
|
+
setSearchText('');
|
|
258
|
+
} else {
|
|
259
|
+
onChange(newValue);
|
|
260
|
+
}
|
|
261
|
+
}, [onChange, freeSolo, comboboxProps.type]);
|
|
262
|
+
const effectiveOptions = freeSolo ? optionsWithCreate : initialOptions;
|
|
263
|
+
const effectiveSearchProps = freeSolo ? {
|
|
264
|
+
onSearch: setSearchText,
|
|
265
|
+
searchText
|
|
266
|
+
} : {};
|
|
267
|
+
return /*#__PURE__*/_jsx(Combobox, _extends({}, comboboxProps, effectiveSearchProps, {
|
|
268
|
+
onChange: handleChange,
|
|
269
|
+
options: effectiveOptions,
|
|
270
|
+
placeholder: placeholder,
|
|
271
|
+
value: value
|
|
272
|
+
}));
|
|
273
|
+
}
|
|
200
274
|
|
|
201
275
|
// Example Components
|
|
202
276
|
const DefaultExample = () => {
|
|
@@ -410,6 +484,7 @@ const AccessibilityLabelExample = () => {
|
|
|
410
484
|
initialValue: []
|
|
411
485
|
});
|
|
412
486
|
return /*#__PURE__*/_jsx(Combobox, {
|
|
487
|
+
accessibilityHint: "Select one or more fruits",
|
|
413
488
|
accessibilityLabel: "Custom accessibility label",
|
|
414
489
|
label: "Accessible combobox",
|
|
415
490
|
onChange: onChange,
|
|
@@ -999,6 +1074,53 @@ const DynamicOptionsExample = () => {
|
|
|
999
1074
|
})]
|
|
1000
1075
|
});
|
|
1001
1076
|
};
|
|
1077
|
+
const FreeSoloComboboxExample = () => {
|
|
1078
|
+
const [standardSingleValue, setStandardSingle] = useState(null);
|
|
1079
|
+
const [freeSoloSingleValue, setFreeSoloSingle] = useState(null);
|
|
1080
|
+
const standardMulti = useMultiSelect({
|
|
1081
|
+
initialValue: []
|
|
1082
|
+
});
|
|
1083
|
+
const freeSoloMulti = useMultiSelect({
|
|
1084
|
+
initialValue: []
|
|
1085
|
+
});
|
|
1086
|
+
const baseOptions = fruitOptions.slice(0, 6);
|
|
1087
|
+
return /*#__PURE__*/_jsxs(VStack, {
|
|
1088
|
+
gap: 4,
|
|
1089
|
+
children: [/*#__PURE__*/_jsx(FreeSoloCombobox, {
|
|
1090
|
+
freeSolo: false,
|
|
1091
|
+
label: "Standard single",
|
|
1092
|
+
onChange: setStandardSingle,
|
|
1093
|
+
options: baseOptions,
|
|
1094
|
+
placeholder: "Search fruits...",
|
|
1095
|
+
type: "single",
|
|
1096
|
+
value: standardSingleValue
|
|
1097
|
+
}), /*#__PURE__*/_jsx(FreeSoloCombobox, {
|
|
1098
|
+
freeSolo: true,
|
|
1099
|
+
label: "FreeSolo single",
|
|
1100
|
+
onChange: setFreeSoloSingle,
|
|
1101
|
+
options: baseOptions,
|
|
1102
|
+
placeholder: "Search or type to add...",
|
|
1103
|
+
type: "single",
|
|
1104
|
+
value: freeSoloSingleValue
|
|
1105
|
+
}), /*#__PURE__*/_jsx(FreeSoloCombobox, {
|
|
1106
|
+
freeSolo: false,
|
|
1107
|
+
label: "Standard multi",
|
|
1108
|
+
onChange: standardMulti.onChange,
|
|
1109
|
+
options: baseOptions,
|
|
1110
|
+
placeholder: "Search fruits...",
|
|
1111
|
+
type: "multi",
|
|
1112
|
+
value: standardMulti.value
|
|
1113
|
+
}), /*#__PURE__*/_jsx(FreeSoloCombobox, {
|
|
1114
|
+
freeSolo: true,
|
|
1115
|
+
label: "FreeSolo multi",
|
|
1116
|
+
onChange: freeSoloMulti.onChange,
|
|
1117
|
+
options: baseOptions,
|
|
1118
|
+
placeholder: "Search or type to add...",
|
|
1119
|
+
type: "multi",
|
|
1120
|
+
value: freeSoloMulti.value
|
|
1121
|
+
})]
|
|
1122
|
+
});
|
|
1123
|
+
};
|
|
1002
1124
|
const CustomComponent = props => {
|
|
1003
1125
|
var _props$value$length, _props$value;
|
|
1004
1126
|
return /*#__PURE__*/_jsx(DefaultComboboxControl, _extends({}, props, {
|
|
@@ -1093,7 +1215,7 @@ const Default = () => {
|
|
|
1093
1215
|
title: "Controlled search",
|
|
1094
1216
|
children: /*#__PURE__*/_jsx(ControlledSearchExample, {})
|
|
1095
1217
|
}), /*#__PURE__*/_jsx(Example, {
|
|
1096
|
-
title: "Custom accessibility label",
|
|
1218
|
+
title: "Custom accessibility label and hint",
|
|
1097
1219
|
children: /*#__PURE__*/_jsx(AccessibilityLabelExample, {})
|
|
1098
1220
|
}), /*#__PURE__*/_jsx(Example, {
|
|
1099
1221
|
title: "Options with descriptions",
|
|
@@ -1188,6 +1310,9 @@ const Default = () => {
|
|
|
1188
1310
|
}), /*#__PURE__*/_jsx(Example, {
|
|
1189
1311
|
title: "Borderless",
|
|
1190
1312
|
children: /*#__PURE__*/_jsx(BorderlessExample, {})
|
|
1313
|
+
}), /*#__PURE__*/_jsx(Example, {
|
|
1314
|
+
title: "FreeSolo (select or add custom)",
|
|
1315
|
+
children: /*#__PURE__*/_jsx(FreeSoloComboboxExample, {})
|
|
1191
1316
|
})]
|
|
1192
1317
|
});
|
|
1193
1318
|
};
|
package/esm/controls/Checkbox.js
CHANGED
|
@@ -17,7 +17,7 @@ const CheckboxIcon = /*#__PURE__*/memo(_ref => {
|
|
|
17
17
|
controlColor = 'fgInverse',
|
|
18
18
|
background = checked || indeterminate ? 'bgPrimary' : 'bg',
|
|
19
19
|
borderColor = checked || indeterminate ? 'bgPrimary' : 'bgLineHeavy',
|
|
20
|
-
borderRadius,
|
|
20
|
+
borderRadius = 100,
|
|
21
21
|
borderWidth = 100,
|
|
22
22
|
elevation,
|
|
23
23
|
animatedScaleValue,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["title", "description", "checked", "onChange", "disabled", "columnGap", "rowGap", "padding", "borderWidth", "borderRadius", "background", "borderColor", "accessibilityLabel", "accessibilityHint", "testID", "value", "width", "style", "contentStyle", "wrapperStyles", "onPressIn", "onPressOut", "pressedBorderColor", "pressedBorderWidth", "indeterminate", "readOnly", "styles"];
|
|
1
|
+
const _excluded = ["title", "description", "checked", "onChange", "disabled", "columnGap", "rowGap", "padding", "borderWidth", "borderRadius", "background", "borderColor", "controlColor", "accessibilityLabel", "accessibilityHint", "testID", "value", "width", "style", "contentStyle", "wrapperStyles", "onPressIn", "onPressOut", "pressedBorderColor", "pressedBorderWidth", "indeterminate", "readOnly", "styles"];
|
|
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, useState } from 'react';
|
|
@@ -25,6 +25,7 @@ const CheckboxCellWithRef = /*#__PURE__*/forwardRef(function CheckboxCell(_ref,
|
|
|
25
25
|
borderRadius = 200,
|
|
26
26
|
background = 'bg',
|
|
27
27
|
borderColor = 'bgLine',
|
|
28
|
+
controlColor,
|
|
28
29
|
accessibilityLabel,
|
|
29
30
|
accessibilityHint,
|
|
30
31
|
testID,
|
|
@@ -155,6 +156,7 @@ const CheckboxCellWithRef = /*#__PURE__*/forwardRef(function CheckboxCell(_ref,
|
|
|
155
156
|
children: /*#__PURE__*/_jsx(Checkbox, {
|
|
156
157
|
accessible: false,
|
|
157
158
|
checked: !!checked,
|
|
159
|
+
controlColor: controlColor,
|
|
158
160
|
disabled: disabled,
|
|
159
161
|
indeterminate: indeterminate,
|
|
160
162
|
pointerEvents: "none",
|
package/esm/controls/Radio.js
CHANGED
|
@@ -40,6 +40,7 @@ const RadioIcon = _ref2 => {
|
|
|
40
40
|
checked,
|
|
41
41
|
background = 'bg',
|
|
42
42
|
borderRadius = 1000,
|
|
43
|
+
borderWidth = 100,
|
|
43
44
|
elevation,
|
|
44
45
|
animatedScaleValue,
|
|
45
46
|
animatedOpacityValue,
|
|
@@ -53,7 +54,7 @@ const RadioIcon = _ref2 => {
|
|
|
53
54
|
background: background,
|
|
54
55
|
borderColor: borderColor,
|
|
55
56
|
borderRadius: borderRadius,
|
|
56
|
-
borderWidth:
|
|
57
|
+
borderWidth: borderWidth,
|
|
57
58
|
disabled: disabled,
|
|
58
59
|
elevation: elevation,
|
|
59
60
|
pressed: pressed,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["title", "description", "checked", "onChange", "disabled", "readOnly", "columnGap", "rowGap", "padding", "borderWidth", "borderRadius", "background", "borderColor", "accessibilityLabel", "accessibilityHint", "testID", "value", "width", "style", "contentStyle", "wrapperStyles", "onPressIn", "onPressOut", "pressedBorderColor", "pressedBorderWidth", "styles"];
|
|
1
|
+
const _excluded = ["title", "description", "checked", "onChange", "disabled", "readOnly", "columnGap", "rowGap", "padding", "borderWidth", "borderRadius", "background", "borderColor", "controlColor", "accessibilityLabel", "accessibilityHint", "testID", "value", "width", "style", "contentStyle", "wrapperStyles", "onPressIn", "onPressOut", "pressedBorderColor", "pressedBorderWidth", "styles"];
|
|
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, useState } from 'react';
|
|
@@ -26,6 +26,7 @@ const RadioCellWithRef = /*#__PURE__*/forwardRef(function RadioCell(_ref, ref) {
|
|
|
26
26
|
borderRadius = 200,
|
|
27
27
|
background = 'bg',
|
|
28
28
|
borderColor = 'bgLine',
|
|
29
|
+
controlColor,
|
|
29
30
|
accessibilityLabel,
|
|
30
31
|
accessibilityHint,
|
|
31
32
|
testID,
|
|
@@ -154,6 +155,7 @@ const RadioCellWithRef = /*#__PURE__*/forwardRef(function RadioCell(_ref, ref) {
|
|
|
154
155
|
children: /*#__PURE__*/_jsx(Radio, {
|
|
155
156
|
accessible: false,
|
|
156
157
|
checked: !!checked,
|
|
158
|
+
controlColor: controlColor,
|
|
157
159
|
disabled: disabled,
|
|
158
160
|
pointerEvents: "none",
|
|
159
161
|
readOnly: readOnly,
|
|
@@ -46,14 +46,26 @@ const CheckboxScreen = () => {
|
|
|
46
46
|
checked: true,
|
|
47
47
|
disabled: true,
|
|
48
48
|
children: "Checked and disabled"
|
|
49
|
-
})
|
|
49
|
+
})]
|
|
50
|
+
}), /*#__PURE__*/_jsx(Example, {
|
|
51
|
+
inline: true,
|
|
52
|
+
title: "Read Only",
|
|
53
|
+
children: /*#__PURE__*/_jsx(Checkbox, {
|
|
50
54
|
readOnly: true,
|
|
51
55
|
children: "Read Only"
|
|
52
|
-
})
|
|
56
|
+
})
|
|
57
|
+
}), /*#__PURE__*/_jsx(Example, {
|
|
58
|
+
inline: true,
|
|
59
|
+
title: "No Label",
|
|
60
|
+
children: /*#__PURE__*/_jsx(Checkbox, {
|
|
53
61
|
accessibilityLabel: "checkbox with no label"
|
|
54
|
-
})
|
|
62
|
+
})
|
|
63
|
+
}), /*#__PURE__*/_jsx(Example, {
|
|
64
|
+
inline: true,
|
|
65
|
+
title: "Multi-line Label",
|
|
66
|
+
children: /*#__PURE__*/_jsx(Checkbox, {
|
|
55
67
|
children: "This checkbox has a multi-line label. The checkbox and label should align at the top. The label is super duper long and it keeps going on forever. This checkbox has a multi-line label."
|
|
56
|
-
})
|
|
68
|
+
})
|
|
57
69
|
}), /*#__PURE__*/_jsx(Example, {
|
|
58
70
|
inline: true,
|
|
59
71
|
title: "Checkbox Group",
|
|
@@ -137,6 +149,24 @@ const CheckboxScreen = () => {
|
|
|
137
149
|
onChange: () => setChecked(s => !s),
|
|
138
150
|
children: "Style props indeterminate"
|
|
139
151
|
})]
|
|
152
|
+
}), /*#__PURE__*/_jsxs(Example, {
|
|
153
|
+
inline: true,
|
|
154
|
+
title: "Custom Border Width",
|
|
155
|
+
children: [/*#__PURE__*/_jsx(Checkbox, {
|
|
156
|
+
checked: checked,
|
|
157
|
+
onChange: () => setChecked(s => !s),
|
|
158
|
+
children: "Default (100)"
|
|
159
|
+
}), /*#__PURE__*/_jsx(Checkbox, {
|
|
160
|
+
borderWidth: 200,
|
|
161
|
+
checked: checked,
|
|
162
|
+
onChange: () => setChecked(s => !s),
|
|
163
|
+
children: "Border width 200"
|
|
164
|
+
}), /*#__PURE__*/_jsx(Checkbox, {
|
|
165
|
+
borderWidth: 500,
|
|
166
|
+
checked: checked,
|
|
167
|
+
onChange: () => setChecked(s => !s),
|
|
168
|
+
children: "Border width 500"
|
|
169
|
+
})]
|
|
140
170
|
})]
|
|
141
171
|
});
|
|
142
172
|
};
|
|
@@ -1,6 +1,9 @@
|
|
|
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';
|
|
6
|
+
import { defaultTheme } from '../../themes/defaultTheme';
|
|
4
7
|
import { Text } from '../../typography/Text';
|
|
5
8
|
import { Radio, RadioGroup } from '../RadioGroup';
|
|
6
9
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
@@ -31,14 +34,26 @@ const RadioGroupScreen = () => {
|
|
|
31
34
|
}), /*#__PURE__*/_jsx(Radio, {
|
|
32
35
|
disabled: true,
|
|
33
36
|
children: "Disabled"
|
|
34
|
-
})
|
|
37
|
+
})]
|
|
38
|
+
}), /*#__PURE__*/_jsx(Example, {
|
|
39
|
+
inline: true,
|
|
40
|
+
title: "Read Only",
|
|
41
|
+
children: /*#__PURE__*/_jsx(Radio, {
|
|
35
42
|
readOnly: true,
|
|
36
43
|
children: "Read Only"
|
|
37
|
-
})
|
|
44
|
+
})
|
|
45
|
+
}), /*#__PURE__*/_jsx(Example, {
|
|
46
|
+
inline: true,
|
|
47
|
+
title: "No Label",
|
|
48
|
+
children: /*#__PURE__*/_jsx(Radio, {
|
|
38
49
|
accessibilityLabel: "radio with no label"
|
|
39
|
-
})
|
|
50
|
+
})
|
|
51
|
+
}), /*#__PURE__*/_jsx(Example, {
|
|
52
|
+
inline: true,
|
|
53
|
+
title: "Multi-line Label",
|
|
54
|
+
children: /*#__PURE__*/_jsx(Radio, {
|
|
40
55
|
children: "This radio has a multi-line label. The radio and label should align at the top. The label is super duper long and it keeps going on forever. This radio has a multi-line label."
|
|
41
|
-
})
|
|
56
|
+
})
|
|
42
57
|
}), /*#__PURE__*/_jsx(Example, {
|
|
43
58
|
inline: true,
|
|
44
59
|
title: "Radio Group",
|
|
@@ -135,6 +150,34 @@ const RadioGroupScreen = () => {
|
|
|
135
150
|
})]
|
|
136
151
|
});
|
|
137
152
|
}
|
|
153
|
+
}), /*#__PURE__*/_jsx(Example, {
|
|
154
|
+
inline: true,
|
|
155
|
+
title: "Custom Border Width",
|
|
156
|
+
children: () => {
|
|
157
|
+
const toggleChecked = () => setChecked(prevChecked => !prevChecked);
|
|
158
|
+
const smallRadioTheme = _extends({}, defaultTheme, {
|
|
159
|
+
controlSize: _extends({}, defaultTheme.controlSize, {
|
|
160
|
+
radioSize: 18
|
|
161
|
+
})
|
|
162
|
+
});
|
|
163
|
+
return /*#__PURE__*/_jsxs(VStack, {
|
|
164
|
+
gap: 2,
|
|
165
|
+
children: [/*#__PURE__*/_jsx(Radio, {
|
|
166
|
+
checked: checked,
|
|
167
|
+
onChange: toggleChecked,
|
|
168
|
+
children: "Default radio (20px, borderWidth 100)"
|
|
169
|
+
}), /*#__PURE__*/_jsx(ThemeProvider, {
|
|
170
|
+
activeColorScheme: "light",
|
|
171
|
+
theme: smallRadioTheme,
|
|
172
|
+
children: /*#__PURE__*/_jsx(Radio, {
|
|
173
|
+
borderWidth: 200,
|
|
174
|
+
checked: checked,
|
|
175
|
+
onChange: toggleChecked,
|
|
176
|
+
children: "Smaller radio (18px, borderWidth 200)"
|
|
177
|
+
})
|
|
178
|
+
})]
|
|
179
|
+
});
|
|
180
|
+
}
|
|
138
181
|
})]
|
|
139
182
|
});
|
|
140
183
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbase/cds-mobile",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.53.0",
|
|
4
4
|
"description": "Coinbase Design System - Mobile",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -198,9 +198,9 @@
|
|
|
198
198
|
"react-native-svg": "^14.1.0"
|
|
199
199
|
},
|
|
200
200
|
"dependencies": {
|
|
201
|
-
"@coinbase/cds-common": "^8.
|
|
202
|
-
"@coinbase/cds-icons": "^5.
|
|
203
|
-
"@coinbase/cds-illustrations": "^4.
|
|
201
|
+
"@coinbase/cds-common": "^8.53.0",
|
|
202
|
+
"@coinbase/cds-icons": "^5.13.0",
|
|
203
|
+
"@coinbase/cds-illustrations": "^4.33.0",
|
|
204
204
|
"@coinbase/cds-lottie-files": "^3.3.4",
|
|
205
205
|
"@coinbase/cds-utils": "^2.3.5",
|
|
206
206
|
"@floating-ui/react-native": "^0.10.5",
|