feat: UI remove tailwind (#259)

* chore: remove tailwind from input file component

* feat: remove tailwind from components

* chore: remove styles from index.tsx

* style: remove tailwind

* style: fix global styles

* style: fix menu-item, nfa-row, skeleton detail nfa

* style: fix mint nfa/ create ap align

* Update ui/src/components/core/color-picker/color-picker.tsx

Co-authored-by: Felipe Mendes <zo.fmendes@gmail.com>

* Update ui/src/components/core/color-picker/color-picker.tsx

Co-authored-by: Felipe Mendes <zo.fmendes@gmail.com>

* Update ui/src/components/core/switch/switch.styles.ts

Co-authored-by: Felipe Mendes <zo.fmendes@gmail.com>

* Update ui/src/index.tsx

Co-authored-by: Felipe Mendes <zo.fmendes@gmail.com>

* Update ui/src/views/mint/nfa-step/verify-step/verify-nfa-step.styles.ts

Co-authored-by: Felipe Mendes <zo.fmendes@gmail.com>

* Update ui/src/theme/globals.ts

Co-authored-by: Felipe Mendes <zo.fmendes@gmail.com>

* style: fix styles for switch

---------

Co-authored-by: Felipe Mendes <zo.fmendes@gmail.com>
This commit is contained in:
Camila Sosa Morales 2023-05-19 11:13:02 -03:00 committed by GitHub
parent 9162a1f92b
commit 07db609798
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 288 additions and 376 deletions

View File

@ -49,7 +49,6 @@
"@types/react": "^18.0.25",
"@types/react-dom": "^18.0.9",
"@vitejs/plugin-react": "2.2.0",
"autoprefixer": "^10.4.13",
"babel-loader": "^8.3.0",
"buffer": "^6.0.3",
"eslint": "^8.28.0",
@ -59,11 +58,9 @@
"eslint-plugin-react": "^7.31.11",
"eslint-plugin-react-hooks": "^4.6.0",
"ethers": "^5.7.2",
"postcss": "^8.4.21",
"prettier": "^2.8.0",
"process": "^0.11.10",
"react-query": "^3.39.2",
"tailwindcss": "^3.2.4",
"ts-loader": "^9.4.1",
"typescript": "^4.9.3",
"vite": "^3.2.4",

View File

@ -3,6 +3,7 @@ import { styled } from '@/theme';
export abstract class CardStyles {
static readonly Container = styled('div', {
width: '$full',
height: 'fit-content',
backgroundColor: '$slate2',
borderRadius: '$xlh',
padding: '$7',

View File

@ -75,6 +75,7 @@ export const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(
minWidth,
fontSize,
borderRadius: isRound ? '$full' : undefined,
padding: 0,
...(rest.css ?? {}),
}}
>

View File

@ -0,0 +1,21 @@
import { Flex } from '@/components';
import { styled } from '@/theme';
export const ColorPickerStyles = {
Container: styled('div', {
position: 'relative',
[`${Flex}`]: {
gap: '$3h',
alignItems: 'center',
},
}),
Input: styled('input', {
position: 'absolute',
right: '4rem',
height: '1.25rem',
}),
Image: styled('img', {
display: 'none',
}),
};

View File

@ -3,7 +3,9 @@
import ColorThief from 'colorthief';
import { useRef } from 'react';
import { Button, Card, Flex, Icon } from '@/components';
import { Button, Card, Flex, Icon, Text } from '@/components';
import { ColorPickerStyles as CS } from './color-picker.styles';
export type ColorPickerProps = {
logoColor: string;
@ -38,9 +40,9 @@ export const ColorPicker: React.FC<ColorPickerProps> = ({
return (
<Card.Text css={{ height: '$22', mt: '$6' }}>
<div className="relative">
<Flex css={{ gap: '$3h', alignItems: 'center' }}>
<span>Primary Color</span>
<CS.Container>
<Flex css={{ gap: '0.0625rem' }}>
<Text>Primary Color</Text>
<Button
leftIcon={
<Icon name="square" css={{ color: `${logoColor || '$black'}` }} />
@ -55,23 +57,22 @@ export const ColorPicker: React.FC<ColorPickerProps> = ({
color: '$slate12',
zIndex: '$docked',
minWidth: '$28',
gap: '0.125rem',
}}
onClick={handleColorPickerClick}
>
{logoColor.toUpperCase() || '#000000'}
</Button>
<input
<CS.Input
ref={inputColorRef}
className="absolute right-16 h-5"
type="color"
value={logoColor}
onChange={handleColorChange}
/>
</Flex>
</div>
</CS.Container>
<img
className="hidden"
<CS.Image
src={logo}
ref={imageRef}
onLoad={handleLogoLoad}

View File

@ -1,14 +1,13 @@
import { Flex } from '@/components/layout';
import { styled } from '@/theme';
export abstract class InputFileStyles {
static readonly Container = styled(Flex, {
export const InputFileStyles = {
Container: styled(Flex, {
alignItems: 'center',
justifyContent: 'center',
cursor: 'pointer',
});
static readonly Border = styled('div', {
}),
Border: styled('div', {
borderStyle: 'solid',
borderColor: '$gray7',
width: '$22',
@ -24,5 +23,14 @@ export abstract class InputFileStyles {
'&[aria-invalid=true], &[data-invalid]': {
borderColor: '$red9',
},
});
}
}),
Image: styled('img', {
position: 'absolute',
width: '3.5rem',
height: '3.5rem',
}),
Input: styled('input', {
all: 'unset',
display: 'none',
}),
};

View File

@ -25,14 +25,13 @@ export const StyledInputFile = forwardRef<HTMLDivElement, InputFileProps>(
<>
<S.Container onClick={handleInputClick}>
{file !== '' ? (
<img className="absolute w-14 h-14" src={file} alt="logo" />
<S.Image src={file} alt="logo" />
) : (
<Icon name="upload" size="md" css={{ position: 'absolute' }} />
)}
<S.Border {...props} ref={ref} />
<input
<S.Input
type="file"
className="hidden"
accept={'.svg'}
ref={inputFileRef}
onChange={handleFileChange}

View File

@ -37,6 +37,10 @@ export const MenuStyles = {
transition: '$all-200',
fontSize: '$sm',
a: {
all: 'unset',
},
'&[data-headlessui-state*="active"]': {
backgroundColor: '$slate2',
color: '$slate12',

View File

@ -0,0 +1,84 @@
import { Switch } from '@headlessui/react';
import { styled } from '@/theme';
export const SwitchStyles = {
Wrapper: styled(Switch, {
position: 'relative',
display: 'inline-flex',
height: '2rem',
width: '4.625rem',
flexShrink: 0,
cursor: 'pointer',
borderRadius: '$full',
borderWidth: '0.125rem',
borderColor: 'transparent',
transitionProperty: 'all',
transitionTimingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',
transitionDuration: '200ms',
'&:focus': {
outline: '0.125rem solid transparent',
outlineOffset: '0.125rem',
},
variants: {
isChecked: {
true: {
backgroundColor: '$green4',
},
false: {
backgroundColor: '$red4',
},
},
},
}),
Text: styled('span', {
position: 'absolute',
top: '25%',
fontSize: '$sm',
variants: {
checked: {
true: {
right: '0.75rem',
color: '$green11',
},
false: {
left: '1rem',
color: '$red11',
},
},
},
}),
Dot: styled('span', {
position: 'absolute',
top: '5px',
left: '5px',
pointerEvents: 'none',
display: 'inline-block',
height: '1.25rem',
width: '1.25rem',
borderRadius: '$full',
transitionProperty: 'all',
transitionTimingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',
transitionDuration: '200ms',
variants: {
checked: {
true: {
backgroundColor: '$green11',
transform: 'translateX(0px)',
},
false: {
backgroundColor: '$red11',
transform: 'translateX(2.625rem)',
},
},
},
}),
};

View File

@ -1,31 +1,21 @@
import { Switch as SwitchComponent } from '@headlessui/react';
import { Switch as SwitchHeadless } from '@headlessui/react';
import React from 'react';
import { SwitchStyles as S } from './switch.styles';
type SwitchProps = {
checked: boolean;
onChange: (checked: boolean) => void;
};
export const Switch: React.FC<SwitchProps> = ({ checked, onChange }) => (
<SwitchComponent
<SwitchHeadless
as={S.Wrapper}
checked={checked}
onChange={onChange}
className={`${checked ? 'bg-green4' : 'bg-red4'}
relative inline-flex h-[32px] w-[74px] shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75`}
isChecked={checked}
>
<span
className={`absolute top-1 ${
checked ? 'right-3 text-green11' : 'text-red11 left-4'
}`}
>
{checked ? 'Yes' : 'No'}
</span>
<span
aria-hidden="true"
className={`${
checked ? 'bg-green11 translate-x-0' : 'bg-red11 translate-x-[2.625rem]'
}
absolute top-1 left-1 pointer-events-none inline-block h-[20px] w-[20px] transform rounded-full shadow-lg ring-0 transition duration-200 ease-in-out`}
/>
</SwitchComponent>
<S.Text checked={checked}>{checked ? 'Yes' : 'No'}</S.Text>
<S.Dot checked={checked} />
</SwitchHeadless>
);

View File

@ -6,6 +6,7 @@ import { Skeleton } from '../layout';
export const NFACardStyles = {
Container: styled(Link, {
all: 'unset',
display: 'flex',
flexDirection: 'column',
minWidth: '12.5rem',

View File

@ -1,4 +1,4 @@
import { Flex } from '@/components';
import { Flex, Text } from '@/components';
import { styled } from '@/theme';
export const StepStyles = {
@ -23,4 +23,7 @@ export const StepStyles = {
justifyContent: 'center',
maxWidth: '$106',
}),
Text: styled(Text, {
fontSize: '$4xl',
}),
};

View File

@ -12,7 +12,7 @@ export const Step: React.FC<StepProps> = ({ children, header }: StepProps) => {
<S.Container>
<S.Indicator>
<Stepper.Indicator />
<h2 className="text-4xl">{header}</h2>
<S.Text>{header}</S.Text>
</S.Indicator>
{children}
</S.Container>

View File

@ -4,26 +4,26 @@ import { keyframes, styled } from '@/theme';
import { Icon, IconButton } from '../core';
import { Flex } from '../layout';
import { IconStyles } from '../core/icon/icon.styles';
export abstract class ToastStyles {
static readonly Provider = ToastLib.Provider;
const KeyFrames = {
hide: keyframes({
'0%': { opacity: 1 },
'100%': { opacity: 0 },
}),
show: keyframes({
'0%': { opacity: 0 },
'100%': { opacity: 1 },
}),
};
static readonly DismissTimeout = 200;
export const ViewportPadding = '$md';
export const DismissTimeout = 200;
static readonly ViewportPadding = '$md';
export const ToastStyles = {
Provider: ToastLib.Provider,
static readonly KeyFrames = {
hide: keyframes({
'0%': { opacity: 1 },
'100%': { opacity: 0 },
}),
show: keyframes({
'0%': { opacity: 0 },
'100%': { opacity: 1 },
}),
};
static readonly Root = styled(ToastLib.Root, {
Root: styled(ToastLib.Root, {
padding: '$4 $5',
borderRadius: '$lg',
borderWidth: '$default',
@ -46,23 +46,20 @@ export abstract class ToastStyles {
'@media (prefers-reduced-motion: no-preference)': {
'&[data-state="open"]': {
animation: `${this.KeyFrames.show} 750ms `,
animation: `${KeyFrames.show} 750ms `,
},
'&[data-state="closed"]': {
animation: `${this.KeyFrames.hide} ${this.DismissTimeout}ms ease-in`,
animation: `${KeyFrames.hide} ${DismissTimeout}ms ease-in`,
},
},
});
static readonly Body = styled(ToastLib.Description, {
}),
Body: styled(ToastLib.Description, {
fontSize: '$md',
fontWeight: '$normal',
mr: '$5',
});
static readonly Close = styled(ToastLib.Close, {});
static readonly CloseButton = styled(IconButton, {
}),
Close: ToastLib.Close,
CloseButton: styled(IconButton, {
variants: {
colorScheme: {
error: {
@ -73,11 +70,10 @@ export abstract class ToastStyles {
},
},
},
});
static readonly Viewport = styled(ToastLib.Viewport, {
padding: '$14',
}),
Viewport: styled(ToastLib.Viewport, {
py: '$14',
listStyleType: 'none',
position: 'fixed',
bottom: 0,
left: '50%',
@ -86,17 +82,16 @@ export abstract class ToastStyles {
flexDirection: 'column',
gap: '$4',
zIndex: '$toast',
});
static readonly Layout = styled(Flex, {
minWidth: '250px',
}),
Layout: styled(Flex, {
flexDirection: 'row',
justifyContent: 'space-between',
});
static readonly Icon = styled(Icon, {
fontSize: '$5',
alignItems: 'center',
}),
Icon: styled(Icon, {
fontSize: '1.25rem',
marginRight: '$2h',
});
static readonly Content = styled(Flex, {});
}
}),
Content: styled(Flex),
};

View File

@ -8,7 +8,7 @@ import {
} from '@/store';
import { Icon } from '../core';
import { ToastStyles } from './toast.styles';
import { DismissTimeout, ToastStyles } from './toast.styles';
type ToastProps = ToastsState.Toast;
@ -29,7 +29,7 @@ const Toast: React.FC<ToastProps> = ({
if (onDismiss) onDismiss();
setTimeout(() => {
dispatch(toastsActions.dismiss(id));
}, ToastStyles.DismissTimeout);
}, DismissTimeout);
}
},
[onDismiss, dispatch, id]
@ -54,6 +54,7 @@ const Toast: React.FC<ToastProps> = ({
variant="link"
icon={<Icon name="close" />}
onClick={onDismiss}
css={{ p: '0' }}
/>
</ToastStyles.Close>
</ToastStyles.Layout>

View File

@ -1,4 +1,3 @@
import './styles.css';
import React from 'react';
import ReactDOM from 'react-dom/client';

View File

@ -1,3 +0,0 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

View File

@ -1,4 +1,3 @@
//TODO: maybe we can use tailwind for this
export const shadows = {
none: '0 0 #0000',
inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',

View File

@ -1,18 +1,25 @@
import { globalCss } from '@stitches/react';
export const themeGlobals = globalCss({
'html, body, #root': {
'html, body': {
height: '100%',
padding: 0,
//TODO add theme colors
color: '#ECEDEE',
backgroundColor: 'black',
fontFamily: 'Manrope',
fontSize: '16px',
'@media (max-width: 850px)': {
fontSize: '13px',
},
},
'*': {
margin: '0',
padding: '0',
border: '0',
boxSizing: 'border-box',
},
});

View File

@ -52,7 +52,7 @@ const createDripStitches = <
};
const { createTheme, ...otherStitches } = createStitches({
prefix: prefix || ('drip' as string),
prefix: prefix || ('nfa' as string),
media: {
...libMedia,
...(media || {}),

View File

@ -26,7 +26,7 @@ import { useAccessPointFormContext } from './create-ap.form.context';
export const SelectedNFA: React.FC = () => {
const { nfa } = CreateAccessPoint.useContext();
if (!nfa.logo) return null;
return (
<RowData
leftIcon={

View File

@ -0,0 +1,16 @@
import { Flex } from '@/components';
import { styled } from '@/theme';
export const CreateApStyles = {
Container: styled(Flex, {
height: '100%',
flexDirection: 'column',
minHeight: '85vh',
alignItems: 'flex-start',
'@md': {
alignItems: 'center',
justifyContent: 'center',
},
}),
};

View File

@ -1,28 +1,20 @@
import { Flex } from '@/components';
import {
CreateAccessPointFormProvider,
useAccessPointFormContextInit,
} from './ap-form-step/create-ap.form.context';
import { CreateAccessPoint } from './create-ap.context';
import { CreateApStepper } from './create-ap.stepper';
import { CreateApStyles as S } from './create-ap.styles';
export const CreateAP: React.FC = () => {
const context = useAccessPointFormContextInit();
return (
<Flex
css={{
height: '100%',
flexDirection: 'column',
justifyContent: 'center',
alignItems: 'center',
}}
>
<S.Container>
<CreateAccessPoint.Provider>
<CreateAccessPointFormProvider value={context}>
<CreateApStepper />
</CreateAccessPointFormProvider>
</CreateAccessPoint.Provider>
</Flex>
</S.Container>
);
};

View File

@ -1,4 +1,6 @@
import { Flex, ResolvedAddress } from '@/components';
import { useState } from 'react';
import { Flex, ResolvedAddress, Switch } from '@/components';
import { ColorPickerTest } from './color-picker';
import { ComboboxTest } from './combobox-test';
@ -6,9 +8,11 @@ import { SpinnerTest } from './spinner-test';
import { ToastTest } from './toast-test';
export const ComponentsTest: React.FC = () => {
const [checked, setChecked] = useState(false);
return (
<Flex css={{ flexDirection: 'column' }}>
<SpinnerTest />
<Switch checked={checked} onChange={setChecked} />
<ResolvedAddress css={{ alignSelf: 'center' }}>
{'0x7ed735b7095c05d78df169f991f2b7f1a1f1a049a'}
</ResolvedAddress>

View File

@ -11,6 +11,7 @@ export abstract class ExploreHeaderStyles {
static readonly Text = styled('h2', {
fontSize: '$4xl',
maxWidth: '46rem',
fontWeight: 400,
});
static readonly GrayText = styled('span', {

View File

@ -30,8 +30,7 @@ export const NFARow: React.FC<NFARowProps> = ({ token }: NFARowProps) => {
<NFAPreview
css={{
borderRadius: '$lg',
borderWidth: '1px',
borderColor: `#${parseNumberToHexColor(token.color)}`,
border: `1px solid #${parseNumberToHexColor(token.color)}`,
}}
size="4rem"
name={token.name}

View File

@ -29,7 +29,8 @@ const AccessPoint: React.FC<AccessPointProps> = ({
return (
<S.Main.AccessPoint.Grid>
<S.Main.AccessPoint.Thumbnail>
<img src={Rectangle1} />
{/* TODO remove for real image */}
<img src={Rectangle1} style={{ width: '7rem' }} />
</S.Main.AccessPoint.Thumbnail>
<S.Main.AccessPoint.Data.Container>
<S.Main.AccessPoint.Title>{name}</S.Main.AccessPoint.Title>

View File

@ -3,9 +3,9 @@ import { SkeletonAccessPointsListFragment } from './main/skeleton.ap-list';
export const IndexedNFASkeletonFragment: React.FC = () => (
<S.Grid css={{ justifyItems: 'normal' }}>
<S.Aside.Container>
<S.Skeleton css={{ aspectRatio: 1, width: '100%' }} />
</S.Aside.Container>
<S.Skeleton
css={{ aspectRatio: 1, width: '20rem', justifySelf: 'center' }}
/>
<S.Main.Container css={{ justifyContent: 'stretch' }}>
<S.Skeleton css={{ height: '2.875rem' }} />
<SkeletonAccessPointsListFragment />

View File

@ -6,7 +6,7 @@ import { useGithubStore } from '@/store';
import { Mint } from '@/views/mint/mint.context';
import { GithubRepositorySelectionStyles as S } from './github-repository-selection.styles';
import { RepositoriesList } from './repositories-list';
import { RepositoriesListFragment } from './repositories-list';
import { UserOrgsCombobox } from './users-orgs-combobox';
export const Loading: React.FC = () => (
@ -68,7 +68,7 @@ export const GithubRepositoryConnection: React.FC = () => {
queryUserAndOrganizations === 'loading' ? (
<Loading />
) : (
<RepositoriesList searchValue={searchValue} />
<RepositoriesListFragment searchValue={searchValue} />
)}
</S.Container>
</S.Card.Body>

View File

@ -0,0 +1 @@
export * from './repositories-list.fragment';

View File

@ -1,16 +1,16 @@
import { useEffect, useMemo } from 'react';
import { Flex } from '@/components';
import { githubActions, useAppDispatch, useGithubStore } from '@/store';
import { Mint } from '@/views/mint/mint.context';
import { RepositoiresListStyles as S } from './repositories-list.styles';
import { Repository } from './repository';
type RepositoriesListProps = {
searchValue: string;
};
export const RepositoriesList: React.FC<RepositoriesListProps> = ({
export const RepositoriesListFragment: React.FC<RepositoriesListProps> = ({
searchValue,
}: RepositoriesListProps) => {
const { selectedUserOrg } = Mint.useContext();
@ -37,15 +37,7 @@ export const RepositoriesList: React.FC<RepositoriesListProps> = ({
}
return (
<Flex
css={{
height: '$60',
overflowX: 'hidden',
overflowY: 'scroll',
flexDirection: 'column',
pr: '$3h',
}}
>
<S.Container>
{filteredRepositories.length > 0 ? (
filteredRepositories.map((repo, index, { length }) => (
<Repository
@ -57,12 +49,8 @@ export const RepositoriesList: React.FC<RepositoriesListProps> = ({
))
) : (
// TODO: update this after designs are done
<div
className={`relative cursor-default select-none pt-2 px-3.5 pb-4 text-slate11 text-center`}
>
Nothing found.
</div>
<S.Message>Nothing found.</S.Message>
)}
</Flex>
</S.Container>
);
};

View File

@ -0,0 +1,20 @@
import { Flex } from '@/components';
import { styled } from '@/theme';
export const RepositoiresListStyles = {
Container: styled(Flex, {
height: '$60',
overflowX: 'hidden',
overflowY: 'scroll',
flexDirection: 'column',
pr: '$3h',
}),
Message: styled('div', {
position: 'relative',
cursor: 'default',
userSelect: 'none',
p: '$2 $3h $4 $3h',
color: '$slate11',
textAlign: 'center',
}),
};

View File

@ -5,16 +5,11 @@ export const MintStyles = {
Container: styled(Flex, {
height: '100%',
justifyContent: 'center',
minHeight: '85vh',
alignItems: 'flex-start',
'@md': {
//to align on center
position: 'absolute',
top: '50%',
transform: 'translateY(-50%)',
},
'@lg': {
flexDirection: 'row',
alignItems: 'center',
},
}),
};

View File

@ -10,6 +10,7 @@ export const VerifyNfaStepStyles = {
Text: styled(Text, {
color: '$slate11',
fontSize: '$sm',
lineHeight: '1.25rem',
}),
VerifyContainer: styled(Card.Text, {
p: '$4',

View File

@ -29,7 +29,7 @@ export const NftCard: React.FC<NftCardProps> = ({
onClick,
isLoading,
}: NftCardProps) => {
const size = '26.5rem';
const size = '100%';
const {
form: {
appName: {
@ -48,7 +48,15 @@ export const NftCard: React.FC<NftCardProps> = ({
} = useMintFormContext();
return (
<CustomCardContainer css={{ p: '$0' }}>
<CustomCardContainer
css={{
p: '$0',
display: 'flex',
flexDirection: 'column',
padding: 0,
overflow: 'hidden',
}}
>
<NFAPreview
color={logoColor}
logo={appLogo}

View File

@ -1,42 +0,0 @@
/* eslint-disable no-undef */
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ['./src/**/*.tsx'],
safelist: [
{
pattern: /(bg|border|text)-(slate)(4|11|12)/,
},
{
pattern: /w-(0|[1-9][0-9]?|100)/,
},
],
theme: {
extend: {
colors: {
//TODO if we're gonna have ligth mode we should add also the light colors cause tailwind doesn't have them
slate4: 'rgba(38, 41, 43, 1)',
slate5: 'rgba(43, 47, 49, 1)',
slate6: 'rgba(49, 53, 56, 1)',
slate7: 'rgba(58, 63, 66, 1)',
slate11: 'rgba(155, 161, 166, 1)',
slate12: 'rgba(236, 237, 238, 1)',
green4: 'rgba(17, 49, 35, 1)',
green11: 'rgba(76, 195, 138, 1)',
red4: 'rgba(72, 26, 29, 1)',
red9: 'rgba(229, 72, 77, 1)',
red11: 'rgba(255, 99, 105, 1)',
},
borderRadius: {
xhl: '1.25rem',
},
maxWidth: {
70: '70%',
},
space: {
'1h': '0.375rem',
},
},
},
plugins: [],
};

View File

@ -4037,30 +4037,11 @@ acorn-jsx@^5.3.2:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn-node@^1.8.2:
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:
version "7.2.0"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
acorn-walk@^8.1.1:
version "8.2.0"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
acorn@^7.0.0:
version "7.4.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
acorn@^8.4.1, acorn@^8.8.0:
version "8.8.2"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
@ -4190,11 +4171,6 @@ arg@^4.1.0:
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
arg@^5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
argparse@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
@ -4310,18 +4286,6 @@ auto-bind@~4.0.0:
resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb"
integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==
autoprefixer@^10.4.13:
version "10.4.13"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8"
integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==
dependencies:
browserslist "^4.21.4"
caniuse-lite "^1.0.30001426"
fraction.js "^4.2.0"
normalize-range "^0.1.2"
picocolors "^1.0.0"
postcss-value-parser "^4.2.0"
available-typed-arrays@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
@ -4655,7 +4619,7 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5:
browserslist@^4.21.3, browserslist@^4.21.5:
version "4.21.5"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7"
integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==
@ -4781,11 +4745,6 @@ camel-case@4.1.2, camel-case@^4.1.2:
pascal-case "^3.1.2"
tslib "^2.0.3"
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.0.0:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
@ -4801,7 +4760,7 @@ camelize@^1.0.0:
resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3"
integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==
caniuse-lite@^1.0.30001426, caniuse-lite@^1.0.30001449:
caniuse-lite@^1.0.30001449:
version "1.0.30001462"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz#b2e801e37536d453731286857c8520d3dcee15fe"
integrity sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw==
@ -4905,7 +4864,7 @@ check-error@^1.0.2:
resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==
chokidar@3.5.3, chokidar@^3.5.3:
chokidar@3.5.3:
version "3.5.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
@ -5003,7 +4962,7 @@ color-name@1.1.3:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
color-name@^1.1.4, color-name@~1.1.4:
color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
@ -5198,11 +5157,6 @@ css-to-react-native@^3.0.0:
css-color-keywords "^1.0.0"
postcss-value-parser "^4.0.2"
cssesc@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
csstype@^3.0.2:
version "3.1.1"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9"
@ -5304,11 +5258,6 @@ define-properties@^1.1.3, define-properties@^1.1.4:
has-property-descriptors "^1.0.0"
object-keys "^1.1.1"
defined@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf"
integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==
delay@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d"
@ -5357,20 +5306,6 @@ detect-node@^2.0.4, detect-node@^2.1.0:
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
detective@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034"
integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==
dependencies:
acorn-node "^1.8.2"
defined "^1.0.0"
minimist "^1.2.6"
didyoumean@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037"
integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
diff-sequences@^29.4.3:
version "29.4.3"
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2"
@ -5407,11 +5342,6 @@ dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
dlv@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
dnscache@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/dnscache/-/dnscache-1.0.2.tgz#fd3c24d66c141625f594c77be7a8dafee2a66c8a"
@ -6128,7 +6058,7 @@ fast-diff@^1.1.2:
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
fast-glob@^3.2.12, fast-glob@^3.2.9:
fast-glob@^3.2.9:
version "3.2.12"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"
integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
@ -6367,11 +6297,6 @@ formik@^2.2.9:
tiny-warning "^1.0.2"
tslib "^1.10.0"
fraction.js@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
framer-motion@^6.3.11:
version "6.5.1"
resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-6.5.1.tgz#802448a16a6eb764124bf36d8cbdfa6dd6b931a7"
@ -7390,11 +7315,6 @@ lie@3.1.1:
dependencies:
immediate "~3.0.5"
lilconfig@^2.0.5, lilconfig@^2.0.6:
version "2.1.0"
resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
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"
@ -7630,7 +7550,7 @@ meros@^1.2.1:
resolved "https://registry.yarnpkg.com/meros/-/meros-1.2.1.tgz#056f7a76e8571d0aaf3c7afcbe7eb6407ff7329e"
integrity sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==
micromatch@^4.0.0, micromatch@^4.0.4, micromatch@^4.0.5:
micromatch@^4.0.0, micromatch@^4.0.4:
version "4.0.5"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
@ -7900,11 +7820,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
normalize-range@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
nullthrows@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
@ -7920,11 +7835,6 @@ object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
object-hash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
object-inspect@1.10.3:
version "1.10.3"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369"
@ -8261,11 +8171,6 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.0, picomatc
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
pify@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
@ -8345,51 +8250,12 @@ popmotion@11.0.3:
style-value-types "5.0.0"
tslib "^2.1.0"
postcss-import@^14.1.0:
version "14.1.0"
resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0"
integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==
dependencies:
postcss-value-parser "^4.0.0"
read-cache "^1.0.0"
resolve "^1.1.7"
postcss-js@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2"
integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==
dependencies:
camelcase-css "^2.0.1"
postcss-load-config@^3.1.4:
version "3.1.4"
resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855"
integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
dependencies:
lilconfig "^2.0.5"
yaml "^1.10.2"
postcss-nested@6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.0.tgz#1572f1984736578f360cffc7eb7dca69e30d1735"
integrity sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==
dependencies:
postcss-selector-parser "^6.0.10"
postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11:
version "6.0.11"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc"
integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==
dependencies:
cssesc "^3.0.0"
util-deprecate "^1.0.2"
postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.2.0:
postcss-value-parser@^4.0.2:
version "4.2.0"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@^8.0.9, postcss@^8.4.18, postcss@^8.4.21:
postcss@^8.4.18:
version "8.4.21"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4"
integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==
@ -8620,11 +8486,6 @@ quick-format-unescaped@^4.0.3:
resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7"
integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==
quick-lru@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@ -8736,13 +8597,6 @@ react@^18.2.0:
dependencies:
loose-envify "^1.1.0"
read-cache@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
dependencies:
pify "^2.3.0"
readable-stream@^3.1.1, readable-stream@^3.5.0, readable-stream@^3.6.0:
version "3.6.1"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.1.tgz#f9f9b5f536920253b3d26e7660e7da4ccff9bb62"
@ -8886,7 +8740,7 @@ resolve-from@^4.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
resolve@^1.1.7, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.22.1:
resolve@^1.14.2, resolve@^1.17.0, resolve@^1.22.1:
version "1.22.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
@ -9374,35 +9228,6 @@ symbol-observable@^4.0.0:
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205"
integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==
tailwindcss@^3.2.4:
version "3.2.7"
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.7.tgz#5936dd08c250b05180f0944500c01dce19188c07"
integrity sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==
dependencies:
arg "^5.0.2"
chokidar "^3.5.3"
color-name "^1.1.4"
detective "^5.2.1"
didyoumean "^1.2.2"
dlv "^1.1.3"
fast-glob "^3.2.12"
glob-parent "^6.0.2"
is-glob "^4.0.3"
lilconfig "^2.0.6"
micromatch "^4.0.5"
normalize-path "^3.0.0"
object-hash "^3.0.0"
picocolors "^1.0.0"
postcss "^8.0.9"
postcss-import "^14.1.0"
postcss-js "^4.0.0"
postcss-load-config "^3.1.4"
postcss-nested "6.0.0"
postcss-selector-parser "^6.0.11"
postcss-value-parser "^4.2.0"
quick-lru "^5.1.1"
resolve "^1.22.1"
tapable@^2.2.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
@ -9763,7 +9588,7 @@ utf8@^3.0.0:
resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1"
integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==
util-deprecate@^1.0.1, util-deprecate@^1.0.2:
util-deprecate@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
@ -10052,11 +9877,6 @@ yallist@^4.0.0:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
yaml@^1.10.2:
version "1.10.2"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
yargs-parser@20.2.4:
version "20.2.4"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"