diff --git a/.nvmrc b/.nvmrc
index f9fb144..58a4133 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-10.15.0
+16.13.0
diff --git a/package.json b/package.json
index 9808b54..d1c395f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "contentful-sidekick",
- "version": "0.1.1",
+ "version": "1.0.0",
"description": "Chrome Extension that enables inline editing for websites created in Contentful",
"main": "index.js",
"browserslist": [
@@ -10,7 +10,7 @@
"test": "jest tests/*.test.js",
"build:clean": "rimraf dist",
"build:chrome": "npm run build:clean && webpack --progress --config webpack/webpack.config.chrome.js",
- "start": "npm run build:clean && webpack --watch --progress --config webpack/webpack.config.chrome.js"
+ "dev": "npm run build:clean && webpack --watch --progress --config webpack/webpack.config.chrome.js"
},
"repository": {
"type": "git",
@@ -28,6 +28,11 @@
},
"homepage": "https://github.com/bradtaylorsf/contentful-sidekick#readme",
"dependencies": {
+ "@emotion/react": "^11.7.0",
+ "@emotion/styled": "^11.6.0",
+ "@mui/icons-material": "^5.2.1",
+ "@mui/material": "^5.2.3",
+ "@mui/system": "^5.2.3",
"common-tags": "^1.8.0",
"contentful": "^7.14.6",
"contentful-management": "^5.4.0",
diff --git a/src/shared/css/content.css b/src/shared/css/content.css
index 0553879..eaa455a 100644
--- a/src/shared/css/content.css
+++ b/src/shared/css/content.css
@@ -8,7 +8,7 @@ body {
}
[data-init-csk] {
/* position: relative; */
- padding-left: 20vw;
+ /* padding-left: 20vw; */
/* width: 100vw; */
}
diff --git a/src/shared/js/components/Sidekick/ElementHighlighter.js b/src/shared/js/components/Sidekick/ElementHighlighter.js
index e12816c..db70d91 100644
--- a/src/shared/js/components/Sidekick/ElementHighlighter.js
+++ b/src/shared/js/components/Sidekick/ElementHighlighter.js
@@ -1,18 +1,20 @@
import React from 'react';
import throttle from 'lodash/throttle';
+import { useContextSelector } from 'use-context-selector';
import getContentfulItemUrl from '../../helpers/getContentfulItemUrl';
import { resetBlur, setBlur } from '../../helpers/blur';
import { CSK_ENTRY_ID_NAME, CSK_ENTRY_SELECTOR, CSK_ENTRY_UUID_NAME } from '../../helpers/constants';
-import { useTreeUpdater } from './tree-context';
+import { TreeStateContext, useTreeUpdater } from './tree-context';
const ElementHighlighter = () => {
const { setSelected } = useTreeUpdater();
+ const selectedPath = useContextSelector(TreeStateContext, (context) => context.selectedPath);
React.useEffect(() => {
const handleCskEntryMouseenter = throttle((e) => {
if (!e.target) return;
const $ct = $(e.target);
let id = $ct.data(CSK_ENTRY_ID_NAME);
- let url = id ? getContentfulItemUrl(id) : null;
+ let url = id ? getContentfulItemUrl(id, selectedPath) : null;
let uuid = $(e.target).data(CSK_ENTRY_UUID_NAME);
if (!uuid) {
// The mouse enter target might not be the element with sidekick props
@@ -20,7 +22,7 @@ const ElementHighlighter = () => {
const $parentEl = $(e.target).parents(`[data-${CSK_ENTRY_UUID_NAME}]`);
uuid = $($parentEl[0]).data(CSK_ENTRY_UUID_NAME);
id = $($parentEl[0]).data(CSK_ENTRY_ID_NAME);
- url = id ? getContentfulItemUrl(id) : null;
+ url = id ? getContentfulItemUrl(id, selectedPath) : null;
}
setBlur($(e.target), url);
setSelected(uuid);
@@ -63,7 +65,7 @@ const ElementHighlighter = () => {
$('#csk-blur-actions').on('mouseleave', handleActionsMouseleave);
}
};
- }, [setSelected]);
+ }, [setSelected, selectedPath]);
return (
<>
diff --git a/src/shared/js/components/Sidekick/Sidekick.js b/src/shared/js/components/Sidekick/Sidekick.js
index 6ac7462..889d774 100644
--- a/src/shared/js/components/Sidekick/Sidekick.js
+++ b/src/shared/js/components/Sidekick/Sidekick.js
@@ -1,35 +1,84 @@
+import { SpeedDial, SpeedDialAction } from '@mui/material';
+import HighlightIcon from '@mui/icons-material/HighlightAlt';
+import ReadMoreIcon from '@mui/icons-material/ReadMore';
+import { ThemeProvider } from '@mui/system';
+import debounce from 'lodash/debounce';
+
import React, { useEffect, useState } from 'react';
import buildCskEntryTree from '../../helpers/buildCskEntryTree';
import { TreeProvider } from './tree-context';
-
import ElementHighlighter from './ElementHighlighter';
import Sidebar from './Sidebar';
import './Sidekick.css';
+import theme from '../../theme';
+import useStorageState from '../../helpers/useStorageState';
const Sidekick = ({ defaultTree }) => {
const [tree, setTree] = useState(defaultTree);
- const [show, setShow] = useState(false);
+ const [show, setShow] = useStorageState(false, 'sidebarEnabled');
+ const [highlight, setHighlight] = useStorageState(true, 'highlightEnabled');
useEffect(() => {
- const interval = setInterval(() => {
+ const callback = debounce(() => {
const newTree = buildCskEntryTree();
if (JSON.stringify(tree) !== JSON.stringify(newTree)) {
setTree(newTree);
}
- }, 3000);
- setTimeout(() => setShow(true), 300);
+ }, 300);
+ const MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
+ let interval;
+ let mutationObserver;
+ if (MutationObserver) {
+ mutationObserver = new MutationObserver(callback);
+ mutationObserver.observe(document.documentElement || document.body, { childList: true, subtree: true });
+ } else {
+ interval = setInterval(callback, 3000);
+ callback();
+ }
return () => {
- clearInterval(interval);
+ if (interval) clearInterval(interval);
+ if (mutationObserver) mutationObserver.disconnect();
};
}, []);
return (
-
- <>
-
-
- >
-
+
+
+ <>
+
+
+
+ }>
+ }
+ tooltipTitle={`${!highlight ? 'Enable' : 'Disable'} inspect content`}
+ tooltipPlacement='right'
+ color={highlight ? 'primary' : 'secondary'}
+ onClick={() => setHighlight(!highlight)}
+ />
+ }
+ tooltipTitle={`${!show ? 'Enable' : 'Disable'} sidebar`}
+ tooltipPlacement='right'
+ color={highlight ? 'primary' : 'secondary'}
+ onClick={() => setShow(!show)}
+ />
+
+
+
+ {highlight ? : null}
+ >
+
+
);
};
diff --git a/src/shared/js/components/Sidekick/TreeNode.js b/src/shared/js/components/Sidekick/TreeNode.js
index b8f3e75..b88d67c 100644
--- a/src/shared/js/components/Sidekick/TreeNode.js
+++ b/src/shared/js/components/Sidekick/TreeNode.js
@@ -1,9 +1,10 @@
import React from 'react';
+import { useContextSelector } from 'use-context-selector';
import getContentfulItemUrl from '../../helpers/getContentfulItemUrl';
import { CSK_ENTRY_UUID_NAME } from '../../helpers/constants';
import { resetBlur, setBlur } from '../../helpers/blur';
import ErrorTooltip from './ErrorTooltip';
-import { useNode, useTreeUpdater } from './tree-context';
+import { TreeStateContext, useNode, useTreeUpdater } from './tree-context';
const calcElScrollTop = (el) => {
if (el && el.offset()) {
@@ -16,6 +17,7 @@ const calcElScrollTop = (el) => {
const TreeNode = ({ id, field, type, displayText, uuid, childNodes, errors }) => {
const { isExpanded, isSelected } = useNode(uuid);
+ const selectedPath = useContextSelector(TreeStateContext, (context) => context.selectedPath);
const { setIsExpanded } = useTreeUpdater();
const handleExpandCollapseClick = React.useCallback(() => {
setIsExpanded(uuid, !isExpanded);
@@ -44,7 +46,7 @@ const TreeNode = ({ id, field, type, displayText, uuid, childNodes, errors }) =>
))}
) : null,
- [childNodes]
+ [childNodes, selectedPath]
);
const el = React.useMemo(() => $(`[data-${CSK_ENTRY_UUID_NAME}='${uuid}']`), [uuid]);
@@ -53,7 +55,7 @@ const TreeNode = ({ id, field, type, displayText, uuid, childNodes, errors }) =>
$('html, body').stop().animate({ scrollTop }, 300);
}, [el]);
- const url = id ? getContentfulItemUrl(id) : null;
+ const url = id ? getContentfulItemUrl(id, selectedPath) : null;
const text = `${displayText || field || type || id}`;
const handleMouseEnter = () => {
setBlur(el);
diff --git a/src/shared/js/components/Sidekick/tree-context.js b/src/shared/js/components/Sidekick/tree-context.js
index 3289553..7a2b05c 100644
--- a/src/shared/js/components/Sidekick/tree-context.js
+++ b/src/shared/js/components/Sidekick/tree-context.js
@@ -1,7 +1,7 @@
import React from 'react';
import { createContext, useContextSelector } from 'use-context-selector';
-const TreeStateContext = createContext({
+export const TreeStateContext = createContext({
selected: null,
expandedState: {},
selectedPath: []
@@ -14,13 +14,13 @@ const TreeUpdaterContext = createContext({
const getPath = ({ node, uuid }) => {
if (node.uuid == uuid) {
- return [uuid];
+ return [node];
}
if (node.children && node.children.length) {
for (const child of node.children) {
const path = getPath({ node: child, uuid });
if (path.length) {
- return [...path, node.uuid];
+ return [...path, node];
}
}
}
@@ -72,7 +72,7 @@ const useNode = (uuid) => {
const selectedPath = useContextSelector(TreeStateContext, (context) => context.selectedPath);
const selected = useContextSelector(TreeStateContext, (context) => context.selected);
- const isExpanded = React.useMemo(() => expanded || (selected && selectedPath.includes(uuid)), [
+ const isExpanded = React.useMemo(() => expanded || (selected && selectedPath.find((n) => n.uuid === uuid)), [
uuid,
expanded,
selected,
diff --git a/src/shared/js/content.js b/src/shared/js/content.js
index 7a79731..cd9f353 100644
--- a/src/shared/js/content.js
+++ b/src/shared/js/content.js
@@ -8,7 +8,7 @@ import buildCskEntryTree from './helpers/buildCskEntryTree';
import { CSK_ENTRY_SELECTOR } from './helpers/constants';
const shrinkContent = () => {
- $('body').css('padding-left', '20vw');
+ // $('body').css('padding-left', '20vw');
// $('*').filter(function () {
// const $el = $(this);
// if ($el.css('position') == 'fixed') {
@@ -140,8 +140,8 @@ const init = async () => {
const { changedUrl } = request;
getIsSideKickEnabledFromStorage().then((enabled) => {
if (changedUrl && enabled) {
- resetDom();
- loadSidekick();
+ // resetDom();
+ // loadSidekick();
}
});
});
diff --git a/src/shared/js/helpers/buildCskEntryTree.js b/src/shared/js/helpers/buildCskEntryTree.js
index d030a71..f4fc0c5 100644
--- a/src/shared/js/helpers/buildCskEntryTree.js
+++ b/src/shared/js/helpers/buildCskEntryTree.js
@@ -11,9 +11,9 @@ import {
const parseErrors = ($el) => {
try {
- const error = $el.data(CSK_ENTRY_ERROR);
+ const error = $el.data(CSK_ENTRY_ERROR);
return error.errors;
- } catch(e) {
+ } catch (e) {
return null;
}
};
@@ -28,7 +28,7 @@ function traverseDomNode(jqObj, domEl, results) {
const uuid = prevUuid || uuidv4();
$el.attr(`data-${CSK_ENTRY_UUID_NAME}`, uuid);
-
+
results.push({
id: $el.data(CSK_ENTRY_ID_NAME),
field: $el.data(CSK_ENTRY_FIELD_NAME),
diff --git a/src/shared/js/helpers/getContentfulItemUrl.js b/src/shared/js/helpers/getContentfulItemUrl.js
index f357d56..6c8def4 100644
--- a/src/shared/js/helpers/getContentfulItemUrl.js
+++ b/src/shared/js/helpers/getContentfulItemUrl.js
@@ -1,6 +1,13 @@
import getContentfulVars from './getContentfulVars';
-export default (contentId) => {
+export default (contentId, selectedPath = []) => {
const [CONTENTFUL_CURRENT_SPACE_ID, CONTENTFUL_ENVIRONMENT] = getContentfulVars();
- return `https://app.contentful.com/spaces/${CONTENTFUL_CURRENT_SPACE_ID}/environments/${CONTENTFUL_ENVIRONMENT}/entries/${contentId}`;
+ const reversed = [...selectedPath].reverse();
+ const previousEntries = selectedPath
+ ? `?previousEntries=${reversed
+ .filter((node) => node.id && node.id !== contentId)
+ .map((node) => node.id)
+ .join(',')}`
+ : '';
+ return `https://app.contentful.com/spaces/${CONTENTFUL_CURRENT_SPACE_ID}/environments/${CONTENTFUL_ENVIRONMENT}/entries/${contentId}${previousEntries}`;
};
diff --git a/src/shared/js/helpers/useStorageState.js b/src/shared/js/helpers/useStorageState.js
new file mode 100644
index 0000000..70e82e6
--- /dev/null
+++ b/src/shared/js/helpers/useStorageState.js
@@ -0,0 +1,26 @@
+import React from 'react';
+export default (defaultValue, key) => {
+ const [value, setValuestate] = React.useState(localStorage.getItem(key) ? JSON.parse(localStorage.getItem(key)) : defaultValue);
+ // React.useEffect(() => {
+ // chrome.storage.sync.get([key], (storageValue) => {
+ // if (typeof storageValue[key] !== 'undefined') {
+ // setValuestate(storageValue[key]);
+ // }
+ // });
+
+ // chrome.storage.onChanged.addListener((changes) => {
+ // if (changes[key] && changes[key].newValue !== changes[key].oldValue) {
+ // setValuestate(changes[key].newValue);
+ // }
+ // });
+ // }, [defaultValue]);
+
+ const setValue = newValue => {
+ setValuestate(newValue);
+ localStorage.setItem(key, newValue);
+ // TODO: The next line makes the extension disappear without error
+ // chrome.storage.sync.set({ [key]: newValue });
+
+ };
+ return [value, setValue];
+};
diff --git a/src/shared/js/theme.js b/src/shared/js/theme.js
new file mode 100644
index 0000000..ca53d1e
--- /dev/null
+++ b/src/shared/js/theme.js
@@ -0,0 +1,11 @@
+import { createTheme } from '@mui/material/styles';
+
+const theme = createTheme({
+ palette: {
+ primary: {
+ main: '#9146ff'
+ }
+ }
+});
+
+export default theme;
diff --git a/yarn.lock b/yarn.lock
index f140c01..aeb604e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -160,6 +160,13 @@
dependencies:
"@babel/types" "^7.12.5"
+"@babel/helper-module-imports@^7.12.13":
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3"
+ integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==
+ dependencies:
+ "@babel/types" "^7.16.0"
+
"@babel/helper-module-transforms@^7.12.1":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c"
@@ -187,6 +194,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
+"@babel/helper-plugin-utils@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9"
+ integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
+
"@babel/helper-regex@^7.10.4":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0"
@@ -239,6 +251,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
+"@babel/helper-validator-identifier@^7.15.7":
+ version "7.15.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389"
+ integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==
+
"@babel/helper-validator-option@^7.12.1":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9"
@@ -426,6 +443,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-syntax-jsx@^7.12.13":
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz#f9624394317365a9a88c82358d3f8471154698f1"
+ integrity sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
@@ -884,6 +908,13 @@
dependencies:
regenerator-runtime "^0.13.4"
+"@babel/runtime@^7.13.10", "@babel/runtime@^7.16.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7":
+ version "7.16.3"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5"
+ integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
"@babel/template@^7.10.4", "@babel/template@^7.4.0":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278"
@@ -917,6 +948,14 @@
lodash "^4.17.19"
to-fast-properties "^2.0.0"
+"@babel/types@^7.16.0":
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba"
+ integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.15.7"
+ to-fast-properties "^2.0.0"
+
"@cnakazawa/watch@^1.0.3":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
@@ -925,6 +964,107 @@
exec-sh "^0.3.2"
minimist "^1.2.0"
+"@emotion/babel-plugin@^11.3.0":
+ version "11.3.0"
+ resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.3.0.tgz#3a16850ba04d8d9651f07f3fb674b3436a4fb9d7"
+ integrity sha512-UZKwBV2rADuhRp+ZOGgNWg2eYgbzKzQXfQPtJbu/PLy8onurxlNCLvxMQEvlr1/GudguPI5IU9qIY1+2z1M5bA==
+ dependencies:
+ "@babel/helper-module-imports" "^7.12.13"
+ "@babel/plugin-syntax-jsx" "^7.12.13"
+ "@babel/runtime" "^7.13.10"
+ "@emotion/hash" "^0.8.0"
+ "@emotion/memoize" "^0.7.5"
+ "@emotion/serialize" "^1.0.2"
+ babel-plugin-macros "^2.6.1"
+ convert-source-map "^1.5.0"
+ escape-string-regexp "^4.0.0"
+ find-root "^1.1.0"
+ source-map "^0.5.7"
+ stylis "^4.0.3"
+
+"@emotion/cache@^11.6.0":
+ version "11.6.0"
+ resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.6.0.tgz#65fbdbbe4382f1991d8b20853c38e63ecccec9a1"
+ integrity sha512-ElbsWY1KMwEowkv42vGo0UPuLgtPYfIs9BxxVrmvsaJVvktknsHYYlx5NQ5g6zLDcOTyamlDc7FkRg2TAcQDKQ==
+ dependencies:
+ "@emotion/memoize" "^0.7.4"
+ "@emotion/sheet" "^1.1.0"
+ "@emotion/utils" "^1.0.0"
+ "@emotion/weak-memoize" "^0.2.5"
+ stylis "^4.0.10"
+
+"@emotion/hash@^0.8.0":
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
+ integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==
+
+"@emotion/is-prop-valid@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.1.tgz#cbd843d409dfaad90f9404e7c0404c55eae8c134"
+ integrity sha512-bW1Tos67CZkOURLc0OalnfxtSXQJMrAMV0jZTVGJUPSOd4qgjF3+tTD5CwJM13PHA8cltGW1WGbbvV9NpvUZPw==
+ dependencies:
+ "@emotion/memoize" "^0.7.4"
+
+"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5":
+ version "0.7.5"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50"
+ integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==
+
+"@emotion/react@^11.7.0":
+ version "11.7.0"
+ resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.7.0.tgz#b179da970ac0e8415de3ac165deadf8d9c4bf89f"
+ integrity sha512-WL93hf9+/2s3cA1JVJlz8+Uy6p6QWukqQFOm2OZO5ki51hfucHMOmbSjiyC3t2Y4RI8XUmBoepoc/24ny/VBbA==
+ dependencies:
+ "@babel/runtime" "^7.13.10"
+ "@emotion/cache" "^11.6.0"
+ "@emotion/serialize" "^1.0.2"
+ "@emotion/sheet" "^1.1.0"
+ "@emotion/utils" "^1.0.0"
+ "@emotion/weak-memoize" "^0.2.5"
+ hoist-non-react-statics "^3.3.1"
+
+"@emotion/serialize@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.2.tgz#77cb21a0571c9f68eb66087754a65fa97bfcd965"
+ integrity sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==
+ dependencies:
+ "@emotion/hash" "^0.8.0"
+ "@emotion/memoize" "^0.7.4"
+ "@emotion/unitless" "^0.7.5"
+ "@emotion/utils" "^1.0.0"
+ csstype "^3.0.2"
+
+"@emotion/sheet@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2"
+ integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==
+
+"@emotion/styled@^11.6.0":
+ version "11.6.0"
+ resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.6.0.tgz#9230d1a7bcb2ebf83c6a579f4c80e0664132d81d"
+ integrity sha512-mxVtVyIOTmCAkFbwIp+nCjTXJNgcz4VWkOYQro87jE2QBTydnkiYusMrRGFtzuruiGK4dDaNORk4gH049iiQuw==
+ dependencies:
+ "@babel/runtime" "^7.13.10"
+ "@emotion/babel-plugin" "^11.3.0"
+ "@emotion/is-prop-valid" "^1.1.1"
+ "@emotion/serialize" "^1.0.2"
+ "@emotion/utils" "^1.0.0"
+
+"@emotion/unitless@^0.7.5":
+ version "0.7.5"
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
+ integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
+
+"@emotion/utils@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.0.0.tgz#abe06a83160b10570816c913990245813a2fd6af"
+ integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==
+
+"@emotion/weak-memoize@^0.2.5":
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
+ integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
+
"@eslint/eslintrc@^0.2.1":
version "0.2.1"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c"
@@ -1129,6 +1269,92 @@
contentful "^7.14.5"
lodash "^4.17.15"
+"@mui/base@5.0.0-alpha.59":
+ version "5.0.0-alpha.59"
+ resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.59.tgz#ca14f4597b30a342e5ec622a7164304478acd601"
+ integrity sha512-rPgN2FW0FAjQ9+LQ+XBsq3DFcuiiMFhf8uoLJAWnnzft27IJvJqbrhfpCZ68G6l+umJLbbl5RIIbpt8ALZDDNQ==
+ dependencies:
+ "@babel/runtime" "^7.16.3"
+ "@emotion/is-prop-valid" "^1.1.1"
+ "@mui/utils" "^5.2.3"
+ "@popperjs/core" "^2.4.4"
+ clsx "^1.1.1"
+ prop-types "^15.7.2"
+ react-is "^17.0.2"
+
+"@mui/icons-material@^5.2.1":
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.2.1.tgz#f037aeb7a0491bf855eaebea53de8ee427b3014e"
+ integrity sha512-AFOn0bbaGd1dw8oYE40dv3I+QnfS5xP5HSUiUGsvb1ntP0cM1kW4VqQp7BtL7DbOpEsw1ZTbw67tDqSCH7utNg==
+ dependencies:
+ "@babel/runtime" "^7.16.3"
+
+"@mui/material@^5.2.3":
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.2.3.tgz#949c32ff2d6cc64c9ec21889ddf89be76f10ef5f"
+ integrity sha512-qhHAVpkQh77xiic38TIDMrKGafRRy9WT16uvexvE2UdyI259YP4HvFamYz3prSNnZi5UozwKpH/QGnv6+JT7/g==
+ dependencies:
+ "@babel/runtime" "^7.16.3"
+ "@mui/base" "5.0.0-alpha.59"
+ "@mui/system" "^5.2.3"
+ "@mui/types" "^7.1.0"
+ "@mui/utils" "^5.2.3"
+ "@types/react-transition-group" "^4.4.4"
+ clsx "^1.1.1"
+ csstype "^3.0.10"
+ hoist-non-react-statics "^3.3.2"
+ prop-types "^15.7.2"
+ react-is "^17.0.2"
+ react-transition-group "^4.4.2"
+
+"@mui/private-theming@^5.2.3":
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.2.3.tgz#6d4e7d8309adc932b444fdd091caec339c430be4"
+ integrity sha512-Lc1Cmu8lSsYZiXADi9PBb17Ho82ZbseHQujUFAcp6bCJ5x/d+87JYCIpCBMagPu/isRlFCwbziuXPmz7WOzJPQ==
+ dependencies:
+ "@babel/runtime" "^7.16.3"
+ "@mui/utils" "^5.2.3"
+ prop-types "^15.7.2"
+
+"@mui/styled-engine@^5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.2.0.tgz#5c97e2b1b6c4c2d9991f07517ed862972d362b85"
+ integrity sha512-NZ4pWYQcM5wreUfiXRd7IMFRF+Nq1vMzsIdXtXNjgctJTKHunrofasoBqv+cqevO+hqT75ezSbNHyaXzOXp6Mg==
+ dependencies:
+ "@babel/runtime" "^7.16.3"
+ "@emotion/cache" "^11.6.0"
+ prop-types "^15.7.2"
+
+"@mui/system@^5.2.3":
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.2.3.tgz#70584e6d5cf2b02963a6d0d90d64f7a9ad614803"
+ integrity sha512-YvkjmqgOruZgr+IkueRns99gl3MmnNs8BhnlZosYMLzKz/1lY0JqVBFqUh4sGVbD0UEKFwdk8H31itG5OIPChA==
+ dependencies:
+ "@babel/runtime" "^7.16.3"
+ "@mui/private-theming" "^5.2.3"
+ "@mui/styled-engine" "^5.2.0"
+ "@mui/types" "^7.1.0"
+ "@mui/utils" "^5.2.3"
+ clsx "^1.1.1"
+ csstype "^3.0.10"
+ prop-types "^15.7.2"
+
+"@mui/types@^7.1.0":
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.1.0.tgz#5ed928c5a41cfbf9a4be82ea3bbdc47bcc9610d5"
+ integrity sha512-Hh7ALdq/GjfIwLvqH3XftuY3bcKhupktTm+S6qRIDGOtPtRuq2L21VWzOK4p7kblirK0XgGVH5BLwa6u8z/6QQ==
+
+"@mui/utils@^5.2.3":
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.2.3.tgz#994f3a500679804483732596fcfa531e59c56445"
+ integrity sha512-sQujlajIS0zQKcGIS6tZR0L1R+ib26B6UtuEn+cZqwKHsPo3feuS+SkdscYBdcCdMbrZs4gj8WIJHl2z6tbSzQ==
+ dependencies:
+ "@babel/runtime" "^7.16.3"
+ "@types/prop-types" "^15.7.4"
+ "@types/react-is" "^16.7.1 || ^17.0.0"
+ prop-types "^15.7.2"
+ react-is "^17.0.2"
+
"@nodelib/fs.scandir@2.1.3":
version "2.1.3"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
@@ -1150,6 +1376,11 @@
"@nodelib/fs.scandir" "2.1.3"
fastq "^1.6.0"
+"@popperjs/core@^2.4.4":
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.0.tgz#6734f8ebc106a0860dff7f92bf90df193f0935d7"
+ integrity sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ==
+
"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.7.0":
version "1.8.1"
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217"
@@ -1301,6 +1532,44 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.8.tgz#2127bd81949a95c8b7d3240f3254352d72563aec"
integrity sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==
+"@types/parse-json@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
+ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
+
+"@types/prop-types@*", "@types/prop-types@^15.7.4":
+ version "15.7.4"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11"
+ integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==
+
+"@types/react-is@^16.7.1 || ^17.0.0":
+ version "17.0.3"
+ resolved "https://registry.yarnpkg.com/@types/react-is/-/react-is-17.0.3.tgz#2d855ba575f2fc8d17ef9861f084acc4b90a137a"
+ integrity sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react-transition-group@^4.4.4":
+ version "4.4.4"
+ resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.4.tgz#acd4cceaa2be6b757db61ed7b432e103242d163e"
+ integrity sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*":
+ version "17.0.37"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.37.tgz#6884d0aa402605935c397ae689deed115caad959"
+ integrity sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
+"@types/scheduler@*":
+ version "0.16.2"
+ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
+ integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
+
"@types/stack-utils@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
@@ -1882,6 +2151,15 @@ babel-plugin-jest-hoist@^24.9.0:
dependencies:
"@types/babel__traverse" "^7.0.6"
+babel-plugin-macros@^2.6.1:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
+ integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ cosmiconfig "^6.0.0"
+ resolve "^1.12.0"
+
babel-preset-jest@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc"
@@ -2380,6 +2658,11 @@ clone@^1.0.2:
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
+clsx@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188"
+ integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==
+
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
@@ -2535,6 +2818,13 @@ convert-source-map@^1.4.0, convert-source-map@^1.7.0:
dependencies:
safe-buffer "~5.1.1"
+convert-source-map@^1.5.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
+ integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
+ dependencies:
+ safe-buffer "~5.1.1"
+
copy-concurrently@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
@@ -2584,6 +2874,17 @@ core-util-is@1.0.2, core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+cosmiconfig@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
+ integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==
+ dependencies:
+ "@types/parse-json" "^4.0.0"
+ import-fresh "^3.1.0"
+ parse-json "^5.0.0"
+ path-type "^4.0.0"
+ yaml "^1.7.2"
+
create-ecdh@^4.0.0:
version "4.0.4"
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
@@ -2687,6 +2988,11 @@ cssstyle@^1.0.0:
dependencies:
cssom "0.3.x"
+csstype@^3.0.10, csstype@^3.0.2:
+ version "3.0.10"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5"
+ integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==
+
cyclist@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
@@ -2877,6 +3183,14 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
+dom-helpers@^5.0.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902"
+ integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==
+ dependencies:
+ "@babel/runtime" "^7.8.7"
+ csstype "^3.0.2"
+
domain-browser@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
@@ -3053,6 +3367,11 @@ escape-string-regexp@^2.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+escape-string-regexp@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
escodegen@^1.9.1:
version "1.14.3"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
@@ -3550,6 +3869,11 @@ find-project-root@^1.1.1:
resolved "https://registry.yarnpkg.com/find-project-root/-/find-project-root-1.1.1.tgz#d242727a2d904725df5714f23dfdcdedda0b6ef8"
integrity sha1-0kJyei2QRyXfVxTyPf3N7doLbvg=
+find-root@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
+ integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
+
find-up@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
@@ -3994,6 +4318,13 @@ hmac-drbg@^1.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
+hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
+ integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+ dependencies:
+ react-is "^16.7.0"
+
homedir-polyfill@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
@@ -4079,6 +4410,14 @@ import-fresh@^3.0.0, import-fresh@^3.2.1:
parent-module "^1.0.0"
resolve-from "^4.0.0"
+import-fresh@^3.1.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
import-local@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
@@ -4930,6 +5269,11 @@ json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -5068,6 +5412,11 @@ liftoff@^2.5.0:
rechoir "^0.6.2"
resolve "^1.1.7"
+lines-and-columns@^1.1.6:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
+ integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+
load-json-file@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
@@ -5898,6 +6247,16 @@ parse-json@^4.0.0:
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
+parse-json@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-even-better-errors "^2.3.0"
+ lines-and-columns "^1.1.6"
+
parse-passwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
@@ -6346,11 +6705,26 @@ react-dom@^16.13.1:
prop-types "^15.6.2"
scheduler "^0.19.1"
-react-is@^16.8.1, react-is@^16.8.4:
+react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+react-is@^17.0.2:
+ version "17.0.2"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
+ integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
+
+react-transition-group@^4.4.2:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470"
+ integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==
+ dependencies:
+ "@babel/runtime" "^7.5.5"
+ dom-helpers "^5.0.1"
+ loose-envify "^1.4.0"
+ prop-types "^15.6.2"
+
react@^17.0.2:
version "17.0.2"
resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
@@ -7016,7 +7390,7 @@ source-map-url@^0.4.0:
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
-source-map@^0.5.0, source-map@^0.5.6:
+source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -7264,6 +7638,11 @@ style-loader@^1.2.1:
loader-utils "^2.0.0"
schema-utils "^2.7.0"
+stylis@^4.0.10, stylis@^4.0.3:
+ version "4.0.10"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.10.tgz#446512d1097197ab3f02fb3c258358c3f7a14240"
+ integrity sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==
+
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
@@ -7963,6 +8342,11 @@ yallist@^3.0.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+yaml@^1.7.2:
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+ integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
yargs-parser@^13.1.2:
version "13.1.2"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"