@coinbase/cds-web 8.59.0 → 8.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -8,6 +8,12 @@ All notable changes to this project will be documented in this file.
8
8
 
9
9
  <!-- template-start -->
10
10
 
11
+ ## 8.60.0 (3/29/2026 PST)
12
+
13
+ #### 🚀 Updates
14
+
15
+ - Add indeterminate ProgressCircle. [[#501](https://github.com/coinbase/cds/pull/501)]
16
+
11
17
  ## 8.59.0 (3/27/2026 PST)
12
18
 
13
19
  #### 🚀 Updates
@@ -7,6 +7,9 @@ import type {
7
7
  } from '@coinbase/cds-common/types';
8
8
  import type { Polymorphic } from '../core/polymorphism';
9
9
  import { type PressableBaseProps } from '../system/Pressable';
10
+ /** @deprecated Use progressCircleSize instead. This will be removed in a future major release.
11
+ * @deprecationExpectedRemoval v10
12
+ */
10
13
  export declare const spinnerHeight = 2.5;
11
14
  export declare const buttonDefaultElement = 'button';
12
15
  export type ButtonDefaultElement = typeof buttonDefaultElement;
@@ -23,6 +26,10 @@ export type ButtonBaseProps = Polymorphic.ExtendableProps<
23
26
  disabled?: boolean;
24
27
  /** Mark the button as loading and display a spinner. */
25
28
  loading?: boolean;
29
+ /** Size of the loading progress circle in px.
30
+ * @default 24
31
+ */
32
+ progressCircleSize?: number;
26
33
  /** Mark the background and border as transparent until interacted with. */
27
34
  transparent?: boolean;
28
35
  /** Change to block and expand to 100% of parent width. */
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/buttons/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,wBAAwB,EACxB,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAOzE,eAAO,MAAM,aAAa,MAAM,CAAC;AA8FjC,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,CACvD,kBAAkB,EAClB,WAAW,GACT,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,GAAG;IACrD;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,yBAAyB;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,iDAAiD;IACjD,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uBAAuB;IACvB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CACJ,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,WAAW,SAAS,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,CAChF,WAAW,EACX,eAAe,CAChB,CAAC;AAEF,KAAK,eAAe,GAAG,CAAC,CAAC,WAAW,SAAS,KAAK,CAAC,WAAW,GAAG,oBAAoB,EACnF,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,KAC5B,WAAW,CAAC,WAAW,CAAC,GAC3B,WAAW,CAAC,UAAU,CAAC;AAEzB,eAAO,MAAM,MAAM,EAAE,eAqIpB,CAAC"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/buttons/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,wBAAwB,EACxB,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQzE;;GAEG;AACH,eAAO,MAAM,aAAa,MAAM,CAAC;AAuFjC,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,CACvD,kBAAkB,EAClB,WAAW,GACT,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,GAAG;IACrD;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,yBAAyB;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,iDAAiD;IACjD,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uBAAuB;IACvB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CACJ,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,WAAW,SAAS,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,CAChF,WAAW,EACX,eAAe,CAChB,CAAC;AAEF,KAAK,eAAe,GAAG,CAAC,CAAC,WAAW,SAAS,KAAK,CAAC,WAAW,GAAG,oBAAoB,EACnF,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,KAC5B,WAAW,CAAC,WAAW,CAAC,GAC3B,WAAW,CAAC,UAAU,CAAC;AAEzB,eAAO,MAAM,MAAM,EAAE,eA4IpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../src/buttons/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAGxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKxD,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,UAAU,CAAC;AAW/D,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC;AAEvE,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,eAAe,CAC3D,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,EACpC,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG;IACxE,6CAA6C;IAC7C,IAAI,EAAE,QAAQ,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,CACF,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,WAAW,SAAS,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,CACpF,WAAW,EACX,mBAAmB,CACpB,CAAC;AAEF,KAAK,mBAAmB,GAAG,CAAC,CAAC,WAAW,SAAS,KAAK,CAAC,WAAW,GAAG,wBAAwB,EAC3F,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC,KAChC,WAAW,CAAC,WAAW,CAAC,GAC3B,WAAW,CAAC,UAAU,CAAC;AAgBzB,eAAO,MAAM,UAAU,EAAE,mBA+FxB,CAAC"}
1
+ {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../src/buttons/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAGxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAIhD,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC;AAEvE,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,eAAe,CAC3D,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,EACpC,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG;IACxE,6CAA6C;IAC7C,IAAI,EAAE,QAAQ,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,CACF,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,WAAW,SAAS,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,CACpF,WAAW,EACX,mBAAmB,CACpB,CAAC;AAEF,KAAK,mBAAmB,GAAG,CAAC,CAAC,WAAW,SAAS,KAAK,CAAC,WAAW,GAAG,wBAAwB,EAC3F,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC,KAChC,WAAW,CAAC,WAAW,CAAC,GAC3B,WAAW,CAAC,UAAU,CAAC;AAgBzB,eAAO,MAAM,UAAU,EAAE,mBAyFxB,CAAC"}
@@ -7,6 +7,10 @@ export type SpinnerBaseProps = {
7
7
  size: number;
8
8
  };
9
9
  export type SpinnerProps = SpinnerBaseProps & BoxProps<BoxDefaultElement>;
10
+ /**
11
+ * @deprecated Use indeterminate ProgressCircle component instead. This will be removed in a future major release.
12
+ * @deprecationExpectedRemoval v10
13
+ */
10
14
  export declare const Spinner: React.MemoExoticComponent<
11
15
  ({
12
16
  color,
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/loaders/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAI7C,OAAO,EAAO,KAAK,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI3E,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAgC1E,eAAO,MAAM,OAAO,sGASf,YAAY,6CAwBhB,CAAC"}
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/loaders/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAI7C,OAAO,EAAO,KAAK,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI3E,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAgC1E;;;GAGG;AACH,eAAO,MAAM,OAAO,sGASf,YAAY,6CAwBhB,CAAC"}
@@ -1,6 +1,5 @@
1
- import React from 'react';
2
1
  import type { ProgressCircleContentProps } from './ProgressCircle';
3
- export declare const DefaultProgressCircleContent: React.MemoExoticComponent<
2
+ export declare const DefaultProgressCircleContent: import('react').MemoExoticComponent<
4
3
  ({
5
4
  progress,
6
5
  disableAnimateOnMount,
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultProgressCircleContent.d.ts","sourceRoot":"","sources":["../../src/visualizations/DefaultProgressCircleContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGnE,eAAO,MAAM,4BAA4B,oFAMpC,0BAA0B,6CAU9B,CAAC"}
1
+ {"version":3,"file":"DefaultProgressCircleContent.d.ts","sourceRoot":"","sources":["../../src/visualizations/DefaultProgressCircleContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGnE,eAAO,MAAM,4BAA4B,8FAMpC,0BAA0B,6CAU9B,CAAC"}
@@ -6,7 +6,7 @@ export type ProgressBaseProps = SharedProps &
6
6
  Pick<HintMotionBaseProps, 'disableAnimateOnMount'> &
7
7
  Pick<SharedAccessibilityProps, 'accessibilityLabel'> & {
8
8
  /** Number between 0-1 representing the progress percentage */
9
- progress: number;
9
+ progress?: number;
10
10
  /** Toggle used to change thickness of progress visualization
11
11
  * @default normal
12
12
  * */
@@ -53,7 +53,7 @@ export declare const ProgressBar: React.MemoExoticComponent<
53
53
  Pick<HintMotionBaseProps, 'disableAnimateOnMount'> &
54
54
  Pick<SharedAccessibilityProps, 'accessibilityLabel'> & {
55
55
  /** Number between 0-1 representing the progress percentage */
56
- progress: number;
56
+ progress?: number;
57
57
  /** Toggle used to change thickness of progress visualization
58
58
  * @default normal
59
59
  * */
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../src/visualizations/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAOhG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAI3D,MAAM,MAAM,iBAAiB,GAAG,WAAW,GACzC,IAAI,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,GAClD,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,GAAG;IACrD,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB;;SAEK;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG;IACjD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAChC,CAAC;IACF,8EAA8E;IAC9E,UAAU,CAAC,EAAE;QACX,mBAAmB;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAQF,eAAO,MAAM,WAAW;IAlDpB,8DAA8D;cACpD,MAAM;IAChB;;SAEK;aACI,MAAM;IACf;;OAEG;eACQ,OAAO;IAClB;;;OAGG;YACK,SAAS,CAAC,KAAK;IACvB;;OAEG;qBACc,MAAM,IAAI;IAC3B;;OAEG;uBACgB,MAAM,IAAI;;YAIvB,KAAK,CAAC,aAAa;gBACf,MAAM;IAClB,yEAAyE;aAChE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAChC;IACD,8EAA8E;iBACjE;QACX,mBAAmB;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;yCA2FF,CAAC"}
1
+ {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../src/visualizations/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAOhG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAI3D,MAAM,MAAM,iBAAiB,GAAG,WAAW,GACzC,IAAI,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,GAClD,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,GAAG;IACrD,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;SAEK;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG;IACjD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAChC,CAAC;IACF,8EAA8E;IAC9E,UAAU,CAAC,EAAE;QACX,mBAAmB;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAQF,eAAO,MAAM,WAAW;IAlDpB,8DAA8D;eACnD,MAAM;IACjB;;SAEK;aACI,MAAM;IACf;;OAEG;eACQ,OAAO;IAClB;;;OAGG;YACK,SAAS,CAAC,KAAK;IACvB;;OAEG;qBACc,MAAM,IAAI;IAC3B;;OAEG;uBACgB,MAAM,IAAI;;YAIvB,KAAK,CAAC,aAAa;gBACf,MAAM;IAClB,yEAAyE;aAChE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAChC;IACD,8EAA8E;iBACjE;QACX,mBAAmB;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;yCA2FF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBarWithFloatLabel.d.ts","sourceRoot":"","sources":["../../src/visualizations/ProgressBarWithFloatLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8C,MAAM,OAAO,CAAC;AAGnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAc5D,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,8BAA8B,EAC5B,OAAO,GACP,UAAU,GACV,uBAAuB,GACvB,UAAU,GACV,gBAAgB,GAChB,QAAQ,GACR,YAAY,CACf,CAAC;AA0GF,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAC/C,iBAAiB,EACjB,UAAU,GAAG,uBAAuB,GAAG,UAAU,GAAG,QAAQ,CAC7D,GAAG;IACF,yHAAyH;IACzH,KAAK,EAAE,gBAAgB,CAAC;IACxB;;;SAGK;IACL,cAAc,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;IACvD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B,8BAA8B;QAC9B,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QACrC,oBAAoB;QACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC7B,CAAC;IACF,4FAA4F;IAC5F,UAAU,CAAC,EAAE;QACX,mBAAmB;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,8BAA8B;QAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,oBAAoB;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAC9C,KAAK,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAwCxD,CAAC"}
1
+ {"version":3,"file":"ProgressBarWithFloatLabel.d.ts","sourceRoot":"","sources":["../../src/visualizations/ProgressBarWithFloatLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAE9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAa5D,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG7F,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,8BAA8B,EAC5B,OAAO,GACP,UAAU,GACV,uBAAuB,GACvB,UAAU,GACV,gBAAgB,GAChB,QAAQ,GACR,YAAY,CACf,CAAC;AA8FF,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAC/C,iBAAiB,EACjB,UAAU,GAAG,uBAAuB,GAAG,UAAU,GAAG,QAAQ,CAC7D,GAAG;IACF,yHAAyH;IACzH,KAAK,EAAE,gBAAgB,CAAC;IACxB;;;SAGK;IACL,cAAc,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;IACvD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B,8BAA8B;QAC9B,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QACrC,oBAAoB;QACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC7B,CAAC;IACF,4FAA4F;IAC5F,UAAU,CAAC,EAAE;QACX,mBAAmB;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,8BAA8B;QAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,oBAAoB;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAC9C,KAAK,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAwCxD,CAAC"}
@@ -23,6 +23,10 @@ export type ProgressCircleBaseProps = ProgressBaseProps & {
23
23
  * Optional component to override the default content rendered inside the circle.
24
24
  */
25
25
  contentNode?: React.ReactNode;
26
+ /**
27
+ * Toggle used to show an indeterminate progress circle.
28
+ */
29
+ indeterminate?: boolean;
26
30
  };
27
31
  export type ProgressCircleProps = ProgressCircleBaseProps & {
28
32
  style?: React.CSSProperties;
@@ -65,7 +69,7 @@ export declare const ProgressCircle: React.MemoExoticComponent<
65
69
  import('@coinbase/cds-common').SharedProps &
66
70
  Pick<import('../motion/types').HintMotionBaseProps, 'disableAnimateOnMount'> &
67
71
  Pick<import('@coinbase/cds-common').SharedAccessibilityProps, 'accessibilityLabel'> & {
68
- progress: number;
72
+ progress?: number;
69
73
  weight?: import('@coinbase/cds-common').Weight;
70
74
  disabled?: boolean;
71
75
  color?: ThemeVars.Color;
@@ -93,6 +97,10 @@ export declare const ProgressCircle: React.MemoExoticComponent<
93
97
  * Optional component to override the default content rendered inside the circle.
94
98
  */
95
99
  contentNode?: React.ReactNode;
100
+ /**
101
+ * Toggle used to show an indeterminate progress circle.
102
+ */
103
+ indeterminate?: boolean;
96
104
  } & {
97
105
  style?: React.CSSProperties;
98
106
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressCircle.d.ts","sourceRoot":"","sources":["../../src/visualizations/ProgressCircle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmC,MAAM,OAAO,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAatD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAWvD,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG;IACxD;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,GAAG;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B,kBAAkB;QAClB,GAAG,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,gCAAgC;QAChC,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC7B,yCAAyC;QACzC,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAChC,CAAC;IACF,iFAAiF;IACjF,UAAU,CAAC,EAAE;QACX,mBAAmB;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,kBAAkB;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,gCAAgC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,yCAAyC;QACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,uBAAuB,EACvB,UAAU,GAAG,uBAAuB,GAAG,UAAU,CAClD,GAAG;IACF;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;CACzB,CAAC;AAkEF,eAAO,MAAM,cAAc;;;;;;;;IA7HzB;;OAEG;kBACW,OAAO;IACrB;;;;OAIG;eACQ,OAAO;IAClB;;;;;OAKG;WACI,MAAM;IACb;;OAEG;kBACW,KAAK,CAAC,SAAS;;YAIrB,KAAK,CAAC,aAAa;gBACf,MAAM;IAClB,4EAA4E;aACnE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B,kBAAkB;QAClB,GAAG,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,gCAAgC;QAChC,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC7B,yCAAyC;QACzC,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAChC;IACD,iFAAiF;iBACpE;QACX,mBAAmB;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,kBAAkB;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,gCAAgC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,yCAAyC;QACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;yCAkMF,CAAC"}
1
+ {"version":3,"file":"ProgressCircle.d.ts","sourceRoot":"","sources":["../../src/visualizations/ProgressCircle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmC,MAAM,OAAO,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAYtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAavD,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG;IACxD;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,GAAG;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B,kBAAkB;QAClB,GAAG,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,gCAAgC;QAChC,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC7B,yCAAyC;QACzC,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAChC,CAAC;IACF,iFAAiF;IACjF,UAAU,CAAC,EAAE;QACX,mBAAmB;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,kBAAkB;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,gCAAgC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,yCAAyC;QACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,uBAAuB,EACvB,UAAU,GAAG,uBAAuB,GAAG,UAAU,CAClD,GAAG;IACF;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;CACzB,CAAC;AA6EF,eAAO,MAAM,cAAc;;;;;;;;IA5IzB;;OAEG;kBACW,OAAO;IACrB;;;;OAIG;eACQ,OAAO;IAClB;;;;;OAKG;WACI,MAAM;IACb;;OAEG;kBACW,KAAK,CAAC,SAAS;IAC7B;;OAEG;oBACa,OAAO;;YAIf,KAAK,CAAC,aAAa;gBACf,MAAM;IAClB,4EAA4E;aACnE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B,kBAAkB;QAClB,GAAG,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,gCAAgC;QAChC,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC7B,yCAAyC;QACzC,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAChC;IACD,iFAAiF;iBACpE;QACX,mBAAmB;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,kBAAkB;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,gCAAgC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,yCAAyC;QACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;yCAmNF,CAAC"}
@@ -1,4 +1,4 @@
1
- const _excluded = ["as", "variant", "loading", "transparent", "block", "compact", "children", "start", "startIcon", "startIconActive", "end", "endIcon", "endIconActive", "flush", "noScaleOnPress", "numberOfLines", "font", "fontFamily", "fontSize", "fontWeight", "lineHeight", "background", "color", "className", "height", "borderColor", "borderWidth", "borderRadius", "accessibilityLabel", "padding", "paddingX", "margin", "minWidth"];
1
+ const _excluded = ["as", "variant", "loading", "progressCircleSize", "transparent", "block", "compact", "children", "start", "startIcon", "startIconActive", "end", "endIcon", "endIconActive", "flush", "noScaleOnPress", "numberOfLines", "font", "fontFamily", "fontSize", "fontWeight", "lineHeight", "background", "color", "className", "height", "borderColor", "borderWidth", "borderRadius", "accessibilityLabel", "padding", "paddingX", "margin", "minWidth"];
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,13 +10,18 @@ import React, { forwardRef, memo } from 'react';
10
10
  import { transparentVariants, variants } from '@coinbase/cds-common/tokens/button';
11
11
  import { cx } from '../cx';
12
12
  import { Icon } from '../icons/Icon';
13
- import { Spinner } from '../loaders/Spinner';
14
13
  import { Pressable } from '../system/Pressable';
15
14
  import { Text } from '../typography/Text';
15
+ import { ProgressCircle } from '../visualizations';
16
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
17
  const COMPONENT_STATIC_CLASSNAME = 'cds-Button';
18
18
  const DEFAULT_MIN_WIDTH = 100;
19
+
20
+ /** @deprecated Use progressCircleSize instead. This will be removed in a future major release.
21
+ * @deprecationExpectedRemoval v10
22
+ */
19
23
  export const spinnerHeight = 2.5;
24
+ const defaultProgressCircleSize = 24;
20
25
  const baseCss = "baseCss-b99zquh";
21
26
  const blockCss = "blockCss-b9yox33";
22
27
  const spinnerContainerCss = "spinnerContainerCss-s1bhvbb9";
@@ -29,20 +34,13 @@ const middleNodeCss = "middleNodeCss-m1avpq52";
29
34
  const flushSpaceCss = "flushSpaceCss-f69rtgb";
30
35
  const flushStartCss = "flushStartCss-f1aod6bi";
31
36
  const flushEndCss = "flushEndCss-fz9snbo";
32
- const spinnerStyle = {
33
- width: '24px',
34
- height: '24px',
35
- border: '2px solid',
36
- borderTopColor: 'var(--color-transparent)',
37
- borderRightColor: 'var(--color-transparent)',
38
- borderLeftColor: 'var(--color-transparent)'
39
- };
40
37
  export const buttonDefaultElement = 'button';
41
38
  export const Button = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
42
39
  let {
43
40
  as,
44
41
  variant = 'primary',
45
42
  loading,
43
+ progressCircleSize = defaultProgressCircleSize,
46
44
  transparent,
47
45
  block,
48
46
  compact,
@@ -123,10 +121,12 @@ export const Button = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
123
121
  className: middleNodeCss,
124
122
  children: [loading && /*#__PURE__*/_jsx("span", {
125
123
  className: spinnerContainerCss,
126
- children: /*#__PURE__*/_jsx(Spinner, {
124
+ children: /*#__PURE__*/_jsx(ProgressCircle, {
125
+ indeterminate: true,
126
+ accessibilityLabel: "Loading",
127
127
  color: "currentColor",
128
- size: spinnerHeight,
129
- style: spinnerStyle
128
+ size: progressCircleSize,
129
+ weight: "thin"
130
130
  })
131
131
  }), /*#__PURE__*/_jsx(Text, {
132
132
  color: "currentColor",
@@ -1,4 +1,3 @@
1
- @layer cds{.baseSpinnerCss-b1po8mo6{border:2px solid;border-top-color:var(--color-transparent);border-right-color:var(--color-transparent);border-left-color:var(--color-transparent);}
2
- .flushSpaceCss-fqg7x6g{min-width:unset;padding-inline-start:var(--space-2);padding-inline-end:var(--space-2);}
3
- .flushStartCss-f18p387c{margin-inline-start:calc(var(--space-2) * -1);}
4
- .flushEndCss-f10uyuq9{margin-inline-end:calc(var(--space-2) * -1);}}
1
+ @layer cds{.flushSpaceCss-f1po8mo6{min-width:unset;padding-inline-start:var(--space-2);padding-inline-end:var(--space-2);}
2
+ .flushStartCss-fqg7x6g{margin-inline-start:calc(var(--space-2) * -1);}
3
+ .flushEndCss-f18p387c{margin-inline-end:calc(var(--space-2) * -1);}}
@@ -1,4 +1,4 @@
1
- const _excluded = ["as", "variant", "transparent", "compact", "background", "color", "borderColor", "borderRadius", "borderWidth", "alignItems", "justifyContent", "height", "width", "className", "name", "iconSize", "active", "flush", "loading", "accessibilityLabel", "accessibilityHint"];
1
+ const _excluded = ["as", "variant", "transparent", "compact", "background", "color", "borderColor", "borderRadius", "borderWidth", "alignItems", "justifyContent", "height", "width", "className", "name", "iconSize", "active", "flush", "loading", "progressCircleSize", "accessibilityLabel", "accessibilityHint"];
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; }
@@ -6,21 +6,19 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
6
6
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
7
  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; }
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
- import React, { forwardRef, memo, useMemo } from 'react';
9
+ import React, { forwardRef, memo } from 'react';
10
10
  import { transparentVariants, variants } from '@coinbase/cds-common/tokens/button';
11
11
  import { cx } from '../cx';
12
12
  import { useTheme } from '../hooks/useTheme';
13
13
  import { Icon } from '../icons/Icon';
14
- import { Spinner } from '../loaders/Spinner';
15
14
  import { Pressable } from '../system/Pressable';
16
- import { spinnerHeight } from './Button';
15
+ import { ProgressCircle } from '../visualizations/ProgressCircle';
17
16
  import { jsx as _jsx } from "react/jsx-runtime";
18
17
  const COMPONENT_STATIC_CLASSNAME = 'cds-IconButton';
19
- const baseSpinnerCss = "baseSpinnerCss-b1po8mo6";
20
18
  export const iconButtonDefaultElement = 'button';
21
- const flushSpaceCss = "flushSpaceCss-fqg7x6g";
22
- const flushStartCss = "flushStartCss-f18p387c";
23
- const flushEndCss = "flushEndCss-f10uyuq9";
19
+ const flushSpaceCss = "flushSpaceCss-f1po8mo6";
20
+ const flushStartCss = "flushStartCss-fqg7x6g";
21
+ const flushEndCss = "flushEndCss-f18p387c";
24
22
  export const IconButton = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
25
23
  let {
26
24
  as,
@@ -43,6 +41,7 @@ export const IconButton = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref)
43
41
  active,
44
42
  flush,
45
43
  loading,
44
+ progressCircleSize,
46
45
  accessibilityLabel,
47
46
  accessibilityHint
48
47
  } = _ref,
@@ -50,10 +49,6 @@ export const IconButton = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref)
50
49
  const Component = as !== null && as !== void 0 ? as : iconButtonDefaultElement;
51
50
  const theme = useTheme();
52
51
  const iconSizeValue = theme.iconSize[iconSize];
53
- const spinnerSizeStyles = useMemo(() => ({
54
- width: iconSizeValue,
55
- height: iconSizeValue
56
- }), [iconSizeValue]);
57
52
  const variantMap = transparent ? transparentVariants : variants;
58
53
  const variantStyle = variantMap[variant];
59
54
  const colorValue = color !== null && color !== void 0 ? color : variantStyle.color;
@@ -81,12 +76,13 @@ export const IconButton = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref)
81
76
  transparentWhileInactive: transparent,
82
77
  width: width
83
78
  }, props), {}, {
84
- children: loading ? /*#__PURE__*/_jsx(Spinner, {
85
- className: baseSpinnerCss,
79
+ children: loading ? /*#__PURE__*/_jsx(ProgressCircle, {
80
+ indeterminate: true,
81
+ accessibilityLabel: "Loading",
86
82
  color: "currentColor",
87
- size: spinnerHeight,
88
- style: spinnerSizeStyles,
89
- testID: props.testID ? "".concat(props.testID, "-spinner") : undefined
83
+ size: progressCircleSize !== null && progressCircleSize !== void 0 ? progressCircleSize : iconSizeValue,
84
+ testID: props.testID ? "".concat(props.testID, "-progress-circle") : undefined,
85
+ weight: "thin"
90
86
  }) : /*#__PURE__*/_jsx(Icon, {
91
87
  active: active,
92
88
  color: "currentColor",
@@ -13,6 +13,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
13
13
  const COMPONENT_STATIC_CLASSNAME = 'cds-Spinner';
14
14
  const baseCss = "baseCss-bggfp25";
15
15
  const spinnerStatusCss = "spinnerStatusCss-s1pli158";
16
+
17
+ /**
18
+ * @deprecated Use indeterminate ProgressCircle component instead. This will be removed in a future major release.
19
+ * @deprecationExpectedRemoval v10
20
+ */
16
21
  export const Spinner = /*#__PURE__*/memo(_ref => {
17
22
  let {
18
23
  color = 'fgMuted',
@@ -1,9 +1,9 @@
1
- import React, { memo } from 'react';
1
+ import { memo } from 'react';
2
2
  import { ProgressTextLabel } from './ProgressTextLabel';
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
4
  export const DefaultProgressCircleContent = /*#__PURE__*/memo(_ref => {
5
5
  let {
6
- progress,
6
+ progress = 0,
7
7
  disableAnimateOnMount,
8
8
  disabled,
9
9
  color = 'fgMuted'
@@ -5,7 +5,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
5
5
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
6
  import React, { forwardRef, memo } from 'react';
7
7
  import { animateProgressBaseSpec } from '@coinbase/cds-common/animation/progress';
8
- import { useProgressSize } from '@coinbase/cds-common/visualizations/useProgressSize';
8
+ import { getProgressSize } from '@coinbase/cds-common/visualizations/getProgressSize';
9
9
  import { m as motion } from 'framer-motion';
10
10
  import { cx } from '../cx';
11
11
  import { Box, HStack } from '../layout';
@@ -17,7 +17,7 @@ const boxCss = "boxCss-bnvjmt8";
17
17
  export const ProgressBar = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, forwardedRef) => {
18
18
  let {
19
19
  weight = 'normal',
20
- progress,
20
+ progress = 0,
21
21
  color = 'bgPrimary',
22
22
  disabled,
23
23
  disableAnimateOnMount,
@@ -30,7 +30,7 @@ export const ProgressBar = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, forw
30
30
  onAnimationEnd,
31
31
  onAnimationStart
32
32
  } = _ref;
33
- const height = useProgressSize(weight);
33
+ const height = getProgressSize(weight);
34
34
 
35
35
  // start position of the progress bar on mount
36
36
  const initialTranslateX = isRtl() ? 100 : -100;
@@ -3,31 +3,30 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
3
3
  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; }
4
4
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
5
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
- import React, { memo, useCallback, useRef, useState } from 'react';
6
+ import React, { memo, useCallback, useEffect, useRef, useState } from 'react';
7
7
  import { animateProgressBaseSpec } from '@coinbase/cds-common/animation/progress';
8
- import { usePreviousValues } from '@coinbase/cds-common/hooks/usePreviousValues';
9
8
  import { isStorybook } from '@coinbase/cds-utils';
10
- import { m as motion, useAnimation } from 'framer-motion';
9
+ import { m as motion } from 'framer-motion';
11
10
  import { cx } from '../cx';
12
11
  import { useDimensions } from '../hooks/useDimensions';
13
- import { useIsoEffect } from '../hooks/useIsoEffect';
14
12
  import { Box } from '../layout/Box';
15
13
  import { VStack } from '../layout/VStack';
16
- import { convertTransition } from '../motion/utils';
14
+ import { useMotionProps } from '../motion/useMotionProps';
17
15
  import { isRtl } from '../utils/isRtl';
18
16
  import { getProgressBarLabelParts } from './getProgressBarLabelParts';
17
+ const MotionBox = motion(Box);
19
18
  import { ProgressTextLabel } from './ProgressTextLabel';
20
19
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
21
20
  const floatingTextContainerCss = "floatingTextContainerCss-f11geujd";
22
21
  const motionStyle = {
23
22
  originX: isRtl() ? 'left' : 'right'
24
23
  };
24
+ const getEndTranslateX = (containerWidth, textContainerWidth, progress) => isRtl() ? Math.min(containerWidth - textContainerWidth, containerWidth - containerWidth * progress) : Math.max(0, containerWidth * progress - textContainerWidth);
25
25
  const ProgressBarFloatLabel = /*#__PURE__*/memo(_ref => {
26
- var _getPreviousPercent;
27
26
  let {
28
27
  label,
29
28
  disabled,
30
- progress,
29
+ progress = 0,
31
30
  disableAnimateOnMount,
32
31
  labelPlacement,
33
32
  styles,
@@ -35,16 +34,7 @@ const ProgressBarFloatLabel = /*#__PURE__*/memo(_ref => {
35
34
  } = _ref;
36
35
  const containerRef = useRef(null);
37
36
  const textContainerRef = useRef(null);
38
- const {
39
- getPreviousValue: getPreviousPercent,
40
- addPreviousValue: addPreviousPercent
41
- } = usePreviousValues([disableAnimateOnMount ? progress : 0]);
42
- const animationControls = useAnimation();
43
- const [hasAnimationMounted, setHasAnimationMounted] = useState(!disableAnimateOnMount);
44
- addPreviousPercent(progress);
45
- const previousPercent = (_getPreviousPercent = getPreviousPercent()) !== null && _getPreviousPercent !== void 0 ? _getPreviousPercent : 0;
46
-
47
- // the animation uses a pixel translate which is outdated on a window resize, we have to account for this
37
+ const [targetX, setTargetX] = useState(null);
48
38
  const {
49
39
  observe,
50
40
  width: cWidth,
@@ -54,29 +44,29 @@ const ProgressBarFloatLabel = /*#__PURE__*/memo(_ref => {
54
44
  value: labelNum,
55
45
  render: renderLabel
56
46
  } = getProgressBarLabelParts(label);
57
- useIsoEffect(() => {
58
- if (textContainerRef.current && containerRef.current && cHeight > 0 && cWidth > 0) {
59
- const containerWidth = containerRef.current.offsetWidth;
60
- const textContainerWidth = textContainerRef.current.offsetWidth;
61
- const startLeftTranslate = isRtl() ? Math.min(containerWidth - textContainerWidth, containerWidth - containerWidth * previousPercent) : Math.max(0, containerWidth * previousPercent - textContainerWidth);
62
- const endLeftTranslate = isRtl() ? Math.min(containerWidth - textContainerWidth, containerWidth - containerWidth * progress) : Math.max(0, containerWidth * progress - textContainerWidth);
63
- if (!hasAnimationMounted && disableAnimateOnMount) {
64
- void animationControls.set({
65
- x: endLeftTranslate
66
- });
67
- setHasAnimationMounted(true);
68
- } else {
69
- void animationControls.start({
70
- x: [startLeftTranslate, endLeftTranslate],
71
- transition: convertTransition(animateProgressBaseSpec)
72
- });
73
- }
74
- }
75
- }, [progress, cWidth, cHeight, previousPercent, disableAnimateOnMount]);
47
+ useEffect(() => {
48
+ var _containerRef$current, _containerRef$current2, _textContainerRef$cur, _textContainerRef$cur2;
49
+ if (cWidth <= 0 || cHeight <= 0) return;
50
+ const containerWidth = (_containerRef$current = (_containerRef$current2 = containerRef.current) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.offsetWidth) !== null && _containerRef$current !== void 0 ? _containerRef$current : cWidth;
51
+ const textContainerWidth = (_textContainerRef$cur = (_textContainerRef$cur2 = textContainerRef.current) === null || _textContainerRef$cur2 === void 0 ? void 0 : _textContainerRef$cur2.offsetWidth) !== null && _textContainerRef$cur !== void 0 ? _textContainerRef$cur : 0;
52
+ setTargetX(getEndTranslateX(containerWidth, textContainerWidth, progress));
53
+ }, [progress, cWidth, cHeight]);
76
54
  const setupContainerRef = useCallback(ref => {
77
55
  containerRef.current = ref;
78
56
  observe(ref);
79
57
  }, [observe]);
58
+ const motionProps = useMotionProps({
59
+ style: motionStyle,
60
+ animate: {
61
+ x: targetX !== null && targetX !== void 0 ? targetX : 0,
62
+ opacity: targetX !== null ? 1 : 0
63
+ },
64
+ initial: !progress || disableAnimateOnMount ? false : {
65
+ x: 0,
66
+ opacity: 0
67
+ },
68
+ transition: animateProgressBaseSpec
69
+ });
80
70
  return /*#__PURE__*/_jsx(Box, {
81
71
  ref: setupContainerRef,
82
72
  alignItems: "center",
@@ -86,14 +76,14 @@ const ProgressBarFloatLabel = /*#__PURE__*/memo(_ref => {
86
76
  style: styles === null || styles === void 0 ? void 0 : styles.labelContainer,
87
77
  testID: "cds-progress-label-container",
88
78
  width: "100%",
89
- children: /*#__PURE__*/_jsx(motion.div, {
79
+ children: /*#__PURE__*/_jsx(MotionBox, {
90
80
  ref: textContainerRef,
91
- animate: animationControls,
81
+ animate: motionProps.animate,
92
82
  className: floatingTextContainerCss,
93
83
  "data-testid": "cds-progress-bar-float-label",
94
- style: _objectSpread(_objectSpread({}, motionStyle), {}, {
95
- opacity: hasAnimationMounted ? 1 : 0
96
- }),
84
+ initial: motionProps.initial,
85
+ style: motionProps.style,
86
+ transition: motionProps.transition,
97
87
  children: /*#__PURE__*/_jsx(ProgressTextLabel, {
98
88
  className: classNames === null || classNames === void 0 ? void 0 : classNames.label,
99
89
  color: "fgMuted",
@@ -1 +1,2 @@
1
- @layer cds{.svgCss-sq4tjn4{display:block;max-width:100%;}}
1
+ @layer cds{.svgCss-sq4tjn4{display:block;max-width:100%;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}
2
+ .indeterminateProgressCircleCss-iqcdca3{-webkit-animation:spin-indeterminateProgressCircleCss-iqcdca3 1000ms linear infinite;animation:spin-indeterminateProgressCircleCss-iqcdca3 1000ms linear infinite;}@-webkit-keyframes spin-indeterminateProgressCircleCss-iqcdca3{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}@keyframes spin-indeterminateProgressCircleCss-iqcdca3{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}}
@@ -5,9 +5,8 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
5
5
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
6
  import React, { forwardRef, memo, useRef } from 'react';
7
7
  import { animateProgressBaseSpec } from '@coinbase/cds-common/animation/progress';
8
- import { getCircumference, getRadius } from '@coinbase/cds-common/utils/circle';
9
8
  import { getProgressCircleParams } from '@coinbase/cds-common/visualizations/getProgressCircleParams';
10
- import { useProgressSize } from '@coinbase/cds-common/visualizations/useProgressSize';
9
+ import { getProgressSize } from '@coinbase/cds-common/visualizations/getProgressSize';
11
10
  import { m as motion } from 'framer-motion';
12
11
  import { cx } from '../cx';
13
12
  import { Box } from '../layout/Box';
@@ -16,12 +15,13 @@ import { DefaultProgressCircleContent } from './DefaultProgressCircleContent';
16
15
  import { VisualizationContainer } from './VisualizationContainer';
17
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
17
  const svgCss = "svgCss-sq4tjn4";
18
+ const indeterminateProgressCircleCss = "indeterminateProgressCircleCss-iqcdca3";
19
19
  const ProgressCircleInner = /*#__PURE__*/memo(_ref => {
20
20
  let {
21
+ strokeWidth,
21
22
  size,
22
- progress,
23
+ progress = 0,
23
24
  color,
24
- weight,
25
25
  visuallyDisabled,
26
26
  style,
27
27
  className,
@@ -29,10 +29,8 @@ const ProgressCircleInner = /*#__PURE__*/memo(_ref => {
29
29
  onAnimationStart,
30
30
  disableAnimateOnMount
31
31
  } = _ref;
32
- const strokeWidth = useProgressSize(weight);
33
32
  const circleRef = useRef(null);
34
- const circumference = getCircumference(getRadius(size, strokeWidth));
35
- const progressOffset = (1 - progress) * circumference;
33
+ const progressOffset = 1 - progress;
36
34
  const motionProps = useMotionProps({
37
35
  style: _objectSpread(_objectSpread({}, style), {}, {
38
36
  rotate: -90
@@ -42,13 +40,14 @@ const ProgressCircleInner = /*#__PURE__*/memo(_ref => {
42
40
  },
43
41
  transition: animateProgressBaseSpec,
44
42
  initial: {
45
- strokeDashoffset: disableAnimateOnMount ? progressOffset : circumference
43
+ strokeDashoffset: disableAnimateOnMount ? progressOffset : 1
46
44
  }
47
45
  });
48
46
  return /*#__PURE__*/_jsx(motion.circle, _objectSpread(_objectSpread(_objectSpread({
49
47
  ref: circleRef,
50
48
  "data-testid": "cds-progress-circle-inner",
51
- strokeDasharray: circumference,
49
+ pathLength: 1,
50
+ strokeDasharray: 1,
52
51
  strokeLinecap: "round"
53
52
  }, motionProps), getProgressCircleParams({
54
53
  size,
@@ -62,16 +61,17 @@ const ProgressCircleInner = /*#__PURE__*/memo(_ref => {
62
61
  });
63
62
  export const ProgressCircle = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref2, forwardedRef) => {
64
63
  let {
64
+ indeterminate,
65
65
  weight = 'normal',
66
- progress,
67
- color = 'bgPrimary',
66
+ progress = indeterminate ? 0.75 : 0,
67
+ color = indeterminate ? 'fgMuted' : 'bgPrimary',
68
68
  disabled,
69
- disableAnimateOnMount,
69
+ disableAnimateOnMount = indeterminate ? true : false,
70
70
  testID,
71
71
  hideContent,
72
72
  hideText,
73
73
  size,
74
- accessibilityLabel,
74
+ accessibilityLabel = indeterminate ? 'Loading' : undefined,
75
75
  contentNode,
76
76
  style,
77
77
  styles,
@@ -80,8 +80,8 @@ export const ProgressCircle = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref2,
80
80
  onAnimationEnd,
81
81
  onAnimationStart
82
82
  } = _ref2;
83
- const strokeWidth = useProgressSize(weight);
84
83
  const visSize = size !== null && size !== void 0 ? size : '100%';
84
+ const strokeWidth = getProgressSize(weight);
85
85
  return /*#__PURE__*/_jsx(VisualizationContainer, {
86
86
  height: visSize,
87
87
  width: visSize,
@@ -91,75 +91,72 @@ export const ProgressCircle = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref2,
91
91
  height,
92
92
  circleSize
93
93
  } = _ref3;
94
- return /*#__PURE__*/_jsx(Box, {
94
+ return /*#__PURE__*/_jsxs(Box, _objectSpread(_objectSpread({
95
95
  ref: forwardedRef,
96
96
  accessibilityLabel: accessibilityLabel,
97
- alignItems: "center",
98
- "aria-valuemax": 100,
99
- "aria-valuemin": 0,
100
- "aria-valuenow": Math.round(progress * 100),
97
+ alignItems: "center"
98
+ }, indeterminate ? {} : {
99
+ 'aria-valuemax': 100,
100
+ 'aria-valuemin': 0,
101
+ 'aria-valuenow': Math.round(progress * 100)
102
+ }), {}, {
101
103
  className: cx(className, classNames === null || classNames === void 0 ? void 0 : classNames.root),
102
104
  height: height,
103
105
  justifyContent: "center",
106
+ position: "relative",
104
107
  role: "progressbar",
105
108
  style: _objectSpread(_objectSpread({}, style), styles === null || styles === void 0 ? void 0 : styles.root),
106
109
  testID: testID,
107
110
  title: accessibilityLabel,
108
111
  width: width,
109
- children: /*#__PURE__*/_jsxs(Box, {
110
- flexGrow: 0,
111
- flexShrink: 0,
112
+ children: [/*#__PURE__*/_jsxs("svg", {
113
+ "aria-hidden": true,
114
+ className: cx(svgCss, classNames === null || classNames === void 0 ? void 0 : classNames.svg, indeterminate && indeterminateProgressCircleCss),
112
115
  height: circleSize,
113
- position: "relative",
116
+ style: styles === null || styles === void 0 ? void 0 : styles.svg,
114
117
  width: circleSize,
115
- children: [/*#__PURE__*/_jsxs("svg", {
116
- "aria-hidden": true,
117
- className: cx(svgCss, classNames === null || classNames === void 0 ? void 0 : classNames.svg),
118
- height: circleSize,
119
- style: styles === null || styles === void 0 ? void 0 : styles.svg,
120
- width: circleSize,
121
- children: [/*#__PURE__*/_jsx("circle", _objectSpread(_objectSpread({}, getProgressCircleParams({
122
- size: circleSize,
123
- strokeWidth,
124
- stroke: 'var(--color-bgLine)'
125
- })), {}, {
126
- className: classNames === null || classNames === void 0 ? void 0 : classNames.circle,
127
- style: styles === null || styles === void 0 ? void 0 : styles.circle
128
- })), /*#__PURE__*/_jsx(ProgressCircleInner, {
129
- className: classNames === null || classNames === void 0 ? void 0 : classNames.progress,
130
- color: color,
131
- disableAnimateOnMount: disableAnimateOnMount,
132
- onAnimationEnd: onAnimationEnd,
133
- onAnimationStart: onAnimationStart,
134
- progress: progress,
135
- size: circleSize,
136
- style: styles === null || styles === void 0 ? void 0 : styles.progress,
137
- visuallyDisabled: disabled,
138
- weight: weight
139
- })]
140
- }, circleSize), !hideText && !hideContent && /*#__PURE__*/_jsx(Box, {
118
+ children: [/*#__PURE__*/_jsx("circle", _objectSpread(_objectSpread({}, getProgressCircleParams({
119
+ size: circleSize,
120
+ strokeWidth,
121
+ stroke: 'var(--color-bgLine)'
122
+ })), {}, {
123
+ className: classNames === null || classNames === void 0 ? void 0 : classNames.circle,
124
+ style: styles === null || styles === void 0 ? void 0 : styles.circle
125
+ })), /*#__PURE__*/_jsx(ProgressCircleInner, {
126
+ className: classNames === null || classNames === void 0 ? void 0 : classNames.progress,
127
+ color: color,
128
+ disableAnimateOnMount: disableAnimateOnMount,
129
+ indeterminate: indeterminate,
130
+ onAnimationEnd: onAnimationEnd,
131
+ onAnimationStart: onAnimationStart,
132
+ progress: progress,
133
+ size: circleSize,
134
+ strokeWidth: strokeWidth,
135
+ style: styles === null || styles === void 0 ? void 0 : styles.progress,
136
+ visuallyDisabled: disabled
137
+ })]
138
+ }, circleSize), !hideText && !hideContent && /*#__PURE__*/_jsx(Box, {
139
+ height: "100%",
140
+ position: "absolute",
141
+ style: {
142
+ padding: strokeWidth
143
+ },
144
+ width: "100%",
145
+ children: /*#__PURE__*/_jsx(Box, {
146
+ alignItems: "center",
147
+ borderRadius: 1000,
141
148
  height: "100%",
142
- position: "absolute",
143
- style: {
144
- padding: strokeWidth
145
- },
149
+ justifyContent: "center",
150
+ overflow: "clip",
146
151
  width: "100%",
147
- children: /*#__PURE__*/_jsx(Box, {
148
- alignItems: "center",
149
- borderRadius: 1000,
150
- height: "100%",
151
- justifyContent: "center",
152
- overflow: "clip",
153
- width: "100%",
154
- children: contentNode !== null && contentNode !== void 0 ? contentNode : /*#__PURE__*/_jsx(DefaultProgressCircleContent, {
155
- disableAnimateOnMount: disableAnimateOnMount,
156
- disabled: disabled,
157
- progress: progress
158
- })
152
+ children: contentNode !== null && contentNode !== void 0 ? contentNode : !indeterminate && /*#__PURE__*/_jsx(DefaultProgressCircleContent, {
153
+ disableAnimateOnMount: disableAnimateOnMount,
154
+ disabled: disabled,
155
+ progress: progress
159
156
  })
160
- })]
161
- })
162
- });
157
+ })
158
+ })]
159
+ }));
163
160
  }
164
161
  });
165
162
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cds-web",
3
- "version": "8.59.0",
3
+ "version": "8.60.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.59.0",
210
+ "@coinbase/cds-common": "^8.60.0",
211
211
  "@coinbase/cds-icons": "^5.13.0",
212
212
  "@coinbase/cds-illustrations": "^4.36.0",
213
213
  "@coinbase/cds-lottie-files": "^3.3.4",