@jetbrains/ring-ui 5.0.137 → 5.0.138

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 (86) hide show
  1. package/components/auth/auth__core.d.ts +1 -1
  2. package/components/auth/auth__core.js +21 -26
  3. package/components/auth-dialog/auth-dialog.js +3 -1
  4. package/components/date-picker/date-input.js +3 -1
  5. package/components/editable-heading/editable-heading.css +7 -3
  6. package/components/editable-heading/editable-heading.js +29 -8
  7. package/components/global/react-render-adapter.js +16 -31
  8. package/components/header/profile.d.ts +54 -1
  9. package/components/header/profile.js +15 -11
  10. package/components/i18n/README.md +3 -0
  11. package/components/i18n/i18n-context.d.ts +54 -0
  12. package/components/i18n/i18n-context.js +3 -0
  13. package/components/i18n/i18n.d.ts +56 -0
  14. package/components/i18n/i18n.js +8 -0
  15. package/components/i18n/messages.json +53 -0
  16. package/components/input/input.d.ts +1 -4
  17. package/components/input/input.js +16 -16
  18. package/components/message/message.d.ts +1 -5
  19. package/components/message/message.js +15 -16
  20. package/components/pager/pager.d.ts +54 -8
  21. package/components/pager/pager.js +10 -12
  22. package/components/query-assist/query-assist.d.ts +1 -5
  23. package/components/query-assist/query-assist.js +30 -29
  24. package/components/select/select.d.ts +2 -4
  25. package/components/select/select.js +14 -11
  26. package/components/select/select__filter.d.ts +0 -1
  27. package/components/select/select__filter.js +4 -2
  28. package/components/user-agreement/user-agreement.d.ts +1 -9
  29. package/components/user-agreement/user-agreement.js +31 -30
  30. package/components/user-card/card.d.ts +65 -13
  31. package/components/user-card/card.js +19 -22
  32. package/dist/_helpers/card.js +19 -28
  33. package/dist/_helpers/select__filter.js +14 -10
  34. package/dist/auth/auth.js +1 -0
  35. package/dist/auth/auth__core.d.ts +1 -1
  36. package/dist/auth/auth__core.js +19 -27
  37. package/dist/auth/landing.js +1 -0
  38. package/dist/auth-dialog/auth-dialog.js +1 -1
  39. package/dist/auth-ng/auth-ng.js +1 -0
  40. package/dist/date-picker/date-input.js +3 -1
  41. package/dist/date-picker/date-picker.js +2 -0
  42. package/dist/date-picker/date-popup.js +2 -0
  43. package/dist/editable-heading/editable-heading.js +32 -9
  44. package/dist/global/react-render-adapter.js +0 -2
  45. package/dist/header/header.js +2 -0
  46. package/dist/header/profile.d.ts +54 -1
  47. package/dist/header/profile.js +22 -15
  48. package/dist/header/smart-profile.js +2 -0
  49. package/dist/header/smart-services.js +1 -0
  50. package/dist/i18n/i18n-context.d.ts +54 -0
  51. package/dist/i18n/i18n-context.js +6 -0
  52. package/dist/i18n/i18n.d.ts +56 -0
  53. package/dist/i18n/i18n.js +114 -0
  54. package/dist/input/input.d.ts +1 -4
  55. package/dist/input/input.js +6 -7
  56. package/dist/message/message.d.ts +1 -5
  57. package/dist/message/message.js +5 -7
  58. package/dist/pager/pager.d.ts +54 -8
  59. package/dist/pager/pager.js +19 -15
  60. package/dist/pager-ng/pager-ng.js +2 -0
  61. package/dist/permissions-ng/permissions-ng.js +1 -0
  62. package/dist/query-assist/query-assist.d.ts +1 -5
  63. package/dist/query-assist/query-assist.js +22 -19
  64. package/dist/query-assist-ng/query-assist-ng.js +2 -0
  65. package/dist/select/select.d.ts +2 -4
  66. package/dist/select/select.js +49 -45
  67. package/dist/select/select__filter.d.ts +0 -1
  68. package/dist/select/select__filter.js +2 -0
  69. package/dist/select/select__popup.js +2 -0
  70. package/dist/select-ng/select-ng.js +2 -0
  71. package/dist/select-ng/select-ng__lazy.js +2 -0
  72. package/dist/style.css +1 -1
  73. package/dist/table-legacy-ng/table-legacy-ng.js +2 -0
  74. package/dist/table-legacy-ng/table-legacy-ng__pager.js +2 -0
  75. package/dist/tags-input/tags-input.js +2 -0
  76. package/dist/tags-input-ng/tags-input-ng.js +2 -0
  77. package/dist/user-agreement/service.js +2 -0
  78. package/dist/user-agreement/user-agreement.d.ts +1 -9
  79. package/dist/user-agreement/user-agreement.js +11 -17
  80. package/dist/user-card/card.d.ts +65 -13
  81. package/dist/user-card/card.js +2 -0
  82. package/dist/user-card/smart-user-card-tooltip.js +2 -0
  83. package/dist/user-card/tooltip.js +2 -0
  84. package/dist/user-card/user-card.js +2 -0
  85. package/dist/user-card-ng/user-card-ng.js +2 -0
  86. package/package.json +22 -22
@@ -88,6 +88,8 @@ import '../list/list__separator.js';
88
88
  import '../list/list__hint.js';
89
89
  import '../list/consts.js';
90
90
  import '../input/input.js';
91
+ import '../i18n/i18n-context.js';
92
+ import '../i18n/i18n.js';
91
93
  import '../_helpers/input.js';
92
94
  import '../input/input-label.js';
93
95
  import '../global/rerender-hoc.js';
@@ -78,6 +78,8 @@ import '../list/list__separator.js';
78
78
  import '../list/list__hint.js';
79
79
  import '../list/consts.js';
80
80
  import '../input/input.js';
81
+ import '../i18n/i18n-context.js';
82
+ import '../i18n/i18n.js';
81
83
  import '../_helpers/input.js';
82
84
  import '../input/input-label.js';
83
85
  import '../global/rerender-hoc.js';
@@ -69,6 +69,8 @@ import '../list/list__hint.js';
69
69
  import '../list/consts.js';
70
70
  import '../input/input-label.js';
71
71
  import '../global/fuzzy-highlight.js';
72
+ import '../i18n/i18n-context.js';
73
+ import '../i18n/i18n.js';
72
74
  import '../select/select__popup.js';
73
75
  import '@jetbrains/icons/search';
74
76
  import '../loader-inline/loader-inline.js';
@@ -69,6 +69,8 @@ import '../list/list__separator.js';
69
69
  import '../list/list__hint.js';
70
70
  import '../list/consts.js';
71
71
  import '../input/input.js';
72
+ import '../i18n/i18n-context.js';
73
+ import '../i18n/i18n.js';
72
74
  import '../_helpers/input.js';
73
75
  import '../input/input-label.js';
74
76
  import '../global/rerender-hoc.js';
@@ -72,6 +72,8 @@ import 'highlight.js/lib/core';
72
72
  import '../markdown/link.js';
73
73
  import '../markdown/heading.js';
74
74
  import '../heading/heading.js';
75
+ import '../i18n/i18n-context.js';
76
+ import '../i18n/i18n.js';
75
77
 
76
78
  const GUEST_SESSION_KEY = 'end-user-agreement-consent';
77
79
  const ONE_HOUR = 60 * 60 * 1000; // eslint-disable-line @typescript-eslint/no-magic-numbers
@@ -14,7 +14,7 @@ export interface UserAgreementTranslations {
14
14
  }
15
15
  export interface UserAgreementProps {
16
16
  text: string;
17
- translations: UserAgreementTranslations;
17
+ translations?: UserAgreementTranslations | null | undefined;
18
18
  show: boolean;
19
19
  onAccept: () => void;
20
20
  onDecline: () => void;
@@ -46,14 +46,6 @@ export default class UserAgreement extends PureComponent<UserAgreementProps> {
46
46
  className: PropTypes.Requireable<string>;
47
47
  };
48
48
  static defaultProps: {
49
- translations: {
50
- userAgreement: string;
51
- accept: string;
52
- decline: string;
53
- close: string;
54
- scrollToAccept: string;
55
- remindLater: string;
56
- };
57
49
  show: boolean;
58
50
  onAccept: typeof noop;
59
51
  onDecline: typeof noop;
@@ -6,6 +6,7 @@ import '../island/island.js';
6
6
  import Panel from '../panel/panel.js';
7
7
  import { Button } from '../button/button.js';
8
8
  import Markdown from '../markdown/markdown.js';
9
+ import { I18nContext } from '../i18n/i18n-context.js';
9
10
  import HeaderWrapper from '../island/header.js';
10
11
  import ContentWrapper from '../island/content.js';
11
12
  import '../_helpers/_rollupPluginBabelHelpers.js';
@@ -50,6 +51,7 @@ import '../link/link.js';
50
51
  import '../_helpers/link.js';
51
52
  import '../markdown/heading.js';
52
53
  import '../heading/heading.js';
54
+ import '../i18n/i18n.js';
53
55
  import 'element-resize-detector';
54
56
  import '../global/schedule-raf.js';
55
57
 
@@ -79,14 +81,6 @@ class UserAgreement extends PureComponent {
79
81
  className: PropTypes.string
80
82
  };
81
83
  static defaultProps = {
82
- translations: {
83
- userAgreement: 'User Agreement',
84
- accept: 'Accept',
85
- decline: 'Decline',
86
- close: 'Close',
87
- scrollToAccept: 'View the entire agreement to continue',
88
- remindLater: 'Remind me later'
89
- },
90
84
  show: false,
91
85
  onAccept: noop,
92
86
  onDecline: noop,
@@ -113,39 +107,39 @@ class UserAgreement extends PureComponent {
113
107
  preview,
114
108
  className
115
109
  } = this.props;
116
- return /*#__PURE__*/React.createElement(Dialog, {
117
- label: translations.userAgreement,
110
+ return /*#__PURE__*/React.createElement(I18nContext.Consumer, null, messages => /*#__PURE__*/React.createElement(Dialog, {
111
+ label: (translations !== null && translations !== void 0 ? translations : messages).userAgreement,
118
112
  show: show,
119
113
  className: classNames(modules_f5ed85cf.agreementDialog, className),
120
114
  contentClassName: modules_f5ed85cf.dialogContent,
121
115
  trapFocus: true,
122
116
  autoFocusFirst: false,
123
117
  "data-test": "user-agreement"
124
- }, /*#__PURE__*/React.createElement(HeaderWrapper, null, translations.userAgreement), /*#__PURE__*/React.createElement(ContentWrapper, {
118
+ }, /*#__PURE__*/React.createElement(HeaderWrapper, null, (translations !== null && translations !== void 0 ? translations : messages).userAgreement), /*#__PURE__*/React.createElement(ContentWrapper, {
125
119
  fade: true,
126
120
  onScrollToBottom: this.onScrollToBottom
127
121
  }, /*#__PURE__*/React.createElement(Markdown, null, text)), !preview && /*#__PURE__*/React.createElement(Panel, null, onRemindLater && !scrolledDown && /*#__PURE__*/React.createElement("div", {
128
122
  className: modules_f5ed85cf.suggestion
129
- }, translations.scrollToAccept), /*#__PURE__*/React.createElement(Button, {
123
+ }, (translations !== null && translations !== void 0 ? translations : messages).scrollToAccept), /*#__PURE__*/React.createElement(Button, {
130
124
  primary: true,
131
125
  disabled: !scrolledDown,
132
126
  onClick: onAccept,
133
127
  "data-test": "accept"
134
- }, translations.accept), /*#__PURE__*/React.createElement(Button, {
128
+ }, (translations !== null && translations !== void 0 ? translations : messages).accept), /*#__PURE__*/React.createElement(Button, {
135
129
  onClick: onDecline,
136
130
  autoFocus: true,
137
131
  "data-test": "decline"
138
- }, translations.decline), !onRemindLater && !scrolledDown && /*#__PURE__*/React.createElement("span", {
132
+ }, (translations !== null && translations !== void 0 ? translations : messages).decline), !onRemindLater && !scrolledDown && /*#__PURE__*/React.createElement("span", {
139
133
  className: modules_f5ed85cf.suggestion
140
- }, translations.scrollToAccept), onRemindLater && /*#__PURE__*/React.createElement(Button, {
134
+ }, (translations !== null && translations !== void 0 ? translations : messages).scrollToAccept), onRemindLater && /*#__PURE__*/React.createElement(Button, {
141
135
  className: modules_f5ed85cf.remindLaterButton,
142
136
  onClick: onRemindLater,
143
137
  "data-test": "later"
144
- }, translations.remindLater)), preview && /*#__PURE__*/React.createElement(Panel, null, /*#__PURE__*/React.createElement(Button, {
138
+ }, (translations !== null && translations !== void 0 ? translations : messages).remindLater)), preview && /*#__PURE__*/React.createElement(Panel, null, /*#__PURE__*/React.createElement(Button, {
145
139
  onClick: onClose,
146
140
  autoFocus: true,
147
141
  "data-test": "close"
148
- }, translations.close)));
142
+ }, (translations !== null && translations !== void 0 ? translations : messages).close))));
149
143
  }
150
144
  }
151
145
 
@@ -1,4 +1,4 @@
1
- import { HTMLAttributes, PureComponent, ReactElement } from 'react';
1
+ import React, { HTMLAttributes, PureComponent, ReactElement } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  export interface UserCardUser {
4
4
  name: string;
@@ -22,7 +22,8 @@ export interface UserCardWording {
22
22
  }
23
23
  export interface UserCardProps extends HTMLAttributes<HTMLDivElement> {
24
24
  user: UserCardUser;
25
- wording: UserCardWording;
25
+ wording?: UserCardWording | null | undefined;
26
+ translations?: UserCardWording | null | undefined;
26
27
  info?: ReactElement | readonly ReactElement[] | string;
27
28
  avatarInfo?: ReactElement | readonly ReactElement[] | string;
28
29
  'data-test'?: string | null | undefined;
@@ -52,18 +53,69 @@ export default class UserCard extends PureComponent<UserCardProps> {
52
53
  copingToClipboardError: PropTypes.Requireable<string>;
53
54
  unverified: PropTypes.Requireable<string>;
54
55
  }>>;
56
+ translations: PropTypes.Requireable<PropTypes.InferProps<{
57
+ banned: PropTypes.Validator<string>;
58
+ online: PropTypes.Validator<string>;
59
+ offline: PropTypes.Validator<string>;
60
+ copyToClipboard: PropTypes.Requireable<string>;
61
+ copiedToClipboard: PropTypes.Requireable<string>;
62
+ copingToClipboardError: PropTypes.Requireable<string>;
63
+ unverified: PropTypes.Requireable<string>;
64
+ }>>;
55
65
  };
56
- static defaultProps: {
57
- wording: {
58
- banned: string;
59
- online: string;
60
- offline: string;
61
- copyToClipboard: string;
62
- copiedToClipboard: string;
63
- copingToClipboardError: string;
64
- unverified: string;
65
- };
66
- };
66
+ static contextType: React.Context<{
67
+ login: string;
68
+ logout: string;
69
+ loginTo: string;
70
+ ok: string;
71
+ cancel: string;
72
+ tryAgainLabel: string;
73
+ postpone: string;
74
+ youHaveLoggedInAs: string;
75
+ applyChange: string;
76
+ backendIsNotAvailable: string;
77
+ checkAgain: string;
78
+ nothingHappensLink: string;
79
+ errorMessage: string;
80
+ applyChangedUser: string;
81
+ profile: string;
82
+ switchUser: string;
83
+ addFirstDate: string;
84
+ addSecondDate: string;
85
+ addTime: string;
86
+ selectName: string;
87
+ setDate: string;
88
+ setDateTime: string;
89
+ setPeriod: string;
90
+ clear: string;
91
+ gotIt: string;
92
+ dismiss: string;
93
+ perPage: string;
94
+ firstPage: string;
95
+ lastPage: string;
96
+ nextPage: string;
97
+ previousPage: string;
98
+ searchTitle: string;
99
+ clearTitle: string;
100
+ userAgreement: string;
101
+ accept: string;
102
+ decline: string;
103
+ close: string;
104
+ scrollToAccept: string;
105
+ remindLater: string;
106
+ filterItems: string;
107
+ selectOption: string;
108
+ progress: string;
109
+ loading: string;
110
+ noOptionsFound: string;
111
+ banned: string;
112
+ online: string;
113
+ offline: string;
114
+ copyToClipboard: string;
115
+ copiedToClipboard: string;
116
+ copingToClipboardError: string;
117
+ unverified: string;
118
+ }>;
67
119
  copyEmail: () => void;
68
120
  render(): JSX.Element;
69
121
  }
@@ -8,6 +8,7 @@ import '../link/link.js';
8
8
  import '../clipboard/clipboard.js';
9
9
  import '../_helpers/badge.js';
10
10
  import '../icon/icon.js';
11
+ import '../i18n/i18n-context.js';
11
12
  export { U as default } from '../_helpers/card.js';
12
13
  import '../icon/icon__constants.js';
13
14
  import '../global/url.js';
@@ -49,3 +50,4 @@ import '../popup/position.js';
49
50
  import '../popup/popup.consts.js';
50
51
  import '../alert/container.js';
51
52
  import '../clipboard/clipboard-fallback.js';
53
+ import '../i18n/i18n.js';
@@ -53,6 +53,8 @@ import '../_helpers/theme.js';
53
53
  import '../alert/container.js';
54
54
  import '../clipboard/clipboard-fallback.js';
55
55
  import '../_helpers/badge.js';
56
+ import '../i18n/i18n-context.js';
57
+ import '../i18n/i18n.js';
56
58
 
57
59
  class SmartUserCardTooltip extends Component {
58
60
  static propTypes = {
@@ -52,6 +52,8 @@ import '../_helpers/theme.js';
52
52
  import '../alert/container.js';
53
53
  import '../clipboard/clipboard-fallback.js';
54
54
  import '../_helpers/badge.js';
55
+ import '../i18n/i18n-context.js';
56
+ import '../i18n/i18n.js';
55
57
 
56
58
  const DEFAULT_TIMEOUT = 300;
57
59
  class UserCardTooltip extends Component {
@@ -51,6 +51,8 @@ import '../popup/popup.consts.js';
51
51
  import '../alert/container.js';
52
52
  import '../clipboard/clipboard-fallback.js';
53
53
  import '../_helpers/badge.js';
54
+ import '../i18n/i18n-context.js';
55
+ import '../i18n/i18n.js';
54
56
  import '../dropdown/dropdown.js';
55
57
  import '../global/typescript-utils.js';
56
58
  import '../_helpers/anchor.js';
@@ -55,6 +55,8 @@ import '../popup/popup.consts.js';
55
55
  import '../alert/container.js';
56
56
  import '../clipboard/clipboard-fallback.js';
57
57
  import '../_helpers/badge.js';
58
+ import '../i18n/i18n-context.js';
59
+ import '../i18n/i18n.js';
58
60
  import '../dropdown/dropdown.js';
59
61
  import '../global/typescript-utils.js';
60
62
  import '../_helpers/anchor.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jetbrains/ring-ui",
3
- "version": "5.0.137",
3
+ "version": "5.0.138",
4
4
  "description": "JetBrains UI library",
5
5
  "author": "JetBrains",
6
6
  "license": "Apache-2.0",
@@ -81,22 +81,22 @@
81
81
  "@jetbrains/stylelint-config": "^4.0.1",
82
82
  "@primer/octicons": "^18.3.0",
83
83
  "@rollup/plugin-babel": "^6.0.3",
84
+ "@rollup/plugin-json": "^6.0.0",
84
85
  "@rollup/plugin-node-resolve": "^15.0.2",
85
86
  "@rollup/plugin-replace": "^5.0.2",
86
87
  "@storybook/addon-a11y": "7.0.7",
87
88
  "@storybook/addon-docs": "7.0.7",
88
- "@storybook/addon-essentials": "7.0.6",
89
- "@storybook/addon-storyshots": "7.0.2",
89
+ "@storybook/addon-essentials": "7.0.7",
90
+ "@storybook/addon-storyshots": "7.0.7",
90
91
  "@storybook/addon-storyshots-puppeteer": "7.0.7",
91
92
  "@storybook/addon-storysource": "7.0.7",
92
- "@storybook/addons": "7.0.6",
93
- "@storybook/core": "6.5.16",
94
- "@storybook/html": "7.0.2",
93
+ "@storybook/addons": "7.0.7",
94
+ "@storybook/html": "7.0.7",
95
95
  "@storybook/html-webpack5": "^7.0.7",
96
- "@storybook/preview-api": "7.0.2",
97
- "@storybook/react": "7.0.6",
96
+ "@storybook/preview-api": "7.0.7",
97
+ "@storybook/react": "7.0.7",
98
98
  "@storybook/source-loader": "7.0.7",
99
- "@storybook/theming": "7.0.6",
99
+ "@storybook/theming": "7.0.7",
100
100
  "@testing-library/react": "^14.0.0",
101
101
  "@testing-library/user-event": "^14.4.3",
102
102
  "@types/chai": "^4.3.4",
@@ -104,13 +104,14 @@
104
104
  "@types/chai-dom": "0.0.10",
105
105
  "@types/chai-enzyme": "^0.6.8",
106
106
  "@types/enzyme": "^3.10.13",
107
- "@types/react": "^18.0.38",
108
- "@types/react-dom": "^18.0.11",
107
+ "@types/react": "^18.2.0",
108
+ "@types/react-dom": "^18.2.1",
109
109
  "@types/sinon": "^10.0.14",
110
110
  "@types/sinon-chai": "^3.2.9",
111
- "@typescript-eslint/eslint-plugin": "^5.59.0",
112
- "@typescript-eslint/parser": "^5.59.0",
111
+ "@typescript-eslint/eslint-plugin": "^5.59.1",
112
+ "@typescript-eslint/parser": "^5.59.1",
113
113
  "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0",
114
+ "acorn": "^8.8.2",
114
115
  "angular": "^1.8.3",
115
116
  "angular-mocks": "^1.8.3",
116
117
  "angular-route": "^1.8.3",
@@ -142,18 +143,18 @@
142
143
  "jest": "~29.5.0",
143
144
  "jest-environment-jsdom": "^29.5.0",
144
145
  "jest-teamcity": "^1.10.0",
145
- "karma": "^6.4.1",
146
+ "karma": "^6.4.2",
146
147
  "karma-chrome-launcher": "3.2.0",
147
148
  "karma-mocha": "^2.0.1",
148
149
  "karma-sourcemap-loader": "^0.4.0",
149
150
  "karma-teamcity-reporter": "^2.0.0",
150
151
  "karma-webpack": "^5.0.0",
151
- "lint-staged": "^13.2.1",
152
+ "lint-staged": "^13.2.2",
152
153
  "merge-options": "^3.0.4",
153
154
  "mocha": "^10.2.0",
154
155
  "pinst": "^3.0.0",
155
- "prettier": "^2.8.7",
156
- "puppeteer": "^19.10.1",
156
+ "prettier": "^2.8.8",
157
+ "puppeteer": "^19.11.1",
157
158
  "raw-loader": "^4.0.2",
158
159
  "react": "^18.2.0",
159
160
  "react-dom": "^18.2.0",
@@ -166,7 +167,7 @@
166
167
  "sinon": "^15.0.4",
167
168
  "sinon-chai": "^3.7.0",
168
169
  "storage-mock": "^2.1.0",
169
- "storybook": "^7.0.6",
170
+ "storybook": "^7.0.7",
170
171
  "storybook-addon-themes": "^6.1.0",
171
172
  "storybook-zeplin": "^2.0.0",
172
173
  "stylelint": "^15.6.0",
@@ -175,10 +176,9 @@
175
176
  "terser-webpack-plugin": "^5.3.7",
176
177
  "typescript": "~5.0.4",
177
178
  "wallaby-webpack": "^3.9.16",
178
- "webpack": "^5.80.0",
179
+ "webpack": "^5.81.0",
179
180
  "webpack-cli": "^5.0.2",
180
- "xmlappend": "^1.0.4",
181
- "yo": "^4.3.1"
181
+ "xmlappend": "^1.0.4"
182
182
  },
183
183
  "peerDependencies": {
184
184
  "@types/react": ">=16.8.0",
@@ -224,7 +224,7 @@
224
224
  "css-loader": "^6.7.3",
225
225
  "csstype": "^3.1.2",
226
226
  "date-fns": "^2.29.3",
227
- "deep-equal": "^2.2.0",
227
+ "deep-equal": "^2.2.1",
228
228
  "element-resize-detector": "^1.2.4",
229
229
  "es6-error": "^4.1.1",
230
230
  "eslint-plugin-react-hooks": "^4.6.0",