@coinbase/cds-mobile 8.61.0 → 8.62.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 (236) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dts/accordion/Accordion.d.ts +1 -9
  3. package/dts/accordion/Accordion.d.ts.map +1 -1
  4. package/dts/alpha/combobox/Combobox.d.ts.map +1 -1
  5. package/dts/alpha/select/Select.d.ts.map +1 -1
  6. package/dts/alpha/select-chip/SelectChip.d.ts.map +1 -1
  7. package/dts/alpha/tabbed-chips/TabbedChips.d.ts.map +1 -1
  8. package/dts/banner/Banner.d.ts.map +1 -1
  9. package/dts/buttons/AvatarButton.d.ts +6 -3
  10. package/dts/buttons/AvatarButton.d.ts.map +1 -1
  11. package/dts/buttons/Button.d.ts.map +1 -1
  12. package/dts/buttons/ButtonGroup.d.ts +3 -1
  13. package/dts/buttons/ButtonGroup.d.ts.map +1 -1
  14. package/dts/buttons/IconButton.d.ts.map +1 -1
  15. package/dts/buttons/IconCounterButton.d.ts.map +1 -1
  16. package/dts/buttons/SlideButton.d.ts.map +1 -1
  17. package/dts/cards/LikeButton.d.ts.map +1 -1
  18. package/dts/carousel/Carousel.d.ts.map +1 -1
  19. package/dts/cells/Cell.d.ts.map +1 -1
  20. package/dts/cells/ListCell.d.ts.map +1 -1
  21. package/dts/cells/ListCellFallback.d.ts.map +1 -1
  22. package/dts/chips/Chip.d.ts.map +1 -1
  23. package/dts/chips/ChipProps.d.ts +10 -8
  24. package/dts/chips/ChipProps.d.ts.map +1 -1
  25. package/dts/chips/InputChip.d.ts.map +1 -1
  26. package/dts/chips/MediaChip.d.ts +3 -2
  27. package/dts/chips/MediaChip.d.ts.map +1 -1
  28. package/dts/chips/TabbedChips.d.ts.map +1 -1
  29. package/dts/coachmark/Coachmark.d.ts.map +1 -1
  30. package/dts/collapsible/Collapsible.d.ts.map +1 -1
  31. package/dts/controls/Checkbox.d.ts.map +1 -1
  32. package/dts/controls/CheckboxCell.d.ts.map +1 -1
  33. package/dts/controls/Control.d.ts.map +1 -1
  34. package/dts/controls/ControlGroup.d.ts +13 -4
  35. package/dts/controls/ControlGroup.d.ts.map +1 -1
  36. package/dts/controls/InputStack.d.ts.map +1 -1
  37. package/dts/controls/Radio.d.ts.map +1 -1
  38. package/dts/controls/RadioCell.d.ts.map +1 -1
  39. package/dts/controls/SearchInput.d.ts.map +1 -1
  40. package/dts/controls/SelectOption.d.ts +3 -1
  41. package/dts/controls/SelectOption.d.ts.map +1 -1
  42. package/dts/controls/Switch.d.ts.map +1 -1
  43. package/dts/controls/TextInput.d.ts.map +1 -1
  44. package/dts/core/componentConfig.d.ts +166 -0
  45. package/dts/core/componentConfig.d.ts.map +1 -0
  46. package/dts/dates/Calendar.d.ts.map +1 -1
  47. package/dts/dates/DateInput.d.ts.map +1 -1
  48. package/dts/dates/DatePicker.d.ts.map +1 -1
  49. package/dts/dots/DotCount.d.ts +1 -11
  50. package/dts/dots/DotCount.d.ts.map +1 -1
  51. package/dts/dots/DotStatusColor.d.ts +1 -8
  52. package/dts/dots/DotStatusColor.d.ts.map +1 -1
  53. package/dts/dots/DotSymbol.d.ts +1 -17
  54. package/dts/dots/DotSymbol.d.ts.map +1 -1
  55. package/dts/hooks/useComponentConfig.d.ts +22 -0
  56. package/dts/hooks/useComponentConfig.d.ts.map +1 -0
  57. package/dts/icons/Icon.d.ts +11 -1
  58. package/dts/icons/Icon.d.ts.map +1 -1
  59. package/dts/index.d.ts +2 -0
  60. package/dts/index.d.ts.map +1 -1
  61. package/dts/layout/Divider.d.ts +3 -1
  62. package/dts/layout/Divider.d.ts.map +1 -1
  63. package/dts/layout/Fallback.d.ts +3 -1
  64. package/dts/layout/Fallback.d.ts.map +1 -1
  65. package/dts/media/Avatar.d.ts +1 -14
  66. package/dts/media/Avatar.d.ts.map +1 -1
  67. package/dts/media/RemoteImage.d.ts.map +1 -1
  68. package/dts/media/RemoteImageGroup.d.ts +3 -10
  69. package/dts/media/RemoteImageGroup.d.ts.map +1 -1
  70. package/dts/navigation/BrowserBar.d.ts +5 -14
  71. package/dts/navigation/BrowserBar.d.ts.map +1 -1
  72. package/dts/navigation/NavigationTitle.d.ts +4 -7
  73. package/dts/navigation/NavigationTitle.d.ts.map +1 -1
  74. package/dts/navigation/NavigationTitleSelect.d.ts +5 -11
  75. package/dts/navigation/NavigationTitleSelect.d.ts.map +1 -1
  76. package/dts/navigation/TopNavBar.d.ts +3 -13
  77. package/dts/navigation/TopNavBar.d.ts.map +1 -1
  78. package/dts/numbers/RollingNumber/RollingNumber.d.ts.map +1 -1
  79. package/dts/numpad/Numpad.d.ts +41 -38
  80. package/dts/numpad/Numpad.d.ts.map +1 -1
  81. package/dts/overlays/Alert.d.ts.map +1 -1
  82. package/dts/overlays/Toast.d.ts.map +1 -1
  83. package/dts/overlays/drawer/Drawer.d.ts.map +1 -1
  84. package/dts/overlays/modal/Modal.d.ts.map +1 -1
  85. package/dts/overlays/modal/ModalBody.d.ts.map +1 -1
  86. package/dts/overlays/modal/ModalFooter.d.ts +3 -8
  87. package/dts/overlays/modal/ModalFooter.d.ts.map +1 -1
  88. package/dts/overlays/modal/ModalHeader.d.ts.map +1 -1
  89. package/dts/overlays/overlay/Overlay.d.ts +7 -3
  90. package/dts/overlays/overlay/Overlay.d.ts.map +1 -1
  91. package/dts/overlays/tooltip/Tooltip.d.ts +2 -20
  92. package/dts/overlays/tooltip/Tooltip.d.ts.map +1 -1
  93. package/dts/overlays/tray/Tray.d.ts.map +1 -1
  94. package/dts/page/PageFooter.d.ts.map +1 -1
  95. package/dts/page/PageHeader.d.ts.map +1 -1
  96. package/dts/perf/component-config/Button.component-config.perf-test.d.ts +2 -0
  97. package/dts/perf/component-config/Button.component-config.perf-test.d.ts.map +1 -0
  98. package/dts/perf/component-config/ComponentConfigProvider.perf-test.d.ts +2 -0
  99. package/dts/perf/component-config/ComponentConfigProvider.perf-test.d.ts.map +1 -0
  100. package/dts/perf/component-config/ComponentConfigStickerSheet.perf-test.d.ts +2 -0
  101. package/dts/perf/component-config/ComponentConfigStickerSheet.perf-test.d.ts.map +1 -0
  102. package/dts/stepper/Stepper.d.ts.map +1 -1
  103. package/dts/system/ComponentConfigProvider.d.ts +26 -0
  104. package/dts/system/ComponentConfigProvider.d.ts.map +1 -0
  105. package/dts/system/index.d.ts +1 -0
  106. package/dts/system/index.d.ts.map +1 -1
  107. package/dts/tabs/SegmentedTab.d.ts +6 -3
  108. package/dts/tabs/SegmentedTab.d.ts.map +1 -1
  109. package/dts/tabs/SegmentedTabs.d.ts +6 -3
  110. package/dts/tabs/SegmentedTabs.d.ts.map +1 -1
  111. package/dts/tabs/Tabs.d.ts +25 -24
  112. package/dts/tabs/Tabs.d.ts.map +1 -1
  113. package/dts/tag/Tag.d.ts.map +1 -1
  114. package/dts/tour/Tour.d.ts +42 -41
  115. package/dts/tour/Tour.d.ts.map +1 -1
  116. package/dts/typography/Link.d.ts +1 -14
  117. package/dts/typography/Link.d.ts.map +1 -1
  118. package/dts/utils/mergeComponentProps.d.ts +34 -0
  119. package/dts/utils/mergeComponentProps.d.ts.map +1 -0
  120. package/dts/visualizations/ProgressBar.d.ts.map +1 -1
  121. package/dts/visualizations/ProgressBarWithFixedLabels.d.ts +5 -3
  122. package/dts/visualizations/ProgressBarWithFixedLabels.d.ts.map +1 -1
  123. package/dts/visualizations/ProgressBarWithFloatLabel.d.ts +3 -1
  124. package/dts/visualizations/ProgressBarWithFloatLabel.d.ts.map +1 -1
  125. package/dts/visualizations/ProgressCircle.d.ts.map +1 -1
  126. package/esm/accordion/Accordion.js +5 -3
  127. package/esm/alpha/combobox/Combobox.js +8 -6
  128. package/esm/alpha/select/Select.js +6 -4
  129. package/esm/alpha/select-chip/SelectChip.js +6 -4
  130. package/esm/alpha/tabbed-chips/TabbedChips.js +6 -4
  131. package/esm/banner/Banner.js +6 -4
  132. package/esm/buttons/AvatarButton.js +6 -4
  133. package/esm/buttons/Button.js +6 -4
  134. package/esm/buttons/ButtonGroup.js +5 -3
  135. package/esm/buttons/IconButton.js +6 -4
  136. package/esm/buttons/IconCounterButton.js +6 -4
  137. package/esm/buttons/SlideButton.js +10 -8
  138. package/esm/cards/LikeButton.js +6 -4
  139. package/esm/carousel/Carousel.js +10 -8
  140. package/esm/cells/Cell.js +6 -4
  141. package/esm/cells/ListCell.js +6 -4
  142. package/esm/cells/ListCellFallback.js +6 -4
  143. package/esm/chips/Chip.js +6 -4
  144. package/esm/chips/InputChip.js +6 -4
  145. package/esm/chips/MediaChip.js +6 -4
  146. package/esm/chips/TabbedChips.js +6 -4
  147. package/esm/coachmark/Coachmark.js +6 -4
  148. package/esm/collapsible/Collapsible.js +10 -8
  149. package/esm/controls/Checkbox.js +6 -4
  150. package/esm/controls/CheckboxCell.js +6 -4
  151. package/esm/controls/Control.js +8 -6
  152. package/esm/controls/ControlGroup.js +6 -4
  153. package/esm/controls/InputStack.js +6 -4
  154. package/esm/controls/Radio.js +6 -4
  155. package/esm/controls/RadioCell.js +6 -4
  156. package/esm/controls/SearchInput.js +6 -4
  157. package/esm/controls/SelectOption.js +6 -4
  158. package/esm/controls/Switch.js +6 -4
  159. package/esm/controls/TextInput.js +6 -4
  160. package/esm/core/componentConfig.js +1 -0
  161. package/esm/dates/Calendar.js +8 -6
  162. package/esm/dates/DateInput.js +6 -4
  163. package/esm/dates/DatePicker.js +9 -6
  164. package/esm/dots/DotCount.js +6 -4
  165. package/esm/dots/DotStatusColor.js +6 -4
  166. package/esm/dots/DotSymbol.js +6 -4
  167. package/esm/hooks/useComponentConfig.js +27 -0
  168. package/esm/icons/Icon.js +10 -8
  169. package/esm/index.js +2 -0
  170. package/esm/layout/Divider.js +6 -4
  171. package/esm/layout/Fallback.js +6 -4
  172. package/esm/media/Avatar.js +6 -4
  173. package/esm/media/RemoteImage.js +6 -4
  174. package/esm/media/RemoteImageGroup.js +6 -4
  175. package/esm/navigation/BrowserBar.js +6 -4
  176. package/esm/navigation/NavigationTitle.js +6 -4
  177. package/esm/navigation/NavigationTitleSelect.js +8 -6
  178. package/esm/navigation/TopNavBar.js +5 -3
  179. package/esm/numbers/RollingNumber/RollingNumber.js +6 -4
  180. package/esm/numpad/Numpad.js +8 -6
  181. package/esm/overlays/Alert.js +7 -5
  182. package/esm/overlays/Toast.js +10 -8
  183. package/esm/overlays/drawer/Drawer.js +12 -10
  184. package/esm/overlays/modal/Modal.js +4 -1
  185. package/esm/overlays/modal/ModalBody.js +8 -6
  186. package/esm/overlays/modal/ModalFooter.js +8 -6
  187. package/esm/overlays/modal/ModalHeader.js +6 -4
  188. package/esm/overlays/overlay/Overlay.js +6 -4
  189. package/esm/overlays/tooltip/Tooltip.js +5 -3
  190. package/esm/overlays/tray/Tray.js +13 -11
  191. package/esm/page/PageFooter.js +6 -4
  192. package/esm/page/PageHeader.js +6 -4
  193. package/esm/perf/component-config/Button.component-config.perf-test.js +35 -0
  194. package/esm/perf/component-config/ComponentConfigProvider.perf-test.js +147 -0
  195. package/esm/perf/component-config/ComponentConfigStickerSheet.perf-test.js +326 -0
  196. package/esm/perf/component-config/README.md +8 -0
  197. package/esm/stepper/Stepper.js +11 -9
  198. package/esm/system/ComponentConfigProvider.js +39 -0
  199. package/esm/system/__stories__/ComponentConfigProvider.stories.js +12 -0
  200. package/esm/system/__stories__/ComponentConfigProviderCustom.stories.js +22 -0
  201. package/esm/system/__stories__/componentConfigStickerSheet/Container.js +27 -0
  202. package/esm/system/__stories__/componentConfigStickerSheet/StickerSheet.js +94 -0
  203. package/esm/system/__stories__/componentConfigStickerSheet/customComponentConfig.js +116 -0
  204. package/esm/system/__stories__/componentConfigStickerSheet/customTheme.js +520 -0
  205. package/esm/system/__stories__/componentConfigStickerSheet/examples/Accordion.js +67 -0
  206. package/esm/system/__stories__/componentConfigStickerSheet/examples/Avatar.js +48 -0
  207. package/esm/system/__stories__/componentConfigStickerSheet/examples/Banner.js +43 -0
  208. package/esm/system/__stories__/componentConfigStickerSheet/examples/Button.js +77 -0
  209. package/esm/system/__stories__/componentConfigStickerSheet/examples/Coachmark.js +15 -0
  210. package/esm/system/__stories__/componentConfigStickerSheet/examples/Controls.js +29 -0
  211. package/esm/system/__stories__/componentConfigStickerSheet/examples/DatePicker.js +15 -0
  212. package/esm/system/__stories__/componentConfigStickerSheet/examples/DotCount.js +28 -0
  213. package/esm/system/__stories__/componentConfigStickerSheet/examples/Icon.js +57 -0
  214. package/esm/system/__stories__/componentConfigStickerSheet/examples/InputChip.js +17 -0
  215. package/esm/system/__stories__/componentConfigStickerSheet/examples/ListCell.js +48 -0
  216. package/esm/system/__stories__/componentConfigStickerSheet/examples/Search.js +20 -0
  217. package/esm/system/__stories__/componentConfigStickerSheet/examples/SegmentedTabs.js +12 -0
  218. package/esm/system/__stories__/componentConfigStickerSheet/examples/Select.js +24 -0
  219. package/esm/system/__stories__/componentConfigStickerSheet/examples/SelectChip.js +22 -0
  220. package/esm/system/__stories__/componentConfigStickerSheet/examples/Tag.js +35 -0
  221. package/esm/system/__stories__/componentConfigStickerSheet/examples/TextInput.js +46 -0
  222. package/esm/system/__stories__/componentConfigStickerSheet/examples/constants.js +33 -0
  223. package/esm/system/__stories__/componentConfigStickerSheet/themeVars.js +2 -0
  224. package/esm/system/index.js +1 -0
  225. package/esm/tabs/SegmentedTab.js +7 -5
  226. package/esm/tabs/SegmentedTabs.js +9 -4
  227. package/esm/tabs/Tabs.js +12 -10
  228. package/esm/tag/Tag.js +6 -4
  229. package/esm/tour/Tour.js +5 -3
  230. package/esm/typography/Link.js +6 -4
  231. package/esm/utils/mergeComponentProps.js +35 -0
  232. package/esm/visualizations/ProgressBar.js +7 -5
  233. package/esm/visualizations/ProgressBarWithFixedLabels.js +5 -3
  234. package/esm/visualizations/ProgressBarWithFloatLabel.js +5 -3
  235. package/esm/visualizations/ProgressCircle.js +7 -5
  236. package/package.json +4 -3
package/esm/tag/Tag.js CHANGED
@@ -3,13 +3,15 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
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, memo } from 'react';
5
5
  import { tagBorderRadiusMap, tagEmphasisColorMap, tagFontMap, tagHorizontalSpacing } from '@coinbase/cds-common/tokens/tags';
6
+ import { useComponentConfig } from '../hooks/useComponentConfig';
6
7
  import { useTheme } from '../hooks/useTheme';
7
8
  import { Icon } from '../icons/Icon';
8
9
  import { Box } from '../layout';
9
10
  import { Text } from '../typography/Text';
10
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- export const Tag = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, forwardedRef) => {
12
- let {
12
+ export const Tag = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_props, forwardedRef) => {
13
+ const mergedProps = useComponentConfig('Tag', _props);
14
+ const {
13
15
  children,
14
16
  intent = 'informational',
15
17
  emphasis = intent === 'informational' ? 'low' : 'high',
@@ -28,8 +30,8 @@ export const Tag = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, forwardedRef
28
30
  justifyContent = 'center',
29
31
  paddingY = 0.25,
30
32
  testID = 'cds-tag'
31
- } = _ref,
32
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
33
+ } = mergedProps,
34
+ props = _objectWithoutPropertiesLoose(mergedProps, _excluded);
33
35
  const theme = useTheme();
34
36
  const {
35
37
  background,
package/esm/tour/Tour.js CHANGED
@@ -6,6 +6,7 @@ import { TourContext } from '@coinbase/cds-common/tour/TourContext';
6
6
  import { useTour } from '@coinbase/cds-common/tour/useTour';
7
7
  import { arrow as arrowMiddleware, autoPlacement, offset, shift, useFloating } from '@floating-ui/react-native';
8
8
  import { animated, config as springConfig, useSpring } from '@react-spring/native';
9
+ import { useComponentConfig } from '../hooks/useComponentConfig';
9
10
  import { useTheme } from '../hooks/useTheme';
10
11
  import { DefaultTourMask } from './DefaultTourMask';
11
12
  import { DefaultTourStepArrow } from './DefaultTourStepArrow';
@@ -13,9 +14,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
14
  const overlayContentContextValue = {
14
15
  isTour: true
15
16
  };
16
- const TourComponent = _ref => {
17
+ const TourComponent = _props => {
17
18
  var _activeTourStep$Arrow, _activeTourStep$hideO, _activeTourStep$tourM, _activeTourStep$tourM2;
18
- let {
19
+ const mergedProps = useComponentConfig('Tour', _props);
20
+ const {
19
21
  steps,
20
22
  activeTourStep,
21
23
  tourStepOffset = 24,
@@ -31,7 +33,7 @@ const TourComponent = _ref => {
31
33
  accessibilityLabelledBy,
32
34
  id,
33
35
  testID
34
- } = _ref;
36
+ } = mergedProps;
35
37
  const theme = useTheme();
36
38
  const defaultTourStepOffset = theme.space[3];
37
39
  const defaultTourStepShiftPadding = theme.space[4];
@@ -2,11 +2,13 @@ const _excluded = ["children", "to", "color", "font", "onPress", "forceOpenOutsi
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, { memo, useCallback } from 'react';
5
+ import { useComponentConfig } from '../hooks/useComponentConfig';
5
6
  import { useWebBrowserOpener } from '../hooks/useWebBrowserOpener';
6
7
  import { Text } from './Text';
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
- export const Link = /*#__PURE__*/memo(_ref => {
9
- let {
9
+ export const Link = /*#__PURE__*/memo(_props => {
10
+ const mergedProps = useComponentConfig('Link', _props);
11
+ const {
10
12
  children,
11
13
  to,
12
14
  color = 'fgPrimary',
@@ -18,8 +20,8 @@ export const Link = /*#__PURE__*/memo(_ref => {
18
20
  underline,
19
21
  accessibilityLabel,
20
22
  testID
21
- } = _ref,
22
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
23
+ } = mergedProps,
24
+ props = _objectWithoutPropertiesLoose(mergedProps, _excluded);
23
25
  const openUrl = useWebBrowserOpener();
24
26
  const openUrlOnPress = useCallback(event => {
25
27
  onPress == null || onPress(event);
@@ -0,0 +1,35 @@
1
+ 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); }
2
+ /**
3
+ * The result of merging two sets of props
4
+ */
5
+
6
+ /**
7
+ * Merges two sets of component props where source overrides target.
8
+ *
9
+ * This merge is shallow by design and applies to any BaseProps keys, not only
10
+ * style-like props. This allows component config defaults such as `compact`,
11
+ * `variant`, `height`, and `font` to flow through alongside style props.
12
+ *
13
+ * @param target - Base set of props (e.g., from component config defaults)
14
+ * @param source - Overriding set of props (e.g., from local component props)
15
+ * @returns Merged props with source values taking precedence
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * const merged = mergeComponentProps(
20
+ * { compact: false, variant: 'secondary', height: 32, font: 'headline' },
21
+ * { compact: true, variant: 'primary' }
22
+ * );
23
+ * // Result: {
24
+ * // compact: true, // local override
25
+ * // variant: 'primary', // local override
26
+ * // height: 32, // preserved from defaults
27
+ * // font: 'headline' // preserved from defaults
28
+ * // }
29
+ * ```
30
+ */
31
+ export function mergeComponentProps(target, source) {
32
+ if (!target) return source;
33
+ if (!source) return target;
34
+ return _extends({}, target, source);
35
+ }
@@ -4,11 +4,13 @@ import { Animated, I18nManager } from 'react-native';
4
4
  import { animateProgressBaseSpec } from '@coinbase/cds-common/animation/progress';
5
5
  import { getProgressSize } from '@coinbase/cds-common/visualizations/getProgressSize';
6
6
  import { convertMotionConfig } from '../animation/convertMotionConfig';
7
+ import { useComponentConfig } from '../hooks/useComponentConfig';
7
8
  import { useTheme } from '../hooks/useTheme';
8
9
  import { Box, HStack } from '../layout';
9
10
  import { jsx as _jsx } from "react/jsx-runtime";
10
- export const ProgressBar = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, forwardedRef) => {
11
- let {
11
+ export const ProgressBar = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_props, forwardedRef) => {
12
+ const mergedProps = useComponentConfig('ProgressBar', _props);
13
+ const {
12
14
  weight = 'normal',
13
15
  progress = 0,
14
16
  color = 'bgPrimary',
@@ -20,7 +22,7 @@ export const ProgressBar = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, forw
20
22
  styles,
21
23
  onAnimationEnd,
22
24
  onAnimationStart
23
- } = _ref;
25
+ } = mergedProps;
24
26
  const theme = useTheme();
25
27
  const height = getProgressSize(weight);
26
28
  const animatedProgress = useRef(new Animated.Value(disableAnimateOnMount ? progress : 0));
@@ -33,10 +35,10 @@ export const ProgressBar = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, forw
33
35
  toValue: progress
34
36
  }, animateProgressBaseSpec, {
35
37
  useNativeDriver: true
36
- })))) == null || _Animated$timing.start(_ref2 => {
38
+ })))) == null || _Animated$timing.start(_ref => {
37
39
  let {
38
40
  finished
39
- } = _ref2;
41
+ } = _ref;
40
42
  if (finished) onAnimationEnd == null || onAnimationEnd();
41
43
  });
42
44
  }
@@ -1,5 +1,6 @@
1
1
  import React, { memo, useMemo } from 'react';
2
2
  import { I18nManager, View } from 'react-native';
3
+ import { useComponentConfig } from '../hooks/useComponentConfig';
3
4
  import { Box, VStack } from '../layout';
4
5
  import { getProgressBarLabelParts } from './getProgressBarLabelParts';
5
6
  import { ProgressTextLabel } from './ProgressTextLabel';
@@ -92,8 +93,9 @@ const ProgressBarFixedLabelContainer = /*#__PURE__*/memo(_ref3 => {
92
93
  children: nodes
93
94
  });
94
95
  });
95
- export const ProgressBarWithFixedLabels = /*#__PURE__*/memo(_ref4 => {
96
- let {
96
+ export const ProgressBarWithFixedLabels = /*#__PURE__*/memo(_props => {
97
+ const mergedProps = useComponentConfig('ProgressBarWithFixedLabels', _props);
98
+ const {
97
99
  startLabel,
98
100
  endLabel,
99
101
  labelPlacement = 'beside',
@@ -103,7 +105,7 @@ export const ProgressBarWithFixedLabels = /*#__PURE__*/memo(_ref4 => {
103
105
  testID,
104
106
  style,
105
107
  styles
106
- } = _ref4;
108
+ } = mergedProps;
107
109
  const rootStyle = useMemo(() => [style, styles == null ? void 0 : styles.root], [style, styles == null ? void 0 : styles.root]);
108
110
  const startLabelEl = typeof startLabel !== 'undefined' && /*#__PURE__*/_jsx(Box, {
109
111
  flexGrow: 0,
@@ -3,6 +3,7 @@ import React, { memo, useCallback, useEffect, useMemo, useRef, useState } from '
3
3
  import { Animated, I18nManager } from 'react-native';
4
4
  import { animateProgressBaseSpec } from '@coinbase/cds-common/animation/progress';
5
5
  import { convertMotionConfig } from '../animation/convertMotionConfig';
6
+ import { useComponentConfig } from '../hooks/useComponentConfig';
6
7
  import { useLayout } from '../hooks/useLayout';
7
8
  import { Box, VStack } from '../layout';
8
9
  import { getProgressBarLabelParts } from './getProgressBarLabelParts';
@@ -76,8 +77,9 @@ const ProgressBarFloatLabel = /*#__PURE__*/memo(_ref => {
76
77
  })
77
78
  });
78
79
  });
79
- export const ProgressBarWithFloatLabel = /*#__PURE__*/memo(_ref2 => {
80
- let {
80
+ export const ProgressBarWithFloatLabel = /*#__PURE__*/memo(_props => {
81
+ const mergedProps = useComponentConfig('ProgressBarWithFloatLabel', _props);
82
+ const {
81
83
  label,
82
84
  labelPlacement = 'above',
83
85
  progress,
@@ -87,7 +89,7 @@ export const ProgressBarWithFloatLabel = /*#__PURE__*/memo(_ref2 => {
87
89
  testID,
88
90
  style,
89
91
  styles
90
- } = _ref2;
92
+ } = mergedProps;
91
93
  const rootStyle = useMemo(() => [style, styles == null ? void 0 : styles.root], [style, styles == null ? void 0 : styles.root]);
92
94
  const progressBarFloatLabel = /*#__PURE__*/_jsx(ProgressBarFloatLabel, {
93
95
  disableAnimateOnMount: disableAnimateOnMount,
@@ -8,6 +8,7 @@ import { getProgressCircleParams } from '@coinbase/cds-common/visualizations/get
8
8
  import { getProgressSize } from '@coinbase/cds-common/visualizations/getProgressSize';
9
9
  import { isTest } from '@coinbase/cds-utils';
10
10
  import { convertMotionConfig } from '../animation/convertMotionConfig';
11
+ import { useComponentConfig } from '../hooks/useComponentConfig';
11
12
  import { useTheme } from '../hooks/useTheme';
12
13
  import { Box } from '../layout';
13
14
  import { DefaultProgressCircleContent } from './DefaultProgressCircleContent';
@@ -58,8 +59,9 @@ const ProgressCircleInner = /*#__PURE__*/memo(_ref => {
58
59
  stroke: !visuallyDisabled ? theme.color[color] : theme.color.bgLineHeavy
59
60
  }), style || {}));
60
61
  });
61
- export const ProgressCircle = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref3, forwardedRef) => {
62
- let {
62
+ export const ProgressCircle = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_props, forwardedRef) => {
63
+ const mergedProps = useComponentConfig('ProgressCircle', _props);
64
+ const {
63
65
  indeterminate,
64
66
  weight = 'normal',
65
67
  progress = indeterminate ? 0.75 : 0,
@@ -78,7 +80,7 @@ export const ProgressCircle = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref3,
78
80
  styles,
79
81
  onAnimationEnd,
80
82
  onAnimationStart
81
- } = _ref3;
83
+ } = mergedProps;
82
84
  const theme = useTheme();
83
85
  const strokeWidth = getProgressSize(weight);
84
86
  const visSize = size != null ? size : '100%';
@@ -102,12 +104,12 @@ export const ProgressCircle = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref3,
102
104
  return /*#__PURE__*/_jsx(VisualizationContainer, {
103
105
  height: visSize,
104
106
  width: visSize,
105
- children: _ref4 => {
107
+ children: _ref3 => {
106
108
  let {
107
109
  width,
108
110
  height,
109
111
  circleSize
110
- } = _ref4;
112
+ } = _ref3;
111
113
  return /*#__PURE__*/_jsxs(Box, {
112
114
  ref: forwardedRef,
113
115
  accessible: true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cds-mobile",
3
- "version": "8.61.0",
3
+ "version": "8.62.0",
4
4
  "description": "Coinbase Design System - Mobile",
5
5
  "repository": {
6
6
  "type": "git",
@@ -197,7 +197,7 @@
197
197
  "react-native-svg": "^14.1.0"
198
198
  },
199
199
  "dependencies": {
200
- "@coinbase/cds-common": "^8.61.0",
200
+ "@coinbase/cds-common": "^8.62.0",
201
201
  "@coinbase/cds-icons": "^5.13.0",
202
202
  "@coinbase/cds-illustrations": "^4.36.0",
203
203
  "@coinbase/cds-lottie-files": "^3.3.4",
@@ -206,7 +206,8 @@
206
206
  "@react-spring/native": "^9.7.4",
207
207
  "fuse.js": "^7.1.0",
208
208
  "lodash": "^4.17.21",
209
- "type-fest": "^2.19.0"
209
+ "type-fest": "^2.19.0",
210
+ "zustand": "^5.0.12"
210
211
  },
211
212
  "devDependencies": {
212
213
  "@babel/core": "^7.28.0",