@sproutsocial/racine 8.5.1 → 8.6.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 (40) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/__flow__/Collapsible/index.js +40 -11
  3. package/__flow__/Collapsible/index.stories.js +77 -0
  4. package/__flow__/Collapsible/styles.js +28 -2
  5. package/__flow__/Listbox/__snapshots__/index.test.js.snap +84 -42
  6. package/__flow__/Listbox/index.stories.js +33 -0
  7. package/__flow__/Listbox/index.test.js +52 -2
  8. package/__flow__/Menu/__snapshots__/index.test.js.snap +4 -0
  9. package/__flow__/Menu/hooks.js +8 -3
  10. package/__flow__/Menu/index.flow.js +1 -0
  11. package/__flow__/Menu/index.js +31 -4
  12. package/__flow__/Menu/index.stories.js +20 -0
  13. package/__flow__/Menu/styles.js +4 -0
  14. package/__flow__/dataviz/dataviz.stories.js +12 -0
  15. package/__flow__/dataviz/index.js +13 -0
  16. package/__flow__/themes/dark/dataviz-palette.js +50 -0
  17. package/__flow__/themes/dark/theme.js +2 -0
  18. package/__flow__/themes/default/dataviz-palette.js +50 -0
  19. package/__flow__/themes/default/theme.js +2 -0
  20. package/commonjs/Collapsible/index.js +28 -11
  21. package/commonjs/Collapsible/styles.js +8 -1
  22. package/commonjs/Menu/hooks.js +12 -3
  23. package/commonjs/Menu/index.js +26 -6
  24. package/commonjs/Menu/styles.js +4 -2
  25. package/commonjs/dataviz/index.js +24 -0
  26. package/commonjs/themes/dark/dataviz-palette.js +35 -0
  27. package/commonjs/themes/dark/theme.js +3 -1
  28. package/commonjs/themes/default/dataviz-palette.js +35 -0
  29. package/commonjs/themes/default/theme.js +3 -1
  30. package/lib/Collapsible/index.js +28 -11
  31. package/lib/Collapsible/styles.js +8 -1
  32. package/lib/Menu/hooks.js +12 -3
  33. package/lib/Menu/index.js +26 -6
  34. package/lib/Menu/styles.js +4 -2
  35. package/lib/dataviz/index.js +13 -0
  36. package/lib/themes/dark/dataviz-palette.js +26 -0
  37. package/lib/themes/dark/theme.js +2 -1
  38. package/lib/themes/default/dataviz-palette.js +26 -0
  39. package/lib/themes/default/theme.js +2 -1
  40. package/package.json +3 -2
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.datavizPalette = void 0;
5
+
6
+ var _seedsColor = _interopRequireDefault(require("@sproutsocial/seeds-color"));
7
+
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+
10
+ var datavizPalette = {
11
+ DATAVIZ_COLORS_LIST: [_seedsColor.default.COLOR_TEAL_500, _seedsColor.default.COLOR_PURPLE_700, _seedsColor.default.COLOR_PINK_700, _seedsColor.default.COLOR_YELLOW_500, _seedsColor.default.COLOR_BLUE_500, _seedsColor.default.COLOR_MAGENTA_500, _seedsColor.default.COLOR_GREEN_500, _seedsColor.default.COLOR_ORANGE_500, _seedsColor.default.COLOR_RED_700, _seedsColor.default.COLOR_TEAL_900, _seedsColor.default.COLOR_PURPLE_400, _seedsColor.default.COLOR_PINK_900, _seedsColor.default.COLOR_YELLOW_900, _seedsColor.default.COLOR_BLUE_900, _seedsColor.default.COLOR_MAGENTA_900, _seedsColor.default.COLOR_GREEN_900, _seedsColor.default.COLOR_ORANGE_900, _seedsColor.default.COLOR_RED_400, _seedsColor.default.COLOR_GREEN_700, _seedsColor.default.COLOR_YELLOW_800],
12
+ DATAVIZ_COLORS_MAP: {
13
+ "1": _seedsColor.default.COLOR_TEAL_500,
14
+ "2": _seedsColor.default.COLOR_PURPLE_700,
15
+ "3": _seedsColor.default.COLOR_PINK_700,
16
+ "4": _seedsColor.default.COLOR_YELLOW_500,
17
+ "5": _seedsColor.default.COLOR_BLUE_500,
18
+ "6": _seedsColor.default.COLOR_MAGENTA_500,
19
+ "7": _seedsColor.default.COLOR_GREEN_500,
20
+ "8": _seedsColor.default.COLOR_ORANGE_500,
21
+ "9": _seedsColor.default.COLOR_RED_700,
22
+ "10": _seedsColor.default.COLOR_TEAL_900,
23
+ "11": _seedsColor.default.COLOR_PURPLE_400,
24
+ "12": _seedsColor.default.COLOR_PINK_900,
25
+ "13": _seedsColor.default.COLOR_YELLOW_900,
26
+ "14": _seedsColor.default.COLOR_BLUE_900,
27
+ "15": _seedsColor.default.COLOR_MAGENTA_900,
28
+ "16": _seedsColor.default.COLOR_GREEN_900,
29
+ "17": _seedsColor.default.COLOR_ORANGE_900,
30
+ "18": _seedsColor.default.COLOR_RED_400,
31
+ "19": _seedsColor.default.COLOR_GREEN_700,
32
+ "20": _seedsColor.default.COLOR_YELLOW_800
33
+ }
34
+ };
35
+ exports.datavizPalette = datavizPalette;
@@ -7,6 +7,8 @@ var _seedsColor = _interopRequireDefault(require("@sproutsocial/seeds-color"));
7
7
 
8
8
  var _literalColors = _interopRequireDefault(require("./literal-colors"));
9
9
 
10
+ var _datavizPalette = require("./dataviz-palette");
11
+
10
12
  var _decorativePalettes = require("./decorative-palettes");
11
13
 
12
14
  var _seedsNetworkcolor = _interopRequireDefault(require("@sproutsocial/seeds-networkcolor"));
@@ -228,7 +230,7 @@ var colors = _extends({
228
230
  whatsapp: _seedsNetworkcolor.default.NETWORK_COLOR_WHATSAPP,
229
231
  tiktok: _seedsNetworkcolor.default.NETWORK_COLOR_TIKTOK
230
232
  }
231
- }, _literalColors.default);
233
+ }, _literalColors.default, _datavizPalette.datavizPalette);
232
234
 
233
235
  var typography = {
234
236
  "100": _seedsTypography.default.TYPOGRAPHY_SIZE_100,
@@ -15,7 +15,10 @@ var Collapsible = function Collapsible(_ref) {
15
15
  _ref$isOpen = _ref.isOpen,
16
16
  isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
17
17
  _ref$offset = _ref.offset,
18
- offset = _ref$offset === void 0 ? 0 : _ref$offset;
18
+ offset = _ref$offset === void 0 ? 0 : _ref$offset,
19
+ _ref$collapsedHeight = _ref.collapsedHeight,
20
+ collapsedHeight = _ref$collapsedHeight === void 0 ? 0 : _ref$collapsedHeight,
21
+ openHeight = _ref.openHeight;
19
22
 
20
23
  var _useState = useState("Racine-collapsible-" + idCounter++),
21
24
  id = _useState[0];
@@ -24,11 +27,25 @@ var Collapsible = function Collapsible(_ref) {
24
27
  value: {
25
28
  isOpen: isOpen,
26
29
  id: id,
27
- offset: offset
30
+ offset: offset,
31
+ collapsedHeight: collapsedHeight,
32
+ openHeight: openHeight
28
33
  }
29
34
  }, children);
30
35
  };
31
36
 
37
+ var determineMaxHeight = function determineMaxHeight(isHidden, openHeight, computedHeight) {
38
+ // If isHidden is undefined this is the first render. Return undefined so the max-height prop is not added
39
+ // This is a hack to prevent css from animating if it begins in the open state
40
+ // css animates when attribute values change (IE from 0 to another number)
41
+ // css does not animate when simply adding an attribute to an HTML element
42
+ if (isHidden === undefined) return undefined; // If the user has defined an explicit open height, return that as the max height
43
+
44
+ if (!!openHeight) return openHeight; // Otherwise, fallback to the computed height
45
+
46
+ return computedHeight;
47
+ };
48
+
32
49
  var Trigger = function Trigger(_ref2) {
33
50
  var children = _ref2.children,
34
51
  rest = _objectWithoutPropertiesLoose(_ref2, ["children"]);
@@ -50,20 +67,18 @@ var Panel = function Panel(_ref3) {
50
67
  var _useContext2 = useContext(CollapsibleContext),
51
68
  isOpen = _useContext2.isOpen,
52
69
  id = _useContext2.id,
53
- offset = _useContext2.offset;
70
+ offset = _useContext2.offset,
71
+ collapsedHeight = _useContext2.collapsedHeight,
72
+ openHeight = _useContext2.openHeight;
54
73
 
55
74
  var ref = useRef();
56
75
  var measurement = useMeasure(ref);
57
76
 
58
77
  var _useState2 = useState(undefined),
59
78
  isHidden = _useState2[0],
60
- setIsHidden = _useState2[1]; // If this is the initial render isHidden will be undefined
61
- // When that is the case, set maxHeight to undefined rather than the comptued 0
62
- // This prevents an initial expansion animation if a component starts out open
63
- // There is no animation because css is not changing the maxHeight property after mount
64
-
79
+ setIsHidden = _useState2[1];
65
80
 
66
- var maxHeight = isHidden === undefined ? undefined : measurement.height + offset;
81
+ var maxHeight = determineMaxHeight(isHidden, openHeight, measurement.height + offset);
67
82
  /* We use the "hidden" attribute to remove the contents of the panel from the tab order of the page, but it fucks with the animation. This logic sets a slight timeout on setting the prop so that the animation has time to complete before the attribute is set. */
68
83
 
69
84
  useEffect(function () {
@@ -89,12 +104,14 @@ var Panel = function Panel(_ref3) {
89
104
  }
90
105
  }, [isOpen]);
91
106
  return /*#__PURE__*/React.createElement(CollapsingBox, _extends({
92
- maxHeight: isOpen ? maxHeight : "0",
107
+ scrollable: isOpen,
108
+ maxHeight: isOpen ? maxHeight : collapsedHeight,
109
+ minHeight: collapsedHeight,
93
110
  "data-qa-collapsible": "",
94
111
  "data-qa-collapsible-isopen": isOpen === true
95
112
  }, rest), /*#__PURE__*/React.createElement(Box, {
96
113
  width: "100%",
97
- hidden: isHidden,
114
+ hidden: isHidden && collapsedHeight === 0,
98
115
  "aria-hidden": !isOpen,
99
116
  id: id,
100
117
  ref: ref
@@ -3,8 +3,15 @@ import Box from "../Box";
3
3
  export var CollapsingBox = styled(Box).withConfig({
4
4
  displayName: "styles__CollapsingBox",
5
5
  componentId: "sc-1xvfbl7-0"
6
- })(["transition:max-height ", " ", ";will-change:max-height;overflow:hidden;"], function (p) {
6
+ })(["transition:max-height ", " ", ";will-change:max-height;position:relative;overflow:auto;background:linear-gradient( ", " 30%,rgba(255,255,255,0) ),linear-gradient( rgba(255,255,255,0),", " 70% ) 0 100%,radial-gradient( farthest-side at 50% 0,rgb(39 51 51 / 5%),rgba(0,0,0,0) ),radial-gradient( farthest-side at 50% 100%,rgb(39 51 51 / 5%),rgba(0,0,0,0) ) 0 100%;background-repeat:no-repeat;background-size:100% 40px,100% 40px,100% 14px,100% 14px;background-attachment:local,local,scroll,scroll;", ";"], function (p) {
7
7
  return p.theme.duration.medium;
8
8
  }, function (p) {
9
9
  return p.theme.easing.ease_inout;
10
+ }, function (p) {
11
+ return p.theme.colors.neutral[100];
12
+ }, function (p) {
13
+ return p.theme.colors.neutral[100];
14
+ }, function (_ref) {
15
+ var scrollable = _ref.scrollable;
16
+ return scrollable ? "overflow: auto" : "overflow: hidden";
10
17
  });
package/lib/Menu/hooks.js CHANGED
@@ -13,7 +13,8 @@ export var MenuContext = /*#__PURE__*/createContext({
13
13
  state: {
14
14
  selectionIndex: 0,
15
15
  filterQuery: "",
16
- filteredItems: null
16
+ filteredItems: null,
17
+ isFilterInputFocused: false
17
18
  },
18
19
  setState: function setState() {},
19
20
  selectCallbacks: {
@@ -59,7 +60,8 @@ export function useMenuKeyDown() {
59
60
  _useContext$state = _useContext.state,
60
61
  filterQuery = _useContext$state.filterQuery,
61
62
  selectionIndex = _useContext$state.selectionIndex,
62
- filteredItems = _useContext$state.filteredItems;
63
+ filteredItems = _useContext$state.filteredItems,
64
+ isFilterInputFocused = _useContext$state.isFilterInputFocused;
63
65
 
64
66
  var _useContext2 = useContext(MenuButtonContext),
65
67
  closePopout = _useContext2.closePopout,
@@ -118,8 +120,15 @@ export function useMenuKeyDown() {
118
120
  var key = event.key;
119
121
 
120
122
  switch (key) {
121
- case "Enter":
122
123
  case " ":
124
+ if (isFilterInputFocused) {
125
+ return;
126
+ }
127
+
128
+ // falls through
129
+ // eslint-disable-next-line no-fallthrough
130
+
131
+ case "Enter":
123
132
  var selected = items[selectionIndex];
124
133
 
125
134
  if (selected) {
package/lib/Menu/index.js CHANGED
@@ -258,18 +258,37 @@ export var MenuDivider = function MenuDivider(props) {
258
258
  };
259
259
 
260
260
  var MenuFilterInput = function MenuFilterInput(props) {
261
+ var onChange = props.onChange,
262
+ onFocus = props.onFocus,
263
+ onBlur = props.onBlur;
264
+
261
265
  var _useContext3 = useContext(MenuContext),
262
266
  state = _useContext3.state,
263
267
  setState = _useContext3.setState;
264
268
 
265
- var updateFilterQuery = useCallback(function (event) {
266
- return setState({
267
- filterQuery: event.currentTarget.value
269
+ var handleOnChange = useCallback(function (event, value) {
270
+ onChange && onChange(event, value);
271
+ setState({
272
+ filterQuery: value
273
+ });
274
+ }, [setState, onChange]);
275
+ var handleOnFocus = useCallback(function (event) {
276
+ onFocus && onFocus(event);
277
+ setState({
278
+ isFilterInputFocused: true
279
+ });
280
+ }, [setState, onFocus]);
281
+ var handleOnBlur = useCallback(function (event) {
282
+ onBlur && onBlur(event);
283
+ setState({
284
+ isFilterInputFocused: false
268
285
  });
269
- }, [setState]);
286
+ }, [setState, onBlur]);
270
287
  return /*#__PURE__*/React.createElement(Input, _extends({}, props, {
271
288
  value: state.filterQuery,
272
- onChange: updateFilterQuery
289
+ onChange: handleOnChange,
290
+ onFocus: handleOnFocus,
291
+ onBlur: handleOnBlur
273
292
  }));
274
293
  };
275
294
 
@@ -315,7 +334,8 @@ export var Menu = function Menu(_ref4) {
315
334
  var _useState = useState({
316
335
  selectionIndex: 0,
317
336
  filterQuery: "",
318
- filteredItems: null
337
+ filteredItems: null,
338
+ isFilterInputFocused: false
319
339
  }),
320
340
  state = _useState[0],
321
341
  setState = _useState[1];
@@ -21,9 +21,11 @@ export var MenuItemContainer = styled(Box).withConfig({
21
21
  }, function (props) {
22
22
  return css(["", ";"], props.theme.typography[200]);
23
23
  }, function (props) {
24
- return props.active && !props.disabled && css(["color:", ";background-color:", ";"], function (props) {
24
+ return props.active && !props.disabled && css(["color:", ";background-color:", ";.Icon-svg{color:", ";}"], function (props) {
25
25
  return props.theme.colors.text.inverse;
26
- }, props.theme.colors.listItem.background.selected);
26
+ }, props.theme.colors.listItem.background.selected, function (props) {
27
+ return props.theme.colors.text.inverse;
28
+ });
27
29
  }, function (props) {
28
30
  return props.selected && !props.isCheckboxOrRadio && css(["font-weight:", ";"], function (props) {
29
31
  return props.theme.fontWeights.semibold;
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import Box from "../Box";
3
+ import { withTheme } from "styled-components";
4
+ export var DataVizRotation = withTheme(function (p) {
5
+ return p.theme.colors.DATAVIZ_COLORS_LIST.map(function (color, i) {
6
+ return /*#__PURE__*/React.createElement(Box, {
7
+ key: color,
8
+ py: 300,
9
+ px: 400,
10
+ bg: color
11
+ }, i + 1);
12
+ });
13
+ });
@@ -0,0 +1,26 @@
1
+ import COLORS from "@sproutsocial/seeds-color";
2
+ export var datavizPalette = {
3
+ DATAVIZ_COLORS_LIST: [COLORS.COLOR_TEAL_400, COLORS.COLOR_PURPLE_400, COLORS.COLOR_PINK_400, COLORS.COLOR_YELLOW_500, COLORS.COLOR_BLUE_400, COLORS.COLOR_MAGENTA_400, COLORS.COLOR_GREEN_400, COLORS.COLOR_ORANGE_400, COLORS.COLOR_RED_700, COLORS.COLOR_TEAL_700, COLORS.COLOR_PURPLE_700, COLORS.COLOR_PINK_700, COLORS.COLOR_YELLOW_800, COLORS.COLOR_BLUE_700, COLORS.COLOR_MAGENTA_700, COLORS.COLOR_GREEN_700, COLORS.COLOR_ORANGE_700, COLORS.COLOR_RED_400, COLORS.COLOR_GREEN_200, COLORS.COLOR_YELLOW_200],
4
+ DATAVIZ_COLORS_MAP: {
5
+ "1": COLORS.COLOR_TEAL_400,
6
+ "2": COLORS.COLOR_PURPLE_400,
7
+ "3": COLORS.COLOR_PINK_400,
8
+ "4": COLORS.COLOR_YELLOW_500,
9
+ "5": COLORS.COLOR_BLUE_400,
10
+ "6": COLORS.COLOR_MAGENTA_400,
11
+ "7": COLORS.COLOR_GREEN_400,
12
+ "8": COLORS.COLOR_ORANGE_400,
13
+ "9": COLORS.COLOR_RED_700,
14
+ "10": COLORS.COLOR_TEAL_700,
15
+ "11": COLORS.COLOR_PURPLE_700,
16
+ "12": COLORS.COLOR_PINK_700,
17
+ "13": COLORS.COLOR_YELLOW_800,
18
+ "14": COLORS.COLOR_BLUE_700,
19
+ "15": COLORS.COLOR_MAGENTA_700,
20
+ "16": COLORS.COLOR_GREEN_700,
21
+ "17": COLORS.COLOR_ORANGE_700,
22
+ "18": COLORS.COLOR_RED_400,
23
+ "19": COLORS.COLOR_GREEN_200,
24
+ "20": COLORS.COLOR_YELLOW_200
25
+ }
26
+ };
@@ -2,6 +2,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
2
2
 
3
3
  import COLORS from "@sproutsocial/seeds-color";
4
4
  import defaultTheme from "../default/theme";
5
+ import { datavizPalette } from "./dataviz-palette";
5
6
  import { green, blue, purple, yellow, orange, red, neutral } from "./decorative-palettes";
6
7
 
7
8
  var darkTheme = _extends({}, defaultTheme, {
@@ -178,7 +179,7 @@ var darkTheme = _extends({}, defaultTheme, {
178
179
  selected: COLORS.COLOR_NEUTRAL_0
179
180
  }
180
181
  }
181
- }),
182
+ }, datavizPalette),
182
183
  mode: "dark"
183
184
  });
184
185
 
@@ -0,0 +1,26 @@
1
+ import COLORS from "@sproutsocial/seeds-color";
2
+ export var datavizPalette = {
3
+ DATAVIZ_COLORS_LIST: [COLORS.COLOR_TEAL_500, COLORS.COLOR_PURPLE_700, COLORS.COLOR_PINK_700, COLORS.COLOR_YELLOW_500, COLORS.COLOR_BLUE_500, COLORS.COLOR_MAGENTA_500, COLORS.COLOR_GREEN_500, COLORS.COLOR_ORANGE_500, COLORS.COLOR_RED_700, COLORS.COLOR_TEAL_900, COLORS.COLOR_PURPLE_400, COLORS.COLOR_PINK_900, COLORS.COLOR_YELLOW_900, COLORS.COLOR_BLUE_900, COLORS.COLOR_MAGENTA_900, COLORS.COLOR_GREEN_900, COLORS.COLOR_ORANGE_900, COLORS.COLOR_RED_400, COLORS.COLOR_GREEN_700, COLORS.COLOR_YELLOW_800],
4
+ DATAVIZ_COLORS_MAP: {
5
+ "1": COLORS.COLOR_TEAL_500,
6
+ "2": COLORS.COLOR_PURPLE_700,
7
+ "3": COLORS.COLOR_PINK_700,
8
+ "4": COLORS.COLOR_YELLOW_500,
9
+ "5": COLORS.COLOR_BLUE_500,
10
+ "6": COLORS.COLOR_MAGENTA_500,
11
+ "7": COLORS.COLOR_GREEN_500,
12
+ "8": COLORS.COLOR_ORANGE_500,
13
+ "9": COLORS.COLOR_RED_700,
14
+ "10": COLORS.COLOR_TEAL_900,
15
+ "11": COLORS.COLOR_PURPLE_400,
16
+ "12": COLORS.COLOR_PINK_900,
17
+ "13": COLORS.COLOR_YELLOW_900,
18
+ "14": COLORS.COLOR_BLUE_900,
19
+ "15": COLORS.COLOR_MAGENTA_900,
20
+ "16": COLORS.COLOR_GREEN_900,
21
+ "17": COLORS.COLOR_ORANGE_900,
22
+ "18": COLORS.COLOR_RED_400,
23
+ "19": COLORS.COLOR_GREEN_700,
24
+ "20": COLORS.COLOR_YELLOW_800
25
+ }
26
+ };
@@ -2,6 +2,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
2
2
 
3
3
  import COLORS from "@sproutsocial/seeds-color";
4
4
  import literalColors from "./literal-colors";
5
+ import { datavizPalette } from "./dataviz-palette";
5
6
  import { green, blue, purple, yellow, orange, red, neutral } from "./decorative-palettes";
6
7
  import NETWORKCOLORS from "@sproutsocial/seeds-networkcolor";
7
8
  import TYPOGRAPHY from "@sproutsocial/seeds-typography";
@@ -211,7 +212,7 @@ var colors = _extends({
211
212
  whatsapp: NETWORKCOLORS.NETWORK_COLOR_WHATSAPP,
212
213
  tiktok: NETWORKCOLORS.NETWORK_COLOR_TIKTOK
213
214
  }
214
- }, literalColors);
215
+ }, literalColors, datavizPalette);
215
216
 
216
217
  export var typography = {
217
218
  "100": TYPOGRAPHY.TYPOGRAPHY_SIZE_100,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sproutsocial/racine",
3
- "version": "8.5.1",
3
+ "version": "8.6.1",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "__flow__",
@@ -39,6 +39,7 @@
39
39
  "lint-css": "stylelint 'src/**/*.js'",
40
40
  "lint-icons": "yarn icon-lint check 'icons/*.svg'",
41
41
  "jest": "jest",
42
+ "jest:watch": "jest --watch",
42
43
  "test": "npm-run-all flow lint-js lint-css lint-icons jest",
43
44
  "new": "node ./bin/scaffold.js",
44
45
  "playground": "node ./bin/scaffold-playground.js && yarn start",
@@ -108,7 +109,7 @@
108
109
  "@storybook/react": "^6.1.11",
109
110
  "@storybook/theming": "^6.1.11",
110
111
  "@testing-library/react": "^11.2.2",
111
- "@testing-library/user-event": "^12.5.0",
112
+ "@testing-library/user-event": "^13.0.0",
112
113
  "babel-core": "^7.0.0-bridge",
113
114
  "babel-eslint": "10.1.0",
114
115
  "babel-jest": "26.1.0",