@coinbase/cds-mobile 9.0.0-rc.2 → 9.0.0-rc.3

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 (69) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/dts/buttons/IconButton.d.ts +19 -1
  3. package/dts/buttons/IconButton.d.ts.map +1 -1
  4. package/dts/cells/Cell.d.ts +2 -1
  5. package/dts/cells/Cell.d.ts.map +1 -1
  6. package/dts/controls/InputIconButton.d.ts +5 -0
  7. package/dts/controls/InputIconButton.d.ts.map +1 -1
  8. package/dts/controls/InputLabel.d.ts.map +1 -1
  9. package/dts/controls/SearchInput.d.ts +4 -0
  10. package/dts/controls/SearchInput.d.ts.map +1 -1
  11. package/dts/controls/TextInput.d.ts.map +1 -1
  12. package/dts/core/theme.d.ts +12 -0
  13. package/dts/core/theme.d.ts.map +1 -1
  14. package/dts/illustrations/createIllustration.d.ts +3 -0
  15. package/dts/illustrations/createIllustration.d.ts.map +1 -1
  16. package/dts/page/PageFooter.d.ts +8 -0
  17. package/dts/page/PageFooter.d.ts.map +1 -1
  18. package/dts/system/ThemeProvider.d.ts.map +1 -1
  19. package/dts/tabs/DefaultTab.d.ts +4 -2
  20. package/dts/tabs/DefaultTab.d.ts.map +1 -1
  21. package/dts/tabs/DefaultTabsActiveIndicator.d.ts.map +1 -1
  22. package/dts/tabs/SegmentedTab.d.ts +4 -4
  23. package/dts/tabs/Tabs.d.ts +10 -1
  24. package/dts/tabs/Tabs.d.ts.map +1 -1
  25. package/dts/tag/Tag.d.ts +5 -3
  26. package/dts/tag/Tag.d.ts.map +1 -1
  27. package/dts/themes/coinbaseDenseTheme.d.ts +34 -2
  28. package/dts/themes/coinbaseDenseTheme.d.ts.map +1 -1
  29. package/dts/themes/coinbaseHighContrastTheme.d.ts +32 -0
  30. package/dts/themes/coinbaseHighContrastTheme.d.ts.map +1 -1
  31. package/dts/themes/coinbaseTheme.d.ts +34 -2
  32. package/dts/themes/coinbaseTheme.d.ts.map +1 -1
  33. package/dts/themes/defaultHighContrastTheme.d.ts +32 -0
  34. package/dts/themes/defaultHighContrastTheme.d.ts.map +1 -1
  35. package/dts/themes/defaultTheme.d.ts +34 -2
  36. package/dts/themes/defaultTheme.d.ts.map +1 -1
  37. package/dts/utils/convertThemedSvgToHex.d.ts +6 -0
  38. package/dts/utils/convertThemedSvgToHex.d.ts.map +1 -0
  39. package/dts/utils/testHelpers.d.ts +34 -2
  40. package/dts/utils/testHelpers.d.ts.map +1 -1
  41. package/dts/visualizations/chart/PeriodSelector.d.ts.map +1 -1
  42. package/esm/buttons/IconButton.js +8 -2
  43. package/esm/buttons/__stories__/IconButton.stories.js +65 -0
  44. package/esm/controls/InputLabel.js +4 -3
  45. package/esm/controls/TextInput.js +7 -1
  46. package/esm/illustrations/__stories__/ThemedIllustrations.stories.js +214 -0
  47. package/esm/illustrations/__stories__/illustrationThemes.js +122 -0
  48. package/esm/illustrations/createIllustration.js +31 -5
  49. package/esm/page/PageFooter.js +16 -5
  50. package/esm/page/__figma__/PageFooter.figma.js +49 -6
  51. package/esm/system/ThemeProvider.js +3 -1
  52. package/esm/system/__stories__/componentConfigStickerSheet/StickerSheet.js +4 -0
  53. package/esm/system/__stories__/componentConfigStickerSheet/customComponentConfig.js +24 -12
  54. package/esm/system/__stories__/componentConfigStickerSheet/examples/ListCell.js +2 -0
  55. package/esm/system/__stories__/componentConfigStickerSheet/examples/Tabs.js +24 -0
  56. package/esm/system/__stories__/componentConfigStickerSheet/examples/TextInput.js +12 -0
  57. package/esm/tabs/DefaultTab.js +7 -9
  58. package/esm/tabs/DefaultTabsActiveIndicator.js +1 -2
  59. package/esm/tabs/Tabs.js +18 -12
  60. package/esm/tabs/__stories__/SegmentedTabs.stories.js +8 -1
  61. package/esm/tabs/__stories__/Tabs.stories.js +0 -1
  62. package/esm/tag/Tag.js +14 -4
  63. package/esm/themes/coinbaseHighContrastTheme.js +32 -0
  64. package/esm/themes/coinbaseTheme.js +34 -2
  65. package/esm/themes/defaultHighContrastTheme.js +32 -0
  66. package/esm/themes/defaultTheme.js +34 -2
  67. package/esm/utils/convertThemedSvgToHex.js +9 -0
  68. package/esm/visualizations/chart/PeriodSelector.js +3 -4
  69. package/package.json +3 -3
@@ -564,5 +564,37 @@ export const coinbaseHighContrastTheme = {
564
564
  shadowOpacity: 0.12,
565
565
  shadowRadius: 24
566
566
  }
567
+ },
568
+ lightIllustrationColor: {
569
+ primary: "rgb(" + lightSpectrum.blue60 + ")",
570
+ black: "rgb(" + lightSpectrum.gray100 + ")",
571
+ white: "rgb(" + lightSpectrum.gray0 + ")",
572
+ gray: "rgb(" + lightSpectrum.gray20 + ")",
573
+ gray2: "rgb(10, 11, 15)",
574
+ gray3: "rgb(206, 210, 220)",
575
+ positive: "rgb(" + lightSpectrum.green30 + ")",
576
+ negative: "rgb(" + lightSpectrum.red50 + ")",
577
+ accent1: "rgb(255, 210, 0)",
578
+ accent2: "rgb(" + lightSpectrum.teal15 + ")",
579
+ accent3: "rgb(" + lightSpectrum.orange40 + ")",
580
+ accent4: "rgb(" + lightSpectrum.blue20 + ")",
581
+ invert: "rgb(10, 11, 14)",
582
+ invert2: "rgb(255, 255, 254)"
583
+ },
584
+ darkIllustrationColor: {
585
+ primary: "rgb(" + darkSpectrum.blue70 + ")",
586
+ black: "rgb(" + darkSpectrum.gray0 + ")",
587
+ white: "rgb(" + darkSpectrum.gray100 + ")",
588
+ gray: "rgb(" + darkSpectrum.gray30 + ")",
589
+ gray2: "rgb(" + darkSpectrum.gray30 + ")",
590
+ gray3: "rgb(" + darkSpectrum.gray100 + ")",
591
+ positive: "rgb(" + darkSpectrum.green70 + ")",
592
+ negative: "rgb(" + darkSpectrum.red60 + ")",
593
+ accent1: "rgb(236, 208, 105)",
594
+ accent2: "rgb(" + darkSpectrum.teal80 + ")",
595
+ accent3: "rgb(" + darkSpectrum.orange60 + ")",
596
+ accent4: "rgb(" + darkSpectrum.blue80 + ")",
597
+ invert: "rgb(" + darkSpectrum.gray100 + ")",
598
+ invert2: "rgb(" + darkSpectrum.gray50 + ")"
567
599
  }
568
600
  };
@@ -316,7 +316,7 @@ export const coinbaseTheme = {
316
316
  bgNegativeWash: "rgb(" + lightSpectrum.red0 + ")",
317
317
  bgPositive: "rgb(" + lightSpectrum.green60 + ")",
318
318
  bgPositiveWash: "rgb(" + lightSpectrum.green0 + ")",
319
- bgWarning: "rgb(" + lightSpectrum.orange40 + ")",
319
+ bgWarning: "rgb(" + lightSpectrum.orange60 + ")",
320
320
  bgWarningWash: "rgb(" + lightSpectrum.orange0 + ")",
321
321
  currentColor: 'currentColor',
322
322
  // Line
@@ -367,7 +367,7 @@ export const coinbaseTheme = {
367
367
  bgNegativeWash: "rgb(" + darkSpectrum.red0 + ")",
368
368
  bgPositive: "rgb(" + darkSpectrum.green60 + ")",
369
369
  bgPositiveWash: "rgb(" + darkSpectrum.green0 + ")",
370
- bgWarning: "rgb(" + darkSpectrum.yellow50 + ")",
370
+ bgWarning: "rgb(" + darkSpectrum.orange60 + ")",
371
371
  bgWarningWash: "rgb(" + darkSpectrum.orange0 + ")",
372
372
  currentColor: 'currentColor',
373
373
  // Line
@@ -564,5 +564,37 @@ export const coinbaseTheme = {
564
564
  shadowOpacity: 0.12,
565
565
  shadowRadius: 24
566
566
  }
567
+ },
568
+ lightIllustrationColor: {
569
+ primary: "rgb(" + lightSpectrum.blue60 + ")",
570
+ black: "rgb(" + lightSpectrum.gray100 + ")",
571
+ white: "rgb(" + lightSpectrum.gray0 + ")",
572
+ gray: "rgb(" + lightSpectrum.gray20 + ")",
573
+ gray2: "rgb(10, 11, 15)",
574
+ gray3: "rgb(206, 210, 220)",
575
+ positive: "rgb(" + lightSpectrum.green30 + ")",
576
+ negative: "rgb(" + lightSpectrum.red50 + ")",
577
+ accent1: "rgb(255, 210, 0)",
578
+ accent2: "rgb(" + lightSpectrum.teal15 + ")",
579
+ accent3: "rgb(" + lightSpectrum.orange40 + ")",
580
+ accent4: "rgb(" + lightSpectrum.blue20 + ")",
581
+ invert: "rgb(10, 11, 14)",
582
+ invert2: "rgb(255, 255, 254)"
583
+ },
584
+ darkIllustrationColor: {
585
+ primary: "rgb(" + darkSpectrum.blue70 + ")",
586
+ black: "rgb(" + darkSpectrum.gray0 + ")",
587
+ white: "rgb(" + darkSpectrum.gray100 + ")",
588
+ gray: "rgb(" + darkSpectrum.gray30 + ")",
589
+ gray2: "rgb(" + darkSpectrum.gray30 + ")",
590
+ gray3: "rgb(" + darkSpectrum.gray100 + ")",
591
+ positive: "rgb(" + darkSpectrum.green70 + ")",
592
+ negative: "rgb(" + darkSpectrum.red60 + ")",
593
+ accent1: "rgb(236, 208, 105)",
594
+ accent2: "rgb(" + darkSpectrum.teal80 + ")",
595
+ accent3: "rgb(" + darkSpectrum.orange60 + ")",
596
+ accent4: "rgb(" + darkSpectrum.blue80 + ")",
597
+ invert: "rgb(" + darkSpectrum.gray100 + ")",
598
+ invert2: "rgb(" + darkSpectrum.gray50 + ")"
567
599
  }
568
600
  };
@@ -564,5 +564,37 @@ export const defaultHighContrastTheme = {
564
564
  shadowOpacity: 0.12,
565
565
  shadowRadius: 24
566
566
  }
567
+ },
568
+ lightIllustrationColor: {
569
+ primary: "rgb(" + lightSpectrum.blue60 + ")",
570
+ black: "rgb(" + lightSpectrum.gray100 + ")",
571
+ white: "rgb(" + lightSpectrum.gray0 + ")",
572
+ gray: "rgb(" + lightSpectrum.gray20 + ")",
573
+ gray2: "rgb(10, 11, 15)",
574
+ gray3: "rgb(206, 210, 220)",
575
+ positive: "rgb(" + lightSpectrum.green30 + ")",
576
+ negative: "rgb(" + lightSpectrum.red50 + ")",
577
+ accent1: "rgb(255, 210, 0)",
578
+ accent2: "rgb(" + lightSpectrum.teal15 + ")",
579
+ accent3: "rgb(" + lightSpectrum.orange40 + ")",
580
+ accent4: "rgb(" + lightSpectrum.blue20 + ")",
581
+ invert: "rgb(10, 11, 14)",
582
+ invert2: "rgb(255, 255, 254)"
583
+ },
584
+ darkIllustrationColor: {
585
+ primary: "rgb(" + darkSpectrum.blue70 + ")",
586
+ black: "rgb(" + darkSpectrum.gray0 + ")",
587
+ white: "rgb(" + darkSpectrum.gray100 + ")",
588
+ gray: "rgb(" + darkSpectrum.gray30 + ")",
589
+ gray2: "rgb(" + darkSpectrum.gray30 + ")",
590
+ gray3: "rgb(" + darkSpectrum.gray100 + ")",
591
+ positive: "rgb(" + darkSpectrum.green70 + ")",
592
+ negative: "rgb(" + darkSpectrum.red60 + ")",
593
+ accent1: "rgb(236, 208, 105)",
594
+ accent2: "rgb(" + darkSpectrum.teal80 + ")",
595
+ accent3: "rgb(" + darkSpectrum.orange60 + ")",
596
+ accent4: "rgb(" + darkSpectrum.blue80 + ")",
597
+ invert: "rgb(" + darkSpectrum.gray100 + ")",
598
+ invert2: "rgb(" + darkSpectrum.gray50 + ")"
567
599
  }
568
600
  };
@@ -316,7 +316,7 @@ export const defaultTheme = {
316
316
  bgNegativeWash: "rgb(" + lightSpectrum.red0 + ")",
317
317
  bgPositive: "rgb(" + lightSpectrum.green60 + ")",
318
318
  bgPositiveWash: "rgb(" + lightSpectrum.green0 + ")",
319
- bgWarning: "rgb(" + lightSpectrum.orange40 + ")",
319
+ bgWarning: "rgb(" + lightSpectrum.orange60 + ")",
320
320
  bgWarningWash: "rgb(" + lightSpectrum.orange0 + ")",
321
321
  currentColor: 'currentColor',
322
322
  // Line
@@ -367,7 +367,7 @@ export const defaultTheme = {
367
367
  bgNegativeWash: "rgb(" + darkSpectrum.red0 + ")",
368
368
  bgPositive: "rgb(" + darkSpectrum.green60 + ")",
369
369
  bgPositiveWash: "rgb(" + darkSpectrum.green0 + ")",
370
- bgWarning: "rgb(" + darkSpectrum.yellow50 + ")",
370
+ bgWarning: "rgb(" + darkSpectrum.orange60 + ")",
371
371
  bgWarningWash: "rgb(" + darkSpectrum.orange0 + ")",
372
372
  currentColor: 'currentColor',
373
373
  // Line
@@ -395,6 +395,38 @@ export const defaultTheme = {
395
395
  // Transparent
396
396
  transparent: "rgba(" + darkSpectrum.gray0 + ",0)"
397
397
  },
398
+ lightIllustrationColor: {
399
+ primary: "rgb(" + lightSpectrum.blue60 + ")",
400
+ black: "rgb(" + lightSpectrum.gray100 + ")",
401
+ white: "rgb(" + lightSpectrum.gray0 + ")",
402
+ gray: "rgb(" + lightSpectrum.gray20 + ")",
403
+ gray2: "rgb(10, 11, 15)",
404
+ gray3: "rgb(206, 210, 220)",
405
+ positive: "rgb(" + lightSpectrum.green30 + ")",
406
+ negative: "rgb(" + lightSpectrum.red50 + ")",
407
+ accent1: "rgb(255, 210, 0)",
408
+ accent2: "rgb(" + lightSpectrum.teal15 + ")",
409
+ accent3: "rgb(" + lightSpectrum.orange40 + ")",
410
+ accent4: "rgb(" + lightSpectrum.blue20 + ")",
411
+ invert: "rgb(10, 11, 14)",
412
+ invert2: "rgb(255, 255, 254)"
413
+ },
414
+ darkIllustrationColor: {
415
+ primary: "rgb(" + darkSpectrum.blue70 + ")",
416
+ black: "rgb(" + darkSpectrum.gray0 + ")",
417
+ white: "rgb(" + darkSpectrum.gray100 + ")",
418
+ gray: "rgb(" + darkSpectrum.gray30 + ")",
419
+ gray2: "rgb(" + darkSpectrum.gray30 + ")",
420
+ gray3: "rgb(" + darkSpectrum.gray100 + ")",
421
+ positive: "rgb(" + darkSpectrum.green70 + ")",
422
+ negative: "rgb(" + darkSpectrum.red60 + ")",
423
+ accent1: "rgb(236, 208, 105)",
424
+ accent2: "rgb(" + darkSpectrum.teal80 + ")",
425
+ accent3: "rgb(" + darkSpectrum.orange60 + ")",
426
+ accent4: "rgb(" + darkSpectrum.blue80 + ")",
427
+ invert: "rgb(" + darkSpectrum.gray100 + ")",
428
+ invert2: "rgb(" + darkSpectrum.gray50 + ")"
429
+ },
398
430
  space: {
399
431
  '0': 0,
400
432
  '0.25': 2,
@@ -0,0 +1,9 @@
1
+ import { colorToHex } from '@coinbase/cds-common/color/colorToHex';
2
+ export const convertThemedSvgToHex = (xml, illustrationPalette) => {
3
+ const cssVarPattern = /var\(--illustration-([a-z0-9-]+)\)/gi;
4
+ const normalizeToken = token => token.replace(/-/g, '');
5
+ return xml.replace(cssVarPattern, (_, token) => {
6
+ const color = illustrationPalette[normalizeToken(token)];
7
+ return color ? colorToHex(color) : "var(--illustration-" + token + ")";
8
+ });
9
+ };
@@ -1,5 +1,5 @@
1
1
  const _excluded = ["color", "label", "font", "hideDot", "style"],
2
- _excluded2 = ["background", "activeBackground", "width", "justifyContent", "TabComponent", "TabsActiveIndicatorComponent"];
2
+ _excluded2 = ["background", "activeBackground", "activeColor", "width", "justifyContent", "TabComponent", "TabsActiveIndicatorComponent"];
3
3
  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); }
4
4
  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; }
5
5
  import React, { forwardRef, memo, useMemo } from 'react';
@@ -107,11 +107,8 @@ export const LiveTabLabel = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref2, re
107
107
  }))]
108
108
  });
109
109
  }));
110
-
111
- // Custom tab component with primary color for active state
112
110
  const PeriodSelectorTab = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/_jsx(SegmentedTab, _extends({
113
111
  ref: ref,
114
- activeColor: "fgPrimary",
115
112
  font: "label1"
116
113
  }, props))));
117
114
  /**
@@ -122,6 +119,7 @@ export const PeriodSelector = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref3,
122
119
  let {
123
120
  background = 'transparent',
124
121
  activeBackground = 'bgPrimaryWash',
122
+ activeColor = 'fgPrimary',
125
123
  width = '100%',
126
124
  justifyContent = 'space-between',
127
125
  TabComponent = PeriodSelectorTab,
@@ -133,6 +131,7 @@ export const PeriodSelector = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref3,
133
131
  TabComponent: TabComponent,
134
132
  TabsActiveIndicatorComponent: TabsActiveIndicatorComponent,
135
133
  activeBackground: activeBackground,
134
+ activeColor: activeColor,
136
135
  background: background,
137
136
  justifyContent: justifyContent,
138
137
  width: width
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cds-mobile",
3
- "version": "9.0.0-rc.2",
3
+ "version": "9.0.0-rc.3",
4
4
  "description": "Coinbase Design System - Mobile",
5
5
  "repository": {
6
6
  "type": "git",
@@ -202,9 +202,9 @@
202
202
  "react-native-worklets": "0.5.2"
203
203
  },
204
204
  "dependencies": {
205
- "@coinbase/cds-common": "^9.0.0-rc.2",
205
+ "@coinbase/cds-common": "^9.0.0-rc.3",
206
206
  "@coinbase/cds-icons": "^5.16.0",
207
- "@coinbase/cds-illustrations": "^4.38.0",
207
+ "@coinbase/cds-illustrations": "^4.40.1",
208
208
  "@coinbase/cds-lottie-files": "^3.3.4",
209
209
  "@coinbase/cds-utils": "^2.3.5",
210
210
  "@floating-ui/react-native": "^0.10.5",