@coinbase/cds-web 8.15.0 → 8.16.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 +12 -0
- package/dts/cells/Cell.d.ts +56 -3
- package/dts/cells/Cell.d.ts.map +1 -1
- package/dts/cells/CellDetail.d.ts +3 -0
- package/dts/cells/CellDetail.d.ts.map +1 -1
- package/dts/cells/CellMedia.d.ts +4 -0
- package/dts/cells/CellMedia.d.ts.map +1 -1
- package/dts/cells/ListCell.d.ts +73 -2
- package/dts/cells/ListCell.d.ts.map +1 -1
- package/dts/cells/ListCellFallback.d.ts +2 -0
- package/dts/cells/ListCellFallback.d.ts.map +1 -1
- package/dts/core/createThemeCssVars.d.ts.map +1 -1
- package/esm/cells/Cell.js +44 -23
- package/esm/cells/CellDetail.js +5 -2
- package/esm/cells/CellMedia.js +4 -0
- package/esm/cells/ListCell.js +53 -12
- package/esm/cells/ListCellFallback.js +9 -3
- package/esm/core/createThemeCssVars.js +2 -1
- package/package.json +2 -2
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.16.1 (10/9/2025 PST)
|
|
12
|
+
|
|
13
|
+
#### 🐞 Fixes
|
|
14
|
+
|
|
15
|
+
- Update createThemeCssVars to use String.prototype.replace instead of replaceAll. [[#90](https://github.com/coinbase/cds/pull/90)]
|
|
16
|
+
|
|
17
|
+
## 8.16.0 (10/8/2025 PST)
|
|
18
|
+
|
|
19
|
+
#### 🚀 Updates
|
|
20
|
+
|
|
21
|
+
- New ListCell in layoutSpacing variants. [[#31](https://github.com/coinbase/cds/pull/31)]
|
|
22
|
+
|
|
11
23
|
## 8.15.0 (10/8/2025 PST)
|
|
12
24
|
|
|
13
25
|
### 🚀 Updates
|
package/dts/cells/Cell.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ThemeVars } from '@coinbase/cds-common/core/theme';
|
|
3
2
|
import type { CellPriority } from '@coinbase/cds-common/types';
|
|
4
3
|
import type { Polymorphic } from '../core/polymorphism';
|
|
5
4
|
import { type BoxBaseProps } from '../layout/Box';
|
|
@@ -27,18 +26,46 @@ export type CellSpacing = Pick<
|
|
|
27
26
|
export type CellBaseProps = Polymorphic.ExtendableProps<
|
|
28
27
|
BoxBaseProps,
|
|
29
28
|
Pick<PressableProps<'a'>, 'href' | 'target'> & {
|
|
29
|
+
/**
|
|
30
|
+
* @deprecated Use `classNames.contentContainer` instead. `contentClassName` will be removed in a future major release.
|
|
31
|
+
*/
|
|
30
32
|
contentClassName?: string;
|
|
33
|
+
/** Key down handler for keyboard interaction. */
|
|
31
34
|
onKeyDown?: React.KeyboardEventHandler;
|
|
35
|
+
/** Key up handler for keyboard interaction. */
|
|
32
36
|
onKeyUp?: React.KeyboardEventHandler;
|
|
37
|
+
/** Click handler. */
|
|
33
38
|
onClick?: React.MouseEventHandler;
|
|
39
|
+
/** Accessory element rendered at the end of the cell (e.g., chevron). */
|
|
34
40
|
accessory?: React.ReactElement<CellAccessoryProps>;
|
|
41
|
+
/** Main content of the cell; typically title/description content. */
|
|
35
42
|
children: React.ReactNode;
|
|
43
|
+
/**
|
|
44
|
+
* End-aligned content (e.g., value, status).
|
|
45
|
+
* Replaces the deprecated `detail` prop.
|
|
46
|
+
*/
|
|
47
|
+
end?: React.ReactNode;
|
|
48
|
+
/**
|
|
49
|
+
* @deprecated Use `end` instead. `detail` will be removed in a future major release.
|
|
50
|
+
*/
|
|
36
51
|
detail?: React.ReactNode;
|
|
52
|
+
/** Middle content between main content and detail. */
|
|
37
53
|
intermediary?: React.ReactNode;
|
|
54
|
+
/** Media rendered at the start of the cell (icon, avatar, image, etc). */
|
|
38
55
|
media?: React.ReactElement;
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated Use `shouldTruncate` instead. `shouldOverflow` will be removed in a future release.
|
|
58
|
+
*/
|
|
39
59
|
shouldOverflow?: boolean;
|
|
40
|
-
|
|
41
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Controls whether the main content should truncate with an ellipsis.
|
|
62
|
+
* Defaults to true (truncates) when not provided.
|
|
63
|
+
* @default true
|
|
64
|
+
*/
|
|
65
|
+
shouldTruncate?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* @deprecated Use `styles.end` instead. `detailWidth` will be removed in a future major release.
|
|
68
|
+
*/
|
|
42
69
|
detailWidth?: number | string;
|
|
43
70
|
/** Is the cell disabled? Will apply opacity and disable interaction. */
|
|
44
71
|
disabled?: boolean;
|
|
@@ -52,6 +79,32 @@ export type CellBaseProps = Polymorphic.ExtendableProps<
|
|
|
52
79
|
innerSpacing?: CellSpacing;
|
|
53
80
|
/** The content to display below the main cell content */
|
|
54
81
|
bottomContent?: React.ReactNode;
|
|
82
|
+
/** Styles for the components */
|
|
83
|
+
styles?: {
|
|
84
|
+
root?: React.CSSProperties;
|
|
85
|
+
contentContainer?: React.CSSProperties;
|
|
86
|
+
topContent?: React.CSSProperties;
|
|
87
|
+
bottomContent?: React.CSSProperties;
|
|
88
|
+
pressable?: React.CSSProperties;
|
|
89
|
+
media?: React.CSSProperties;
|
|
90
|
+
intermediary?: React.CSSProperties;
|
|
91
|
+
/** Applied to the container of detail or action */
|
|
92
|
+
end?: React.CSSProperties;
|
|
93
|
+
accessory?: React.CSSProperties;
|
|
94
|
+
};
|
|
95
|
+
/** Class names for the components */
|
|
96
|
+
classNames?: {
|
|
97
|
+
root?: string;
|
|
98
|
+
contentContainer?: string;
|
|
99
|
+
topContent?: string;
|
|
100
|
+
bottomContent?: string;
|
|
101
|
+
pressable?: string;
|
|
102
|
+
media?: string;
|
|
103
|
+
intermediary?: string;
|
|
104
|
+
/** Applied to the container of detail or action */
|
|
105
|
+
end?: string;
|
|
106
|
+
accessory?: string;
|
|
107
|
+
};
|
|
55
108
|
}
|
|
56
109
|
>;
|
|
57
110
|
export type CellProps<AsComponent extends React.ElementType> = Polymorphic.Props<
|
package/dts/cells/Cell.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cell.d.ts","sourceRoot":"","sources":["../../src/cells/Cell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"Cell.d.ts","sourceRoot":"","sources":["../../src/cells/Cell.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { TextProps } from '../typography/Text';
|
|
2
3
|
export type CellDetailVariant = 'foregroundMuted' | 'negative' | 'positive' | 'warning';
|
|
3
4
|
export type CellDetailProps = {
|
|
4
5
|
/**
|
|
@@ -13,6 +14,8 @@ export type CellDetailProps = {
|
|
|
13
14
|
subdetail?: React.ReactNode;
|
|
14
15
|
/** Variant color to apply to the subdetail text. */
|
|
15
16
|
variant?: CellDetailVariant;
|
|
17
|
+
/** Font to apply to the subdetail text. */
|
|
18
|
+
subdetailFont?: TextProps<'div'>['font'];
|
|
16
19
|
};
|
|
17
20
|
export declare const CellDetail: React.NamedExoticComponent<CellDetailProps>;
|
|
18
21
|
//# sourceMappingURL=CellDetail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CellDetail.d.ts","sourceRoot":"","sources":["../../src/cells/CellDetail.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CellDetail.d.ts","sourceRoot":"","sources":["../../src/cells/CellDetail.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAGpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIpD,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAExF,MAAM,MAAM,eAAe,GAAG;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,oDAAoD;IACpD,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,2CAA2C;IAC3C,aAAa,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;CAC1C,CAAC;AASF,eAAO,MAAM,UAAU,6CA4BrB,CAAC"}
|
package/dts/cells/CellMedia.d.ts
CHANGED
|
@@ -29,6 +29,10 @@ export type CellMediaBaseProps = SharedProps &
|
|
|
29
29
|
CellMediaVariantProps &
|
|
30
30
|
Pick<SharedAccessibilityProps, 'accessibilityLabel'>;
|
|
31
31
|
export type CellMediaProps = CellMediaBaseProps;
|
|
32
|
+
/**
|
|
33
|
+
* @deprecated This component will be removed in a future release. Pass media directly via the `media` prop.
|
|
34
|
+
* For example: `<Avatar src={...} />`, `<Icon name={...} />`, `<RemoteImage source={...} />`, or a Pictogram.
|
|
35
|
+
*/
|
|
32
36
|
export declare const CellMedia: React.NamedExoticComponent<CellMediaBaseProps>;
|
|
33
37
|
export {};
|
|
34
38
|
//# sourceMappingURL=CellMedia.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CellMedia.d.ts","sourceRoot":"","sources":["../../src/cells/CellMedia.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGlG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAIjE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;AAEhF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC1C,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;CAClD,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC;IACnD;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,qBAAqB,GAAG,kBAAkB,GAAG,uBAAuB,GAAG,mBAAmB,CAAC;AAEhG,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAC1C,qBAAqB,GACrB,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAEhD,eAAO,MAAM,SAAS,gDA2DpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"CellMedia.d.ts","sourceRoot":"","sources":["../../src/cells/CellMedia.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGlG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAIjE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;AAEhF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC1C,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;CAClD,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC;IACnD;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,qBAAqB,GAAG,kBAAkB,GAAG,uBAAuB,GAAG,mBAAmB,CAAC;AAEhG,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAC1C,qBAAqB,GACrB,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,SAAS,gDA2DpB,CAAC"}
|
package/dts/cells/ListCell.d.ts
CHANGED
|
@@ -5,15 +5,66 @@ import { type CellAccessoryType } from './CellAccessory';
|
|
|
5
5
|
import { type CellDetailProps } from './CellDetail';
|
|
6
6
|
export declare const listCellDefaultElement = 'div';
|
|
7
7
|
export type ListCellDefaultElement = typeof listCellDefaultElement;
|
|
8
|
+
export declare const hugInnerSpacing: {
|
|
9
|
+
paddingX: 2;
|
|
10
|
+
paddingY: 0.5;
|
|
11
|
+
marginX: 0;
|
|
12
|
+
};
|
|
13
|
+
export declare const hugOuterSpacing: {
|
|
14
|
+
paddingX: 0;
|
|
15
|
+
paddingY: 0;
|
|
16
|
+
marginX: 0;
|
|
17
|
+
};
|
|
18
|
+
type CellStyles = NonNullable<CellBaseProps['styles']>;
|
|
19
|
+
type CellClassNames = NonNullable<CellBaseProps['classNames']>;
|
|
8
20
|
export type ListCellBaseProps = Polymorphic.ExtendableProps<
|
|
9
21
|
Omit<CellBaseProps, 'children'>,
|
|
10
22
|
CellDetailProps & {
|
|
11
23
|
/** Accessory to display at the end of the cell. */
|
|
12
24
|
accessory?: CellAccessoryType;
|
|
13
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* End-aligned content (e.g., CTA, form element, metric). Replacement for the deprecated action prop, and takes precedence over it.
|
|
27
|
+
* If the content is an action (like button, link, etc), we recommend avoiding use alongside `onClick`.
|
|
28
|
+
* If used alongside `onClick`, the end action is triggered first and then the `onClick` handler.
|
|
29
|
+
*/
|
|
30
|
+
end?: React.ReactNode;
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated Use `end` instead. `action` will be removed in a future major release.
|
|
33
|
+
*/
|
|
14
34
|
action?: React.ReactNode;
|
|
15
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated Use `layoutDensity="compact"` instead. `compact` will be removed in a future major release.
|
|
37
|
+
*/
|
|
16
38
|
compact?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Layout spacing configuration.
|
|
41
|
+
* Deprecated values: 'spacious' and 'compact'. Prefer 'hug'.
|
|
42
|
+
* This prop will be removed in the next major release, new list cell will only have 'hug' spacing.
|
|
43
|
+
*
|
|
44
|
+
* When 'spacious' is set, the cell will have the following behavior:
|
|
45
|
+
* 1. min-height is 80px
|
|
46
|
+
* 2. Effective padding is '16px 24px' with 8px padding around the pressable area
|
|
47
|
+
* 3. border radius is 8px for pressable area
|
|
48
|
+
* 4. Title always cap at 1 line when there is no description, cap at 2 lines when there is description
|
|
49
|
+
* 5. Description and subdetail have font 'body'
|
|
50
|
+
*
|
|
51
|
+
* When 'compact' is set, the cell will have the following behavior:
|
|
52
|
+
* 1. min-height is 40px
|
|
53
|
+
* 2. Effective padding is '16px 24px' with 8px padding around the pressable area
|
|
54
|
+
* 3. border radius is 8px for pressable area
|
|
55
|
+
* 4. Title always cap at 1 line when there is no description, cap at 2 lines when there is description
|
|
56
|
+
* 5. Description and subdetail have font 'body'
|
|
57
|
+
*
|
|
58
|
+
* When 'hug' is set, the cell will have the following behavior:
|
|
59
|
+
* 1. No min-height, height is determined by the content
|
|
60
|
+
* 2. Padding is '4px 16px', no extra padding around the pressable area
|
|
61
|
+
* 3. 0 border radius for pressable area
|
|
62
|
+
* 4. Title always cap at 2 lines
|
|
63
|
+
* 5. Description and subdetail have font 'label2'
|
|
64
|
+
*
|
|
65
|
+
* @default 'spacious'
|
|
66
|
+
*/
|
|
67
|
+
layoutSpacing?: 'spacious' | 'compact' | 'hug';
|
|
17
68
|
/** Description of content. Max 1 line (with title) or 2 lines (without), otherwise will truncate. */
|
|
18
69
|
description?: React.ReactNode;
|
|
19
70
|
/**
|
|
@@ -36,6 +87,26 @@ export type ListCellBaseProps = Polymorphic.ExtendableProps<
|
|
|
36
87
|
multiline?: boolean;
|
|
37
88
|
/** Title of content. Max 1 line (with description) or 2 lines (without), otherwise will truncate. */
|
|
38
89
|
title?: React.ReactNode;
|
|
90
|
+
/** Class names for the components */
|
|
91
|
+
classNames?: Pick<
|
|
92
|
+
CellClassNames,
|
|
93
|
+
'root' | 'media' | 'intermediary' | 'end' | 'accessory' | 'contentContainer' | 'pressable'
|
|
94
|
+
> & {
|
|
95
|
+
mainContent?: CellClassNames['topContent'];
|
|
96
|
+
helperText?: CellClassNames['bottomContent'];
|
|
97
|
+
title?: string;
|
|
98
|
+
description?: string;
|
|
99
|
+
};
|
|
100
|
+
/** Styles for the components */
|
|
101
|
+
styles?: Pick<
|
|
102
|
+
CellStyles,
|
|
103
|
+
'root' | 'media' | 'intermediary' | 'end' | 'accessory' | 'contentContainer' | 'pressable'
|
|
104
|
+
> & {
|
|
105
|
+
mainContent?: CellStyles['topContent'];
|
|
106
|
+
helperText?: CellStyles['bottomContent'];
|
|
107
|
+
title?: React.CSSProperties;
|
|
108
|
+
description?: React.CSSProperties;
|
|
109
|
+
};
|
|
39
110
|
}
|
|
40
111
|
>;
|
|
41
112
|
export type ListCellProps<AsComponent extends React.ElementType> = Polymorphic.Props<
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListCell.d.ts","sourceRoot":"","sources":["../../src/cells/ListCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAIzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ListCell.d.ts","sourceRoot":"","sources":["../../src/cells/ListCell.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ export type ListCellFallbackBaseProps = SharedProps &
|
|
|
17
17
|
subdetail?: boolean;
|
|
18
18
|
/** Display title shimmer. */
|
|
19
19
|
title?: boolean;
|
|
20
|
+
/** Layout spacing configuration. */
|
|
21
|
+
layoutSpacing?: 'spacious' | 'compact' | 'hug';
|
|
20
22
|
};
|
|
21
23
|
export type ListCellFallbackProps = ListCellFallbackBaseProps & {
|
|
22
24
|
/** Class names to apply to the detail, bottomContent, and title. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListCellFallback.d.ts","sourceRoot":"","sources":["../../src/cells/ListCellFallback.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAMtF,OAAO,EAAQ,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ListCellFallback.d.ts","sourceRoot":"","sources":["../../src/cells/ListCellFallback.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAMtF,OAAO,EAAQ,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,MAAM,MAAM,yBAAyB,GAAG,WAAW,GACjD,sBAAsB,GACtB,IAAI,CAAC,aAAa,EAAE,cAAc,GAAG,cAAc,CAAC,GAAG;IACrD,mCAAmC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,aAAa,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;CAChD,CAAC;AAEJ,MAAM,MAAM,qBAAqB,GAAG,yBAAyB,GAAG;IAC9D,oEAAoE;IACpE,UAAU,CAAC,EAAE;QACX,uDAAuD;QACvD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,yCAAyC;QACzC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,4CAA4C;QAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,wCAAwC;QACxC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,8CAA8C;QAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,+DAA+D;IAC/D,MAAM,CAAC,EAAE;QACP,kEAAkE;QAClE,UAAU,CAAC,EAAE,aAAa,CAAC;QAC3B,4CAA4C;QAC5C,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,+CAA+C;QAC/C,SAAS,CAAC,EAAE,aAAa,CAAC;QAC1B,2CAA2C;QAC3C,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,iDAAiD;QACjD,WAAW,CAAC,EAAE,aAAa,CAAC;KAC7B,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,gBAAgB,6DA4J3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createThemeCssVars.d.ts","sourceRoot":"","sources":["../../src/core/createThemeCssVars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"createThemeCssVars.d.ts","sourceRoot":"","sources":["../../src/core/createThemeCssVars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,KAAK,EAAE,MAAM,SAAS,CAAC;AAIvD,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,CAAC,KAAK,CAAC,4BAiCvD,CAAC"}
|
package/esm/cells/Cell.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["as", "accessory", "alignItems", "borderRadius", "children", "className", "contentClassName", "detail", "detailWidth", "disabled", "gap", "columnGap", "rowGap", "intermediary", "media", "minHeight", "maxHeight", "onClick", "onKeyDown", "onKeyUp", "priority", "selected", "testID", "target", "href", "tabIndex", "shouldOverflow", "accessibilityLabel", "accessibilityLabelledBy", "accessibilityHint", "innerSpacing", "outerSpacing", "bottomContent"],
|
|
1
|
+
const _excluded = ["as", "accessory", "alignItems", "borderRadius", "children", "style", "styles", "classNames", "className", "contentClassName", "end", "detail", "detailWidth", "disabled", "gap", "columnGap", "rowGap", "intermediary", "media", "minHeight", "maxHeight", "onClick", "onKeyDown", "onKeyUp", "priority", "selected", "testID", "target", "href", "tabIndex", "shouldOverflow", "shouldTruncate", "accessibilityLabel", "accessibilityLabelledBy", "accessibilityHint", "innerSpacing", "outerSpacing", "bottomContent"],
|
|
2
2
|
_excluded2 = ["marginX"];
|
|
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; }
|
|
@@ -32,8 +32,12 @@ export const Cell = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
32
32
|
alignItems = 'center',
|
|
33
33
|
borderRadius = 200,
|
|
34
34
|
children,
|
|
35
|
+
style,
|
|
36
|
+
styles,
|
|
37
|
+
classNames,
|
|
35
38
|
className,
|
|
36
39
|
contentClassName,
|
|
40
|
+
end,
|
|
37
41
|
detail,
|
|
38
42
|
detailWidth,
|
|
39
43
|
disabled,
|
|
@@ -60,6 +64,7 @@ export const Cell = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
60
64
|
*
|
|
61
65
|
* */
|
|
62
66
|
shouldOverflow,
|
|
67
|
+
shouldTruncate = !shouldOverflow,
|
|
63
68
|
accessibilityLabel,
|
|
64
69
|
accessibilityLabelledBy,
|
|
65
70
|
accessibilityHint,
|
|
@@ -83,31 +88,39 @@ export const Cell = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
83
88
|
const isAnchor = Boolean(href);
|
|
84
89
|
const isButton = Boolean((_ref2 = onClick !== null && onClick !== void 0 ? onClick : onKeyDown) !== null && _ref2 !== void 0 ? _ref2 : onKeyUp);
|
|
85
90
|
const linkable = isAnchor || isButton;
|
|
86
|
-
const contentTruncationStyle = cx(baseCss,
|
|
91
|
+
const contentTruncationStyle = cx(baseCss, shouldTruncate && truncationCss);
|
|
87
92
|
const content = useMemo(() => {
|
|
93
|
+
var _styles$end$width, _styles$end;
|
|
88
94
|
// props for the entire inner container that wraps the top content
|
|
89
95
|
// (media, children, intermediary, detail, accessory) and the bottom content
|
|
90
|
-
const
|
|
96
|
+
const contentContainerProps = _objectSpread(_objectSpread(_objectSpread({
|
|
91
97
|
borderRadius,
|
|
92
|
-
className: contentClassName,
|
|
98
|
+
className: cx(contentClassName, classNames === null || classNames === void 0 ? void 0 : classNames.contentContainer),
|
|
93
99
|
testID
|
|
94
100
|
}, selected ? {
|
|
95
101
|
background: 'bgAlternate'
|
|
96
|
-
} : {}), linkable ? innerSpacingWithoutMarginX : innerSpacing)
|
|
102
|
+
} : {}), linkable ? innerSpacingWithoutMarginX : innerSpacing), {}, {
|
|
103
|
+
style: styles === null || styles === void 0 ? void 0 : styles.contentContainer
|
|
104
|
+
});
|
|
97
105
|
|
|
98
106
|
// props for the container of the top content only(media, children, intermediary, detail, accessory)
|
|
99
|
-
const
|
|
107
|
+
const topContentProps = {
|
|
100
108
|
alignItems: alignItems,
|
|
101
109
|
flexGrow: 1,
|
|
102
110
|
gap: columnGap || gap,
|
|
103
|
-
width: '100%'
|
|
111
|
+
width: '100%',
|
|
112
|
+
className: classNames === null || classNames === void 0 ? void 0 : classNames.topContent,
|
|
113
|
+
style: styles === null || styles === void 0 ? void 0 : styles.topContent
|
|
104
114
|
};
|
|
115
|
+
const endWidth = (_styles$end$width = styles === null || styles === void 0 || (_styles$end = styles.end) === null || _styles$end === void 0 ? void 0 : _styles$end.width) !== null && _styles$end$width !== void 0 ? _styles$end$width : detailWidth;
|
|
105
116
|
|
|
106
117
|
// content that is displayed horizontally above the bottom content
|
|
107
118
|
const topContent = /*#__PURE__*/_jsxs(_Fragment, {
|
|
108
119
|
children: [media && /*#__PURE__*/_jsx(Box, {
|
|
120
|
+
className: classNames === null || classNames === void 0 ? void 0 : classNames.media,
|
|
109
121
|
flexGrow: 0,
|
|
110
122
|
flexShrink: 0,
|
|
123
|
+
style: styles === null || styles === void 0 ? void 0 : styles.media,
|
|
111
124
|
children: media
|
|
112
125
|
}), /*#__PURE__*/_jsx(Box, {
|
|
113
126
|
className: contentTruncationStyle,
|
|
@@ -116,28 +129,32 @@ export const Cell = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
116
129
|
justifyContent: "flex-start",
|
|
117
130
|
children: children
|
|
118
131
|
}), !!intermediary && /*#__PURE__*/_jsx(Box, {
|
|
119
|
-
className: contentTruncationStyle,
|
|
132
|
+
className: cx(contentTruncationStyle, classNames === null || classNames === void 0 ? void 0 : classNames.intermediary),
|
|
120
133
|
flexGrow: 0,
|
|
121
134
|
flexShrink: hasCellPriority('middle', priority) ? 0 : 1,
|
|
122
135
|
justifyContent: "center",
|
|
136
|
+
style: styles === null || styles === void 0 ? void 0 : styles.intermediary,
|
|
123
137
|
children: intermediary
|
|
124
|
-
}), !!detail && /*#__PURE__*/_jsx(Box, {
|
|
138
|
+
}), !!(end !== null && end !== void 0 ? end : detail) && /*#__PURE__*/_jsx(Box, {
|
|
125
139
|
alignItems: "flex-end",
|
|
126
|
-
className: contentTruncationStyle,
|
|
140
|
+
className: cx(contentTruncationStyle, classNames === null || classNames === void 0 ? void 0 : classNames.end),
|
|
127
141
|
flexDirection: "column",
|
|
128
|
-
flexGrow:
|
|
129
|
-
flexShrink:
|
|
142
|
+
flexGrow: endWidth ? undefined : 1,
|
|
143
|
+
flexShrink: endWidth ? undefined : hasCellPriority('end', priority) ? 0 : 1,
|
|
130
144
|
justifyContent: "flex-end",
|
|
145
|
+
style: styles === null || styles === void 0 ? void 0 : styles.end,
|
|
131
146
|
width: detailWidth,
|
|
132
|
-
children: detail
|
|
147
|
+
children: end !== null && end !== void 0 ? end : detail
|
|
133
148
|
}), !!accessory && /*#__PURE__*/_jsx(Box, {
|
|
149
|
+
className: classNames === null || classNames === void 0 ? void 0 : classNames.accessory,
|
|
134
150
|
flexGrow: 0,
|
|
135
151
|
flexShrink: 0,
|
|
152
|
+
style: styles === null || styles === void 0 ? void 0 : styles.accessory,
|
|
136
153
|
children: accessory
|
|
137
154
|
})]
|
|
138
155
|
});
|
|
139
156
|
if (!bottom) {
|
|
140
|
-
return /*#__PURE__*/_jsx(HStack, _objectSpread(_objectSpread(_objectSpread({},
|
|
157
|
+
return /*#__PURE__*/_jsx(HStack, _objectSpread(_objectSpread(_objectSpread({}, topContentProps), contentContainerProps), {}, {
|
|
141
158
|
children: topContent
|
|
142
159
|
}));
|
|
143
160
|
}
|
|
@@ -146,15 +163,17 @@ export const Cell = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
146
163
|
flexGrow: 1,
|
|
147
164
|
gap: rowGap,
|
|
148
165
|
width: "100%"
|
|
149
|
-
},
|
|
150
|
-
children: [/*#__PURE__*/_jsx(HStack, _objectSpread(_objectSpread({},
|
|
166
|
+
}, contentContainerProps), {}, {
|
|
167
|
+
children: [/*#__PURE__*/_jsx(HStack, _objectSpread(_objectSpread({}, topContentProps), {}, {
|
|
151
168
|
children: topContent
|
|
152
169
|
})), /*#__PURE__*/_jsx(Box, {
|
|
170
|
+
className: classNames === null || classNames === void 0 ? void 0 : classNames.bottomContent,
|
|
171
|
+
style: styles === null || styles === void 0 ? void 0 : styles.bottomContent,
|
|
153
172
|
children: bottom
|
|
154
173
|
})]
|
|
155
174
|
}));
|
|
156
|
-
}, [borderRadius, contentClassName, testID, selected, linkable, innerSpacingWithoutMarginX, innerSpacing, alignItems, columnGap, gap, media, contentTruncationStyle, priority, children, intermediary, detail, detailWidth, accessory, bottom, rowGap]);
|
|
157
|
-
const
|
|
175
|
+
}, [borderRadius, contentClassName, classNames === null || classNames === void 0 ? void 0 : classNames.contentContainer, classNames === null || classNames === void 0 ? void 0 : classNames.topContent, classNames === null || classNames === void 0 ? void 0 : classNames.media, classNames === null || classNames === void 0 ? void 0 : classNames.intermediary, classNames === null || classNames === void 0 ? void 0 : classNames.end, classNames === null || classNames === void 0 ? void 0 : classNames.accessory, classNames === null || classNames === void 0 ? void 0 : classNames.bottomContent, testID, selected, linkable, innerSpacingWithoutMarginX, innerSpacing, styles === null || styles === void 0 ? void 0 : styles.contentContainer, styles === null || styles === void 0 ? void 0 : styles.topContent, styles === null || styles === void 0 ? void 0 : styles.media, styles === null || styles === void 0 ? void 0 : styles.intermediary, styles === null || styles === void 0 ? void 0 : styles.end, styles === null || styles === void 0 ? void 0 : styles.accessory, styles === null || styles === void 0 ? void 0 : styles.bottomContent, alignItems, columnGap, gap, media, contentTruncationStyle, priority, children, intermediary, end, detail, detailWidth, accessory, bottom, rowGap]);
|
|
176
|
+
const pressableWrappedContent = useMemo(() => {
|
|
158
177
|
const pressableSharedProps = {
|
|
159
178
|
noScaleOnPress: true,
|
|
160
179
|
transparentWhileInactive: true,
|
|
@@ -163,14 +182,15 @@ export const Cell = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
163
182
|
accessibilityLabelledBy,
|
|
164
183
|
background: 'bg',
|
|
165
184
|
borderRadius,
|
|
166
|
-
className: cx(pressCss, insetFocusRingCss),
|
|
185
|
+
className: cx(pressCss, insetFocusRingCss, classNames === null || classNames === void 0 ? void 0 : classNames.pressable),
|
|
167
186
|
disabled,
|
|
168
187
|
marginX: innerSpacingMarginX,
|
|
169
188
|
onClick,
|
|
170
189
|
onKeyDown,
|
|
171
190
|
onKeyUp,
|
|
172
191
|
tabIndex,
|
|
173
|
-
testID: testID && "".concat(testID, "-cell-pressable")
|
|
192
|
+
testID: testID && "".concat(testID, "-cell-pressable"),
|
|
193
|
+
style: styles === null || styles === void 0 ? void 0 : styles.pressable
|
|
174
194
|
};
|
|
175
195
|
if (isAnchor) return /*#__PURE__*/_jsx(Pressable, _objectSpread(_objectSpread({
|
|
176
196
|
as: "a",
|
|
@@ -185,17 +205,18 @@ export const Cell = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
185
205
|
children: content
|
|
186
206
|
}));
|
|
187
207
|
return content;
|
|
188
|
-
}, [
|
|
208
|
+
}, [accessibilityHint, accessibilityLabel, accessibilityLabelledBy, borderRadius, classNames === null || classNames === void 0 ? void 0 : classNames.pressable, disabled, innerSpacingMarginX, onClick, onKeyDown, onKeyUp, tabIndex, testID, styles === null || styles === void 0 ? void 0 : styles.pressable, isAnchor, href, target, content, isButton]);
|
|
189
209
|
return /*#__PURE__*/_jsx(Box, _objectSpread(_objectSpread(_objectSpread({
|
|
190
210
|
ref: ref,
|
|
191
211
|
alignItems: "stretch",
|
|
192
212
|
as: Component,
|
|
193
|
-
className: className,
|
|
213
|
+
className: cx(className, classNames === null || classNames === void 0 ? void 0 : classNames.root),
|
|
194
214
|
maxHeight: maxHeight,
|
|
195
215
|
minHeight: minHeight,
|
|
216
|
+
style: _objectSpread(_objectSpread({}, style), styles === null || styles === void 0 ? void 0 : styles.root),
|
|
196
217
|
width: "100%"
|
|
197
218
|
}, outerSpacing), props), {}, {
|
|
198
|
-
children:
|
|
219
|
+
children: pressableWrappedContent
|
|
199
220
|
}));
|
|
200
221
|
}));
|
|
201
222
|
import "./Cell.css";
|
package/esm/cells/CellDetail.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import React, { memo } from 'react';
|
|
2
2
|
import { Text } from '../typography/Text';
|
|
3
|
+
|
|
4
|
+
// TODO: update this CellDetailVariant in the next breaking change release.
|
|
3
5
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
6
|
const variantColorMap = {
|
|
5
7
|
foregroundMuted: 'fgMuted',
|
|
@@ -11,7 +13,8 @@ export const CellDetail = /*#__PURE__*/memo(function CellDetail(_ref) {
|
|
|
11
13
|
let {
|
|
12
14
|
detail,
|
|
13
15
|
subdetail,
|
|
14
|
-
variant = 'foregroundMuted'
|
|
16
|
+
variant = 'foregroundMuted',
|
|
17
|
+
subdetailFont = 'label2'
|
|
15
18
|
} = _ref;
|
|
16
19
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
17
20
|
children: [!!detail && /*#__PURE__*/_jsx(Text, {
|
|
@@ -25,7 +28,7 @@ export const CellDetail = /*#__PURE__*/memo(function CellDetail(_ref) {
|
|
|
25
28
|
as: "div",
|
|
26
29
|
color: variantColorMap[variant],
|
|
27
30
|
display: "block",
|
|
28
|
-
font:
|
|
31
|
+
font: subdetailFont,
|
|
29
32
|
overflow: "truncate",
|
|
30
33
|
textAlign: "end",
|
|
31
34
|
children: subdetail
|
package/esm/cells/CellMedia.js
CHANGED
|
@@ -4,6 +4,10 @@ import { Icon } from '../icons/Icon';
|
|
|
4
4
|
import { Box } from '../layout/Box';
|
|
5
5
|
import { RemoteImage } from '../media/RemoteImage';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated This component will be removed in a future release. Pass media directly via the `media` prop.
|
|
9
|
+
* For example: `<Avatar src={...} />`, `<Icon name={...} />`, `<RemoteImage source={...} />`, or a Pictogram.
|
|
10
|
+
*/
|
|
7
11
|
export const CellMedia = /*#__PURE__*/memo(function CellMedia(props) {
|
|
8
12
|
let size = mediaSize;
|
|
9
13
|
let content = null;
|
package/esm/cells/ListCell.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["as", "accessory", "action", "compact", "title", "description", "detail", "disabled", "disableMultilineTitle", "disableSelectionAccessory", "helperText", "media", "multiline", "selected", "subdetail", "variant", "intermediary", "priority", "innerSpacing", "outerSpacing", "
|
|
1
|
+
const _excluded = ["as", "accessory", "end", "action", "compact", "title", "description", "detail", "disabled", "disableMultilineTitle", "disableSelectionAccessory", "helperText", "media", "multiline", "selected", "subdetail", "variant", "intermediary", "priority", "innerSpacing", "outerSpacing", "layoutSpacing", "className", "classNames", "styles", "style"];
|
|
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, { forwardRef, memo, useMemo } from 'react';
|
|
10
10
|
import { compactListHeight, listHeight } from '@coinbase/cds-common/tokens/cell';
|
|
11
|
+
import { cx } from '../cx';
|
|
11
12
|
import { Box } from '../layout/Box';
|
|
12
13
|
import { VStack } from '../layout/VStack';
|
|
13
14
|
import { Text } from '../typography/Text';
|
|
@@ -17,10 +18,23 @@ import { CellDetail } from './CellDetail';
|
|
|
17
18
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
18
19
|
const overflowCss = "overflowCss-onthvgs";
|
|
19
20
|
export const listCellDefaultElement = 'div';
|
|
21
|
+
export const hugInnerSpacing = {
|
|
22
|
+
paddingX: 2,
|
|
23
|
+
paddingY: 0.5,
|
|
24
|
+
marginX: 0
|
|
25
|
+
};
|
|
26
|
+
// no padding outside of the pressable area
|
|
27
|
+
export const hugOuterSpacing = {
|
|
28
|
+
paddingX: 0,
|
|
29
|
+
paddingY: 0,
|
|
30
|
+
marginX: 0
|
|
31
|
+
};
|
|
20
32
|
export const ListCell = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
|
|
33
|
+
var _props$borderRadius;
|
|
21
34
|
let {
|
|
22
35
|
as,
|
|
23
36
|
accessory,
|
|
37
|
+
end: endProp,
|
|
24
38
|
action,
|
|
25
39
|
compact,
|
|
26
40
|
title,
|
|
@@ -39,13 +53,23 @@ export const ListCell = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) =>
|
|
|
39
53
|
priority,
|
|
40
54
|
innerSpacing,
|
|
41
55
|
outerSpacing,
|
|
42
|
-
|
|
56
|
+
layoutSpacing = compact ? 'compact' : 'spacious',
|
|
57
|
+
className,
|
|
58
|
+
classNames,
|
|
59
|
+
styles,
|
|
60
|
+
style
|
|
43
61
|
} = _ref,
|
|
44
62
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
45
63
|
const Component = as !== null && as !== void 0 ? as : listCellDefaultElement;
|
|
46
|
-
const minHeight = compact ? compactListHeight : listHeight;
|
|
64
|
+
const minHeight = layoutSpacing === 'compact' ? compactListHeight : layoutSpacing === 'spacious' ? listHeight : undefined;
|
|
47
65
|
const accessoryType = selected && !disableSelectionAccessory ? 'selected' : accessory;
|
|
48
66
|
const end = useMemo(() => {
|
|
67
|
+
if (endProp) {
|
|
68
|
+
return /*#__PURE__*/_jsx(Box, {
|
|
69
|
+
justifyContent: "flex-end",
|
|
70
|
+
children: endProp
|
|
71
|
+
});
|
|
72
|
+
}
|
|
49
73
|
if (action) {
|
|
50
74
|
return /*#__PURE__*/_jsx(Box, {
|
|
51
75
|
justifyContent: "flex-end",
|
|
@@ -56,44 +80,61 @@ export const ListCell = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) =>
|
|
|
56
80
|
return /*#__PURE__*/_jsx(CellDetail, {
|
|
57
81
|
detail: detail,
|
|
58
82
|
subdetail: subdetail,
|
|
83
|
+
subdetailFont: layoutSpacing === 'hug' ? 'label2' : 'body',
|
|
59
84
|
variant: variant
|
|
60
85
|
});
|
|
61
86
|
}
|
|
62
87
|
return undefined;
|
|
63
|
-
}, [action, detail, subdetail, variant]);
|
|
88
|
+
}, [endProp, action, detail, subdetail, variant, layoutSpacing]);
|
|
64
89
|
return /*#__PURE__*/_jsx(Cell, _objectSpread(_objectSpread({
|
|
65
90
|
ref: ref,
|
|
66
91
|
accessory: accessoryType && /*#__PURE__*/_jsx(CellAccessory, {
|
|
67
92
|
type: accessoryType
|
|
68
93
|
}),
|
|
69
94
|
as: Component,
|
|
95
|
+
borderRadius: (_props$borderRadius = props.borderRadius) !== null && _props$borderRadius !== void 0 ? _props$borderRadius : layoutSpacing === 'hug' ? 0 : undefined,
|
|
70
96
|
bottomContent: helperText,
|
|
71
|
-
|
|
72
|
-
detailWidth: detailWidth,
|
|
97
|
+
className: cx(className, classNames === null || classNames === void 0 ? void 0 : classNames.root),
|
|
73
98
|
disabled: disabled,
|
|
74
|
-
|
|
99
|
+
end: end,
|
|
100
|
+
innerSpacing: innerSpacing !== null && innerSpacing !== void 0 ? innerSpacing : layoutSpacing === 'hug' ? hugInnerSpacing : undefined,
|
|
75
101
|
intermediary: intermediary,
|
|
76
102
|
media: media,
|
|
77
103
|
minHeight: minHeight,
|
|
78
|
-
outerSpacing: outerSpacing,
|
|
104
|
+
outerSpacing: outerSpacing !== null && outerSpacing !== void 0 ? outerSpacing : layoutSpacing === 'hug' ? hugOuterSpacing : undefined,
|
|
79
105
|
priority: priority,
|
|
80
|
-
selected: selected
|
|
106
|
+
selected: selected,
|
|
107
|
+
style: _objectSpread(_objectSpread({}, style), styles === null || styles === void 0 ? void 0 : styles.root),
|
|
108
|
+
styles: {
|
|
109
|
+
media: styles === null || styles === void 0 ? void 0 : styles.media,
|
|
110
|
+
intermediary: styles === null || styles === void 0 ? void 0 : styles.intermediary,
|
|
111
|
+
end: styles === null || styles === void 0 ? void 0 : styles.end,
|
|
112
|
+
accessory: styles === null || styles === void 0 ? void 0 : styles.accessory,
|
|
113
|
+
topContent: styles === null || styles === void 0 ? void 0 : styles.mainContent,
|
|
114
|
+
bottomContent: styles === null || styles === void 0 ? void 0 : styles.helperText,
|
|
115
|
+
contentContainer: styles === null || styles === void 0 ? void 0 : styles.contentContainer,
|
|
116
|
+
pressable: styles === null || styles === void 0 ? void 0 : styles.pressable
|
|
117
|
+
}
|
|
81
118
|
}, props), {}, {
|
|
82
119
|
children: /*#__PURE__*/_jsxs(VStack, {
|
|
83
120
|
children: [!!title && /*#__PURE__*/_jsx(Text, {
|
|
84
121
|
as: "div",
|
|
85
122
|
display: "block",
|
|
86
123
|
font: "headline",
|
|
87
|
-
numberOfLines:
|
|
124
|
+
numberOfLines: disableMultilineTitle ? 1 :
|
|
125
|
+
// wrap at 2 lines in hug layoutSpacing regardless of description
|
|
126
|
+
layoutSpacing === 'hug' ? 2 : description ? 1 : 2,
|
|
88
127
|
overflow: "wrap",
|
|
128
|
+
style: styles === null || styles === void 0 ? void 0 : styles.title,
|
|
89
129
|
children: title
|
|
90
130
|
}), !!description && /*#__PURE__*/_jsx(Text, {
|
|
91
131
|
as: "div",
|
|
92
|
-
className: multiline ? overflowCss : undefined,
|
|
132
|
+
className: cx(multiline ? overflowCss : undefined, classNames === null || classNames === void 0 ? void 0 : classNames.description),
|
|
93
133
|
color: "fgMuted",
|
|
94
134
|
display: "block",
|
|
95
|
-
font:
|
|
135
|
+
font: layoutSpacing === 'hug' ? 'label2' : 'body',
|
|
96
136
|
overflow: multiline ? undefined : 'truncate',
|
|
137
|
+
style: styles === null || styles === void 0 ? void 0 : styles.description,
|
|
97
138
|
children: description
|
|
98
139
|
})]
|
|
99
140
|
})
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["classNames", "styles", "title", "description", "detail", "subdetail", "media", "disableRandomRectWidth", "rectWidthVariant", "helperText"];
|
|
1
|
+
const _excluded = ["classNames", "styles", "title", "description", "detail", "subdetail", "media", "disableRandomRectWidth", "rectWidthVariant", "helperText", "layoutSpacing", "innerSpacing", "outerSpacing"];
|
|
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; }
|
|
@@ -11,6 +11,7 @@ import { getRectWidthVariant } from '@coinbase/cds-common/utils/getRectWidthVari
|
|
|
11
11
|
import { VStack } from '../layout';
|
|
12
12
|
import { Fallback } from '../layout/Fallback';
|
|
13
13
|
import { Cell } from './Cell';
|
|
14
|
+
import { hugInnerSpacing, hugOuterSpacing } from './ListCell';
|
|
14
15
|
import { MediaFallback } from './MediaFallback';
|
|
15
16
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
17
|
export const ListCellFallback = /*#__PURE__*/memo(function ListCellFallback(_ref) {
|
|
@@ -24,7 +25,10 @@ export const ListCellFallback = /*#__PURE__*/memo(function ListCellFallback(_ref
|
|
|
24
25
|
media,
|
|
25
26
|
disableRandomRectWidth,
|
|
26
27
|
rectWidthVariant,
|
|
27
|
-
helperText
|
|
28
|
+
helperText,
|
|
29
|
+
layoutSpacing,
|
|
30
|
+
innerSpacing,
|
|
31
|
+
outerSpacing
|
|
28
32
|
} = _ref,
|
|
29
33
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
30
34
|
// We cant use ListCell here as we need to account for percentage based widths.
|
|
@@ -117,7 +121,9 @@ export const ListCellFallback = /*#__PURE__*/memo(function ListCellFallback(_ref
|
|
|
117
121
|
return /*#__PURE__*/_jsx(Cell, _objectSpread(_objectSpread({
|
|
118
122
|
bottomContent: bottomContentFallback,
|
|
119
123
|
detail: detailFallback,
|
|
120
|
-
|
|
124
|
+
innerSpacing: innerSpacing !== null && innerSpacing !== void 0 ? innerSpacing : layoutSpacing === 'hug' ? hugInnerSpacing : undefined,
|
|
125
|
+
media: mediaFallback,
|
|
126
|
+
outerSpacing: outerSpacing !== null && outerSpacing !== void 0 ? outerSpacing : layoutSpacing === 'hug' ? hugOuterSpacing : undefined
|
|
121
127
|
}, props), {}, {
|
|
122
128
|
children: /*#__PURE__*/_jsxs(VStack, {
|
|
123
129
|
gap: 0.5,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { styleVarPrefixes } from './theme';
|
|
2
|
+
const periodsRegex = /\./g;
|
|
2
3
|
|
|
3
4
|
/** Takes a theme object and formats its keys as CSS variables to be used in inline styles. */
|
|
4
5
|
export const createThemeCssVars = theme => {
|
|
@@ -23,7 +24,7 @@ export const createThemeCssVars = theme => {
|
|
|
23
24
|
if (value === undefined) continue;
|
|
24
25
|
|
|
25
26
|
// Create CSS variable name, replacing periods with underscores
|
|
26
|
-
const cssVarName = "".concat(cssVarPrefix).concat(varName).
|
|
27
|
+
const cssVarName = "".concat(cssVarPrefix).concat(varName).replace(periodsRegex, '_');
|
|
27
28
|
|
|
28
29
|
// Format value (add px to numbers)
|
|
29
30
|
themeCss[cssVarName] = typeof value !== 'number' ? value : value + 'px';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbase/cds-web",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.16.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.16.1",
|
|
151
151
|
"@coinbase/cds-icons": "^5.4.2",
|
|
152
152
|
"@coinbase/cds-illustrations": "^4.23.1",
|
|
153
153
|
"@coinbase/cds-lottie-files": "^3.3.2",
|