Use @reach MenuButton for owner stack menu
Brian Vaughn committed
Apr 8, 2019 at 18:34 UTC
ba994445154e9546645c0701b1666c4f0406cdcc
5 files changed
+204
-63
package.json
+1
@@ -45,6 +45,7 @@
45
"@babel/preset-env": "^7.1.6",
46
"@babel/preset-flow": "^7.0.0",
47
"@babel/preset-react": "^7.0.0",
48
+ "@reach/menu-button": "^0.1.9",
49
"adm-zip": "^0.4.7",
50
"babel-core": "^7.0.0-bridge",
51
"babel-eslint": "^9.0.0",
src/devtools/views/Components/OwnersStack.css
+34
-9
@@ -18,6 +18,7 @@
18
cursor: pointer;
19
text-align: left;
20
}
21
+.Component[data-selected],
22
.Component:hover {
23
background-color: var(--color-hover-background);
24
}
@@ -39,10 +40,6 @@
40
flex: 1 0 auto;
41
}
42
42
-.Toggle {
43
- margin-right: 0.5rem;
44
-}
45
-
43
.VRule {
44
flex: 0 0 auto;
45
height: 20px;
@@ -51,18 +48,46 @@
48
margin: 0 0.5rem;
49
}
50
54
-.Modal {
55
- position: absolute;
56
- top: calc(100% + 0.25rem);
57
- left: 2.5rem;
58
- z-index: 1;
51
+.MenuButton {
52
+ border-radius: 0.25rem;
53
+ display: inline-flex;
54
+ align-items: center;
55
+ padding: 0.25rem;
56
+ cursor: pointer;
57
+ flex: 0 0 auto;
58
+ border: none;
59
+ background: var(--color-button-background);
60
+ color: var(--color-button);
61
+ margin-right: 0.5rem;
62
+}
63
+.MenuButton:hover {
64
+ background: var(--color-button-background-hover);
65
+ color: var(--color-button-hover);
66
+}
67
+.MenuButton[aria-expanded='true'],
68
+.MenuButton[aria-expanded='true']:active {
69
+ background: var(--color-button-background-focus);
70
+ color: var(--color-button-focus);
71
+ outline: none;
72
+}
73
+.MenuButton:focus-within {
74
+ box-shadow: 0 0 0 2px var(--color-button-background-focus) inset;
75
+ outline: none;
76
+}
77
+
78
+.Modal[data-reach-menu-list] {
79
display: inline-flex;
80
flex-direction: column;
81
background-color: var(--color-background);
82
+ color: var(--color-text-color);
83
padding: 0.5rem;
84
padding-right: 0;
85
border: 1px solid var(--color-border);
86
border-radius: 0.25rem;
87
max-height: 10rem;
88
overflow: auto;
89
+
90
+ /* Reach UI tries to set its own :( */
91
+ font-family: var(--font-family-monospace);
92
+ font-size: var(--font-size-monospace-normal);
93
}
src/devtools/views/Components/OwnersStack.js
+21
-48
@@ -1,18 +1,17 @@
1
// @flow
2
import React, {
3
- Fragment,
3
useCallback,
4
useContext,
5
useLayoutEffect,
6
useRef,
7
useState,
8
} from 'react';
9
+import { Menu, MenuList, MenuButton, MenuItem } from '@reach/menu-button';
10
import Button from '../Button';
11
import ButtonIcon from '../ButtonIcon';
12
-import Toggle from '../Toggle';
12
import { TreeContext } from './TreeContext';
13
import { StoreContext } from '../context';
15
-import { useIsOverflowing, useModalDismissSignal } from '../hooks';
14
+import { useIsOverflowing } from '../hooks';
15
16
import type { Element } from './types';
17
@@ -92,53 +91,27 @@ function ElementsDropdown({
91
const store = useContext(StoreContext);
92
const { selectOwner } = useContext(TreeContext);
93
95
- const [isDropdownVisible, setIsDropdownVisible] = useState(false);
96
-
97
- const handleDropdownButtonClick = useCallback(() => {
98
- setIsDropdownVisible(!isDropdownVisible);
99
- }, [isDropdownVisible, setIsDropdownVisible]);
100
-
101
- const handleElementClick = useCallback(
102
- (id: number) => {
103
- selectOwner(id);
104
- setIsDropdownVisible(false);
105
- },
106
- [selectOwner, setIsDropdownVisible]
107
- );
108
-
109
- const modalRef = useRef<HTMLDivElement | null>(null);
110
- const dismissModal = useCallback(() => setIsDropdownVisible(false));
111
-
112
- useModalDismissSignal(modalRef, dismissModal);
113
-
94
return (
115
- <Fragment>
116
- <Toggle
117
- className={styles.Toggle}
118
- isChecked={isDropdownVisible}
119
- onChange={handleDropdownButtonClick}
120
- title="Open elements dropdown"
121
- >
95
+ <Menu>
96
+ <MenuButton className={styles.MenuButton} title="Open elements dropdown">
97
<ButtonIcon type="more" />
123
- </Toggle>
124
- {isDropdownVisible && (
125
- <div className={styles.Modal} ref={modalRef}>
126
- {ownerStack.map((id, index) => (
127
- <button
128
- key={id}
129
- className={
130
- ownerStackIndex === index
131
- ? styles.SelectedComponent
132
- : styles.Component
133
- }
134
- onClick={() => handleElementClick(id)}
135
- >
136
- {((store.getElementByID(id): any): Element).displayName}
137
- </button>
138
- ))}
139
- </div>
140
- )}
141
- </Fragment>
98
+ </MenuButton>
99
+ <MenuList className={styles.Modal}>
100
+ {ownerStack.map((id, index) => (
101
+ <MenuItem
102
+ key={id}
103
+ className={
104
+ ownerStackIndex === index
105
+ ? styles.SelectedComponent
106
+ : styles.Component
107
+ }
108
+ onSelect={() => selectOwner(id)}
109
+ >
110
+ {((store.getElementByID(id): any): Element).displayName}
111
+ </MenuItem>
112
+ ))}
113
+ </MenuList>
114
+ </Menu>
115
);
116
}
117
src/devtools/views/DevTools.js
+1
@@ -14,6 +14,7 @@ import ReactLogo from './ReactLogo';
14
15
import styles from './DevTools.css';
16
17
+import '@reach/menu-button/styles.css';
18
import './root.css';
19
20
import type { Bridge } from '../../types';
yarn.lock
+147
-6
@@ -745,6 +745,67 @@
745
resolved "https://registry.yarnpkg.com/@icons/material/-/material-0.2.4.tgz#e90c9f71768b3736e76d7dd6783fc6c2afa88bc8"
746
integrity sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==
747
748
+"@reach/component-component@^0.1.3":
749
+ version "0.1.3"
750
+ resolved "https://registry.yarnpkg.com/@reach/component-component/-/component-component-0.1.3.tgz#5d156319572dc38995b246f81878bc2577c517e5"
751
+ integrity sha512-a1USH7L3bEfDdPN4iNZGvMEFuBfkdG+QNybeyDv8RloVFgZYRoM+KGXyy2KOfEnTUM8QWDRSROwaL3+ts5Angg==
752
+
753
+"@reach/menu-button@^0.1.9":
754
+ version "0.1.9"
755
+ resolved "https://registry.yarnpkg.com/@reach/menu-button/-/menu-button-0.1.9.tgz#d5957f69efa51d29beb4239403eabf49f9a4bb3e"
756
+ integrity sha512-894lhzcCpaGJKvmCuUX8AJ7xg0Ov/xRKKR5RRVJUroHYuWNuvgZSluO657Y2fNaMKgG0LPqLrtOGUq2CN0golg==
757
+ dependencies:
758
+ "@reach/component-component" "^0.1.3"
759
+ "@reach/portal" "^0.1.3"
760
+ "@reach/rect" "^0.2.0"
761
+ "@reach/router" "^1.1.0"
762
+ "@reach/utils" "^0.2.0"
763
+ "@reach/window-size" "^0.1.3"
764
+ warning "^4.0.2"
765
+
766
+"@reach/observe-rect@^1.0.3":
767
+ version "1.0.3"
768
+ resolved "https://registry.yarnpkg.com/@reach/observe-rect/-/observe-rect-1.0.3.tgz#2ea3dcc369ab22bd9f050a92ea319321356a61e8"
769
+ integrity sha1-LqPcw2mrIr2fBQqS6jGTITVqYeg=
770
+
771
+"@reach/portal@^0.1.3":
772
+ version "0.1.3"
773
+ resolved "https://registry.yarnpkg.com/@reach/portal/-/portal-0.1.3.tgz#31d820f31bbab73570d5b5a449e2b0fa6457802f"
774
+ integrity sha512-yDcu5XZWfWKmKvbOs/uS7vITPVFXmn+XY5V6YcGhlz20KgwG+aJX2c7yvYzO++Zr0qvmtQCmxA4EGEciqIys6g==
775
+ dependencies:
776
+ "@reach/component-component" "^0.1.3"
777
+
778
+"@reach/rect@^0.2.0":
779
+ version "0.2.0"
780
+ resolved "https://registry.yarnpkg.com/@reach/rect/-/rect-0.2.0.tgz#3e8dd4e2188294228ea223223a956885a8a33472"
781
+ integrity sha512-/C0r28VC/0dJ7ehKqkiebU7WvyiqXw5ViWC4KUWQRVTwauLENmslJ3jgEDUQZn6M3Ko63owaMZ2/rAivFfpIGQ==
782
+ dependencies:
783
+ "@reach/component-component" "^0.1.3"
784
+ "@reach/observe-rect" "^1.0.3"
785
+
786
+"@reach/router@^1.1.0":
787
+ version "1.2.1"
788
+ resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.2.1.tgz#34ae3541a5ac44fa7796e5506a5d7274a162be4e"
789
+ integrity sha512-kTaX08X4g27tzIFQGRukaHmNbtMYDS3LEWIS8+l6OayGIw6Oyo1HIF/JzeuR2FoF9z6oV+x/wJSVSq4v8tcUGQ==
790
+ dependencies:
791
+ create-react-context "^0.2.1"
792
+ invariant "^2.2.3"
793
+ prop-types "^15.6.1"
794
+ react-lifecycles-compat "^3.0.4"
795
+ warning "^3.0.0"
796
+
797
+"@reach/utils@^0.2.0":
798
+ version "0.2.0"
799
+ resolved "https://registry.yarnpkg.com/@reach/utils/-/utils-0.2.0.tgz#504e84613b4aed7adf189aaa6b9d110b282ec523"
800
+ integrity sha512-AIfX18Ska78d4SjLt4awYHsgXEIVHhOUxLtxze2XT0D5aPOPx1XJl0seRZfQI0EVod4K1KVvHJnskEYSXqKQQg==
801
+
802
+"@reach/window-size@^0.1.3":
803
+ version "0.1.3"
804
+ resolved "https://registry.yarnpkg.com/@reach/window-size/-/window-size-0.1.3.tgz#eaf8ed8265cf20321a83037d2ab32dad936e79bd"
805
+ integrity sha512-XU/PdGZ9GoRHUkIqIEcARIKWvfEDYCR/b2/Yubo+acKXJQ2I/YkQJdpILdIhNqF93nGa4zIAHrRHXkXdW11Xyg==
806
+ dependencies:
807
+ "@reach/component-component" "^0.1.3"
808
+
809
"@samverschueren/stream-to-observable@^0.3.0":
810
version "0.3.0"
811
resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f"
@@ -3177,6 +3238,14 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
3238
safe-buffer "^5.0.1"
3239
sha.js "^2.4.8"
3240
3241
+create-react-context@^0.2.1:
3242
+ version "0.2.3"
3243
+ resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.3.tgz#9ec140a6914a22ef04b8b09b7771de89567cb6f3"
3244
+ integrity sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==
3245
+ dependencies:
3246
+ fbjs "^0.8.0"
3247
+ gud "^1.0.0"
3248
+
3249
cross-spawn-async@^2.2.2:
3250
version "2.2.5"
3251
resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc"
@@ -3739,6 +3808,13 @@ emojis-list@^2.0.0:
3808
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
3809
integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
3810
3811
+encoding@^0.1.11:
3812
+ version "0.1.12"
3813
+ resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
3814
+ integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=
3815
+ dependencies:
3816
+ iconv-lite "~0.4.13"
3817
+
3818
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
3819
version "1.4.1"
3820
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
@@ -4487,6 +4563,19 @@ fbjs@0.5.1:
4563
ua-parser-js "^0.7.9"
4564
whatwg-fetch "^0.9.0"
4565
4566
+fbjs@^0.8.0:
4567
+ version "0.8.17"
4568
+ resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
4569
+ integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
4570
+ dependencies:
4571
+ core-js "^1.0.0"
4572
+ isomorphic-fetch "^2.1.1"
4573
+ loose-envify "^1.0.0"
4574
+ object-assign "^4.1.0"
4575
+ promise "^7.1.1"
4576
+ setimmediate "^1.0.5"
4577
+ ua-parser-js "^0.7.18"
4578
+
4579
fd-slicer@~1.0.1:
4580
version "1.0.1"
4581
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
@@ -5169,6 +5258,11 @@ growly@^1.3.0:
5258
version "1.3.0"
5259
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
5260
5261
+gud@^1.0.0:
5262
+ version "1.0.0"
5263
+ resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0"
5264
+ integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==
5265
+
5266
gulp-util@^3.0.4:
5267
version "3.0.8"
5268
resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f"
@@ -5469,7 +5563,7 @@ iconv-lite@0.4.19:
5563
version "0.4.19"
5564
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
5565
5472
-iconv-lite@^0.4.17, iconv-lite@^0.4.4:
5566
+iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
5567
version "0.4.24"
5568
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
5569
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -5642,7 +5736,7 @@ invariant@^2.2.0:
5736
dependencies:
5737
loose-envify "^1.0.0"
5738
5645
-invariant@^2.2.2:
5739
+invariant@^2.2.2, invariant@^2.2.3:
5740
version "2.2.4"
5741
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
5742
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -5967,7 +6061,7 @@ is-retry-allowed@^1.0.0:
6061
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
6062
integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=
6063
5970
-is-stream@^1.0.0, is-stream@^1.1.0:
6064
+is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0:
6065
version "1.1.0"
6066
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
6067
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
@@ -6041,6 +6135,14 @@ isobject@^3.0.0, isobject@^3.0.1:
6135
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
6136
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
6137
6138
+isomorphic-fetch@^2.1.1:
6139
+ version "2.2.1"
6140
+ resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
6141
+ integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=
6142
+ dependencies:
6143
+ node-fetch "^1.0.1"
6144
+ whatwg-fetch ">=0.10.0"
6145
+
6146
isstream@~0.1.2:
6147
version "0.1.2"
6148
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
@@ -7597,6 +7699,14 @@ nice-try@^1.0.4:
7699
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
7700
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
7701
7702
+node-fetch@^1.0.1:
7703
+ version "1.7.3"
7704
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
7705
+ integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
7706
+ dependencies:
7707
+ encoding "^0.1.11"
7708
+ is-stream "^1.0.1"
7709
+
7710
node-firefox-connect@1.2.0:
7711
version "1.2.0"
7712
resolved "https://registry.yarnpkg.com/node-firefox-connect/-/node-firefox-connect-1.2.0.tgz#42403848313240c98514ef14b3302816fe3b84e1"
@@ -8467,7 +8577,14 @@ promise@^7.0.3:
8577
dependencies:
8578
asap "~2.0.3"
8579
8470
-prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.2:
8580
+promise@^7.1.1:
8581
+ version "7.3.1"
8582
+ resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
8583
+ integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
8584
+ dependencies:
8585
+ asap "~2.0.3"
8586
+
8587
+prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.1, prop-types@^15.6.2:
8588
version "15.7.2"
8589
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
8590
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@@ -8674,6 +8791,11 @@ react-is@^16.8.4:
8791
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.4.tgz#90f336a68c3a29a096a3d648ab80e87ec61482a2"
8792
integrity sha512-PVadd+WaUDOAciICm/J1waJaSvgq+4rHE/K70j0PFqKhkTBsPv/82UGQJNXAngz1fOQLLxI6z1sEDmJDQhCTAA==
8793
8794
+react-lifecycles-compat@^3.0.4:
8795
+ version "3.0.4"
8796
+ resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
8797
+ integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
8798
+
8799
react-portal@^3.1.0:
8800
version "3.2.0"
8801
resolved "https://registry.yarnpkg.com/react-portal/-/react-portal-3.2.0.tgz#4224e19b2b05d5cbe730a7ba0e34ec7585de0043"
@@ -9375,7 +9497,7 @@ set-value@^2.0.0:
9497
is-plain-object "^2.0.3"
9498
split-string "^3.0.1"
9499
9378
-setimmediate@^1.0.4:
9500
+setimmediate@^1.0.4, setimmediate@^1.0.5:
9501
version "1.0.5"
9502
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
9503
integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
@@ -10369,7 +10491,7 @@ typedarray@^0.0.6:
10491
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
10492
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
10493
10372
-ua-parser-js@^0.7.9:
10494
+ua-parser-js@^0.7.18, ua-parser-js@^0.7.9:
10495
version "0.7.19"
10496
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b"
10497
integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==
@@ -10646,6 +10768,20 @@ walker@~1.0.5:
10768
dependencies:
10769
makeerror "1.0.x"
10770
10771
+warning@^3.0.0:
10772
+ version "3.0.0"
10773
+ resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c"
10774
+ integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=
10775
+ dependencies:
10776
+ loose-envify "^1.0.0"
10777
+
10778
+warning@^4.0.2:
10779
+ version "4.0.3"
10780
+ resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
10781
+ integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
10782
+ dependencies:
10783
+ loose-envify "^1.0.0"
10784
+
10785
watch@~0.18.0:
10786
version "0.18.0"
10787
resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
@@ -10781,6 +10917,11 @@ whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
10917
dependencies:
10918
iconv-lite "0.4.19"
10919
10920
+whatwg-fetch@>=0.10.0:
10921
+ version "3.0.0"
10922
+ resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb"
10923
+ integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==
10924
+
10925
whatwg-fetch@^0.9.0:
10926
version "0.9.0"
10927
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz#0e3684c6cb9995b43efc9df03e4c365d95fd9cc0"