From 60a820911c8e2c76c8768fa7fc1e703306197977 Mon Sep 17 00:00:00 2001 From: Richard Guerre Date: Fri, 14 Jul 2023 12:10:00 +0800 Subject: [PATCH] Migrate to UnoCSS --- .devcontainer/devcontainer.json | 2 +- .vscode/extensions.json | 8 +- README.md | 19 +- apps/web/index.html | 1 + apps/web/package.json | 4 +- apps/web/postcss.config.js | 6 - apps/web/src/components/CalendarList.tsx | 8 +- apps/web/src/index.css | 3 - apps/web/src/index.tsx | 8 +- apps/web/tailwind.config.js | 129 -- package-lock.json | 1585 +++++++++++++--------- packages/calendar/index.tsx | 10 +- packages/calendar/package.json | 3 + packages/nearest-color/src/index.ts | 2 +- packages/ui/tw.ts | 1 + packages/unocss/package.json | 9 + packages/unocss/uno.config.ts | 341 +++++ uno.config.ts | 3 + 18 files changed, 1339 insertions(+), 803 deletions(-) delete mode 100644 apps/web/postcss.config.js delete mode 100644 apps/web/src/index.css delete mode 100644 apps/web/tailwind.config.js create mode 100644 packages/unocss/package.json create mode 100644 packages/unocss/uno.config.ts create mode 100644 uno.config.ts diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d30908a7..676946d7 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -20,7 +20,7 @@ "esbenp.prettier-vscode", "Prisma.prisma", "meta.relay", - "bradlc.vscode-tailwindcss" + "antfu.unocss" ] } }, diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 08a4f789..e976abb9 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,8 +1,4 @@ { - "recommendations": [ - "esbenp.prettier-vscode", - "meta.relay", - "bradlc.vscode-tailwindcss", - "prisma.prisma" - ] + "recommendations": ["esbenp.prettier-vscode", "meta.relay", "prisma.prisma", "antfu.unocss"], + "unwantedRecommendations": ["bradlc.vscode-tailwindcss"] } diff --git a/README.md b/README.md index 7c3ab341..de259597 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ If you are using VS Code, you will be prompted to install the recommended extens - [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) for formatting. - [Relay](https://marketplace.visualstudio.com/items?itemName=meta.relay) for [Relay GraphQL](https://relay.dev) support. -- [Tailwind CSS IntelliSense](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss) for [Tailwind CSS](https://tailwindcss.com) support. +- [UnoCSS](https://marketplace.visualstudio.com/items?itemName=bradlc.antfu.unocss) for [UnoCSS](https://unocss.dev) support. - [Prisma](https://marketplace.visualstudio.com/items?itemName=Prisma.prisma) for [Prisma](https://www.prisma.io) support. ## Running tests @@ -116,10 +116,27 @@ const MyComponent = ({ value }) => { return
{value}
; }; +// ❌ Bad +const MyComponent = (props) => { + const { value } = props; + return
{value}
; +}; + // ✅ Good const MyComponent = (props) => { // destructuring objects returned by React hooks is fine const { symbol } = useLocaleCurrency(); return
{props.myProp} {symbol}
; }; + +// ✅ Good +const MyComponent = (props) => { + // destructuring arrays is fine + const [value, setValue] = useState(props.value); + return
{value}
; +}; ``` + +## Why UnoCSS instead of TailwindCSS? + +I was originally using TailwindCSS, but as I later realized I wanted/needed plugins to also have access to the same theme as the main app, I decided to switch to UnoCSS. This is because UnoCSS can be run at runtime, so plugins can add classes that the main app may not use directly, but that plugins can use. This is not possible with TailwindCSS, as it needs to be compiled at build time so all classes would need to be known at build time (not possible if hot swapping plugins). diff --git a/apps/web/index.html b/apps/web/index.html index 1175e127..73ef666e 100644 --- a/apps/web/index.html +++ b/apps/web/index.html @@ -4,6 +4,7 @@ + Flow diff --git a/apps/web/package.json b/apps/web/package.json index 4a280ea3..9c21b515 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -21,6 +21,7 @@ "@flowdev/plugin": "*", "@flowdev/relay": "*", "@flowdev/ui": "*", + "@flowdev/unocss": "*", "@tiptap/extension-bullet-list": "^2.0.3", "@tiptap/extension-document": "^2.0.0-beta.218", "@tiptap/extension-history": "^2.0.0-beta.218", @@ -32,6 +33,7 @@ "@tiptap/pm": "^2.0.0-beta.218", "@tiptap/react": "^2.0.0-beta.218", "@tiptap/starter-kit": "^2.0.3", + "@unocss/runtime": "^0.53.5", "dayjs": "^1.11.7", "framer-motion": "^10.12.10", "react": "^18.2.0", @@ -42,7 +44,6 @@ }, "devDependencies": { "@swc/plugin-relay": "^1.5.36", - "@tailwindcss/typography": "^0.5.9", "@types/react": "^18.0.26", "@types/react-dom": "^18.0.9", "@vitejs/plugin-react": "^3.0.1", @@ -51,7 +52,6 @@ "postcss": "^8.4.23", "relay-compiler": "^14.1.0", "sass": "^1.62.0", - "tailwindcss": "^3.3.2", "typescript": "^4.9.3", "vite": "^4.0.0", "vite-tsconfig-paths": "^4.0.5" diff --git a/apps/web/postcss.config.js b/apps/web/postcss.config.js deleted file mode 100644 index 2aa7205d..00000000 --- a/apps/web/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; diff --git a/apps/web/src/components/CalendarList.tsx b/apps/web/src/components/CalendarList.tsx index 79d3ff7d..e0ce6261 100644 --- a/apps/web/src/components/CalendarList.tsx +++ b/apps/web/src/components/CalendarList.tsx @@ -2,7 +2,7 @@ import { useEffect, useMemo } from "react"; import { graphql, useRefetchableFragment } from "@flowdev/relay"; import { CalendarList_data$key } from "@flowdev/web/relay/__generated__/CalendarList_data.graphql"; import { DayTimeGrid, CalendarEvent, CalendarArtifact } from "@flowdev/calendar"; -import colors from "tailwindcss/colors"; +import { tailwindColors } from "@flowdev/unocss"; import { dayStoreAtom } from "@flowdev/web/stores/dayStore"; import { useStore } from "@flowdev/jotai"; @@ -51,8 +51,8 @@ export const CalendarList = (props: CalendarListProps) => { id: edge.node.id, title: edge.node.title, scheduledAt: new Date(edge.node.scheduledAt!), - textColor: color ? colors[edge.node.color]["900"] : undefined, - backgroundColor: color ? colors[edge.node.color]["100"] : undefined, + textColor: color ? tailwindColors[edge.node.color]["900"] : undefined, + backgroundColor: color ? tailwindColors[edge.node.color]["100"] : undefined, durationInMinutes: edge.node.durationInMinutes ?? 0, ...(edge.node.isAllDay ? { isAllDay: true } : {}), }); @@ -85,7 +85,7 @@ export const CalendarList = (props: CalendarListProps) => { return (
Calendar
-
+
diff --git a/apps/web/src/index.css b/apps/web/src/index.css deleted file mode 100644 index b5c61c95..00000000 --- a/apps/web/src/index.css +++ /dev/null @@ -1,3 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; diff --git a/apps/web/src/index.tsx b/apps/web/src/index.tsx index 91ea7a61..3edf40c1 100644 --- a/apps/web/src/index.tsx +++ b/apps/web/src/index.tsx @@ -6,7 +6,13 @@ import { RelayEnvironmentProvider, } from "@flowdev/web/relay/environment"; import { IconContext } from "@flowdev/icons"; -import "./index.css"; +import initUnocssRuntime from "@unocss/runtime"; +import unocssConfig from "@flowdev/unocss"; + +initUnocssRuntime({ + autoPrefix: true, + defaults: unocssConfig, +}); const IndexView = React.lazy(() => import("./views/IndexView")); const SettingsView = React.lazy(() => import("./views/SettingsView")); diff --git a/apps/web/tailwind.config.js b/apps/web/tailwind.config.js deleted file mode 100644 index c38e0fff..00000000 --- a/apps/web/tailwind.config.js +++ /dev/null @@ -1,129 +0,0 @@ -import plugin from "tailwindcss/plugin"; -import colors from "tailwindcss/colors"; -import typography from "@tailwindcss/typography"; - -const gray = colors.gray; - -// Using tips in RefactoringUI to create a color palette -const flowColors = { - transparent: "transparent", - current: "currentColor", - primary: colors.indigo, - background: { - 50: gray[50], - 100: gray[100], - 200: gray[200], - 300: gray[300], - }, - foreground: { - 900: gray[900], - 800: gray[700], - 700: gray[500], - }, - // background: { - // 50: gray[600], - // 100: gray[700], - // 200: gray[800], - // 300: gray[900] - // }, - // foreground: { - // 900: gray[400], - // 800: gray[200], - // 700: gray[50] - // }, - positive: colors.green, - negative: colors.red, - warning: colors.yellow, -}; - -// more round than the tailwind defaults -const flowBorderRadius = { - none: "0", - sm: "0.25rem", - DEFAULT: "0.375rem", - md: "0.5rem", - lg: "0.75rem", - xl: "1rem", - "2xl": "1.5rem", - "3xl": "2.25rem", - full: "9999px", -}; - -// more spread than the tailwind defaults -const flowBoxShadow = { - sm: "0 1px 6px 0 rgba(0, 0, 0, 0.05)", - DEFAULT: "0 1px 9px 0 rgba(0, 0, 0, 0.07), 0 1px 2px 0 rgba(0, 0, 0, 0.05)", - md: "0 4px 18px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -1px rgba(0, 0, 0, 0.05)", - lg: "0 10px 25px -3px rgba(0, 0, 0, 0.07), 0 4px 6px -2px rgba(0, 0, 0, 0.05)", - xl: "0 20px 50px -5px rgba(0, 0, 0, 0.07), 0 10px 10px -5px rgba(0, 0, 0, 0.04)", - "2xl": "0 25px 75px -12px rgba(0, 0, 0, 0.25)", - inner: "inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)", - none: "none", -}; - -const convertToCssVars = (key, value, transform) => { - const result = {}; - for (const [k, v] of Object.entries(value)) { - if (typeof v === "string") result[k] = v; - else { - const kResult = {}; - for (const kk in v) { - const value = `var(--${key}-${k}-${kk})`; - kResult[kk] = transform?.(value) ?? value; - } - result[k] = kResult; - } - } - return result; -}; - -const convertToCssRoot = (key, value, transform) => { - const cssVars = {}; - for (const [k, v] of Object.entries(value)) { - if (typeof v === "string") cssVars[`--${key}-${k}`] = v; - else { - for (const [kk, vv] of Object.entries(v)) { - cssVars[`--${key}-${k}-${kk}`] = transform?.(vv) ?? vv; - } - } - } - return cssVars; -}; - -// --------------- helpers --------------- - -function hexToRgb(hex) { - var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); - return { - r: parseInt(result[1], 16), - g: parseInt(result[2], 16), - b: parseInt(result[3], 16), - }; -} - -/** @type {import('tailwindcss').Config} */ -export default { - content: ["./index.html", "../**/*.{ts,tsx}", "../../packages/**/*.{ts,tsx}"], - theme: { - screens: {}, // don't know what screens to use, so until I do I'll just leave it empty - colors: convertToCssVars("colors", flowColors, (value) => `rgb(${value} / )`), - borderRadius: convertToCssVars("border-radius", flowBorderRadius), - boxShadow: convertToCssVars("box-shadow", flowBoxShadow), - extend: {}, - }, - plugins: [ - typography, - plugin(({ addBase }) => { - addBase({ - ":root": { - ...convertToCssRoot("colors", flowColors, (value) => { - const rgb = hexToRgb(value); - return `${rgb.r} ${rgb.g} ${rgb.b}`; - }), - ...convertToCssRoot("border-radius", flowBorderRadius), - ...convertToCssRoot("box-shadow", flowBoxShadow), - }, - }); - }), - ], -}; diff --git a/package-lock.json b/package-lock.json index 575d893d..2b8aaec6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -83,6 +83,7 @@ "@flowdev/plugin": "*", "@flowdev/relay": "*", "@flowdev/ui": "*", + "@flowdev/unocss": "*", "@tiptap/extension-bullet-list": "^2.0.3", "@tiptap/extension-document": "^2.0.0-beta.218", "@tiptap/extension-history": "^2.0.0-beta.218", @@ -94,6 +95,7 @@ "@tiptap/pm": "^2.0.0-beta.218", "@tiptap/react": "^2.0.0-beta.218", "@tiptap/starter-kit": "^2.0.3", + "@unocss/runtime": "^0.53.5", "dayjs": "^1.11.7", "framer-motion": "^10.12.10", "react": "^18.2.0", @@ -104,7 +106,6 @@ }, "devDependencies": { "@swc/plugin-relay": "^1.5.36", - "@tailwindcss/typography": "^0.5.9", "@types/react": "^18.0.26", "@types/react-dom": "^18.0.9", "@vitejs/plugin-react": "^3.0.1", @@ -113,7 +114,6 @@ "postcss": "^8.4.23", "relay-compiler": "^14.1.0", "sass": "^1.62.0", - "tailwindcss": "^3.3.2", "typescript": "^4.9.3", "vite": "^4.0.0", "vite-tsconfig-paths": "^4.0.5" @@ -250,29 +250,38 @@ "node": ">=0.10.0" } }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "dev": true, - "license": "Apache-2.0", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, + "node_modules/@antfu/install-pkg": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.1.1.tgz", + "integrity": "sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==", + "dependencies": { + "execa": "^5.1.1", + "find-up": "^5.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.5.tgz", + "integrity": "sha512-dlR6LdS+0SzOAPx/TPRhnoi7hE251OVeT2Snw0RguNbBSbjUHdWr0l3vcUUDg26rEysT89kCbtw1lVorBXLLCg==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/@babel/code-frame": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", @@ -339,20 +348,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-compilation-targets": { "version": "7.22.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz", @@ -1181,6 +1176,10 @@ "resolved": "packages/ui", "link": true }, + "node_modules/@flowdev/unocss": { + "resolved": "packages/unocss", + "link": true + }, "node_modules/@flowdev/web": { "resolved": "apps/web", "link": true @@ -1286,13 +1285,32 @@ "tslib": "^2.3.1" } }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==" + }, + "node_modules/@iconify/utils": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.1.7.tgz", + "integrity": "sha512-P8S3z/L1LcV4Qem9AoCfVAaTFGySEMzFEY4CHZLkfRj0Fv9LiR+AwjDgrDrzyI93U2L2mg9JHsbTJ52mF8suNw==", + "dependencies": { + "@antfu/install-pkg": "^0.1.1", + "@antfu/utils": "^0.7.4", + "@iconify/types": "^2.0.0", + "debug": "^4.3.4", + "kolorist": "^1.8.0", + "local-pkg": "^0.4.3" + } + }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "dev": true, - "license": "MIT", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" @@ -1300,7 +1318,6 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -1308,7 +1325,6 @@ }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -1316,12 +1332,10 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", - "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.17", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "3.1.0", @@ -1343,7 +1357,6 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -1355,7 +1368,6 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -1363,7 +1375,6 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -1406,6 +1417,11 @@ "node": ">=10.12.0" } }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" + }, "node_modules/@popperjs/core": { "version": "2.11.6", "license": "MIT", @@ -1634,6 +1650,27 @@ "version": "3.0.4", "license": "MIT" }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@swc/core": { "version": "1.3.26", "dev": true, @@ -1682,34 +1719,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/@tailwindcss/typography": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.9.tgz", - "integrity": "sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==", - "dev": true, - "dependencies": { - "lodash.castarray": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "postcss-selector-parser": "6.0.10" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, - "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@tiptap/core": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.0.3.tgz", @@ -2156,6 +2165,11 @@ "@types/ms": "*" } }, + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" + }, "node_modules/@types/express": { "version": "4.17.15", "dev": true, @@ -2296,164 +2310,511 @@ "version": "2.1.0", "license": "MIT" }, - "node_modules/@vercel/ncc": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.1.tgz", - "integrity": "sha512-S4cL7Taa9yb5qbv+6wLgiKVZ03Qfkc4jGRuiUQMQ8HGBD5pcNRnHeYM33zBvJE4/zJGjJJ8GScB+WmTsn9mORw==", - "dev": true, + "node_modules/@unocss/astro": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/astro/-/astro-0.53.5.tgz", + "integrity": "sha512-W4A0uIN4xAzVH6Vwf5ukG8rJpCeIwQZcpZPrEBWsqY5YcHZcLTFGMHcNmxyeG0qoXpXoxtvHyXXhgGU0BY5ZEw==", + "dependencies": { + "@unocss/core": "0.53.5", + "@unocss/reset": "0.53.5", + "@unocss/vite": "0.53.5" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/cli": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/cli/-/cli-0.53.5.tgz", + "integrity": "sha512-UKi+9BAKh3X5eM4pPQviXMOtN8JkQWKdGy/056rRLQysPB07VBwWr5gYAlJMMJ2wFAIthag43X5I8btQAicFkg==", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@rollup/pluginutils": "^5.0.2", + "@unocss/config": "0.53.5", + "@unocss/core": "0.53.5", + "@unocss/preset-uno": "0.53.5", + "cac": "^6.7.14", + "chokidar": "^3.5.3", + "colorette": "^2.0.20", + "consola": "^3.2.3", + "fast-glob": "^3.3.0", + "magic-string": "^0.30.1", + "pathe": "^1.1.1", + "perfect-debounce": "^1.0.0" + }, "bin": { - "ncc": "dist/ncc/cli.js" + "unocss": "bin/unocss.mjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/@whatwg-node/events": { - "version": "0.0.2", - "license": "MIT" + "node_modules/@unocss/cli/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, - "node_modules/@whatwg-node/fetch": { - "version": "0.6.1", - "license": "MIT", + "node_modules/@unocss/cli/node_modules/magic-string": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", "dependencies": { - "@peculiar/webcrypto": "^1.4.0", - "abort-controller": "^3.0.0", - "busboy": "^1.6.0", - "form-data-encoder": "^1.7.1", - "formdata-node": "^4.3.1", - "node-fetch": "^2.6.7", - "undici": "^5.12.0", - "urlpattern-polyfill": "^6.0.2", - "web-streams-polyfill": "^3.2.0" + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@whatwg-node/server": { - "version": "0.5.4", - "license": "MIT", + "node_modules/@unocss/config": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/config/-/config-0.53.5.tgz", + "integrity": "sha512-YtpWoIFB1V8Dp3KcVQqislQYQSSBYbjTpoVIkUGrpupwOz9+W1tfL2yKEENDiZc11crJSneGr04wsP2dI1ld0w==", "dependencies": { - "@whatwg-node/fetch": "0.6.1", - "tslib": "^2.3.1" + "@unocss/core": "0.53.5", + "unconfig": "^0.3.9" }, - "peerDependencies": { - "@types/node": "^18.0.6" + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true + "node_modules/@unocss/core": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/core/-/core-0.53.5.tgz", + "integrity": "sha512-jBvk4FeUAALAomGfMFFmrXLy01/5DjugdnWgawFAQpSToFTxbMHS7x+pXKu/18cq+YLS8uyl9S0Ywy1jNbfS3Q==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } }, - "node_modules/abort-controller": { - "version": "3.0.0", - "license": "MIT", + "node_modules/@unocss/extractor-arbitrary-variants": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/extractor-arbitrary-variants/-/extractor-arbitrary-variants-0.53.5.tgz", + "integrity": "sha512-rSS3Q8/+lEwxXfXzEOFuhAQGMpaaZcBAYDiNCYS/9BqKrTzhSYG82Qy80ISpqSZr0BTLET4X3dC6B6Rd4GU5vQ==", "dependencies": { - "event-target-shim": "^5.0.0" + "@unocss/core": "0.53.5" }, - "engines": { - "node": ">=6.5" + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/accepts": { - "version": "1.3.8", - "license": "MIT", + "node_modules/@unocss/inspector": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/inspector/-/inspector-0.53.5.tgz", + "integrity": "sha512-gWUhgsoB3LyjIAdw6n/eMcLGmUNwuSTrgwcRubIDFhHOC5/E6ppdUQmS8a4oH4qjunfvBgoTHwcGlXvlvb3S5w==", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "gzip-size": "^6.0.0", + "sirv": "^2.0.3" }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/acorn": { - "version": "8.8.1", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "node_modules/@unocss/postcss": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/postcss/-/postcss-0.53.5.tgz", + "integrity": "sha512-IfZl4GxrpegP/861bp3e0X3VcQJ9/M3VxC9UQ7zzxkOz/E8R09iMpbnznVLrTiLp2r96p5k/ggXLoadFm1FxGA==", + "dependencies": { + "@unocss/config": "0.53.5", + "@unocss/core": "0.53.5", + "css-tree": "^2.3.1", + "fast-glob": "^3.3.0", + "magic-string": "^0.30.1", + "postcss": "^8.4.25" }, "engines": { - "node": ">=0.4.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "postcss": "^8.4.21" } }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "dev": true, - "license": "MIT", + "node_modules/@unocss/postcss/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@unocss/postcss/node_modules/magic-string": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, "engines": { - "node": ">=0.4.0" + "node": ">=12" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@unocss/preset-attributify": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/preset-attributify/-/preset-attributify-0.53.5.tgz", + "integrity": "sha512-0TJD9hVUWu0T4dtdURApyFiliqbckYYGZe2PZBgUrHCypbI0zq7k3MdXFYmIuYxqDPErJVm8rO9lwMpKfTsvuA==", "dependencies": { - "debug": "4" + "@unocss/core": "0.53.5" }, - "engines": { - "node": ">= 6.0.0" + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/@unocss/preset-icons": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/preset-icons/-/preset-icons-0.53.5.tgz", + "integrity": "sha512-zlO0fLJiJtITta3BnE3y5Yc0hajjovCB/woos4MR5gvcFXHW9Hfy7pXuj90GvHLfaRj0JRWXa1WRaqJXS4tzOw==", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "@iconify/utils": "^2.1.7", + "@unocss/core": "0.53.5", + "ofetch": "^1.1.1" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "dev": true, - "license": "MIT", + "node_modules/@unocss/preset-mini": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/preset-mini/-/preset-mini-0.53.5.tgz", + "integrity": "sha512-aeVctTW0M41RXyCyQvhRawIh+ylhl7mlWfAjv7cP3ALvIRWbB6jUw1C8Ke6rU2vg0s0yaJKRuFPFmLMqGwzoSg==", "dependencies": { - "type-fest": "^0.21.3" + "@unocss/core": "0.53.5", + "@unocss/extractor-arbitrary-variants": "0.53.5" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-tagify": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/preset-tagify/-/preset-tagify-0.53.5.tgz", + "integrity": "sha512-0HpWU85Pz1RbFqf/QtlP992ISSqWZ3JT2rWI7ekBLai463ptdBUks/PfH22M+uBSwPig5XNJ0DtyS7hm8TEWhg==", + "dependencies": { + "@unocss/core": "0.53.5" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "license": "MIT", - "engines": { - "node": ">=8" + "node_modules/@unocss/preset-typography": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/preset-typography/-/preset-typography-0.53.5.tgz", + "integrity": "sha512-roZXiJ14wuXcpLN5YodAN1wKYlwCDJ8L/TQlUphyM487i0QbKwXAZg8dA1SWCQIl5V9Qcq/3EXAQmLnhRdwBMA==", + "dependencies": { + "@unocss/core": "0.53.5", + "@unocss/preset-mini": "0.53.5" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", + "node_modules/@unocss/preset-uno": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/preset-uno/-/preset-uno-0.53.5.tgz", + "integrity": "sha512-DRJMBkSqfz0EOzf5cwefkPF8J6lNvrhBp4ztw9blewDc2wTQqL/lAj/I/nbyOdXhJUOxhj/qj7gJjsNZctud0A==", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "@unocss/core": "0.53.5", + "@unocss/preset-mini": "0.53.5", + "@unocss/preset-wind": "0.53.5" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "dev": true, - "license": "ISC", + "node_modules/@unocss/preset-web-fonts": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/preset-web-fonts/-/preset-web-fonts-0.53.5.tgz", + "integrity": "sha512-yVkOOECyOQqahRGSefcBKtNYAUnYFqqFedGy0SBBjadPWn80vjVg7ojljKlJsgSQdrpcJ38wwWr3Oh4UWwBuQQ==", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@unocss/core": "0.53.5", + "ofetch": "^1.1.1" }, - "engines": { - "node": ">= 8" + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-wind": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/preset-wind/-/preset-wind-0.53.5.tgz", + "integrity": "sha512-hSMF11Gx8oMDtePvXLmpArSNpQRHb098P8+qYpwvyNfS29i6agfjGBuIDk/f+j8mhqcfrEEuEmPIl2yojT9nxA==", + "dependencies": { + "@unocss/core": "0.53.5", + "@unocss/preset-mini": "0.53.5" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/reset": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/reset/-/reset-0.53.5.tgz", + "integrity": "sha512-tH8K4jw76mbWA67UUHKV6zxiwOsiG+byrHoG3lz8hr+cm6OgEJ3WjNNp7dZINmr7S7ylWO6igbxGQpsAuIQZCw==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/runtime": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/runtime/-/runtime-0.53.5.tgz", + "integrity": "sha512-csz9XIrhKpXwpaEpNdm3AJPq/H4f4f130lUHF2xla08elj25tl0uwqRBINxd6HikpTsbu599Un8x0euqHlluHQ==", + "dependencies": { + "@unocss/core": "0.53.5", + "@unocss/preset-attributify": "0.53.5", + "@unocss/preset-uno": "0.53.5" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/scope": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/scope/-/scope-0.53.5.tgz", + "integrity": "sha512-KBwemWNJIbu3+BWp0X4o5ERN0/nzF7hXBnjYNSb0s8phrydC6oJrp52XYlIHHTe7O4KzwkqGgf/xOMXMFpviDg==" + }, + "node_modules/@unocss/transformer-attributify-jsx": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/transformer-attributify-jsx/-/transformer-attributify-jsx-0.53.5.tgz", + "integrity": "sha512-ynAElIi9DxtHyKCW+OXPcLxje2ghVzKo80eaAVRAdVpyawsjtE4iHWjHRbESkiTsHW5CiJupdXo2vx1obXFLnQ==", + "dependencies": { + "@unocss/core": "0.53.5" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/transformer-attributify-jsx-babel": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/transformer-attributify-jsx-babel/-/transformer-attributify-jsx-babel-0.53.5.tgz", + "integrity": "sha512-z9ar2IaZmcNVTZhK9ZuRUd3LqA/iUG/JMF0OA92RNclo8SazWdu7eJAdV86SHXqAf7eSB/t0evsde14DtEREjA==", + "dependencies": { + "@unocss/core": "0.53.5" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/transformer-compile-class": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/transformer-compile-class/-/transformer-compile-class-0.53.5.tgz", + "integrity": "sha512-7Z0/40T4EuHMGpXb2XlamkResaASMRm07csCl7REGUTg9ccDRWlnSLzGD8UUgKoygsmqXp2cxKMJLMb5YJ9LLA==", + "dependencies": { + "@unocss/core": "0.53.5" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/transformer-directives": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/transformer-directives/-/transformer-directives-0.53.5.tgz", + "integrity": "sha512-u1OIZZUAXux9Q0mb58X3infxY2Iq6pY7uJB7IhMc2I1ntpyx875spwyvvfUHqOgIPTNR4XxfxKFGPHpjPNbNeQ==", + "dependencies": { + "@unocss/core": "0.53.5", + "css-tree": "^2.3.1" + } + }, + "node_modules/@unocss/transformer-variant-group": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/transformer-variant-group/-/transformer-variant-group-0.53.5.tgz", + "integrity": "sha512-+xDx6JojGkcKwx87sX0y4xM/RuTI0QyPJAKebXUSyuKnctXrTH/p+WNGFIVWiY8suUMnnMesAZpw6O2Oln921w==", + "dependencies": { + "@unocss/core": "0.53.5" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/vite": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@unocss/vite/-/vite-0.53.5.tgz", + "integrity": "sha512-ez0MVRatewLUQq79LI+XRAVRbXWaGbK1K1ht2B8vGyL9OrL6uieEwzxjHV7+rUa8i+FEHfD4Ntmtdpb3WuQSAA==", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@rollup/pluginutils": "^5.0.2", + "@unocss/config": "0.53.5", + "@unocss/core": "0.53.5", + "@unocss/inspector": "0.53.5", + "@unocss/scope": "0.53.5", + "@unocss/transformer-directives": "0.53.5", + "chokidar": "^3.5.3", + "fast-glob": "^3.3.0", + "magic-string": "^0.30.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0" + } + }, + "node_modules/@unocss/vite/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@unocss/vite/node_modules/magic-string": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@vercel/ncc": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.1.tgz", + "integrity": "sha512-S4cL7Taa9yb5qbv+6wLgiKVZ03Qfkc4jGRuiUQMQ8HGBD5pcNRnHeYM33zBvJE4/zJGjJJ8GScB+WmTsn9mORw==", + "dev": true, + "bin": { + "ncc": "dist/ncc/cli.js" + } + }, + "node_modules/@whatwg-node/events": { + "version": "0.0.2", + "license": "MIT" + }, + "node_modules/@whatwg-node/fetch": { + "version": "0.6.1", + "license": "MIT", + "dependencies": { + "@peculiar/webcrypto": "^1.4.0", + "abort-controller": "^3.0.0", + "busboy": "^1.6.0", + "form-data-encoder": "^1.7.1", + "formdata-node": "^4.3.1", + "node-fetch": "^2.6.7", + "undici": "^5.12.0", + "urlpattern-polyfill": "^6.0.2", + "web-streams-polyfill": "^3.2.0" + } + }, + "node_modules/@whatwg-node/server": { + "version": "0.5.4", + "license": "MIT", + "dependencies": { + "@whatwg-node/fetch": "0.6.1", + "tslib": "^2.3.1" + }, + "peerDependencies": { + "@types/node": "^18.0.6" + } + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.1", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, "node_modules/arg": { @@ -2581,7 +2942,6 @@ }, "node_modules/binary-extensions": { "version": "2.2.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2705,6 +3065,14 @@ "node": ">= 0.8" } }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/call-bind": { "version": "1.0.2", "license": "MIT", @@ -2725,14 +3093,6 @@ "tslib": "^2.0.3" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001514", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001514.tgz", @@ -2811,7 +3171,6 @@ }, "node_modules/chokidar": { "version": "3.5.3", - "dev": true, "funding": [ { "type": "individual", @@ -2877,6 +3236,11 @@ "dev": true, "license": "MIT" }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, "node_modules/combined-stream": { "version": "1.0.8", "dev": true, @@ -2906,6 +3270,14 @@ "dev": true, "license": "MIT" }, + "node_modules/consola": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, "node_modules/content-disposition": { "version": "0.5.4", "license": "MIT", @@ -3002,15 +3374,16 @@ "node": ">= 8" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=4" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, "node_modules/csstype": { @@ -3067,6 +3440,11 @@ "node": ">=0.10.0" } }, + "node_modules/defu": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.2.tgz", + "integrity": "sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==" + }, "node_modules/delay": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", @@ -3093,6 +3471,11 @@ "node": ">= 0.8" } }, + "node_modules/destr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.0.tgz", + "integrity": "sha512-FJ9RDpf3GicEBvzI3jxc2XhHzbqD8p4ANw/1kPsFBfTvP1b7Gn/Lg1vO7R9J4IVgoMbyUmFrFGZafJ1hPZpvlg==" + }, "node_modules/destroy": { "version": "1.2.0", "license": "MIT", @@ -3110,11 +3493,6 @@ "wrappy": "1" } }, - "node_modules/didyoumean": { - "version": "1.2.2", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/diff": { "version": "4.0.2", "dev": true, @@ -3123,11 +3501,6 @@ "node": ">=0.3.1" } }, - "node_modules/dlv": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, "node_modules/dotenv": { "version": "16.0.3", "dev": true, @@ -3151,6 +3524,11 @@ "node": ">=4" } }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, "node_modules/dynamic-dedupe": { "version": "0.3.0", "dev": true, @@ -3196,7 +3574,6 @@ }, "node_modules/esbuild": { "version": "0.15.18", - "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -3237,7 +3614,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "android" @@ -3253,7 +3629,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "android" @@ -3269,7 +3644,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -3283,7 +3657,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3300,7 +3673,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -3316,7 +3688,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -3332,7 +3703,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "linux" @@ -3348,7 +3718,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -3364,7 +3733,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -3380,7 +3748,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -3396,7 +3763,6 @@ "cpu": [ "mips64el" ], - "dev": true, "optional": true, "os": [ "linux" @@ -3412,7 +3778,6 @@ "cpu": [ "ppc64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -3428,7 +3793,6 @@ "cpu": [ "riscv64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -3444,7 +3808,6 @@ "cpu": [ "s390x" ], - "dev": true, "optional": true, "os": [ "linux" @@ -3460,7 +3823,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "netbsd" @@ -3476,7 +3838,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "openbsd" @@ -3492,7 +3853,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "sunos" @@ -3508,7 +3868,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "win32" @@ -3524,7 +3883,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -3540,7 +3898,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -3556,7 +3913,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "android" @@ -3572,7 +3928,6 @@ "cpu": [ "loong64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -3603,6 +3958,11 @@ "node": ">=0.8.0" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, "node_modules/etag": { "version": "1.8.1", "license": "MIT", @@ -3614,7 +3974,29 @@ "version": "5.0.1", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=6" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/express": { @@ -3678,9 +4060,9 @@ "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.2.7", - "dev": true, - "license": "MIT", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -3689,7 +4071,7 @@ "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, "node_modules/fast-levenshtein": { @@ -3712,7 +4094,6 @@ }, "node_modules/fastq": { "version": "1.14.0", - "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -3772,6 +4153,21 @@ "version": "2.0.0", "license": "MIT" }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/find-yarn-workspace-root": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", @@ -3901,7 +4297,6 @@ }, "node_modules/fsevents": { "version": "2.3.2", - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3969,6 +4364,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/glob": { "version": "7.1.4", "dev": true, @@ -3987,7 +4393,6 @@ }, "node_modules/glob-parent": { "version": "5.1.2", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -4118,6 +4523,20 @@ "node": ">=12.0.0" } }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/has": { "version": "1.0.3", "license": "MIT", @@ -4180,6 +4599,14 @@ "node": ">= 6" } }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "license": "MIT", @@ -4192,7 +4619,7 @@ }, "node_modules/immutable": { "version": "4.3.0", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/indent-string": { @@ -4232,7 +4659,6 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", - "dev": true, "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" @@ -4255,7 +4681,6 @@ }, "node_modules/is-core-module": { "version": "2.11.0", - "dev": true, "license": "MIT", "dependencies": { "has": "^1.0.3" @@ -4291,7 +4716,6 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4299,7 +4723,6 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -4362,7 +4785,6 @@ }, "node_modules/jiti": { "version": "1.18.2", - "dev": true, "license": "MIT", "bin": { "jiti": "bin/jiti.js" @@ -4466,6 +4888,11 @@ "node": ">=6" } }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==" + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -4481,19 +4908,6 @@ "node": ">= 0.8.0" } }, - "node_modules/lilconfig": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, "node_modules/linkify-it": { "version": "4.0.1", "license": "MIT", @@ -4502,9 +4916,9 @@ } }, "node_modules/local-pkg": { - "version": "0.4.2", - "dev": true, - "license": "MIT", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", "engines": { "node": ">=14" }, @@ -4512,32 +4926,28 @@ "url": "https://github.com/sponsors/antfu" } }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lodash": { "version": "4.17.21", "license": "MIT" }, - "node_modules/lodash.castarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", - "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", - "dev": true - }, "node_modules/lodash.debounce": { "version": "4.0.8", "license": "MIT" }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, "node_modules/lodash.pick": { "version": "4.4.0", "dev": true, @@ -4616,6 +5026,11 @@ "markdown-it": "bin/markdown-it.js" } }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + }, "node_modules/mdurl": { "version": "1.0.1", "license": "MIT" @@ -4631,9 +5046,13 @@ "version": "1.0.1", "license": "MIT" }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, "node_modules/merge2": { "version": "1.4.1", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -4648,7 +5067,6 @@ }, "node_modules/micromatch": { "version": "4.0.5", - "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.2", @@ -4685,6 +5103,14 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, "node_modules/minimatch": { "version": "3.0.5", "dev": true, @@ -4715,23 +5141,20 @@ "node": ">=10" } }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.2", "license": "MIT" }, - "node_modules/mz": { - "version": "2.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, "node_modules/nanoid": { "version": "3.3.6", - "dev": true, "funding": [ { "type": "github", @@ -4804,6 +5227,11 @@ } } }, + "node_modules/node-fetch-native": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.2.0.tgz", + "integrity": "sha512-5IAMBTl9p6PaAjYCnMv5FmqIF6GcZnawAVnzaCG0rX2aYZJ4CxEkZNtVPuTRug7fL7wyM5BQYTlAzcyMPi6oTQ==" + }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -4820,7 +5248,6 @@ }, "node_modules/normalize-path": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4836,7 +5263,6 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", - "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.0.0" @@ -4856,14 +5282,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-hash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, "node_modules/object-inspect": { "version": "1.12.2", "license": "MIT", @@ -4891,6 +5309,16 @@ "node": ">=0.10.0" } }, + "node_modules/ofetch": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.1.1.tgz", + "integrity": "sha512-SSMoktrp9SNLi20BWfB/BnnKcL0RDigXThD/mZBeQxkIRv1xrd9183MtLdsqRYLYSqW0eTr5t8w8MqjNhvoOQQ==", + "dependencies": { + "destr": "^2.0.0", + "node-fetch-native": "^1.2.0", + "ufo": "^1.1.2" + } + }, "node_modules/on-finished": { "version": "2.4.1", "license": "MIT", @@ -4909,6 +5337,20 @@ "wrappy": "1" } }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/open": { "version": "7.4.2", "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", @@ -4957,6 +5399,34 @@ "node": ">=0.10.0" } }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", @@ -5097,6 +5567,14 @@ "node": ">= 6" } }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "dev": true, @@ -5114,13 +5592,17 @@ }, "node_modules/path-parse": { "version": "1.0.7", - "dev": true, "license": "MIT" }, "node_modules/path-to-regexp": { "version": "0.1.7", "license": "MIT" }, + "node_modules/pathe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==" + }, "node_modules/pathval": { "version": "1.1.1", "dev": true, @@ -5129,6 +5611,11 @@ "node": "*" } }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==" + }, "node_modules/pg": { "version": "8.11.1", "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.1.tgz", @@ -5216,168 +5703,58 @@ "postgres-bytea": "~1.0.0", "postgres-date": "~1.0.4", "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "dependencies": { - "split2": "^4.1.0" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.4.23", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" + }, + "engines": { + "node": ">=4" } }, - "node_modules/postcss-load-config": { - "version": "4.0.1", - "dev": true, - "license": "MIT", + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "engines": { - "node": ">= 14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } + "split2": "^4.1.0" } }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "dev": true, + "node_modules/picocolors": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, "engines": { - "node": ">=12.0" + "node": ">=8.6" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "dev": true, - "license": "MIT", + "node_modules/postcss": { + "version": "8.4.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz", + "integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" }, "engines": { - "node": ">=4" + "node": "^10 || ^12 || >=14" } }, "node_modules/postcss-value-parser": { @@ -5746,7 +6123,6 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", - "dev": true, "funding": [ { "type": "github", @@ -5894,17 +6270,8 @@ "version": "1.2.0", "license": "MIT" }, - "node_modules/read-cache": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, "node_modules/readdirp": { "version": "3.6.0", - "dev": true, "license": "MIT", "dependencies": { "picomatch": "^2.2.1" @@ -5936,7 +6303,6 @@ }, "node_modules/resolve": { "version": "1.22.2", - "dev": true, "license": "MIT", "dependencies": { "is-core-module": "^2.11.0", @@ -5952,7 +6318,6 @@ }, "node_modules/reusify": { "version": "1.0.4", - "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -5973,7 +6338,6 @@ }, "node_modules/rollup": { "version": "2.79.1", - "dev": true, "license": "MIT", "bin": { "rollup": "dist/bin/rollup" @@ -5991,7 +6355,6 @@ }, "node_modules/run-parallel": { "version": "1.2.0", - "dev": true, "funding": [ { "type": "github", @@ -6035,7 +6398,7 @@ }, "node_modules/sass": { "version": "1.62.0", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -6185,6 +6548,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sirv": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", + "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", @@ -6209,7 +6590,6 @@ }, "node_modules/source-map-js": { "version": "1.0.2", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -6263,6 +6643,14 @@ "node": ">=4" } }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -6283,67 +6671,6 @@ "url": "https://github.com/sponsors/antfu" } }, - "node_modules/sucrase": { - "version": "3.32.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/superagent": { "version": "8.0.6", "dev": true, @@ -6400,7 +6727,6 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -6418,104 +6744,6 @@ "url": "https://github.com/sponsors/dcastil" } }, - "node_modules/tailwindcss": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.12", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.18.2", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/arg": { - "version": "5.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/tailwindcss/node_modules/fast-glob": { - "version": "3.2.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/tailwindcss/node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/throttle-debounce": { "version": "3.0.1", "license": "MIT", @@ -6594,6 +6822,14 @@ "node": ">=0.6" } }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/tr46": { "version": "0.0.3", "license": "MIT" @@ -6606,11 +6842,6 @@ "tree-kill": "cli.js" } }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/ts-node": { "version": "10.9.1", "dev": true, @@ -6894,6 +7125,24 @@ "version": "1.0.6", "license": "MIT" }, + "node_modules/ufo": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.2.tgz", + "integrity": "sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==" + }, + "node_modules/unconfig": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/unconfig/-/unconfig-0.3.9.tgz", + "integrity": "sha512-8yhetFd48M641mxrkWA+C/lZU4N0rCOdlo3dFsyFPnBHBjMJfjT/3eAZBRT2RxCRqeBMAKBVgikejdS6yeBjMw==", + "dependencies": { + "@antfu/utils": "^0.7.2", + "defu": "^6.1.2", + "jiti": "^1.18.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/undici": { "version": "5.22.0", "license": "MIT", @@ -6913,6 +7162,47 @@ "node": ">= 10.0.0" } }, + "node_modules/unocss": { + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/unocss/-/unocss-0.53.5.tgz", + "integrity": "sha512-LXAdtzAaH8iEDWxW4t9i6TvJNw0OSrgdN+jw8rAZAWb73Nx51ZLoKPUB1rFvQMr2Li7LcsUj5hYpOrQbhhafYg==", + "dependencies": { + "@unocss/astro": "0.53.5", + "@unocss/cli": "0.53.5", + "@unocss/core": "0.53.5", + "@unocss/extractor-arbitrary-variants": "0.53.5", + "@unocss/postcss": "0.53.5", + "@unocss/preset-attributify": "0.53.5", + "@unocss/preset-icons": "0.53.5", + "@unocss/preset-mini": "0.53.5", + "@unocss/preset-tagify": "0.53.5", + "@unocss/preset-typography": "0.53.5", + "@unocss/preset-uno": "0.53.5", + "@unocss/preset-web-fonts": "0.53.5", + "@unocss/preset-wind": "0.53.5", + "@unocss/reset": "0.53.5", + "@unocss/transformer-attributify-jsx": "0.53.5", + "@unocss/transformer-attributify-jsx-babel": "0.53.5", + "@unocss/transformer-compile-class": "0.53.5", + "@unocss/transformer-directives": "0.53.5", + "@unocss/transformer-variant-group": "0.53.5", + "@unocss/vite": "0.53.5" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@unocss/webpack": "0.53.5" + }, + "peerDependenciesMeta": { + "@unocss/webpack": { + "optional": true + } + } + }, "node_modules/unpipe": { "version": "1.0.0", "license": "MIT", @@ -6962,11 +7252,6 @@ "braces": "^3.0.2" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, "node_modules/utils-merge": { "version": "1.0.1", "license": "MIT", @@ -7005,7 +7290,6 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.7.tgz", "integrity": "sha512-29pdXjk49xAP0QBr0xXqu2s5jiQIXNvE/xwd0vUizYT2Hzqe4BksNNoWllFVXJf4eLZ+UlVQmXfB4lWrc+t18g==", - "dev": true, "dependencies": { "esbuild": "^0.15.9", "postcss": "^8.4.18", @@ -7289,14 +7573,6 @@ "version": "4.0.0", "license": "ISC" }, - "node_modules/yaml": { - "version": "2.2.2", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 14" - } - }, "node_modules/yn": { "version": "3.1.1", "dev": true, @@ -7305,9 +7581,23 @@ "node": ">=6" } }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "packages/calendar": { "name": "@flowdev/calendar", "version": "0.1.0", + "dependencies": { + "@flowdev/unocss": "*" + }, "peerDependencies": { "react": "*" } @@ -7383,6 +7673,13 @@ "react": "*" } }, + "packages/unocss": { + "name": "@flowdev/unocss", + "version": "0.1.0", + "dependencies": { + "unocss": "^0.53.5" + } + }, "plugin-apps/google-calendar-api": { "name": "@flowdev/plugin-google-calendar-api" }, diff --git a/packages/calendar/index.tsx b/packages/calendar/index.tsx index fbb25c6c..624cffaf 100644 --- a/packages/calendar/index.tsx +++ b/packages/calendar/index.tsx @@ -1,6 +1,6 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { Hour } from "./types"; -import colors from "tailwindcss/colors"; +import { tailwindColors } from "@flowdev/unocss"; type CalendarEventBase = { id: string; @@ -140,8 +140,8 @@ export const DayTimeGrid = (props: DayTimeGridProps) => { key={event.id} className="border-background-50 overflow-hidden overflow-ellipsis whitespace-nowrap rounded-md border px-2 py-1 text-sm" style={{ - color: event.textColor ?? colors.blue["900"], - backgroundColor: event.backgroundColor ?? colors.blue["100"], + color: event.textColor ?? tailwindColors.blue["900"], + backgroundColor: event.backgroundColor ?? tailwindColors.blue["100"], }} > {event.title} @@ -186,8 +186,8 @@ export const DayTimeGrid = (props: DayTimeGridProps) => { style={{ top: getTop(event.scheduledAt), height: event.height, - color: event.textColor ?? colors.blue["900"], - backgroundColor: event.backgroundColor ?? colors.blue["100"], + color: event.textColor ?? tailwindColors.blue["900"], + backgroundColor: event.backgroundColor ?? tailwindColors.blue["100"], width: `calc(${event.widthPercentage}% - 2%)`, left: `calc(${100 - event.widthPercentage}% + 2%)`, }} diff --git a/packages/calendar/package.json b/packages/calendar/package.json index 46ab9c76..3ceb917c 100644 --- a/packages/calendar/package.json +++ b/packages/calendar/package.json @@ -4,6 +4,9 @@ "description": "Calendar components for Flow", "private": true, "main": "index.tsx", + "dependencies": { + "@flowdev/unocss": "*" + }, "peerDependencies": { "react": "*" } diff --git a/packages/nearest-color/src/index.ts b/packages/nearest-color/src/index.ts index 1c14a946..df18d3ba 100644 --- a/packages/nearest-color/src/index.ts +++ b/packages/nearest-color/src/index.ts @@ -1,4 +1,4 @@ -// import colors from "tailwindcss/colors"; +// import {tailwindColors as colors} from "@flowdev/unocss"; type RGB = { r: number; diff --git a/packages/ui/tw.ts b/packages/ui/tw.ts index b1d32025..086f2a54 100644 --- a/packages/ui/tw.ts +++ b/packages/ui/tw.ts @@ -1,4 +1,5 @@ import clsx, { ClassValue } from "clsx"; import { twMerge } from "tailwind-merge"; +// transitioned to UnoCSS (https://github.com/richardguerre/flow/pull/11) but tailwind-merge still works so keeping it for now export const tw = (...args: ClassValue[]) => twMerge(clsx(...args)); diff --git a/packages/unocss/package.json b/packages/unocss/package.json new file mode 100644 index 00000000..8f125857 --- /dev/null +++ b/packages/unocss/package.json @@ -0,0 +1,9 @@ +{ + "name": "@flowdev/unocss", + "version": "0.1.0", + "private": false, + "main": "uno.config.ts", + "dependencies": { + "unocss": "^0.53.5" + } +} diff --git a/packages/unocss/uno.config.ts b/packages/unocss/uno.config.ts new file mode 100644 index 00000000..6b55bd7b --- /dev/null +++ b/packages/unocss/uno.config.ts @@ -0,0 +1,341 @@ +import { defineConfig, presetWind, presetTypography } from "unocss"; + +export const tailwindColors = { + inherit: "inherit", + current: "currentColor", + transparent: "transparent", + black: "#000", + white: "#fff", + slate: { + 50: "#f8fafc", + 100: "#f1f5f9", + 200: "#e2e8f0", + 300: "#cbd5e1", + 400: "#94a3b8", + 500: "#64748b", + 600: "#475569", + 700: "#334155", + 800: "#1e293b", + 900: "#0f172a", + 950: "#020617", + }, + gray: { + 50: "#f9fafb", + 100: "#f3f4f6", + 200: "#e5e7eb", + 300: "#d1d5db", + 400: "#9ca3af", + 500: "#6b7280", + 600: "#4b5563", + 700: "#374151", + 800: "#1f2937", + 900: "#111827", + 950: "#030712", + }, + zinc: { + 50: "#fafafa", + 100: "#f4f4f5", + 200: "#e4e4e7", + 300: "#d4d4d8", + 400: "#a1a1aa", + 500: "#71717a", + 600: "#52525b", + 700: "#3f3f46", + 800: "#27272a", + 900: "#18181b", + 950: "#09090b", + }, + neutral: { + 50: "#fafafa", + 100: "#f5f5f5", + 200: "#e5e5e5", + 300: "#d4d4d4", + 400: "#a3a3a3", + 500: "#737373", + 600: "#525252", + 700: "#404040", + 800: "#262626", + 900: "#171717", + 950: "#0a0a0a", + }, + stone: { + 50: "#fafaf9", + 100: "#f5f5f4", + 200: "#e7e5e4", + 300: "#d6d3d1", + 400: "#a8a29e", + 500: "#78716c", + 600: "#57534e", + 700: "#44403c", + 800: "#292524", + 900: "#1c1917", + 950: "#0c0a09", + }, + red: { + 50: "#fef2f2", + 100: "#fee2e2", + 200: "#fecaca", + 300: "#fca5a5", + 400: "#f87171", + 500: "#ef4444", + 600: "#dc2626", + 700: "#b91c1c", + 800: "#991b1b", + 900: "#7f1d1d", + 950: "#450a0a", + }, + orange: { + 50: "#fff7ed", + 100: "#ffedd5", + 200: "#fed7aa", + 300: "#fdba74", + 400: "#fb923c", + 500: "#f97316", + 600: "#ea580c", + 700: "#c2410c", + 800: "#9a3412", + 900: "#7c2d12", + 950: "#431407", + }, + amber: { + 50: "#fffbeb", + 100: "#fef3c7", + 200: "#fde68a", + 300: "#fcd34d", + 400: "#fbbf24", + 500: "#f59e0b", + 600: "#d97706", + 700: "#b45309", + 800: "#92400e", + 900: "#78350f", + 950: "#451a03", + }, + yellow: { + 50: "#fefce8", + 100: "#fef9c3", + 200: "#fef08a", + 300: "#fde047", + 400: "#facc15", + 500: "#eab308", + 600: "#ca8a04", + 700: "#a16207", + 800: "#854d0e", + 900: "#713f12", + 950: "#422006", + }, + lime: { + 50: "#f7fee7", + 100: "#ecfccb", + 200: "#d9f99d", + 300: "#bef264", + 400: "#a3e635", + 500: "#84cc16", + 600: "#65a30d", + 700: "#4d7c0f", + 800: "#3f6212", + 900: "#365314", + 950: "#1a2e05", + }, + green: { + 50: "#f0fdf4", + 100: "#dcfce7", + 200: "#bbf7d0", + 300: "#86efac", + 400: "#4ade80", + 500: "#22c55e", + 600: "#16a34a", + 700: "#15803d", + 800: "#166534", + 900: "#14532d", + 950: "#052e16", + }, + emerald: { + 50: "#ecfdf5", + 100: "#d1fae5", + 200: "#a7f3d0", + 300: "#6ee7b7", + 400: "#34d399", + 500: "#10b981", + 600: "#059669", + 700: "#047857", + 800: "#065f46", + 900: "#064e3b", + 950: "#022c22", + }, + teal: { + 50: "#f0fdfa", + 100: "#ccfbf1", + 200: "#99f6e4", + 300: "#5eead4", + 400: "#2dd4bf", + 500: "#14b8a6", + 600: "#0d9488", + 700: "#0f766e", + 800: "#115e59", + 900: "#134e4a", + 950: "#042f2e", + }, + cyan: { + 50: "#ecfeff", + 100: "#cffafe", + 200: "#a5f3fc", + 300: "#67e8f9", + 400: "#22d3ee", + 500: "#06b6d4", + 600: "#0891b2", + 700: "#0e7490", + 800: "#155e75", + 900: "#164e63", + 950: "#083344", + }, + sky: { + 50: "#f0f9ff", + 100: "#e0f2fe", + 200: "#bae6fd", + 300: "#7dd3fc", + 400: "#38bdf8", + 500: "#0ea5e9", + 600: "#0284c7", + 700: "#0369a1", + 800: "#075985", + 900: "#0c4a6e", + 950: "#082f49", + }, + blue: { + 50: "#eff6ff", + 100: "#dbeafe", + 200: "#bfdbfe", + 300: "#93c5fd", + 400: "#60a5fa", + 500: "#3b82f6", + 600: "#2563eb", + 700: "#1d4ed8", + 800: "#1e40af", + 900: "#1e3a8a", + 950: "#172554", + }, + indigo: { + 50: "#eef2ff", + 100: "#e0e7ff", + 200: "#c7d2fe", + 300: "#a5b4fc", + 400: "#818cf8", + 500: "#6366f1", + 600: "#4f46e5", + 700: "#4338ca", + 800: "#3730a3", + 900: "#312e81", + 950: "#1e1b4b", + }, + violet: { + 50: "#f5f3ff", + 100: "#ede9fe", + 200: "#ddd6fe", + 300: "#c4b5fd", + 400: "#a78bfa", + 500: "#8b5cf6", + 600: "#7c3aed", + 700: "#6d28d9", + 800: "#5b21b6", + 900: "#4c1d95", + 950: "#2e1065", + }, + purple: { + 50: "#faf5ff", + 100: "#f3e8ff", + 200: "#e9d5ff", + 300: "#d8b4fe", + 400: "#c084fc", + 500: "#a855f7", + 600: "#9333ea", + 700: "#7e22ce", + 800: "#6b21a8", + 900: "#581c87", + 950: "#3b0764", + }, + fuchsia: { + 50: "#fdf4ff", + 100: "#fae8ff", + 200: "#f5d0fe", + 300: "#f0abfc", + 400: "#e879f9", + 500: "#d946ef", + 600: "#c026d3", + 700: "#a21caf", + 800: "#86198f", + 900: "#701a75", + 950: "#4a044e", + }, + pink: { + 50: "#fdf2f8", + 100: "#fce7f3", + 200: "#fbcfe8", + 300: "#f9a8d4", + 400: "#f472b6", + 500: "#ec4899", + 600: "#db2777", + 700: "#be185d", + 800: "#9d174d", + 900: "#831843", + 950: "#500724", + }, + rose: { + 50: "#fff1f2", + 100: "#ffe4e6", + 200: "#fecdd3", + 300: "#fda4af", + 400: "#fb7185", + 500: "#f43f5e", + 600: "#e11d48", + 700: "#be123c", + 800: "#9f1239", + 900: "#881337", + 950: "#4c0519", + }, +}; + +export default defineConfig({ + presets: [presetWind(), presetTypography()], + theme: { + colors: { + transparent: "transparent", + current: "currentColor", + primary: tailwindColors.indigo, + background: { + 50: tailwindColors.gray[50], + 100: tailwindColors.gray[100], + 200: tailwindColors.gray[200], + 300: tailwindColors.gray[300], + }, + foreground: { + 900: tailwindColors.gray[900], + 800: tailwindColors.gray[700], + 700: tailwindColors.gray[500], + }, + positive: tailwindColors.green, + negative: tailwindColors.red, + warning: tailwindColors.yellow, + }, + boxShadow: { + sm: "0 1px 6px 0 rgba(0, 0, 0, 0.05)", + DEFAULT: "0 1px 9px 0 rgba(0, 0, 0, 0.07), 0 1px 2px 0 rgba(0, 0, 0, 0.05)", + md: "0 4px 18px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -1px rgba(0, 0, 0, 0.05)", + lg: "0 10px 25px -3px rgba(0, 0, 0, 0.07), 0 4px 6px -2px rgba(0, 0, 0, 0.05)", + xl: "0 20px 50px -5px rgba(0, 0, 0, 0.07), 0 10px 10px -5px rgba(0, 0, 0, 0.04)", + "2xl": "0 25px 75px -12px rgba(0, 0, 0, 0.25)", + inner: "inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)", + none: "none", + }, + borderRadius: { + none: "0", + sm: "0.25rem", + DEFAULT: "0.375rem", + md: "0.5rem", + lg: "0.75rem", + xl: "1rem", + "2xl": "1.5rem", + "3xl": "2.25rem", + full: "9999px", + }, + }, +}); diff --git a/uno.config.ts b/uno.config.ts new file mode 100644 index 00000000..b8cd88c7 --- /dev/null +++ b/uno.config.ts @@ -0,0 +1,3 @@ +import config from "./packages/unocss/uno.config"; + +export default config;