@sproutsocial/racine 12.22.0 → 12.22.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 (323) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +2 -0
  3. package/__flow__/Avatar/__tests__/features.test.js +98 -0
  4. package/__flow__/Banner/index.js +2 -1
  5. package/__flow__/CharacterCounter/index.test.js +1 -1
  6. package/__flow__/Collapsible/index.js +2 -2
  7. package/__flow__/Drawer/index.js +11 -0
  8. package/__flow__/Drawer/index.stories.js +2 -1
  9. package/__flow__/EmptyState/index.test.js +1 -1
  10. package/__flow__/Fieldset/index.js +1 -1
  11. package/__flow__/Indicator/index.js +1 -1
  12. package/__flow__/Input/index.js +2 -1
  13. package/__flow__/Link/index.js +2 -1
  14. package/__flow__/Link/index.test.js +2 -0
  15. package/__flow__/Listbox/index.stories.js +1 -0
  16. package/__flow__/Loader/index.js +1 -1
  17. package/__flow__/Modal/index.stories.js +1 -1
  18. package/__flow__/Numeral/tests/testNumeral.js +1 -0
  19. package/__flow__/Popout/index.js +1 -1
  20. package/__flow__/Portal/index.stories.js +7 -7
  21. package/__flow__/SegmentedControl/index.js +1 -1
  22. package/__flow__/Table/index.js +4 -4
  23. package/__flow__/TableCell/index.js +1 -1
  24. package/__flow__/TableHeaderCell/index.js +1 -1
  25. package/__flow__/Tabs/index.js +1 -1
  26. package/__flow__/Textarea/index.js +1 -1
  27. package/__flow__/Toast/index.js +1 -1
  28. package/__flow__/Toast/styles.js +1 -1
  29. package/__flow__/TokenInput/index.stories.js +4 -4
  30. package/__flow__/TokenInput/tests/default/pasting.test.js +6 -2
  31. package/__flow__/code-guidelines.mdx +244 -0
  32. package/__flow__/setupTests.js +1 -0
  33. package/__flow__/utils/a11yTest.js +1 -0
  34. package/__flow__/utils/system-props.js +1 -0
  35. package/commonjs/Avatar/index.js +19 -10
  36. package/commonjs/Badge/constants.js +3 -1
  37. package/commonjs/Badge/index.js +7 -3
  38. package/commonjs/Badge/styles.js +4 -2
  39. package/commonjs/Banner/index.js +9 -4
  40. package/commonjs/Banner/styles.js +5 -2
  41. package/commonjs/Box/index.js +5 -2
  42. package/commonjs/Box/styles.js +3 -1
  43. package/commonjs/Breadcrumb/index.js +12 -5
  44. package/commonjs/Breadcrumb/styles.js +3 -1
  45. package/commonjs/Button/index.js +7 -3
  46. package/commonjs/Button/styles.js +6 -3
  47. package/commonjs/Card/index.js +7 -3
  48. package/commonjs/Card/styles.js +3 -1
  49. package/commonjs/CharacterCounter/index.js +39 -22
  50. package/commonjs/CharacterCounter/styles.js +5 -2
  51. package/commonjs/ChartLegend/index.js +7 -3
  52. package/commonjs/ChartLegend/styles.js +5 -2
  53. package/commonjs/Checkbox/index.js +117 -97
  54. package/commonjs/Checkbox/styles.js +5 -2
  55. package/commonjs/Collapsible/index.js +27 -12
  56. package/commonjs/Collapsible/styles.js +4 -2
  57. package/commonjs/DatePicker/DateRangePicker.js +7 -3
  58. package/commonjs/DatePicker/SingleDatePicker.js +7 -3
  59. package/commonjs/DatePicker/StatefulDateRangePicker.js +19 -7
  60. package/commonjs/DatePicker/StatefulSingleDatePicker.js +16 -5
  61. package/commonjs/DatePicker/common.js +4 -2
  62. package/commonjs/DatePicker/index.js +15 -3
  63. package/commonjs/DatePicker/styles.js +5 -2
  64. package/commonjs/Drawer/SlideTransition.js +9 -5
  65. package/commonjs/Drawer/index.js +15 -7
  66. package/commonjs/Drawer/styles.js +5 -2
  67. package/commonjs/EmptyState/index.js +7 -3
  68. package/commonjs/Fieldset/index.js +10 -6
  69. package/commonjs/Fieldset/styles.js +5 -2
  70. package/commonjs/FormField/index.js +17 -6
  71. package/commonjs/Icon/deprecatedIcons.js +3 -1
  72. package/commonjs/Icon/index.js +9 -5
  73. package/commonjs/Icon/styles.js +6 -3
  74. package/commonjs/Image/index.js +78 -58
  75. package/commonjs/Image/styles.js +5 -2
  76. package/commonjs/Indicator/index.js +40 -23
  77. package/commonjs/Indicator/styles.js +4 -2
  78. package/commonjs/Input/index.js +156 -132
  79. package/commonjs/Input/styles.js +5 -2
  80. package/commonjs/KeyboardKey/index.js +30 -14
  81. package/commonjs/KeyboardKey/styles.js +3 -1
  82. package/commonjs/Label/index.js +32 -16
  83. package/commonjs/Link/constants.js +3 -1
  84. package/commonjs/Link/index.js +9 -4
  85. package/commonjs/Link/styles.js +5 -2
  86. package/commonjs/Listbox/index.js +15 -8
  87. package/commonjs/Loader/index.js +43 -26
  88. package/commonjs/Loader/styles.js +5 -2
  89. package/commonjs/LoaderButton/index.js +7 -3
  90. package/commonjs/Menu/constants.js +3 -1
  91. package/commonjs/Menu/descendants.js +35 -20
  92. package/commonjs/Menu/hooks.js +8 -8
  93. package/commonjs/Menu/index.flow.js +2 -1
  94. package/commonjs/Menu/index.js +44 -27
  95. package/commonjs/Menu/names.js +3 -1
  96. package/commonjs/Menu/styles.js +6 -3
  97. package/commonjs/Message/index.js +7 -3
  98. package/commonjs/Message/styles.js +4 -2
  99. package/commonjs/Modal/index.js +9 -5
  100. package/commonjs/Modal/styles.js +9 -5
  101. package/commonjs/Numeral/constants.js +3 -1
  102. package/commonjs/Numeral/index.js +16 -5
  103. package/commonjs/Numeral/styles.js +3 -1
  104. package/commonjs/Numeral/tests/testNumeral.js +16 -11
  105. package/commonjs/OverflowList/index.flow.js +2 -1
  106. package/commonjs/OverflowList/index.js +6 -3
  107. package/commonjs/OverflowList/styles.js +5 -2
  108. package/commonjs/PartnerLogo/index.js +9 -6
  109. package/commonjs/PartnerLogo/styles.js +5 -2
  110. package/commonjs/Popout/index.js +28 -13
  111. package/commonjs/Popout/styles.js +3 -1
  112. package/commonjs/Portal/index.js +50 -30
  113. package/commonjs/Radio/index.js +73 -56
  114. package/commonjs/Radio/styles.js +5 -2
  115. package/commonjs/SegmentedControl/index.js +21 -9
  116. package/commonjs/SegmentedControl/styles.js +5 -2
  117. package/commonjs/Select/index.js +78 -61
  118. package/commonjs/Select/styles.js +8 -5
  119. package/commonjs/Skeleton/index.js +4 -2
  120. package/commonjs/SpotIllustration/illustrationNames.js +3 -1
  121. package/commonjs/SpotIllustration/index.js +5 -3
  122. package/commonjs/Stack/index.js +7 -3
  123. package/commonjs/Switch/index.js +52 -35
  124. package/commonjs/Switch/styles.js +6 -3
  125. package/commonjs/Table/index.js +14 -10
  126. package/commonjs/Table/styles.js +3 -1
  127. package/commonjs/TableCell/index.js +39 -23
  128. package/commonjs/TableCell/styles.js +3 -1
  129. package/commonjs/TableHeaderCell/index.js +54 -37
  130. package/commonjs/TableHeaderCell/styles.js +5 -2
  131. package/commonjs/TableRowAccordion/index.js +61 -44
  132. package/commonjs/TableRowAccordion/styles.js +5 -2
  133. package/commonjs/Tabs/index.js +116 -90
  134. package/commonjs/Tabs/styles.js +8 -5
  135. package/commonjs/Text/index.js +7 -3
  136. package/commonjs/Text/styles.js +5 -2
  137. package/commonjs/Textarea/index.js +104 -87
  138. package/commonjs/Textarea/styles.js +5 -2
  139. package/commonjs/ThemeProvider/index.js +5 -2
  140. package/commonjs/Toast/index.js +7 -8
  141. package/commonjs/Toast/styles.js +5 -2
  142. package/commonjs/ToggleHint/index.js +43 -26
  143. package/commonjs/ToggleHint/styles.js +6 -3
  144. package/commonjs/Token/index.js +7 -3
  145. package/commonjs/Token/styles.js +5 -2
  146. package/commonjs/TokenInput/index.js +221 -192
  147. package/commonjs/TokenInput/styles.js +5 -2
  148. package/commonjs/TokenInput/util.js +5 -3
  149. package/commonjs/Tooltip/index.js +30 -14
  150. package/commonjs/Tooltip/styles.js +3 -1
  151. package/commonjs/VisuallyHidden/index.js +3 -1
  152. package/commonjs/dataviz/index.js +3 -1
  153. package/commonjs/index.js +451 -84
  154. package/commonjs/systemProps/background.js +3 -1
  155. package/commonjs/systemProps/border.js +3 -1
  156. package/commonjs/systemProps/color.js +3 -1
  157. package/commonjs/systemProps/custom.js +3 -1
  158. package/commonjs/systemProps/flexbox.js +3 -1
  159. package/commonjs/systemProps/grid.js +3 -1
  160. package/commonjs/systemProps/index.js +87 -15
  161. package/commonjs/systemProps/layout.js +3 -1
  162. package/commonjs/systemProps/position.js +3 -1
  163. package/commonjs/systemProps/shadow.js +3 -1
  164. package/commonjs/systemProps/space.js +3 -1
  165. package/commonjs/systemProps/systemProps.js +3 -1
  166. package/commonjs/systemProps/typography.js +3 -1
  167. package/commonjs/systemProps/variant.js +3 -1
  168. package/commonjs/themes/dark/dataviz-palette.js +3 -1
  169. package/commonjs/themes/dark/decorative-palettes.js +3 -1
  170. package/commonjs/themes/dark/theme.js +11 -7
  171. package/commonjs/themes/extendedThemes/sproutTheme/dark/theme.js +9 -5
  172. package/commonjs/themes/extendedThemes/sproutTheme/index.js +15 -4
  173. package/commonjs/themes/extendedThemes/sproutTheme/light/theme.js +8 -4
  174. package/commonjs/themes/light/dataviz-palette.js +3 -1
  175. package/commonjs/themes/light/decorative-palettes.js +3 -1
  176. package/commonjs/themes/light/literal-colors.js +3 -1
  177. package/commonjs/themes/light/theme.js +17 -13
  178. package/commonjs/utils/a11yTest.js +5 -2
  179. package/commonjs/utils/chartColors.js +3 -1
  180. package/commonjs/utils/constants.js +3 -1
  181. package/commonjs/utils/dataQaLabelQueries.js +26 -16
  182. package/commonjs/utils/hooks.js +39 -26
  183. package/commonjs/utils/index.js +18 -8
  184. package/commonjs/utils/innerText.js +4 -2
  185. package/commonjs/utils/mixins.js +3 -1
  186. package/commonjs/utils/react-testing-library.js +74 -18
  187. package/commonjs/utils/responsiveProps/index.js +16 -8
  188. package/commonjs/utils/system-props.js +6 -2
  189. package/commonjs/utils/useInteractiveColor.js +3 -1
  190. package/dist/themes/dark/theme.scss +0 -1
  191. package/dist/themes/extendedThemes/sproutTheme/dark/theme.scss +0 -1
  192. package/dist/themes/extendedThemes/sproutTheme/light/theme.scss +0 -1
  193. package/dist/themes/light/theme.scss +0 -1
  194. package/lib/Avatar/index.js +17 -11
  195. package/lib/Badge/index.js +5 -4
  196. package/lib/Badge/styles.js +3 -3
  197. package/lib/Banner/index.js +7 -5
  198. package/lib/Banner/styles.js +1 -1
  199. package/lib/Box/index.js +1 -1
  200. package/lib/Box/styles.js +1 -1
  201. package/lib/Breadcrumb/index.js +11 -7
  202. package/lib/Button/index.js +3 -2
  203. package/lib/Button/styles.js +4 -4
  204. package/lib/Card/index.js +3 -2
  205. package/lib/Card/styles.js +2 -2
  206. package/lib/CharacterCounter/index.js +36 -21
  207. package/lib/CharacterCounter/styles.js +1 -1
  208. package/lib/ChartLegend/index.js +5 -4
  209. package/lib/ChartLegend/styles.js +1 -1
  210. package/lib/Checkbox/index.js +114 -96
  211. package/lib/Checkbox/styles.js +5 -5
  212. package/lib/Collapsible/index.js +24 -12
  213. package/lib/Collapsible/styles.js +2 -2
  214. package/lib/DatePicker/DateRangePicker.js +4 -3
  215. package/lib/DatePicker/SingleDatePicker.js +4 -3
  216. package/lib/DatePicker/StatefulDateRangePicker.js +15 -6
  217. package/lib/DatePicker/StatefulSingleDatePicker.js +12 -4
  218. package/lib/DatePicker/common.js +3 -3
  219. package/lib/DatePicker/index.js +2 -2
  220. package/lib/DatePicker/styles.js +2 -2
  221. package/lib/Drawer/SlideTransition.js +4 -3
  222. package/lib/Drawer/index.js +17 -12
  223. package/lib/Drawer/styles.js +2 -2
  224. package/lib/EmptyState/index.js +4 -3
  225. package/lib/Fieldset/index.js +8 -7
  226. package/lib/Fieldset/styles.js +1 -1
  227. package/lib/FormField/index.js +17 -9
  228. package/lib/Icon/index.js +8 -7
  229. package/lib/Icon/styles.js +2 -2
  230. package/lib/Image/index.js +75 -57
  231. package/lib/Image/styles.js +1 -1
  232. package/lib/Indicator/index.js +38 -23
  233. package/lib/Indicator/styles.js +3 -3
  234. package/lib/Input/index.js +157 -135
  235. package/lib/Input/styles.js +2 -2
  236. package/lib/KeyboardKey/index.js +28 -14
  237. package/lib/KeyboardKey/styles.js +1 -1
  238. package/lib/Label/index.js +29 -15
  239. package/lib/Link/index.js +5 -3
  240. package/lib/Link/styles.js +3 -3
  241. package/lib/Listbox/index.js +14 -10
  242. package/lib/Loader/index.js +40 -25
  243. package/lib/Loader/styles.js +2 -2
  244. package/lib/LoaderButton/index.js +5 -4
  245. package/lib/Menu/descendants.js +30 -18
  246. package/lib/Menu/hooks.js +7 -9
  247. package/lib/Menu/index.flow.js +4 -4
  248. package/lib/Menu/index.js +54 -40
  249. package/lib/Menu/styles.js +3 -3
  250. package/lib/Message/index.js +6 -5
  251. package/lib/Message/styles.js +4 -4
  252. package/lib/Modal/index.js +9 -8
  253. package/lib/Modal/styles.js +6 -5
  254. package/lib/Numeral/index.js +15 -7
  255. package/lib/Numeral/styles.js +1 -1
  256. package/lib/Numeral/tests/testNumeral.js +15 -11
  257. package/lib/OverflowList/index.js +3 -3
  258. package/lib/OverflowList/styles.js +1 -1
  259. package/lib/PartnerLogo/index.js +8 -7
  260. package/lib/PartnerLogo/styles.js +1 -1
  261. package/lib/Popout/index.js +27 -15
  262. package/lib/Popout/styles.js +1 -1
  263. package/lib/Portal/index.js +47 -29
  264. package/lib/Radio/index.js +70 -55
  265. package/lib/Radio/styles.js +3 -3
  266. package/lib/SegmentedControl/index.js +18 -9
  267. package/lib/SegmentedControl/styles.js +3 -3
  268. package/lib/Select/index.js +76 -61
  269. package/lib/Select/styles.js +5 -5
  270. package/lib/Skeleton/index.js +2 -2
  271. package/lib/SpotIllustration/index.js +3 -3
  272. package/lib/Stack/index.js +4 -3
  273. package/lib/Switch/index.js +51 -36
  274. package/lib/Switch/styles.js +4 -4
  275. package/lib/Table/index.js +12 -11
  276. package/lib/Table/styles.js +1 -1
  277. package/lib/TableCell/index.js +36 -22
  278. package/lib/TableCell/styles.js +1 -1
  279. package/lib/TableHeaderCell/index.js +52 -37
  280. package/lib/TableHeaderCell/styles.js +1 -1
  281. package/lib/TableRowAccordion/index.js +60 -45
  282. package/lib/TableRowAccordion/styles.js +1 -1
  283. package/lib/Tabs/index.js +113 -89
  284. package/lib/Tabs/styles.js +5 -5
  285. package/lib/Text/index.js +3 -2
  286. package/lib/Text/styles.js +1 -1
  287. package/lib/Textarea/index.js +101 -86
  288. package/lib/Textarea/styles.js +2 -2
  289. package/lib/ThemeProvider/index.js +1 -1
  290. package/lib/Toast/index.js +6 -10
  291. package/lib/Toast/styles.js +4 -3
  292. package/lib/ToggleHint/index.js +41 -26
  293. package/lib/ToggleHint/styles.js +3 -3
  294. package/lib/Token/index.js +6 -5
  295. package/lib/Token/styles.js +3 -3
  296. package/lib/TokenInput/index.js +223 -196
  297. package/lib/TokenInput/styles.js +2 -2
  298. package/lib/TokenInput/util.js +2 -2
  299. package/lib/Tooltip/index.js +28 -14
  300. package/lib/Tooltip/styles.js +1 -1
  301. package/lib/VisuallyHidden/index.js +1 -1
  302. package/lib/dataviz/index.js +1 -1
  303. package/lib/index.js +64 -64
  304. package/lib/systemProps/index.js +14 -14
  305. package/lib/systemProps/systemProps.js +12 -12
  306. package/lib/themes/dark/theme.js +11 -9
  307. package/lib/themes/extendedThemes/sproutTheme/dark/theme.js +7 -5
  308. package/lib/themes/extendedThemes/sproutTheme/index.js +2 -2
  309. package/lib/themes/extendedThemes/sproutTheme/light/theme.js +6 -4
  310. package/lib/themes/light/theme.js +17 -15
  311. package/lib/types/theme.colors.flow.js +2 -2
  312. package/lib/types/theme.flow.js +2 -2
  313. package/lib/utils/a11yTest.js +3 -1
  314. package/lib/utils/dataQaLabelQueries.js +23 -15
  315. package/lib/utils/hooks.js +37 -26
  316. package/lib/utils/index.js +15 -7
  317. package/lib/utils/innerText.js +1 -1
  318. package/lib/utils/mixins.js +1 -1
  319. package/lib/utils/react-testing-library.js +11 -8
  320. package/lib/utils/responsiveProps/index.js +14 -8
  321. package/lib/utils/system-props.js +1 -0
  322. package/package.json +16 -27
  323. package/__flow__/Avatar/index.test.js +0 -23
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Change Log
2
2
 
3
+ ## 12.22.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 67770645: Update loader-utils to fix security vulnerabilities
8
+
3
9
  ## 12.22.0
4
10
 
5
11
  ### Minor Changes
package/README.md CHANGED
@@ -140,6 +140,8 @@ $ yarn
140
140
 
141
141
  The Design Systems team works on a regular two-week sprint cadence to iterate against Racine's roadmap and assist in any ad-hoc issues that may come up. That said, contributions to Racine are welcomed from any member of the wider Sprout org. Whether you're adding a new component or simply fixing a bug, every improvement to the library is future leverage for our peers, our product, and our customers.
142
142
 
143
+ When writing code for Racine, please refer to the `code-guidelines.mdx` story in Storybook.
144
+
143
145
  ### **🔍 Step 1: Find a way to contribute**
144
146
 
145
147
  There are a few ways to get involved:
@@ -0,0 +1,98 @@
1
+ // @flow
2
+ import * as React from 'react';
3
+ import {render, screen} from '../../utils/react-testing-library';
4
+ import Avatar from '../index';
5
+
6
+ // This top level describe should be used to describe the component and what we are testing
7
+ describe('Avatar/features', () => {
8
+ // Each describe should describe an intentional feature of the component
9
+
10
+ describe('When an image is provided', () => {
11
+ // Each test should describe the expected behavior of the feature and its fallbacks
12
+ it('should render an image correctly', () => {
13
+ const imgSrc = 'https://github.com/kentcdodds.png';
14
+ render(<Avatar name="John Doe" src={imgSrc} />);
15
+ const image = screen.getByAltText('John Doe');
16
+ expect(image).toHaveAttribute('src', imgSrc);
17
+ });
18
+
19
+ it('should not render initials', () => {
20
+ const imgSrc = 'https://github.com/kentcdodds.png';
21
+ render(<Avatar name="John Doe" src={imgSrc} />);
22
+ const initials = screen.queryByText('JD');
23
+ expect(initials).not.toBeInTheDocument();
24
+ });
25
+
26
+ it('should render initials when image fails to load', async () => {
27
+ render(<Avatar name="John Doe" src="" />);
28
+ // TODO: figure out a better way to mock image failures...
29
+ const image = await screen.queryByRole('img');
30
+ const initials = await screen.getByText('JD');
31
+ expect(image).not.toBeInTheDocument();
32
+ expect(initials).toBeInTheDocument();
33
+ });
34
+
35
+ it('should render as circle by default', () => {
36
+ render(<Avatar name="John Doe" />);
37
+ const avatar = screen.getByTitle('John Doe');
38
+ expect(avatar).toHaveStyleRule('border-radius', '50%');
39
+ });
40
+
41
+ it('should render as a leaf when appearance="leaf" ', () => {
42
+ render(<Avatar name="John Doe" appearance="leaf" />);
43
+ const avatar = screen.getByTitle('John Doe');
44
+ expect(avatar).toHaveStyleRule('border-radius', '40% 0 40% 0');
45
+ });
46
+
47
+ it('should render 40px by default', () => {
48
+ render(<Avatar name="John Doe" />);
49
+ const avatar = screen.getByTitle('John Doe');
50
+ expect(avatar).toHaveStyleRule('width', '40px');
51
+ expect(avatar).toHaveStyleRule('height', '40px');
52
+ });
53
+ });
54
+
55
+ describe('When no image is provided', () => {
56
+ it('should render initials correctly', () => {
57
+ render(<Avatar name="John Doe" />);
58
+ const initials = screen.getByText('JD');
59
+ expect(initials).toBeInTheDocument();
60
+ });
61
+
62
+ it('should render single initial if only 1 name given', () => {
63
+ render(<Avatar name="John" />);
64
+ const singleInitial = screen.getByText('J');
65
+ expect(singleInitial).toBeInTheDocument();
66
+ });
67
+
68
+ it('should display first 2 initials if >3 names are provided', () => {
69
+ render(<Avatar name="John Doe Smith" />);
70
+ const initials = screen.getByText('JD');
71
+ expect(initials).toBeInTheDocument();
72
+ });
73
+
74
+ it('should render a "?" as a fallback if no name is provided', () => {
75
+ render(<Avatar />);
76
+ const fallback = screen.getByText('?');
77
+ const initials = screen.queryByText('JD');
78
+ expect(fallback).toBeInTheDocument();
79
+ expect(initials).not.toBeInTheDocument();
80
+ });
81
+ });
82
+
83
+ describe('When a user wants to customize Avatar', () => {
84
+ it('should be able to the size of Avatar', () => {
85
+ render(<Avatar name="John Doe" size="100px" />);
86
+ const avatar = screen.getByTitle('John Doe');
87
+ expect(avatar).toHaveStyleRule('width', '100px');
88
+ expect(avatar).toHaveStyleRule('height', '100px');
89
+ });
90
+
91
+ // Should we even test stuff like this? What's the best way for us to test intentional overrides we provide that are not a default behavior?
92
+ it('should render different color background when type prop is used', () => {
93
+ render(<Avatar name="John Doe" type="blue" />);
94
+ const avatar = screen.getByTitle('John Doe');
95
+ expect(avatar).toHaveStyleRule('background', `#c7e4f9`);
96
+ });
97
+ });
98
+ });
@@ -46,6 +46,7 @@ const getBannerIcon = (type: EnumValidBannerType) => {
46
46
  const Banner = ({type = 'error', text, ...rest}: TypeProps) => {
47
47
  const bannerType: EnumValidBannerType = type === 'danger' ? 'error' : type;
48
48
  if (type === 'danger') {
49
+ // eslint-disable-next-line no-console
49
50
  console.warn(
50
51
  'Warning: The `danger` type has been deprecated on the Banner component. Please use `error` instead.'
51
52
  );
@@ -53,7 +54,7 @@ const Banner = ({type = 'error', text, ...rest}: TypeProps) => {
53
54
  return (
54
55
  <Container
55
56
  type={type}
56
- data-qa-alert={''}
57
+ data-qa-alert=""
57
58
  data-qa-alert-type={type}
58
59
  data-qa-alert-text={text}
59
60
  // $FlowIssue - upgrade v0.112.0
@@ -5,7 +5,7 @@ import 'jest-styled-components';
5
5
  import CharacterCounter from './';
6
6
  import {COLOR_RED_800} from '@sproutsocial/seeds-color';
7
7
 
8
- describe.only('CharacterCounter', () => {
8
+ describe('CharacterCounter', () => {
9
9
  it('should render properly', () => {
10
10
  const {getByText} = render(
11
11
  <CharacterCounter currentValue={22} maxValue={100} />
@@ -52,7 +52,7 @@ const determineMaxHeight = (isHidden, openHeight, computedHeight) => {
52
52
  if (isHidden === undefined) return undefined;
53
53
 
54
54
  // If the user has defined an explicit open height, return that as the max height
55
- if (!!openHeight) return openHeight;
55
+ if (openHeight) return openHeight;
56
56
 
57
57
  // Otherwise, fallback to the computed height
58
58
  return computedHeight;
@@ -106,7 +106,7 @@ const Panel = ({children, ...rest}) => {
106
106
  scrollable={isOpen}
107
107
  maxHeight={isOpen ? maxHeight : collapsedHeight}
108
108
  minHeight={collapsedHeight}
109
- data-qa-collapsible={''}
109
+ data-qa-collapsible=""
110
110
  data-qa-collapsible-isopen={isOpen === true}
111
111
  {...rest}
112
112
  >
@@ -140,6 +140,16 @@ const Drawer = ({
140
140
  zIndex,
141
141
  closeTargets,
142
142
  ...rest
143
+ }: {
144
+ children: React.Node,
145
+ direction?: 'left' | 'right',
146
+ disableCloseOnClickOutside?: boolean,
147
+ id: string,
148
+ offset?: number,
149
+ onClose: () => void,
150
+ zIndex?: number,
151
+ closeTargets?: Array<Element>,
152
+ style: any,
143
153
  }) => {
144
154
  const drawerRef = useRef(null);
145
155
 
@@ -208,6 +218,7 @@ const Drawer = ({
208
218
  offset={offset}
209
219
  direction={direction}
210
220
  data-qa-drawer={id}
221
+ // $FlowIssue - upgrade v0.112.0
211
222
  {...rest}
212
223
  >
213
224
  {children}
@@ -181,7 +181,7 @@ export const DrawerWithHeaderChildren = (args: TypeDrawerProps) => (
181
181
  >
182
182
  <Drawer.Header>
183
183
  <Box flexGrow={1}>
184
- <Tabs fullWidth selectedId={'1'} onSelect={() => {}}>
184
+ <Tabs fullWidth selectedId="1" onSelect={() => {}}>
185
185
  <Tabs.Button id="1">
186
186
  <Box display="flex" justifyContent="center" alignItems="center">
187
187
  <Icon name="notifications" mr={350} />
@@ -294,6 +294,7 @@ export const DrawerWithCloseButtonRender = (args: TypeDrawerProps) => (
294
294
  render={({onClose, closeButtonLabel}) => {
295
295
  const newOnClose = () => {
296
296
  setTimeout(() => {
297
+ // eslint-disable-next-line no-console
297
298
  console.log('close');
298
299
  onClose();
299
300
  }, 3000);
@@ -114,7 +114,7 @@ describe('EmptyState', () => {
114
114
  headline="Ready to create your first topic?"
115
115
  subtext="Now that you have the basics down, it’s time to create a topic. Remember to look for the icon at any time you are feeling lost."
116
116
  primaryAction={<Button>Create a Topic</Button>}
117
- secondaryAction={<Button>I'll do this later</Button>}
117
+ secondaryAction={<Button>I&apos;ll do this later</Button>}
118
118
  />
119
119
  );
120
120
  const element = getByText("I'll do this later");
@@ -23,7 +23,7 @@ const Fieldset = ({
23
23
  ...rest
24
24
  }: TypeProps) => (
25
25
  // $FlowIssue - upgrade v0.112.0
26
- <Box as="fieldset" border="none" p={0} data-qa-fieldset={''} {...rest}>
26
+ <Box as="fieldset" border="none" p={0} data-qa-fieldset="" {...rest}>
27
27
  {typeof label === 'string' ? (
28
28
  <Fieldset.Legend>{label}</Fieldset.Legend>
29
29
  ) : (
@@ -18,7 +18,7 @@ export default class Indicator extends React.Component<TypeProps> {
18
18
  return (
19
19
  <Container
20
20
  data-tip={tooltip}
21
- data-qa-indicator={''}
21
+ data-qa-indicator=""
22
22
  aria-label={tooltip}
23
23
  tabIndex={0}
24
24
  // $FlowIssue - upgrade v0.112.0
@@ -110,6 +110,7 @@ const ClearButton = () => {
110
110
 
111
111
  // Warn if clearButtonLabel is not included, so that the unlocalized fallback will not be mistaken for a proper label.
112
112
  if (!clearButtonLabel) {
113
+ // eslint-disable-next-line no-console
113
114
  console.warn(
114
115
  'Warning: clearButtonLabel prop is required when using Input.ClearButton. Please pass a localized clearButtonLabel to Input.'
115
116
  );
@@ -253,7 +254,7 @@ class Input extends React.Component<TypeProps, TypeState> {
253
254
  } = this.props;
254
255
 
255
256
  // Convert autoComplete from a boolean prop to a string value.
256
- let autoCompleteValue = undefined;
257
+ let autoCompleteValue;
257
258
  if (autoComplete !== undefined) {
258
259
  autoCompleteValue = autoComplete ? 'on' : 'off';
259
260
  }
@@ -31,6 +31,7 @@ const Link = ({
31
31
  ...rest
32
32
  }: TypeProps) => {
33
33
  if (!href && external) {
34
+ // eslint-disable-next-line no-console
34
35
  console.warn(
35
36
  'Warning: external prop cannot be set without a href declaration'
36
37
  );
@@ -49,7 +50,7 @@ const Link = ({
49
50
  disabled={disabled}
50
51
  onClick={onClick}
51
52
  underline={underline}
52
- data-qa-link={''}
53
+ data-qa-link=""
53
54
  data-qa-link-isdisabled={disabled === true}
54
55
  {...qa}
55
56
  {...rest}
@@ -49,6 +49,7 @@ describe('Racine Link', () => {
49
49
  const {getByText} = render(
50
50
  <Link
51
51
  onClick={() => {
52
+ // eslint-disable-next-line no-console
52
53
  console.log('Button');
53
54
  }}
54
55
  >
@@ -63,6 +64,7 @@ describe('Racine Link', () => {
63
64
  <Link
64
65
  href="http://sproutsocial.com"
65
66
  onClick={() => {
67
+ // eslint-disable-next-line no-console
66
68
  console.log('Button');
67
69
  }}
68
70
  >
@@ -151,6 +151,7 @@ Disable.story = {
151
151
  };
152
152
 
153
153
  const getItemProps = ({item}) => ({key: item, item});
154
+ // eslint-disable-next-line react/prop-types
154
155
  const ItemComponent = ({item}) => (
155
156
  <Listbox.Checkbox key={item} value={item}>
156
157
  {item}
@@ -28,7 +28,7 @@ export default class Loader extends React.Component<TypeProps> {
28
28
  small={size === 'small'}
29
29
  dark={color === 'dark'}
30
30
  delay={delay}
31
- data-qa-loader={''}
31
+ data-qa-loader=""
32
32
  {...qa}
33
33
  // $FlowIssue - upgrade v0.112.0
34
34
  {...rest}
@@ -31,7 +31,7 @@ export const defaultStory = () => (
31
31
  <Modal.Header
32
32
  title="Assign Chatbot"
33
33
  subtitle="The chatbot will respond to customers from this profile."
34
- ></Modal.Header>
34
+ />
35
35
  <Modal.Content>
36
36
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
37
37
  eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem
@@ -1,3 +1,4 @@
1
+ /* eslint-env jest, node */
1
2
  import React from 'react';
2
3
  import {render, fireEvent} from '../../utils/react-testing-library';
3
4
  import 'jest-styled-components';
@@ -357,7 +357,7 @@ export default function Popout({
357
357
  : 'initial',
358
358
  }}
359
359
  data-placement={placement}
360
- data-qa-popout={''}
360
+ data-qa-popout=""
361
361
  data-qa-popout-isopen={isOpen === true}
362
362
  // $FlowIssue - upgrade v0.112.0
363
363
  {...rest}
@@ -14,22 +14,22 @@ export const portal = () => (
14
14
  <Portal>
15
15
  <Box
16
16
  position="absolute"
17
- top={'100px'}
17
+ top="100px"
18
18
  left={0}
19
- width={'100px'}
20
- border={'2px solid red'}
19
+ width="100px"
20
+ border="2px solid red"
21
21
  >
22
22
  this is portaled content
23
23
  </Box>
24
24
  </Portal>
25
25
 
26
- <Portal as={'span'}>
26
+ <Portal as="span">
27
27
  <Box
28
28
  position="absolute"
29
- top={'100px'}
29
+ top="100px"
30
30
  right={0}
31
- width={'100px'}
32
- border={'2px solid blue'}
31
+ width="100px"
32
+ border="2px solid blue"
33
33
  >
34
34
  this is portaled content too!!
35
35
  </Box>
@@ -33,7 +33,7 @@ const SegmentedControlItem = ({
33
33
  }: TypeSegmentedControlItemProps) => {
34
34
  const context = useContext(SegmentedControlContext);
35
35
 
36
- if (context == null) {
36
+ if (!context) {
37
37
  return null;
38
38
  }
39
39
 
@@ -37,7 +37,7 @@ type TypeProps = {
37
37
 
38
38
  const renderTableRow = (row: TypeTableRow) => {
39
39
  return (
40
- <tbody key={row.id} data-qa-table-row={''}>
40
+ <tbody key={row.id} data-qa-table-row="">
41
41
  <tr>
42
42
  {row.cells.map((td) => {
43
43
  return <TableCell {...td} key={td.id} />;
@@ -62,16 +62,16 @@ export const Table = ({
62
62
  }: TypeProps) => {
63
63
  if (children) {
64
64
  return (
65
- <Container {...rest} data-qa-table={''}>
65
+ <Container {...rest} data-qa-table="">
66
66
  {children}
67
67
  </Container>
68
68
  );
69
69
  }
70
70
 
71
71
  return (
72
- <Container {...rest} data-qa-table={''}>
72
+ <Container {...rest} data-qa-table="">
73
73
  {head.length > 0 && (
74
- <thead data-qa-table-header={''}>
74
+ <thead data-qa-table-header="">
75
75
  <tr>
76
76
  {head.map((th) => {
77
77
  return (
@@ -33,7 +33,7 @@ export default class TableCell extends React.Component<TypeTableCell> {
33
33
  key={id}
34
34
  colSpan={colSpan}
35
35
  width={width}
36
- data-qa-table-cell={''}
36
+ data-qa-table-cell=""
37
37
  >
38
38
  {children || content}
39
39
  </Container>
@@ -93,7 +93,7 @@ export default class TableHeaderCell extends React.Component<TypeProps> {
93
93
  width={width}
94
94
  onClick={this.handleClick}
95
95
  data-tableheadercell-sortable={isSortable}
96
- data-qa-table-header-cell={''}
96
+ data-qa-table-header-cell=""
97
97
  data-qa-table-header-cell-sortdirection={sortDirection}
98
98
  >
99
99
  {children || content}
@@ -158,7 +158,7 @@ export default class Tabs extends React.Component<TypeTabsProps, {}> {
158
158
 
159
159
  return (
160
160
  // $FlowIssue - upgrade v0.112.0
161
- <Container data-qa-tabs={''} onKeyUp={this.keyHandler} {...qa} {...rest}>
161
+ <Container data-qa-tabs="" onKeyUp={this.keyHandler} {...qa} {...rest}>
162
162
  <TabButtonContext.Provider
163
163
  value={{
164
164
  selectedId: this.getSelectedId(),
@@ -151,7 +151,7 @@ export default class Textarea extends React.Component<TypeProps> {
151
151
  onBlur={this.handleBlur}
152
152
  onFocus={this.handleFocus}
153
153
  ref={innerRef}
154
- data-qa-textarea-input={''}
154
+ data-qa-textarea-input=""
155
155
  data-qa-input={name}
156
156
  {...inputProps}
157
157
  />
@@ -94,7 +94,7 @@ export function toast(options: TypeToastOptions): void {
94
94
  }
95
95
 
96
96
  const IconBox = (props) => (
97
- <Box display="inline-block" css={'line-height: 1;'} {...props} />
97
+ <Box display="inline-block" css="line-height: 1;" {...props} />
98
98
  );
99
99
 
100
100
  const Toast = ({content, theme, color, icon}: TypeProps) => {
@@ -3,7 +3,7 @@ import styled, {createGlobalStyle} from 'styled-components';
3
3
  import Box from '../Box';
4
4
  import Icon from '../Icon';
5
5
  // $FlowIssue
6
- import toastStyles from '!!raw-loader!react-toastify/dist/ReactToastify.css';
6
+ import toastStyles from '!!raw-loader!react-toastify/dist/ReactToastify.css'; // eslint-disable-line import/no-unresolved
7
7
 
8
8
  import type {TypeTheme} from '../types/theme.flow';
9
9
 
@@ -22,8 +22,8 @@ const MinimalStatefulTokenInput = (props: TypeMinimalTypeProps): Node => {
22
22
  <Fragment>
23
23
  <TokenInput
24
24
  {...rest}
25
- id={'example'}
26
- name={'example'}
25
+ id="example"
26
+ name="example"
27
27
  tokens={tokenSpecs}
28
28
  onChangeTokens={setTokenSpecs}
29
29
  autocomplete="off"
@@ -58,8 +58,8 @@ const MeddlingStatefulTokenInput = (props: TypeProps): Node => {
58
58
  <Fragment>
59
59
  <TokenInput
60
60
  {...rest}
61
- id={'fine-grain'}
62
- name={'fine-grain'}
61
+ id="fine-grain"
62
+ name="fine-grain"
63
63
  value={text}
64
64
  tokens={tokenSpecs}
65
65
  delimiters={delimiters}
@@ -11,7 +11,11 @@ const firePasteEvent = (target: React.Node, text: string) => {
11
11
  };
12
12
 
13
13
  describe('When pasting...', () => {
14
- let mockHandleAdd, mockHandleRemove, mockHandleChange, tokenInput, input;
14
+ let mockHandleAdd;
15
+ let mockHandleRemove;
16
+ let mockHandleChange;
17
+ let tokenInput;
18
+ let input;
15
19
 
16
20
  describe('...with no tokens...', () => {
17
21
  beforeEach(() => {
@@ -120,7 +124,7 @@ describe('When pasting...', () => {
120
124
  id="0"
121
125
  name="token-input"
122
126
  placeholder="Enter text"
123
- value={'Pre Text!'}
127
+ value="Pre Text!"
124
128
  onAddToken={mockHandleAdd}
125
129
  onRemoveToken={mockHandleRemove}
126
130
  />