@coinbase/cds-web 8.29.0 → 8.30.1
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 +14 -0
- package/dts/alpha/select-chip/SelectChip.d.ts +12 -6
- package/dts/alpha/select-chip/SelectChip.d.ts.map +1 -1
- package/dts/alpha/select-chip/SelectChipControl.d.ts +2 -1
- package/dts/alpha/select-chip/SelectChipControl.d.ts.map +1 -1
- package/dts/alpha/tabbed-chips/TabbedChips.d.ts +5 -0
- package/dts/alpha/tabbed-chips/TabbedChips.d.ts.map +1 -1
- package/dts/chips/ChipProps.d.ts +6 -6
- package/dts/chips/ChipProps.d.ts.map +1 -1
- package/dts/hooks/useHorizontalScrollToTarget.d.ts +3 -3
- package/dts/hooks/useHorizontalScrollToTarget.d.ts.map +1 -1
- package/dts/navigation/Sidebar.d.ts +42 -0
- package/dts/navigation/Sidebar.d.ts.map +1 -1
- package/esm/alpha/select-chip/SelectChip.js +27 -12
- package/esm/alpha/select-chip/SelectChipControl.js +6 -2
- package/esm/alpha/tabbed-chips/TabbedChips.js +4 -3
- package/esm/chips/TabbedChips.js +1 -1
- package/esm/hooks/useHorizontalScrollToTarget.js +6 -6
- package/esm/navigation/Sidebar.js +15 -3
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,20 @@ All notable changes to this project will be documented in this file.
|
|
|
8
8
|
|
|
9
9
|
<!-- template-start -->
|
|
10
10
|
|
|
11
|
+
## 8.30.1 (12/12/2025 PST)
|
|
12
|
+
|
|
13
|
+
#### 🐞 Fixes
|
|
14
|
+
|
|
15
|
+
- Add classNames and styles to sidebar. [[#239](https://github.com/coinbase/cds/pull/239)]
|
|
16
|
+
|
|
17
|
+
## 8.30.0 (12/12/2025 PST)
|
|
18
|
+
|
|
19
|
+
#### 🚀 Updates
|
|
20
|
+
|
|
21
|
+
- Add autoScrollOffset prop to TabbedChips alpha. [[#232](https://github.com/coinbase/cds/pull/232)]
|
|
22
|
+
- Add maxWidth prop to SelectChip alpha [[#232](https://github.com/coinbase/cds/pull/232)] [DX-5072]
|
|
23
|
+
- Add displayValue prop to SelectChip alpha [[#232](https://github.com/coinbase/cds/pull/232)]
|
|
24
|
+
|
|
11
25
|
## 8.29.0 (12/12/2025 PST)
|
|
12
26
|
|
|
13
27
|
#### 🚀 Updates
|
|
@@ -2,18 +2,24 @@ import React from 'react';
|
|
|
2
2
|
import type { ChipBaseProps } from '../../chips';
|
|
3
3
|
import { type SelectRef } from '../select/Select';
|
|
4
4
|
import type { SelectProps, SelectType } from '../select/types';
|
|
5
|
-
export type SelectChipBaseProps = Pick<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
export type SelectChipBaseProps = Pick<
|
|
6
|
+
ChipBaseProps,
|
|
7
|
+
'invertColorScheme' | 'numberOfLines' | 'maxWidth'
|
|
8
|
+
> & {
|
|
9
|
+
/**
|
|
10
|
+
* Override the displayed value in the chip control.
|
|
11
|
+
* Useful for avoiding truncation, especially in multi-select scenarios where multiple option labels might be too long to display.
|
|
12
|
+
* When provided, this value takes precedence over the default label generation.
|
|
13
|
+
*/
|
|
14
|
+
displayValue?: React.ReactNode;
|
|
15
|
+
};
|
|
10
16
|
export type SelectChipProps<
|
|
11
17
|
Type extends SelectType = 'single',
|
|
12
18
|
SelectOptionValue extends string = string,
|
|
13
19
|
> = SelectChipBaseProps &
|
|
14
20
|
Omit<
|
|
15
21
|
SelectProps<Type, SelectOptionValue>,
|
|
16
|
-
'SelectControlComponent' | 'helperText' | 'labelVariant' | 'variant'
|
|
22
|
+
'SelectControlComponent' | 'helperText' | 'labelVariant' | 'variant' | 'maxWidth'
|
|
17
23
|
>;
|
|
18
24
|
export declare const SelectChip: <
|
|
19
25
|
Type extends SelectType = 'single',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectChip.d.ts","sourceRoot":"","sources":["../../../src/alpha/select-chip/SelectChip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SelectChip.d.ts","sourceRoot":"","sources":["../../../src/alpha/select-chip/SelectChip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAsB,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAInF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,aAAa,EACb,mBAAmB,GAAG,eAAe,GAAG,UAAU,CACnD,GAAG;IACF;;;;OAIG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,CACzB,IAAI,SAAS,UAAU,GAAG,QAAQ,EAClC,iBAAiB,SAAS,MAAM,GAAG,MAAM,IACvC,mBAAmB,GACrB,IAAI,CACF,WAAW,CAAC,IAAI,EAAE,iBAAiB,CAAC,EACpC,wBAAwB,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,GAAG,UAAU,CAClF,CAAC;AAqFJ,eAAO,MAAM,UAAU,EAA0B,CAC/C,IAAI,SAAS,UAAU,GAAG,QAAQ,EAClC,iBAAiB,SAAS,MAAM,GAAG,MAAM,EAEzC,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,iBAAiB,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;CAAE,KAC7E,KAAK,CAAC,YAAY,CAAC"}
|
|
@@ -6,8 +6,9 @@ export declare const SelectChipControl: <
|
|
|
6
6
|
SelectOptionValue extends string = string,
|
|
7
7
|
>(
|
|
8
8
|
props: SelectControlProps<Type, SelectOptionValue> &
|
|
9
|
-
Pick<ChipBaseProps, 'invertColorScheme' | '
|
|
9
|
+
Pick<ChipBaseProps, 'invertColorScheme' | 'numberOfLines'> & {
|
|
10
10
|
ref?: React.Ref<HTMLElement>;
|
|
11
|
+
displayValue?: React.ReactNode;
|
|
11
12
|
},
|
|
12
13
|
) => React.ReactElement;
|
|
13
14
|
//# sourceMappingURL=SelectChipControl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectChipControl.d.ts","sourceRoot":"","sources":["../../../src/alpha/select-chip/SelectChipControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,KAAK,aAAa,EAAa,MAAM,aAAa,CAAC;AAG5D,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"SelectChipControl.d.ts","sourceRoot":"","sources":["../../../src/alpha/select-chip/SelectChipControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,KAAK,aAAa,EAAa,MAAM,aAAa,CAAC;AAG5D,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAiKzB,eAAO,MAAM,iBAAiB,EAAiC,CAC7D,IAAI,SAAS,UAAU,EACvB,iBAAiB,SAAS,MAAM,GAAG,MAAM,EAEzC,KAAK,EAAE,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC,GAChD,IAAI,CAAC,aAAa,EAAE,mBAAmB,GAAG,eAAe,CAAC,GAAG;IAC3D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC,KACA,KAAK,CAAC,YAAY,CAAC"}
|
|
@@ -24,6 +24,11 @@ export type TabbedChipsBaseProps<T extends string = string> = Omit<
|
|
|
24
24
|
* @default false
|
|
25
25
|
*/
|
|
26
26
|
compact?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* X position offset when auto-scrolling to active tab (to avoid active tab being covered by the paddle on the left side, default: 50px)
|
|
29
|
+
* @default 50
|
|
30
|
+
*/
|
|
31
|
+
autoScrollOffset?: number;
|
|
27
32
|
};
|
|
28
33
|
export type TabbedChipsProps<T extends string = string> = TabbedChipsBaseProps<T> &
|
|
29
34
|
SharedProps &
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabbedChips.d.ts","sourceRoot":"","sources":["../../../src/alpha/tabbed-chips/TabbedChips.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8E,MAAM,OAAO,CAAC;AACnG,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIvD,OAAO,EAAU,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAmDpB,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC,GAC9F,QAAQ,CAAC,CAAC,CAAC,GAAG;IACZ,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC;AAEJ,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAChE,aAAa,CAAC,CAAC,CAAC,EACd,cAAc,GACd,8BAA8B,GAC9B,MAAM,GACN,0BAA0B,GAC1B,kBAAkB,CACrB,GAAG;IACF,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,4BAA4B,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;IAC5E,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TabbedChips.d.ts","sourceRoot":"","sources":["../../../src/alpha/tabbed-chips/TabbedChips.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8E,MAAM,OAAO,CAAC;AACnG,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIvD,OAAO,EAAU,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAmDpB,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC,GAC9F,QAAQ,CAAC,CAAC,CAAC,GAAG;IACZ,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC;AAEJ,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAChE,aAAa,CAAC,CAAC,CAAC,EACd,cAAc,GACd,8BAA8B,GAC9B,MAAM,GACN,0BAA0B,GAC1B,kBAAkB,CACrB,GAAG;IACF,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,4BAA4B,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;IAC5E,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAC/E,WAAW,GACX,wBAAwB,GAAG;IACzB,UAAU,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IAC7B,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC;;;OAGG;IACH,GAAG,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/C;;;;OAIG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,CAAC,EAAE;QACP;;WAEG;QACH,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B;;WAEG;QACH,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QACtC;;WAEG;QACH,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC7B;;WAEG;QACH,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC5B,CAAC;IACF,UAAU,CAAC,EAAE;QACX;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEJ,KAAK,aAAa,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAC7C,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;CAAE,KACnE,KAAK,CAAC,YAAY,CAAC;AAwGxB,eAAO,MAAM,WAAW,EAA2B,aAAa,CAAC"}
|
package/dts/chips/ChipProps.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import type { SharedAccessibilityProps, SharedProps } from '@coinbase/cds-common/types';
|
|
1
2
|
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from '
|
|
6
|
-
import type { PressableDefaultElement, PressableProps } from '../system/Pressable';
|
|
3
|
+
PressableBaseProps,
|
|
4
|
+
PressableDefaultElement,
|
|
5
|
+
PressableProps,
|
|
6
|
+
} from '../system/Pressable';
|
|
7
7
|
export type ChipBaseProps = SharedProps &
|
|
8
8
|
Omit<
|
|
9
9
|
PressableProps<PressableDefaultElement>,
|
|
@@ -27,7 +27,7 @@ export type ChipBaseProps = SharedProps &
|
|
|
27
27
|
* If text content overflows, it will get truncated with an ellipsis.
|
|
28
28
|
* @default 200
|
|
29
29
|
*/
|
|
30
|
-
maxWidth?:
|
|
30
|
+
maxWidth?: PressableBaseProps['maxWidth'];
|
|
31
31
|
/**
|
|
32
32
|
* Invert the foreground and background colors to emphasize the Chip.
|
|
33
33
|
* Depending on your theme, it may be dangerous to use this prop in conjunction with `transparentWhileInactive`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipProps.d.ts","sourceRoot":"","sources":["../../src/chips/ChipProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ChipProps.d.ts","sourceRoot":"","sources":["../../src/chips/ChipProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,wBAAwB,EACxB,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACf,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,aAAa,GAAG,WAAW,GACrC,IAAI,CACF,cAAc,CAAC,uBAAuB,CAAC,EACrC,UAAU,GACV,SAAS,GACT,OAAO,GACP,eAAe,GACf,mBAAmB,GACnB,yBAAyB,GACzB,UAAU,GACV,OAAO,CACV,GACD,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,GAAG;IACrD,iDAAiD;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,wCAAwC;IACxC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC1C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACnC,iDAAiD;IACjD,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC/B,CAAC;IACF,qCAAqC;IACrC,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEJ,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC;AAEtC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type UseHorizontalScrollToTargetOptions = {
|
|
2
2
|
scrollThrottleWaitTime?: number;
|
|
3
3
|
activeTarget?: HTMLElement | null;
|
|
4
|
-
|
|
4
|
+
autoScrollOffset?: number;
|
|
5
5
|
overflowThreshold?: number;
|
|
6
6
|
};
|
|
7
7
|
/**
|
|
@@ -11,13 +11,13 @@ export type UseHorizontalScrollToTargetOptions = {
|
|
|
11
11
|
*
|
|
12
12
|
* @param scrollThrottleWaitTime - Throttle time for scroll events (default: 200ms)
|
|
13
13
|
* @param activeTarget - The active element to scroll to when it's offscreen
|
|
14
|
-
* @param
|
|
14
|
+
* @param autoScrollOffset - X position offset when auto-scrolling to active target
|
|
15
15
|
* @param overflowThreshold - Threshold for detecting if content is offscreen (default: 5px)
|
|
16
16
|
*/
|
|
17
17
|
export declare const useHorizontalScrollToTarget: ({
|
|
18
18
|
scrollThrottleWaitTime,
|
|
19
19
|
activeTarget,
|
|
20
|
-
|
|
20
|
+
autoScrollOffset,
|
|
21
21
|
overflowThreshold,
|
|
22
22
|
}?: UseHorizontalScrollToTargetOptions) => {
|
|
23
23
|
scrollRef: import('react').RefObject<HTMLDivElement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHorizontalScrollToTarget.d.ts","sourceRoot":"","sources":["../../src/hooks/useHorizontalScrollToTarget.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kCAAkC,GAAG;IAC/C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,
|
|
1
|
+
{"version":3,"file":"useHorizontalScrollToTarget.d.ts","sourceRoot":"","sources":["../../src/hooks/useHorizontalScrollToTarget.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kCAAkC,GAAG;IAC/C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,GAAI,iFAKzC,kCAAuC;;;;;CAkEzC,CAAC"}
|
|
@@ -30,6 +30,48 @@ export type SidebarBaseProps = BoxBaseProps & {
|
|
|
30
30
|
*/
|
|
31
31
|
renderEnd?: (isCollapsed: boolean) => React.ReactNode;
|
|
32
32
|
variant?: 'default' | 'condensed';
|
|
33
|
+
/**
|
|
34
|
+
* Custom class names for the sidebar components.
|
|
35
|
+
*/
|
|
36
|
+
classNames?: {
|
|
37
|
+
/**
|
|
38
|
+
* Custom class name for the root sidebar container.
|
|
39
|
+
*/
|
|
40
|
+
root?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Custom class name for the logo container.
|
|
43
|
+
*/
|
|
44
|
+
logo?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Custom class name for the content container (children list).
|
|
47
|
+
*/
|
|
48
|
+
content?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Custom class name for the end container (renderEnd).
|
|
51
|
+
*/
|
|
52
|
+
end?: string;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Custom styles for the sidebar components.
|
|
56
|
+
*/
|
|
57
|
+
styles?: {
|
|
58
|
+
/**
|
|
59
|
+
* Custom style for the root sidebar container.
|
|
60
|
+
*/
|
|
61
|
+
root?: React.CSSProperties;
|
|
62
|
+
/**
|
|
63
|
+
* Custom style for the logo container.
|
|
64
|
+
*/
|
|
65
|
+
logo?: React.CSSProperties;
|
|
66
|
+
/**
|
|
67
|
+
* Custom style for the content container (children list).
|
|
68
|
+
*/
|
|
69
|
+
content?: React.CSSProperties;
|
|
70
|
+
/**
|
|
71
|
+
* Custom style for the end container (renderEnd).
|
|
72
|
+
*/
|
|
73
|
+
end?: React.CSSProperties;
|
|
74
|
+
};
|
|
33
75
|
};
|
|
34
76
|
export type SidebarProps = SidebarBaseProps & Omit<BoxProps<SidebarDefaultElement>, 'children'>;
|
|
35
77
|
export declare const Sidebar: React.FC<SidebarProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../src/navigation/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../src/navigation/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAMvD,OAAO,EAAO,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAU,MAAM,WAAW,CAAC;AAK1E,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AAgCjE,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC5C;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IACxE;;;OAGG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IACtD,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IAClC;;OAEG;IACH,UAAU,CAAC,EAAE;QACX;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB;;WAEG;QACH,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF;;OAEG;IACH,MAAM,CAAC,EAAE;QACP;;WAEG;QACH,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B;;WAEG;QACH,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B;;WAEG;QACH,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC9B;;WAEG;QACH,GAAG,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC3B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,UAAU,CAAC,CAAC;AAEhG,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAkH1C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["invertColorScheme", "numberOfLines"];
|
|
1
|
+
const _excluded = ["invertColorScheme", "numberOfLines", "maxWidth", "displayValue"];
|
|
2
2
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
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
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -9,33 +9,48 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
9
9
|
import React, { forwardRef, memo, useMemo } from 'react';
|
|
10
10
|
import { Select } from '../select/Select';
|
|
11
11
|
import { SelectChipControl } from './SelectChipControl';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Chip-styled Select control built on top of the Alpha Select.
|
|
15
|
-
* Supports both single and multi selection via Select's `type` prop.
|
|
16
|
-
*/
|
|
17
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
13
|
/**
|
|
19
14
|
* Creates a wrapper component that injects invertColorScheme and numberOfLines
|
|
20
15
|
* into SelectChipControl. This is needed because Select doesn't pass these props
|
|
21
16
|
* to SelectControlComponent, but SelectChipControl requires them.
|
|
22
17
|
*/
|
|
23
|
-
function createSelectChipControlWrapper(
|
|
18
|
+
function createSelectChipControlWrapper(_ref) {
|
|
19
|
+
let {
|
|
20
|
+
invertColorScheme,
|
|
21
|
+
numberOfLines,
|
|
22
|
+
maxWidth,
|
|
23
|
+
displayValue
|
|
24
|
+
} = _ref;
|
|
24
25
|
return /*#__PURE__*/memo(/*#__PURE__*/forwardRef((controlProps, controlRef) => {
|
|
25
26
|
return /*#__PURE__*/_jsx(SelectChipControl, _objectSpread(_objectSpread({}, controlProps), {}, {
|
|
26
27
|
ref: controlRef,
|
|
28
|
+
displayValue: displayValue,
|
|
27
29
|
invertColorScheme: invertColorScheme,
|
|
30
|
+
maxWidth: maxWidth,
|
|
28
31
|
numberOfLines: numberOfLines
|
|
29
32
|
}));
|
|
30
33
|
}));
|
|
31
34
|
}
|
|
32
|
-
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Chip-styled Select control built on top of the Alpha Select.
|
|
38
|
+
* Supports both single and multi selection via Select's `type` prop.
|
|
39
|
+
*/
|
|
40
|
+
const SelectChipComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
33
41
|
let {
|
|
34
42
|
invertColorScheme,
|
|
35
|
-
numberOfLines
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
numberOfLines,
|
|
44
|
+
maxWidth,
|
|
45
|
+
displayValue
|
|
46
|
+
} = _ref2,
|
|
47
|
+
props = _objectWithoutProperties(_ref2, _excluded);
|
|
48
|
+
const WrappedSelectChipControl = useMemo(() => createSelectChipControlWrapper({
|
|
49
|
+
invertColorScheme,
|
|
50
|
+
numberOfLines,
|
|
51
|
+
maxWidth,
|
|
52
|
+
displayValue
|
|
53
|
+
}), [displayValue, invertColorScheme, numberOfLines, maxWidth]);
|
|
39
54
|
return /*#__PURE__*/_jsx(Select, _objectSpread({
|
|
40
55
|
ref: ref,
|
|
41
56
|
SelectControlComponent: WrappedSelectChipControl,
|
|
@@ -23,7 +23,9 @@ const SelectChipControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_r
|
|
|
23
23
|
compact,
|
|
24
24
|
invertColorScheme,
|
|
25
25
|
numberOfLines,
|
|
26
|
-
disabled
|
|
26
|
+
disabled,
|
|
27
|
+
maxWidth,
|
|
28
|
+
displayValue
|
|
27
29
|
} = _ref;
|
|
28
30
|
const isMultiSelect = type === 'multi';
|
|
29
31
|
const hasValue = value !== null && !(Array.isArray(value) && value.length === 0);
|
|
@@ -66,6 +68,7 @@ const SelectChipControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_r
|
|
|
66
68
|
const labelContent = useMemo(() => {
|
|
67
69
|
var _ref3, _ref6, _ref7, _ref8, _opt$label2;
|
|
68
70
|
if (!hasValue) return (_ref3 = label !== null && label !== void 0 ? label : placeholder) !== null && _ref3 !== void 0 ? _ref3 : null;
|
|
71
|
+
if (displayValue) return displayValue;
|
|
69
72
|
if (isMultiSelect) {
|
|
70
73
|
const values = value;
|
|
71
74
|
const visible = values.slice(0, maxSelectedOptionsToShow);
|
|
@@ -79,7 +82,7 @@ const SelectChipControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_r
|
|
|
79
82
|
}
|
|
80
83
|
const opt = optionsMap.get(value);
|
|
81
84
|
return (_ref6 = (_ref7 = (_ref8 = (_opt$label2 = opt === null || opt === void 0 ? void 0 : opt.label) !== null && _opt$label2 !== void 0 ? _opt$label2 : opt === null || opt === void 0 ? void 0 : opt.description) !== null && _ref8 !== void 0 ? _ref8 : opt === null || opt === void 0 ? void 0 : opt.value) !== null && _ref7 !== void 0 ? _ref7 : placeholder) !== null && _ref6 !== void 0 ? _ref6 : null;
|
|
82
|
-
}, [hasValue, label, placeholder, isMultiSelect, optionsMap, value, maxSelectedOptionsToShow, hiddenSelectedOptionsLabel]);
|
|
85
|
+
}, [hasValue, label, placeholder, displayValue, isMultiSelect, optionsMap, value, maxSelectedOptionsToShow, hiddenSelectedOptionsLabel]);
|
|
83
86
|
const endNode = useMemo(() => {
|
|
84
87
|
return customEndNode !== null && customEndNode !== void 0 ? customEndNode : /*#__PURE__*/_jsx(AnimatedCaret, {
|
|
85
88
|
active: true,
|
|
@@ -106,6 +109,7 @@ const SelectChipControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_r
|
|
|
106
109
|
disabled: disabled,
|
|
107
110
|
end: endNode,
|
|
108
111
|
invertColorScheme: invertColorScheme,
|
|
112
|
+
maxWidth: maxWidth,
|
|
109
113
|
numberOfLines: numberOfLines,
|
|
110
114
|
onClick: () => setOpen(s => !s),
|
|
111
115
|
start: startNode,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const _excluded = ["label", "id"],
|
|
2
|
-
_excluded2 = ["tabs", "activeTab", "onChange", "TabComponent", "testID", "background", "gap", "previousArrowAccessibilityLabel", "nextArrowAccessibilityLabel", "width", "TabsActiveIndicatorComponent", "disabled", "compact", "styles", "classNames"];
|
|
2
|
+
_excluded2 = ["tabs", "activeTab", "onChange", "TabComponent", "testID", "background", "gap", "previousArrowAccessibilityLabel", "nextArrowAccessibilityLabel", "width", "TabsActiveIndicatorComponent", "disabled", "compact", "styles", "classNames", "autoScrollOffset"];
|
|
3
3
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
4
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
5
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -69,7 +69,8 @@ const TabbedChipsComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function
|
|
|
69
69
|
disabled,
|
|
70
70
|
compact,
|
|
71
71
|
styles,
|
|
72
|
-
classNames
|
|
72
|
+
classNames,
|
|
73
|
+
autoScrollOffset = 50
|
|
73
74
|
} = _ref2,
|
|
74
75
|
accessibilityProps = _objectWithoutProperties(_ref2, _excluded2);
|
|
75
76
|
const [scrollTarget, setScrollTarget] = useState(null);
|
|
@@ -80,7 +81,7 @@ const TabbedChipsComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function
|
|
|
80
81
|
handleScroll
|
|
81
82
|
} = useHorizontalScrollToTarget({
|
|
82
83
|
activeTarget: scrollTarget,
|
|
83
|
-
|
|
84
|
+
autoScrollOffset
|
|
84
85
|
});
|
|
85
86
|
const handleScrollLeft = useCallback(() => {
|
|
86
87
|
var _scrollRef$current;
|
package/esm/chips/TabbedChips.js
CHANGED
|
@@ -73,7 +73,7 @@ const TabbedChipsComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function
|
|
|
73
73
|
handleScroll
|
|
74
74
|
} = useHorizontalScrollToTarget({
|
|
75
75
|
activeTarget: scrollTarget,
|
|
76
|
-
|
|
76
|
+
autoScrollOffset: 50
|
|
77
77
|
});
|
|
78
78
|
const activeTab = useMemo(() => tabs.find(tab => tab.id === value), [tabs, value]);
|
|
79
79
|
const handleChange = useCallback(tabValue => {
|
|
@@ -7,14 +7,14 @@ import throttle from 'lodash/throttle';
|
|
|
7
7
|
*
|
|
8
8
|
* @param scrollThrottleWaitTime - Throttle time for scroll events (default: 200ms)
|
|
9
9
|
* @param activeTarget - The active element to scroll to when it's offscreen
|
|
10
|
-
* @param
|
|
10
|
+
* @param autoScrollOffset - X position offset when auto-scrolling to active target
|
|
11
11
|
* @param overflowThreshold - Threshold for detecting if content is offscreen (default: 5px)
|
|
12
12
|
*/
|
|
13
13
|
export const useHorizontalScrollToTarget = function () {
|
|
14
14
|
let {
|
|
15
15
|
scrollThrottleWaitTime = 200,
|
|
16
16
|
activeTarget,
|
|
17
|
-
|
|
17
|
+
autoScrollOffset = 0,
|
|
18
18
|
overflowThreshold = 5
|
|
19
19
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
20
20
|
const scrollRef = useRef(null);
|
|
@@ -56,16 +56,16 @@ export const useHorizontalScrollToTarget = function () {
|
|
|
56
56
|
const targetWidth = activeTarget.offsetWidth;
|
|
57
57
|
const scrollLeft = container.scrollLeft;
|
|
58
58
|
const containerWidth = container.clientWidth;
|
|
59
|
-
const isOffscreenLeft = targetX < scrollLeft +
|
|
60
|
-
const isOffscreenRight = targetX + targetWidth > scrollLeft + containerWidth -
|
|
59
|
+
const isOffscreenLeft = targetX < scrollLeft + autoScrollOffset;
|
|
60
|
+
const isOffscreenRight = targetX + targetWidth > scrollLeft + containerWidth - autoScrollOffset;
|
|
61
61
|
if (isOffscreenLeft || isOffscreenRight) {
|
|
62
|
-
const scrollToX = isOffscreenLeft ? Math.max(0, targetX -
|
|
62
|
+
const scrollToX = isOffscreenLeft ? Math.max(0, targetX - autoScrollOffset) : targetX - autoScrollOffset;
|
|
63
63
|
container.scrollTo({
|
|
64
64
|
left: scrollToX,
|
|
65
65
|
behavior: 'smooth'
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
-
}, [activeTarget,
|
|
68
|
+
}, [activeTarget, autoScrollOffset]);
|
|
69
69
|
return {
|
|
70
70
|
scrollRef,
|
|
71
71
|
isScrollContentOffscreenLeft,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["logo", "children", "collapsed", "autoCollapse", "testID", "renderEnd", "accessibilityLabel", "width", "variant"];
|
|
1
|
+
const _excluded = ["logo", "children", "collapsed", "autoCollapse", "testID", "renderEnd", "accessibilityLabel", "width", "variant", "className", "classNames", "style", "styles"];
|
|
2
2
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
4
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -8,6 +8,7 @@ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i
|
|
|
8
8
|
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; }
|
|
9
9
|
import React, { Children, memo, useMemo } from 'react';
|
|
10
10
|
import { zIndex } from '@coinbase/cds-common/tokens/zIndex';
|
|
11
|
+
import { cx } from '../cx';
|
|
11
12
|
import { useDimensions } from '../hooks/useDimensions';
|
|
12
13
|
import { Box, VStack } from '../layout';
|
|
13
14
|
import { breakpoints } from '../styles/media';
|
|
@@ -42,7 +43,11 @@ export const Sidebar = /*#__PURE__*/memo(_ref => {
|
|
|
42
43
|
renderEnd,
|
|
43
44
|
accessibilityLabel = 'Sidebar',
|
|
44
45
|
width,
|
|
45
|
-
variant = 'default'
|
|
46
|
+
variant = 'default',
|
|
47
|
+
className,
|
|
48
|
+
classNames,
|
|
49
|
+
style,
|
|
50
|
+
styles
|
|
46
51
|
} = _ref,
|
|
47
52
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
48
53
|
const {
|
|
@@ -83,6 +88,7 @@ export const Sidebar = /*#__PURE__*/memo(_ref => {
|
|
|
83
88
|
as: sidebarDefaultElement,
|
|
84
89
|
background: "bg",
|
|
85
90
|
bottom: "0",
|
|
91
|
+
className: cx(className, classNames === null || classNames === void 0 ? void 0 : classNames.root),
|
|
86
92
|
height: "100%",
|
|
87
93
|
justifyContent: "space-between",
|
|
88
94
|
left: "0",
|
|
@@ -90,6 +96,7 @@ export const Sidebar = /*#__PURE__*/memo(_ref => {
|
|
|
90
96
|
paddingX: variant === 'default' ? 2 : 1.5,
|
|
91
97
|
paddingY: 2,
|
|
92
98
|
position: "sticky",
|
|
99
|
+
style: _objectSpread(_objectSpread({}, style), styles === null || styles === void 0 ? void 0 : styles.root),
|
|
93
100
|
testID: testID,
|
|
94
101
|
top: "0",
|
|
95
102
|
width: width !== null && width !== void 0 ? width : computedWidth,
|
|
@@ -97,18 +104,23 @@ export const Sidebar = /*#__PURE__*/memo(_ref => {
|
|
|
97
104
|
}, props), {}, {
|
|
98
105
|
children: [/*#__PURE__*/_jsxs(VStack, {
|
|
99
106
|
children: [logo && /*#__PURE__*/_jsx(VStack, _objectSpread(_objectSpread({}, logoContainerProps), {}, {
|
|
107
|
+
className: classNames === null || classNames === void 0 ? void 0 : classNames.logo,
|
|
108
|
+
style: styles === null || styles === void 0 ? void 0 : styles.logo,
|
|
100
109
|
testID: "sidebar-logo",
|
|
101
110
|
children: typeof logo === 'function' ? logo(!!computedCollapse) : logo
|
|
102
111
|
})), /*#__PURE__*/_jsx(VStack, {
|
|
103
112
|
as: "ul",
|
|
104
|
-
className: ulCss,
|
|
113
|
+
className: cx(ulCss, classNames === null || classNames === void 0 ? void 0 : classNames.content),
|
|
105
114
|
gap: 0.5,
|
|
106
115
|
marginStart: variant === 'default' ? -0.5 : undefined,
|
|
116
|
+
style: styles === null || styles === void 0 ? void 0 : styles.content,
|
|
107
117
|
children: liWrappedChildren
|
|
108
118
|
})]
|
|
109
119
|
}), !!renderEnd && /*#__PURE__*/_jsx(Box, {
|
|
110
120
|
alignSelf: variant === 'default' ? 'flex-start' : 'center',
|
|
121
|
+
className: classNames === null || classNames === void 0 ? void 0 : classNames.end,
|
|
111
122
|
paddingTop: 4,
|
|
123
|
+
style: styles === null || styles === void 0 ? void 0 : styles.end,
|
|
112
124
|
testID: "sidebar-end",
|
|
113
125
|
children: renderEnd(!!computedCollapse)
|
|
114
126
|
})]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbase/cds-web",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.30.1",
|
|
4
4
|
"description": "Coinbase Design System - Web",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
"react-dom": "^18.3.1"
|
|
148
148
|
},
|
|
149
149
|
"dependencies": {
|
|
150
|
-
"@coinbase/cds-common": "^8.
|
|
150
|
+
"@coinbase/cds-common": "^8.30.1",
|
|
151
151
|
"@coinbase/cds-icons": "^5.8.0",
|
|
152
152
|
"@coinbase/cds-illustrations": "^4.29.0",
|
|
153
153
|
"@coinbase/cds-lottie-files": "^3.3.3",
|