diff --git a/README.md b/README.md index 0c9c998..29e7a45 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,28 @@ # Boiler Plate React App with TypeScript and SWC -An Ejected Create React App with the purpose of configuring it with SWC. It's wip.\ -TODO: Convert remaining babel to swc. +An Ejected Create React App configured to compile with SWC -It has: -- SWC - Speedy Web Compiler hacks to an ejected create react app -- TypeScript +- SWC Speedy Web Compiler hacks to an ejected create react app - React -- MobX -- Sass +- TypeScript +- React Router 6 +- Tailwindcss - Awesome Tailwindcss with version 6 configuration +- mdx - Markdown for the component era. Components rendered in the markdown. Tailwindcss utility class batteries included. +- MobX - One mean state machine - Yup and @types/yup included. -- Tailwind appeared after ejecting. - +- Sass batteries included + +## Stuff done, stuff to do +- [x] build and hot reloading tested +- [x] frontmatter loader added +- [x] configured tailwindcss support +- [ ] add support for @swc/jest +- [ ] sort out tailwindcss nesting issue +- [ ] sort out gfm +- [ ] clean up janky experiment code (Progress over perfection) +- [ ] clean up directory structure + +## BAGS and daydreams +- Webassembly wasm ## Available Scripts In the project directory, you can run: diff --git a/config/webpack.config.js b/config/webpack.config.js index 82b5490..6327457 100644 --- a/config/webpack.config.js +++ b/config/webpack.config.js @@ -457,6 +457,8 @@ module.exports = function (webpackEnv) { customize: require.resolve( "babel-preset-react-app/webpack-overrides" ), + // NOTE: https://swc.rs/docs/configuration/compilation#jsctransformreactrefresh // 18.06.2022 - AH. + // --- start --- // presets: [ // [ // require.resolve('babel-preset-react-app'), @@ -465,12 +467,13 @@ module.exports = function (webpackEnv) { // }, // ], // ], - // plugins: [ // isEnvDevelopment && // shouldUseReactRefresh && - // require.resolve('react-refresh/babel'), + // require.resolve("react-refresh/babel"), // ].filter(Boolean), + //--- end --- + // This is a feature of `babel-loader` for webpack (not Babel itself). // It enables caching results in ./node_modules/.cache/babel-loader/ // directory for faster rebuilds. @@ -484,11 +487,15 @@ module.exports = function (webpackEnv) { // Unlike the application JS, we only compile the standard ES features. { test: /\.(js|mjs)$/, + //TODO: Regex replacement for @babel/runtime. Does this meet swc direct replacement ? + // 18.06.2022 - AH. exclude: /@babel(?:\/|\\{1,2})runtime/, loader: require.resolve("swc-loader"), options: { swcrc: true, configFile: true, + // NOTE: Below does not work with swc-loader - 18.06.2022 - AH. + // --- start --- // compact: false, // presets: [ // [ @@ -496,6 +503,7 @@ module.exports = function (webpackEnv) { // { helpers: true }, // ], // ], + // --- end --- cacheDirectory: true, // See #6846 for context on why cacheCompression is disabled cacheCompression: false, @@ -753,9 +761,10 @@ module.exports = function (webpackEnv) { // as micromatch doesn't match // '../cra-template-typescript/template/src/App.tsx' // otherwise. + // Added mdx - 18/06/2022 AH include: [ - { file: "../**/src/**/*.{ts,tsx}" }, - { file: "**/src/**/*.{ts,tsx}" }, + { file: "../**/src/**/*.{ts,tsx,mdx}" }, + { file: "**/src/**/*.{ts,tsx,mdx}" }, ], exclude: [ { file: "**/src/**/__tests__/**" }, @@ -771,6 +780,7 @@ module.exports = function (webpackEnv) { !disableESLintPlugin && new ESLintPlugin({ // Plugin options + // Bookmark: Add linting mdx - 18/06/2022 AH extensions: ["js", "mjs", "jsx", "ts", "tsx"], formatter: require.resolve("react-dev-utils/eslintFormatter"), eslintPath: require.resolve("eslint"), diff --git a/config/webpack/lib/frontmatterLoader.js b/config/webpack/lib/frontmatterLoader.js index af8b225..1140879 100644 --- a/config/webpack/lib/frontmatterLoader.js +++ b/config/webpack/lib/frontmatterLoader.js @@ -9,7 +9,7 @@ module.exports = async function (src) { const { content, data } = matter(src); const compiledGfm = await compile( remarkGfm(content, { singleTilde: true }), - ); + ); //TODO: Experiment does not work. remark-gfm is not working. const newContent = await compile(remark(compiledGfm)); // Two plugins, first w/ options. @@ -17,8 +17,4 @@ module.exports = async function (src) { // ${content}`; const code = `export const frontMatter = ${stringifyObject(data)} ${newContent}`; return callback(null, code); -};; -// Investigate -// programatically checkiif a package is loaded -// https://stackoverflow.com/questions/60454251/how-to-know-the-version-of-currently-installed-package-from-yarn-lock -// yarn list --pattern lodash --depth=0 --json --non-interactive --no-progress | jq -r '.data.trees[].name' +}; diff --git a/package.json b/package.json index d5f5db8..f935d46 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,22 @@ { "name": "achtungswc", - "description": "React with SWC and other things", - "version": "0.1.0", + "description": "React with SWC and other things", + "version": "0.1.1", "license": "MIT", "keywords": [ - "react", - "typescript", "swc", "speedy web compiler", - "boilerplate" + "react", + "typescript", + "tailwindcss", + "mobx", + "mdx", + "react-router", + "starter" ], "dependencies": { "@mdx-js/loader": "^2.1.1", + "@mdx-js/mdx": "^2.1.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", "@svgr/webpack": "^5.5.0", "@testing-library/jest-dom": "^5.14.1", @@ -27,7 +32,7 @@ "browserslist": "^4.18.1", "camelcase": "^6.2.1", "case-sensitive-paths-webpack-plugin": "^2.4.0", - "classnames": "^2.3.1", + "clsx": "^1.1.1", "css-loader": "^6.5.1", "css-minimizer-webpack-plugin": "^3.2.0", "dotenv": "^10.0.0", @@ -46,7 +51,6 @@ "mini-css-extract-plugin": "^2.4.5", "mobx": "^6.6.0", "mobx-react": "^7.5.0", - "postcss": "^8.4.4", "postcss-flexbugs-fixes": "^5.0.2", "postcss-loader": "^6.2.1", "postcss-normalize": "^10.0.1", @@ -57,8 +61,10 @@ "react-dev-utils": "^12.0.1", "react-dom": "^18.1.0", "react-refresh": "^0.11.0", + "react-router-dom": "6", "remark-frontmatter": "^4.0.1", "remark-gfm": "^3.0.1", + "remark-mdx": "^2.1.2", "resolve": "^1.20.0", "resolve-url-loader": "^4.0.0", "sass": "^1.52.3", @@ -66,7 +72,6 @@ "semver": "^7.3.5", "source-map-loader": "^3.0.0", "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", "terser-webpack-plugin": "^5.2.5", "typescript": "^4.4.2", "web-vitals": "^2.1.0", @@ -99,6 +104,19 @@ "last 1 safari version" ] }, + "devDependencies": { + "@swc/core": "^1.2.198", + "@tailwindcss/aspect-ratio": "^0.4.0", + "@tailwindcss/forms": "^0.5.2", + "@tailwindcss/line-clamp": "^0.4.0", + "@tailwindcss/nesting": "^0.0.0-insiders.565cd3e", + "@tailwindcss/typography": "^0.5.2", + "autoprefixer": "^10.4.7", + "postcss": "^8.4.14", + "postcss-nesting": "^10.1.8", + "swc-loader": "^0.2.3", + "tailwindcss": "^3.1.3" + }, "jest": { "roots": [ "/src" @@ -154,9 +172,5 @@ "presets": [ "react-app" ] - }, - "devDependencies": { - "@swc/core": "^1.2.198", - "swc-loader": "^0.2.3" } } diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..f32f11b --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,13 @@ +module.exports = { + plugins: { + "postcss-import": {}, + "tailwindcss/nesting": "postcss-nesting", + "postcss-focus-visible": {}, + "postcss-preset-env": { + features: { "nesting-rules": true }, + }, + autoprefixer: {}, + tailwindcss: {}, + ...(process.env.NODE_ENV === "production" ? { cssnano: {} } : {}), + }, +}; diff --git a/src/App.module.scss b/src/App.module.css similarity index 93% rename from src/App.module.scss rename to src/App.module.css index e768a44..492f52d 100644 --- a/src/App.module.scss +++ b/src/App.module.css @@ -1,8 +1,7 @@ +/* add nested css to App */ + .App { text-align: center; - &List { - list-style-type: none; - } } .App-logo { diff --git a/src/App.tsx b/src/App.tsx index c83a26e..6211381 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,7 +1,8 @@ import * as React from 'react'; import Main from './md/main.mdx'; import logo from './logo.svg'; -import styles from './App.module.scss'; +import styles from './App.module.css'; +import clsx from 'clsx'; function App() { console.log('App'); // Console log stripped out with .swcrc config @@ -11,19 +12,12 @@ function App() { logo - - Learn React and other stuff -
diff --git a/src/index.scss b/src/index.css similarity index 85% rename from src/index.scss rename to src/index.css index ec2585e..17df0e7 100644 --- a/src/index.scss +++ b/src/index.css @@ -1,3 +1,7 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', diff --git a/src/index.tsx b/src/index.tsx index 21cda0a..dcd6511 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import * as ReactDOM from 'react-dom/client'; -import './index.scss'; +import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; diff --git a/src/md/main.mdx b/src/md/main.mdx index 9dad56f..dbc481b 100644 --- a/src/md/main.mdx +++ b/src/md/main.mdx @@ -1,44 +1,36 @@ --- -title: Hello -slug: home +title: Hello front matter +slug: Hello slug matter --- -

Hello world!

-strike +export const HelloWorld = () => ( + <> + + Hello World + + + Hello World + + +) + + + +

Hello h1

+gone +
Style me mdx tomato style
-

This is JSX

+ ``` + style={{ padding: '20px', backgroundColor: 'tomato' }} + ```
-export const Thing = () => - +export const Thing = () => + + ```javascript + export const Thing = () => + ``` # Hello, -# GFM - -## Autolink literals - -www.example.com, https://example.com, and contact@example.com. - -## Footnote - -A note[^1] - -[^1]: Big note. - -## Strikethrough - -~one~ or ~~two~~ tildes. - -## Table -- ^stuff^ - -| a | b | c | d | -| - | :- | -: | :-: | - -## Tasklist - -* [ ] to do -* [x] done - ```javascript const a = 1; const b = 2; @@ -46,4 +38,10 @@ const c = a + b; console.log('Hello world!') ``` -https://rubberduckdebugging.com/ \ No newline at end of file +export const CircleBlendThing = () => ( +
+
Blend Blue and
+
Pink in mdx
+
) + + \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..f7cc205 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,969 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ["./src/**/*.{js,jsx,ts,tsx,md,mdx}"], + darkMode: "media", // or 'class' + theme: { + screens: { + sm: "640px", + md: "768px", + lg: "1024px", + xl: "1280px", + "2xl": "1536px", + }, + colors: ({ colors }) => ({ + inherit: colors.inherit, + current: colors.current, + transparent: colors.transparent, + black: colors.black, + white: colors.white, + slate: colors.slate, + gray: colors.gray, + zinc: colors.zinc, + neutral: colors.neutral, + stone: colors.stone, + red: colors.red, + orange: colors.orange, + amber: colors.amber, + yellow: colors.yellow, + lime: colors.lime, + green: colors.green, + emerald: colors.emerald, + teal: colors.teal, + cyan: colors.cyan, + sky: colors.sky, + blue: colors.blue, + indigo: colors.indigo, + violet: colors.violet, + purple: colors.purple, + fuchsia: colors.fuchsia, + pink: colors.pink, + rose: colors.rose, + }), + columns: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + "3xs": "16rem", + "2xs": "18rem", + xs: "20rem", + sm: "24rem", + md: "28rem", + lg: "32rem", + xl: "36rem", + "2xl": "42rem", + "3xl": "48rem", + "4xl": "56rem", + "5xl": "64rem", + "6xl": "72rem", + "7xl": "80rem", + }, + spacing: { + px: "1px", + 0: "0px", + 0.5: "0.125rem", + 1: "0.25rem", + 1.5: "0.375rem", + 2: "0.5rem", + 2.5: "0.625rem", + 3: "0.75rem", + 3.5: "0.875rem", + 4: "1rem", + 5: "1.25rem", + 6: "1.5rem", + 7: "1.75rem", + 8: "2rem", + 9: "2.25rem", + 10: "2.5rem", + 11: "2.75rem", + 12: "3rem", + 14: "3.5rem", + 16: "4rem", + 20: "5rem", + 24: "6rem", + 28: "7rem", + 32: "8rem", + 36: "9rem", + 40: "10rem", + 44: "11rem", + 48: "12rem", + 52: "13rem", + 56: "14rem", + 60: "15rem", + 64: "16rem", + 72: "18rem", + 80: "20rem", + 96: "24rem", + }, + animation: { + none: "none", + spin: "spin 1s linear infinite", + ping: "ping 1s cubic-bezier(0, 0, 0.2, 1) infinite", + pulse: "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite", + bounce: "bounce 1s infinite", + }, + aspectRatio: { + auto: "auto", + square: "1 / 1", + video: "16 / 9", + }, + backdropBlur: ({ theme }) => theme("blur"), + backdropBrightness: ({ theme }) => theme("brightness"), + backdropContrast: ({ theme }) => theme("contrast"), + backdropGrayscale: ({ theme }) => theme("grayscale"), + backdropHueRotate: ({ theme }) => theme("hueRotate"), + backdropInvert: ({ theme }) => theme("invert"), + backdropOpacity: ({ theme }) => theme("opacity"), + backdropSaturate: ({ theme }) => theme("saturate"), + backdropSepia: ({ theme }) => theme("sepia"), + backgroundColor: ({ theme }) => theme("colors"), + backgroundImage: { + none: "none", + "gradient-to-t": "linear-gradient(to top, var(--tw-gradient-stops))", + "gradient-to-tr": + "linear-gradient(to top right, var(--tw-gradient-stops))", + "gradient-to-r": "linear-gradient(to right, var(--tw-gradient-stops))", + "gradient-to-br": + "linear-gradient(to bottom right, var(--tw-gradient-stops))", + "gradient-to-b": "linear-gradient(to bottom, var(--tw-gradient-stops))", + "gradient-to-bl": + "linear-gradient(to bottom left, var(--tw-gradient-stops))", + "gradient-to-l": "linear-gradient(to left, var(--tw-gradient-stops))", + "gradient-to-tl": + "linear-gradient(to top left, var(--tw-gradient-stops))", + }, + backgroundOpacity: ({ theme }) => theme("opacity"), + backgroundPosition: { + bottom: "bottom", + center: "center", + left: "left", + "left-bottom": "left bottom", + "left-top": "left top", + right: "right", + "right-bottom": "right bottom", + "right-top": "right top", + top: "top", + }, + backgroundSize: { + auto: "auto", + cover: "cover", + contain: "contain", + }, + blur: { + 0: "0", + none: "0", + sm: "4px", + DEFAULT: "8px", + md: "12px", + lg: "16px", + xl: "24px", + "2xl": "40px", + "3xl": "64px", + }, + brightness: { + 0: "0", + 50: ".5", + 75: ".75", + 90: ".9", + 95: ".95", + 100: "1", + 105: "1.05", + 110: "1.1", + 125: "1.25", + 150: "1.5", + 200: "2", + }, + borderColor: ({ theme }) => ({ + ...theme("colors"), + DEFAULT: theme("colors.gray.200", "currentColor"), + }), + borderOpacity: ({ theme }) => theme("opacity"), + borderRadius: { + none: "0px", + sm: "0.125rem", + DEFAULT: "0.25rem", + md: "0.375rem", + lg: "0.5rem", + xl: "0.75rem", + "2xl": "1rem", + "3xl": "1.5rem", + full: "9999px", + }, + borderSpacing: ({ theme }) => ({ + ...theme("spacing"), + }), + borderWidth: { + DEFAULT: "1px", + 0: "0px", + 2: "2px", + 4: "4px", + 8: "8px", + }, + boxShadow: { + sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)", + DEFAULT: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)", + md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)", + lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)", + xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)", + "2xl": "0 25px 50px -12px rgb(0 0 0 / 0.25)", + inner: "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)", + none: "none", + }, + boxShadowColor: ({ theme }) => theme("colors"), + caretColor: ({ theme }) => theme("colors"), + accentColor: ({ theme }) => ({ + ...theme("colors"), + auto: "auto", + }), + contrast: { + 0: "0", + 50: ".5", + 75: ".75", + 100: "1", + 125: "1.25", + 150: "1.5", + 200: "2", + }, + container: {}, + content: { + none: "none", + }, + cursor: { + auto: "auto", + default: "default", + pointer: "pointer", + wait: "wait", + text: "text", + move: "move", + help: "help", + "not-allowed": "not-allowed", + none: "none", + "context-menu": "context-menu", + progress: "progress", + cell: "cell", + crosshair: "crosshair", + "vertical-text": "vertical-text", + alias: "alias", + copy: "copy", + "no-drop": "no-drop", + grab: "grab", + grabbing: "grabbing", + "all-scroll": "all-scroll", + "col-resize": "col-resize", + "row-resize": "row-resize", + "n-resize": "n-resize", + "e-resize": "e-resize", + "s-resize": "s-resize", + "w-resize": "w-resize", + "ne-resize": "ne-resize", + "nw-resize": "nw-resize", + "se-resize": "se-resize", + "sw-resize": "sw-resize", + "ew-resize": "ew-resize", + "ns-resize": "ns-resize", + "nesw-resize": "nesw-resize", + "nwse-resize": "nwse-resize", + "zoom-in": "zoom-in", + "zoom-out": "zoom-out", + }, + divideColor: ({ theme }) => theme("borderColor"), + divideOpacity: ({ theme }) => theme("borderOpacity"), + divideWidth: ({ theme }) => theme("borderWidth"), + dropShadow: { + sm: "0 1px 1px rgb(0 0 0 / 0.05)", + DEFAULT: ["0 1px 2px rgb(0 0 0 / 0.1)", "0 1px 1px rgb(0 0 0 / 0.06)"], + md: ["0 4px 3px rgb(0 0 0 / 0.07)", "0 2px 2px rgb(0 0 0 / 0.06)"], + lg: ["0 10px 8px rgb(0 0 0 / 0.04)", "0 4px 3px rgb(0 0 0 / 0.1)"], + xl: ["0 20px 13px rgb(0 0 0 / 0.03)", "0 8px 5px rgb(0 0 0 / 0.08)"], + "2xl": "0 25px 25px rgb(0 0 0 / 0.15)", + none: "0 0 #0000", + }, + fill: ({ theme }) => theme("colors"), + grayscale: { + 0: "0", + DEFAULT: "100%", + }, + hueRotate: { + 0: "0deg", + 15: "15deg", + 30: "30deg", + 60: "60deg", + 90: "90deg", + 180: "180deg", + }, + invert: { + 0: "0", + DEFAULT: "100%", + }, + flex: { + 1: "1 1 0%", + auto: "1 1 auto", + initial: "0 1 auto", + none: "none", + }, + flexBasis: ({ theme }) => ({ + auto: "auto", + ...theme("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + "1/5": "20%", + "2/5": "40%", + "3/5": "60%", + "4/5": "80%", + "1/6": "16.666667%", + "2/6": "33.333333%", + "3/6": "50%", + "4/6": "66.666667%", + "5/6": "83.333333%", + "1/12": "8.333333%", + "2/12": "16.666667%", + "3/12": "25%", + "4/12": "33.333333%", + "5/12": "41.666667%", + "6/12": "50%", + "7/12": "58.333333%", + "8/12": "66.666667%", + "9/12": "75%", + "10/12": "83.333333%", + "11/12": "91.666667%", + full: "100%", + }), + flexGrow: { + 0: "0", + DEFAULT: "1", + }, + flexShrink: { + 0: "0", + DEFAULT: "1", + }, + fontFamily: { + sans: [ + "ui-sans-serif", + "system-ui", + "-apple-system", + "BlinkMacSystemFont", + '"Segoe UI"', + "Roboto", + '"Helvetica Neue"', + "Arial", + '"Noto Sans"', + "sans-serif", + '"Apple Color Emoji"', + '"Segoe UI Emoji"', + '"Segoe UI Symbol"', + '"Noto Color Emoji"', + ], + serif: [ + "ui-serif", + "Georgia", + "Cambria", + '"Times New Roman"', + "Times", + "serif", + ], + mono: [ + "ui-monospace", + "SFMono-Regular", + "Menlo", + "Monaco", + "Consolas", + '"Liberation Mono"', + '"Courier New"', + "monospace", + ], + }, + fontSize: { + xs: ["0.75rem", { lineHeight: "1rem" }], + sm: ["0.875rem", { lineHeight: "1.25rem" }], + base: ["1rem", { lineHeight: "1.5rem" }], + lg: ["1.125rem", { lineHeight: "1.75rem" }], + xl: ["1.25rem", { lineHeight: "1.75rem" }], + "2xl": ["1.5rem", { lineHeight: "2rem" }], + "3xl": ["1.875rem", { lineHeight: "2.25rem" }], + "4xl": ["2.25rem", { lineHeight: "2.5rem" }], + "5xl": ["3rem", { lineHeight: "1" }], + "6xl": ["3.75rem", { lineHeight: "1" }], + "7xl": ["4.5rem", { lineHeight: "1" }], + "8xl": ["6rem", { lineHeight: "1" }], + "9xl": ["8rem", { lineHeight: "1" }], + }, + fontWeight: { + thin: "100", + extralight: "200", + light: "300", + normal: "400", + medium: "500", + semibold: "600", + bold: "700", + extrabold: "800", + black: "900", + }, + gap: ({ theme }) => theme("spacing"), + gradientColorStops: ({ theme }) => theme("colors"), + gridAutoColumns: { + auto: "auto", + min: "min-content", + max: "max-content", + fr: "minmax(0, 1fr)", + }, + gridAutoRows: { + auto: "auto", + min: "min-content", + max: "max-content", + fr: "minmax(0, 1fr)", + }, + gridColumn: { + auto: "auto", + "span-1": "span 1 / span 1", + "span-2": "span 2 / span 2", + "span-3": "span 3 / span 3", + "span-4": "span 4 / span 4", + "span-5": "span 5 / span 5", + "span-6": "span 6 / span 6", + "span-7": "span 7 / span 7", + "span-8": "span 8 / span 8", + "span-9": "span 9 / span 9", + "span-10": "span 10 / span 10", + "span-11": "span 11 / span 11", + "span-12": "span 12 / span 12", + "span-full": "1 / -1", + }, + gridColumnEnd: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + 13: "13", + }, + gridColumnStart: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + 13: "13", + }, + gridRow: { + auto: "auto", + "span-1": "span 1 / span 1", + "span-2": "span 2 / span 2", + "span-3": "span 3 / span 3", + "span-4": "span 4 / span 4", + "span-5": "span 5 / span 5", + "span-6": "span 6 / span 6", + "span-full": "1 / -1", + }, + gridRowStart: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + }, + gridRowEnd: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + }, + gridTemplateColumns: { + none: "none", + 1: "repeat(1, minmax(0, 1fr))", + 2: "repeat(2, minmax(0, 1fr))", + 3: "repeat(3, minmax(0, 1fr))", + 4: "repeat(4, minmax(0, 1fr))", + 5: "repeat(5, minmax(0, 1fr))", + 6: "repeat(6, minmax(0, 1fr))", + 7: "repeat(7, minmax(0, 1fr))", + 8: "repeat(8, minmax(0, 1fr))", + 9: "repeat(9, minmax(0, 1fr))", + 10: "repeat(10, minmax(0, 1fr))", + 11: "repeat(11, minmax(0, 1fr))", + 12: "repeat(12, minmax(0, 1fr))", + }, + gridTemplateRows: { + none: "none", + 1: "repeat(1, minmax(0, 1fr))", + 2: "repeat(2, minmax(0, 1fr))", + 3: "repeat(3, minmax(0, 1fr))", + 4: "repeat(4, minmax(0, 1fr))", + 5: "repeat(5, minmax(0, 1fr))", + 6: "repeat(6, minmax(0, 1fr))", + }, + height: ({ theme }) => ({ + auto: "auto", + ...theme("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + "1/5": "20%", + "2/5": "40%", + "3/5": "60%", + "4/5": "80%", + "1/6": "16.666667%", + "2/6": "33.333333%", + "3/6": "50%", + "4/6": "66.666667%", + "5/6": "83.333333%", + full: "100%", + screen: "100vh", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + inset: ({ theme }) => ({ + auto: "auto", + ...theme("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + full: "100%", + }), + keyframes: { + spin: { + to: { + transform: "rotate(360deg)", + }, + }, + ping: { + "75%, 100%": { + transform: "scale(2)", + opacity: "0", + }, + }, + pulse: { + "50%": { + opacity: ".5", + }, + }, + bounce: { + "0%, 100%": { + transform: "translateY(-25%)", + animationTimingFunction: "cubic-bezier(0.8,0,1,1)", + }, + "50%": { + transform: "none", + animationTimingFunction: "cubic-bezier(0,0,0.2,1)", + }, + }, + }, + letterSpacing: { + tighter: "-0.05em", + tight: "-0.025em", + normal: "0em", + wide: "0.025em", + wider: "0.05em", + widest: "0.1em", + }, + lineHeight: { + none: "1", + tight: "1.25", + snug: "1.375", + normal: "1.5", + relaxed: "1.625", + loose: "2", + 3: ".75rem", + 4: "1rem", + 5: "1.25rem", + 6: "1.5rem", + 7: "1.75rem", + 8: "2rem", + 9: "2.25rem", + 10: "2.5rem", + }, + listStyleType: { + none: "none", + disc: "disc", + decimal: "decimal", + }, + margin: ({ theme }) => ({ + auto: "auto", + ...theme("spacing"), + }), + maxHeight: ({ theme }) => ({ + ...theme("spacing"), + full: "100%", + screen: "100vh", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + maxWidth: ({ theme, breakpoints }) => ({ + none: "none", + 0: "0rem", + xs: "20rem", + sm: "24rem", + md: "28rem", + lg: "32rem", + xl: "36rem", + "2xl": "42rem", + "3xl": "48rem", + "4xl": "56rem", + "5xl": "64rem", + "6xl": "72rem", + "7xl": "80rem", + full: "100%", + min: "min-content", + max: "max-content", + fit: "fit-content", + prose: "65ch", + ...breakpoints(theme("screens")), + }), + minHeight: { + 0: "0px", + full: "100%", + screen: "100vh", + min: "min-content", + max: "max-content", + fit: "fit-content", + }, + minWidth: { + 0: "0px", + full: "100%", + min: "min-content", + max: "max-content", + fit: "fit-content", + }, + objectPosition: { + bottom: "bottom", + center: "center", + left: "left", + "left-bottom": "left bottom", + "left-top": "left top", + right: "right", + "right-bottom": "right bottom", + "right-top": "right top", + top: "top", + }, + opacity: { + 0: "0", + 5: "0.05", + 10: "0.1", + 20: "0.2", + 25: "0.25", + 30: "0.3", + 40: "0.4", + 50: "0.5", + 60: "0.6", + 70: "0.7", + 75: "0.75", + 80: "0.8", + 90: "0.9", + 95: "0.95", + 100: "1", + }, + order: { + first: "-9999", + last: "9999", + none: "0", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + }, + padding: ({ theme }) => theme("spacing"), + placeholderColor: ({ theme }) => theme("colors"), + placeholderOpacity: ({ theme }) => theme("opacity"), + outlineColor: ({ theme }) => theme("colors"), + outlineOffset: { + 0: "0px", + 1: "1px", + 2: "2px", + 4: "4px", + 8: "8px", + }, + outlineWidth: { + 0: "0px", + 1: "1px", + 2: "2px", + 4: "4px", + 8: "8px", + }, + ringColor: ({ theme }) => ({ + DEFAULT: theme(`colors.blue.500`, "#3b82f6"), + ...theme("colors"), + }), + ringOffsetColor: ({ theme }) => theme("colors"), + ringOffsetWidth: { + 0: "0px", + 1: "1px", + 2: "2px", + 4: "4px", + 8: "8px", + }, + ringOpacity: ({ theme }) => ({ + DEFAULT: "0.5", + ...theme("opacity"), + }), + ringWidth: { + DEFAULT: "3px", + 0: "0px", + 1: "1px", + 2: "2px", + 4: "4px", + 8: "8px", + }, + rotate: { + 0: "0deg", + 1: "1deg", + 2: "2deg", + 3: "3deg", + 6: "6deg", + 12: "12deg", + 45: "45deg", + 90: "90deg", + 180: "180deg", + }, + saturate: { + 0: "0", + 50: ".5", + 100: "1", + 150: "1.5", + 200: "2", + }, + scale: { + 0: "0", + 50: ".5", + 75: ".75", + 90: ".9", + 95: ".95", + 100: "1", + 105: "1.05", + 110: "1.1", + 125: "1.25", + 150: "1.5", + }, + scrollMargin: ({ theme }) => ({ + ...theme("spacing"), + }), + scrollPadding: ({ theme }) => theme("spacing"), + sepia: { + 0: "0", + DEFAULT: "100%", + }, + skew: { + 0: "0deg", + 1: "1deg", + 2: "2deg", + 3: "3deg", + 6: "6deg", + 12: "12deg", + }, + space: ({ theme }) => ({ + ...theme("spacing"), + }), + stroke: ({ theme }) => theme("colors"), + strokeWidth: { + 0: "0", + 1: "1", + 2: "2", + }, + textColor: ({ theme }) => theme("colors"), + textDecorationColor: ({ theme }) => theme("colors"), + textDecorationThickness: { + auto: "auto", + "from-font": "from-font", + 0: "0px", + 1: "1px", + 2: "2px", + 4: "4px", + 8: "8px", + }, + textUnderlineOffset: { + auto: "auto", + 0: "0px", + 1: "1px", + 2: "2px", + 4: "4px", + 8: "8px", + }, + textIndent: ({ theme }) => ({ + ...theme("spacing"), + }), + textOpacity: ({ theme }) => theme("opacity"), + transformOrigin: { + center: "center", + top: "top", + "top-right": "top right", + right: "right", + "bottom-right": "bottom right", + bottom: "bottom", + "bottom-left": "bottom left", + left: "left", + "top-left": "top left", + }, + transitionDelay: { + 75: "75ms", + 100: "100ms", + 150: "150ms", + 200: "200ms", + 300: "300ms", + 500: "500ms", + 700: "700ms", + 1000: "1000ms", + }, + transitionDuration: { + DEFAULT: "150ms", + 75: "75ms", + 100: "100ms", + 150: "150ms", + 200: "200ms", + 300: "300ms", + 500: "500ms", + 700: "700ms", + 1000: "1000ms", + }, + transitionProperty: { + none: "none", + all: "all", + DEFAULT: + "color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter", + colors: + "color, background-color, border-color, text-decoration-color, fill, stroke", + opacity: "opacity", + shadow: "box-shadow", + transform: "transform", + }, + transitionTimingFunction: { + DEFAULT: "cubic-bezier(0.4, 0, 0.2, 1)", + linear: "linear", + in: "cubic-bezier(0.4, 0, 1, 1)", + out: "cubic-bezier(0, 0, 0.2, 1)", + "in-out": "cubic-bezier(0.4, 0, 0.2, 1)", + }, + translate: ({ theme }) => ({ + ...theme("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + full: "100%", + }), + width: ({ theme }) => ({ + auto: "auto", + ...theme("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + "1/5": "20%", + "2/5": "40%", + "3/5": "60%", + "4/5": "80%", + "1/6": "16.666667%", + "2/6": "33.333333%", + "3/6": "50%", + "4/6": "66.666667%", + "5/6": "83.333333%", + "1/12": "8.333333%", + "2/12": "16.666667%", + "3/12": "25%", + "4/12": "33.333333%", + "5/12": "41.666667%", + "6/12": "50%", + "7/12": "58.333333%", + "8/12": "66.666667%", + "9/12": "75%", + "10/12": "83.333333%", + "11/12": "91.666667%", + full: "100%", + screen: "100vw", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + willChange: { + auto: "auto", + scroll: "scroll-position", + contents: "contents", + transform: "transform", + }, + zIndex: { + auto: "auto", + 0: "0", + 10: "10", + 20: "20", + 30: "30", + 40: "40", + 50: "50", + }, + }, + variantOrder: [ + "first", + "last", + "odd", + "even", + "visited", + "checked", + "empty", + "read-only", + "group-hover", + "group-focus", + "focus-within", + "hover", + "focus", + "focus-visible", + "active", + "disabled", + ], + plugins: [ + require("@tailwindcss/typography"), + require("@tailwindcss/forms"), + require("@tailwindcss/aspect-ratio"), + ], +}; diff --git a/yarn.lock b/yarn.lock index 6b9cda9..50a0a21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1026,7 +1026,7 @@ core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": version "7.18.3" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== @@ -1507,6 +1507,29 @@ unist-util-visit "^4.0.0" vfile "^5.0.0" +"@mdx-js/mdx@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-2.1.2.tgz#d13fb811809fda37967dc0eebd5bb36adce89a81" + integrity sha512-ASN1GUH0gXsgJ2UD/Td7FzJo1SwFkkQ5V1i9at5o/ROra7brkyMcBsotsOWJWRzmXZaLw2uXWn4aN8B3PMNFMA== + dependencies: + "@types/estree-jsx" "^0.0.1" + "@types/mdx" "^2.0.0" + astring "^1.6.0" + estree-util-build-jsx "^2.0.0" + estree-util-is-identifier-name "^2.0.0" + estree-walker "^3.0.0" + hast-util-to-estree "^2.0.0" + markdown-extensions "^1.0.0" + periscopic "^3.0.0" + remark-mdx "^2.0.0" + remark-parse "^10.0.0" + remark-rehype "^10.0.0" + unified "^10.0.0" + unist-util-position-from-estree "^1.0.0" + unist-util-stringify-position "^3.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1801,6 +1824,39 @@ "@swc/core-win32-ia32-msvc" "1.2.199" "@swc/core-win32-x64-msvc" "1.2.199" +"@tailwindcss/aspect-ratio@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.0.tgz#c635dd7331cbcc1b111cebdc2647dd3493ebdd3e" + integrity sha512-WJu0I4PpqNPuutpaA9zDUq2JXR+lorZ7PbLcKNLmb6GL9/HLfC7w3CRsMhJF4BbYd/lkY6CfXOvkYpuGnZfkpQ== + +"@tailwindcss/forms@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.2.tgz#4ef45f9916dcb37838cbe7fecdcc4ba7a7c2ab59" + integrity sha512-pSrFeJB6Bg1Mrg9CdQW3+hqZXAKsBrSG9MAfFLKy1pVA4Mb4W7C0k7mEhlmS2Dfo/otxrQOET7NJiJ9RrS563w== + dependencies: + mini-svg-data-uri "^1.2.3" + +"@tailwindcss/line-clamp@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@tailwindcss/line-clamp/-/line-clamp-0.4.0.tgz#03353e31e77636b785f2336e8c978502cec1de81" + integrity sha512-HQZo6gfx1D0+DU3nWlNLD5iA6Ef4JAXh0LeD8lOGrJwEDBwwJNKQza6WoXhhY1uQrxOuU8ROxV7CqiQV4CoiLw== + +"@tailwindcss/nesting@^0.0.0-insiders.565cd3e": + version "0.0.0-insiders.565cd3e" + resolved "https://registry.yarnpkg.com/@tailwindcss/nesting/-/nesting-0.0.0-insiders.565cd3e.tgz#cdfe802dd2900cd6b4e99006c7d13b21132d72fc" + integrity sha512-WhHoFBx19TnH/c+xLwT/sxei6+4RpdfiyG3MYXfmLaMsADmVqBkF7B6lDalgZD9YdM459MF7DtxVbWkOrV7IaQ== + dependencies: + postcss-nested "^5.0.5" + +"@tailwindcss/typography@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.2.tgz#24b069dab24d7a2467d01aca0dd432cb4b29f0ee" + integrity sha512-coq8DBABRPFcVhVIk6IbKyyHUt7YTEC/C992tatFB+yEx5WGBQrCgsSFjxHUr8AWXphWckadVJbominEduYBqw== + dependencies: + lodash.castarray "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + "@testing-library/dom@^8.5.0": version "8.13.0" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.13.0.tgz#bc00bdd64c7d8b40841e27a70211399ad3af46f5" @@ -2630,7 +2686,7 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -arg@^5.0.1: +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== @@ -3196,11 +3252,6 @@ cjs-module-lexer@^1.0.0: resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== -classnames@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" - integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== - clean-css@^5.2.2: version "5.3.0" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.0.tgz#ad3d8238d5f3549e83d5f87205189494bc7cbb59" @@ -3217,6 +3268,11 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +clsx@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -4948,6 +5004,13 @@ he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +history@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/history/-/history-5.3.0.tgz#1548abaa245ba47992f063a0783db91ef201c73b" + integrity sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ== + dependencies: + "@babel/runtime" "^7.7.6" + hoopy@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" @@ -5256,7 +5319,7 @@ is-callable@^1.1.4, is-callable@^1.2.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.2.0, is-core-module@^2.8.1: +is-core-module@^2.2.0, is-core-module@^2.8.1, is-core-module@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== @@ -6198,11 +6261,21 @@ lodash-es@^4.17.21: resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== +lodash.castarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" + integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -6934,6 +7007,11 @@ mini-css-extract-plugin@^2.4.5: dependencies: schema-utils "^4.0.0" +mini-svg-data-uri@^1.2.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" + integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== + minimalistic-assert@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -7755,14 +7833,14 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-nested@5.0.6: +postcss-nested@5.0.6, postcss-nested@^5.0.5: 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-nesting@^10.1.7: +postcss-nesting@^10.1.7, postcss-nesting@^10.1.8: version "10.1.8" resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.1.8.tgz#1675542cfedc3dc9621993f3abfdafa260c3a460" integrity sha512-txdb3/idHYsBbNDFo1PFY0ExCgH5nfWi8G5lO49e6iuU42TydbODTzJgF5UuL5bhgeSlnAtDgfFTDG0Cl1zaSQ== @@ -7995,7 +8073,7 @@ postcss@^7.0.35: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.3.5, postcss@^8.4.14, postcss@^8.4.4, postcss@^8.4.7: +postcss@^8.3.5, postcss@^8.4.14, postcss@^8.4.7: version "8.4.14" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== @@ -8229,6 +8307,21 @@ react-refresh@^0.11.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== +react-router-dom@6: + version "6.3.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.3.0.tgz#a0216da813454e521905b5fa55e0e5176123f43d" + integrity sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw== + dependencies: + history "^5.2.0" + react-router "6.3.0" + +react-router@6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.3.0.tgz#3970cc64b4cb4eae0c1ea5203a80334fdd175557" + integrity sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ== + dependencies: + history "^5.2.0" + react@^18.1.0: version "18.1.0" resolved "https://registry.yarnpkg.com/react/-/react-18.1.0.tgz#6f8620382decb17fdc5cc223a115e2adbf104890" @@ -8387,6 +8480,14 @@ remark-mdx@^2.0.0: mdast-util-mdx "^2.0.0" micromark-extension-mdxjs "^1.0.0" +remark-mdx@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-2.1.2.tgz#eea2784fa5697e14f6e0686700077986b88b8078" + integrity sha512-npQagPdczPAv0xN9F8GSi5hJfAe/z6nBjylyfOfjLOmz086ahWrIjlk4BulRfNhA+asutqWxyuT3DFVsxiTVHA== + dependencies: + mdast-util-mdx "^2.0.0" + micromark-extension-mdxjs "^1.0.0" + remark-parse@^10.0.0: version "10.0.1" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" @@ -8465,7 +8566,16 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@^1.1.7, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0: +resolve@^1.1.7: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0: version "1.22.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== @@ -9134,12 +9244,12 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -tailwindcss@^3.0.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.2.tgz#b5607d17adb6cbb11a13738cc5fdf3e5527dcd7a" - integrity sha512-yJ6L5s1U5AeS5g7HHy212zdQfjwD426FBfm59pet/JsyneuZuD4C2W7PpJEg4ppisiB21uLqtNagv8KXury3+Q== +tailwindcss@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.3.tgz#b9ef2c1ae537c339679e8e89635af8e143d1c7eb" + integrity sha512-PRJNYdSIthrb8hjmAyymEyEN8Yo61TMXpzyFUpxULeeyRn3Y3gpvuw6FlRTKrJvK7thSGKRnhT36VovVx4WeMA== dependencies: - arg "^5.0.1" + arg "^5.0.2" chokidar "^3.5.3" color-name "^1.1.4" detective "^5.2.1"