From a0513b24e963278a396a8f89ef3972d05fb74ee8 Mon Sep 17 00:00:00 2001 From: Constant Date: Thu, 5 Sep 2024 17:22:35 +0200 Subject: [PATCH] Add Radix Colors plugin --- plugins/radix-colors/.eslintrc.cjs | 11 + plugins/radix-colors/framer.json | 6 + plugins/radix-colors/index.html | 13 + plugins/radix-colors/package-lock.json | 3008 +++++++++++++++++ plugins/radix-colors/package.json | 34 + plugins/radix-colors/public/icon.svg | 6 + plugins/radix-colors/readme.md | 5 + plugins/radix-colors/src/App.css | 20 + plugins/radix-colors/src/App.tsx | 99 + plugins/radix-colors/src/components/Row.tsx | 13 + plugins/radix-colors/src/constants/index.ts | 935 +++++ plugins/radix-colors/src/main.tsx | 14 + plugins/radix-colors/src/types/index.ts | 55 + .../radix-colors/src/utils/colorOptions.ts | 49 + plugins/radix-colors/src/utils/common.ts | 6 + .../src/utils/createFramerColors.ts | 35 + plugins/radix-colors/src/vite-env.d.ts | 1 + plugins/radix-colors/tsconfig.json | 23 + plugins/radix-colors/vite.config.ts | 12 + 19 files changed, 4345 insertions(+) create mode 100644 plugins/radix-colors/.eslintrc.cjs create mode 100644 plugins/radix-colors/framer.json create mode 100644 plugins/radix-colors/index.html create mode 100644 plugins/radix-colors/package-lock.json create mode 100644 plugins/radix-colors/package.json create mode 100644 plugins/radix-colors/public/icon.svg create mode 100644 plugins/radix-colors/readme.md create mode 100644 plugins/radix-colors/src/App.css create mode 100644 plugins/radix-colors/src/App.tsx create mode 100644 plugins/radix-colors/src/components/Row.tsx create mode 100644 plugins/radix-colors/src/constants/index.ts create mode 100644 plugins/radix-colors/src/main.tsx create mode 100644 plugins/radix-colors/src/types/index.ts create mode 100644 plugins/radix-colors/src/utils/colorOptions.ts create mode 100644 plugins/radix-colors/src/utils/common.ts create mode 100644 plugins/radix-colors/src/utils/createFramerColors.ts create mode 100644 plugins/radix-colors/src/vite-env.d.ts create mode 100644 plugins/radix-colors/tsconfig.json create mode 100644 plugins/radix-colors/vite.config.ts diff --git a/plugins/radix-colors/.eslintrc.cjs b/plugins/radix-colors/.eslintrc.cjs new file mode 100644 index 00000000..9358989c --- /dev/null +++ b/plugins/radix-colors/.eslintrc.cjs @@ -0,0 +1,11 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:react-hooks/recommended"], + ignorePatterns: ["dist", ".eslintrc.cjs"], + parser: "@typescript-eslint/parser", + plugins: ["react-refresh"], + rules: { + "react-refresh/only-export-components": ["warn", { allowConstantExport: true }], + }, +} diff --git a/plugins/radix-colors/framer.json b/plugins/radix-colors/framer.json new file mode 100644 index 00000000..61b74043 --- /dev/null +++ b/plugins/radix-colors/framer.json @@ -0,0 +1,6 @@ +{ + "id": "f3b3e3", + "name": "Radix Colors", + "modes": ["canvas"], + "icon": "/icon.svg" +} diff --git a/plugins/radix-colors/index.html b/plugins/radix-colors/index.html new file mode 100644 index 00000000..113e3821 --- /dev/null +++ b/plugins/radix-colors/index.html @@ -0,0 +1,13 @@ + + + + + + + Radix Colors + + +
+ + + diff --git a/plugins/radix-colors/package-lock.json b/plugins/radix-colors/package-lock.json new file mode 100644 index 00000000..b223ff44 --- /dev/null +++ b/plugins/radix-colors/package-lock.json @@ -0,0 +1,3008 @@ +{ + "name": "radix-colors", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "radix-colors", + "version": "0.0.0", + "dependencies": { + "@hookform/resolvers": "^3.6.0", + "framer-plugin": "^0", + "react": "^18", + "react-dom": "^18", + "react-hook-form": "^7.51.5", + "vite-plugin-mkcert": "^1", + "zod": "^3.23.8" + }, + "devDependencies": { + "@types/react": "^18", + "@types/react-dom": "^18", + "@typescript-eslint/eslint-plugin": "^7", + "@typescript-eslint/parser": "^7", + "@vitejs/plugin-react-swc": "^3", + "eslint": "^8", + "eslint-plugin-react-hooks": "^4", + "eslint-plugin-react-refresh": "^0", + "typescript": "^5.3.3", + "vite": "^5", + "vite-plugin-framer": "^0.0.10" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", + "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@hookform/resolvers": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.6.0.tgz", + "integrity": "sha512-UBcpyOX3+RR+dNnqBd0lchXpoL8p4xC21XP8H6Meb8uve5Br1GCnmg0PcBoKKqPKgGu9GHQ/oygcmPrQhetwqw==", + "peerDependencies": { + "react-hook-form": "^7.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@octokit/auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", + "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", + "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", + "dependencies": { + "@octokit/request": "^8.3.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.1.tgz", + "integrity": "sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g==", + "dependencies": { + "@octokit/types": "^13.5.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-request-log": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz", + "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==", + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.2.tgz", + "integrity": "sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==", + "dependencies": { + "@octokit/types": "^13.5.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "^5" + } + }, + "node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/rest": { + "version": "20.1.1", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.1.tgz", + "integrity": "sha512-MB4AYDsM5jhIHro/dq4ix1iWTLGToIGk6cWF5L6vanFaMble5jTX/UBQyiv05HsWnwUtY8JrfHy2LWfKwihqMw==", + "dependencies": { + "@octokit/core": "^5.0.2", + "@octokit/plugin-paginate-rest": "11.3.1", + "@octokit/plugin-request-log": "^4.0.0", + "@octokit/plugin-rest-endpoint-methods": "13.2.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/core": { + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.5.25.tgz", + "integrity": "sha512-qdGEIdLVoTjEQ7w72UyyQ0wLFY4XbHfZiidmPHKJQsvSXzdpHXxPdlTCea/mY4AhMqo/M+pvkJSXJAxZnFl7qw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.7" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.5.25", + "@swc/core-darwin-x64": "1.5.25", + "@swc/core-linux-arm-gnueabihf": "1.5.25", + "@swc/core-linux-arm64-gnu": "1.5.25", + "@swc/core-linux-arm64-musl": "1.5.25", + "@swc/core-linux-x64-gnu": "1.5.25", + "@swc/core-linux-x64-musl": "1.5.25", + "@swc/core-win32-arm64-msvc": "1.5.25", + "@swc/core-win32-ia32-msvc": "1.5.25", + "@swc/core-win32-x64-msvc": "1.5.25" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.25.tgz", + "integrity": "sha512-YbD0SBgVJS2DM0vwJTU5m7+wOyCjHPBDMf3nCBJQzFZzOLzK11eRW7SzU2jhJHr9HI9sKcNFfN4lIC2Sj+4inA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.5.25.tgz", + "integrity": "sha512-OhP4TROT6gQuozn+ah0Y4UidSdgDmxwtQq3lgCUIAxJYErJAQ82/Y0kve2UaNmkSGjOHU+/b4siHPrYTkXOk0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.25.tgz", + "integrity": "sha512-tNmUfrAHxN2gvYPyYNnHx2CYlPO7DGAUuK/bZrqawu++djcg+atAV3eI3XYJgmHId7/sYAlDQ9wjkrOLofFjVg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.25.tgz", + "integrity": "sha512-stzpke+bRaNFM/HrZPRjX0aQZ86S/2DChVCwb8NAV1n5lu9mz1CS750y7WbbtX/KZjk92FsCeRy2qwkvjI0gWw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.25.tgz", + "integrity": "sha512-UckUfDYedish/bj2V1jgQDGgouLhyRpG7jgF3mp8jHir11V2K6JiTyjFoz99eOiclS3+hNdr4QLJ+ifrQMJNZw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.25.tgz", + "integrity": "sha512-LwbJEgNT3lXbvz4WFzVNXNvs8DvxpoXjMZk9K9Hig8tmZQJKHC2qZTGomcyK5EFzfj2HBuBXZnAEW8ZT9PcEaA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.25.tgz", + "integrity": "sha512-rsepMTgml0EkswWkBpg3Wrjj5eqjwTzZN5omAn1klzXSZnClTrfeHvBuoIJYVr1yx+jmBkqySgME2p7+magUAw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.25.tgz", + "integrity": "sha512-DJDsLBsRBV3uQBShRK2x6fqzABp9RLNVxDUpTTvUjc7qywJ8vS/yn+POK/zCyVEqLagf1z/8D5CEQ+RAIJq1NA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.25.tgz", + "integrity": "sha512-BARL1ulHol53MEKC1ZVWM3A3FP757UUgG5Q8v97za+4a1SaIgbwvAQyHDxMYWi9+ij+OapK8YnWjJcFa17g8dw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.25.tgz", + "integrity": "sha512-o+MHUWrQI9iR6EusEV8eNU2Ezi3KtlhUR4gfptQN5MbVzlgjTvQbhiKpE1GYOxp+0BLBbKRwITKOcdhxfEJ2Uw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true + }, + "node_modules/@swc/types": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.7.tgz", + "integrity": "sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==", + "dev": true, + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.12.0.tgz", + "integrity": "sha512-7F91fcbuDf/d3S8o21+r3ZncGIke/+eWk0EpO21LXhDfLahriZF9CGj4fbAetEjlaBdjdSm9a6VeXbpbT6Z40Q==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.12.0", + "@typescript-eslint/type-utils": "7.12.0", + "@typescript-eslint/utils": "7.12.0", + "@typescript-eslint/visitor-keys": "7.12.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.12.0.tgz", + "integrity": "sha512-dm/J2UDY3oV3TKius2OUZIFHsomQmpHtsV0FTh1WO8EKgHLQ1QCADUqscPgTpU+ih1e21FQSRjXckHn3txn6kQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.12.0", + "@typescript-eslint/types": "7.12.0", + "@typescript-eslint/typescript-estree": "7.12.0", + "@typescript-eslint/visitor-keys": "7.12.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.12.0.tgz", + "integrity": "sha512-itF1pTnN6F3unPak+kutH9raIkL3lhH1YRPGgt7QQOh43DQKVJXmWkpb+vpc/TiDHs6RSd9CTbDsc/Y+Ygq7kg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.12.0", + "@typescript-eslint/visitor-keys": "7.12.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.12.0.tgz", + "integrity": "sha512-lib96tyRtMhLxwauDWUp/uW3FMhLA6D0rJ8T7HmH7x23Gk1Gwwu8UZ94NMXBvOELn6flSPiBrCKlehkiXyaqwA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.12.0", + "@typescript-eslint/utils": "7.12.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.12.0.tgz", + "integrity": "sha512-o+0Te6eWp2ppKY3mLCU+YA9pVJxhUJE15FV7kxuD9jgwIAa+w/ycGJBMrYDTpVGUM/tgpa9SeMOugSabWFq7bg==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.12.0.tgz", + "integrity": "sha512-5bwqLsWBULv1h6pn7cMW5dXX/Y2amRqLaKqsASVwbBHMZSnHqE/HN4vT4fE0aFsiwxYvr98kqOWh1a8ZKXalCQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.12.0", + "@typescript-eslint/visitor-keys": "7.12.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.12.0.tgz", + "integrity": "sha512-Y6hhwxwDx41HNpjuYswYp6gDbkiZ8Hin9Bf5aJQn1bpTs3afYY4GX+MPYxma8jtoIV2GRwTM/UJm/2uGCVv+DQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.12.0", + "@typescript-eslint/types": "7.12.0", + "@typescript-eslint/typescript-estree": "7.12.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.12.0.tgz", + "integrity": "sha512-uZk7DevrQLL3vSnfFl5bj4sL75qC9D6EdjemIdbtkuUmIheWpuiiylSY01JxJE7+zGrOWDZrp1WxOuDntvKrHQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.12.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz", + "integrity": "sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==", + "dev": true, + "dependencies": { + "@swc/core": "^1.5.7" + }, + "peerDependencies": { + "vite": "^4 || ^5" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz", + "integrity": "sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "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/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/framer-plugin": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/framer-plugin/-/framer-plugin-0.2.4.tgz", + "integrity": "sha512-y5r5mnlCJNDeO4ssaEaK7pFlIdjZJyzMl2psTKN0N1i/jJvoaVWzrZfmmE98AmBz1OElTs+bebF3cI0je2uUVg==", + "peerDependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "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": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-hook-form": { + "version": "7.51.5", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.5.tgz", + "integrity": "sha512-J2ILT5gWx1XUIJRETiA7M19iXHlG74+6O3KApzvqB/w8S5NQR7AbU8HVZrMALdmDgWpRPYiZJl0zx8Z4L2mP6Q==", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.12.tgz", + "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-framer": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/vite-plugin-framer/-/vite-plugin-framer-0.0.10.tgz", + "integrity": "sha512-BKWzLPfJZNSZGVfcQyB7oppvsXkipwRX8MwHc0nbHmUUK9sOW/tyYm0O8voJYfKnbqy6ccGp2Qd5c/iv+qgoZw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0" + } + }, + "node_modules/vite-plugin-mkcert": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/vite-plugin-mkcert/-/vite-plugin-mkcert-1.17.5.tgz", + "integrity": "sha512-KKGY3iHx/9zb7ow8JJ+nLN2HiNIBuPBwj34fJ+jAJT89/8qfk7msO7G7qipR8VDEm9xMCys0xT11QOJbZcg3/Q==", + "dependencies": { + "@octokit/rest": "^20.0.2", + "axios": "^1.6.8", + "debug": "^4.3.4", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=v16.7.0" + }, + "peerDependencies": { + "vite": ">=3" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/plugins/radix-colors/package.json b/plugins/radix-colors/package.json new file mode 100644 index 00000000..91877c24 --- /dev/null +++ b/plugins/radix-colors/package.json @@ -0,0 +1,34 @@ +{ + "name": "radix-colors", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build --base=${PREFIX_BASE_PATH:+/$npm_package_name}/", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@hookform/resolvers": "^3.6.0", + "framer-plugin": "^0", + "react": "^18", + "react-dom": "^18", + "react-hook-form": "^7.51.5", + "vite-plugin-mkcert": "^1", + "zod": "^3.23.8" + }, + "devDependencies": { + "@types/react": "^18", + "@types/react-dom": "^18", + "@typescript-eslint/eslint-plugin": "^7", + "@typescript-eslint/parser": "^7", + "@vitejs/plugin-react-swc": "^3", + "eslint": "^8", + "eslint-plugin-react-hooks": "^4", + "eslint-plugin-react-refresh": "^0", + "typescript": "^5.3.3", + "vite": "^5", + "vite-plugin-framer": "^0.0.10" + } +} diff --git a/plugins/radix-colors/public/icon.svg b/plugins/radix-colors/public/icon.svg new file mode 100644 index 00000000..95ed988d --- /dev/null +++ b/plugins/radix-colors/public/icon.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/plugins/radix-colors/readme.md b/plugins/radix-colors/readme.md new file mode 100644 index 00000000..c2cfa78b --- /dev/null +++ b/plugins/radix-colors/readme.md @@ -0,0 +1,5 @@ +# Radix Colors + +Easily import [Radix colors](https://www.radix-ui.com/colors) scales into Framer. + +**By:** @waraness99 diff --git a/plugins/radix-colors/src/App.css b/plugins/radix-colors/src/App.css new file mode 100644 index 00000000..13424075 --- /dev/null +++ b/plugins/radix-colors/src/App.css @@ -0,0 +1,20 @@ +main { + display: flex; + flex-direction: column; + align-items: start; + padding: 0 15px 15px 15px; + height: 100%; + gap: 15px; +} + +.row { + display: grid; + width: 100%; + grid-template-columns: 64px 1fr; + align-items: center; +} + +.row input, +.row select { + width: 100%; +} diff --git a/plugins/radix-colors/src/App.tsx b/plugins/radix-colors/src/App.tsx new file mode 100644 index 00000000..19d21e23 --- /dev/null +++ b/plugins/radix-colors/src/App.tsx @@ -0,0 +1,99 @@ +import { framer } from "framer-plugin" +import { Row } from "./components/Row" + +import { useForm } from "react-hook-form" +import { zodResolver } from "@hookform/resolvers/zod" + +import { ColorOptions, createFramerColors } from "./utils/createFramerColors" +import { colorNamesByCategory } from "./utils/colorOptions" +import { colorThemes, colorVariants } from "./types" +import { slugToTitle } from "./utils/common" + +import "./App.css" + +framer.showUI({ + position: "top right", + width: 240, + height: 210, +}) + +export function App() { + const { + register, + handleSubmit, + formState: { isSubmitting, errors }, + } = useForm({ + defaultValues: { name: "gray", variant: "solid", theme: "auto" }, + resolver: zodResolver(ColorOptions), + }) + + const generateColor = async (options: ColorOptions) => { + try { + await createFramerColors(options) + framer.notify(`${slugToTitle(options.name)} scale has been generated.`, { + durationMs: 3000, + variant: "success", + }) + } catch (error) { + framer.notify("Failed to generate color.", { + durationMs: 3000, + variant: "error", + }) + console.error(error) + } + } + + return ( +
+
+ + + + + + + + + + + + + {errors.name &&

{errors.name.message}

} + + + +

+ Learn more on{" "} + + Radix Colors + + . +

+
+
+ ) +} diff --git a/plugins/radix-colors/src/components/Row.tsx b/plugins/radix-colors/src/components/Row.tsx new file mode 100644 index 00000000..d004cdb8 --- /dev/null +++ b/plugins/radix-colors/src/components/Row.tsx @@ -0,0 +1,13 @@ +type RowProps = { + children: React.ReactNode + title: string +} + +export const Row = ({ children, title }: RowProps) => { + return ( +
+ + {children} +
+ ) +} diff --git a/plugins/radix-colors/src/constants/index.ts b/plugins/radix-colors/src/constants/index.ts new file mode 100644 index 00000000..6a6d2348 --- /dev/null +++ b/plugins/radix-colors/src/constants/index.ts @@ -0,0 +1,935 @@ +import type { ColorScales } from "../types" + +export const colorsScales: ColorScales = { + gray: { + solid: { + 1: { light: "#fcfcfc", dark: "#111111" }, + 2: { light: "#f9f9f9", dark: "#191919" }, + 3: { light: "#f0f0f0", dark: "#222222" }, + 4: { light: "#e8e8e8", dark: "#2a2a2a" }, + 5: { light: "#e0e0e0", dark: "#313131" }, + 6: { light: "#d9d9d9", dark: "#3a3a3a" }, + 7: { light: "#cecece", dark: "#484848" }, + 8: { light: "#bbbbbb", dark: "#606060" }, + 9: { light: "#8d8d8d", dark: "#6e6e6e" }, + 10: { light: "#838383", dark: "#7b7b7b" }, + 11: { light: "#646464", dark: "#b4b4b4" }, + 12: { light: "#202020", dark: "#eeeeee" }, + }, + alpha: { + 1: { light: "#00000003", dark: "#00000000" }, + 2: { light: "#00000006", dark: "#ffffff09" }, + 3: { light: "#0000000f", dark: "#ffffff12" }, + 4: { light: "#00000017", dark: "#ffffff1b" }, + 5: { light: "#0000001f", dark: "#ffffff22" }, + 6: { light: "#00000026", dark: "#ffffff2c" }, + 7: { light: "#00000031", dark: "#ffffff3b" }, + 8: { light: "#00000044", dark: "#ffffff55" }, + 9: { light: "#00000072", dark: "#ffffff64" }, + 10: { light: "#0000007c", dark: "#ffffff72" }, + 11: { light: "#0000009b", dark: "#ffffffaf" }, + 12: { light: "#000000df", dark: "#ffffffed" }, + }, + }, + mauve: { + solid: { + 1: { light: "#fdfcfd", dark: "#121113" }, + 2: { light: "#faf9fb", dark: "#1a191b" }, + 3: { light: "#f2eff3", dark: "#232225" }, + 4: { light: "#eae7ec", dark: "#2b292d" }, + 5: { light: "#e3dfe6", dark: "#323035" }, + 6: { light: "#dbd8e0", dark: "#3c393f" }, + 7: { light: "#d0cdd7", dark: "#49474e" }, + 8: { light: "#bcbac7", dark: "#625f69" }, + 9: { light: "#8e8c99", dark: "#6f6d78" }, + 10: { light: "#84828e", dark: "#7c7a85" }, + 11: { light: "#65636d", dark: "#b5b2bc" }, + 12: { light: "#211f26", dark: "#eeeef0" }, + }, + alpha: { + 1: { light: "#55005503", dark: "#00000000" }, + 2: { light: "#2b005506", dark: "#f5f4f609" }, + 3: { light: "#30004010", dark: "#ebeaf814" }, + 4: { light: "#20003618", dark: "#eee5f81d" }, + 5: { light: "#20003820", dark: "#efe6fe25" }, + 6: { light: "#14003527", dark: "#f1e6fd30" }, + 7: { light: "#10003332", dark: "#eee9ff40" }, + 8: { light: "#08003145", dark: "#eee7ff5d" }, + 9: { light: "#05001d73", dark: "#eae6fd6e" }, + 10: { light: "#0500197d", dark: "#ece9fd7c" }, + 11: { light: "#0400119c", dark: "#f5f1ffb7" }, + 12: { light: "#020008e0", dark: "#fdfdffef" }, + }, + }, + slate: { + solid: { + 1: { light: "#fcfcfd", dark: "#111213" }, + 2: { light: "#f9f9fb", dark: "#1a1b1c" }, + 3: { light: "#f0f0f3", dark: "#232426" }, + 4: { light: "#e8e8ec", dark: "#2b2c2f" }, + 5: { light: "#e0e1e6", dark: "#333539" }, + 6: { light: "#d9d9e0", dark: "#3c3f45" }, + 7: { light: "#cdced6", dark: "#4a4e54" }, + 8: { light: "#b9bbc6", dark: "#646a72" }, + 9: { light: "#8b8d98", dark: "#70767e" }, + 10: { light: "#80838d", dark: "#7d838d" }, + 11: { light: "#60646c", dark: "#b4b8be" }, + 12: { light: "#1c2024", dark: "#f0f1f3" }, + }, + alpha: { + 1: { light: "#00005503", dark: "#00000000" }, + 2: { light: "#00005506", dark: "#f5f4f609" }, + 3: { light: "#0000330f", dark: "#ebeaf814" }, + 4: { light: "#00002d17", dark: "#eee5f81d" }, + 5: { light: "#0009321f", dark: "#efe6fe25" }, + 6: { light: "#00002f26", dark: "#f1e6fd30" }, + 7: { light: "#00062e32", dark: "#eee9ff40" }, + 8: { light: "#00083046", dark: "#eee7ff5d" }, + 9: { light: "#00051d74", dark: "#eae6fd6e" }, + 10: { light: "#00071b7f", dark: "#ece9fd7c" }, + 11: { light: "#0007149f", dark: "#f5f1ffb7" }, + 12: { light: "#000509e3", dark: "#fdfdffef" }, + }, + }, + sage: { + solid: { + 1: { light: "#fbfdfc", dark: "#121312" }, + 2: { light: "#f7f9f8", dark: "#1b1c1b" }, + 3: { light: "#eef1f0", dark: "#242524" }, + 4: { light: "#e6e9e8", dark: "#2c2d2c" }, + 5: { light: "#dfe2e0", dark: "#343635" }, + 6: { light: "#d7dad9", dark: "#3d403f" }, + 7: { light: "#cbcfcd", dark: "#4b4f4e" }, + 8: { light: "#b8bcba", dark: "#656a68" }, + 9: { light: "#868e8b", dark: "#727876" }, + 10: { light: "#7c8481", dark: "#7e8482" }, + 11: { light: "#5f6563", dark: "#b5bab8" }, + 12: { light: "#1a211e", dark: "#eef0ef" }, + }, + alpha: { + 1: { light: "#00804004", dark: "#00000000" }, + 2: { light: "#00402008", dark: "#f5f4f609" }, + 3: { light: "#002d1e11", dark: "#ebeaf814" }, + 4: { light: "#001f1519", dark: "#eee5f81d" }, + 5: { light: "#00180820", dark: "#efe6fe25" }, + 6: { light: "#00140d28", dark: "#f1e6fd30" }, + 7: { light: "#00140a34", dark: "#eee9ff40" }, + 8: { light: "#000f0847", dark: "#eee7ff5d" }, + 9: { light: "#00110b79", dark: "#eae6fd6e" }, + 10: { light: "#00100a83", dark: "#ece9fd7c" }, + 11: { light: "#000a07a0", dark: "#f5f1ffb7" }, + 12: { light: "#000805e5", dark: "#fdfdffef" }, + }, + }, + olive: { + solid: { + 1: { light: "#fcfdfc", dark: "#121312" }, + 2: { light: "#f8faf8", dark: "#1b1c1b" }, + 3: { light: "#eff1ef", dark: "#242524" }, + 4: { light: "#e7e9e7", dark: "#2c2d2c" }, + 5: { light: "#dfe2df", dark: "#343635" }, + 6: { light: "#d7dad7", dark: "#3d403f" }, + 7: { light: "#cccfcc", dark: "#4b4f4e" }, + 8: { light: "#b9bcb8", dark: "#656a68" }, + 9: { light: "#898e87", dark: "#727876" }, + 10: { light: "#7f847d", dark: "#7e8482" }, + 11: { light: "#60655f", dark: "#b5bab8" }, + 12: { light: "#1d211c", dark: "#eef0ef" }, + }, + alpha: { + 1: { light: "#00550003", dark: "#00000000" }, + 2: { light: "#00490007", dark: "#f5f4f609" }, + 3: { light: "#00200010", dark: "#ebeaf814" }, + 4: { light: "#00160018", dark: "#eee5f81d" }, + 5: { light: "#00180020", dark: "#efe6fe25" }, + 6: { light: "#00140028", dark: "#f1e6fd30" }, + 7: { light: "#000f0033", dark: "#eee9ff40" }, + 8: { light: "#040f0047", dark: "#eee7ff5d" }, + 9: { light: "#050f0078", dark: "#eae6fd6e" }, + 10: { light: "#040e0082", dark: "#ece9fd7c" }, + 11: { light: "#020a00a0", dark: "#f5f1ffb7" }, + 12: { light: "#010600e3", dark: "#fdfdffef" }, + }, + }, + sand: { + solid: { + 1: { light: "#fdfdfc", dark: "#131312" }, + 2: { light: "#f9f9f8", dark: "#1b1b1a" }, + 3: { light: "#f1f0ef", dark: "#242423" }, + 4: { light: "#e9e8e6", dark: "#2d2d2b" }, + 5: { light: "#e2e1de", dark: "#353532" }, + 6: { light: "#dad9d6", dark: "#3f3f3b" }, + 7: { light: "#cfceca", dark: "#4e4e48" }, + 8: { light: "#bcbbb5", dark: "#686860" }, + 9: { light: "#8d8d86", dark: "#76756e" }, + 10: { light: "#82827c", dark: "#82817a" }, + 11: { light: "#63635e", dark: "#bcbab3" }, + 12: { light: "#21201c", dark: "#f1f0ee" }, + }, + alpha: { + 1: { light: "#55550003", dark: "#00000000" }, + 2: { light: "#25250007", dark: "#f7f4e609" }, + 3: { light: "#20100010", dark: "#f4ebe614" }, + 4: { light: "#1f150019", dark: "#f3e8e61d" }, + 5: { light: "#1f180021", dark: "#f4e6e625" }, + 6: { light: "#19130029", dark: "#f5e7e630" }, + 7: { light: "#19140035", dark: "#f6e8e63f" }, + 8: { light: "#1915014a", dark: "#f8e7e55d" }, + 9: { light: "#0f0f0079", dark: "#f9e6e56e" }, + 10: { light: "#0c0c0083", dark: "#f9e6e57c" }, + 11: { light: "#080800a1", dark: "#fcf1efb7" }, + 12: { light: "#060500e3", dark: "#fefefdf0" }, + }, + }, + gold: { + solid: { + 1: { light: "#fdfdfc", dark: "#171311" }, + 2: { light: "#faf9f2", dark: "#1f1a12" }, + 3: { light: "#f2f0e7", dark: "#292316" }, + 4: { light: "#eae6db", dark: "#312b1a" }, + 5: { light: "#e1dccf", dark: "#37311d" }, + 6: { light: "#d8d0bf", dark: "#3e3923" }, + 7: { light: "#cbc0aa", dark: "#4a452a" }, + 8: { light: "#b9a88d", dark: "#615a36" }, + 9: { light: "#978365", dark: "#6f683e" }, + 10: { light: "#8c7a5e", dark: "#7a7245" }, + 11: { light: "#71624b", dark: "#b2a78a" }, + 12: { light: "#3b352b", dark: "#f3f0e4" }, + }, + alpha: { + 1: { light: "#55550003", dark: "#00000000" }, + 2: { light: "#9d8a000d", dark: "#f4f2e409" }, + 3: { light: "#75600018", dark: "#efece414" }, + 4: { light: "#6b4e0024", dark: "#f3ece11d" }, + 5: { light: "#60460030", dark: "#f5ebe124" }, + 6: { light: "#64440040", dark: "#f6eddf2f" }, + 7: { light: "#63420055", dark: "#f6ebdd3f" }, + 8: { light: "#633d0072", dark: "#f8eadc5c" }, + 9: { light: "#5332009a", dark: "#f8e7db6d" }, + 10: { light: "#492d00a1", dark: "#f8e6db7b" }, + 11: { light: "#362100b4", dark: "#fbf2dfb5" }, + 12: { light: "#130c00d4", dark: "#fefdf3ec" }, + }, + }, + bronze: { + solid: { + 1: { light: "#fdfcfc", dark: "#141312" }, + 2: { light: "#fdf7f5", dark: "#1c1918" }, + 3: { light: "#f6edea", dark: "#242220" }, + 4: { light: "#efe4df", dark: "#2d2a28" }, + 5: { light: "#e7d9d3", dark: "#34312f" }, + 6: { light: "#dfcdc5", dark: "#3d3936" }, + 7: { light: "#d3bcb3", dark: "#4a4642" }, + 8: { light: "#c2a499", dark: "#635c56" }, + 9: { light: "#a18072", dark: "#706a64" }, + 10: { light: "#957468", dark: "#7c746e" }, + 11: { light: "#7d5e54", dark: "#b1a7a1" }, + 12: { light: "#43302b", dark: "#f3edeb" }, + }, + alpha: { + 1: { light: "#55000003", dark: "#00000000" }, + 2: { light: "#cc33000a", dark: "#f4f0eb09" }, + 3: { light: "#92250015", dark: "#eae3df14" }, + 4: { light: "#80280020", dark: "#f3e4dc1d" }, + 5: { light: "#7423002c", dark: "#f4e2d924" }, + 6: { light: "#7324003a", dark: "#f6e1d62f" }, + 7: { light: "#6c1f004c", dark: "#f6dfd33f" }, + 8: { light: "#671c0066", dark: "#f8ddcf5b" }, + 9: { light: "#551a008d", dark: "#f8dacc6d" }, + 10: { light: "#4c150097", dark: "#f8d8c77a" }, + 11: { light: "#3d0f00ab", dark: "#fbede0b5" }, + 12: { light: "#1d0600d4", dark: "#fef6efe6" }, + }, + }, + brown: { + solid: { + 1: { light: "#fefdfc", dark: "#161312" }, + 2: { light: "#fcf9f6", dark: "#1d1918" }, + 3: { light: "#f6eee7", dark: "#262220" }, + 4: { light: "#f0e4d9", dark: "#2e2a28" }, + 5: { light: "#ebdaca", dark: "#35312e" }, + 6: { light: "#e4cdb7", dark: "#3e3936" }, + 7: { light: "#dcbc9f", dark: "#4c4642" }, + 8: { light: "#cea37e", dark: "#665c56" }, + 9: { light: "#ad7f58", dark: "#746a64" }, + 10: { light: "#a07553", dark: "#80746e" }, + 11: { light: "#815e46", dark: "#b1a7a1" }, + 12: { light: "#3e332e", dark: "#f6edeb" }, + }, + alpha: { + 1: { light: "#aa550003", dark: "#00000000" }, + 2: { light: "#aa550009", dark: "#f4f0eb09" }, + 3: { light: "#a04b0018", dark: "#eae3df14" }, + 4: { light: "#9b4a0026", dark: "#f3e4dc1d" }, + 5: { light: "#9f4d0035", dark: "#f4e2d924" }, + 6: { light: "#a04e0048", dark: "#f6e1d62f" }, + 7: { light: "#a34e0060", dark: "#f6dfd33f" }, + 8: { light: "#9f4a0081", dark: "#f8ddcf5b" }, + 9: { light: "#823c00a7", dark: "#f8dacc6d" }, + 10: { light: "#723300ac", dark: "#f8d8c77a" }, + 11: { light: "#522100b9", dark: "#fbede0b5" }, + 12: { light: "#140600d1", dark: "#fef6efe6" }, + }, + }, + yellow: { + solid: { + 1: { light: "#fdfdf9", dark: "#1a1500" }, + 2: { light: "#fefce9", dark: "#221b00" }, + 3: { light: "#fffab8", dark: "#2c2200" }, + 4: { light: "#fff394", dark: "#352900" }, + 5: { light: "#ffe770", dark: "#3d2f00" }, + 6: { light: "#f3d768", dark: "#493900" }, + 7: { light: "#e4c767", dark: "#5c4800" }, + 8: { light: "#d5ae39", dark: "#7e6400" }, + 9: { light: "#ffe629", dark: "#997a00" }, + 10: { light: "#ffdc00", dark: "#b38f00" }, + 11: { light: "#9e6c00", dark: "#ffd43b" }, + 12: { light: "#473b1f", dark: "#fff3c1" }, + }, + alpha: { + 1: { light: "#aaaa0006", dark: "#00000000" }, + 2: { light: "#f4dd0016", dark: "#fefce300" }, + 3: { light: "#ffee0047", dark: "#fef7cb04" }, + 4: { light: "#ffe3016b", dark: "#fff09f08" }, + 5: { light: "#ffd5008f", dark: "#ffe67a10" }, + 6: { light: "#ebbc0097", dark: "#ffe06514" }, + 7: { light: "#d2a10098", dark: "#ffd24a1e" }, + 8: { light: "#c99700c6", dark: "#ffb12d30" }, + 9: { light: "#ffe100d6", dark: "#ffd83d4e" }, + 10: { light: "#ffdc00", dark: "#ffd5335d" }, + 11: { light: "#9e6c00", dark: "#ffec9b9c" }, + 12: { light: "#2e2000e0", dark: "#fffbdccf" }, + }, + }, + amber: { + solid: { + 1: { light: "#fefdfb", dark: "#1f1400" }, + 2: { light: "#fefbe9", dark: "#271a00" }, + 3: { light: "#fff7c2", dark: "#332200" }, + 4: { light: "#ffee9c", dark: "#3f2a00" }, + 5: { light: "#fbe577", dark: "#493200" }, + 6: { light: "#f3d673", dark: "#573d00" }, + 7: { light: "#e9c162", dark: "#704e00" }, + 8: { light: "#e2a336", dark: "#946b00" }, + 9: { light: "#ffc53d", dark: "#b98000" }, + 10: { light: "#ffba18", dark: "#dc9514" }, + 11: { light: "#ab6400", dark: "#ffca56" }, + 12: { light: "#4f3422", dark: "#ffeecc" }, + }, + alpha: { + 1: { light: "#c0800004", dark: "#00000000" }, + 2: { light: "#f4d10016", dark: "#fffce80a" }, + 3: { light: "#ffde003d", dark: "#fff8db1a" }, + 4: { light: "#ffd40063", dark: "#ffefc22c" }, + 5: { light: "#f8cf0088", dark: "#ffe7ad3a" }, + 6: { light: "#eab5008c", dark: "#ffdd994c" }, + 7: { light: "#dc9b009d", dark: "#ffca7b68" }, + 8: { light: "#da8a00c9", dark: "#ffab4e8e" }, + 9: { light: "#ffb300c2", dark: "#ffcf6ab7" }, + 10: { light: "#ffb300e7", dark: "#ffcf5cc6" }, + 11: { light: "#ab6400", dark: "#ffefabec" }, + 12: { light: "#341500dd", dark: "#fffdeedd" }, + }, + }, + orange: { + solid: { + 1: { light: "#fefcfb", dark: "#1f120b" }, + 2: { light: "#fff7ed", dark: "#2a1b11" }, + 3: { light: "#ffefd6", dark: "#372514" }, + 4: { light: "#ffdfb5", dark: "#442e1a" }, + 5: { light: "#ffd19a", dark: "#50371e" }, + 6: { light: "#ffc182", dark: "#614325" }, + 7: { light: "#f5ae73", dark: "#7c542c" }, + 8: { light: "#ec9455", dark: "#a15f0d" }, + 9: { light: "#f76b15", dark: "#f76b15" }, + 10: { light: "#ef5f00", dark: "#ff7d34" }, + 11: { light: "#cc4e00", dark: "#ffb185" }, + 12: { light: "#582d1d", dark: "#ffe4cc" }, + }, + alpha: { + 1: { light: "#c0400004", dark: "#00000000" }, + 2: { light: "#ff8e0012", dark: "#fff4e00c" }, + 3: { light: "#ff9c0029", dark: "#ffebb618" }, + 4: { light: "#ff91014a", dark: "#ffdd9731" }, + 5: { light: "#ff8b0065", dark: "#ffcf783e" }, + 6: { light: "#ff81007d", dark: "#ffbe5f55" }, + 7: { light: "#ed6c008c", dark: "#ffa34a75" }, + 8: { light: "#e35f00aa", dark: "#ff7a279f" }, + 9: { light: "#f65e00ea", dark: "#ff974cc9" }, + 10: { light: "#ef5f00", dark: "#ffb85ae8" }, + 11: { light: "#cc4e00", dark: "#ffcb8bec" }, + 12: { light: "#431200e2", dark: "#fff5ebf2" }, + }, + }, + tomato: { + solid: { + 1: { light: "#fffcfc", dark: "#1f0905" }, + 2: { light: "#fff8f7", dark: "#2c0e07" }, + 3: { light: "#feebe7", dark: "#391209" }, + 4: { light: "#ffdcd3", dark: "#45160b" }, + 5: { light: "#ffcdc2", dark: "#501a0d" }, + 6: { light: "#fdbdaf", dark: "#631f10" }, + 7: { light: "#f5a898", dark: "#802413" }, + 8: { light: "#ec8e7b", dark: "#aa341c" }, + 9: { light: "#e54d2e", dark: "#e54d2e" }, + 10: { light: "#dd4425", dark: "#ff6a45" }, + 11: { light: "#d13415", dark: "#ff9684" }, + 12: { light: "#5c271f", dark: "#ffe9e4" }, + }, + alpha: { + 1: { light: "#ff000003", dark: "#00000000" }, + 2: { light: "#ff200008", dark: "#ffe8e80c" }, + 3: { light: "#f52b0018", dark: "#ffdbdb18" }, + 4: { light: "#ff35002c", dark: "#ffcccc31" }, + 5: { light: "#ff2e003d", dark: "#ffbdbd3e" }, + 6: { light: "#f92d0050", dark: "#ffaaaa55" }, + 7: { light: "#e7280067", dark: "#ff8f8f75" }, + 8: { light: "#db250084", dark: "#ff6767a0" }, + 9: { light: "#df2600d1", dark: "#ff8888c6" }, + 10: { light: "#d72400da", dark: "#ffa1a1e0" }, + 11: { light: "#cd2200ea", dark: "#ffb9b9ec" }, + 12: { light: "#460900e0", dark: "#fff5f5f0" }, + }, + }, + red: { + solid: { + 1: { light: "#fffcfc", dark: "#1f0606" }, + 2: { light: "#fff7f7", dark: "#2c0c0c" }, + 3: { light: "#feebec", dark: "#391212" }, + 4: { light: "#ffdbdc", dark: "#451818" }, + 5: { light: "#ffcdce", dark: "#501d1d" }, + 6: { light: "#fdbdbe", dark: "#632525" }, + 7: { light: "#f4a9aa", dark: "#802f2f" }, + 8: { light: "#eb8e90", dark: "#aa3b3b" }, + 9: { light: "#e5484d", dark: "#e5484d" }, + 10: { light: "#dc3e42", dark: "#ff5c5c" }, + 11: { light: "#ce2c31", dark: "#ff8888" }, + 12: { light: "#641723", dark: "#ffe9e9" }, + }, + alpha: { + 1: { light: "#ff000003", dark: "#00000000" }, + 2: { light: "#ff000008", dark: "#ffeded09" }, + 3: { light: "#f3000d14", dark: "#ffdbdb18" }, + 4: { light: "#ff000824", dark: "#ffc6c626" }, + 5: { light: "#ff000632", dark: "#ffb0b032" }, + 6: { light: "#f8000442", dark: "#ff99994a" }, + 7: { light: "#df000356", dark: "#ff787868" }, + 8: { light: "#d2000571", dark: "#ff505088" }, + 9: { light: "#db0007b7", dark: "#ff7878b5" }, + 10: { light: "#d10005c1", dark: "#ff8f8fd4" }, + 11: { light: "#c40006d3", dark: "#ffb9b9e8" }, + 12: { light: "#55000de8", dark: "#fff5f5f5" }, + }, + }, + ruby: { + solid: { + 1: { light: "#fffcfd", dark: "#1f0a0d" }, + 2: { light: "#fff7f8", dark: "#2c1016" }, + 3: { light: "#feeaed", dark: "#39161f" }, + 4: { light: "#ffdce1", dark: "#451b27" }, + 5: { light: "#ffced6", dark: "#50202f" }, + 6: { light: "#f8bfc8", dark: "#63283a" }, + 7: { light: "#efacb8", dark: "#803345" }, + 8: { light: "#e592a3", dark: "#aa4254" }, + 9: { light: "#e54666", dark: "#e54666" }, + 10: { light: "#dc3b5d", dark: "#ff5a75" }, + 11: { light: "#ca244d", dark: "#ff8b99" }, + 12: { light: "#64172b", dark: "#ffeef0" }, + }, + alpha: { + 1: { light: "#ff005503", dark: "#00000000" }, + 2: { light: "#ff002008", dark: "#ffeef009" }, + 3: { light: "#f3002515", dark: "#ffd9db14" }, + 4: { light: "#ff002523", dark: "#ffc6c623" }, + 5: { light: "#ff002a31", dark: "#ffb3b334" }, + 6: { light: "#e4002440", dark: "#ff9d9d48" }, + 7: { light: "#ce002553", dark: "#ff7a7a63" }, + 8: { light: "#c300286d", dark: "#ff505084" }, + 9: { light: "#db002cb9", dark: "#ff7878b5" }, + 10: { light: "#d2002cc4", dark: "#ff8f8fc4" }, + 11: { light: "#c10030db", dark: "#ffb2b2e0" }, + 12: { light: "#550016e8", dark: "#fff3f3f5" }, + }, + }, + crimson: { + solid: { + 1: { light: "#fffcfd", dark: "#1e0b13" }, + 2: { light: "#fef7f9", dark: "#2a101b" }, + 3: { light: "#ffe9f0", dark: "#371223" }, + 4: { light: "#fedce7", dark: "#44152b" }, + 5: { light: "#facedd", dark: "#501832" }, + 6: { light: "#f3bed1", dark: "#611b3a" }, + 7: { light: "#eaacc3", dark: "#7d2047" }, + 8: { light: "#e093b2", dark: "#a42a5b" }, + 9: { light: "#e93d82", dark: "#e93d82" }, + 10: { light: "#df3478", dark: "#ff4c8f" }, + 11: { light: "#cb1d63", dark: "#ff94bf" }, + 12: { light: "#621639", dark: "#ffeaf0" }, + }, + alpha: { + 1: { light: "#ff005503", dark: "#00000000" }, + 2: { light: "#e0004008", dark: "#ffeef109" }, + 3: { light: "#ff005216", dark: "#ffdae014" }, + 4: { light: "#f8005123", dark: "#ffc8d021" }, + 5: { light: "#e5004f31", dark: "#ffb6c030" }, + 6: { light: "#d0004b41", dark: "#ffa2b043" }, + 7: { light: "#bf004753", dark: "#ff85a057" }, + 8: { light: "#b6004a6c", dark: "#ff57907a" }, + 9: { light: "#e2005bc2", dark: "#ff7dabc2" }, + 10: { light: "#d70056cb", dark: "#ff93b5cb" }, + 11: { light: "#c4004fe2", dark: "#ffbad7e4" }, + 12: { light: "#530026e9", dark: "#fff3f6f5" }, + }, + }, + pink: { + solid: { + 1: { light: "#fffcfe", dark: "#1a1013" }, + 2: { light: "#fef7fb", dark: "#27131c" }, + 3: { light: "#fee9f5", dark: "#3a172b" }, + 4: { light: "#fbdcef", dark: "#4a1935" }, + 5: { light: "#f6cee7", dark: "#551c3e" }, + 6: { light: "#efbfdd", dark: "#651f48" }, + 7: { light: "#e7acd0", dark: "#80255c" }, + 8: { light: "#dd93c2", dark: "#ae337f" }, + 9: { light: "#d6409f", dark: "#d6409f" }, + 10: { light: "#cf3897", dark: "#ff53c1" }, + 11: { light: "#c2298a", dark: "#ff94d6" }, + 12: { light: "#651249", dark: "#ffe9f3" }, + }, + alpha: { + 1: { light: "#ff00aa03", dark: "#00000000" }, + 2: { light: "#e0008008", dark: "#ffeff0f1" }, + 3: { light: "#f4008c16", dark: "#ffd6e0e3" }, + 4: { light: "#e2008b23", dark: "#ffbfd2d5" }, + 5: { light: "#d1008331", dark: "#ffabc4c6" }, + 6: { light: "#c0007840", dark: "#ff96b7b8" }, + 7: { light: "#b6006f53", dark: "#ff7a9aa1" }, + 8: { light: "#af006f6c", dark: "#ff567b81" }, + 9: { light: "#c8007fbf", dark: "#ff7db7dc" }, + 10: { light: "#c2007ac7", dark: "#ff8bc2e4" }, + 11: { light: "#b60074d6", dark: "#ffbedff2" }, + 12: { light: "#59003bed", dark: "#fff6fbfd" }, + }, + }, + plum: { + solid: { + 1: { light: "#fefcff", dark: "#151016" }, + 2: { light: "#fdf7fd", dark: "#1e131e" }, + 3: { light: "#fbebfb", dark: "#2c142a" }, + 4: { light: "#f7def8", dark: "#371634" }, + 5: { light: "#f2d1f3", dark: "#411a3e" }, + 6: { light: "#e9c2ec", dark: "#501d4c" }, + 7: { light: "#deade3", dark: "#69235e" }, + 8: { light: "#cf91d8", dark: "#93319c" }, + 9: { light: "#ab4aba", dark: "#ab4aba" }, + 10: { light: "#a144af", dark: "#da4ff1" }, + 11: { light: "#953ea3", dark: "#e34fff" }, + 12: { light: "#53195d", dark: "#fdebfd" }, + }, + alpha: { + 1: { light: "#aa00ff03", dark: "#00000000" }, + 2: { light: "#c000c008", dark: "#ffe6eaf9" }, + 3: { light: "#cc00cc14", dark: "#ffcfe6f2" }, + 4: { light: "#c200c921", dark: "#ffbde4ed" }, + 5: { light: "#b700bd2e", dark: "#ffa8e2e6" }, + 6: { light: "#a400b03d", dark: "#ff8eddea" }, + 7: { light: "#9900a852", dark: "#ff71d8df" }, + 8: { light: "#9000a56e", dark: "#ff47d0cf" }, + 9: { light: "#89009eb5", dark: "#ff5de6fb" }, + 10: { light: "#7f0092bb", dark: "#ff6bf0ff" }, + 11: { light: "#730086c1", dark: "#ff7cfaef" }, + 12: { light: "#40004be6", dark: "#fff9feff" }, + }, + }, + purple: { + solid: { + 1: { light: "#fefcfe", dark: "#1d101d" }, + 2: { light: "#fbf7fe", dark: "#281228" }, + 3: { light: "#f7edfe", dark: "#341434" }, + 4: { light: "#f2e2fc", dark: "#3f163f" }, + 5: { light: "#ead5f9", dark: "#491849" }, + 6: { light: "#e0c4f4", dark: "#551b55" }, + 7: { light: "#d1afec", dark: "#691f69" }, + 8: { light: "#be93e4", dark: "#8e278e" }, + 9: { light: "#8e4ec6", dark: "#b534b5" }, + 10: { light: "#8347b9", dark: "#d23ed2" }, + 11: { light: "#8145b5", dark: "#ea46ea" }, + 12: { light: "#402060", dark: "#fdebfe" }, + }, + alpha: { + 1: { light: "#aa00aa03", dark: "#00000000" }, + 2: { light: "#8000e008", dark: "#f8f0f809" }, + 3: { light: "#8e00f112", dark: "#f7e6f714" }, + 4: { light: "#8d00e51d", dark: "#f3d8f61d" }, + 5: { light: "#8000db2a", dark: "#f1c6f525" }, + 6: { light: "#7a01d03b", dark: "#f0b4f52c" }, + 7: { light: "#6d00c350", dark: "#f09ef542" }, + 8: { light: "#6600c06c", dark: "#f188f55f" }, + 9: { light: "#5c00adb1", dark: "#f372f57a" }, + 10: { light: "#53009eb8", dark: "#f45cf592" }, + 11: { light: "#52009aba", dark: "#f54ff5b2" }, + 12: { light: "#250049df", dark: "#fbeffbfa" }, + }, + }, + violet: { + solid: { + 1: { light: "#fdfcfe", dark: "#131019" }, + 2: { light: "#faf8ff", dark: "#1b1626" }, + 3: { light: "#f4f0fe", dark: "#201c30" }, + 4: { light: "#ebe4ff", dark: "#261f39" }, + 5: { light: "#e1d9ff", dark: "#2b2541" }, + 6: { light: "#d4cafe", dark: "#322a4f" }, + 7: { light: "#c2b5f5", dark: "#3f3566" }, + 8: { light: "#aa99ec", dark: "#5c4b8a" }, + 9: { light: "#6e56cf", dark: "#7b5bb3" }, + 10: { light: "#654dc4", dark: "#8a64d7" }, + 11: { light: "#6550b9", dark: "#b195f5" }, + 12: { light: "#2f265f", dark: "#ede9fe" }, + }, + alpha: { + 1: { light: "#5500aa03", dark: "#00000000" }, + 2: { light: "#4900ff07", dark: "#f0ebff0a" }, + 3: { light: "#4400ee0f", dark: "#e7dfff14" }, + 4: { light: "#4300ff1b", dark: "#e1d5ff1d" }, + 5: { light: "#3600ff26", dark: "#dbc9ff26" }, + 6: { light: "#3100fb35", dark: "#d1bcff2e" }, + 7: { light: "#2d01dd4a", dark: "#c1a7ff45" }, + 8: { light: "#2b00d066", dark: "#ab8dff5f" }, + 9: { light: "#2400b7a9", dark: "#9877ff7a" }, + 10: { light: "#2300abb2", dark: "#8661ff91" }, + 11: { light: "#1f0099af", dark: "#7555ffaa" }, + 12: { light: "#0b0043d9", dark: "#f5effff9" }, + }, + }, + iris: { + solid: { + 1: { light: "#fdfdff", dark: "#121215" }, + 2: { light: "#f8f8ff", dark: "#18181d" }, + 3: { light: "#f0f1fe", dark: "#1f1f26" }, + 4: { light: "#e6e7ff", dark: "#25252f" }, + 5: { light: "#dadcff", dark: "#2b2b38" }, + 6: { light: "#cbcdff", dark: "#333346" }, + 7: { light: "#b8baf8", dark: "#40405a" }, + 8: { light: "#9b9ef0", dark: "#535388" }, + 9: { light: "#5b5bd6", dark: "#7b7cd1" }, + 10: { light: "#5151cd", dark: "#8a8aec" }, + 11: { light: "#5753c6", dark: "#c0c0ff" }, + 12: { light: "#272962", dark: "#efeffe" }, + }, + alpha: { + 1: { light: "#0000ff02", dark: "#00000000" }, + 2: { light: "#0000ff07", dark: "#ebebff09" }, + 3: { light: "#0011ee0f", dark: "#d1d1ff12" }, + 4: { light: "#000bff19", dark: "#bcbcff1b" }, + 5: { light: "#000eff25", dark: "#a3a3ff24" }, + 6: { light: "#000aff34", dark: "#8686ff2c" }, + 7: { light: "#0008e647", dark: "#6464ff3b" }, + 8: { light: "#0008d964", dark: "#3d3dff4c" }, + 9: { light: "#0000c0a4", dark: "#2a2aff6a" }, + 10: { light: "#0000b6ae", dark: "#1414ff83" }, + 11: { light: "#0600abac", dark: "#0000ff99" }, + 12: { light: "#000246d8", dark: "#0000ffe0" }, + }, + }, + indigo: { + solid: { + 1: { light: "#fdfdfe", dark: "#131316" }, + 2: { light: "#f7f9ff", dark: "#19191f" }, + 3: { light: "#edf2fe", dark: "#202027" }, + 4: { light: "#e1e9ff", dark: "#26262f" }, + 5: { light: "#d2deff", dark: "#2d2d38" }, + 6: { light: "#c1d0ff", dark: "#37374a" }, + 7: { light: "#abbdf9", dark: "#444569" }, + 8: { light: "#8da4ef", dark: "#585a9d" }, + 9: { light: "#3e63dd", dark: "#7e8aff" }, + 10: { light: "#3358d4", dark: "#a4b1ff" }, + 11: { light: "#3a5bc7", dark: "#cad8ff" }, + 12: { light: "#1f2d5c", dark: "#e6edff" }, + }, + alpha: { + 1: { light: "#00008002", dark: "#00000000" }, + 2: { light: "#0040ff08", dark: "#e6e6ff09" }, + 3: { light: "#0047f112", dark: "#ccccff12" }, + 4: { light: "#0044ff1e", dark: "#b2b2ff1c" }, + 5: { light: "#0044ff2d", dark: "#9999ff26" }, + 6: { light: "#003eff3e", dark: "#7a7aff32" }, + 7: { light: "#0037ed54", dark: "#5e5eff40" }, + 8: { light: "#0034dc72", dark: "#4949ff55" }, + 9: { light: "#0031d2c1", dark: "#3636ff8a" }, + 10: { light: "#002ec9cc", dark: "#2f2fff9e" }, + 11: { light: "#002bb7c5", dark: "#2b2bffb4" }, + 12: { light: "#001046e0", dark: "#0a0afff4" }, + }, + }, + blue: { + solid: { + 1: { light: "#fbfdff", dark: "#131519" }, + 2: { light: "#f4faff", dark: "#1b2129" }, + 3: { light: "#e6f4fe", dark: "#202930" }, + 4: { light: "#d5efff", dark: "#28303b" }, + 5: { light: "#c2e5ff", dark: "#2f3b49" }, + 6: { light: "#acd8fc", dark: "#384759" }, + 7: { light: "#8ec8f6", dark: "#44597d" }, + 8: { light: "#5eb1ef", dark: "#5373a2" }, + 9: { light: "#0090ff", dark: "#84b5ff" }, + 10: { light: "#0588f0", dark: "#bedaff" }, + 11: { light: "#0d74ce", dark: "#d6e9ff" }, + 12: { light: "#113264", dark: "#ecf5ff" }, + }, + alpha: { + 1: { light: "#0080ff04", dark: "#004df211" }, + 2: { light: "#008cff0b", dark: "#1166fb18" }, + 3: { light: "#008ff519", dark: "#0077ff3a" }, + 4: { light: "#009eff2a", dark: "#0075ff57" }, + 5: { light: "#0093ff3d", dark: "#0081fd6b" }, + 6: { light: "#0088f653", dark: "#0f89fd7f" }, + 7: { light: "#0083eb71", dark: "#2a91fe98" }, + 8: { light: "#0084e6a1", dark: "#3094feb9" }, + 9: { light: "#0090ff", dark: "#0090ff" }, + 10: { light: "#0086f0fa", dark: "#3b9eff" }, + 11: { light: "#006dcbf2", dark: "#70b8ff" }, + 12: { light: "#002359ee", dark: "#c2e6ff" }, + }, + }, + cyan: { + solid: { + 1: { light: "#fafdfe", dark: "#111819" }, + 2: { light: "#f2fafb", dark: "#122022" }, + 3: { light: "#def7f9", dark: "#123034" }, + 4: { light: "#caf1f6", dark: "#0f3d47" }, + 5: { light: "#b5e9f0", dark: "#0c4d5c" }, + 6: { light: "#9ddde7", dark: "#0a5e72" }, + 7: { light: "#7dcedc", dark: "#07778f" }, + 8: { light: "#3db9cf", dark: "#0ea5c5" }, + 9: { light: "#00a2c7", dark: "#12b4e6" }, + 10: { light: "#0797b9", dark: "#3fcdf7" }, + 11: { light: "#107d98", dark: "#8de5fc" }, + 12: { light: "#0d3c48", dark: "#d5faff" }, + }, + alpha: { + 1: { light: "#0099cc05", dark: "#00000000" }, + 2: { light: "#009db10d", dark: "#0091f70a" }, + 3: { light: "#00c2d121", dark: "#02a7f211" }, + 4: { light: "#00bcd435", dark: "#00befd28" }, + 5: { light: "#01b4cc4a", dark: "#00baff3b" }, + 6: { light: "#00a7c162", dark: "#00befd4d" }, + 7: { light: "#009fbb82", dark: "#00c7fd5e" }, + 8: { light: "#00a3c0c2", dark: "#14cdff75" }, + 9: { light: "#00a2c7", dark: "#11cfff95" }, + 10: { light: "#0094b7f8", dark: "#00cfffc3" }, + 11: { light: "#007491ef", dark: "#28d6ffcd" }, + 12: { light: "#00323ef2", dark: "#52e1fee5" }, + }, + }, + teal: { + solid: { + 1: { light: "#fafefd", dark: "#0d1514" }, + 2: { light: "#f3fbf9", dark: "#111c1b" }, + 3: { light: "#e0f8f3", dark: "#0d2d2a" }, + 4: { light: "#ccf3ea", dark: "#023b37" }, + 5: { light: "#b8eae0", dark: "#084843" }, + 6: { light: "#a1ded2", dark: "#145750" }, + 7: { light: "#83cdc1", dark: "#1c6961" }, + 8: { light: "#53b9ab", dark: "#207e73" }, + 9: { light: "#12a594", dark: "#12a594" }, + 10: { light: "#0d9b8a", dark: "#0eb39e" }, + 11: { light: "#008573", dark: "#0bd8b6" }, + 12: { light: "#0d3d38", dark: "#adf0dd" }, + }, + alpha: { + 1: { light: "#00cc9905", dark: "#00deab05" }, + 2: { light: "#00aa800c", dark: "#12fbe60c" }, + 3: { light: "#00c69d1f", dark: "#00ffe61e" }, + 4: { light: "#00c39633", dark: "#00ffe92d" }, + 5: { light: "#00b49047", dark: "#00ffea3b" }, + 6: { light: "#00a6855e", dark: "#1cffe84b" }, + 7: { light: "#0099807c", dark: "#2efde85f" }, + 8: { light: "#009783ac", dark: "#32ffe775" }, + 9: { light: "#009e8ced", dark: "#13ffe49f" }, + 10: { light: "#009684f2", dark: "#0dffe0ae" }, + 11: { light: "#008573", dark: "#0afed5d6" }, + 12: { light: "#00332df2", dark: "#b8ffebef" }, + }, + }, + jade: { + solid: { + 1: { light: "#fbfefd", dark: "#0d1512" }, + 2: { light: "#f4fbf7", dark: "#121c18" }, + 3: { light: "#e6f7ed", dark: "#0f2e22" }, + 4: { light: "#d6f1e3", dark: "#0b3b2c" }, + 5: { light: "#c3e9d7", dark: "#114837" }, + 6: { light: "#acdec8", dark: "#1b5745" }, + 7: { light: "#8bceb6", dark: "#246854" }, + 8: { light: "#56ba9f", dark: "#2a7e68" }, + 9: { light: "#29a383", dark: "#29a383" }, + 10: { light: "#26997b", dark: "#27b08b" }, + 11: { light: "#208368", dark: "#1fd8a4" }, + 12: { light: "#1d3b31", dark: "#adf0d4" }, + }, + alpha: { + 1: { light: "#00c08004", dark: "#00de4505" }, + 2: { light: "#00a3460b", dark: "#27fba60c" }, + 3: { light: "#00ae4819", dark: "#02f99920" }, + 4: { light: "#00a85129", dark: "#00ffaa2d" }, + 5: { light: "#00a2553c", dark: "#11ffb63b" }, + 6: { light: "#009a5753", dark: "#34ffc24b" }, + 7: { light: "#00945f74", dark: "#45fdc75e" }, + 8: { light: "#00976ea9", dark: "#48ffcf75" }, + 9: { light: "#00916bd6", dark: "#38feca9d" }, + 10: { light: "#008764d9", dark: "#31fec7ab" }, + 11: { light: "#007152df", dark: "#21fec0d6" }, + 12: { light: "#002217e2", dark: "#b8ffe1ef" }, + }, + }, + green: { + solid: { + 1: { light: "#fbfefc", dark: "#0e1512" }, + 2: { light: "#f4fbf6", dark: "#121b17" }, + 3: { light: "#e6f6eb", dark: "#132d21" }, + 4: { light: "#d6f1df", dark: "#113b29" }, + 5: { light: "#c4e8d1", dark: "#174933" }, + 6: { light: "#adddc0", dark: "#20573e" }, + 7: { light: "#8eceaa", dark: "#28684a" }, + 8: { light: "#5bb98b", dark: "#2f7c57" }, + 9: { light: "#30a46c", dark: "#30a46c" }, + 10: { light: "#2b9a66", dark: "#33b074" }, + 11: { light: "#218358", dark: "#3dd68c" }, + 12: { light: "#193b2d", dark: "#b1f1cb" }, + }, + alpha: { + 1: { light: "#00c04004", dark: "#00de4505" }, + 2: { light: "#00a32f0b", dark: "#29f99d0b" }, + 3: { light: "#00a43319", dark: "#22ff991e" }, + 4: { light: "#00a83829", dark: "#11ff992d" }, + 5: { light: "#019c393b", dark: "#2bffa23c" }, + 6: { light: "#00963c52", dark: "#44ffaa4b" }, + 7: { light: "#00914071", dark: "#50fdac5e" }, + 8: { light: "#00924ba4", dark: "#54ffad73" }, + 9: { light: "#008f4acf", dark: "#44ffa49e" }, + 10: { light: "#008647d4", dark: "#43fea4ab" }, + 11: { light: "#00713fde", dark: "#46fea5d4" }, + 12: { light: "#002616e6", dark: "#bbffd7f0" }, + }, + }, + grass: { + solid: { + 1: { light: "#fbfefb", dark: "#0e1511" }, + 2: { light: "#f5fbf5", dark: "#141a15" }, + 3: { light: "#e9f6e9", dark: "#1b2a1e" }, + 4: { light: "#daf1db", dark: "#1d3a24" }, + 5: { light: "#c9e8ca", dark: "#25482d" }, + 6: { light: "#b2ddb5", dark: "#2d5736" }, + 7: { light: "#94ce9a", dark: "#366740" }, + 8: { light: "#65ba74", dark: "#3e7949" }, + 9: { light: "#46a758", dark: "#46a758" }, + 10: { light: "#3e9b4f", dark: "#53b365" }, + 11: { light: "#2a7e3b", dark: "#71d083" }, + 12: { light: "#203c25", dark: "#c2f0c2" }, + }, + alpha: { + 1: { light: "#00c00004", dark: "#00de1205" }, + 2: { light: "#0099000a", dark: "#5ef7780a" }, + 3: { light: "#00970016", dark: "#70fe8c1b" }, + 4: { light: "#009f0725", dark: "#57ff802c" }, + 5: { light: "#00930536", dark: "#68ff8b3b" }, + 6: { light: "#008f0a4d", dark: "#71ff8f4b" }, + 7: { light: "#018b0f6b", dark: "#77fd925d" }, + 8: { light: "#008d199a", dark: "#77fd9070" }, + 9: { light: "#008619b9", dark: "#65ff82a1" }, + 10: { light: "#007b17c1", dark: "#72ff8dae" }, + 11: { light: "#006514d5", dark: "#89ff9fcd" }, + 12: { light: "#002006df", dark: "#ceffceef" }, + }, + }, + lime: { + solid: { + 1: { light: "#fcfdfa", dark: "#11130c" }, + 2: { light: "#f8faf3", dark: "#151a10" }, + 3: { light: "#eef6d6", dark: "#1f2917" }, + 4: { light: "#e2f0bd", dark: "#29371d" }, + 5: { light: "#d3e7a6", dark: "#334423" }, + 6: { light: "#c2da91", dark: "#3d522a" }, + 7: { light: "#abc978", dark: "#496231" }, + 8: { light: "#8db654", dark: "#577538" }, + 9: { light: "#bdee63", dark: "#bdee63" }, + 10: { light: "#b0e64c", dark: "#d4ff70" }, + 11: { light: "#5c7c2f", dark: "#bde56c" }, + 12: { light: "#37401c", dark: "#e3f7ba" }, + }, + alpha: { + 1: { light: "#66990005", dark: "#11bb0003" }, + 2: { light: "#6b95000c", dark: "#78f7000a" }, + 3: { light: "#96c80029", dark: "#9bfd4c1a" }, + 4: { light: "#8fc60042", dark: "#a7fe5c29" }, + 5: { light: "#81bb0059", dark: "#affe6537" }, + 6: { light: "#72aa006e", dark: "#b2fe6d46" }, + 7: { light: "#61990087", dark: "#b6ff6f57" }, + 8: { light: "#559200ab", dark: "#b6fd6d6c" }, + 9: { light: "#93e4009c", dark: "#caff69ed" }, + 10: { light: "#8fdc00b3", dark: "#d4ff70" }, + 11: { light: "#375f00d0", dark: "#d1fe77e4" }, + 12: { light: "#1e2900e3", dark: "#e9febff7" }, + }, + }, + sky: { + solid: { + 1: { light: "#f9feff", dark: "#0d141f" }, + 2: { light: "#f1fafd", dark: "#111a27" }, + 3: { light: "#e1f6fd", dark: "#112840" }, + 4: { light: "#d1f0fa", dark: "#113555" }, + 5: { light: "#bee7f5", dark: "#154467" }, + 6: { light: "#a9daed", dark: "#1b537b" }, + 7: { light: "#8dcae3", dark: "#1f6692" }, + 8: { light: "#60b3d7", dark: "#197cae" }, + 9: { light: "#7ce2fe", dark: "#7ce2fe" }, + 10: { light: "#74daf8", dark: "#a8eeff" }, + 11: { light: "#00749e", dark: "#75c7f0" }, + 12: { light: "#1d3e56", dark: "#c2f3ff" }, + }, + alpha: { + 1: { light: "#00d5ff06", dark: "#0044ff0f" }, + 2: { light: "#00a4db0e", dark: "#1171fb18" }, + 3: { light: "#00b3ee1e", dark: "#1184fc33" }, + 4: { light: "#00ace42e", dark: "#128fff49" }, + 5: { light: "#00a1d841", dark: "#1c9dfd5d" }, + 6: { light: "#0092ca56", dark: "#28a5ff72" }, + 7: { light: "#0089c172", dark: "#2badfe8b" }, + 8: { light: "#0085bf9f", dark: "#1db2fea9" }, + 9: { light: "#00c7fe83", dark: "#7ce3fffe" }, + 10: { light: "#00bcf38b", dark: "#a8eeff" }, + 11: { light: "#00749e", dark: "#7cd3ffef" }, + 12: { light: "#002540e2", dark: "#c2f3ff" }, + }, + }, + + mint: { + solid: { + 1: { light: "#f9fefd", dark: "#0e1515" }, + 2: { light: "#f2fbf9", dark: "#0f1b1b" }, + 3: { light: "#ddf9f2", dark: "#092c2b" }, + 4: { light: "#c8f4e9", dark: "#003a38" }, + 5: { light: "#b3ecde", dark: "#004744" }, + 6: { light: "#9ce0d0", dark: "#105650" }, + 7: { light: "#7ecfbd", dark: "#1e685f" }, + 8: { light: "#4cbba5", dark: "#277f70" }, + 9: { light: "#86ead4", dark: "#86ead4" }, + 10: { light: "#7de0cb", dark: "#a8f5e5" }, + 11: { light: "#027864", dark: "#58d5ba" }, + 12: { light: "#16433c", dark: "#c4f5e1" }, + }, + alpha: { + 1: { light: "#00d5aa06", dark: "#00dede05" }, + 2: { light: "#00b18a0d", dark: "#00f9f90b" }, + 3: { light: "#00d29e22", dark: "#00fff61d" }, + 4: { light: "#00cc9937", dark: "#00ffef30" }, + 5: { light: "#00b48e4a", dark: "#00ffe841" }, + 6: { light: "#009f865e", dark: "#00ffde54" }, + 7: { light: "#008c7d7e", dark: "#00ffd469" }, + 8: { light: "#007570a8", dark: "#00ffd982" }, + 9: { light: "#007a6aba", dark: "#00ffcb9f" }, + 10: { light: "#005476b6", dark: "#00ffd5ba" }, + 11: { light: "#004172d6", dark: "#00ffdfdd" }, + 12: { light: "#001e28e4", dark: "#00ffecf5" }, + }, + }, +} diff --git a/plugins/radix-colors/src/main.tsx b/plugins/radix-colors/src/main.tsx new file mode 100644 index 00000000..ed682df1 --- /dev/null +++ b/plugins/radix-colors/src/main.tsx @@ -0,0 +1,14 @@ +import "framer-plugin/framer.css" + +import React from "react" +import ReactDOM from "react-dom/client" +import { App } from "./App.tsx" + +const root = document.getElementById("root") +if (!root) throw new Error("Root element not found") + +ReactDOM.createRoot(root).render( + + + +) diff --git a/plugins/radix-colors/src/types/index.ts b/plugins/radix-colors/src/types/index.ts new file mode 100644 index 00000000..aa4bad1a --- /dev/null +++ b/plugins/radix-colors/src/types/index.ts @@ -0,0 +1,55 @@ +import { z } from "zod" + +const HexColor = z.string().regex(/^#[0-9a-f]{6}$/i) +type HexColor = z.infer + +export const colorVariants = ["solid", "alpha"] as const +export const ColorVariant = z.enum(colorVariants) +export type ColorVariant = z.infer + +export const colorThemes = ["light", "dark", "auto"] as const +export const ColorTheme = z.enum(colorThemes) +export type ColorTheme = z.infer + +const colorScaleStops = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] as const +export type ColorScaleStop = (typeof colorScaleStops)[number] + +type ColorStop = Record, HexColor> +type ColorScale = Record> +export type ColorScales = Record + +const colorNames = [ + "gray", + "mauve", + "slate", + "sage", + "olive", + "sand", + "gold", + "bronze", + "brown", + "yellow", + "amber", + "orange", + "tomato", + "red", + "ruby", + "crimson", + "pink", + "plum", + "purple", + "violet", + "iris", + "indigo", + "blue", + "cyan", + "teal", + "jade", + "green", + "grass", + "lime", + "mint", + "sky", +] as const +export const ColorName = z.enum(colorNames) +export type ColorName = z.infer diff --git a/plugins/radix-colors/src/utils/colorOptions.ts b/plugins/radix-colors/src/utils/colorOptions.ts new file mode 100644 index 00000000..0db8f045 --- /dev/null +++ b/plugins/radix-colors/src/utils/colorOptions.ts @@ -0,0 +1,49 @@ +import { ColorName } from "../types" + +type ColorCategory = { + id: string + label: string + colors: ColorName[] +} + +export const colorNamesByCategory: ColorCategory[] = [ + { + id: "grays", + label: "Grays", + colors: ["gray", "mauve", "slate", "sage", "olive", "sand"], + }, + { + id: "colors", + label: "Colors", + colors: [ + "brown", + "orange", + "tomato", + "red", + "ruby", + "crimson", + "pink", + "plum", + "purple", + "violet", + "iris", + "indigo", + "blue", + "cyan", + "teal", + "jade", + "green", + "grass", + ], + }, + { + id: "bright", + label: "Bright Colors", + colors: ["sky", "mint", "lime", "yellow", "amber"], + }, + { + id: "metals", + label: "Metals", + colors: ["gold", "bronze"], + }, +] diff --git a/plugins/radix-colors/src/utils/common.ts b/plugins/radix-colors/src/utils/common.ts new file mode 100644 index 00000000..4605fe99 --- /dev/null +++ b/plugins/radix-colors/src/utils/common.ts @@ -0,0 +1,6 @@ +export function slugToTitle(slug: string) { + return slug + .split("-") + .map(word => word[0].toUpperCase() + word.slice(1)) + .join(" ") +} diff --git a/plugins/radix-colors/src/utils/createFramerColors.ts b/plugins/radix-colors/src/utils/createFramerColors.ts new file mode 100644 index 00000000..6071159b --- /dev/null +++ b/plugins/radix-colors/src/utils/createFramerColors.ts @@ -0,0 +1,35 @@ +import { z } from "zod" +import { ColorName, ColorScaleStop, ColorTheme, ColorVariant } from "../types" +import { colorsScales } from "../constants" +import { framer } from "framer-plugin" + +export const ColorOptions = z.object({ + name: ColorName, + variant: ColorVariant.default("solid"), + theme: ColorTheme.or(z.ZodEnum.create(["auto"])).default("auto"), +}) +export type ColorOptions = z.infer + +const ColorStyleAttributes = z.object({ + name: z.string(), + light: z.string(), + dark: z.string().optional(), +}) +export type ColorStyleAttributes = z.infer + +export async function createFramerColors({ name, variant, theme }: ColorOptions) { + const colorScale = colorsScales[name][variant] + + colorScale[1].light + + for (const stop in colorScale) { + const colorStop = colorScale[Number(stop) as ColorScaleStop] + const isAuto = theme === "auto" + + await framer.createColorStyle({ + name: `${name}.${stop}`, + light: isAuto ? colorStop.light : colorStop[theme], + dark: isAuto ? colorStop.dark : undefined, + }) + } +} diff --git a/plugins/radix-colors/src/vite-env.d.ts b/plugins/radix-colors/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/plugins/radix-colors/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/plugins/radix-colors/tsconfig.json b/plugins/radix-colors/tsconfig.json new file mode 100644 index 00000000..6353f504 --- /dev/null +++ b/plugins/radix-colors/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ES2022", + "useDefineForClassFields": true, + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "module": "ES2022", + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src", "src/utils/createFramerColors.ts"] +} diff --git a/plugins/radix-colors/vite.config.ts b/plugins/radix-colors/vite.config.ts new file mode 100644 index 00000000..7efb6ef8 --- /dev/null +++ b/plugins/radix-colors/vite.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "vite" +import react from "@vitejs/plugin-react-swc" +import mkcert from "vite-plugin-mkcert" +import framer from "vite-plugin-framer" + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react(), mkcert(), framer()], + build: { + target: "ES2022", + }, +})