@sproutsocial/racine 11.9.0 → 12.1.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 (35) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/__flow__/Input/index.js +2 -2
  3. package/__flow__/Token/styles.js +13 -12
  4. package/__flow__/index.js +1 -0
  5. package/__flow__/themes/dark/theme.js +0 -5
  6. package/__flow__/themes/extendedThemes/sproutTheme/dark/theme.js +63 -0
  7. package/__flow__/themes/extendedThemes/sproutTheme/light/theme.js +63 -0
  8. package/__flow__/themes/light/theme.js +0 -5
  9. package/__flow__/types/theme.flow.js +2 -2
  10. package/__flow__/utils/useInteractiveColor.js +32 -0
  11. package/commonjs/Input/index.js +3 -1
  12. package/commonjs/Token/styles.js +9 -7
  13. package/commonjs/index.js +6 -1
  14. package/commonjs/themes/dark/theme.js +0 -5
  15. package/commonjs/themes/extendedThemes/sproutTheme/dark/theme.js +65 -2
  16. package/commonjs/themes/extendedThemes/sproutTheme/light/theme.js +65 -2
  17. package/commonjs/themes/light/theme.js +0 -5
  18. package/commonjs/utils/useInteractiveColor.js +33 -0
  19. package/dist/themes/dark/theme.scss +0 -3
  20. package/dist/themes/extendedThemes/sproutTheme/dark/theme.scss +120 -3
  21. package/dist/themes/extendedThemes/sproutTheme/light/theme.scss +120 -3
  22. package/dist/themes/light/theme.scss +0 -3
  23. package/lib/Input/index.js +2 -1
  24. package/lib/Token/styles.js +8 -7
  25. package/lib/index.js +1 -0
  26. package/lib/themes/dark/theme.js +0 -4
  27. package/lib/themes/extendedThemes/sproutTheme/dark/theme.js +63 -1
  28. package/lib/themes/extendedThemes/sproutTheme/light/theme.js +63 -1
  29. package/lib/themes/light/theme.js +0 -4
  30. package/lib/types/theme.flow.js +1 -1
  31. package/lib/utils/useInteractiveColor.js +27 -0
  32. package/package.json +1 -1
  33. package/__flow__/themes/utils/interact.js +0 -12
  34. package/commonjs/themes/utils/interact.js +0 -19
  35. package/lib/themes/utils/interact.js +0 -13
package/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # Change Log
2
2
 
3
+ ## 12.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 76941e3: add growth specific colors to sprout theme for light and dark mode
8
+
9
+ ## 12.0.0
10
+
11
+ ### Major Changes
12
+
13
+ - 54639f5: Moved `theme.util.interact()` to a hook called `useInteractiveColor()`
14
+
15
+ - `theme.util.interact()` will no longer be available on the theme object and is moved to a hook called `useInteractiveColor()`
16
+ - To import the hook, use `import { useInteractiveColor } from '@sproutsocial/racine'`
17
+ - `useInteractiveColor()` accepts a theme color option and returns a lighten or darken version of that color depending on the theme mode currently in use('light' or 'dark')
18
+ - `useInteractiveColor()` can only be utilized within a theme context.
19
+
20
+ example:
21
+
22
+ ```jsx
23
+ import { useInteractiveColor } from '@sproutsocial/racine'
24
+
25
+ ....
26
+ &:hover,
27
+ &:active {
28
+ color: ${({theme}) => useInteract(theme.colors.icon.base)};
29
+ }
30
+ ```
31
+
3
32
  ## 11.9.0
4
33
 
5
34
  ### Minor Changes
@@ -7,6 +7,7 @@ import styled from "styled-components";
7
7
  import type { StyledComponent } from "styled-components";
8
8
  import type { TypeTheme } from "../types/theme.flow";
9
9
  import { mergeRefs } from "../utils";
10
+ import { useInteractiveColor } from "../utils/useInteractiveColor";
10
11
 
11
12
  type TypeProps = {
12
13
  /** ID of the form element, should match the "for" value of the associated label */
@@ -90,8 +91,7 @@ const InputContext = React.createContext<TypeInputContext>({});
90
91
  const StyledButton: StyledComponent<any, TypeTheme, *> = styled(Button)`
91
92
  &:hover,
92
93
  &:active {
93
- color: ${(props) =>
94
- props.theme.utils.interact(props.theme.colors.icon.base)};
94
+ color: ${(props) => useInteractiveColor(props.theme.colors.icon.base)};
95
95
  }
96
96
  `;
97
97
 
@@ -2,6 +2,7 @@
2
2
  import styled, { css, type StyledComponent } from "styled-components";
3
3
  import { COMMON } from "../utils/system-props";
4
4
  import { focusRing } from "../utils/mixins";
5
+ import { useInteractiveColor } from "../utils/useInteractiveColor";
5
6
 
6
7
  import type { TypeTheme } from "../types/theme.flow";
7
8
 
@@ -29,30 +30,30 @@ const Container: StyledComponent<any, TypeTheme, *> = styled.button`
29
30
  ${focusRing}
30
31
  }
31
32
 
32
- ${({ theme, palette }) =>
33
- palette === "blue" &&
33
+ ${({ closeable, theme }) =>
34
+ closeable &&
34
35
  css`
35
- color: ${theme.colors.text.body};
36
- background: ${theme.colors.container.background.decorative.blue};
37
- border: 1px solid ${theme.colors.container.border.decorative.blue};
36
+ cursor: pointer;
38
37
  &:hover,
39
38
  &:active {
40
- cursor: pointer;
41
39
  box-shadow: ${theme.shadows.low};
42
40
  border: 1px solid
43
- ${theme.utils.interact(theme.colors.container.border.decorative.blue)};
41
+ ${useInteractiveColor(theme.colors.container.border.base)};
44
42
  }
45
43
  `}
46
44
 
47
- ${({ closeable, theme }) =>
48
- closeable &&
45
+ ${({ theme, palette }) =>
46
+ palette === "blue" &&
49
47
  css`
50
- cursor: pointer;
48
+ color: ${theme.colors.text.body};
49
+ background: ${theme.colors.container.background.decorative.blue};
50
+ border: 1px solid ${theme.colors.container.border.decorative.blue};
51
51
  &:hover,
52
52
  &:active {
53
+ cursor: pointer;
53
54
  box-shadow: ${theme.shadows.low};
54
55
  border: 1px solid
55
- ${theme.utils.interact(theme.colors.container.border.base)};
56
+ ${useInteractiveColor(theme.colors.container.border.decorative.blue)};
56
57
  }
57
58
  `}
58
59
 
@@ -77,7 +78,7 @@ const Container: StyledComponent<any, TypeTheme, *> = styled.button`
77
78
  &:hover {
78
79
  box-shadow: ${theme.shadows.low};
79
80
  border: 1px solid
80
- ${theme.utils.interact(theme.colors.container.border.error)};
81
+ ${useInteractiveColor(theme.colors.container.border.error)};
81
82
  }
82
83
  `}
83
84
 
package/__flow__/index.js CHANGED
@@ -4,6 +4,7 @@ export type { TypeTheme, TypeSproutTheme } from "./types/theme.flow";
4
4
  export * from "./systemProps";
5
5
  export { visuallyHidden, focusRing, disabled } from "./utils/mixins";
6
6
  export { useSelect, useMultiselect, useTextContent } from "./utils/hooks";
7
+ export { useInteractiveColor } from "./utils/useInteractiveColor";
7
8
  export { default as theme } from "./themes/light/theme";
8
9
  export { default as darkTheme } from "./themes/dark/theme";
9
10
  export {
@@ -15,8 +15,6 @@ import {
15
15
  } from "./decorative-palettes";
16
16
  import { transparentize } from "polished";
17
17
 
18
- import interact from "../utils/interact";
19
-
20
18
  const MODE = "dark";
21
19
 
22
20
  export const shadows = {
@@ -235,9 +233,6 @@ const colors = {
235
233
 
236
234
  const darkTheme = {
237
235
  ...lightTheme,
238
- utils: {
239
- interact: interact(MODE),
240
- },
241
236
  colors,
242
237
  shadows,
243
238
  mode: MODE,
@@ -50,6 +50,68 @@ export const analytics = {
50
50
  },
51
51
  };
52
52
 
53
+ export const growth = {
54
+ education: {
55
+ decorative: {
56
+ aqua: baseDarkTheme.colors.aqua[600],
57
+ teal: baseDarkTheme.colors.teal[500],
58
+ },
59
+ },
60
+ opportunity: {
61
+ background: {
62
+ base: baseDarkTheme.colors.purple[700],
63
+ },
64
+ button: {
65
+ primary: {
66
+ base: baseDarkTheme.colors.purple[400],
67
+ hover: baseDarkTheme.colors.purple[300],
68
+ },
69
+ },
70
+ badge: {
71
+ background: {
72
+ base: baseDarkTheme.colors.purple[700],
73
+ active: baseDarkTheme.colors.purple[100],
74
+ },
75
+ icon: {
76
+ base: baseDarkTheme.colors.purple[200],
77
+ active: baseDarkTheme.colors.purple[800],
78
+ },
79
+ text: {
80
+ base: baseDarkTheme.colors.purple[200],
81
+ },
82
+ },
83
+ decorative: {
84
+ // confetti
85
+ green: baseDarkTheme.colors.green[700],
86
+ lightAqua: baseDarkTheme.colors.aqua[600],
87
+ darkAqua: baseDarkTheme.colors.aqua[1100],
88
+ purple: baseDarkTheme.colors.purple[700],
89
+ },
90
+ },
91
+ darkModal: {
92
+ background: {
93
+ base: baseDarkTheme.colors.aqua[1100],
94
+ },
95
+ text: {
96
+ base: baseDarkTheme.colors.neutral[0],
97
+ },
98
+ cards: {
99
+ background: {
100
+ base: baseDarkTheme.colors.neutral[0],
101
+ hover: baseDarkTheme.colors.purple[100],
102
+ },
103
+ text: {
104
+ base: baseDarkTheme.colors.neutral[800],
105
+ hover: baseDarkTheme.colors.neutral[900],
106
+ },
107
+ border: {
108
+ base: baseDarkTheme.colors.neutral[0],
109
+ hover: baseDarkTheme.colors.purple[700],
110
+ },
111
+ },
112
+ },
113
+ };
114
+
53
115
  const darkTheme: TypeSproutTheme = {
54
116
  ...baseDarkTheme,
55
117
  colors: {
@@ -57,6 +119,7 @@ const darkTheme: TypeSproutTheme = {
57
119
  navigation,
58
120
  datePicker,
59
121
  analytics,
122
+ growth,
60
123
  },
61
124
  };
62
125
 
@@ -50,6 +50,68 @@ export const analytics = {
50
50
  },
51
51
  };
52
52
 
53
+ export const growth = {
54
+ education: {
55
+ decorative: {
56
+ aqua: baseLightTheme.colors.aqua[600],
57
+ teal: baseLightTheme.colors.teal[700],
58
+ },
59
+ },
60
+ opportunity: {
61
+ background: {
62
+ base: baseLightTheme.colors.purple[700],
63
+ },
64
+ button: {
65
+ primary: {
66
+ base: baseLightTheme.colors.purple[700],
67
+ hover: baseLightTheme.colors.purple[800],
68
+ },
69
+ },
70
+ badge: {
71
+ background: {
72
+ base: baseLightTheme.colors.purple[200],
73
+ active: baseLightTheme.colors.purple[800],
74
+ },
75
+ icon: {
76
+ base: baseLightTheme.colors.purple[700],
77
+ active: baseLightTheme.colors.purple[100],
78
+ },
79
+ text: {
80
+ base: baseLightTheme.colors.purple[700],
81
+ },
82
+ },
83
+ decorative: {
84
+ // confetti
85
+ green: baseLightTheme.colors.green[700],
86
+ lightAqua: baseLightTheme.colors.aqua[600],
87
+ darkAqua: baseLightTheme.colors.aqua[1100],
88
+ purple: baseLightTheme.colors.purple[700],
89
+ },
90
+ },
91
+ darkModal: {
92
+ background: {
93
+ base: baseLightTheme.colors.aqua[1100],
94
+ },
95
+ text: {
96
+ base: baseLightTheme.colors.neutral[0],
97
+ },
98
+ cards: {
99
+ background: {
100
+ base: baseLightTheme.colors.neutral[0],
101
+ hover: baseLightTheme.colors.purple[100],
102
+ },
103
+ text: {
104
+ base: baseLightTheme.colors.neutral[800],
105
+ hover: baseLightTheme.colors.neutral[900],
106
+ },
107
+ border: {
108
+ base: baseLightTheme.colors.neutral[0],
109
+ hover: baseLightTheme.colors.purple[700],
110
+ },
111
+ },
112
+ },
113
+ };
114
+
53
115
  const lightTheme: TypeSproutTheme = {
54
116
  ...baseLightTheme,
55
117
  colors: {
@@ -57,6 +119,7 @@ const lightTheme: TypeSproutTheme = {
57
119
  navigation,
58
120
  datePicker,
59
121
  analytics,
122
+ growth,
60
123
  },
61
124
  };
62
125
 
@@ -20,8 +20,6 @@ import MOTION from "@sproutsocial/seeds-motion";
20
20
  import BORDER from "@sproutsocial/seeds-border";
21
21
  import { transparentize } from "polished";
22
22
 
23
- import interact from "../utils/interact";
24
-
25
23
  export const breakpoints = ["900px", "1200px", "1500px", "1800px"];
26
24
 
27
25
  const MODE = "light";
@@ -350,9 +348,6 @@ export const duration = {
350
348
  };
351
349
 
352
350
  const theme = {
353
- utils: {
354
- interact: interact(MODE),
355
- },
356
351
  breakpoints,
357
352
  colors,
358
353
  typography: {
@@ -17,9 +17,9 @@ import {
17
17
  datePicker,
18
18
  navigation,
19
19
  analytics,
20
+ growth,
20
21
  } from "../themes/extendedThemes/sproutTheme/light/theme";
21
22
 
22
- export type TypeThemeUtils = {| interact: (color: string) => string |};
23
23
  export type TypeThemeMode = "light" | "dark";
24
24
  export type TypeBreakpoint = typeof breakpoints;
25
25
  export type TypeTypography = typeof typography;
@@ -36,7 +36,6 @@ export type TypeDuration = typeof duration;
36
36
 
37
37
  export type TypeTheme = {
38
38
  mode: TypeThemeMode,
39
- utils: TypeThemeUtils,
40
39
  breakpoints: TypeBreakpoint,
41
40
  colors: TypeColor,
42
41
  typography: TypeTypography,
@@ -59,5 +58,6 @@ export type TypeSproutTheme = {
59
58
  navigation: typeof navigation,
60
59
  datePicker: typeof datePicker,
61
60
  analytics: typeof analytics,
61
+ growth: typeof growth,
62
62
  |},
63
63
  };
@@ -0,0 +1,32 @@
1
+ //@flow strict-local
2
+ import { darken, lighten } from "polished";
3
+ import { useTheme } from "styled-components";
4
+ import type { TypeColors } from "../types/theme.colors.flow.js";
5
+
6
+ /**
7
+ * The useInteractiveColor hook has context of theme mode (light or dark)
8
+ * and can be used to lighten or darken a color dynamically
9
+ *
10
+ * note: colors are limited to our theme colors
11
+ */
12
+ const useInteractiveColor = (themeColor: TypeColors): string => {
13
+ // Throw error if used outside of a ThemeProvider (styled-components)
14
+ if (!useTheme()) {
15
+ throw new Error(
16
+ "useInteractiveColor() must be used within a Styled Components ThemeProvider"
17
+ );
18
+ }
19
+
20
+ // Get the current theme mode ie. 'light' or 'dark'
21
+ const themeMode = useTheme().mode;
22
+
23
+ // If the theme mode is dark, return a lightened version of the themeValue
24
+ if (themeMode === "dark") {
25
+ return lighten(0.2, themeColor);
26
+ } else {
27
+ // If the theme mode is light, return a darkened version of the themeValue
28
+ return darken(0.2, themeColor);
29
+ }
30
+ };
31
+
32
+ export { useInteractiveColor };
@@ -15,6 +15,8 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
15
15
 
16
16
  var _utils = require("../utils");
17
17
 
18
+ var _useInteractiveColor = require("../utils/useInteractiveColor");
19
+
18
20
  var _excluded = ["autoComplete", "autoFocus", "disabled", "readOnly", "isInvalid", "hasWarning", "id", "name", "placeholder", "type", "required", "value", "elemBefore", "elemAfter", "maxLength", "ariaLabel", "ariaDescribedby", "clearButtonLabel", "innerRef", "onBlur", "onChange", "onClear", "onFocus", "onKeyDown", "onKeyUp", "onPaste", "inputProps", "qa", "appearance", "size"];
19
21
 
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -36,7 +38,7 @@ var StyledButton = (0, _styledComponents.default)(_Button.default).withConfig({
36
38
  displayName: "Input__StyledButton",
37
39
  componentId: "sc-1ck1dnm-0"
38
40
  })(["&:hover,&:active{color:", ";}"], function (props) {
39
- return props.theme.utils.interact(props.theme.colors.icon.base);
41
+ return (0, _useInteractiveColor.useInteractiveColor)(props.theme.colors.icon.base);
40
42
  });
41
43
 
42
44
  var ClearButton = function ClearButton() {
@@ -9,6 +9,8 @@ var _systemProps = require("../utils/system-props");
9
9
 
10
10
  var _mixins = require("../utils/mixins");
11
11
 
12
+ var _useInteractiveColor = require("../utils/useInteractiveColor");
13
+
12
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
15
 
14
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -20,13 +22,13 @@ var Container = _styledComponents.default.button.withConfig({
20
22
  var theme = _ref.theme;
21
23
  return (0, _styledComponents.css)(["", " font-family:", ";font-weight:", ";border:1px solid ", ";border-radius:", ";color:", ";background:", ";padding:", " ", ";transition:all ", " ", ";"], theme.typography[200], theme.fontFamily, theme.fontWeights.normal, theme.colors.container.border.base, theme.radii[500], theme.colors.text.body, theme.colors.container.background.base, theme.space[200], theme.space[300], theme.duration.fast, theme.easing.ease_inout);
22
24
  }, _mixins.focusRing, function (_ref2) {
23
- var theme = _ref2.theme,
24
- palette = _ref2.palette;
25
- return palette === "blue" && (0, _styledComponents.css)(["color:", ";background:", ";border:1px solid ", ";&:hover,&:active{cursor:pointer;box-shadow:", ";border:1px solid ", ";}"], theme.colors.text.body, theme.colors.container.background.decorative.blue, theme.colors.container.border.decorative.blue, theme.shadows.low, theme.utils.interact(theme.colors.container.border.decorative.blue));
25
+ var closeable = _ref2.closeable,
26
+ theme = _ref2.theme;
27
+ return closeable && (0, _styledComponents.css)(["cursor:pointer;&:hover,&:active{box-shadow:", ";border:1px solid ", ";}"], theme.shadows.low, (0, _useInteractiveColor.useInteractiveColor)(theme.colors.container.border.base));
26
28
  }, function (_ref3) {
27
- var closeable = _ref3.closeable,
28
- theme = _ref3.theme;
29
- return closeable && (0, _styledComponents.css)(["cursor:pointer;&:hover,&:active{box-shadow:", ";border:1px solid ", ";}"], theme.shadows.low, theme.utils.interact(theme.colors.container.border.base));
29
+ var theme = _ref3.theme,
30
+ palette = _ref3.palette;
31
+ return palette === "blue" && (0, _styledComponents.css)(["color:", ";background:", ";border:1px solid ", ";&:hover,&:active{cursor:pointer;box-shadow:", ";border:1px solid ", ";}"], theme.colors.text.body, theme.colors.container.background.decorative.blue, theme.colors.container.border.decorative.blue, theme.shadows.low, (0, _useInteractiveColor.useInteractiveColor)(theme.colors.container.border.decorative.blue));
30
32
  }, function (_ref4) {
31
33
  var disabled = _ref4.disabled,
32
34
  theme = _ref4.theme;
@@ -34,7 +36,7 @@ var Container = _styledComponents.default.button.withConfig({
34
36
  }, function (_ref5) {
35
37
  var valid = _ref5.valid,
36
38
  theme = _ref5.theme;
37
- return !valid && (0, _styledComponents.css)(["color:", ";background:", ";border:1px solid ", ";&:hover{box-shadow:", ";border:1px solid ", ";}"], theme.colors.text.error, theme.colors.container.background.error, theme.colors.container.border.error, theme.shadows.low, theme.utils.interact(theme.colors.container.border.error));
39
+ return !valid && (0, _styledComponents.css)(["color:", ";background:", ";border:1px solid ", ";&:hover{box-shadow:", ";border:1px solid ", ";}"], theme.colors.text.error, theme.colors.container.background.error, theme.colors.container.border.error, theme.shadows.low, (0, _useInteractiveColor.useInteractiveColor)(theme.colors.container.border.error));
38
40
  }, _systemProps.COMMON);
39
41
 
40
42
  var _default = Container;
package/commonjs/index.js CHANGED
@@ -8,6 +8,7 @@ var _exportNames = {
8
8
  useSelect: true,
9
9
  useMultiselect: true,
10
10
  useTextContent: true,
11
+ useInteractiveColor: true,
11
12
  theme: true,
12
13
  darkTheme: true,
13
14
  Icon: true,
@@ -72,7 +73,7 @@ var _exportNames = {
72
73
  DateRangePicker: true,
73
74
  VisuallyHidden: true
74
75
  };
75
- exports.visuallyHidden = exports.useTextContent = exports.useSelect = exports.useMultiselect = exports.toast = exports.theme = exports.sproutLightTheme = exports.sproutDarkTheme = exports.focusRing = exports.disabled = exports.darkTheme = exports.VisuallyHidden = exports.Tooltip = exports.TokenInput = exports.Token = exports.ToggleHint = exports.ToastContainer = exports.ThemeProvider = exports.Textarea = exports.Text = exports.Tabs = exports.TableRowAccordion = exports.TableHeaderCell = exports.TableCell = exports.Table = exports.Switch = exports.Stack = exports.Skeleton = exports.SingleDatePicker = exports.Select = exports.SegmentedControl = exports.Radio = exports.Popout = exports.OverflowList = exports.Numeral = exports.Modal = exports.Message = exports.MenuItemContainer = exports.MenuButtonContext = exports.MenuButton = exports.Menu = exports.LoaderButton = exports.Loader = exports.ListboxButton = exports.Listbox = exports.Link = exports.Label = exports.KeyboardKey = exports.Input = exports.Indicator = exports.Image = exports.Icon = exports.FormField = exports.Fieldset = exports.EmptyState = exports.Drawer = exports.DateRangePicker = exports.Collapsible = exports.Checkbox = exports.ChartLegend = exports.CharacterCounter = exports.Card = exports.Button = exports.Breadcrumb = exports.Box = exports.Banner = exports.Badge = exports.Avatar = exports.Alert = void 0;
76
+ exports.visuallyHidden = exports.useTextContent = exports.useSelect = exports.useMultiselect = exports.useInteractiveColor = exports.toast = exports.theme = exports.sproutLightTheme = exports.sproutDarkTheme = exports.focusRing = exports.disabled = exports.darkTheme = exports.VisuallyHidden = exports.Tooltip = exports.TokenInput = exports.Token = exports.ToggleHint = exports.ToastContainer = exports.ThemeProvider = exports.Textarea = exports.Text = exports.Tabs = exports.TableRowAccordion = exports.TableHeaderCell = exports.TableCell = exports.Table = exports.Switch = exports.Stack = exports.Skeleton = exports.SingleDatePicker = exports.Select = exports.SegmentedControl = exports.Radio = exports.Popout = exports.OverflowList = exports.Numeral = exports.Modal = exports.Message = exports.MenuItemContainer = exports.MenuButtonContext = exports.MenuButton = exports.Menu = exports.LoaderButton = exports.Loader = exports.ListboxButton = exports.Listbox = exports.Link = exports.Label = exports.KeyboardKey = exports.Input = exports.Indicator = exports.Image = exports.Icon = exports.FormField = exports.Fieldset = exports.EmptyState = exports.Drawer = exports.DateRangePicker = exports.Collapsible = exports.Checkbox = exports.ChartLegend = exports.CharacterCounter = exports.Card = exports.Button = exports.Breadcrumb = exports.Box = exports.Banner = exports.Badge = exports.Avatar = exports.Alert = void 0;
76
77
 
77
78
  var _systemProps = require("./systemProps");
78
79
 
@@ -95,6 +96,10 @@ exports.useSelect = _hooks.useSelect;
95
96
  exports.useMultiselect = _hooks.useMultiselect;
96
97
  exports.useTextContent = _hooks.useTextContent;
97
98
 
99
+ var _useInteractiveColor = require("./utils/useInteractiveColor");
100
+
101
+ exports.useInteractiveColor = _useInteractiveColor.useInteractiveColor;
102
+
98
103
  var _theme = _interopRequireDefault(require("./themes/light/theme"));
99
104
 
100
105
  exports.theme = _theme.default;
@@ -15,8 +15,6 @@ var _decorativePalettes = require("./decorative-palettes");
15
15
 
16
16
  var _polished = require("polished");
17
17
 
18
- var _interact = _interopRequireDefault(require("../utils/interact"));
19
-
20
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
19
 
22
20
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -234,9 +232,6 @@ var colors = _extends({}, _theme.default.colors, {
234
232
  }, _datavizPalette.datavizPalette);
235
233
 
236
234
  var darkTheme = _extends({}, _theme.default, {
237
- utils: {
238
- interact: (0, _interact.default)(MODE)
239
- },
240
235
  colors: colors,
241
236
  shadows: shadows,
242
237
  mode: MODE
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.navigation = exports.default = exports.datePicker = exports.analytics = void 0;
4
+ exports.navigation = exports.growth = exports.default = exports.datePicker = exports.analytics = void 0;
5
5
 
6
6
  var _theme = _interopRequireDefault(require("../../../dark/theme"));
7
7
 
@@ -57,12 +57,75 @@ var analytics = {
57
57
  }
58
58
  };
59
59
  exports.analytics = analytics;
60
+ var growth = {
61
+ education: {
62
+ decorative: {
63
+ aqua: _theme.default.colors.aqua[600],
64
+ teal: _theme.default.colors.teal[500]
65
+ }
66
+ },
67
+ opportunity: {
68
+ background: {
69
+ base: _theme.default.colors.purple[700]
70
+ },
71
+ button: {
72
+ primary: {
73
+ base: _theme.default.colors.purple[400],
74
+ hover: _theme.default.colors.purple[300]
75
+ }
76
+ },
77
+ badge: {
78
+ background: {
79
+ base: _theme.default.colors.purple[700],
80
+ active: _theme.default.colors.purple[100]
81
+ },
82
+ icon: {
83
+ base: _theme.default.colors.purple[200],
84
+ active: _theme.default.colors.purple[800]
85
+ },
86
+ text: {
87
+ base: _theme.default.colors.purple[200]
88
+ }
89
+ },
90
+ decorative: {
91
+ // confetti
92
+ green: _theme.default.colors.green[700],
93
+ lightAqua: _theme.default.colors.aqua[600],
94
+ darkAqua: _theme.default.colors.aqua[1100],
95
+ purple: _theme.default.colors.purple[700]
96
+ }
97
+ },
98
+ darkModal: {
99
+ background: {
100
+ base: _theme.default.colors.aqua[1100]
101
+ },
102
+ text: {
103
+ base: _theme.default.colors.neutral[0]
104
+ },
105
+ cards: {
106
+ background: {
107
+ base: _theme.default.colors.neutral[0],
108
+ hover: _theme.default.colors.purple[100]
109
+ },
110
+ text: {
111
+ base: _theme.default.colors.neutral[800],
112
+ hover: _theme.default.colors.neutral[900]
113
+ },
114
+ border: {
115
+ base: _theme.default.colors.neutral[0],
116
+ hover: _theme.default.colors.purple[700]
117
+ }
118
+ }
119
+ }
120
+ };
121
+ exports.growth = growth;
60
122
 
61
123
  var darkTheme = _extends({}, _theme.default, {
62
124
  colors: _extends({}, _theme.default.colors, {
63
125
  navigation: navigation,
64
126
  datePicker: datePicker,
65
- analytics: analytics
127
+ analytics: analytics,
128
+ growth: growth
66
129
  })
67
130
  });
68
131
 
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.navigation = exports.default = exports.datePicker = exports.analytics = void 0;
4
+ exports.navigation = exports.growth = exports.default = exports.datePicker = exports.analytics = void 0;
5
5
 
6
6
  var _theme = _interopRequireDefault(require("../../../light/theme"));
7
7
 
@@ -57,12 +57,75 @@ var analytics = {
57
57
  }
58
58
  };
59
59
  exports.analytics = analytics;
60
+ var growth = {
61
+ education: {
62
+ decorative: {
63
+ aqua: _theme.default.colors.aqua[600],
64
+ teal: _theme.default.colors.teal[700]
65
+ }
66
+ },
67
+ opportunity: {
68
+ background: {
69
+ base: _theme.default.colors.purple[700]
70
+ },
71
+ button: {
72
+ primary: {
73
+ base: _theme.default.colors.purple[700],
74
+ hover: _theme.default.colors.purple[800]
75
+ }
76
+ },
77
+ badge: {
78
+ background: {
79
+ base: _theme.default.colors.purple[200],
80
+ active: _theme.default.colors.purple[800]
81
+ },
82
+ icon: {
83
+ base: _theme.default.colors.purple[700],
84
+ active: _theme.default.colors.purple[100]
85
+ },
86
+ text: {
87
+ base: _theme.default.colors.purple[700]
88
+ }
89
+ },
90
+ decorative: {
91
+ // confetti
92
+ green: _theme.default.colors.green[700],
93
+ lightAqua: _theme.default.colors.aqua[600],
94
+ darkAqua: _theme.default.colors.aqua[1100],
95
+ purple: _theme.default.colors.purple[700]
96
+ }
97
+ },
98
+ darkModal: {
99
+ background: {
100
+ base: _theme.default.colors.aqua[1100]
101
+ },
102
+ text: {
103
+ base: _theme.default.colors.neutral[0]
104
+ },
105
+ cards: {
106
+ background: {
107
+ base: _theme.default.colors.neutral[0],
108
+ hover: _theme.default.colors.purple[100]
109
+ },
110
+ text: {
111
+ base: _theme.default.colors.neutral[800],
112
+ hover: _theme.default.colors.neutral[900]
113
+ },
114
+ border: {
115
+ base: _theme.default.colors.neutral[0],
116
+ hover: _theme.default.colors.purple[700]
117
+ }
118
+ }
119
+ }
120
+ };
121
+ exports.growth = growth;
60
122
 
61
123
  var lightTheme = _extends({}, _theme.default, {
62
124
  colors: _extends({}, _theme.default.colors, {
63
125
  navigation: navigation,
64
126
  datePicker: datePicker,
65
- analytics: analytics
127
+ analytics: analytics,
128
+ growth: growth
66
129
  })
67
130
  });
68
131
 
@@ -25,8 +25,6 @@ var _seedsBorder = _interopRequireDefault(require("@sproutsocial/seeds-border"))
25
25
 
26
26
  var _polished = require("polished");
27
27
 
28
- var _interact = _interopRequireDefault(require("../utils/interact"));
29
-
30
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
29
 
32
30
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -338,9 +336,6 @@ var duration = {
338
336
  };
339
337
  exports.duration = duration;
340
338
  var theme = {
341
- utils: {
342
- interact: (0, _interact.default)(MODE)
343
- },
344
339
  breakpoints: breakpoints,
345
340
  colors: colors,
346
341
  typography: _extends({}, typography, {