@coinbase/cds-web 8.66.2 → 8.68.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dts/page/PageFooter.d.ts +4 -0
- package/dts/page/PageFooter.d.ts.map +1 -1
- package/dts/themes/coinbaseDenseTheme.d.ts +2 -2
- package/dts/themes/coinbaseTheme.d.ts +2 -2
- package/dts/themes/defaultTheme.d.ts +2 -2
- package/esm/page/PageFooter.js +20 -4
- package/esm/page/__figma__/PageFooter.figma.js +50 -6
- package/esm/themes/coinbaseTheme.js +2 -2
- package/esm/themes/defaultTheme.js +2 -2
- 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.68.0 (5/1/2026 PST)
|
|
12
|
+
|
|
13
|
+
#### 🚀 Updates
|
|
14
|
+
|
|
15
|
+
- Feat: update bgWarning to orange60. [[#659](https://github.com/coinbase/cds/pull/659)]
|
|
16
|
+
|
|
17
|
+
## 8.67.0 (5/1/2026 PST)
|
|
18
|
+
|
|
19
|
+
#### 🚀 Updates
|
|
20
|
+
|
|
21
|
+
- Feat: Add legalText prop to PageFooter component. [[#661](https://github.com/coinbase/cds/pull/661)]
|
|
22
|
+
|
|
11
23
|
## 8.66.2 (4/28/2026 PST)
|
|
12
24
|
|
|
13
25
|
#### 🐞 Fixes
|
package/dts/page/PageFooter.d.ts
CHANGED
|
@@ -13,6 +13,10 @@ export type PageFooterBaseProps = SharedProps &
|
|
|
13
13
|
* Set the background color of the box.
|
|
14
14
|
*/
|
|
15
15
|
background?: ThemeVars.Color;
|
|
16
|
+
/**
|
|
17
|
+
* Optional legal text rendered below the action in a pre-styled caption. Right-aligned on desktop, centered on mobile/responsive web.
|
|
18
|
+
*/
|
|
19
|
+
legalText?: string;
|
|
16
20
|
};
|
|
17
21
|
export declare const pageFooterPaddingX: ResponsiveProps<StaticStyleProps>['paddingX'];
|
|
18
22
|
export declare const pageFooterJustifyContent: ResponsiveProps<StaticStyleProps>['justifyContent'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageFooter.d.ts","sourceRoot":"","sources":["../../src/page/PageFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAO,KAAK,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"PageFooter.d.ts","sourceRoot":"","sources":["../../src/page/PageFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAO,KAAK,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG9E,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAC3C,cAAc,GAAG;IACf;+HAC2H;IAC3H,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEJ,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAInE,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAI/E,CAAC;AAQX,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,CACvD,QAAQ,CAAC,iBAAiB,CAAC,EAC3B,mBAAmB,CACpB,CAAC;AACF,eAAO,MAAM,UAAU,gIAoCtB,CAAC"}
|
|
@@ -415,7 +415,7 @@ export declare const coinbaseDenseTheme: {
|
|
|
415
415
|
readonly bgNegativeWash: 'rgb(255,245,246)';
|
|
416
416
|
readonly bgPositive: 'rgb(9,133,81)';
|
|
417
417
|
readonly bgPositiveWash: 'rgb(245,255,251)';
|
|
418
|
-
readonly bgWarning: 'rgb(
|
|
418
|
+
readonly bgWarning: 'rgb(207,71,14)';
|
|
419
419
|
readonly bgWarningWash: 'rgb(255,250,245)';
|
|
420
420
|
readonly currentColor: 'currentColor';
|
|
421
421
|
readonly bgLine: 'rgba(91,97,110,0.2)';
|
|
@@ -460,7 +460,7 @@ export declare const coinbaseDenseTheme: {
|
|
|
460
460
|
readonly bgNegativeWash: 'rgb(51,0,4)';
|
|
461
461
|
readonly bgPositive: 'rgb(39,173,117)';
|
|
462
462
|
readonly bgPositiveWash: 'rgb(0,31,18)';
|
|
463
|
-
readonly bgWarning: 'rgb(
|
|
463
|
+
readonly bgWarning: 'rgb(240,120,54)';
|
|
464
464
|
readonly bgWarningWash: 'rgb(51,13,0)';
|
|
465
465
|
readonly currentColor: 'currentColor';
|
|
466
466
|
readonly bgLine: 'rgba(138,145,158,0.2)';
|
|
@@ -312,7 +312,7 @@ export declare const coinbaseTheme: {
|
|
|
312
312
|
readonly bgNegativeWash: 'rgb(255,245,246)';
|
|
313
313
|
readonly bgPositive: 'rgb(9,133,81)';
|
|
314
314
|
readonly bgPositiveWash: 'rgb(245,255,251)';
|
|
315
|
-
readonly bgWarning: 'rgb(
|
|
315
|
+
readonly bgWarning: 'rgb(207,71,14)';
|
|
316
316
|
readonly bgWarningWash: 'rgb(255,250,245)';
|
|
317
317
|
readonly currentColor: 'currentColor';
|
|
318
318
|
readonly bgLine: 'rgba(91,97,110,0.2)';
|
|
@@ -357,7 +357,7 @@ export declare const coinbaseTheme: {
|
|
|
357
357
|
readonly bgNegativeWash: 'rgb(51,0,4)';
|
|
358
358
|
readonly bgPositive: 'rgb(39,173,117)';
|
|
359
359
|
readonly bgPositiveWash: 'rgb(0,31,18)';
|
|
360
|
-
readonly bgWarning: 'rgb(
|
|
360
|
+
readonly bgWarning: 'rgb(240,120,54)';
|
|
361
361
|
readonly bgWarningWash: 'rgb(51,13,0)';
|
|
362
362
|
readonly currentColor: 'currentColor';
|
|
363
363
|
readonly bgLine: 'rgba(138,145,158,0.2)';
|
|
@@ -312,7 +312,7 @@ export declare const defaultTheme: {
|
|
|
312
312
|
readonly bgNegativeWash: 'rgb(255,245,246)';
|
|
313
313
|
readonly bgPositive: 'rgb(9,133,81)';
|
|
314
314
|
readonly bgPositiveWash: 'rgb(245,255,251)';
|
|
315
|
-
readonly bgWarning: 'rgb(
|
|
315
|
+
readonly bgWarning: 'rgb(207,71,14)';
|
|
316
316
|
readonly bgWarningWash: 'rgb(255,250,245)';
|
|
317
317
|
readonly currentColor: 'currentColor';
|
|
318
318
|
readonly bgLine: 'rgba(91,97,110,0.2)';
|
|
@@ -357,7 +357,7 @@ export declare const defaultTheme: {
|
|
|
357
357
|
readonly bgNegativeWash: 'rgb(51,0,4)';
|
|
358
358
|
readonly bgPositive: 'rgb(39,173,117)';
|
|
359
359
|
readonly bgPositiveWash: 'rgb(0,31,18)';
|
|
360
|
-
readonly bgWarning: 'rgb(
|
|
360
|
+
readonly bgWarning: 'rgb(240,120,54)';
|
|
361
361
|
readonly bgWarningWash: 'rgb(51,13,0)';
|
|
362
362
|
readonly currentColor: 'currentColor';
|
|
363
363
|
readonly bgLine: 'rgba(138,145,158,0.2)';
|
package/esm/page/PageFooter.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _excluded = ["action", "height", "justifyContent", "paddingX", "paddingY", "role"];
|
|
1
|
+
const _excluded = ["action", "legalText", "height", "justifyContent", "paddingX", "paddingY", "role"];
|
|
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; }
|
|
@@ -10,7 +10,9 @@ import React, { forwardRef, memo } from 'react';
|
|
|
10
10
|
import { pageFooterHeight } from '@coinbase/cds-common/tokens/page';
|
|
11
11
|
import { useComponentConfig } from '../hooks/useComponentConfig';
|
|
12
12
|
import { Box } from '../layout/Box';
|
|
13
|
-
import {
|
|
13
|
+
import { VStack } from '../layout/VStack';
|
|
14
|
+
import { Text } from '../typography/Text';
|
|
15
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
16
|
export const pageFooterPaddingX = {
|
|
15
17
|
phone: 3,
|
|
16
18
|
tablet: 4,
|
|
@@ -21,11 +23,17 @@ export const pageFooterJustifyContent = {
|
|
|
21
23
|
tablet: 'flex-end',
|
|
22
24
|
desktop: 'flex-end'
|
|
23
25
|
};
|
|
26
|
+
const legalTextAlignItems = {
|
|
27
|
+
phone: 'center',
|
|
28
|
+
tablet: 'flex-end',
|
|
29
|
+
desktop: 'flex-end'
|
|
30
|
+
};
|
|
24
31
|
export const PageFooter = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_props, ref) => {
|
|
25
32
|
const mergedProps = useComponentConfig('PageFooter', _props);
|
|
26
33
|
const {
|
|
27
34
|
action,
|
|
28
|
-
|
|
35
|
+
legalText,
|
|
36
|
+
height = legalText ? undefined : pageFooterHeight,
|
|
29
37
|
justifyContent = pageFooterJustifyContent,
|
|
30
38
|
paddingX = pageFooterPaddingX,
|
|
31
39
|
paddingY = 1.5,
|
|
@@ -40,6 +48,14 @@ export const PageFooter = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_props, ref
|
|
|
40
48
|
paddingY: paddingY,
|
|
41
49
|
role: role
|
|
42
50
|
}, props), {}, {
|
|
43
|
-
children:
|
|
51
|
+
children: legalText ? /*#__PURE__*/_jsxs(VStack, {
|
|
52
|
+
alignItems: legalTextAlignItems,
|
|
53
|
+
gap: 2,
|
|
54
|
+
children: [action, /*#__PURE__*/_jsx(Text, {
|
|
55
|
+
color: "fgMuted",
|
|
56
|
+
font: "legal",
|
|
57
|
+
children: legalText
|
|
58
|
+
})]
|
|
59
|
+
}) : action
|
|
44
60
|
}));
|
|
45
61
|
}));
|
|
@@ -1,17 +1,61 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import { figma } from '@figma/code-connect';
|
|
3
|
+
import { Button } from '../../buttons/Button';
|
|
4
|
+
import { ButtonGroup } from '../../buttons/ButtonGroup';
|
|
2
5
|
import { PageFooter } from '../PageFooter';
|
|
3
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const url = 'https://www.figma.com/design/k5CtyJccNQUGMI5bI4lJ2g/✨-CDS-Components?node-id=17685%3A3266';
|
|
8
|
+
figma.connect(PageFooter, url, {
|
|
9
|
+
imports: ["import { PageFooter } from '@coinbase/cds-web/page/PageFooter'", "import { Button } from '@coinbase/cds-web/buttons/Button'"],
|
|
10
|
+
variant: {
|
|
11
|
+
'# of actions': '1'
|
|
12
|
+
},
|
|
6
13
|
props: {
|
|
7
|
-
action: figma.children('
|
|
14
|
+
action: figma.children('Button'),
|
|
15
|
+
legalText: figma.boolean('show legal text', {
|
|
16
|
+
true: 'Your legal text here.',
|
|
17
|
+
false: undefined
|
|
18
|
+
})
|
|
8
19
|
},
|
|
9
20
|
example: _ref => {
|
|
10
21
|
let {
|
|
11
|
-
|
|
22
|
+
legalText
|
|
12
23
|
} = _ref;
|
|
13
24
|
return /*#__PURE__*/_jsx(PageFooter, {
|
|
14
|
-
action:
|
|
25
|
+
action: /*#__PURE__*/_jsx(Button, {
|
|
26
|
+
variant: "primary",
|
|
27
|
+
children: "Next"
|
|
28
|
+
}),
|
|
29
|
+
legalText: legalText
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
figma.connect(PageFooter, url, {
|
|
34
|
+
imports: ["import { PageFooter } from '@coinbase/cds-web/page/PageFooter'", "import { Button } from '@coinbase/cds-web/buttons/Button'", "import { ButtonGroup } from '@coinbase/cds-web/buttons/ButtonGroup'"],
|
|
35
|
+
variant: {
|
|
36
|
+
'# of actions': '2'
|
|
37
|
+
},
|
|
38
|
+
props: {
|
|
39
|
+
legalText: figma.boolean('show legal text', {
|
|
40
|
+
true: 'Your legal text here.',
|
|
41
|
+
false: undefined
|
|
42
|
+
})
|
|
43
|
+
},
|
|
44
|
+
example: _ref2 => {
|
|
45
|
+
let {
|
|
46
|
+
legalText
|
|
47
|
+
} = _ref2;
|
|
48
|
+
return /*#__PURE__*/_jsx(PageFooter, {
|
|
49
|
+
action: /*#__PURE__*/_jsxs(ButtonGroup, {
|
|
50
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
51
|
+
variant: "secondary",
|
|
52
|
+
children: "Back"
|
|
53
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
54
|
+
variant: "primary",
|
|
55
|
+
children: "Next"
|
|
56
|
+
})]
|
|
57
|
+
}),
|
|
58
|
+
legalText: legalText
|
|
15
59
|
});
|
|
16
60
|
}
|
|
17
61
|
});
|
|
@@ -316,7 +316,7 @@ export const coinbaseTheme = {
|
|
|
316
316
|
bgNegativeWash: "rgb(".concat(lightSpectrum.red0, ")"),
|
|
317
317
|
bgPositive: "rgb(".concat(lightSpectrum.green60, ")"),
|
|
318
318
|
bgPositiveWash: "rgb(".concat(lightSpectrum.green0, ")"),
|
|
319
|
-
bgWarning: "rgb(".concat(lightSpectrum.
|
|
319
|
+
bgWarning: "rgb(".concat(lightSpectrum.orange60, ")"),
|
|
320
320
|
bgWarningWash: "rgb(".concat(lightSpectrum.orange0, ")"),
|
|
321
321
|
currentColor: 'currentColor',
|
|
322
322
|
// Line
|
|
@@ -367,7 +367,7 @@ export const coinbaseTheme = {
|
|
|
367
367
|
bgNegativeWash: "rgb(".concat(darkSpectrum.red0, ")"),
|
|
368
368
|
bgPositive: "rgb(".concat(darkSpectrum.green60, ")"),
|
|
369
369
|
bgPositiveWash: "rgb(".concat(darkSpectrum.green0, ")"),
|
|
370
|
-
bgWarning: "rgb(".concat(darkSpectrum.
|
|
370
|
+
bgWarning: "rgb(".concat(darkSpectrum.orange60, ")"),
|
|
371
371
|
bgWarningWash: "rgb(".concat(darkSpectrum.orange0, ")"),
|
|
372
372
|
currentColor: 'currentColor',
|
|
373
373
|
// Line
|
|
@@ -316,7 +316,7 @@ export const defaultTheme = {
|
|
|
316
316
|
bgNegativeWash: "rgb(".concat(lightSpectrum.red0, ")"),
|
|
317
317
|
bgPositive: "rgb(".concat(lightSpectrum.green60, ")"),
|
|
318
318
|
bgPositiveWash: "rgb(".concat(lightSpectrum.green0, ")"),
|
|
319
|
-
bgWarning: "rgb(".concat(lightSpectrum.
|
|
319
|
+
bgWarning: "rgb(".concat(lightSpectrum.orange60, ")"),
|
|
320
320
|
bgWarningWash: "rgb(".concat(lightSpectrum.orange0, ")"),
|
|
321
321
|
currentColor: 'currentColor',
|
|
322
322
|
// Line
|
|
@@ -367,7 +367,7 @@ export const defaultTheme = {
|
|
|
367
367
|
bgNegativeWash: "rgb(".concat(darkSpectrum.red0, ")"),
|
|
368
368
|
bgPositive: "rgb(".concat(darkSpectrum.green60, ")"),
|
|
369
369
|
bgPositiveWash: "rgb(".concat(darkSpectrum.green0, ")"),
|
|
370
|
-
bgWarning: "rgb(".concat(darkSpectrum.
|
|
370
|
+
bgWarning: "rgb(".concat(darkSpectrum.orange60, ")"),
|
|
371
371
|
bgWarningWash: "rgb(".concat(darkSpectrum.orange0, ")"),
|
|
372
372
|
currentColor: 'currentColor',
|
|
373
373
|
// Line
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbase/cds-web",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.68.0",
|
|
4
4
|
"description": "Coinbase Design System - Web",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
"react-dom": "^18.3.1"
|
|
208
208
|
},
|
|
209
209
|
"dependencies": {
|
|
210
|
-
"@coinbase/cds-common": "^8.
|
|
210
|
+
"@coinbase/cds-common": "^8.68.0",
|
|
211
211
|
"@coinbase/cds-icons": "^5.16.0",
|
|
212
212
|
"@coinbase/cds-illustrations": "^4.38.0",
|
|
213
213
|
"@coinbase/cds-lottie-files": "^3.3.4",
|