@coinbase/cds-mobile 9.14.0 → 9.15.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 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.15.0 (8/11/2026 PST)
12
+
13
+ #### 🚀 Updates
14
+
15
+ [[#839](https://github.com/coinbase/cds/pull/839)]
16
+
17
+ - Add new prop: variant to Switch component.
18
+ - Add new prop: showItemSeparators to Accordion component.
19
+ - Add new prop: showHeaderBorder to AccordionItem component.
20
+ - Add AccordionItem to ComponentConfig system.
21
+ - Add new prop: equalWidth to SegmentedTabs component.
22
+
11
23
  ## 9.14.0 (8/11/2026 PST)
12
24
 
13
25
  #### 🚀 Updates
@@ -1,7 +1,17 @@
1
1
  import type { ViewProps } from 'react-native';
2
2
  import { type AccordionProviderProps } from '@coinbase/cds-common/accordion/AccordionProvider';
3
+ import type { ThemeVars } from '@coinbase/cds-common/core/theme';
3
4
  import type { SharedProps } from '@coinbase/cds-common/types/SharedProps';
4
- export type AccordionBaseProps = SharedProps & AccordionProviderProps;
5
+ export type AccordionBaseProps = SharedProps &
6
+ AccordionProviderProps & {
7
+ /** Border radius of the accordion root container */
8
+ borderRadius?: ThemeVars.BorderRadius;
9
+ /**
10
+ * Show a divider between each accordion item.
11
+ * @default true
12
+ */
13
+ showItemSeparators?: boolean;
14
+ };
5
15
  export type AccordionProps = AccordionBaseProps & Pick<ViewProps, 'style'>;
6
16
  export declare const Accordion: import('react').MemoExoticComponent<
7
17
  (_props: AccordionProps) => import('react/jsx-runtime').JSX.Element
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../src/accordion/Accordion.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAO1E,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,sBAAsB,CAAC;AAEtE,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAE3E,eAAO,MAAM,SAAS,+CAAiB,cAAc,6CAgBnD,CAAC"}
1
+ {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../src/accordion/Accordion.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAO1E,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAC1C,sBAAsB,GAAG;IACvB,oDAAoD;IACpD,YAAY,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC;IACtC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEJ,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAE3E,eAAO,MAAM,SAAS,+CAAiB,cAAc,6CAgCnD,CAAC"}
@@ -1,7 +1,11 @@
1
1
  import React from 'react';
2
- import type { View } from 'react-native';
2
+ import type { StyleProp, View, ViewStyle } from 'react-native';
3
+ import type { ThemeVars } from '@coinbase/cds-common/core/theme';
4
+ import type { IconSize } from '@coinbase/cds-common/types/IconSize';
3
5
  import type { SharedProps } from '@coinbase/cds-common/types/SharedProps';
6
+ import type { PaddingProps } from '@coinbase/cds-common/types/SpacingProps';
4
7
  import type { CollapsibleBaseProps } from '../collapsible/Collapsible';
8
+ import { type BoxBaseProps } from '../layout/Box';
5
9
  export type AccordionMediaBaseProps = {
6
10
  media?: React.ReactNode;
7
11
  };
@@ -19,11 +23,17 @@ export type AccordionTitleBaseProps = {
19
23
  */
20
24
  tertiaryTitle?: string;
21
25
  };
22
- export type AccordionIconBaseProps = Pick<CollapsibleBaseProps, 'collapsed'>;
26
+ export type AccordionIconBaseProps = Pick<CollapsibleBaseProps, 'collapsed'> & {
27
+ /** Size of the caret icon.
28
+ * @default s
29
+ */
30
+ caretSize?: IconSize;
31
+ };
23
32
  export type AccordionHeaderBaseProps = SharedProps &
24
33
  AccordionMediaBaseProps &
25
34
  AccordionTitleBaseProps &
26
- AccordionIconBaseProps & {
35
+ AccordionIconBaseProps &
36
+ Pick<BoxBaseProps, keyof PaddingProps> & {
27
37
  /**
28
38
  * Callback function fired when the accordion item is pressed
29
39
  */
@@ -34,6 +44,11 @@ export type AccordionHeaderBaseProps = SharedProps &
34
44
  * unless you want multiple items to be controlled at the same time.
35
45
  */
36
46
  itemKey: string;
47
+ /**
48
+ * Background color of the header pressable.
49
+ * @default bg
50
+ */
51
+ background?: ThemeVars.Color;
37
52
  };
38
53
  export type AccordionMediaProps = AccordionMediaBaseProps;
39
54
  export declare const AccordionMedia: React.MemoExoticComponent<
@@ -49,9 +64,12 @@ export declare const AccordionTitle: React.MemoExoticComponent<
49
64
  >;
50
65
  export type AccordionIconProps = AccordionIconBaseProps;
51
66
  export declare const AccordionIcon: React.MemoExoticComponent<
52
- ({ collapsed }: AccordionIconProps) => import('react/jsx-runtime').JSX.Element
67
+ ({ collapsed, caretSize }: AccordionIconProps) => import('react/jsx-runtime').JSX.Element
53
68
  >;
54
- export type AccordionHeaderProps = AccordionHeaderBaseProps;
69
+ export type AccordionHeaderProps = AccordionHeaderBaseProps & {
70
+ /** Custom style for the header pressable element */
71
+ style?: StyleProp<ViewStyle>;
72
+ };
55
73
  /**
56
74
  * Renders a Pressable element to use as the header to an AccordionItem.
57
75
  * Composes an Accordion Media, Title, and Icon.
@@ -67,6 +85,16 @@ export declare const AccordionHeader: React.MemoExoticComponent<
67
85
  media,
68
86
  collapsed,
69
87
  testID,
88
+ style,
89
+ background,
90
+ caretSize,
91
+ padding,
92
+ paddingX,
93
+ paddingY,
94
+ paddingTop,
95
+ paddingBottom,
96
+ paddingStart,
97
+ paddingEnd,
70
98
  }: AccordionHeaderProps & {
71
99
  ref?: React.Ref<View>;
72
100
  }) => import('react/jsx-runtime').JSX.Element
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionHeader.d.ts","sourceRoot":"","sources":["../../src/accordion/AccordionHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAOzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAE1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AASvE,MAAM,MAAM,uBAAuB,GAAG;IAEpC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;AAE7E,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAChD,uBAAuB,GACvB,uBAAuB,GACvB,sBAAsB,GAAG;IACvB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEJ,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE1D,eAAO,MAAM,cAAc,wCAAoB,mBAAmB,6CAAwB,CAAC;AAE3F,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE1D,eAAO,MAAM,cAAc,iEAA6C,mBAAmB,6CAgBzF,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAExD,eAAO,MAAM,aAAa,4CAAwB,kBAAkB,6CAMlE,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,eAAe,iIAWvB,oBAAoB,GAAG;IACxB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CACvB,6CA8BF,CAAC"}
1
+ {"version":3,"file":"AccordionHeader.d.ts","sourceRoot":"","sources":["../../src/accordion/AccordionHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAG5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAavD,MAAM,MAAM,uBAAuB,GAAG;IAEpC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,GAAG;IAC7E;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAChD,uBAAuB,GACvB,uBAAuB,GACvB,sBAAsB,GACtB,IAAI,CAAC,YAAY,EAAE,MAAM,YAAY,CAAC,GAAG;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;CAC9B,CAAC;AAEJ,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE1D,eAAO,MAAM,cAAc,wCAAoB,mBAAmB,6CAAwB,CAAC;AAE3F,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE1D,eAAO,MAAM,cAAc,iEAA6C,mBAAmB,6CAgBzF,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAExD,eAAO,MAAM,aAAa,uDAAyC,kBAAkB,6CASnF,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,GAAG;IAC5D,oDAAoD;IACpD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,iPAqBvB,oBAAoB,GAAG;IACxB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CACvB,6CA6CF,CAAC"}
@@ -1,32 +1,40 @@
1
1
  import React from 'react';
2
- import type { View, ViewProps } from 'react-native';
2
+ import type { StyleProp, View, ViewStyle } from 'react-native';
3
+ import type { ThemeVars } from '@coinbase/cds-common/core/theme';
3
4
  import { type AccordionHeaderBaseProps } from './AccordionHeader';
4
5
  import { type AccordionPanelBaseProps } from './AccordionPanel';
5
- export type AccordionItemBaseProps = Pick<ViewProps, 'style'> &
6
- Omit<AccordionHeaderBaseProps, 'collapsed'> &
6
+ export type AccordionItemBaseProps = Omit<AccordionHeaderBaseProps, 'collapsed'> &
7
7
  Omit<AccordionPanelBaseProps, 'collapsed'> & {
8
8
  headerRef?: React.RefObject<View | null>;
9
9
  panelRef?: React.RefObject<View | null>;
10
+ /**
11
+ * Show a border between the header and panel.
12
+ * @default false
13
+ */
14
+ showHeaderBorder?: boolean;
15
+ /** Border radius of the accordion item root container */
16
+ borderRadius?: ThemeVars.BorderRadius;
10
17
  };
11
- export type AccordionItemProps = AccordionItemBaseProps;
18
+ export type AccordionItemStyles = {
19
+ /** Root container element */
20
+ root?: StyleProp<ViewStyle>;
21
+ /** Header pressable element */
22
+ header?: StyleProp<ViewStyle>;
23
+ /** Collapsible panel container element */
24
+ panel?: StyleProp<ViewStyle>;
25
+ };
26
+ export type AccordionItemProps = AccordionItemBaseProps & {
27
+ /** Custom style for the root element */
28
+ style?: StyleProp<ViewStyle>;
29
+ /** Custom styles for individual elements of the AccordionItem component */
30
+ styles?: AccordionItemStyles;
31
+ };
12
32
  /**
13
33
  * A component that represents a single item within an Accordion.
14
34
  * It composes together an AccordionHeader and a collapsible AccordionPanel.
15
35
  * Accepts a unique `itemKey` prop to uniquely identify one item from another within the same Accordion.
16
36
  */
17
37
  export declare const AccordionItem: React.MemoExoticComponent<
18
- ({
19
- itemKey,
20
- title,
21
- subtitle,
22
- tertiaryTitle,
23
- children,
24
- onPress,
25
- media,
26
- testID,
27
- headerRef,
28
- panelRef,
29
- style,
30
- }: AccordionItemProps) => import('react/jsx-runtime').JSX.Element
38
+ (_props: AccordionItemProps) => import('react/jsx-runtime').JSX.Element
31
39
  >;
32
40
  //# sourceMappingURL=AccordionItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionItem.d.ts","sourceRoot":"","sources":["../../src/accordion/AccordionItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMpD,OAAO,EAAmB,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAkB,KAAK,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GAC3D,IAAI,CAAC,wBAAwB,EAAE,WAAW,CAAC,GAC3C,IAAI,CAAC,uBAAuB,EAAE,WAAW,CAAC,GAAG;IAC3C,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;CACzC,CAAC;AAEJ,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,aAAa,yIAarB,kBAAkB,6CA4BtB,CAAC"}
1
+ {"version":3,"file":"AccordionItem.d.ts","sourceRoot":"","sources":["../../src/accordion/AccordionItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAOjE,OAAO,EAAmB,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAkB,KAAK,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,EAAE,WAAW,CAAC,GAC9E,IAAI,CAAC,uBAAuB,EAAE,WAAW,CAAC,GAAG;IAC3C,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACxC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,YAAY,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC;CACvC,CAAC;AAEJ,MAAM,MAAM,mBAAmB,GAAG;IAChC,6BAA6B;IAC7B,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5B,+BAA+B;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG;IACxD,wCAAwC;IACxC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,qCAAiB,kBAAkB,6CA+E3D,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { View } from 'react-native';
2
+ import type { StyleProp, View, ViewStyle } from 'react-native';
3
3
  import type { SharedProps } from '@coinbase/cds-common/types/SharedProps';
4
4
  import { type CollapsibleBaseProps } from '../collapsible/Collapsible';
5
5
  export type AccordionPanelBaseProps = SharedProps &
@@ -11,7 +11,10 @@ export type AccordionPanelBaseProps = SharedProps &
11
11
  */
12
12
  itemKey: string;
13
13
  };
14
- export type AccordionPanelProps = AccordionPanelBaseProps;
14
+ export type AccordionPanelProps = AccordionPanelBaseProps & {
15
+ /** Custom style applied to the collapsible panel container */
16
+ style?: StyleProp<ViewStyle>;
17
+ };
15
18
  /**
16
19
  * Renders a collapsible element to use as the primary content container for an AccordionItem.
17
20
  * Accepts a unique `itemKey` prop to uniquely identify one panel from another.
@@ -22,6 +25,7 @@ export declare const AccordionPanel: React.MemoExoticComponent<
22
25
  children,
23
26
  collapsed,
24
27
  testID,
28
+ style,
25
29
  }: AccordionPanelProps & {
26
30
  ref?: React.Ref<View>;
27
31
  }) => import('react/jsx-runtime').JSX.Element
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionPanel.d.ts","sourceRoot":"","sources":["../../src/accordion/AccordionPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAE1E,OAAO,EAAe,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEpF,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAC/C,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,UAAU,CAAC,GAAG;IACrD;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEJ,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,cAAc,kFAMtB,mBAAmB,GAAG;IACvB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CACvB,6CAaF,CAAC"}
1
+ {"version":3,"file":"AccordionPanel.d.ts","sourceRoot":"","sources":["../../src/accordion/AccordionPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAE1E,OAAO,EAAe,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEpF,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAC/C,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,UAAU,CAAC,GAAG;IACrD;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEJ,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,GAAG;IAC1D,8DAA8D;IAC9D,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,yFAOtB,mBAAmB,GAAG;IACvB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CACvB,6CAcF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { View } from 'react-native';
3
- import type { ScrollViewProps } from 'react-native';
3
+ import type { ScrollViewProps, StyleProp, ViewStyle } from 'react-native';
4
4
  import type { CollapsibleDirection } from '@coinbase/cds-common/types/CollapsibleBaseProps';
5
5
  import type { SharedProps } from '@coinbase/cds-common/types/SharedProps';
6
6
  import type { PaddingProps } from '@coinbase/cds-common/types/SpacingProps';
@@ -33,7 +33,10 @@ export type CollapsibleBaseProps = SharedProps &
33
33
  */
34
34
  maxWidth?: number;
35
35
  };
36
- export type CollapsibleProps = CollapsibleBaseProps;
36
+ export type CollapsibleProps = CollapsibleBaseProps & {
37
+ /** Custom style applied to the root animated container element */
38
+ style?: StyleProp<ViewStyle>;
39
+ };
37
40
  export declare const Collapsible: React.MemoExoticComponent<
38
41
  ({
39
42
  ref: forwardedRef,
@@ -1 +1 @@
1
- {"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../src/collapsible/Collapsible.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,EAA0B,IAAI,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAapD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAU5E,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAC5C,YAAY,GAAG;IACb;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC;;OAEG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAEpD,eAAO,MAAM,WAAW,+DAInB,gBAAgB,GAAG;IACpB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CACvB,6CAiJF,CAAC"}
1
+ {"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../src/collapsible/Collapsible.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,EAA0B,IAAI,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAa1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAU5E,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAC5C,YAAY,GAAG;IACb;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC;;OAEG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;IACpD,kEAAkE;IAClE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,WAAW,+DAInB,gBAAgB,GAAG;IACpB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CACvB,6CAuJF,CAAC"}
@@ -1,10 +1,19 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type View, type ViewStyle } from 'react-native';
3
3
  import { type ControlBaseProps } from './Control';
4
+ /** Semantic color variants for Switch, matching the semantics used by other control components. */
5
+ export type SwitchVariant = 'primary' | 'positive' | 'negative';
4
6
  export type SwitchBaseProps<SwitchValue extends string> = Omit<
5
7
  ControlBaseProps<SwitchValue>,
6
8
  'controlSize' | 'dotSize'
7
- >;
9
+ > & {
10
+ /**
11
+ * Semantic color variant applied to the track when checked. The `background` prop always
12
+ * takes priority over the background set by the variant, as does any custom `style`/`styles.control`.
13
+ * @default primary
14
+ */
15
+ variant?: SwitchVariant;
16
+ };
8
17
  export type SwitchProps<SwitchValue extends string> = SwitchBaseProps<SwitchValue> & {
9
18
  /**
10
19
  * Label content rendered next to the switch control.
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../src/controls/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,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;AA+HF,eAAO,MAAM,MAAM,8BAzC0B,WAAW,SAAS,MAAM,sBAGpE,WAAW,CAAC,WAAW,CAAC,GAAG;IAC5B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CACvB,8CAoCwC,CAAC"}
1
+ {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../src/controls/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAAc,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAQrF,OAAO,EAAW,KAAK,gBAAgB,EAAyB,MAAM,WAAW,CAAC;AAKlF,mGAAmG;AACnG,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAShE,MAAM,MAAM,eAAe,CAAC,WAAW,SAAS,MAAM,IAAI,IAAI,CAC5D,gBAAgB,CAAC,WAAW,CAAC,EAC7B,aAAa,GAAG,SAAS,CAC1B,GAAG;IACF;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,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;AAgJF,eAAO,MAAM,MAAM,8BAzD0B,WAAW,SAAS,MAAM,sBAGpE,WAAW,CAAC,WAAW,CAAC,GAAG;IAC5B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CACvB,8CAoDwC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { AccordionBaseProps } from '../accordion/Accordion';
2
+ import type { AccordionItemBaseProps } from '../accordion/AccordionItem';
2
3
  import type { ComboboxBaseProps } from '../alpha/combobox/Combobox';
3
4
  import type { SelectBaseProps } from '../alpha/select/types';
4
5
  import type { SelectChipBaseProps } from '../alpha/select-chip/SelectChip';
@@ -88,6 +89,7 @@ export type ConfigResolver<P> = Partial<P> | ((props: P) => Partial<P>);
88
89
  */
89
90
  export type ComponentConfig = {
90
91
  Accordion?: ConfigResolver<AccordionBaseProps>;
92
+ AccordionItem?: ConfigResolver<AccordionItemBaseProps>;
91
93
  Alert?: ConfigResolver<AlertBaseProps>;
92
94
  TabbedChips?: ConfigResolver<TabbedChipsBaseProps>;
93
95
  Avatar?: ConfigResolver<AvatarBaseProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"componentConfig.d.ts","sourceRoot":"","sources":["../../src/core/componentConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"componentConfig.d.ts","sourceRoot":"","sources":["../../src/core/componentConfig.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,15 @@ import { type TabsBaseProps, type TabsProps } from './Tabs';
4
4
  export type SegmentedTabsBaseProps<TabId extends string = string> = Partial<
5
5
  Pick<TabsBaseProps<TabId>, 'TabComponent' | 'TabsActiveIndicatorComponent'>
6
6
  > &
7
- Omit<TabsBaseProps<TabId>, 'TabComponent' | 'TabsActiveIndicatorComponent' | 'styles'>;
7
+ Omit<TabsBaseProps<TabId>, 'TabComponent' | 'TabsActiveIndicatorComponent' | 'styles'> & {
8
+ /**
9
+ * When true, each tab stretches to an equal share of the component width and the component
10
+ * fills its parent. This is the correct way to achieve distributed tab layout — do NOT use
11
+ * `justifyContent` for this, as it breaks the active indicator position calculation.
12
+ * @default false
13
+ */
14
+ equalWidth?: boolean;
15
+ };
8
16
  export type SegmentedTabsProps<TabId extends string = string> = SegmentedTabsBaseProps<TabId> &
9
17
  Partial<Pick<TabsProps<TabId>, 'TabComponent' | 'TabsActiveIndicatorComponent'>> &
10
18
  Omit<TabsProps<TabId>, 'TabComponent' | 'TabsActiveIndicatorComponent' | 'styles'> & {
@@ -12,7 +20,7 @@ export type SegmentedTabsProps<TabId extends string = string> = SegmentedTabsBas
12
20
  styles?: {
13
21
  /** Root container element */
14
22
  root?: StyleProp<ViewStyle>;
15
- /** Container element wrapping each tab */
23
+ /** Wrapper View around each tab — use `{ flex: 1 }` for equal-width distribution */
16
24
  tabContainer?: StyleProp<ViewStyle>;
17
25
  /** Tab element */
18
26
  tab?: StyleProp<ViewStyle>;
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedTabs.d.ts","sourceRoot":"","sources":["../../src/tabs/SegmentedTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM/D,OAAO,EAAQ,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAKlE,MAAM,MAAM,sBAAsB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,OAAO,CACzE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,8BAA8B,CAAC,CAC5E,GACC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,8BAA8B,GAAG,QAAQ,CAAC,CAAC;AAEzF,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,sBAAsB,CAAC,KAAK,CAAC,GAC3F,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,8BAA8B,CAAC,CAAC,GAChF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,8BAA8B,GAAG,QAAQ,CAAC,GAAG;IACnF,2EAA2E;IAC3E,MAAM,CAAC,EAAE;QACP,6BAA6B;QAC7B,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,0CAA0C;QAC1C,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,kBAAkB;QAClB,GAAG,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3B,+BAA+B;QAC/B,eAAe,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KACxC,CAAC;CACH,CAAC;AAEJ,KAAK,eAAe,GAAG,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EACnD,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;CAAE,KAClE,KAAK,CAAC,YAAY,CAAC;AAkCxB,eAAO,MAAM,aAAa,EAA6B,eAAe,CAAC"}
1
+ {"version":3,"file":"SegmentedTabs.d.ts","sourceRoot":"","sources":["../../src/tabs/SegmentedTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM/D,OAAO,EAAQ,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAQlE,MAAM,MAAM,sBAAsB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,OAAO,CACzE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,8BAA8B,CAAC,CAC5E,GACC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,8BAA8B,GAAG,QAAQ,CAAC,GAAG;IACvF;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEJ,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,sBAAsB,CAAC,KAAK,CAAC,GAC3F,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,8BAA8B,CAAC,CAAC,GAChF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,8BAA8B,GAAG,QAAQ,CAAC,GAAG;IACnF,2EAA2E;IAC3E,MAAM,CAAC,EAAE;QACP,6BAA6B;QAC7B,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,oFAAoF;QACpF,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,kBAAkB;QAClB,GAAG,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3B,+BAA+B;QAC/B,eAAe,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KACxC,CAAC;CACH,CAAC;AAEJ,KAAK,eAAe,GAAG,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EACnD,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;CAAE,KAClE,KAAK,CAAC,YAAY,CAAC;AAiDxB,eAAO,MAAM,aAAa,EAA6B,eAAe,CAAC"}
@@ -14,7 +14,9 @@ export const Accordion = /*#__PURE__*/memo(_props => {
14
14
  onChange,
15
15
  setActiveKey,
16
16
  testID,
17
- style
17
+ style,
18
+ borderRadius,
19
+ showItemSeparators = true
18
20
  } = mergedProps;
19
21
  return /*#__PURE__*/_jsx(AccordionProvider, {
20
22
  activeKey: activeKey,
@@ -22,10 +24,12 @@ export const Accordion = /*#__PURE__*/memo(_props => {
22
24
  onChange: onChange,
23
25
  setActiveKey: setActiveKey,
24
26
  children: /*#__PURE__*/_jsx(VStack, {
27
+ borderRadius: borderRadius,
28
+ overflow: borderRadius !== undefined ? 'hidden' : undefined,
25
29
  style: style,
26
30
  testID: testID,
27
31
  width: "100%",
28
- children: join(Children.toArray(children), /*#__PURE__*/_jsx(Divider, {}))
32
+ children: showItemSeparators ? join(Children.toArray(children), /*#__PURE__*/_jsx(Divider, {})) : children
29
33
  })
30
34
  });
31
35
  });
@@ -1,5 +1,5 @@
1
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); }
2
- import React, { memo, useCallback } from 'react';
2
+ import React, { memo, useCallback, useMemo } from 'react';
3
3
  import { useAccordionContext } from '@coinbase/cds-common/accordion/AccordionProvider';
4
4
  import { accordionIconHiddenRotate, accordionIconVisibleRotate } from '@coinbase/cds-common/animation/accordion';
5
5
  import { listHeight } from '@coinbase/cds-common/tokens/cell';
@@ -11,20 +11,28 @@ import { AnimatedCaret } from '../motion/AnimatedCaret';
11
11
  import { Pressable } from '../system/Pressable';
12
12
  import { Text } from '../typography/Text';
13
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
- export const AccordionMedia = /*#__PURE__*/memo(_ref => {
14
+ const compactPaddingProps = paddingProps => {
15
+ const entries = Object.entries(paddingProps).filter(_ref => {
16
+ let [, value] = _ref;
17
+ return value !== undefined;
18
+ });
19
+ if (entries.length === 0) return undefined;
20
+ return Object.fromEntries(entries);
21
+ };
22
+ export const AccordionMedia = /*#__PURE__*/memo(_ref2 => {
15
23
  let {
16
24
  media
17
- } = _ref;
25
+ } = _ref2;
18
26
  return /*#__PURE__*/_jsx(Box, {
19
27
  children: media
20
28
  });
21
29
  });
22
- export const AccordionTitle = /*#__PURE__*/memo(_ref2 => {
30
+ export const AccordionTitle = /*#__PURE__*/memo(_ref3 => {
23
31
  let {
24
32
  title,
25
33
  subtitle,
26
34
  tertiaryTitle
27
- } = _ref2;
35
+ } = _ref3;
28
36
  return /*#__PURE__*/_jsx(Box, {
29
37
  flexGrow: 1,
30
38
  flexShrink: 1,
@@ -45,14 +53,16 @@ export const AccordionTitle = /*#__PURE__*/memo(_ref2 => {
45
53
  })
46
54
  });
47
55
  });
48
- export const AccordionIcon = /*#__PURE__*/memo(_ref3 => {
56
+ export const AccordionIcon = /*#__PURE__*/memo(_ref4 => {
49
57
  let {
50
- collapsed
51
- } = _ref3;
58
+ collapsed,
59
+ caretSize = 's'
60
+ } = _ref4;
52
61
  return /*#__PURE__*/_jsx(Box, {
53
62
  justifyContent: "flex-end",
54
63
  children: /*#__PURE__*/_jsx(AnimatedCaret, {
55
- rotate: collapsed ? accordionIconHiddenRotate : accordionIconVisibleRotate
64
+ rotate: collapsed ? accordionIconHiddenRotate : accordionIconVisibleRotate,
65
+ size: caretSize
56
66
  })
57
67
  });
58
68
  });
@@ -60,7 +70,7 @@ export const AccordionIcon = /*#__PURE__*/memo(_ref3 => {
60
70
  * Renders a Pressable element to use as the header to an AccordionItem.
61
71
  * Composes an Accordion Media, Title, and Icon.
62
72
  */
63
- export const AccordionHeader = /*#__PURE__*/memo(_ref4 => {
73
+ export const AccordionHeader = /*#__PURE__*/memo(_ref5 => {
64
74
  let {
65
75
  ref: forwardedRef,
66
76
  itemKey,
@@ -70,13 +80,35 @@ export const AccordionHeader = /*#__PURE__*/memo(_ref4 => {
70
80
  onPress,
71
81
  media,
72
82
  collapsed,
73
- testID
74
- } = _ref4;
83
+ testID,
84
+ style,
85
+ background = 'bg',
86
+ caretSize,
87
+ padding,
88
+ paddingX,
89
+ paddingY,
90
+ paddingTop,
91
+ paddingBottom,
92
+ paddingStart,
93
+ paddingEnd
94
+ } = _ref5;
75
95
  const {
76
96
  setActiveKey,
77
97
  activeKey
78
98
  } = useAccordionContext();
79
- const spacing = useCellSpacing();
99
+ const outerSpacing = useMemo(() => compactPaddingProps({
100
+ padding,
101
+ paddingX,
102
+ paddingY,
103
+ paddingTop,
104
+ paddingBottom,
105
+ paddingStart,
106
+ paddingEnd
107
+ }), [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingStart, paddingEnd]);
108
+ // Header padding follows the same outer spacing rules as Cell.
109
+ const spacing = useCellSpacing({
110
+ outerSpacing
111
+ });
80
112
  const accessibilityLabel = [title, subtitle, tertiaryTitle].filter(Boolean).join(', ');
81
113
  const handlePress = useCallback(() => {
82
114
  onPress == null || onPress(itemKey);
@@ -85,15 +117,16 @@ export const AccordionHeader = /*#__PURE__*/memo(_ref4 => {
85
117
  return /*#__PURE__*/_jsx(Pressable, {
86
118
  ref: forwardedRef,
87
119
  noScaleOnPress: true,
88
- transparentWhileInactive: true,
89
120
  accessibilityLabel: accessibilityLabel,
90
121
  accessibilityRole: "togglebutton",
91
122
  accessibilityState: {
92
123
  expanded: !collapsed
93
124
  },
94
- background: "bg",
125
+ background: background,
95
126
  onPress: handlePress,
127
+ style: style,
96
128
  testID: testID,
129
+ transparentWhileInactive: true,
97
130
  children: /*#__PURE__*/_jsxs(HStack, _extends({
98
131
  alignItems: "center",
99
132
  gap: 2,
@@ -107,6 +140,7 @@ export const AccordionHeader = /*#__PURE__*/memo(_ref4 => {
107
140
  tertiaryTitle: tertiaryTitle,
108
141
  title: title
109
142
  }), /*#__PURE__*/_jsx(AccordionIcon, {
143
+ caretSize: caretSize,
110
144
  collapsed: collapsed
111
145
  })]
112
146
  }))
@@ -1,6 +1,8 @@
1
1
  import React, { memo } from 'react';
2
2
  import { useAccordionContext } from '@coinbase/cds-common/accordion/AccordionProvider';
3
3
  import { accordionMinWidth } from '@coinbase/cds-common/tokens/accordion';
4
+ import { useComponentConfig } from '../hooks/useComponentConfig';
5
+ import { Divider } from '../layout/Divider';
4
6
  import { VStack } from '../layout/VStack';
5
7
  import { AccordionHeader } from './AccordionHeader';
6
8
  import { AccordionPanel } from './AccordionPanel';
@@ -10,8 +12,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
12
  * It composes together an AccordionHeader and a collapsible AccordionPanel.
11
13
  * Accepts a unique `itemKey` prop to uniquely identify one item from another within the same Accordion.
12
14
  */
13
- export const AccordionItem = /*#__PURE__*/memo(_ref => {
14
- let {
15
+ export const AccordionItem = /*#__PURE__*/memo(_props => {
16
+ const mergedProps = useComponentConfig('AccordionItem', _props);
17
+ const {
15
18
  itemKey,
16
19
  title,
17
20
  subtitle,
@@ -22,30 +25,61 @@ export const AccordionItem = /*#__PURE__*/memo(_ref => {
22
25
  testID,
23
26
  headerRef,
24
27
  panelRef,
25
- style
26
- } = _ref;
28
+ style,
29
+ styles,
30
+ showHeaderBorder = false,
31
+ background,
32
+ caretSize,
33
+ borderRadius,
34
+ padding,
35
+ paddingX,
36
+ paddingY,
37
+ paddingTop,
38
+ paddingBottom,
39
+ paddingStart,
40
+ paddingEnd
41
+ } = mergedProps;
27
42
  const {
28
43
  activeKey
29
44
  } = useAccordionContext();
30
45
  const collapsed = activeKey !== itemKey;
31
46
  return /*#__PURE__*/_jsxs(VStack, {
47
+ borderRadius: borderRadius,
32
48
  minWidth: accordionMinWidth,
33
- style: style,
49
+ overflow: borderRadius !== undefined ? 'hidden' : undefined,
50
+ style: [style, styles == null ? void 0 : styles.root],
34
51
  testID: testID,
52
+ width: "100%",
35
53
  children: [/*#__PURE__*/_jsx(AccordionHeader, {
36
54
  ref: headerRef,
55
+ background: background,
56
+ caretSize: caretSize,
37
57
  collapsed: collapsed,
38
58
  itemKey: itemKey,
39
59
  media: media,
40
60
  onPress: onPress,
61
+ padding: padding,
62
+ paddingBottom: paddingBottom,
63
+ paddingEnd: paddingEnd,
64
+ paddingStart: paddingStart,
65
+ paddingTop: paddingTop,
66
+ paddingX: paddingX,
67
+ paddingY: paddingY,
68
+ style: styles == null ? void 0 : styles.header,
41
69
  subtitle: subtitle,
42
70
  tertiaryTitle: tertiaryTitle,
43
71
  testID: testID && testID + "-header",
44
72
  title: title
45
- }), /*#__PURE__*/_jsx(AccordionPanel, {
73
+ }), showHeaderBorder ? /*#__PURE__*/_jsx(Divider, {
74
+ paddingEnd: paddingEnd,
75
+ paddingStart: paddingStart,
76
+ paddingX: paddingX,
77
+ testID: testID && testID + "-divider"
78
+ }) : null, /*#__PURE__*/_jsx(AccordionPanel, {
46
79
  ref: panelRef,
47
80
  collapsed: collapsed,
48
81
  itemKey: itemKey,
82
+ style: styles == null ? void 0 : styles.panel,
49
83
  testID: testID && testID + "-panel",
50
84
  children: children
51
85
  })]
@@ -13,12 +13,14 @@ export const AccordionPanel = /*#__PURE__*/memo(_ref => {
13
13
  ref: forwardedRef,
14
14
  children,
15
15
  collapsed = true,
16
- testID
16
+ testID,
17
+ style
17
18
  } = _ref;
18
19
  return /*#__PURE__*/_jsx(Collapsible, _extends({
19
20
  ref: forwardedRef,
20
21
  collapsed: collapsed,
21
22
  maxHeight: accordionVisibleMaxHeight,
23
+ style: style,
22
24
  testID: testID
23
25
  }, accordionSpacing, {
24
26
  children: children
@@ -34,7 +34,8 @@ export const Collapsible = /*#__PURE__*/memo(_ref => {
34
34
  paddingEnd,
35
35
  paddingBottom,
36
36
  paddingStart,
37
- scrollViewProps
37
+ scrollViewProps,
38
+ style
38
39
  } = mergedProps;
39
40
  const theme = useTheme();
40
41
  // TO DO: Remove this after refactoring useContentSize to default values to null on initial render
@@ -112,10 +113,11 @@ export const Collapsible = /*#__PURE__*/memo(_ref => {
112
113
  }));
113
114
  const animatedContainerStyles = useMemo(() => [styles.container, animatedStyles, animatedInMaxSize], [animatedStyles, animatedInMaxSize]);
114
115
  const containerStyles = isUnmountedExpanded ? styles.container : animatedContainerStyles;
116
+ const mergedContainerStyles = useMemo(() => style ? [containerStyles, style] : containerStyles, [containerStyles, style]);
115
117
  return /*#__PURE__*/_jsx(ReanimatedView, {
116
118
  ref: forwardedRef,
117
119
  "aria-expanded": !collapsed,
118
- style: containerStyles,
120
+ style: mergedContainerStyles,
119
121
  testID: testID,
120
122
  children: /*#__PURE__*/_jsx(ScrollView, _extends({
121
123
  nestedScrollEnabled: true // for Android
@@ -1,5 +1,5 @@
1
1
  const _excluded = ["ref"],
2
- _excluded2 = ["children", "style", "styles"];
2
+ _excluded2 = ["children", "style", "styles", "variant", "background", "checked"];
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
4
  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; }
5
5
  import React, { memo, useMemo } from 'react';
@@ -9,14 +9,26 @@ import { useTheme } from '../hooks/useTheme';
9
9
  import { Box } from '../layout/Box';
10
10
  import { Interactable } from '../system/Interactable';
11
11
  import { Control } from './Control';
12
+
13
+ /** Border width of the switch head/handle, kept as a hairline regardless of theme. */
12
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
+ const switchThumbBorderWidth = 0.5;
16
+
17
+ /** Semantic color variants for Switch, matching the semantics used by other control components. */
18
+
19
+ /** Track background color applied when Switch is checked, keyed by `variant`. */
20
+ const switchVariantBackground = {
21
+ primary: 'bgPrimary',
22
+ positive: 'bgPositive',
23
+ negative: 'bgNegative'
24
+ };
13
25
  const SwitchIcon = _ref => {
14
26
  let {
15
27
  pressed,
16
28
  checked,
17
29
  disabled,
18
30
  controlColor,
19
- background = checked ? 'bgPrimary' : 'bgTertiary',
31
+ background = 'bgTertiary',
20
32
  borderColor,
21
33
  borderRadius = 1000,
22
34
  borderWidth = 0,
@@ -45,7 +57,8 @@ const SwitchIcon = _ref => {
45
57
  height: switchThumbSize,
46
58
  position: 'absolute',
47
59
  top: thumbInset - borderSize,
48
- left: thumbInset - borderSize
60
+ left: thumbInset - borderSize,
61
+ borderWidth: switchThumbBorderWidth
49
62
  }, {
50
63
  transform: [{
51
64
  translateX: animatedScaleValue.interpolate({
@@ -85,7 +98,10 @@ const SwitchWithRef = function SwitchWithRef(_ref2) {
85
98
  const {
86
99
  children,
87
100
  style,
88
- styles
101
+ styles,
102
+ variant = 'primary',
103
+ background,
104
+ checked
89
105
  } = mergedProps,
90
106
  props = _objectWithoutPropertiesLoose(mergedProps, _excluded2);
91
107
  const theme = useTheme();
@@ -93,11 +109,16 @@ const SwitchWithRef = function SwitchWithRef(_ref2) {
93
109
  switchHeight
94
110
  } = theme.controlSize;
95
111
  const controlStyles = useMemo(() => StyleSheet.flatten([style, styles == null ? void 0 : styles.control]), [style, styles == null ? void 0 : styles.control]);
112
+ // The variant only informs the track color while checked; the background prop is more
113
+ // specific and always wins when provided.
114
+ const resolvedBackground = useMemo(() => background != null ? background : checked ? switchVariantBackground[variant] : undefined, [background, checked, variant]);
96
115
  const switchNode = /*#__PURE__*/_jsx(Control, _extends({
97
116
  ref: ref,
98
117
  accessible: true,
99
118
  shouldUseSwitchTransition: true,
100
119
  accessibilityRole: "switch",
120
+ background: resolvedBackground,
121
+ checked: checked,
101
122
  label: children,
102
123
  style: controlStyles
103
124
  }, props, {
@@ -1,7 +1,7 @@
1
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); }
2
2
  import React, { useState } from 'react';
3
3
  import { Example, ExampleScreen } from '../../examples/ExampleScreen';
4
- import { VStack } from '../../layout';
4
+ import { HStack, VStack } from '../../layout';
5
5
  import { ThemeProvider } from '../../system/ThemeProvider';
6
6
  import { defaultTheme } from '../../themes/defaultTheme';
7
7
  import { Switch } from '../Switch';
@@ -68,6 +68,31 @@ const SwitchScreen = () => {
68
68
  })]
69
69
  });
70
70
  }
71
+ }), /*#__PURE__*/_jsx(Example, {
72
+ inline: true,
73
+ title: "Variants",
74
+ children: /*#__PURE__*/_jsxs(HStack, {
75
+ flexWrap: "wrap",
76
+ gap: 2,
77
+ children: [/*#__PURE__*/_jsx(Switch, {
78
+ checked: true,
79
+ variant: "primary",
80
+ children: "Primary"
81
+ }), /*#__PURE__*/_jsx(Switch, {
82
+ checked: true,
83
+ variant: "positive",
84
+ children: "Positive"
85
+ }), /*#__PURE__*/_jsx(Switch, {
86
+ checked: true,
87
+ variant: "negative",
88
+ children: "Negative"
89
+ }), /*#__PURE__*/_jsx(Switch, {
90
+ checked: true,
91
+ background: "accentBoldPurple",
92
+ variant: "negative",
93
+ children: "Background override"
94
+ })]
95
+ })
71
96
  }), /*#__PURE__*/_jsx(Example, {
72
97
  inline: true,
73
98
  title: "Custom Theme",
@@ -1,16 +1,23 @@
1
1
  const _excluded = ["ref"],
2
- _excluded2 = ["TabComponent", "TabsActiveIndicatorComponent", "activeBackground", "background", "borderRadius"];
2
+ _excluded2 = ["TabComponent", "TabsActiveIndicatorComponent", "activeBackground", "background", "borderRadius", "equalWidth", "alignSelf", "styles"];
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
4
  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; }
5
- import React, { memo } from 'react';
5
+ import React, { memo, useMemo } from 'react';
6
6
  import { useComponentConfig } from '../hooks/useComponentConfig';
7
7
  import { SegmentedTab } from './SegmentedTab';
8
8
  import { SegmentedTabsActiveIndicator } from './SegmentedTabsActiveIndicator';
9
9
  import { Tabs } from './Tabs';
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ const equalWidthTabContainerStyle = {
12
+ flex: 1
13
+ };
14
+ const equalWidthTabStyle = {
15
+ alignSelf: 'stretch'
16
+ };
10
17
 
11
18
  // We do Partial/Pick to allow TabComponent and TabsActiveIndicatorComponent to be optional
12
19
  // We grab 'tabs' from the Omit allowing it to stay required
13
- import { jsx as _jsx } from "react/jsx-runtime";
20
+
14
21
  const SegmentedTabsComponent = /*#__PURE__*/memo(_ref => {
15
22
  let {
16
23
  ref
@@ -22,16 +29,28 @@ const SegmentedTabsComponent = /*#__PURE__*/memo(_ref => {
22
29
  TabsActiveIndicatorComponent = SegmentedTabsActiveIndicator,
23
30
  activeBackground = 'bgInverse',
24
31
  background = 'bgSecondary',
25
- borderRadius = 700
32
+ borderRadius = 700,
33
+ equalWidth,
34
+ alignSelf = equalWidth ? 'stretch' : undefined,
35
+ styles
26
36
  } = mergedProps,
27
37
  props = _objectWithoutPropertiesLoose(mergedProps, _excluded2);
38
+ const resolvedStyles = useMemo(() => {
39
+ if (!equalWidth) return styles;
40
+ return _extends({}, styles, {
41
+ tabContainer: [equalWidthTabContainerStyle, styles == null ? void 0 : styles.tabContainer],
42
+ tab: [equalWidthTabStyle, styles == null ? void 0 : styles.tab]
43
+ });
44
+ }, [equalWidth, styles]);
28
45
  return /*#__PURE__*/_jsx(Tabs, _extends({
29
46
  ref: ref,
30
47
  TabComponent: TabComponent,
31
48
  TabsActiveIndicatorComponent: TabsActiveIndicatorComponent,
32
49
  activeBackground: activeBackground,
50
+ alignSelf: alignSelf,
33
51
  background: background,
34
- borderRadius: borderRadius
52
+ borderRadius: borderRadius,
53
+ styles: resolvedStyles
35
54
  }, props));
36
55
  });
37
56
  SegmentedTabsComponent.displayName = 'SegmentedTabs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cds-mobile",
3
- "version": "9.14.0",
3
+ "version": "9.15.0",
4
4
  "description": "Coinbase Design System - Mobile",
5
5
  "repository": {
6
6
  "type": "git",
@@ -218,7 +218,7 @@
218
218
  "react-native-worklets": "0.5.2"
219
219
  },
220
220
  "dependencies": {
221
- "@coinbase/cds-common": "^9.14.0",
221
+ "@coinbase/cds-common": "^9.15.0",
222
222
  "@coinbase/cds-icons": "^5.21.0",
223
223
  "@coinbase/cds-illustrations": "^4.47.0",
224
224
  "@coinbase/cds-lottie-files": "^3.3.4",