@coinbase/cds-mobile 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.
Files changed (46) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dts/buttons/Button.d.ts +8 -0
  3. package/dts/buttons/Button.d.ts.map +1 -1
  4. package/dts/buttons/DefaultSlideButtonHandle.d.ts.map +1 -1
  5. package/dts/buttons/IconButton.d.ts +12 -7
  6. package/dts/buttons/IconButton.d.ts.map +1 -1
  7. package/dts/controls/InputIconButton.d.ts +1 -1
  8. package/dts/loaders/Spinner.d.ts +4 -0
  9. package/dts/loaders/Spinner.d.ts.map +1 -1
  10. package/dts/visualizations/ProgressBar.d.ts +2 -2
  11. package/dts/visualizations/ProgressBar.d.ts.map +1 -1
  12. package/dts/visualizations/ProgressBarWithFloatLabel.d.ts.map +1 -1
  13. package/dts/visualizations/ProgressCircle.d.ts +9 -1
  14. package/dts/visualizations/ProgressCircle.d.ts.map +1 -1
  15. package/esm/alpha/select/__stories__/AlphaSelect.stories.js +13 -9
  16. package/esm/buttons/Button.js +10 -5
  17. package/esm/buttons/DefaultSlideButtonHandle.js +7 -6
  18. package/esm/buttons/IconButton.js +18 -8
  19. package/esm/buttons/__stories__/Button.stories.js +28 -0
  20. package/esm/buttons/__stories__/IconButton.stories.js +116 -1
  21. package/esm/loaders/Spinner.js +5 -0
  22. package/esm/overlays/__stories__/AlertBasic.stories.js +2 -2
  23. package/esm/overlays/__stories__/AlertLongTitle.stories.js +2 -2
  24. package/esm/overlays/__stories__/AlertOverModal.stories.js +2 -10
  25. package/esm/overlays/__stories__/AlertPortal.stories.js +2 -6
  26. package/esm/overlays/__stories__/AlertSingleAction.stories.js +2 -2
  27. package/esm/overlays/__stories__/AlertVerticalActions.stories.js +2 -2
  28. package/esm/overlays/__stories__/DrawerFallback.stories.js +20 -13
  29. package/esm/overlays/__stories__/DrawerScrollable.stories.js +8 -1
  30. package/esm/overlays/__stories__/Drawers.js +4 -4
  31. package/esm/overlays/__stories__/ModalBackButton.stories.js +2 -2
  32. package/esm/overlays/__stories__/ModalBasic.stories.js +2 -2
  33. package/esm/overlays/__stories__/ModalCustomPadding.stories.js +2 -2
  34. package/esm/overlays/__stories__/ModalLong.stories.js +2 -2
  35. package/esm/overlays/__stories__/ModalPortal.stories.js +2 -6
  36. package/esm/overlays/__stories__/Overlay.stories.js +2 -6
  37. package/esm/overlays/__stories__/TrayNavigation.stories.js +6 -2
  38. package/esm/overlays/__stories__/Trays.js +20 -11
  39. package/esm/sticky-footer/__stories__/StickyFooter.stories.js +2 -2
  40. package/esm/sticky-footer/__stories__/StickyFooterWithTray.stories.js +3 -3
  41. package/esm/visualizations/DefaultProgressCircleContent.js +1 -1
  42. package/esm/visualizations/ProgressBar.js +3 -3
  43. package/esm/visualizations/ProgressBarWithFloatLabel.js +19 -28
  44. package/esm/visualizations/ProgressCircle.js +80 -60
  45. package/esm/visualizations/__stories__/ProgressCircle.stories.js +63 -11
  46. package/package.json +2 -2
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
@@ -35,6 +35,10 @@ export type ButtonBaseProps = SharedProps &
35
35
  disabled?: boolean;
36
36
  /** Mark the button as loading and display a spinner. */
37
37
  loading?: boolean;
38
+ /** Size of the loading progress circle in px.
39
+ * @default 24
40
+ */
41
+ progressCircleSize?: number;
38
42
  /** Mark the background and border as transparent until interacted with. */
39
43
  transparent?: boolean;
40
44
  /** Change to block and expand to 100% of parent width. */
@@ -96,6 +100,10 @@ export declare const Button: React.MemoExoticComponent<
96
100
  disabled?: boolean;
97
101
  /** Mark the button as loading and display a spinner. */
98
102
  loading?: boolean;
103
+ /** Size of the loading progress circle in px.
104
+ * @default 24
105
+ */
106
+ progressCircleSize?: number;
99
107
  /** Mark the background and border as transparent until interacted with. */
100
108
  transparent?: boolean;
101
109
  /** 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,KAAiE,MAAM,OAAO,CAAC;AACtF,OAAO,EAIL,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,wBAAwB,EACxB,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAejB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,WAAW,GACvC,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,GACpD,kBAAkB,GAAG;IACnB;;;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,CAAC;AAEJ,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AAE1C,eAAO,MAAM,MAAM;;;;;;;;;IA/Cf;;;OAGG;cACO,aAAa;IACvB,mCAAmC;eACxB,OAAO;IAClB,wDAAwD;cAC9C,OAAO;IACjB,2EAA2E;kBAC7D,OAAO;IACrB,0DAA0D;YAClD,OAAO;IACf,yDAAyD;cAC/C,OAAO;IACjB,4CAA4C;cAClC,KAAK,CAAC,SAAS;IACzB,yBAAyB;YACjB,KAAK,CAAC,SAAS;IACvB,iDAAiD;gBACrC,QAAQ;IACpB,uCAAuC;sBACrB,OAAO;IACzB,uBAAuB;UACjB,KAAK,CAAC,SAAS;IACrB,+CAA+C;cACrC,QAAQ;IAClB,qCAAqC;oBACrB,OAAO;IACvB;;;OAGG;YACK,OAAO,GAAG,KAAK;IACvB,kDAAkD;WAC3C,MAAM;IACb,oCAAoC;qBACnB,OAAO;IACxB;;;OAGG;oBACa,MAAM;+BAgKzB,CAAC"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/buttons/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiE,MAAM,OAAO,CAAC;AACtF,OAAO,EAIL,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,wBAAwB,EACxB,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAMzE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAejB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,WAAW,GACvC,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,GACpD,kBAAkB,GAAG;IACnB;;;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,CAAC;AAEJ,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AAE1C,eAAO,MAAM,MAAM;;;;;;;;;IAnDf;;;OAGG;cACO,aAAa;IACvB,mCAAmC;eACxB,OAAO;IAClB,wDAAwD;cAC9C,OAAO;IACjB;;OAEG;yBACkB,MAAM;IAC3B,2EAA2E;kBAC7D,OAAO;IACrB,0DAA0D;YAClD,OAAO;IACf,yDAAyD;cAC/C,OAAO;IACjB,4CAA4C;cAClC,KAAK,CAAC,SAAS;IACzB,yBAAyB;YACjB,KAAK,CAAC,SAAS;IACvB,iDAAiD;gBACrC,QAAQ;IACpB,uCAAuC;sBACrB,OAAO;IACzB,uBAAuB;UACjB,KAAK,CAAC,SAAS;IACrB,+CAA+C;cACrC,QAAQ;IAClB,qCAAqC;oBACrB,OAAO;IACvB;;;OAGG;YACK,OAAO,GAAG,KAAK;IACvB,kDAAkD;WAC3C,MAAM;IACb,oCAAoC;qBACnB,OAAO;IACxB;;;OAGG;oBACa,MAAM;+BAsKzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultSlideButtonHandle.d.ts","sourceRoot":"","sources":["../../src/buttons/DefaultSlideButtonHandle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAiBzC,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,eAAe,CAAC;AAElF,eAAO,MAAM,eAAe;;;CAAgE,CAAC;AAE7F,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG;IAC9F,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG,CAC9C,KAAK,EAAE,6BAA6B,KACjC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAE/B,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG;IAChG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG,CAChD,KAAK,EAAE,+BAA+B,KACnC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAE/B,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;CAgBjB,CAAC;AAEH,eAAO,MAAM,wBAAwB,sDACT,6BAA6B,6CAmBxD,CAAC;AAEF,eAAO,MAAM,0BAA0B,iDAChB,+BAA+B,6CAgBrD,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;+BAuFpC,CAAC"}
1
+ {"version":3,"file":"DefaultSlideButtonHandle.d.ts","sourceRoot":"","sources":["../../src/buttons/DefaultSlideButtonHandle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAgBzC,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,eAAe,CAAC;AAElF,eAAO,MAAM,eAAe;;;CAAgE,CAAC;AAI7F,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG;IAC9F,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG,CAC9C,KAAK,EAAE,6BAA6B,KACjC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAE/B,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG;IAChG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG,CAChD,KAAK,EAAE,+BAA+B,KACnC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAE/B,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;CAgBjB,CAAC;AAEH,eAAO,MAAM,wBAAwB,sDACT,6BAA6B,6CAyBxD,CAAC;AAEF,eAAO,MAAM,0BAA0B,iDAChB,+BAA+B,6CAgBrD,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;+BAuFpC,CAAC"}
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { type View } from 'react-native';
3
2
  import type {
4
3
  IconButtonVariant,
@@ -7,10 +6,13 @@ import type {
7
6
  SharedProps,
8
7
  } from '@coinbase/cds-common/types';
9
8
  import { type PressableBaseProps } from '../system/Pressable';
10
- import type { ButtonBaseProps } from './Button';
9
+ import { type ButtonBaseProps } from './Button';
11
10
  export type IconButtonBaseProps = SharedProps &
12
11
  Omit<PressableBaseProps, 'children'> &
13
- Pick<ButtonBaseProps, 'disabled' | 'transparent' | 'compact' | 'flush' | 'loading'> & {
12
+ Pick<
13
+ ButtonBaseProps,
14
+ 'disabled' | 'transparent' | 'compact' | 'flush' | 'loading' | 'progressCircleSize'
15
+ > & {
14
16
  /** Name of the icon, as defined in Figma. */
15
17
  name: IconName;
16
18
  /**
@@ -27,11 +29,14 @@ export type IconButtonBaseProps = SharedProps &
27
29
  variant?: IconButtonVariant;
28
30
  };
29
31
  export type IconButtonProps = IconButtonBaseProps;
30
- export declare const IconButton: React.MemoExoticComponent<
31
- React.ForwardRefExoticComponent<
32
+ export declare const IconButton: import('react').MemoExoticComponent<
33
+ import('react').ForwardRefExoticComponent<
32
34
  SharedProps &
33
35
  Omit<PressableBaseProps, 'children'> &
34
- Pick<ButtonBaseProps, 'transparent' | 'disabled' | 'loading' | 'compact' | 'flush'> & {
36
+ Pick<
37
+ ButtonBaseProps,
38
+ 'transparent' | 'disabled' | 'loading' | 'progressCircleSize' | 'compact' | 'flush'
39
+ > & {
35
40
  /** Name of the icon, as defined in Figma. */
36
41
  name: IconName;
37
42
  /**
@@ -46,7 +51,7 @@ export declare const IconButton: React.MemoExoticComponent<
46
51
  * @default primary
47
52
  */
48
53
  variant?: IconButtonVariant;
49
- } & React.RefAttributes<View>
54
+ } & import('react').RefAttributes<View>
50
55
  >
51
56
  >;
52
57
  //# sourceMappingURL=IconButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../src/buttons/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EAGL,KAAK,IAAI,EAEV,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACV,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAC3C,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,GACpC,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG;IACpF,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,CAAC;AAEJ,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAElD,eAAO,MAAM,UAAU;IAlBnB,6CAA6C;UACvC,QAAQ;IACd;;;OAGG;eACQ,QAAQ;IACnB,iCAAiC;aACxB,OAAO;IAChB;;;OAGG;cACO,iBAAiB;+BAkG9B,CAAC"}
1
+ {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../src/buttons/IconButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAAmC,KAAK,IAAI,EAAkB,MAAM,cAAc,CAAC;AAG1F,OAAO,KAAK,EACV,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAC3C,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,GACpC,IAAI,CACF,eAAe,EACf,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,oBAAoB,CACpF,GAAG;IACF,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,CAAC;AAEJ,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAElD,eAAO,MAAM,UAAU;IAlBnB,6CAA6C;UACvC,QAAQ;IACd;;;OAGG;eACQ,QAAQ;IACnB,iCAAiC;aACxB,OAAO;IAChB;;;OAGG;cACO,iBAAiB;yCAsG9B,CAAC"}
@@ -16,7 +16,7 @@ export declare const InputIconButton: React.MemoExoticComponent<
16
16
  Omit<import('../system').PressableBaseProps, 'children'> &
17
17
  Pick<
18
18
  import('../buttons').ButtonBaseProps,
19
- 'transparent' | 'disabled' | 'loading' | 'compact' | 'flush'
19
+ 'transparent' | 'disabled' | 'loading' | 'progressCircleSize' | 'compact' | 'flush'
20
20
  > & {
21
21
  name: import('@coinbase/cds-common').IconName;
22
22
  iconSize?: import('@coinbase/cds-common').IconSize;
@@ -1,4 +1,8 @@
1
1
  import React from 'react';
2
2
  import type { ActivityIndicatorProps } from 'react-native';
3
+ /**
4
+ * @deprecated Use indeterminate ProgressCircle or ActivityIndicator component instead. This will be removed in a future major release.
5
+ * @deprecationExpectedRemoval v10
6
+ */
3
7
  export declare const Spinner: React.NamedExoticComponent<ActivityIndicatorProps>;
4
8
  //# sourceMappingURL=Spinner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/loaders/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAI3D,eAAO,MAAM,OAAO,oDAoBlB,CAAC"}
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/loaders/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAI3D;;;GAGG;AACH,eAAO,MAAM,OAAO,oDAoBlB,CAAC"}
@@ -7,7 +7,7 @@ export type ProgressBaseProps = SharedProps &
7
7
  Pick<HintMotionBaseProps, 'disableAnimateOnMount'> &
8
8
  Pick<SharedAccessibilityProps, 'accessibilityLabel'> & {
9
9
  /** Number between 0-1 representing the progress percentage */
10
- progress: number;
10
+ progress?: number;
11
11
  /** Toggle used to change thickness of progress visualization
12
12
  * @default normal
13
13
  * */
@@ -46,7 +46,7 @@ export declare const ProgressBar: React.MemoExoticComponent<
46
46
  Pick<HintMotionBaseProps, 'disableAnimateOnMount'> &
47
47
  Pick<SharedAccessibilityProps, 'accessibilityLabel'> & {
48
48
  /** Number between 0-1 representing the progress percentage */
49
- progress: number;
49
+ progress?: number;
50
50
  /** Toggle used to change thickness of progress visualization
51
51
  * @default normal
52
52
  * */
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../src/visualizations/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8E,MAAM,OAAO,CAAC;AACnG,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAMhG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,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,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,yEAAyE;IACzE,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,WAAW;IApCpB,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,SAAS,CAAC,SAAS,CAAC;IAC5B,yEAAyE;aAChE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KACjC;+BAiHF,CAAC"}
1
+ {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../src/visualizations/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8E,MAAM,OAAO,CAAC;AACnG,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAMhG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,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,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,yEAAyE;IACzE,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,WAAW;IApCpB,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,SAAS,CAAC,SAAS,CAAC;IAC5B,yEAAyE;aAChE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KACjC;+BAiHF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBarWithFloatLabel.d.ts","sourceRoot":"","sources":["../../src/visualizations/ProgressBarWithFloatLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAC/E,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAM5D,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,EAC9B,OAAO,GAAG,UAAU,GAAG,uBAAuB,GAAG,UAAU,GAAG,gBAAgB,GAAG,QAAQ,CAC1F,CAAC;AA2GF,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,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,uFAAuF;IACvF,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,8BAA8B;QAC9B,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACtC,oBAAoB;QACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAC9C,KAAK,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAkCxD,CAAC"}
1
+ {"version":3,"file":"ProgressBarWithFloatLabel.d.ts","sourceRoot":"","sources":["../../src/visualizations/ProgressBarWithFloatLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkE,MAAM,OAAO,CAAC;AACvF,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAM5D,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAQvD,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,8BAA8B,EAC9B,OAAO,GAAG,UAAU,GAAG,uBAAuB,GAAG,UAAU,GAAG,gBAAgB,GAAG,QAAQ,CAC1F,CAAC;AAuFF,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,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,uFAAuF;IACvF,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,8BAA8B;QAC9B,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACtC,oBAAoB;QACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAC9C,KAAK,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAkCxD,CAAC"}
@@ -26,6 +26,10 @@ export type ProgressCircleBaseProps = ProgressBaseProps & {
26
26
  * Optional component to override the default content rendered inside the circle.
27
27
  */
28
28
  contentNode?: React.ReactNode;
29
+ /**
30
+ * Toggle used to show an indeterminate progress circle.
31
+ */
32
+ indeterminate?: boolean;
29
33
  };
30
34
  export type ProgressCircleProps = ProgressCircleBaseProps & {
31
35
  style?: StyleProp<ViewStyle>;
@@ -61,7 +65,7 @@ export declare const ProgressCircle: React.MemoExoticComponent<
61
65
  SharedProps &
62
66
  Pick<import('../motion/types').HintMotionBaseProps, 'disableAnimateOnMount'> &
63
67
  Pick<import('@coinbase/cds-common').SharedAccessibilityProps, 'accessibilityLabel'> & {
64
- progress: number;
68
+ progress?: number;
65
69
  weight?: import('@coinbase/cds-common').Weight;
66
70
  disabled?: boolean;
67
71
  color?: ThemeVars.Color;
@@ -89,6 +93,10 @@ export declare const ProgressCircle: React.MemoExoticComponent<
89
93
  * Optional component to override the default content rendered inside the circle.
90
94
  */
91
95
  contentNode?: React.ReactNode;
96
+ /**
97
+ * Toggle used to show an indeterminate progress circle.
98
+ */
99
+ indeterminate?: boolean;
92
100
  } & {
93
101
  style?: StyleProp<ViewStyle>;
94
102
  /** Custom styles for individual elements of the ProgressCircle component */
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressCircle.d.ts","sourceRoot":"","sources":["../../src/visualizations/ProgressCircle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAY,KAAK,SAAS,EAAE,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AASnE,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AASvD,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,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,4EAA4E;IAC5E,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,4BAA4B;QAC5B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,kBAAkB;QAClB,GAAG,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3B,6BAA6B;QAC7B,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACrC,yCAAyC;QACzC,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAChC,gCAAgC;QAChC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,uBAAuB,EACvB,UAAU,GAAG,uBAAuB,GAAG,UAAU,CAClD,GACC,QAAQ,GAAG;IACT;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;CACzB,CAAC;AAoEJ,eAAO,MAAM,cAAc;;;;;;;;IAxHzB;;OAEG;kBACW,OAAO;IACrB;;;;OAIG;eACQ,OAAO;IAClB;;;;;OAKG;WACI,MAAM;IACb;;OAEG;kBACW,KAAK,CAAC,SAAS;;YAIrB,SAAS,CAAC,SAAS,CAAC;IAC5B,4EAA4E;aACnE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,4BAA4B;QAC5B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,kBAAkB;QAClB,GAAG,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3B,6BAA6B;QAC7B,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACrC,yCAAyC;QACzC,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAChC,gCAAgC;QAChC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;KAC/B;+BAyMF,CAAC"}
1
+ {"version":3,"file":"ProgressCircle.d.ts","sourceRoot":"","sources":["../../src/visualizations/ProgressCircle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAY,KAAK,SAAS,EAAc,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AASnE,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAUvD,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,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,4EAA4E;IAC5E,MAAM,CAAC,EAAE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,4BAA4B;QAC5B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,kBAAkB;QAClB,GAAG,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3B,6BAA6B;QAC7B,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACrC,yCAAyC;QACzC,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAChC,gCAAgC;QAChC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,uBAAuB,EACvB,UAAU,GAAG,uBAAuB,GAAG,UAAU,CAClD,GACC,QAAQ,GAAG;IACT;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;CACzB,CAAC;AAoEJ,eAAO,MAAM,cAAc;;;;;;;;IA5HzB;;OAEG;kBACW,OAAO;IACrB;;;;OAIG;eACQ,OAAO;IAClB;;;;;OAKG;WACI,MAAM;IACb;;OAEG;kBACW,KAAK,CAAC,SAAS;IAC7B;;OAEG;oBACa,OAAO;;YAIf,SAAS,CAAC,SAAS,CAAC;IAC5B,4EAA4E;aACnE;QACP,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,4BAA4B;QAC5B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,kBAAkB;QAClB,GAAG,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3B,6BAA6B;QAC7B,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACrC,yCAAyC;QACzC,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAChC,gCAAgC;QAChC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;KAC/B;+BA2OF,CAAC"}
@@ -5,9 +5,9 @@ import { Example, ExampleScreen } from '../../../examples/ExampleScreen';
5
5
  import { Icon } from '../../../icons';
6
6
  import { HStack } from '../../../layout/HStack';
7
7
  import { VStack } from '../../../layout/VStack';
8
- import { Spinner } from '../../../loaders';
9
8
  import { Pressable } from '../../../system';
10
9
  import { Text } from '../../../typography/Text';
10
+ import { ProgressCircle } from '../../../visualizations/ProgressCircle';
11
11
  import { Select } from '../Select';
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  const exampleOptions = [{
@@ -680,14 +680,16 @@ const MixedDefaultAndCustomComponentOptions = () => {
680
680
  } = _ref;
681
681
  return /*#__PURE__*/_jsxs(HStack, {
682
682
  justifyContent: "center",
683
- children: [/*#__PURE__*/_jsx(Spinner, {
684
- size: 4
683
+ children: [/*#__PURE__*/_jsx(ProgressCircle, {
684
+ indeterminate: true,
685
+ size: 20
685
686
  }), /*#__PURE__*/_jsx(Button, {
686
687
  transparent: true,
687
688
  onPress: () => onPress == null ? void 0 : onPress(value),
688
689
  children: value != null ? value : 'Empty value'
689
- }), /*#__PURE__*/_jsx(Spinner, {
690
- size: 4
690
+ }), /*#__PURE__*/_jsx(ProgressCircle, {
691
+ indeterminate: true,
692
+ size: 20
691
693
  })]
692
694
  });
693
695
  };
@@ -748,16 +750,18 @@ const CustomOptionComponent = () => {
748
750
  } = _ref3;
749
751
  return /*#__PURE__*/_jsxs(HStack, {
750
752
  justifyContent: "center",
751
- children: [/*#__PURE__*/_jsx(Spinner, {
752
- size: 4
753
+ children: [/*#__PURE__*/_jsx(ProgressCircle, {
754
+ indeterminate: true,
755
+ size: 20
753
756
  }), /*#__PURE__*/_jsx(Button, {
754
757
  transparent: true,
755
758
  onPress: () => onPress == null ? void 0 : onPress(value),
756
759
  children: /*#__PURE__*/_jsx(Text, {
757
760
  children: value != null ? value : 'Empty value'
758
761
  })
759
- }), /*#__PURE__*/_jsx(Spinner, {
760
- size: 4
762
+ }), /*#__PURE__*/_jsx(ProgressCircle, {
763
+ indeterminate: true,
764
+ size: 20
761
765
  })]
762
766
  });
763
767
  };
@@ -1,8 +1,8 @@
1
- const _excluded = ["variant", "loading", "transparent", "block", "compact", "children", "start", "startIcon", "startIconActive", "end", "endIcon", "endIconActive", "flush", "noScaleOnPress", "numberOfLines", "font", "fontFamily", "fontSize", "fontWeight", "lineHeight", "background", "color", "style", "wrapperStyles", "feedback", "borderColor", "borderWidth", "borderRadius", "accessibilityLabel", "accessibilityHint"];
1
+ const _excluded = ["variant", "loading", "progressCircleSize", "transparent", "block", "compact", "children", "start", "startIcon", "startIconActive", "end", "endIcon", "endIconActive", "flush", "noScaleOnPress", "numberOfLines", "font", "fontFamily", "fontSize", "fontWeight", "lineHeight", "background", "color", "style", "wrapperStyles", "feedback", "borderColor", "borderWidth", "borderRadius", "accessibilityLabel", "accessibilityHint"];
2
2
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
3
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
4
4
  import React, { forwardRef, isValidElement, memo, useCallback, useMemo } from 'react';
5
- import { ActivityIndicator, StyleSheet } from 'react-native';
5
+ import { StyleSheet } from 'react-native';
6
6
  import { transparentVariants, variants } from '@coinbase/cds-common/tokens/button';
7
7
  import { interactableHeight } from '@coinbase/cds-common/tokens/interactableHeight';
8
8
  import { getButtonSpacingProps } from '@coinbase/cds-common/utils/getButtonSpacingProps';
@@ -11,7 +11,9 @@ import { Icon } from '../icons/Icon';
11
11
  import { HStack } from '../layout/HStack';
12
12
  import { Pressable } from '../system/Pressable';
13
13
  import { Text } from '../typography/Text';
14
+ import { ProgressCircle } from '../visualizations/ProgressCircle';
14
15
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
16
+ const defaultProgressCircleSize = 24;
15
17
  export const styles = StyleSheet.create({
16
18
  inline: {
17
19
  width: 'auto',
@@ -32,6 +34,7 @@ export const Button = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Button(
32
34
  let {
33
35
  variant = 'primary',
34
36
  loading,
37
+ progressCircleSize = defaultProgressCircleSize,
35
38
  transparent,
36
39
  block,
37
40
  compact,
@@ -123,9 +126,11 @@ export const Button = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Button(
123
126
  paddingX: paddingX,
124
127
  paddingY: paddingY,
125
128
  style: sizingStyle,
126
- children: loading ? /*#__PURE__*/_jsx(ActivityIndicator, {
127
- color: theme.color[colorValue],
128
- size: "small"
129
+ children: loading ? /*#__PURE__*/_jsx(ProgressCircle, {
130
+ indeterminate: true,
131
+ color: colorValue,
132
+ size: progressCircleSize,
133
+ weight: "thin"
129
134
  }) : /*#__PURE__*/_jsxs(_Fragment, {
130
135
  children: [start != null ? start : startIcon ? /*#__PURE__*/_jsx(Icon, {
131
136
  active: startIconActive,
@@ -5,17 +5,17 @@ import React, { forwardRef, memo, useMemo } from 'react';
5
5
  import { StyleSheet } from 'react-native';
6
6
  import { variants } from '@coinbase/cds-common/tokens/button';
7
7
  import { animated, useChain, useSpring, useSpringRef } from '@react-spring/native';
8
- import { useTheme } from '../hooks/useTheme';
9
8
  import { Icon } from '../icons/Icon';
10
9
  import { Box } from '../layout/Box';
11
- import { Spinner } from '../loaders/Spinner';
12
10
  import { Pressable } from '../system/Pressable';
13
11
  import { TextHeadline } from '../typography/TextHeadline';
12
+ import { ProgressCircle } from '../visualizations/ProgressCircle';
14
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
14
  export const animationConfig = {
16
15
  tension: 300,
17
16
  clamp: true
18
17
  };
18
+ const progressCircleSize = 24;
19
19
  export const styles = StyleSheet.create({
20
20
  base: {
21
21
  width: '100%',
@@ -39,7 +39,6 @@ export const SlideButtonHandleChecked = /*#__PURE__*/memo(_ref => {
39
39
  end,
40
40
  compact
41
41
  } = _ref;
42
- const theme = useTheme();
43
42
  const handleWidth = compact ? 40 : 56;
44
43
  return /*#__PURE__*/_jsxs(Box, {
45
44
  alignItems: "center",
@@ -55,9 +54,11 @@ export const SlideButtonHandleChecked = /*#__PURE__*/memo(_ref => {
55
54
  justifyContent: "center",
56
55
  pin: "right",
57
56
  width: handleWidth,
58
- children: end != null ? end : /*#__PURE__*/_jsx(Spinner, {
59
- color: theme.color.fgInverse,
60
- size: "small"
57
+ children: end != null ? end : /*#__PURE__*/_jsx(ProgressCircle, {
58
+ indeterminate: true,
59
+ color: "fgInverse",
60
+ size: progressCircleSize,
61
+ weight: "thin"
61
62
  })
62
63
  })]
63
64
  });
@@ -1,14 +1,15 @@
1
- const _excluded = ["name", "active", "variant", "transparent", "compact", "background", "color", "borderColor", "iconSize", "borderWidth", "borderRadius", "feedback", "flush", "loading", "style", "accessibilityHint", "accessibilityLabel"];
1
+ const _excluded = ["name", "active", "variant", "transparent", "compact", "background", "color", "borderColor", "iconSize", "borderWidth", "borderRadius", "feedback", "flush", "loading", "progressCircleSize", "style", "accessibilityHint", "accessibilityLabel"];
2
2
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
3
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
4
- import React, { forwardRef, memo, useCallback, useMemo } from 'react';
5
- import { ActivityIndicator } from 'react-native';
4
+ import { forwardRef, memo, useCallback, useMemo } from 'react';
6
5
  import { transparentVariants, variants } from '@coinbase/cds-common/tokens/button';
7
6
  import { interactableHeight } from '@coinbase/cds-common/tokens/interactableHeight';
8
7
  import { getButtonSpacingProps } from '@coinbase/cds-common/utils/getButtonSpacingProps';
9
8
  import { useTheme } from '../hooks/useTheme';
10
9
  import { Icon } from '../icons/Icon';
10
+ import { Box } from '../layout/Box';
11
11
  import { Pressable } from '../system/Pressable';
12
+ import { ProgressCircle } from '../visualizations/ProgressCircle';
12
13
  import { jsx as _jsx } from "react/jsx-runtime";
13
14
  export const IconButton = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function IconButton(_ref, ref) {
14
15
  let {
@@ -26,12 +27,14 @@ export const IconButton = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Ico
26
27
  feedback = compact ? 'light' : 'normal',
27
28
  flush,
28
29
  loading,
30
+ progressCircleSize,
29
31
  style,
30
32
  accessibilityHint,
31
33
  accessibilityLabel
32
34
  } = _ref,
33
35
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
34
36
  const theme = useTheme();
37
+ const iconSizeValue = theme.iconSize[iconSize];
35
38
  const variantMap = transparent ? transparentVariants : variants;
36
39
  const variantStyle = variantMap[variant];
37
40
  const colorValue = color != null ? color : variantStyle.color;
@@ -68,11 +71,18 @@ export const IconButton = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Ico
68
71
  style: pressableStyle,
69
72
  transparentWhileInactive: transparent
70
73
  }, props, {
71
- children: loading ? /*#__PURE__*/_jsx(ActivityIndicator, {
72
- color: theme.color[colorValue],
73
- size: "small",
74
- style: sizingStyle,
75
- testID: props.testID ? props.testID + "-activity-indicator" : undefined
74
+ children: loading ? /*#__PURE__*/_jsx(Box, {
75
+ alignItems: "center",
76
+ height: minHeight,
77
+ justifyContent: "center",
78
+ width: minHeight,
79
+ children: /*#__PURE__*/_jsx(ProgressCircle, {
80
+ indeterminate: true,
81
+ color: colorValue,
82
+ size: progressCircleSize != null ? progressCircleSize : iconSizeValue,
83
+ testID: props.testID ? props.testID + "-progress-circle" : undefined,
84
+ weight: "thin"
85
+ })
76
86
  }) :
77
87
  /*#__PURE__*/
78
88
  /* TO DO: test using currentColor like web does on Icon here */
@@ -44,6 +44,34 @@ const buttonStories = [{
44
44
  }, {
45
45
  loading: true,
46
46
  compact: true
47
+ }, {
48
+ loading: true,
49
+ transparent: true
50
+ }, {
51
+ loading: true,
52
+ transparent: true,
53
+ compact: true
54
+ }, {
55
+ loading: true,
56
+ variant: 'secondary'
57
+ }, {
58
+ loading: true,
59
+ variant: 'secondary',
60
+ compact: true
61
+ }, {
62
+ loading: true,
63
+ variant: 'positive'
64
+ }, {
65
+ loading: true,
66
+ variant: 'positive',
67
+ compact: true
68
+ }, {
69
+ loading: true,
70
+ variant: 'negative'
71
+ }, {
72
+ loading: true,
73
+ variant: 'negative',
74
+ compact: true
47
75
  }, {
48
76
  startIcon: 'backArrow'
49
77
  }, {
@@ -2,7 +2,7 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
2
2
  import React from 'react';
3
3
  import { names } from '@coinbase/cds-icons/names';
4
4
  import { Example, ExampleScreen } from '../../examples/ExampleScreen';
5
- import { HStack } from '../../layout';
5
+ import { HStack, VStack } from '../../layout';
6
6
  import { Box } from '../../layout/Box';
7
7
  import { Text } from '../../typography/Text';
8
8
  import { IconButton } from '../IconButton';
@@ -123,6 +123,20 @@ const IconButtonScreen = () => {
123
123
  font: "body",
124
124
  children: "Disabled secondary"
125
125
  })]
126
+ }), /*#__PURE__*/_jsxs(Box, {
127
+ alignItems: "center",
128
+ flexDirection: "row",
129
+ justifyContent: "space-between",
130
+ width: 350,
131
+ children: [/*#__PURE__*/_jsx(IconButton, {
132
+ loading: true,
133
+ accessibilityLabel: accessibilityLabel,
134
+ name: iconName,
135
+ variant: "primary"
136
+ }), /*#__PURE__*/_jsx(Text, {
137
+ font: "body",
138
+ children: "Loading primary"
139
+ })]
126
140
  })]
127
141
  }), /*#__PURE__*/_jsx(Example, {
128
142
  inline: true,
@@ -168,6 +182,107 @@ const IconButtonScreen = () => {
168
182
  })]
169
183
  })
170
184
  })
185
+ }), /*#__PURE__*/_jsx(Example, {
186
+ inline: true,
187
+ title: "Loading",
188
+ children: /*#__PURE__*/_jsxs(VStack, {
189
+ gap: 3,
190
+ children: [/*#__PURE__*/_jsxs(Box, {
191
+ children: [/*#__PURE__*/_jsx(Text, {
192
+ font: "label2",
193
+ style: {
194
+ marginBottom: 8
195
+ },
196
+ children: "Loading by variant"
197
+ }), /*#__PURE__*/_jsxs(HStack, {
198
+ flexWrap: "wrap",
199
+ gap: 2,
200
+ children: [/*#__PURE__*/_jsx(IconButton, {
201
+ loading: true,
202
+ accessibilityLabel: "Loading",
203
+ name: iconName,
204
+ variant: "primary"
205
+ }), /*#__PURE__*/_jsx(IconButton, {
206
+ loading: true,
207
+ accessibilityLabel: "Loading",
208
+ name: iconName,
209
+ variant: "secondary"
210
+ }), /*#__PURE__*/_jsx(IconButton, {
211
+ loading: true,
212
+ accessibilityLabel: "Loading",
213
+ name: iconName,
214
+ variant: "foregroundMuted"
215
+ }), /*#__PURE__*/_jsx(IconButton, {
216
+ loading: true,
217
+ transparent: true,
218
+ accessibilityLabel: "Loading",
219
+ name: iconName,
220
+ variant: "primary"
221
+ }), /*#__PURE__*/_jsx(IconButton, {
222
+ loading: true,
223
+ transparent: true,
224
+ accessibilityLabel: "Loading",
225
+ name: iconName,
226
+ variant: "secondary"
227
+ })]
228
+ })]
229
+ }), /*#__PURE__*/_jsxs(Box, {
230
+ children: [/*#__PURE__*/_jsx(Text, {
231
+ font: "label2",
232
+ style: {
233
+ marginBottom: 8
234
+ },
235
+ children: "Loading by icon size"
236
+ }), /*#__PURE__*/_jsxs(HStack, {
237
+ alignItems: "center",
238
+ gap: 2,
239
+ children: [/*#__PURE__*/_jsx(IconButton, {
240
+ loading: true,
241
+ accessibilityLabel: "Loading",
242
+ iconSize: "xs",
243
+ name: iconName
244
+ }), /*#__PURE__*/_jsx(IconButton, {
245
+ loading: true,
246
+ accessibilityLabel: "Loading",
247
+ iconSize: "s",
248
+ name: iconName
249
+ }), /*#__PURE__*/_jsx(IconButton, {
250
+ loading: true,
251
+ accessibilityLabel: "Loading",
252
+ iconSize: "m",
253
+ name: iconName
254
+ }), /*#__PURE__*/_jsx(IconButton, {
255
+ loading: true,
256
+ accessibilityLabel: "Loading",
257
+ compact: false,
258
+ iconSize: "l",
259
+ name: iconName
260
+ })]
261
+ })]
262
+ }), /*#__PURE__*/_jsxs(Box, {
263
+ children: [/*#__PURE__*/_jsx(Text, {
264
+ font: "label2",
265
+ style: {
266
+ marginBottom: 8
267
+ },
268
+ children: "Loading compact vs regular"
269
+ }), /*#__PURE__*/_jsxs(HStack, {
270
+ alignItems: "center",
271
+ gap: 2,
272
+ children: [/*#__PURE__*/_jsx(IconButton, {
273
+ compact: true,
274
+ loading: true,
275
+ accessibilityLabel: "Loading",
276
+ name: iconName
277
+ }), /*#__PURE__*/_jsx(IconButton, {
278
+ loading: true,
279
+ accessibilityLabel: "Loading",
280
+ compact: false,
281
+ name: iconName
282
+ })]
283
+ })]
284
+ })]
285
+ })
171
286
  }), /*#__PURE__*/_jsx(Example, {
172
287
  title: "All",
173
288
  children: names.map(name => {
@@ -4,6 +4,11 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
4
4
  import React, { memo } from 'react';
5
5
  import { ActivityIndicator } from 'react-native';
6
6
  import { useTheme } from '../hooks/useTheme';
7
+
8
+ /**
9
+ * @deprecated Use indeterminate ProgressCircle or ActivityIndicator component instead. This will be removed in a future major release.
10
+ * @deprecationExpectedRemoval v10
11
+ */
7
12
  import { jsx as _jsx } from "react/jsx-runtime";
8
13
  export const Spinner = /*#__PURE__*/memo(function Spinner(_ref) {
9
14
  let {
@@ -4,14 +4,14 @@ import { Example, ExampleScreen } from '../../examples/ExampleScreen';
4
4
  import { Alert } from '../Alert';
5
5
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  const BasicAlert = () => {
7
- const [visible, setVisible] = useState(true);
7
+ const [visible, setVisible] = useState(false);
8
8
  const handleShow = useCallback(() => setVisible(true), []);
9
9
  const handleClose = useCallback(() => setVisible(false), []);
10
10
  const handleAction = useCallback(() => console.log('pressed'), []);
11
11
  return /*#__PURE__*/_jsxs(_Fragment, {
12
12
  children: [/*#__PURE__*/_jsx(Button, {
13
13
  onPress: handleShow,
14
- children: "Show Alert"
14
+ children: "Open"
15
15
  }), /*#__PURE__*/_jsx(Alert, {
16
16
  body: "Alert body type that can run over multiple lines, but should be kept short.",
17
17
  dismissActionLabel: "Cancel",
@@ -4,14 +4,14 @@ import { Example, ExampleScreen } from '../../examples/ExampleScreen';
4
4
  import { Alert } from '../Alert';
5
5
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  const LongTitleAlert = () => {
7
- const [visible, setVisible] = useState(true);
7
+ const [visible, setVisible] = useState(false);
8
8
  const handleShow = useCallback(() => setVisible(true), []);
9
9
  const handleClose = useCallback(() => setVisible(false), []);
10
10
  const handleAction = useCallback(() => console.log('pressed'), []);
11
11
  return /*#__PURE__*/_jsxs(_Fragment, {
12
12
  children: [/*#__PURE__*/_jsx(Button, {
13
13
  onPress: handleShow,
14
- children: "Show Alert"
14
+ children: "Open"
15
15
  }), /*#__PURE__*/_jsx(Alert, {
16
16
  body: "Alert body type that can run over multiple lines, but should be kept short.",
17
17
  dismissActionLabel: "Cancel",