@sproutsocial/racine 12.1.0-svgs-bundle.0 → 12.2.0-partner-logos.1

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 (48) hide show
  1. package/__flow__/EnumLogoNames.js +1 -1
  2. package/__flow__/Input/index.js +2 -2
  3. package/__flow__/LogoViewBoxes.js +1 -1
  4. package/__flow__/PartnerLogo/index.js +17 -4
  5. package/__flow__/PartnerLogo/index.stories.js +14 -0
  6. package/__flow__/PartnerLogo/partnerLogos/feedly-dark.svg +3 -0
  7. package/__flow__/PartnerLogo/partnerLogos/feedly.svg +3 -0
  8. package/__flow__/Token/styles.js +13 -12
  9. package/__flow__/index.js +1 -0
  10. package/__flow__/themes/dark/theme.js +0 -5
  11. package/__flow__/themes/extendedThemes/sproutTheme/dark/theme.js +63 -0
  12. package/__flow__/themes/extendedThemes/sproutTheme/light/theme.js +63 -0
  13. package/__flow__/themes/light/theme.js +0 -5
  14. package/__flow__/types/theme.flow.js +2 -2
  15. package/__flow__/utils/useInteractiveColor.js +32 -0
  16. package/commonjs/Input/index.js +3 -1
  17. package/commonjs/LogoViewBoxes.js +2 -2
  18. package/commonjs/PartnerLogo/index.js +17 -4
  19. package/commonjs/Token/styles.js +9 -7
  20. package/commonjs/index.js +6 -1
  21. package/commonjs/themes/dark/theme.js +0 -5
  22. package/commonjs/themes/extendedThemes/sproutTheme/dark/theme.js +65 -2
  23. package/commonjs/themes/extendedThemes/sproutTheme/light/theme.js +65 -2
  24. package/commonjs/themes/light/theme.js +0 -5
  25. package/commonjs/utils/useInteractiveColor.js +33 -0
  26. package/dist/logo.svg +1 -1
  27. package/dist/logoList.js +1 -1
  28. package/dist/themes/dark/theme.scss +0 -3
  29. package/dist/themes/extendedThemes/sproutTheme/dark/theme.scss +120 -3
  30. package/dist/themes/extendedThemes/sproutTheme/light/theme.scss +120 -3
  31. package/dist/themes/light/theme.scss +0 -3
  32. package/lib/Input/index.js +2 -1
  33. package/lib/LogoViewBoxes.js +2 -2
  34. package/lib/PartnerLogo/index.js +16 -4
  35. package/lib/Token/styles.js +8 -7
  36. package/lib/index.js +1 -0
  37. package/lib/themes/dark/theme.js +0 -4
  38. package/lib/themes/extendedThemes/sproutTheme/dark/theme.js +63 -1
  39. package/lib/themes/extendedThemes/sproutTheme/light/theme.js +63 -1
  40. package/lib/themes/light/theme.js +0 -4
  41. package/lib/types/theme.flow.js +1 -1
  42. package/lib/utils/useInteractiveColor.js +27 -0
  43. package/package.json +1 -1
  44. package/__flow__/PartnerLogo/partnerLogos/Feedly-dark.svg +0 -1
  45. package/__flow__/PartnerLogo/partnerLogos/Feedly.svg +0 -1
  46. package/__flow__/themes/utils/interact.js +0 -12
  47. package/commonjs/themes/utils/interact.js +0 -19
  48. package/lib/themes/utils/interact.js +0 -13
@@ -1,2 +1,2 @@
1
1
  // @flow
2
- export type EnumLogoNames = "bitly-dark" | "bitly" | "canva-dark" | "canva" | "dropbox-dark" | "dropbox" | "facebook-dark" | "facebook-shops-dark" | "facebook-shops" | "facebook" | "Feedly-dark" | "Feedly" | "glassdoor-dark" | "glassdoor" | "google-analytics-dark" | "google-analytics" | "google-business-messages-dark" | "google-business-messages" | "google-drive-dark" | "google-drive" | "google-my-business-dark" | "google-my-business" | "hubspot-dark" | "hubspot" | "instagram-dark" | "instagram" | "linkedin-dark" | "linkedin" | "marketo-dark" | "marketo" | "messenger-dark" | "messenger" | "microsoft-dynamics-dark" | "microsoft-dynamics" | "pinterest-dark" | "pinterest" | "reddit-dark" | "reddit" | "salesforce-dark" | "salesforce" | "shopify-dark" | "shopify" | "slack-dark" | "slack" | "tiktok-dark" | "tiktok" | "tripadvisor-dark" | "tripadvisor" | "tumblr-dark" | "tumblr" | "twitter-dark" | "twitter" | "whatsapp-dark" | "whatsapp" | "woocommerce-dark" | "woocommerce" | "yelp-dark" | "yelp" | "youtube-dark" | "youtube" | "zendesk-dark" | "zendesk";
2
+ export type EnumLogoNames = "bitly-dark" | "bitly" | "canva-dark" | "canva" | "dropbox-dark" | "dropbox" | "facebook-dark" | "facebook-shops-dark" | "facebook-shops" | "facebook" | "feedly-dark" | "feedly" | "glassdoor-dark" | "glassdoor" | "google-analytics-dark" | "google-analytics" | "google-business-messages-dark" | "google-business-messages" | "google-drive-dark" | "google-drive" | "google-my-business-dark" | "google-my-business" | "hubspot-dark" | "hubspot" | "instagram-dark" | "instagram" | "linkedin-dark" | "linkedin" | "marketo-dark" | "marketo" | "messenger-dark" | "messenger" | "microsoft-dynamics-dark" | "microsoft-dynamics" | "pinterest-dark" | "pinterest" | "reddit-dark" | "reddit" | "salesforce-dark" | "salesforce" | "shopify-dark" | "shopify" | "slack-dark" | "slack" | "tiktok-dark" | "tiktok" | "tripadvisor-dark" | "tripadvisor" | "tumblr-dark" | "tumblr" | "twitter-dark" | "twitter" | "whatsapp-dark" | "whatsapp" | "woocommerce-dark" | "woocommerce" | "yelp-dark" | "yelp" | "youtube-dark" | "youtube" | "zendesk-dark" | "zendesk";
@@ -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
 
@@ -1 +1 @@
1
- module.exports = {"bitly-dark":"0 0 140 64","bitly":"0 0 140 64","canva-dark":"0 0 140 140","canva":"0 0 140 140","dropbox-dark":"0 0 140 119","dropbox":"0 0 140 119","facebook-dark":"0 0 141 139","facebook-shops-dark":"0 0 141 155","facebook-shops":"0 0 141 155","facebook":"0 0 141 139","Feedly-dark":"0 0 141 123","Feedly":"0 0 141 123","glassdoor-dark":"0 0 140 196","glassdoor":"0 0 140 196","google-analytics-dark":"0 0 140 160","google-analytics":"0 0 140 160","google-business-messages-dark":"0 0 140 140","google-business-messages":"0 0 140 140","google-drive-dark":"0 0 140 126","google-drive":"0 0 140 126","google-my-business-dark":"0 0 140 123","google-my-business":"0 0 140 123","hubspot-dark":"0 0 140 156","hubspot":"0 0 140 156","instagram-dark":"0 0 140 140","instagram":"0 0 140 140","linkedin-dark":"0 0 140 140","linkedin":"0 0 140 140","marketo-dark":"0 0 140 164","marketo":"0 0 140 164","messenger-dark":"0 0 140 141","messenger":"0 0 140 140","microsoft-dynamics-dark":"0 0 140 227","microsoft-dynamics":"0 0 140 227","pinterest-dark":"0 0 140 141","pinterest":"0 0 140 141","reddit-dark":"0 0 140 140","reddit":"0 0 140 140","salesforce-dark":"0 0 140 99","salesforce":"0 0 140 99","shopify-dark":"0 0 140 159","shopify":"0 0 140 159","slack-dark":"0 0 140 140","slack":"0 0 140 140","tiktok-dark":"0 0 140 159","tiktok":"0 0 140 159","tripadvisor-dark":"0 0 140 140","tripadvisor":"0 0 140 140","tumblr-dark":"0 0 140 140","tumblr":"0 0 140 140","twitter-dark":"0 0 140 114","twitter":"0 0 140 114","whatsapp-dark":"0 0 140 140","whatsapp":"0 0 140 141","woocommerce-dark":"0 0 140 84","woocommerce":"0 0 140 84","yelp-dark":"0 0 140 159","yelp":"0 0 140 159","youtube-dark":"0 0 140 99","youtube":"0 0 140 99","zendesk-dark":"0 0 140 107","zendesk":"0 0 140 107"};
1
+ module.exports = {"bitly-dark":"0 0 140 64","bitly":"0 0 140 64","canva-dark":"0 0 140 140","canva":"0 0 140 140","dropbox-dark":"0 0 140 119","dropbox":"0 0 140 119","facebook-dark":"0 0 141 139","facebook-shops-dark":"0 0 141 155","facebook-shops":"0 0 141 155","facebook":"0 0 141 139","feedly-dark":"0 0 141 123","feedly":"0 0 141 123","glassdoor-dark":"0 0 140 196","glassdoor":"0 0 140 196","google-analytics-dark":"0 0 140 160","google-analytics":"0 0 140 160","google-business-messages-dark":"0 0 140 140","google-business-messages":"0 0 140 140","google-drive-dark":"0 0 140 126","google-drive":"0 0 140 126","google-my-business-dark":"0 0 140 123","google-my-business":"0 0 140 123","hubspot-dark":"0 0 140 156","hubspot":"0 0 140 156","instagram-dark":"0 0 140 140","instagram":"0 0 140 140","linkedin-dark":"0 0 140 140","linkedin":"0 0 140 140","marketo-dark":"0 0 140 164","marketo":"0 0 140 164","messenger-dark":"0 0 140 141","messenger":"0 0 140 140","microsoft-dynamics-dark":"0 0 140 227","microsoft-dynamics":"0 0 140 227","pinterest-dark":"0 0 140 141","pinterest":"0 0 140 141","reddit-dark":"0 0 140 140","reddit":"0 0 140 140","salesforce-dark":"0 0 140 99","salesforce":"0 0 140 99","shopify-dark":"0 0 140 159","shopify":"0 0 140 159","slack-dark":"0 0 140 140","slack":"0 0 140 140","tiktok-dark":"0 0 140 159","tiktok":"0 0 140 159","tripadvisor-dark":"0 0 140 140","tripadvisor":"0 0 140 140","tumblr-dark":"0 0 140 140","tumblr":"0 0 140 140","twitter-dark":"0 0 140 114","twitter":"0 0 140 114","whatsapp-dark":"0 0 140 140","whatsapp":"0 0 140 141","woocommerce-dark":"0 0 140 84","woocommerce":"0 0 140 84","yelp-dark":"0 0 140 159","yelp":"0 0 140 159","youtube-dark":"0 0 140 99","youtube":"0 0 140 99","zendesk-dark":"0 0 140 107","zendesk":"0 0 140 107"};
@@ -5,19 +5,32 @@ import type { TypePartnerNames } from "./TypePartnerNames";
5
5
  import { useTheme } from "styled-components";
6
6
 
7
7
  type TypeProps = {
8
+ /** The name of the partner whose logo you want to render. */
8
9
  partnerName: TypePartnerNames,
10
+ /** Manually override the default mode behavior by rendering a logo based on the background it's displayed on. */
11
+ backgroundType?: "dark" | "light",
9
12
  };
10
13
 
11
- const PartnerLogo = ({ partnerName }: TypeProps) => {
14
+ const PartnerLogo = ({ partnerName, backgroundType }: TypeProps) => {
12
15
  const { mode } = useTheme();
13
- const whichLogo = mode === "dark" ? `${partnerName}-dark` : partnerName;
14
- const logoViewBox = logoViewBoxes[whichLogo];
16
+ const whichLogo = (type) => {
17
+ if (type && type === "dark") {
18
+ return `${partnerName}-dark`;
19
+ } else if (type && type === "light") {
20
+ return partnerName;
21
+ } else if (mode === "dark") {
22
+ return `${partnerName}-dark`;
23
+ } else {
24
+ return partnerName;
25
+ }
26
+ };
27
+ const logoViewBox = logoViewBoxes[whichLogo(backgroundType)];
15
28
 
16
29
  return (
17
30
  <svg viewBox={logoViewBox} focusable={false}>
18
31
  <use
19
32
  xmlnsXlink="http://www.w3.org/1999/xlink"
20
- xlinkHref={`#sslogosvg-${whichLogo}`}
33
+ xlinkHref={`#sslogosvg-${whichLogo(backgroundType)}`}
21
34
  />
22
35
  </svg>
23
36
  );
@@ -57,3 +57,17 @@ export const PartnerLogos = (args) => (
57
57
  PartnerLogos.story = {
58
58
  name: "Partner Logos",
59
59
  };
60
+
61
+ export const ModeOverride = (args) => (
62
+ <Box width="25%">
63
+ <PartnerLogo {...args} />
64
+ </Box>
65
+ );
66
+
67
+ ModeOverride.args = {
68
+ backgroundType: "light",
69
+ };
70
+
71
+ ModeOverride.story = {
72
+ name: "Mode override",
73
+ };
@@ -0,0 +1,3 @@
1
+ <svg width="141" height="123" viewBox="0 0 141 123" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M52.2726 122.345H89.6544L89.9817 122.309C94.0706 122.305 97.992 120.684 100.891 117.8L136.382 81.8363C137.828 80.4117 138.978 78.7136 139.762 76.8407C140.546 74.9679 140.95 72.9577 140.95 70.9272C140.95 68.8967 140.546 66.8866 139.762 65.0137C138.978 63.1408 137.828 61.4427 136.382 60.0181L81.8362 5.4728C80.4117 4.02591 78.7135 2.87686 76.8407 2.09254C74.9678 1.30822 72.9576 0.904297 70.9271 0.904297C68.8967 0.904297 66.8865 1.30822 65.0136 2.09254C63.1408 2.87686 61.4426 4.02591 60.0181 5.4728L5.47274 60.0181C4.039 61.4501 2.90159 63.1506 2.12555 65.0225C1.34951 66.8944 0.950073 68.9009 0.950073 70.9272C0.950073 72.9536 1.34951 74.9601 2.12555 76.8319C2.90159 78.7038 4.039 80.4043 5.47274 81.8363L41.3636 117.836C42.7918 119.274 44.492 120.413 46.3649 121.187C48.2378 121.961 50.2461 122.355 52.2726 122.345ZM31.3272 77.1451H37.8363C38.2224 77.1434 38.6047 77.0694 38.9636 76.9269C39.3074 76.7684 39.6259 76.5601 39.909 76.3088L79.218 36.8543C79.494 36.5805 79.713 36.2548 79.8625 35.8959C80.012 35.537 80.0889 35.1521 80.0889 34.7634C80.0889 34.3746 80.012 33.9897 79.8625 33.6309C79.713 33.272 79.494 32.9463 79.218 32.6725L72.1635 25.618C71.8932 25.3422 71.5707 25.123 71.2149 24.9732C70.859 24.8234 70.4769 24.7459 70.0908 24.7452C69.3394 24.78 68.6272 25.0907 68.0908 25.618L25.5818 68.3088C25.3016 68.5833 25.0799 68.9117 24.9299 69.2741C24.7799 69.6366 24.7048 70.0256 24.709 70.4179C24.7107 70.8039 24.7847 71.1863 24.9272 71.5451C25.0681 71.9073 25.2923 72.2312 25.5818 72.4906L29.2181 76.3088C29.7835 76.8546 30.5414 77.1551 31.3272 77.1451ZM66.4544 112.272H72.9271C73.3384 112.314 73.754 112.272 74.1481 112.147C74.5422 112.021 74.9064 111.817 75.218 111.545L78.8544 107.727C79.1303 107.453 79.3494 107.127 79.4989 106.768C79.6483 106.41 79.7253 106.025 79.7253 105.636C79.7253 105.247 79.6483 104.862 79.4989 104.503C79.3494 104.145 79.1303 103.819 78.8544 103.545L71.7999 96.5269C71.526 96.2509 71.2003 96.0319 70.8415 95.8824C70.4826 95.733 70.0977 95.656 69.709 95.656C69.3202 95.656 68.9353 95.733 68.5764 95.8824C68.2176 96.0319 67.8918 96.2509 67.618 96.5269L60.5635 103.581C60.2878 103.852 60.0686 104.174 59.9188 104.53C59.7689 104.886 59.6914 105.268 59.6908 105.654C59.6982 106.444 60.011 107.199 60.5635 107.763L64.3817 111.4C64.9322 111.95 65.6761 112.263 66.4544 112.272ZM49.8363 95.1814H56.309C56.7128 95.1717 57.1098 95.0758 57.4735 94.9002C57.8372 94.7246 58.1593 94.4734 58.4181 94.1633L81.9453 70.636C82.2213 70.3622 82.4403 70.0365 82.5898 69.6777C82.7392 69.3188 82.8162 68.9339 82.8162 68.5451C82.8162 68.1564 82.7392 67.7715 82.5898 67.4126C82.4403 67.0538 82.2213 66.728 81.9453 66.4542L75.0362 59.5452C74.7655 59.2703 74.4429 59.052 74.087 58.903C73.7312 58.754 73.3493 58.6773 72.9635 58.6773C72.5777 58.6773 72.1958 58.754 71.84 58.903C71.4841 59.052 71.1615 59.2703 70.8908 59.5452L44.0908 86.3451C43.8107 86.6197 43.5889 86.948 43.439 87.3105C43.289 87.6729 43.2139 88.062 43.2181 88.4542C43.2146 88.8409 43.2902 89.2243 43.4402 89.5807C43.5903 89.9372 43.8117 90.2592 44.0908 90.5269L47.7272 94.3451C48.2947 94.8876 49.0512 95.1876 49.8363 95.1814Z" fill="white"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="141" height="123" viewBox="0 0 141 123" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M52.2726 122.345H89.6544L89.9817 122.309C94.0706 122.305 97.992 120.684 100.891 117.8L136.382 81.8363C137.828 80.4117 138.978 78.7136 139.762 76.8407C140.546 74.9679 140.95 72.9577 140.95 70.9272C140.95 68.8967 140.546 66.8866 139.762 65.0137C138.978 63.1408 137.828 61.4427 136.382 60.0181L81.8362 5.4728C80.4117 4.02591 78.7135 2.87686 76.8407 2.09254C74.9678 1.30822 72.9576 0.904297 70.9271 0.904297C68.8967 0.904297 66.8865 1.30822 65.0136 2.09254C63.1408 2.87686 61.4426 4.02591 60.0181 5.4728L5.47274 60.0181C4.039 61.4501 2.90159 63.1506 2.12555 65.0225C1.34951 66.8944 0.950073 68.9009 0.950073 70.9272C0.950073 72.9536 1.34951 74.9601 2.12555 76.8319C2.90159 78.7038 4.039 80.4043 5.47274 81.8363L41.3636 117.836C42.7918 119.274 44.492 120.413 46.3649 121.187C48.2378 121.961 50.2461 122.355 52.2726 122.345ZM31.3272 77.1451H37.8363C38.2224 77.1434 38.6047 77.0694 38.9636 76.9269C39.3074 76.7684 39.6259 76.5601 39.909 76.3088L79.218 36.8543C79.494 36.5805 79.713 36.2548 79.8625 35.8959C80.012 35.537 80.0889 35.1521 80.0889 34.7634C80.0889 34.3746 80.012 33.9897 79.8625 33.6309C79.713 33.272 79.494 32.9463 79.218 32.6725L72.1635 25.618C71.8932 25.3422 71.5708 25.123 71.2149 24.9732C70.859 24.8234 70.4769 24.7459 70.0908 24.7452C69.3394 24.78 68.6273 25.0907 68.0908 25.618L25.5818 68.3088C25.3016 68.5833 25.0799 68.9117 24.9299 69.2741C24.78 69.6366 24.7048 70.0256 24.7091 70.4179C24.7107 70.8039 24.7847 71.1863 24.9272 71.5451C25.0681 71.9073 25.2923 72.2312 25.5818 72.4906L29.2181 76.3088C29.7835 76.8546 30.5415 77.1551 31.3272 77.1451ZM66.4544 112.272H72.9272C73.3385 112.314 73.754 112.272 74.1481 112.147C74.5422 112.021 74.9064 111.817 75.218 111.545L78.8544 107.727C79.1304 107.453 79.3494 107.127 79.4989 106.768C79.6483 106.41 79.7253 106.025 79.7253 105.636C79.7253 105.247 79.6483 104.862 79.4989 104.503C79.3494 104.145 79.1304 103.819 78.8544 103.545L71.7999 96.5269C71.5261 96.2509 71.2003 96.0319 70.8415 95.8824C70.4826 95.733 70.0977 95.656 69.709 95.656C69.3202 95.656 68.9353 95.733 68.5765 95.8824C68.2176 96.0319 67.8919 96.2509 67.6181 96.5269L60.5635 103.581C60.2878 103.852 60.0686 104.174 59.9188 104.53C59.7689 104.886 59.6914 105.268 59.6908 105.654C59.6982 106.444 60.011 107.199 60.5635 107.763L64.3817 111.4C64.9322 111.95 65.6761 112.263 66.4544 112.272ZM49.8363 95.1814H56.309C56.7128 95.1717 57.1098 95.0758 57.4735 94.9002C57.8373 94.7246 58.1593 94.4734 58.4181 94.1633L81.9453 70.636C82.2213 70.3622 82.4403 70.0365 82.5898 69.6777C82.7393 69.3188 82.8162 68.9339 82.8162 68.5451C82.8162 68.1564 82.7393 67.7715 82.5898 67.4126C82.4403 67.0538 82.2213 66.728 81.9453 66.4542L75.0362 59.5452C74.7655 59.2703 74.4429 59.052 74.0871 58.903C73.7312 58.754 73.3493 58.6773 72.9635 58.6773C72.5777 58.6773 72.1958 58.754 71.84 58.903C71.4841 59.052 71.1615 59.2703 70.8908 59.5452L44.0908 86.3451C43.8107 86.6197 43.589 86.948 43.439 87.3105C43.289 87.6729 43.2139 88.062 43.2181 88.4542C43.2146 88.8409 43.2902 89.2243 43.4403 89.5807C43.5904 89.9372 43.8117 90.2592 44.0908 90.5269L47.7272 94.3451C48.2947 94.8876 49.0512 95.1876 49.8363 95.1814Z" fill="#0FC62B"/>
3
+ </svg>
@@ -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() {
@@ -11,8 +11,8 @@ module.exports = {
11
11
  "facebook-shops-dark": "0 0 141 155",
12
12
  "facebook-shops": "0 0 141 155",
13
13
  "facebook": "0 0 141 139",
14
- "Feedly-dark": "0 0 141 123",
15
- "Feedly": "0 0 141 123",
14
+ "feedly-dark": "0 0 141 123",
15
+ "feedly": "0 0 141 123",
16
16
  "glassdoor-dark": "0 0 140 196",
17
17
  "glassdoor": "0 0 140 196",
18
18
  "google-analytics-dark": "0 0 140 160",
@@ -12,19 +12,32 @@ var _styledComponents = require("styled-components");
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
14
14
  var PartnerLogo = function PartnerLogo(_ref) {
15
- var partnerName = _ref.partnerName;
15
+ var partnerName = _ref.partnerName,
16
+ backgroundType = _ref.backgroundType;
16
17
 
17
18
  var _useTheme = (0, _styledComponents.useTheme)(),
18
19
  mode = _useTheme.mode;
19
20
 
20
- var whichLogo = mode === "dark" ? partnerName + "-dark" : partnerName;
21
- var logoViewBox = _LogoViewBoxes.default[whichLogo];
21
+ var whichLogo = function whichLogo(type) {
22
+ if (type && type === "dark") {
23
+ return partnerName + "-dark";
24
+ } else if (type && type === "light") {
25
+ return partnerName;
26
+ } else if (mode === "dark") {
27
+ return partnerName + "-dark";
28
+ } else {
29
+ return partnerName;
30
+ }
31
+ };
32
+
33
+ var logoViewBox = _LogoViewBoxes.default[whichLogo(backgroundType)];
34
+
22
35
  return /*#__PURE__*/_react.default.createElement("svg", {
23
36
  viewBox: logoViewBox,
24
37
  focusable: false
25
38
  }, /*#__PURE__*/_react.default.createElement("use", {
26
39
  xmlnsXlink: "http://www.w3.org/1999/xlink",
27
- xlinkHref: "#sslogosvg-" + whichLogo
40
+ xlinkHref: "#sslogosvg-" + whichLogo(backgroundType)
28
41
  }));
29
42
  };
30
43
 
@@ -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