diff --git a/package.json b/package.json index 974fad4..bcd8618 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,11 @@ "devDependencies": { "@types/node": "^18.7.13", "@types/react": "^18.0.17", + "autoprefixer": "^10.4.8", "eslint": "8.23.0", "eslint-config-next": "12.2.5", + "postcss": "^8.4.16", + "tailwindcss": "^3.1.8", "typescript": "^4.8.2" } } diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/src/Models.ts b/src/Models.ts new file mode 100644 index 0000000..8d88954 --- /dev/null +++ b/src/Models.ts @@ -0,0 +1,22 @@ +export const enum Category { + Gin = "Gin", Vodka = "Vodka", Brandy = "Brandy", Cachaca ="Cachaça" +} + +export interface Brand{ + id: number; + name: string; + fullName: string; + logo: any; + description: string; + location: string; + categories: Category[]; +} + +export interface Product{ + id: number; + name: string; + fullName: string; + price: number; + image: any; + category: Category; +} diff --git a/src/api/brands.ts b/src/api/brands.ts new file mode 100644 index 0000000..55dc89c --- /dev/null +++ b/src/api/brands.ts @@ -0,0 +1,35 @@ +import { Brand, Category } from "src/Models"; +import baldorianLogo from "../assets/images/Brands/baldoriaLogo.png"; +import novoFogoLogo from "../assets/images/Brands/novoFogo.png"; + +const baldoria = { + id: 1, + name: "Baldoria", + fullName: "Baldoria Vermounth", + logo: baldorianLogo, + description: "Badoria rosso is a red vermouth that balances fresh, herby bitter notes against. Kiss My Rhubarb takes its origins from an old handwritten recipe from co-creators Niels’ and Wouters’ rebellious grandparents.", + location: "London, United Kindom", + categories: [Category.Gin, Category.Vodka], +} +const novoFogo = { + id: 2, + name: "novoFogo", + fullName: "Novo Fogo", + logo: novoFogoLogo, + description: "100%-organic, zero-waste cachaças from the Brazilian rainforest that are made with the best ingredients and the best quality.", + location: "Morretes, Brazil", + categories: [Category.Cachaca], +} + +function getBrandByName(name: string): Brand{ + if(name == "novoFogo"){ + return novoFogo + }else{ + return baldoria + } +} +function getAllBrands(): Brand[]{ + return [baldoria, novoFogo] +} + +export default {getBrandByName, getAllBrands} \ No newline at end of file diff --git a/src/api/products.ts b/src/api/products.ts new file mode 100644 index 0000000..828a8c8 --- /dev/null +++ b/src/api/products.ts @@ -0,0 +1,182 @@ +// This is a fake api for testing purposes + +//Import Baldoria images +import branneri from "../assets/images/Products/branneri.jpg"; +import gaston from "../assets/images/Products/gaston.jpg"; +import silentPool from "../assets/images/Products/silentPool.jpg"; +import umami from "../assets/images/Products/umami.jpg"; +import { Category, Product } from "src/Models"; + +// Import novoFogo images +import chameleon from "../assets/images/Products/chameleon1.jpg"; +import tanager from "../assets/images/Products/tanager1.jpg"; +import barrelAged from "../assets/images/Products/barrelAged1.jpg"; +import silver from "../assets/images/Products/silver1.jpg"; + + +const baldoriaProducts = + [ + { + id: 1, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: umami, + }, { + id: 2, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: silentPool, + }, { + id: 3, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: branneri, + }, { + id: 4, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: gaston, + }, + // second + { + id: 5, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: umami, + }, { + id: 6, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: silentPool, + }, { + id: 7, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: branneri, + }, { + id: 8, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: gaston, + }, + // third + { + id: 9, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: umami, + }, { + id: 10, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: silentPool, + }, { + id: 11, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: branneri, + }, { + id: 12, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: gaston, + }, + // fourth + { + id: 13, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: umami, + }, { + id: 14, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: silentPool, + }, { + id: 15, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: branneri, + }, { + id: 16, + name: "gaston", + fullName: "MR GASTON", + price: 32, + category: Category.Brandy, + image: gaston, + } + ] +const novoFogoProducts =[ + { + id: 1, + name: "chameleon", + fullName: "Chameleon", + price: 41, + category: Category.Cachaca, + image: chameleon, + }, + { + id: 2, + name: "tanager", + fullName: "Tanager", + price: 49, + category: Category.Cachaca, + image: tanager, + }, + { + id: 3, + name: "barrelAged", + fullName: "Barrel-Aged", + price: 48, + category: Category.Cachaca, + image: barrelAged, + }, + { + id: 4, + name: "silver", + fullName: "Silver", + price: 36, + category: Category.Cachaca, + image: silver, + }, +] + +function getProductsByBrand(name: string): Product[] { + if(name == "novoFogo"){ + return novoFogoProducts + }else{ + return baldoriaProducts + } +} + +export default { getProductsByBrand } \ No newline at end of file diff --git a/src/assets/icons/addIcon.tsx b/src/assets/icons/addIcon.tsx new file mode 100644 index 0000000..5cbce8b --- /dev/null +++ b/src/assets/icons/addIcon.tsx @@ -0,0 +1,7 @@ +export default function AddIcon() { + return + + + + +} \ No newline at end of file diff --git a/src/assets/icons/basketIcon.tsx b/src/assets/icons/basketIcon.tsx new file mode 100644 index 0000000..59cf32b --- /dev/null +++ b/src/assets/icons/basketIcon.tsx @@ -0,0 +1,9 @@ +export default function BasketIcon() { + return( + + + + + + ) +} \ No newline at end of file diff --git a/src/assets/icons/categoriesIcon.tsx b/src/assets/icons/categoriesIcon.tsx new file mode 100644 index 0000000..b6224b7 --- /dev/null +++ b/src/assets/icons/categoriesIcon.tsx @@ -0,0 +1,8 @@ +export default function CategoriesIcon() { + return + + + + + +} \ No newline at end of file diff --git a/src/assets/icons/contacts/facebook.tsx b/src/assets/icons/contacts/facebook.tsx new file mode 100644 index 0000000..e2336a2 --- /dev/null +++ b/src/assets/icons/contacts/facebook.tsx @@ -0,0 +1,6 @@ +export default function AddIcon() { + return + + + +} \ No newline at end of file diff --git a/src/assets/icons/contacts/instagram.tsx b/src/assets/icons/contacts/instagram.tsx new file mode 100644 index 0000000..26cbc22 --- /dev/null +++ b/src/assets/icons/contacts/instagram.tsx @@ -0,0 +1,5 @@ +export default function AddIcon() { + return + + +} \ No newline at end of file diff --git a/src/assets/icons/contacts/linkedin.tsx b/src/assets/icons/contacts/linkedin.tsx new file mode 100644 index 0000000..43d508a --- /dev/null +++ b/src/assets/icons/contacts/linkedin.tsx @@ -0,0 +1,13 @@ +export default function AddIcon() { + return + + + + + + + + + + +} \ No newline at end of file diff --git a/src/assets/icons/contacts/medium.tsx b/src/assets/icons/contacts/medium.tsx new file mode 100644 index 0000000..c7965e8 --- /dev/null +++ b/src/assets/icons/contacts/medium.tsx @@ -0,0 +1,12 @@ +export default function AddIcon() { + return + + + + + + + + + +} \ No newline at end of file diff --git a/src/assets/icons/locationIcon.tsx b/src/assets/icons/locationIcon.tsx new file mode 100644 index 0000000..a03946b --- /dev/null +++ b/src/assets/icons/locationIcon.tsx @@ -0,0 +1,7 @@ +export default function LocationIcon() { + return ( + + + + ) +} diff --git a/src/assets/icons/profileIcon.tsx b/src/assets/icons/profileIcon.tsx new file mode 100644 index 0000000..f73d274 --- /dev/null +++ b/src/assets/icons/profileIcon.tsx @@ -0,0 +1,7 @@ +export default function ProfileIcon() { + return + + + + +} \ No newline at end of file diff --git a/src/assets/images/Brands/baldoriaLogo.png b/src/assets/images/Brands/baldoriaLogo.png new file mode 100644 index 0000000..1137d73 Binary files /dev/null and b/src/assets/images/Brands/baldoriaLogo.png differ diff --git a/src/assets/images/Brands/novoFogo.png b/src/assets/images/Brands/novoFogo.png new file mode 100644 index 0000000..f76fe19 Binary files /dev/null and b/src/assets/images/Brands/novoFogo.png differ diff --git a/src/assets/images/Products/barrelAged1.jpg b/src/assets/images/Products/barrelAged1.jpg new file mode 100644 index 0000000..5fbf010 Binary files /dev/null and b/src/assets/images/Products/barrelAged1.jpg differ diff --git a/src/assets/images/Products/branneri.jpg b/src/assets/images/Products/branneri.jpg new file mode 100644 index 0000000..624901f Binary files /dev/null and b/src/assets/images/Products/branneri.jpg differ diff --git a/src/assets/images/Products/chameleon1.jpg b/src/assets/images/Products/chameleon1.jpg new file mode 100644 index 0000000..02276e1 Binary files /dev/null and b/src/assets/images/Products/chameleon1.jpg differ diff --git a/src/assets/images/Products/gaston.jpg b/src/assets/images/Products/gaston.jpg new file mode 100644 index 0000000..24912da Binary files /dev/null and b/src/assets/images/Products/gaston.jpg differ diff --git a/src/assets/images/Products/silentPool.jpg b/src/assets/images/Products/silentPool.jpg new file mode 100644 index 0000000..7905fb6 Binary files /dev/null and b/src/assets/images/Products/silentPool.jpg differ diff --git a/src/assets/images/Products/silver1.jpg b/src/assets/images/Products/silver1.jpg new file mode 100644 index 0000000..c933198 Binary files /dev/null and b/src/assets/images/Products/silver1.jpg differ diff --git a/src/assets/images/Products/tanager1.jpg b/src/assets/images/Products/tanager1.jpg new file mode 100644 index 0000000..d107881 Binary files /dev/null and b/src/assets/images/Products/tanager1.jpg differ diff --git a/src/assets/images/Products/umami.jpg b/src/assets/images/Products/umami.jpg new file mode 100644 index 0000000..f2c81de Binary files /dev/null and b/src/assets/images/Products/umami.jpg differ diff --git a/src/assets/logo.tsx b/src/assets/logo.tsx new file mode 100644 index 0000000..5557044 --- /dev/null +++ b/src/assets/logo.tsx @@ -0,0 +1,11 @@ +export default function Logo() { + return ( + + + + + + + ) + +} \ No newline at end of file diff --git a/src/assets/logoAlt.tsx b/src/assets/logoAlt.tsx new file mode 100644 index 0000000..04f0012 --- /dev/null +++ b/src/assets/logoAlt.tsx @@ -0,0 +1,11 @@ +export default function Logo() { + return ( + + + + + + + + ) +} \ No newline at end of file diff --git a/src/components/BrandInfo.tsx b/src/components/BrandInfo.tsx new file mode 100644 index 0000000..1752e23 --- /dev/null +++ b/src/components/BrandInfo.tsx @@ -0,0 +1,54 @@ +import { Brand, Category } from "src/Models"; +import Image from 'next/image'; +import brandApi from '../api/brands'; + +import LocationIcon from "../assets/icons/locationIcon"; +import CategoriesIcon from "../assets/icons/categoriesIcon"; + +import styles from "../styles/BrandInfo.module.css"; + +interface BrandProps { + name: string; +} + +export default function BrandComponent(props: BrandProps) { + + //simulation of api call + let brandData: Brand | null = brandApi.getBrandByName(props.name); + + if(brandData != null) { + return ( +
+ + {/* Brand Logo */} +
Brand Logo
+ + {/* Brand Details */} +
+

{brandData?.fullName}

+

{brandData?.description}

+ +
+
+ +
+ Location +

{brandData?.location}

+
+
+
+ +
+ Product Categories + + {/* Categorist list */} + {brandData?.categories.map((category: Category) => { + return
{category}
+ })} +
+
+
+ )}else { + return
+ } +} \ No newline at end of file diff --git a/src/components/BrandProducts.tsx b/src/components/BrandProducts.tsx new file mode 100644 index 0000000..39c8c47 --- /dev/null +++ b/src/components/BrandProducts.tsx @@ -0,0 +1,29 @@ +import Image from "next/image"; +import { Product } from "src/Models"; +import styles from "../styles/BrandProducts.module.css"; +import productsApi from "../api/products"; +import AddIcon from "../assets/icons/addIcon"; + +interface ProductsProps { + brandName: string; +} + +function ProductCard(product: Product) { + return (
+
Product Image
+

MR GASTON

€{product.price}
+

{product.category}

+
) +} + +export default function Products(props: ProductsProps) { + + //Simulation of a call to the fake api + let products = productsApi.getProductsByBrand(props.brandName); + + return
+ {products?.map((product: Product) => { + return ProductCard(product); + })} +
+} \ No newline at end of file diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx new file mode 100644 index 0000000..ce7f55f --- /dev/null +++ b/src/components/Footer.tsx @@ -0,0 +1,53 @@ +import Logo from "../assets/logoAlt"; +import styles from "../styles/Footer.module.css"; +import MediumIcon from "../assets/icons/contacts/medium"; +import FacebookIcon from "../assets/icons/contacts/facebook"; +import InstagramIcon from "../assets/icons/contacts/instagram"; +import Linkedin from "../assets/icons/contacts/linkedin"; + +export default function Footer() { + return( + +)} \ No newline at end of file diff --git a/src/components/NavBar.tsx b/src/components/NavBar.tsx new file mode 100644 index 0000000..067d52e --- /dev/null +++ b/src/components/NavBar.tsx @@ -0,0 +1,36 @@ +import Logo from "../assets/logo"; +import ProfileIcon from "../assets/icons/profileIcon"; +import BasketIcon from "../assets/icons/basketIcon"; +import Link from 'next/link' + + +import styles from "../styles/NavBar.module.css"; + +export default function NavBar() { + return ( +
+ +
+
+ ); +} \ No newline at end of file diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index f740d02..303a4a4 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,7 +1,15 @@ +import Footer from "@components/Footer"; +import NavBar from "@components/NavBar"; import "../styles/globals.css"; function MyApp({ Component, pageProps }: any) { - return ; + return ( +
+ + +
+
+ ); } export default MyApp; diff --git a/src/pages/brand/[name]/index.tsx b/src/pages/brand/[name]/index.tsx new file mode 100644 index 0000000..9afae39 --- /dev/null +++ b/src/pages/brand/[name]/index.tsx @@ -0,0 +1,18 @@ +import { useRouter } from 'next/router' +import BrandInfo from "@components/BrandInfo"; +import Products from "@components/BrandProducts"; +import styles from "../../../styles/Home.module.css"; + +export default function Brand() { + const router = useRouter() + const name = router.query.name as string + return ( +
+
+ +
+
+ +
+
) +} \ No newline at end of file diff --git a/src/pages/brand/index.tsx b/src/pages/brand/index.tsx new file mode 100644 index 0000000..615284c --- /dev/null +++ b/src/pages/brand/index.tsx @@ -0,0 +1,30 @@ +import { Brand } from "src/Models"; +import Link from 'next/link' +import styles from '../../styles/BrandPage.module.css' +import brands from "../../api/brands"; +import Image from "next/image"; + +function BrandCard(brand: Brand) { + return ( +
+
brand Image
+

{brand.fullName}

+
) +} + +export default function BrandIndex() { + + const brandsList: Brand[] = brands.getAllBrands(); + + return ( +
+

Choose your favorite brand to see its products

+
+ {brandsList.map((brand) => { + return
{BrandCard(brand)}
; + })} +
+
+ + ); +} \ No newline at end of file diff --git a/src/pages/index.tsx b/src/pages/index.tsx index dbeaec2..53d74fc 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,25 +1,18 @@ import Head from "next/head"; + import styles from "../styles/Home.module.css"; export default function Home() { return ( -
+
Lexir Frontend Assessment! -
-

- Welcome to Lexir Frontend Assessment! -

- -

- Get started by editing{" "} - pages/index.tsx -

-
+

Welcome! click on brands to discover our partners

+
); } diff --git a/src/styles/BrandInfo.module.css b/src/styles/BrandInfo.module.css new file mode 100644 index 0000000..6e06b38 --- /dev/null +++ b/src/styles/BrandInfo.module.css @@ -0,0 +1,42 @@ +.lato{ + font-family: 'Lato', sans-serif; +} + +.brandName{ + font-family: source-serif-pro, serif; + font-weight: 700; + font-style: bold; + font-size: 35px; +} +.brandDescription{ + font-weight: 400; + font-size: 18px; + line-height: 25px; + color: #2D2D2D; +} + +.btnReadMore{ + font-weight: 700; + font-size: 20px; + line-height: 25px; + color: #1C8C64 +} + +.location{ + font-size: 16px; + line-height: 25px; + color: black; +} +.locationInfo{ + font-size: 22px; + line-height: 35px; + color: #595959; +} +.categories{ + font-size: 16px; + line-height: 25px; + color: black; +} +.category{ + background-color: #F9F9F9; +} \ No newline at end of file diff --git a/src/styles/BrandPage.module.css b/src/styles/BrandPage.module.css new file mode 100644 index 0000000..d118770 --- /dev/null +++ b/src/styles/BrandPage.module.css @@ -0,0 +1,4 @@ +.title{ + text-align: center; + font-size: 35px; +} \ No newline at end of file diff --git a/src/styles/BrandProducts.module.css b/src/styles/BrandProducts.module.css new file mode 100644 index 0000000..9d345ec --- /dev/null +++ b/src/styles/BrandProducts.module.css @@ -0,0 +1,21 @@ +.lato{ + font-family: 'Lato', sans-serif; + font-style: normal; +} +.bgCardColor{ + background-color: #F2F2F2; +} +.productName{ + font-size: 14px; + line-height: 25px; + color: #2D2D2D; +} +.price{ + color:#6B6B6B +} +.category{ + color: #8F8F8F; +} +.addButon{ + background-color: #F2F2F2 +} \ No newline at end of file diff --git a/src/styles/Footer.module.css b/src/styles/Footer.module.css new file mode 100644 index 0000000..c1ea7af --- /dev/null +++ b/src/styles/Footer.module.css @@ -0,0 +1,17 @@ +.footer{ + color: #fff; + background-color: #2D2D2D; +} + +.sectionName{ + text-transform: uppercase; + color: #8F8F8F +} +.hr{ + border: none; + height: 1px; + background-color: #8F8F8F; /* Modern Browsers */ +} +.copyRight{ + color: #8F8F8F; +} \ No newline at end of file diff --git a/src/styles/Home.module.css b/src/styles/Home.module.css index 708cbed..530a766 100644 --- a/src/styles/Home.module.css +++ b/src/styles/Home.module.css @@ -6,10 +6,6 @@ min-height: 100vh; padding: 4rem 0; flex: 1; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; } .title a { color: #0070f3; @@ -39,6 +35,17 @@ font-size: 1.5rem; } +.intro{ + display: flex; + justify-content: center; + align-items: center; + margin: auto; + height: 70vh; + font-size: 40px; + padding: auto 4rem; + text-align: center; +} + @media (max-width: 600px) { .grid { width: 100%; diff --git a/src/styles/NavBar.module.css b/src/styles/NavBar.module.css new file mode 100644 index 0000000..b5cc96f --- /dev/null +++ b/src/styles/NavBar.module.css @@ -0,0 +1,34 @@ +.navList{ + font-family: 'Lato', sans-serif; + font-weight: 500; + font-size: 14px; + line-height: 20px; + color: #2D2D2D; +} + +.navList li{ + display: flex; + align-items: center; + gap: 0.5rem; +} + +.hamburguer{ + display: inline-block; + width: 3rem; + margin: auto 0; +} +.line{ + margin: 0.4rem; + height: 3px; + max-width: 1.8rem; + background-color: black; + display: block; + border-radius: 5px; +} + + +@media screen and (min-width: 768px){ + .hamburguer{ + display: none; + } +} \ No newline at end of file diff --git a/src/styles/globals.css b/src/styles/globals.css index 4f18421..153be44 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -1,9 +1,14 @@ +/* Font Import from adobe*/ +/* I created a project with the fonts needed*/ +@import url("https://use.typekit.net/fqn1otf.css"); + html, body { + max-width: 1440px; padding: 0; - margin: 0; + margin: 0 auto; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, - Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; + Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Lato sans-serif; } a { @@ -15,6 +20,35 @@ a { box-sizing: border-box; } +main{ + display: flex; + margin-top: 2rem; +} +article{ + width: 80%; +} +section{ + width: 100%; + margin-bottom: 5rem; +} +@media (min-width: 768px) { + article{ + width: 65%; + } + section{ + width: 100%; + } +} +@media (min-width: 914px) { + article{ + width: 36%; + } + section{ + width: 70%; + } +} + + @media (prefers-color-scheme: dark) { html { color-scheme: dark; @@ -24,3 +58,8 @@ a { background: black; } } + + +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..ca7fc1c --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,11 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + "./src/pages/**/*.{js,ts,jsx,tsx}", + "./src/components/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: {}, + }, + plugins: [], +} diff --git a/yarn.lock b/yarn.lock index c4457fb..1d1104d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -244,6 +244,25 @@ 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@^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.8.0: version "8.8.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" @@ -271,6 +290,19 @@ ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +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" @@ -325,6 +357,18 @@ ast-types-flow@^0.0.7: resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== +autoprefixer@^10.4.8: + version "10.4.8" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.8.tgz#92c7a0199e1cfb2ad5d9427bd585a3d75895b9e5" + integrity sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw== + dependencies: + browserslist "^4.21.3" + caniuse-lite "^1.0.30001373" + fraction.js "^4.2.0" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + axe-core@^4.4.3: version "4.4.3" resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" @@ -340,6 +384,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -348,13 +397,23 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.2: +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" +browserslist@^4.21.3: + version "4.21.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" + integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== + dependencies: + caniuse-lite "^1.0.30001370" + electron-to-chromium "^1.4.202" + node-releases "^2.0.6" + update-browserslist-db "^1.0.5" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -368,7 +427,12 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -caniuse-lite@^1.0.30001332: +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== + +caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001370, caniuse-lite@^1.0.30001373: version "1.0.30001384" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001384.tgz#029527c2d781a3cfef13fa63b3a78a6088e35973" integrity sha512-BBWt57kqWbc0GYZXb47wTXpmAgqr5LSibPzNjk/AWMdmJMQhLqOl3c/Kd4OAU/tu4NLfYkMx8Tlq3RVBkOBolQ== @@ -381,6 +445,21 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -388,7 +467,7 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -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== @@ -412,6 +491,11 @@ cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" +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.0" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" @@ -456,6 +540,25 @@ 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.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== + +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== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -463,6 +566,11 @@ 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== + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -477,6 +585,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +electron-to-chromium@^1.4.202: + version "1.4.234" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.234.tgz#ff8fb29c2edac74ef3935ca03a2ecbe62ede400b" + integrity sha512-VqlJ4Ihd9F7eQIfwEtf7C0eZZDl6bQtpez8vx8VHN9iCZEzePZjr7n9OGFHSav4WN9zfLa2CFLowj0siBoc0hQ== + emoji-regex@^9.2.2: version "9.2.2" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" @@ -527,6 +640,11 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + 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" @@ -744,7 +862,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.9: +fast-glob@^3.2.11, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== @@ -807,11 +925,21 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +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== + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -854,14 +982,14 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" -glob-parent@^5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1: +glob-parent@^6.0.1, glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -999,6 +1127,13 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-boolean-object@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" @@ -1031,7 +1166,7 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -1153,6 +1288,11 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +lilconfig@^2.0.5, lilconfig@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" + integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== + locate-path@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" @@ -1255,11 +1395,31 @@ next@12.2.5: "@next/swc-win32-ia32-msvc" "12.2.5" "@next/swc-win32-x64-msvc" "12.2.5" +node-releases@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "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== + object-assign@^4.1.1: version "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.12.0, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" @@ -1385,11 +1545,60 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" 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== + +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.0" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00" + integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ== + 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@5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" + integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== + dependencies: + postcss-selector-parser "^6.0.6" + +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6: + version "6.0.10" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: + 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.4.14: version "8.4.14" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" @@ -1399,6 +1608,15 @@ postcss@8.4.14: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.14, postcss@^8.4.16: + version "8.4.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" + integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -1423,6 +1641,11 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +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== + react-dom@18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" @@ -1443,6 +1666,20 @@ 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" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + regenerator-runtime@^0.13.4: version "0.13.9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" @@ -1467,7 +1704,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.20.0, resolve@^1.22.0: +resolve@^1.1.7, resolve@^1.20.0, resolve@^1.22.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== @@ -1620,6 +1857,34 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +tailwindcss@^3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.8.tgz#4f8520550d67a835d32f2f4021580f9fddb7b741" + integrity sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g== + 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.11" + glob-parent "^6.0.2" + is-glob "^4.0.3" + lilconfig "^2.0.6" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.14" + postcss-import "^14.1.0" + postcss-js "^4.0.0" + postcss-load-config "^3.1.4" + postcss-nested "5.0.6" + postcss-selector-parser "^6.0.10" + postcss-value-parser "^4.2.0" + quick-lru "^5.1.1" + resolve "^1.22.1" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -1686,6 +1951,14 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +update-browserslist-db@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" + integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -1698,6 +1971,11 @@ use-sync-external-store@1.2.0: resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== +util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -1726,11 +2004,21 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +xtend@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + yallist@^4.0.0: version "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== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"