Add daily stats and redesing meal list

This commit is contained in:
= 2020-12-01 22:22:36 +01:00
parent e6a3254147
commit cd19824b62
16 changed files with 476 additions and 375 deletions

View File

@ -5,15 +5,12 @@
"dependencies": {
"@material-ui/core": "^4.11.1",
"@material-ui/icons": "^4.9.1",
"@tailwindcss/forms": "^0.2.1",
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"@zxing/library": "^0.18.3",
"add": "^2.0.6",
"autoprefixer": "^10.0.4",
"lodash": "^4.17.20",
"postcss": "^8.1.10",
"prop-types": "^15.7.2",
"react": "^17.0.1",
"react-dom": "^17.0.1",
@ -26,7 +23,6 @@
"redux": "^4.0.5",
"redux-saga": "^1.1.3",
"reselect": "^4.0.0",
"tailwindcss": "^2.0.1",
"web-vitals": "^0.2.4",
"yarn": "^1.22.10"
},

4
src/assets/logo.svg Normal file
View File

@ -0,0 +1,4 @@
<svg width="35" height="23" viewBox="0 0 35 23">
<path d="M33.7945 11.4338C34.2146 11.4338 34.516 11.5221 34.6986 11.6985C34.8995 11.875 35 12.1043 35 12.3867C35 12.8454 34.8539 13.2512 34.5616 13.6041C34.2877 13.957 33.8493 14.1423 33.2466 14.16C31.8037 14.1776 30.5069 14.0717 29.3562 13.8423C28.0776 16.4714 26.5342 18.6594 24.726 20.4062C22.9361 22.1354 21.1644 23 19.411 23C17.8037 23 16.5982 22.1795 15.7945 20.5386C14.9909 18.8799 14.5342 16.6655 14.4247 13.8953C13.3288 16.9655 12.0868 19.2505 10.6986 20.7503C9.32877 22.2501 7.86758 23 6.31507 23C4.56164 23 3.23744 21.9501 2.34247 19.8504C1.44749 17.733 1 14.8922 1 11.328C1 8.73418 1.23744 5.88454 1.71233 2.77906C1.84018 1.89682 2.06849 1.28807 2.39726 0.952818C2.74429 0.599922 3.28311 0.423475 4.0137 0.423475C4.56164 0.423475 4.98174 0.538166 5.27397 0.767548C5.58447 0.996931 5.73973 1.42041 5.73973 2.03797C5.73973 2.16149 5.72146 2.39969 5.68493 2.75259C5.13699 6.36977 4.86301 9.44879 4.86301 11.9896C4.86301 14.354 5.07306 16.1803 5.49315 17.4684C5.91324 18.7564 6.47945 19.4005 7.19178 19.4005C7.83105 19.4005 8.59817 18.7564 9.49315 17.4684C10.4064 16.1626 11.3105 14.2394 12.2055 11.6985C13.1005 9.14001 13.8584 6.09628 14.4795 2.56732C14.6256 1.75566 14.8904 1.19985 15.274 0.899884C15.6758 0.582278 16.2146 0.423475 16.8904 0.423475C17.4566 0.423475 17.8676 0.546988 18.1233 0.794015C18.3973 1.0234 18.5342 1.37629 18.5342 1.8527C18.5342 2.13502 18.516 2.35558 18.4795 2.51438C17.968 5.39049 17.7123 8.26659 17.7123 11.1427C17.7123 13.1013 17.7763 14.6628 17.9041 15.8274C18.0502 16.9919 18.3151 17.883 18.6986 18.5006C19.1005 19.1005 19.6758 19.4005 20.4247 19.4005C21.3014 19.4005 22.2785 18.7652 23.3562 17.4948C24.4338 16.2068 25.4201 14.6099 26.3151 12.7043C25.2009 12.0338 24.3607 11.1692 23.7945 10.1105C23.2283 9.03414 22.9452 7.799 22.9452 6.40506C22.9452 5.01112 23.1644 3.83774 23.6027 2.88492C24.0594 1.91446 24.6712 1.19102 25.4384 0.714615C26.2237 0.238205 27.0913 0 28.0411 0C29.21 0 30.1324 0.40583 30.8082 1.21749C31.5023 2.02915 31.8493 3.14077 31.8493 4.55236C31.8493 6.54622 31.4018 8.76064 30.5069 11.1956C31.4384 11.3544 32.5342 11.4338 33.7945 11.4338ZM25.7123 6.21979C25.7123 7.94898 26.2877 9.22823 27.4384 10.0575C28.1507 8.08132 28.5068 6.44918 28.5068 5.1611C28.5068 4.42002 28.4064 3.88186 28.2055 3.54661C28.0046 3.19371 27.7306 3.01726 27.3836 3.01726C26.8904 3.01726 26.4886 3.29958 26.1781 3.86421C25.8676 4.4112 25.7123 5.19639 25.7123 6.21979Z" fill="#411A9E"/>
<path d="M32.7945 11.4338C33.2146 11.4338 33.516 11.5221 33.6986 11.6985C33.8995 11.875 34 12.1043 34 12.3867C34 12.8454 33.8539 13.2512 33.5616 13.6041C33.2877 13.957 32.8493 14.1423 32.2466 14.16C30.8037 14.1776 29.5069 14.0717 28.3562 13.8423C27.0776 16.4714 25.5342 18.6594 23.726 20.4062C21.9361 22.1354 20.1644 23 18.411 23C16.8037 23 15.5982 22.1795 14.7945 20.5386C13.9909 18.8799 13.5342 16.6655 13.4247 13.8953C12.3288 16.9655 11.0868 19.2505 9.69863 20.7503C8.32877 22.2501 6.86758 23 5.31507 23C3.56164 23 2.23744 21.9501 1.34247 19.8504C0.447489 17.733 0 14.8922 0 11.328C0 8.73418 0.237443 5.88454 0.712329 2.77906C0.840183 1.89682 1.06849 1.28807 1.39726 0.952818C1.74429 0.599922 2.28311 0.423475 3.0137 0.423475C3.56164 0.423475 3.98174 0.538166 4.27397 0.767548C4.58447 0.996931 4.73973 1.42041 4.73973 2.03797C4.73973 2.16149 4.72146 2.39969 4.68493 2.75259C4.13699 6.36977 3.86301 9.44879 3.86301 11.9896C3.86301 14.354 4.07306 16.1803 4.49315 17.4684C4.91324 18.7564 5.47945 19.4005 6.19178 19.4005C6.83105 19.4005 7.59817 18.7564 8.49315 17.4684C9.40639 16.1626 10.3105 14.2394 11.2055 11.6985C12.1005 9.14001 12.8584 6.09628 13.4795 2.56732C13.6256 1.75566 13.8904 1.19985 14.274 0.899884C14.6758 0.582278 15.2146 0.423475 15.8904 0.423475C16.4566 0.423475 16.8676 0.546988 17.1233 0.794015C17.3973 1.0234 17.5342 1.37629 17.5342 1.8527C17.5342 2.13502 17.516 2.35558 17.4795 2.51438C16.968 5.39049 16.7123 8.26659 16.7123 11.1427C16.7123 13.1013 16.7763 14.6628 16.9041 15.8274C17.0502 16.9919 17.3151 17.883 17.6986 18.5006C18.1005 19.1005 18.6758 19.4005 19.4247 19.4005C20.3014 19.4005 21.2785 18.7652 22.3562 17.4948C23.4338 16.2068 24.4201 14.6099 25.3151 12.7043C24.2009 12.0338 23.3607 11.1692 22.7945 10.1105C22.2283 9.03414 21.9452 7.799 21.9452 6.40506C21.9452 5.01112 22.1644 3.83774 22.6027 2.88492C23.0594 1.91446 23.6712 1.19102 24.4384 0.714615C25.2237 0.238205 26.0913 0 27.0411 0C28.21 0 29.1324 0.40583 29.8082 1.21749C30.5023 2.02915 30.8493 3.14077 30.8493 4.55236C30.8493 6.54622 30.4018 8.76064 29.5069 11.1956C30.4384 11.3544 31.5342 11.4338 32.7945 11.4338ZM24.7123 6.21979C24.7123 7.94898 25.2877 9.22823 26.4384 10.0575C27.1507 8.08132 27.5068 6.44918 27.5068 5.1611C27.5068 4.42002 27.4064 3.88186 27.2055 3.54661C27.0046 3.19371 26.7306 3.01726 26.3836 3.01726C25.8904 3.01726 25.4886 3.29958 25.1781 3.86421C24.8676 4.4112 24.7123 5.19639 24.7123 6.21979Z" fill="#512DA8"/>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -23,14 +23,14 @@ const BarcodeScanner = ({
.catch(onError)
}
},
[onUpdate]
[onUpdate, onError]
)
useEffect(() => {
const id = setInterval(capture, 500)
return () => clearInterval(id)
}, []);
});
return (
<Webcam

View File

@ -0,0 +1,61 @@
import React from "react";
import PropTypes from "prop-types";
import {Grid, Paper, Typography} from "@material-ui/core";
import {makeStyles} from "@material-ui/core/styles";
import grey from '@material-ui/core/colors/grey';
import MacronutrientsChart from 'components/MacronutrientsChart'
const useStyles = makeStyles((theme) => ({
root: {
paddingTop: theme.spacing(2),
paddingBottom: theme.spacing(2),
},
subtitle: {
color: grey[400]
}
}))
const DailyStats = ({ caloriesLeft, macronutrients }) => {
const classes = useStyles()
return (
<Paper className={classes.root}>
<Grid
container
direction="column"
justify="center"
alignItems="center"
>
<Grid item>
<Typography variant="subtitle1" align="center" className={classes.subtitle}>
Calories left
</Typography>
<Typography variant="h3">
{caloriesLeft} kcal
</Typography>
</Grid>
<Grid
container
justify="space-between"
alignItems="center"
>
{macronutrients.map(({ current, max, label, color }, index) => (
<MacronutrientsChart current={current} max={max} label={label} color={color} key={index} />
))}
</Grid>
</Grid>
</Paper>
)
}
DailyStats.propTypes = {
caloriesLeft: PropTypes.number.isRequired,
macronutrients: PropTypes.arrayOf(PropTypes.shape({
current: PropTypes.number.isRequired,
max: PropTypes.number.isRequired,
label: PropTypes.string.isRequired,
color: PropTypes.string.isRequired,
})).isRequired
}
export default DailyStats

View File

@ -0,0 +1,39 @@
import {IconButton, List, ListItem, ListItemText} from "@material-ui/core";
import PropTypes from 'prop-types'
import {Close} from "@material-ui/icons";
import React from "react";
import MacronutrientsDetails from "components/MacronutrientsDetails";
const ListMeal = ({ name, macronutrients }) => {
const handleClick = () => {
console.log('remove item, Meal component')
}
return (
<List disablePadding>
<ListItem>
<ListItemText
primary={name}
secondary={
<MacronutrientsDetails
macronutrients={macronutrients}
/>
}
/>
<IconButton size="small" onClick={handleClick}>
<Close fontSize="small"/>
</IconButton>
</ListItem>
</List>
)
}
ListMeal.propTypes = {
name: PropTypes.string.isRequired,
macronutrients: PropTypes.arrayOf(PropTypes.shape({
value: PropTypes.number.isRequired,
unit: PropTypes.string.isRequired,
})).isRequired,
}
export default ListMeal

View File

@ -0,0 +1,51 @@
import {Grid, Typography} from "@material-ui/core";
import { makeStyles} from '@material-ui/core/styles'
import PropTypes from "prop-types";
import React from "react";
import RadialChart from "../RadialChart";
const useStyles = makeStyles((theme) => ({
root: {
padding: theme.spacing(2),
width: 'auto'
},
chart: {
paddingRight: theme.spacing(1)
}
}))
const MacronutrientsChart = ({ max, current, label, color }) => {
const classes = useStyles()
const progress = current / max * 100
const macronutrientsLeft = max - current;
return (
<Grid
className={classes.root}
container
direction="row"
alignItems="center"
justify="center"
>
<RadialChart className={classes.chart} progress={progress} color={color} width={35} height={35} />
<Grid item>
<Typography variant="subtitle2">
{label}
</Typography>
<Typography variant="caption">
{macronutrientsLeft}g
</Typography>
</Grid>
</Grid>
)
}
MacronutrientsChart.propTypes = {
max: PropTypes.number.isRequired,
current: PropTypes.number.isRequired,
label: PropTypes.string.isRequired,
color: PropTypes.string.isRequired,
}
export default MacronutrientsChart

View File

@ -0,0 +1,40 @@
import {makeStyles} from "@material-ui/core/styles";
import {Chip, Grid} from "@material-ui/core";
import PropTypes from "prop-types";
import React from "react";
const useStyles = makeStyles((theme) => ({
chip: {
marginTop: theme.spacing(1),
'&:not(:last-child)': {
marginRight: theme.spacing(1),
}
}
}))
const MacronutrientsDetails = ({ macronutrients }) => {
const classes = useStyles()
return (
<Grid component="span" container alignItems="center">
{macronutrients.map(({ value, unit }, index) => (
<Chip
component="span"
className={classes.chip}
key={index}
size="small"
label={`${value}${unit}`}
/>
))}
</Grid>
)
}
MacronutrientsDetails.propTypes = {
macronutrients: PropTypes.arrayOf(PropTypes.shape({
value: PropTypes.number.isRequired,
unit: PropTypes.string.isRequired,
})).isRequired,
}
export default MacronutrientsDetails

View File

@ -1,87 +1,37 @@
import React from 'react';
import { makeStyles } from '@material-ui/core/styles'
import {List, ListItem, ListItemSecondaryAction, ListItemText, IconButton, Box, Typography} from '@material-ui/core';
import { Add as AddIcon } from '@material-ui/icons';
import React, { useState } from 'react';
import {List, ListItem, Collapse, ListItemText} from '@material-ui/core';
import {ExpandLess, ExpandMore} from '@material-ui/icons';
import MacronutrientsDetails from 'components/MacronutrientsDetails'
import ListMeal from 'components/ListMeal'
const ITEMS = [
{
calories: 0,
proteins: 0,
fats: 0,
carbohydrates: 0,
mealName: 'breakfast',
meals: []
},
{
calories: 0,
proteins: 0,
fats: 0,
carbohydrates: 0,
mealName: 'lunch',
meals: []
},
{
calories: 0,
proteins: 0,
fats: 0,
carbohydrates: 0,
mealName: 'dinner',
meals: []
},
{
calories: 0,
proteins: 0,
fats: 0,
carbohydrates: 0,
mealName: 'supper',
meals: []
}
]
const MenuList = ({ list }) => {
const [openListName, setOpenListName] = useState({});
const handleClick = (listName) => {
const isOpen = openListName[listName]
const useStyles = makeStyles((theme) => ({
root: {
display: 'flex',
alignItems: 'center',
justifyContent: 'space-between',
paddingRight: theme.spacing(2)
},
}));
const Macronutrients = ({ calories, proteins, fats, carbohydrates }) => {
const classes = useStyles()
const macronutrients = [
calories, proteins, fats, carbohydrates
]
return (
<Box className={classes.root}>
{macronutrients.map((value, index) => (
<Typography paragraph key={index}>
{value}{' '}{index === 0 ? 'kcal' : 'g'}
</Typography>
))}
</Box>
)
}
const MenuList = ({ items }) => {
setOpenListName(prev => ({
...prev,
[listName]: !isOpen
}));
};
return (
<List dense>
{ITEMS.map(({calories, proteins, fats, carbohydrates, mealName, meals}, index) => (
<ListItem key={index}>
<ListItemText
primary={mealName.toUpperCase()}
secondary={<Macronutrients calories={calories} proteins={proteins} fats={fats} carbohydrates={carbohydrates} />}
/>
<ListItemSecondaryAction>
<IconButton edge="end" aria-label="add meal" color="secondary">
<AddIcon />
</IconButton>
</ListItemSecondaryAction>
</ListItem>
{list.map(({ listName, macronutrients, meals }, index) => (
<div key={index}>
<ListItem button key={index} onClick={() => handleClick(listName)}>
<ListItemText primary={listName} secondary={<MacronutrientsDetails macronutrients={macronutrients} />} />
{openListName[listName] ? <ExpandLess /> : <ExpandMore />}
</ListItem>
{meals.length ? (
<Collapse in={openListName[listName]} timeout="auto" unmountOnExit>
{meals.map(({ name, macronutrients }, index) => (
<ListMeal name={name} macronutrients={macronutrients} key={index} />
))}
</Collapse>
) : null }
</div>
))}
</List>
);

View File

@ -20,9 +20,9 @@ const Navbar = () => {
const classes = useStyles()
return (
<AppBar position="static">
<AppBar position="static" color="inherit">
<Toolbar>
<IconButton edge="start" className={classes.menuButton} color="inherit" aria-label="menu">
<IconButton edge="start" className={classes.menuButton} aria-label="menu">
<MenuIcon />
</IconButton>
<Typography variant="h6" className={classes.title}>

View File

@ -0,0 +1,66 @@
import React from 'react';
import PropTypes from 'prop-types';
import { makeStyles } from '@material-ui/core/styles'
const useStyles = makeStyles((theme) => ({
root: {
position: `relative`,
display: `inline-block`,
transition: `all 0.3s ease-in`
},
total: {
opacity: 0.3,
},
progress: {
transform: `rotate(90deg)`,
transformOrigin: `center`,
transition: `all 0.6s cubic-bezier(0.58, 0.16, 0.5, 1.14)`,
transitionDelay: `0.3s`,
}
}))
const RadialChart = ({ progress, color, width, height, className }) => {
const classes = useStyles()
const circleRadius = 80;
const circumference = 2 * 3.14 * circleRadius;
const strokeLength = circumference / 100 * progress;
return (
<div
className={`${classes.wrapper} ${className}`}
>
<svg viewBox="0 0 180 180" width={width} height={height}>
<circle
className={classes.total}
stroke={color}
strokeWidth="10"
fill="none"
cx="90"
cy="90"
r={circleRadius}
/>
<circle
className={classes.progress}
stroke={color}
strokeWidth="10"
strokeDasharray={`${strokeLength},${circumference}`}
strokeLinecap="round"
fill="none"
cx="90"
cy="90"
r={circleRadius}
/>
</svg>
</div>
)
}
RadialChart.propTypes = {
progress: PropTypes.number.isRequired,
color: PropTypes.string.isRequired,
width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
};
export default RadialChart;

View File

@ -1,9 +1,115 @@
import React, {useState} from "react";
import PropTypes from "prop-types";
import { Box, Tab, Tabs } from "@material-ui/core";
import {makeStyles} from "@material-ui/core/styles";
import TabLabel from 'components/TabLabel';
import TabPanel from 'components/TabPanel';
import MenuList from 'components/MenuList'
const ITEMS = [
{
macronutrients: [
{
value: 1245,
unit: ' kcal',
},
{
value: 228.6,
unit: 'g',
},
{
value: 227.0,
unit: 'g',
},
{
value: 127.0,
unit: 'g',
},
],
listName: 'BREAKFAST',
meals: [
{
name: 'eggs',
macronutrients: [
{
value: 1245,
unit: ' kcal',
},
{
value: 228.6,
unit: 'g',
},
{
value: 227.0,
unit: 'g',
},
{
value: 127.0,
unit: 'g',
},
],
},
{
name: 'bread',
macronutrients: [
{
value: 1245,
unit: ' kcal',
},
{
value: 228.6,
unit: 'g',
},
{
value: 227.0,
unit: 'g',
},
{
value: 127.0,
unit: 'g',
},
],
},
{
name: 'corn flakes',
macronutrients: [
{
value: 1245,
unit: ' kcal',
},
{
value: 228.6,
unit: 'g',
},
{
value: 227.0,
unit: 'g',
},
{
value: 127.0,
unit: 'g',
},
],
}
]
},
{
macronutrients: [],
listName: 'LUNCH',
meals: []
},
{
macronutrients: [],
listName: 'DINNER',
meals: []
},
{
macronutrients: [],
listName: 'SUPPER',
meals: []
}
]
const a11yProps = (index) => {
return {
@ -12,7 +118,15 @@ const a11yProps = (index) => {
};
}
const ScrollableTabs = ({ tabs, panels }) => {
const useStyles = makeStyles((theme) => ({
tab: {
width: `100%`
}
}))
const ScrollableTabs = ({ tabs }) => {
const classes = useStyles()
const [value, setValue] = useState(0);
const handleChange = (event, newValue) => {
@ -25,21 +139,22 @@ const ScrollableTabs = ({ tabs, panels }) => {
value={value}
onChange={handleChange}
variant="scrollable"
scrollButtons="desktop"
indicatorColor="primary"
scrollButtons="on"
>
{tabs.map((label, index) => (
<Tab
style={{ minWidth: '33%' }}
key={index}
className={classes.tab}
label={<TabLabel label={label} />}
{...a11yProps(index)}
/>
))}
</Tabs>
<Box>
{panels.map((Component, index) => (
<TabPanel value={value} index={index}>
<Component />
{tabs.map((_, index) => (
<TabPanel value={value} index={index} key={index}>
<MenuList list={ITEMS} />
</TabPanel>
))}
</Box>
@ -49,7 +164,6 @@ const ScrollableTabs = ({ tabs, panels }) => {
ScrollableTabs.propTypes = {
tabs: PropTypes.arrayOf(PropTypes.string).isRequired,
panels: PropTypes.arrayOf(PropTypes.node).isRequired
}
export default ScrollableTabs

View File

@ -21,7 +21,7 @@ const TabPanel = ({ children, value, index, ...other }) => {
}
TabPanel.propTypes = {
children: PropTypes.node,
children: PropTypes.node.isRequired,
index: PropTypes.any.isRequired,
value: PropTypes.any.isRequired,
};

View File

@ -1,13 +1,11 @@
import React from 'react';
import {makeStyles} from "@material-ui/core/styles";
import { Container, Grid, Paper } from '@material-ui/core';
import ScrollableTabs from 'components/ScrollableTabs';
import MenuList from 'components/MenuList'
let i = 1
const TABS = Array.from({ length: 30 }, () => i++)
const PANELS = Array.from({ length: 30 }, () => MenuList)
import DailyStats from 'components/DailyStats'
import purple from "@material-ui/core/colors/purple";
import amber from "@material-ui/core/colors/amber";
import blue from "@material-ui/core/colors/blue";
const useStyles = makeStyles((theme) => ({
root: {
@ -18,26 +16,50 @@ const useStyles = makeStyles((theme) => ({
},
}));
const CALORIESLEFT = 1234
const MACRONUTRIENTS = [
{
current: 123,
max: 250,
label: 'Carbs',
color: purple[500],
},
{
current: 35,
max: 250,
label: 'Fat',
color: amber[500],
},
{
current: 210,
max: 250,
label: 'Protein',
color: blue[500],
},
]
let i = 1
const TABS = Array.from({ length: 30 }, () => `${i++}`)
const HomePage = () => {
const classes = useStyles()
return (
<Container className={classes.root}>
<Grid xs="12" container spacing={2} justify="center">
<Grid item xs="12" md="6">
<Grid xs={12} container item spacing={2} justify="center">
<Grid item xs={12} md={6}>
<Paper>
<ScrollableTabs tabs={TABS} panels={PANELS} />
<ScrollableTabs tabs={TABS} />
</Paper >
</Grid>
<Grid item xs="12" md="6">
<Grid item xs={12} md={6}>
<DailyStats caloriesLeft={CALORIESLEFT} macronutrients={MACRONUTRIENTS} />
<Paper>
<span>Hello world</span>
</Paper >
<Paper>
<span>Hello world</span>
</Paper >
</Paper>
</Grid>
</Grid>
</Container>

13
src/utils/loadable.js Normal file
View File

@ -0,0 +1,13 @@
import React, { lazy, Suspense } from 'react';
const loadable = (importFunc, { fallback = null } = { fallback: null }) => {
const LazyComponent = lazy(importFunc);
return props => (
<Suspense fallback={fallback}>
<LazyComponent {...props} />
</Suspense>
);
};
export default loadable;

View File

@ -4,7 +4,7 @@ export const theme = createMuiTheme({
palette: {
type: 'dark',
primary: {
main: '#512da8',
main: '#33CC0D',
},
secondary: {
main: '#40c4ff',

275
yarn.lock
View File

@ -1054,14 +1054,6 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
"@fullhuman/postcss-purgecss@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@fullhuman/postcss-purgecss/-/postcss-purgecss-3.0.0.tgz#e39bf7a7d2a2c664ed151b639785b2efcbca33ff"
integrity sha512-cvuOgMwIVlfgWcUMqg5p33NbGUxLwMrKtDKkm3QRfOo4PRVNR6+y/xd9OyXTVZiB1bIpKNJ0ZObYPWD3DRQDtw==
dependencies:
postcss "7.0.32"
purgecss "^3.0.0"
"@hapi/address@2.x.x":
version "2.1.4"
resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
@ -1600,13 +1592,6 @@
"@svgr/plugin-svgo" "^5.4.0"
loader-utils "^2.0.0"
"@tailwindcss/forms@^0.2.1":
version "0.2.1"
resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.2.1.tgz#3244b185854fae1a7cbe8d2456314d8b2d98cf43"
integrity sha512-czfvEdY+J2Ogfd6RUSr/ZSUmDxTujr34M++YLnp2cCPC3oJ4kFvFMaRXA6cEXKw7F1hJuapdjXRjsXIEXGgORg==
dependencies:
mini-svg-data-uri "^1.2.3"
"@testing-library/dom@^7.28.1":
version "7.28.1"
resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.28.1.tgz#dea78be6e1e6db32ddcb29a449e94d9700c79eb9"
@ -2189,16 +2174,7 @@ acorn-jsx@^5.2.0:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
acorn-node@^1.6.1:
version "1.8.2"
resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
dependencies:
acorn "^7.0.0"
acorn-walk "^7.0.0"
xtend "^4.0.2"
acorn-walk@^7.0.0, acorn-walk@^7.1.1:
acorn-walk@^7.1.1:
version "7.2.0"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
@ -2208,7 +2184,7 @@ acorn@^6.4.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
acorn@^7.0.0, acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0:
acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0:
version "7.4.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
@ -2516,18 +2492,6 @@ atob@^2.1.2:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
autoprefixer@^10.0.4:
version "10.0.4"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.0.4.tgz#f87ac6105d7861e31af794b8ebb1c6d4390d3d55"
integrity sha512-hmjYejN/WTyPP9cdNmiwtwqM8/ACVJPD5ExtwoOceQohNbgnFNiwpL2+U4bXS8aXozBL00WvH6WhqbuHf0Fgfg==
dependencies:
browserslist "^4.14.7"
caniuse-lite "^1.0.30001161"
colorette "^1.2.1"
normalize-range "^0.1.2"
num2fraction "^1.2.2"
postcss-value-parser "^4.1.0"
autoprefixer@^9.6.1:
version "9.8.6"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f"
@ -2966,17 +2930,6 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.6.2, browserslist@^4.
escalade "^3.1.0"
node-releases "^1.1.61"
browserslist@^4.14.7:
version "4.14.7"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz#c071c1b3622c1c2e790799a37bb09473a4351cb6"
integrity sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==
dependencies:
caniuse-lite "^1.0.30001157"
colorette "^1.2.1"
electron-to-chromium "^1.3.591"
escalade "^3.1.1"
node-releases "^1.1.66"
bser@2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
@ -3023,7 +2976,7 @@ bytes@3.0.0:
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
bytes@3.1.0, bytes@^3.0.0:
bytes@3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
@ -3119,11 +3072,6 @@ camel-case@^4.1.1:
pascal-case "^3.1.1"
tslib "^1.10.0"
camelcase-css@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
@ -3154,11 +3102,6 @@ caniuse-lite@^1.0.30001125:
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001159.tgz#bebde28f893fa9594dadcaa7d6b8e2aa0299df20"
integrity sha512-w9Ph56jOsS8RL20K9cLND3u/+5WASWdhC/PPrf+V3/HsM3uHOavWOR1Xzakbv4Puo/srmPHudkmCRWM7Aq+/UA==
caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001161:
version "1.0.30001161"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001161.tgz#64f7ffe79ee780b8c92843ff34feb36cea4651e0"
integrity sha512-JharrCDxOqPLBULF9/SPa6yMcBRTjZARJ6sc3cuKrPfyIk64JN6kuMINWqA99Xc8uElMFcROliwtz0n9pYej+g==
capture-exit@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
@ -3426,7 +3369,7 @@ color-string@^1.5.4:
color-name "^1.0.0"
simple-swizzle "^0.2.2"
color@^3.0.0, color@^3.1.3:
color@^3.0.0:
version "3.1.3"
resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e"
integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==
@ -3456,11 +3399,6 @@ commander@^4.1.1:
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
commander@^6.0.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75"
integrity sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==
common-tags@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937"
@ -3815,11 +3753,6 @@ css-tree@1.0.0-alpha.39:
mdn-data "2.0.6"
source-map "^0.6.1"
css-unit-converter@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21"
integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==
css-vendor@^2.0.8:
version "2.0.8"
resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d"
@ -4181,11 +4114,6 @@ define-property@^2.0.2:
is-descriptor "^1.0.2"
isobject "^3.0.1"
defined@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
del@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4"
@ -4240,20 +4168,6 @@ detect-port-alt@1.1.6:
address "^1.0.1"
debug "^2.6.0"
detective@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
dependencies:
acorn-node "^1.6.1"
defined "^1.0.0"
minimist "^1.1.1"
didyoumean@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.1.tgz#e92edfdada6537d484d73c0172fd1eba0c4976ff"
integrity sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=
diff-sequences@^26.5.0:
version "26.5.0"
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.5.0.tgz#ef766cf09d43ed40406611f11c6d8d9dd8b2fefd"
@ -4470,11 +4384,6 @@ electron-to-chromium@^1.3.571:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.583.tgz#47a9fde74740b1205dba96db2e433132964ba3ee"
integrity sha512-L9BwLwJohjZW9mQESI79HRzhicPk1DFgM+8hOCfGgGCFEcA3Otpv7QK6SGtYoZvfQfE3wKLh0Hd5ptqUFv3gvQ==
electron-to-chromium@^1.3.591:
version "1.3.610"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.610.tgz#1254eb394acd220a836ea1f203f8cded4e487052"
integrity sha512-eFDC+yVQpEhtlapk4CYDPfV9ajF9cEof5TBcO49L1ETO+aYogrKWDmYpZyxBScMNe8Bo/gJamH4amQ4yyvXg4g==
elliptic@^6.5.3:
version "6.5.3"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"
@ -4647,7 +4556,7 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3:
d "^1.0.1"
ext "^1.1.2"
escalade@^3.0.2, escalade@^3.1.0, escalade@^3.1.1:
escalade@^3.0.2, escalade@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
@ -5513,7 +5422,7 @@ glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0:
dependencies:
is-glob "^4.0.1"
glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
version "7.1.6"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
@ -5790,11 +5699,6 @@ html-minifier-terser@^5.0.1:
relateurl "^0.2.7"
terser "^4.6.3"
html-tags@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140"
integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==
html-webpack-plugin@4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz#625097650886b97ea5dae331c320e3238f6c121c"
@ -6194,13 +6098,6 @@ is-core-module@^2.0.0:
dependencies:
has "^1.0.3"
is-core-module@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
dependencies:
has "^1.0.3"
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@ -7389,11 +7286,6 @@ lodash.throttle@^4.1.1:
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
lodash.toarray@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561"
integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE=
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
@ -7652,11 +7544,6 @@ mini-css-extract-plugin@0.11.3:
schema-utils "^1.0.0"
webpack-sources "^1.1.0"
mini-svg-data-uri@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.2.3.tgz#e16baa92ad55ddaa1c2c135759129f41910bc39f"
integrity sha512-zd6KCAyXgmq6FV1mR10oKXYtvmA9vRoB6xPSTUJTbFApCtkefDnYueVR1gkof3KcdLZo1Y8mjF2DFmQMIxsHNQ==
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
@ -7759,11 +7646,6 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
modern-normalize@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/modern-normalize/-/modern-normalize-1.0.0.tgz#539d84a1e141338b01b346f3e27396d0ed17601e"
integrity sha512-1lM+BMLGuDfsdwf3rsgBSrxJwAZHFIrQ8YR61xIqdHo0uNKI9M52wNpHSrliZATJp51On6JD0AfRxd4YGSU0lw==
move-concurrently@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
@ -7819,11 +7701,6 @@ nanoid@^3.1.15:
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.15.tgz#28e7c4ce56aff2d0c2d37814c7aef9d6c5b3e6f3"
integrity sha512-n8rXUZ8UU3lV6+43atPrSizqzh25n1/f00Wx1sCiE7R1sSHytZLTTiQl8DjC4IDLOnEZDlgJhy0yO4VsIpMxow==
nanoid@^3.1.18:
version "3.1.18"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.18.tgz#0680db22ab01c372e89209f5d18283d98de3e96d"
integrity sha512-rndlDjbbHbcV3xi+R2fpJ+PbGMdfBxz5v1fATIQFq0DP64FsicQdwnKLy47K4kZHdRpmQXtz24eGsxQqamzYTA==
nanomatch@^1.2.9:
version "1.2.13"
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@ -7881,13 +7758,6 @@ no-case@^3.0.3:
lower-case "^2.0.1"
tslib "^1.10.0"
node-emoji@^1.8.1:
version "1.10.0"
resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da"
integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==
dependencies:
lodash.toarray "^4.4.0"
node-forge@^0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
@ -7949,11 +7819,6 @@ node-releases@^1.1.61:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.64.tgz#71b4ae988e9b1dd7c1ffce58dd9e561752dfebc5"
integrity sha512-Iec8O9166/x2HRMJyLLLWkd0sFFLrFNy+Xf+JQfSQsdBJzPcHpNl3JQ9gD4j+aJxmCa25jNsIbM4bmACtSbkSg==
node-releases@^1.1.66:
version "1.1.67"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12"
integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==
normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@ -8046,11 +7911,6 @@ object-copy@^0.1.0:
define-property "^0.2.5"
kind-of "^3.0.3"
object-hash@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.0.3.tgz#d12db044e03cd2ca3d77c0570d87225b02e1e6ea"
integrity sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==
object-inspect@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
@ -8755,16 +8615,6 @@ postcss-font-variant@^4.0.0:
dependencies:
postcss "^7.0.2"
postcss-functions@^3:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e"
integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=
dependencies:
glob "^7.1.2"
object-assign "^4.1.1"
postcss "^6.0.9"
postcss-value-parser "^3.3.0"
postcss-gap-properties@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715"
@ -8788,14 +8638,6 @@ postcss-initial@^3.0.0:
lodash.template "^4.5.0"
postcss "^7.0.2"
postcss-js@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-3.0.3.tgz#2f0bd370a2e8599d45439f6970403b5873abda33"
integrity sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==
dependencies:
camelcase-css "^2.0.1"
postcss "^8.1.6"
postcss-lab-function@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e"
@ -8932,13 +8774,6 @@ postcss-modules-values@^3.0.0:
icss-utils "^4.0.0"
postcss "^7.0.6"
postcss-nested@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.1.tgz#e7a77f7a806a09c8de0f2c163d8e3d09f00f3139"
integrity sha512-ZHNSAoHrMtbEzjq+Qs4R0gHijpXc6F1YUv4TGmGaz7rtfMvVJBbu5hMOH+CrhEaljQpEmx5N/P8i1pXTkbVAmg==
dependencies:
postcss-selector-parser "^6.0.4"
postcss-nesting@^7.0.0:
version "7.0.1"
resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052"
@ -9188,7 +9023,7 @@ postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4:
indexes-of "^1.0.1"
uniq "^1.0.1"
postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2:
version "6.0.4"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3"
integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==
@ -9217,7 +9052,7 @@ postcss-unique-selectors@^4.0.1:
postcss "^7.0.0"
uniqs "^2.0.0"
postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0:
postcss-value-parser@^3.0.0:
version "3.3.1"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
@ -9245,24 +9080,6 @@ postcss@7.0.21:
source-map "^0.6.1"
supports-color "^6.1.0"
postcss@7.0.32:
version "7.0.32"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d"
integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==
dependencies:
chalk "^2.4.2"
source-map "^0.6.1"
supports-color "^6.1.0"
postcss@^6.0.9:
version "6.0.23"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
dependencies:
chalk "^2.4.1"
source-map "^0.6.1"
supports-color "^5.4.0"
postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6:
version "7.0.35"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24"
@ -9282,16 +9099,6 @@ postcss@^8.1.0:
nanoid "^3.1.15"
source-map "^0.6.1"
postcss@^8.1.10, postcss@^8.1.6:
version "8.1.10"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.10.tgz#129834f94c720554d2cfdaeb27d5542ac4a026ea"
integrity sha512-iBXEV5VTTYaRRdxiFYzTtuv2lGMQBExqkZKSzkJe+Fl6rvQrA/49UVGKqB+LG54hpW/TtDBMGds8j33GFNW7pg==
dependencies:
colorette "^1.2.1"
nanoid "^3.1.18"
source-map "^0.6.1"
vfile-location "^3.2.0"
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@ -9340,11 +9147,6 @@ pretty-format@^26.6.0, pretty-format@^26.6.1:
ansi-styles "^4.0.0"
react-is "^17.0.1"
pretty-hrtime@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@ -9459,16 +9261,6 @@ punycode@^2.1.0, punycode@^2.1.1:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
purgecss@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-3.0.0.tgz#039c191871bb999894222a00c4c8b179fccdb043"
integrity sha512-t3FGCwyX9XWV3ffvnAXTw6Y3Z9kNlcgm14VImNK66xKi5sdqxSA2I0SFYxtmZbAKuIZVckPdazw5iKL/oY/2TA==
dependencies:
commander "^6.0.0"
glob "^7.0.0"
postcss "7.0.32"
postcss-selector-parser "^6.0.2"
q@^1.1.2:
version "1.5.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
@ -9920,14 +9712,6 @@ reduce-css-calc@^1.3.0:
math-expression-evaluator "^1.2.14"
reduce-function-call "^1.0.1"
reduce-css-calc@^2.1.6:
version "2.1.7"
resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.7.tgz#1ace2e02c286d78abcd01fd92bfe8097ab0602c2"
integrity sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA==
dependencies:
css-unit-converter "^1.1.1"
postcss-value-parser "^3.3.0"
reduce-function-call@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f"
@ -10190,14 +9974,6 @@ resolve@1.18.1, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14
is-core-module "^2.0.0"
path-parse "^1.0.6"
resolve@^1.19.0:
version "1.19.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
dependencies:
is-core-module "^2.1.0"
path-parse "^1.0.6"
restore-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
@ -11090,7 +10866,7 @@ stylehacks@^4.0.0:
postcss "^7.0.0"
postcss-selector-parser "^3.0.0"
supports-color@^5.3.0, supports-color@^5.4.0:
supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
@ -11163,32 +10939,6 @@ table@^5.2.3:
slice-ansi "^2.1.0"
string-width "^3.0.0"
tailwindcss@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-2.0.1.tgz#8d336917819341d1018208e8b3ed8cbc46e6b643"
integrity sha512-57G3jdcVBWTPkHCNSAfDAo1Qp2Nkr4H6WnLD0luNFh1td+KwQp9FOVcqj0SYBH6qwVQJawzT+0/zLxzKmyznGw==
dependencies:
"@fullhuman/postcss-purgecss" "^3.0.0"
bytes "^3.0.0"
chalk "^4.1.0"
color "^3.1.3"
detective "^5.2.0"
didyoumean "^1.2.1"
fs-extra "^9.0.1"
html-tags "^3.1.0"
lodash "^4.17.20"
modern-normalize "^1.0.0"
node-emoji "^1.8.1"
object-hash "^2.0.3"
postcss-functions "^3"
postcss-js "^3.0.3"
postcss-nested "^5.0.1"
postcss-selector-parser "^6.0.4"
postcss-value-parser "^4.1.0"
pretty-hrtime "^1.0.3"
reduce-css-calc "^2.1.6"
resolve "^1.19.0"
tapable@^1.0.0, tapable@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
@ -11802,11 +11552,6 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
vfile-location@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c"
integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==
vm-browserify@^1.0.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
@ -12278,7 +12023,7 @@ xmlchars@^2.2.0:
resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1:
xtend@^4.0.0, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==