From 811783552f11a010115eff96831e937c9c098623 Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Mon, 29 Jan 2024 10:51:18 +0000 Subject: [PATCH 1/8] add brand info --- docs/css.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 docs/css.md diff --git a/docs/css.md b/docs/css.md new file mode 100644 index 0000000..42af7e1 --- /dev/null +++ b/docs/css.md @@ -0,0 +1,34 @@ +``` + +``` + + +```tailwind + +// Add this to tailwind.config.js +const colors = require("tailwindcss/colors"); + +module.exports = { + theme: { + extend : { + colors: { + brand: "#FF6A51", + darkest: "#29323E", + dark: "#3A4655", + mid: "#C4BC9D", + light: "#F1EEE2", + lightest: "#FFFFFF" + }, + }, + }, +}; +``` \ No newline at end of file From cae99bc266075e38590db333d6cde4308939b02b Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Thu, 15 Feb 2024 13:38:25 +0000 Subject: [PATCH 2/8] npm project --- src/ui/package-lock.json | 2374 +++++++++++++++++++++++++++ src/ui/package.json | 21 + src/ui/postcss.config.js | 6 + src/ui/src/App.vue | 14 + src/ui/src/assets/vue.svg | 1 + src/ui/src/components/ImageCard.vue | 72 + src/ui/src/main.js | 5 + src/ui/src/style.css | 3 + src/ui/tailwind.config.js | 11 + src/ui/vite.config.js | 7 + 10 files changed, 2514 insertions(+) create mode 100644 src/ui/package-lock.json create mode 100644 src/ui/package.json create mode 100644 src/ui/postcss.config.js create mode 100644 src/ui/src/App.vue create mode 100644 src/ui/src/assets/vue.svg create mode 100644 src/ui/src/components/ImageCard.vue create mode 100644 src/ui/src/main.js create mode 100644 src/ui/src/style.css create mode 100644 src/ui/tailwind.config.js create mode 100644 src/ui/vite.config.js diff --git a/src/ui/package-lock.json b/src/ui/package-lock.json new file mode 100644 index 0000000..7135efa --- /dev/null +++ b/src/ui/package-lock.json @@ -0,0 +1,2374 @@ +{ + "name": "image-generation", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "image-generation", + "version": "0.0.0", + "dependencies": { + "vue": "^3.3.11" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.5.2", + "autoprefixer": "^10.4.17", + "postcss": "^8.4.33", + "tailwindcss": "^3.4.1", + "vite": "^5.0.8" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.11.0.tgz", + "integrity": "sha512-BV+u2QSfK3i1o6FucqJh5IK9cjAU6icjFFhvknzFgu472jzl0bBojfDAkJLBEsHFMo+YZg6rthBvBBt8z12IBQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.11.0.tgz", + "integrity": "sha512-0ij3iw7sT5jbcdXofWO2NqDNjSVVsf6itcAkV2I6Xsq4+6wjW1A8rViVB67TfBEan7PV2kbLzT8rhOVWLI2YXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.11.0.tgz", + "integrity": "sha512-yPLs6RbbBMupArf6qv1UDk6dzZvlH66z6NLYEwqTU0VHtss1wkI4UYeeMS7TVj5QRVvaNAWYKP0TD/MOeZ76Zg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.11.0.tgz", + "integrity": "sha512-OvqIgwaGAwnASzXaZEeoJY3RltOFg+WUbdkdfoluh2iqatd090UeOG3A/h0wNZmE93dDew9tAtXgm3/+U/B6bw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.11.0.tgz", + "integrity": "sha512-X17s4hZK3QbRmdAuLd2EE+qwwxL8JxyVupEqAkxKPa/IgX49ZO+vf0ka69gIKsaYeo6c1CuwY3k8trfDtZ9dFg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.11.0.tgz", + "integrity": "sha512-673Lu9EJwxVB9NfYeA4AdNu0FOHz7g9t6N1DmT7bZPn1u6bTF+oZjj+fuxUcrfxWXE0r2jxl5QYMa9cUOj9NFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.11.0.tgz", + "integrity": "sha512-yFW2msTAQNpPJaMmh2NpRalr1KXI7ZUjlN6dY/FhWlOclMrZezm5GIhy3cP4Ts2rIAC+IPLAjNibjp1BsxCVGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.11.0.tgz", + "integrity": "sha512-kKT9XIuhbvYgiA3cPAGntvrBgzhWkGpBMzuk1V12Xuoqg7CI41chye4HU0vLJnGf9MiZzfNh4I7StPeOzOWJfA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.11.0.tgz", + "integrity": "sha512-6q4ESWlyTO+erp1PSCmASac+ixaDv11dBk1fqyIuvIUc/CmRAX2Zk+2qK1FGo5q7kyDcjHCFVwgGFCGIZGVwCA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.11.0.tgz", + "integrity": "sha512-vIAQUmXeMLmaDN78HSE4Kh6xqof2e3TJUKr+LPqXWU4NYNON0MDN9h2+t4KHrPAQNmU3w1GxBQ/n01PaWFwa5w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.11.0.tgz", + "integrity": "sha512-LVXo9dDTGPr0nezMdqa1hK4JeoMZ02nstUxGYY/sMIDtTYlli1ZxTXBYAz3vzuuvKO4X6NBETciIh7N9+abT1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.11.0.tgz", + "integrity": "sha512-xZVt6K70Gr3I7nUhug2dN6VRR1ibot3rXqXS3wo+8JP64t7djc3lBFyqO4GiVrhNaAIhUCJtwQ/20dr0h0thmQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.11.0.tgz", + "integrity": "sha512-f3I7h9oTg79UitEco9/2bzwdciYkWr8pITs3meSDSlr1TdvQ7IxkQaaYN2YqZXX5uZhiYL+VuYDmHwNzhx+HOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "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==", + "dev": true + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz", + "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.19.tgz", + "integrity": "sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==", + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/shared": "3.4.19", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.19.tgz", + "integrity": "sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==", + "dependencies": { + "@vue/compiler-core": "3.4.19", + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.19.tgz", + "integrity": "sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==", + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/compiler-core": "3.4.19", + "@vue/compiler-dom": "3.4.19", + "@vue/compiler-ssr": "3.4.19", + "@vue/shared": "3.4.19", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.6", + "postcss": "^8.4.33", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.19.tgz", + "integrity": "sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==", + "dependencies": { + "@vue/compiler-dom": "3.4.19", + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.19.tgz", + "integrity": "sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==", + "dependencies": { + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.19.tgz", + "integrity": "sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==", + "dependencies": { + "@vue/reactivity": "3.4.19", + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.19.tgz", + "integrity": "sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==", + "dependencies": { + "@vue/runtime-core": "3.4.19", + "@vue/shared": "3.4.19", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.19.tgz", + "integrity": "sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==", + "dependencies": { + "@vue/compiler-ssr": "3.4.19", + "@vue/shared": "3.4.19" + }, + "peerDependencies": { + "vue": "3.4.19" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.19.tgz", + "integrity": "sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==" + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.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/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/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/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/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "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/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.670", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.670.tgz", + "integrity": "sha512-hcijYOWjOtjKrKPtNA6tuLlA/bTLO3heFG8pQA6mLpq7dRydSWicXova5lyxDzp1iVJaYhK7J2OQlGE52KYn7A==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/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/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/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "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/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/magic-string": { + "version": "0.30.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", + "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "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.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "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/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "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-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "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/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "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.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.0.tgz", + "integrity": "sha512-p3cz0JV5vw/XeouBU3Ldnp+ZkBjE+n8ydJ4mcwBrOiXXPqNlrzGBqWs9X4MWF7f+iKUBu794Y8Hh8yawiJbCjw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "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/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/rollup": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.11.0.tgz", + "integrity": "sha512-2xIbaXDXjf3u2tajvA5xROpib7eegJ9Y/uPlSFhXLNpK9ampCczXAhLEb5yLzJyG3LAdI1NWtNjDXiLyniNdjQ==", + "dev": true, + "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.11.0", + "@rollup/rollup-android-arm64": "4.11.0", + "@rollup/rollup-darwin-arm64": "4.11.0", + "@rollup/rollup-darwin-x64": "4.11.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.11.0", + "@rollup/rollup-linux-arm64-gnu": "4.11.0", + "@rollup/rollup-linux-arm64-musl": "4.11.0", + "@rollup/rollup-linux-riscv64-gnu": "4.11.0", + "@rollup/rollup-linux-x64-gnu": "4.11.0", + "@rollup/rollup-linux-x64-musl": "4.11.0", + "@rollup/rollup-win32-arm64-msvc": "4.11.0", + "@rollup/rollup-win32-ia32-msvc": "4.11.0", + "@rollup/rollup-win32-x64-msvc": "4.11.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/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/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/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/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/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-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "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-ansi-cjs/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/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", + "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "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-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vite": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.2.tgz", + "integrity": "sha512-uwiFebQbTWRIGbCaTEBVAfKqgqKNKMJ2uPXsXeLIZxM8MVMjoS3j0cG8NrPxdDIadaWnPSjrkLWffLSC+uiP3Q==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.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/vue": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.19.tgz", + "integrity": "sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==", + "dependencies": { + "@vue/compiler-dom": "3.4.19", + "@vue/compiler-sfc": "3.4.19", + "@vue/runtime-dom": "3.4.19", + "@vue/server-renderer": "3.4.19", + "@vue/shared": "3.4.19" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "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/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/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/wrap-ansi-cjs/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/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/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/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "engines": { + "node": ">= 14" + } + } + } +} diff --git a/src/ui/package.json b/src/ui/package.json new file mode 100644 index 0000000..58a3eb0 --- /dev/null +++ b/src/ui/package.json @@ -0,0 +1,21 @@ +{ + "name": "fastserve", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^3.3.11" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.5.2", + "autoprefixer": "^10.4.17", + "postcss": "^8.4.33", + "tailwindcss": "^3.4.1", + "vite": "^5.0.8" + } +} diff --git a/src/ui/postcss.config.js b/src/ui/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/src/ui/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/src/ui/src/App.vue b/src/ui/src/App.vue new file mode 100644 index 0000000..c2102c2 --- /dev/null +++ b/src/ui/src/App.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/src/ui/src/assets/vue.svg b/src/ui/src/assets/vue.svg new file mode 100644 index 0000000..770e9d3 --- /dev/null +++ b/src/ui/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/ui/src/components/ImageCard.vue b/src/ui/src/components/ImageCard.vue new file mode 100644 index 0000000..e7c4b8d --- /dev/null +++ b/src/ui/src/components/ImageCard.vue @@ -0,0 +1,72 @@ + + + diff --git a/src/ui/src/main.js b/src/ui/src/main.js new file mode 100644 index 0000000..2425c0f --- /dev/null +++ b/src/ui/src/main.js @@ -0,0 +1,5 @@ +import { createApp } from 'vue' +import './style.css' +import App from './App.vue' + +createApp(App).mount('#app') diff --git a/src/ui/src/style.css b/src/ui/src/style.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/src/ui/src/style.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/src/ui/tailwind.config.js b/src/ui/tailwind.config.js new file mode 100644 index 0000000..ff48818 --- /dev/null +++ b/src/ui/tailwind.config.js @@ -0,0 +1,11 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./index.html", + "./src/**/*.{vue,js,ts,jsx,tsx}", + ], + theme: { + extend: {}, + }, + plugins: [], +} \ No newline at end of file diff --git a/src/ui/vite.config.js b/src/ui/vite.config.js new file mode 100644 index 0000000..05c1740 --- /dev/null +++ b/src/ui/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], +}) From 5d876fb855904f455009f48b9efff050fcfd6c41 Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Thu, 15 Feb 2024 13:38:49 +0000 Subject: [PATCH 3/8] npm project --- src/ui/index.html | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/ui/index.html diff --git a/src/ui/index.html b/src/ui/index.html new file mode 100644 index 0000000..8388c4b --- /dev/null +++ b/src/ui/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + Vue + + +
+ + + From 18e9c797150d8245681045aa7fb3acf0c888bf93 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 13:58:04 +0000 Subject: [PATCH 4/8] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/fastserve/models/sdxl_turbo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fastserve/models/sdxl_turbo.py b/src/fastserve/models/sdxl_turbo.py index 06a9e7c..6d38355 100644 --- a/src/fastserve/models/sdxl_turbo.py +++ b/src/fastserve/models/sdxl_turbo.py @@ -1,7 +1,7 @@ # Note that this model is not commercially licensed import io import logging -from typing import List, Optional +from typing import List import torch from diffusers import AutoPipelineForText2Image From 15ff4f978f83b859e4e7391fddac3deb8b8c23db Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Thu, 15 Feb 2024 14:07:55 +0000 Subject: [PATCH 5/8] add ui --- MANIFEST.in | 3 +++ setup.py | 1 + src/fastserve/__init__.py | 3 ++- src/fastserve/models/sdxl_turbo.py | 19 +++++++++++++++++++ src/fastserve/utils.py | 8 ++++++++ src/ui/.gitignore | 24 ++++++++++++++++++++++++ src/ui/public/vite.svg | 1 + 7 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 src/ui/.gitignore create mode 100644 src/ui/public/vite.svg diff --git a/MANIFEST.in b/MANIFEST.in index 8d73ebe..0ae223b 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -7,6 +7,9 @@ recursive-exclude __pycache__ *.py[cod] *.orig include *.md recursive-include assets *.png +# include +recursive-include src/ui/dist * + exclude app.py exclude .lightning exclude .lightningignore diff --git a/setup.py b/setup.py index 52606fd..cdda5dd 100644 --- a/setup.py +++ b/setup.py @@ -5,4 +5,5 @@ setup( install_requires=required, + include_package_data=True, ) diff --git a/src/fastserve/__init__.py b/src/fastserve/__init__.py index 371cced..b0527fc 100644 --- a/src/fastserve/__init__.py +++ b/src/fastserve/__init__.py @@ -1,5 +1,6 @@ """Machine Learning Serving focused on GenAI & LLMs with simplicity as the top priority.""" + from fastserve.core import FastServe as FastServe -__version__ = "0.0.2" +__version__ = "0.0.3alpha" diff --git a/src/fastserve/models/sdxl_turbo.py b/src/fastserve/models/sdxl_turbo.py index 06a9e7c..314f3cc 100644 --- a/src/fastserve/models/sdxl_turbo.py +++ b/src/fastserve/models/sdxl_turbo.py @@ -6,9 +6,11 @@ import torch from diffusers import AutoPipelineForText2Image from fastapi.responses import StreamingResponse +from fastapi.staticfiles import StaticFiles from pydantic import BaseModel from fastserve import FastServe +from fastserve.utils import get_ui_folder class PromptRequest(BaseModel): @@ -31,6 +33,23 @@ def __init__( self.pipe.to(device) super().__init__(batch_size, timeout, input_schema=PromptRequest) + # Mount the UI folder + ui_path = get_ui_folder() + self._app.mount( + "/static", + StaticFiles( + directory=f"{ui_path}/dist", + ), + name="static", + ) + self._app.mount( + "/assets", + StaticFiles( + directory=f"{ui_path}/dist/assets", + ), + name="assets", + ) + @torch.inference_mode() def handle(self, batch: List[PromptRequest]) -> List[StreamingResponse]: prompts = [b.prompt for b in batch] diff --git a/src/fastserve/utils.py b/src/fastserve/utils.py index ca5aaad..55deeb6 100644 --- a/src/fastserve/utils.py +++ b/src/fastserve/utils.py @@ -1,3 +1,4 @@ +import os from typing import Any from pydantic import BaseModel @@ -15,3 +16,10 @@ def get_default_device(): class BaseRequest(BaseModel): request: Any + + +def get_ui_folder(): + """Fetch the path to the UI folder from the installed package""" + path = os.path.join(os.path.dirname(__file__), "../ui") + path = os.path.abspath(path) + return path diff --git a/src/ui/.gitignore b/src/ui/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/src/ui/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/src/ui/public/vite.svg b/src/ui/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/src/ui/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file From b3f356967db514a0afcca917f6726443c643b0df Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 14:08:28 +0000 Subject: [PATCH 6/8] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- MANIFEST.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index 0ae223b..48e3029 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -7,7 +7,7 @@ recursive-exclude __pycache__ *.py[cod] *.orig include *.md recursive-include assets *.png -# include +# include recursive-include src/ui/dist * exclude app.py From 8ec8f614811f89206508cbf3d84be9dddc535ded Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Thu, 15 Feb 2024 14:13:10 +0000 Subject: [PATCH 7/8] add --- src/ui/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ui/index.html b/src/ui/index.html index 8388c4b..392bb15 100644 --- a/src/ui/index.html +++ b/src/ui/index.html @@ -2,9 +2,9 @@ - + - Vite + Vue + FastServe 🧡
From 9266696b571f07f7513a8b619ae9c892f53cb613 Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Thu, 15 Feb 2024 14:14:56 +0000 Subject: [PATCH 8/8] Add new index.html and assets for UI --- src/ui/dist/assets/index-BvPN69uT.css | 1 + src/ui/dist/assets/index-Cnqfjyqn.js | 17 +++++++++++++++++ src/ui/dist/assets/sdxl-turbo-DtBCg58l.jpeg | Bin 0 -> 26664 bytes src/ui/dist/index.html | 14 ++++++++++++++ 4 files changed, 32 insertions(+) create mode 100644 src/ui/dist/assets/index-BvPN69uT.css create mode 100644 src/ui/dist/assets/index-Cnqfjyqn.js create mode 100644 src/ui/dist/assets/sdxl-turbo-DtBCg58l.jpeg create mode 100644 src/ui/dist/index.html diff --git a/src/ui/dist/assets/index-BvPN69uT.css b/src/ui/dist/assets/index-BvPN69uT.css new file mode 100644 index 0000000..cc650c2 --- /dev/null +++ b/src/ui/dist/assets/index-BvPN69uT.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.mt-4{margin-top:1rem}.flex{display:flex}.h-10{height:2.5rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.w-auto{width:auto}.w-full{width:100%}.items-center{align-items:center}.justify-center{justify-content:center}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border{border-width:1px}.border-black\/30{border-color:#0000004d}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.object-cover{-o-object-fit:cover;object-fit:cover}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.placeholder\:text-gray-600::-moz-placeholder{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.placeholder\:text-gray-600::placeholder{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.hover\:bg-black\/80:hover{background-color:#000c}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-black\/30:focus{--tw-ring-color: rgb(0 0 0 / .3)}.focus\:ring-offset-1:focus{--tw-ring-offset-width: 1px}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-black:focus-visible{outline-color:#000}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5} diff --git a/src/ui/dist/assets/index-Cnqfjyqn.js b/src/ui/dist/assets/index-Cnqfjyqn.js new file mode 100644 index 0000000..02326fd --- /dev/null +++ b/src/ui/dist/assets/index-Cnqfjyqn.js @@ -0,0 +1,17 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();/** +* @vue/shared v3.4.19 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function bn(e,t){const n=new Set(e.split(","));return t?s=>n.has(s.toLowerCase()):s=>n.has(s)}const H={},qe=[],oe=()=>{},mr=()=>!1,St=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),yn=e=>e.startsWith("onUpdate:"),Y=Object.assign,xn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},_r=Object.prototype.hasOwnProperty,R=(e,t)=>_r.call(e,t),I=Array.isArray,tt=e=>Mt(e)==="[object Map]",br=e=>Mt(e)==="[object Set]",A=e=>typeof e=="function",z=e=>typeof e=="string",Rt=e=>typeof e=="symbol",B=e=>e!==null&&typeof e=="object",Es=e=>(B(e)||A(e))&&A(e.then)&&A(e.catch),yr=Object.prototype.toString,Mt=e=>yr.call(e),xr=e=>Mt(e).slice(8,-1),vr=e=>Mt(e)==="[object Object]",vn=e=>z(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,nt=bn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ft=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},wr=/-(\w)/g,Je=Ft(e=>e.replace(wr,(t,n)=>n?n.toUpperCase():"")),Er=/\B([A-Z])/g,Xe=Ft(e=>e.replace(Er,"-$1").toLowerCase()),Cs=Ft(e=>e.charAt(0).toUpperCase()+e.slice(1)),zt=Ft(e=>e?`on${Cs(e)}`:""),Ue=(e,t)=>!Object.is(e,t),wt=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},sn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Wn;const Os=()=>Wn||(Wn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function wn(e){if(I(e)){const t={};for(let n=0;n{if(n){const s=n.split(Or);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function En(e){let t="";if(z(e))t=e;else if(I(e))for(let n=0;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),Ke()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Pe,n=$e;try{return Pe=!0,$e=this,this._runnings++,qn(this),this.fn()}finally{Gn(this),this._runnings--,$e=n,Pe=t}}stop(){var t;this.active&&(qn(this),Gn(this),(t=this.onStop)==null||t.call(this),this.active=!1)}}function Fr(e){return e.value}function qn(e){e._trackId++,e._depsLength=0}function Gn(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},ln=new WeakMap,He=Symbol(""),cn=Symbol("");function ee(e,t,n){if(Pe&&$e){let s=ln.get(e);s||ln.set(e,s=new Map);let r=s.get(n);r||s.set(n,r=Rs(()=>s.delete(n))),As($e,r)}}function ve(e,t,n,s,r,o){const l=ln.get(e);if(!l)return;let c=[];if(t==="clear")c=[...l.values()];else if(n==="length"&&I(e)){const u=Number(s);l.forEach((d,h)=>{(h==="length"||!Rt(h)&&h>=u)&&c.push(d)})}else switch(n!==void 0&&c.push(l.get(n)),t){case"add":I(e)?vn(n)&&c.push(l.get("length")):(c.push(l.get(He)),tt(e)&&c.push(l.get(cn)));break;case"delete":I(e)||(c.push(l.get(He)),tt(e)&&c.push(l.get(cn)));break;case"set":tt(e)&&c.push(l.get(He));break}On();for(const u of c)u&&Ss(u,4);Tn()}const Lr=bn("__proto__,__v_isRef,__isVue"),Ms=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Rt)),zn=Nr();function Nr(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=L(this);for(let o=0,l=this.length;o{e[t]=function(...n){Ve(),On();const s=L(this)[t].apply(this,n);return Tn(),Ke(),s}}),e}function jr(e){const t=L(this);return ee(t,"has",e),t.hasOwnProperty(e)}class Fs{constructor(t=!1,n=!1){this._isReadonly=t,this._shallow=n}get(t,n,s){const r=this._isReadonly,o=this._shallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return o;if(n==="__v_raw")return s===(r?o?Yr:$s:o?js:Ns).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const l=I(t);if(!r){if(l&&R(zn,n))return Reflect.get(zn,n,s);if(n==="hasOwnProperty")return jr}const c=Reflect.get(t,n,s);return(Rt(n)?Ms.has(n):Lr(n))||(r||ee(t,"get",n),o)?c:se(c)?l&&vn(n)?c:c.value:B(c)?r?Hs(c):An(c):c}}class Ls extends Fs{constructor(t=!1){super(!1,t)}set(t,n,s,r){let o=t[n];if(!this._shallow){const u=it(o);if(!fn(s)&&!it(s)&&(o=L(o),s=L(s)),!I(t)&&se(o)&&!se(s))return u?!1:(o.value=s,!0)}const l=I(t)&&vn(n)?Number(n)e,Lt=e=>Reflect.getPrototypeOf(e);function mt(e,t,n=!1,s=!1){e=e.__v_raw;const r=L(e),o=L(t);n||(Ue(t,o)&&ee(r,"get",t),ee(r,"get",o));const{has:l}=Lt(r),c=s?Pn:n?Mn:Rn;if(l.call(r,t))return c(e.get(t));if(l.call(r,o))return c(e.get(o));e!==r&&e.get(t)}function _t(e,t=!1){const n=this.__v_raw,s=L(n),r=L(e);return t||(Ue(e,r)&&ee(s,"has",e),ee(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function bt(e,t=!1){return e=e.__v_raw,!t&&ee(L(e),"iterate",He),Reflect.get(e,"size",e)}function Jn(e){e=L(e);const t=L(this);return Lt(t).has.call(t,e)||(t.add(e),ve(t,"add",e,e)),this}function Yn(e,t){t=L(t);const n=L(this),{has:s,get:r}=Lt(n);let o=s.call(n,e);o||(e=L(e),o=s.call(n,e));const l=r.call(n,e);return n.set(e,t),o?Ue(t,l)&&ve(n,"set",e,t):ve(n,"add",e,t),this}function Xn(e){const t=L(this),{has:n,get:s}=Lt(t);let r=n.call(t,e);r||(e=L(e),r=n.call(t,e)),s&&s.call(t,e);const o=t.delete(e);return r&&ve(t,"delete",e,void 0),o}function Zn(){const e=L(this),t=e.size!==0,n=e.clear();return t&&ve(e,"clear",void 0,void 0),n}function yt(e,t){return function(s,r){const o=this,l=o.__v_raw,c=L(l),u=t?Pn:e?Mn:Rn;return!e&&ee(c,"iterate",He),l.forEach((d,h)=>s.call(r,u(d),u(h),o))}}function xt(e,t,n){return function(...s){const r=this.__v_raw,o=L(r),l=tt(o),c=e==="entries"||e===Symbol.iterator&&l,u=e==="keys"&&l,d=r[e](...s),h=n?Pn:t?Mn:Rn;return!t&&ee(o,"iterate",u?cn:He),{next(){const{value:v,done:E}=d.next();return E?{value:v,done:E}:{value:c?[h(v[0]),h(v[1])]:h(v),done:E}},[Symbol.iterator](){return this}}}}function Ee(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Kr(){const e={get(o){return mt(this,o)},get size(){return bt(this)},has:_t,add:Jn,set:Yn,delete:Xn,clear:Zn,forEach:yt(!1,!1)},t={get(o){return mt(this,o,!1,!0)},get size(){return bt(this)},has:_t,add:Jn,set:Yn,delete:Xn,clear:Zn,forEach:yt(!1,!0)},n={get(o){return mt(this,o,!0)},get size(){return bt(this,!0)},has(o){return _t.call(this,o,!0)},add:Ee("add"),set:Ee("set"),delete:Ee("delete"),clear:Ee("clear"),forEach:yt(!0,!1)},s={get(o){return mt(this,o,!0,!0)},get size(){return bt(this,!0)},has(o){return _t.call(this,o,!0)},add:Ee("add"),set:Ee("set"),delete:Ee("delete"),clear:Ee("clear"),forEach:yt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=xt(o,!1,!1),n[o]=xt(o,!0,!1),t[o]=xt(o,!1,!0),s[o]=xt(o,!0,!0)}),[e,n,t,s]}const[Br,Dr,Wr,qr]=Kr();function In(e,t){const n=t?e?qr:Wr:e?Dr:Br;return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(R(n,r)&&r in s?n:s,r,o)}const Gr={get:In(!1,!1)},zr={get:In(!1,!0)},Jr={get:In(!0,!1)},Ns=new WeakMap,js=new WeakMap,$s=new WeakMap,Yr=new WeakMap;function Xr(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Zr(e){return e.__v_skip||!Object.isExtensible(e)?0:Xr(xr(e))}function An(e){return it(e)?e:Sn(e,!1,Hr,Gr,Ns)}function Qr(e){return Sn(e,!1,Vr,zr,js)}function Hs(e){return Sn(e,!0,Ur,Jr,$s)}function Sn(e,t,n,s,r){if(!B(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const l=Zr(e);if(l===0)return e;const c=new Proxy(e,l===2?s:n);return r.set(e,c),c}function Ge(e){return it(e)?Ge(e.__v_raw):!!(e&&e.__v_isReactive)}function it(e){return!!(e&&e.__v_isReadonly)}function fn(e){return!!(e&&e.__v_isShallow)}function Us(e){return Ge(e)||it(e)}function L(e){const t=e&&e.__v_raw;return t?L(t):e}function Vs(e){return Object.isExtensible(e)&&Tt(e,"__v_skip",!0),e}const Rn=e=>B(e)?An(e):e,Mn=e=>B(e)?Hs(e):e;class Ks{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new Cn(()=>t(this._value),()=>Jt(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=L(this);return(!t._cacheable||t.effect.dirty)&&Ue(t._value,t._value=t.effect.run())&&Jt(t,4),eo(t),t.effect._dirtyLevel>=2&&Jt(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function kr(e,t,n=!1){let s,r;const o=A(e);return o?(s=e,r=oe):(s=e.get,r=e.set),new Ks(s,r,o||!r,n)}function eo(e){var t;Pe&&$e&&(e=L(e),As($e,(t=e.dep)!=null?t:e.dep=Rs(()=>e.dep=void 0,e instanceof Ks?e:void 0)))}function Jt(e,t=4,n){e=L(e);const s=e.dep;s&&Ss(s,t)}function se(e){return!!(e&&e.__v_isRef===!0)}function to(e){return se(e)?e.value:e}const no={get:(e,t,n)=>to(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return se(r)&&!se(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Bs(e){return Ge(e)?e:new Proxy(e,no)}/** +* @vue/runtime-core v3.4.19 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ie(e,t,n,s){try{return s?e(...s):e()}catch(r){Nt(r,t,n)}}function fe(e,t,n,s){if(A(e)){const o=Ie(e,t,n,s);return o&&Es(o)&&o.catch(l=>{Nt(l,t,n)}),o}const r=[];for(let o=0;o>>1,r=J[s],o=ct(r);o_e&&J.splice(t,1)}function lo(e){I(e)?ze.push(...e):(!Ce||!Ce.includes(e,e.allowRecurse?Ne+1:Ne))&&ze.push(e),Ws()}function Qn(e,t,n=lt?_e+1:0){for(;nct(n)-ct(s));if(ze.length=0,Ce){Ce.push(...t);return}for(Ce=t,Ne=0;Nee.id==null?1/0:e.id,co=(e,t)=>{const n=ct(e)-ct(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Gs(e){un=!1,lt=!0,J.sort(co);try{for(_e=0;_ez(P)?P.trim():P)),v&&(r=n.map(sn))}let c,u=s[c=zt(t)]||s[c=zt(Je(t))];!u&&o&&(u=s[c=zt(Xe(t))]),u&&fe(u,e,6,r);const d=s[c+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,fe(d,e,6,r)}}function zs(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let l={},c=!1;if(!A(e)){const u=d=>{const h=zs(d,t,!0);h&&(c=!0,Y(l,h))};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!o&&!c?(B(e)&&s.set(e,null),null):(I(o)?o.forEach(u=>l[u]=null):Y(l,o),B(e)&&s.set(e,l),l)}function jt(e,t){return!e||!St(t)?!1:(t=t.slice(2).replace(/Once$/,""),R(e,t[0].toLowerCase()+t.slice(1))||R(e,Xe(t))||R(e,t))}let ne=null,Js=null;function Pt(e){const t=ne;return ne=e,Js=e&&e.type.__scopeId||null,t}function uo(e,t=ne,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&cs(-1);const o=Pt(t);let l;try{l=e(...r)}finally{Pt(o),s._d&&cs(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function Yt(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:o,propsOptions:[l],slots:c,attrs:u,emit:d,render:h,renderCache:v,data:E,setupState:P,ctx:K,inheritAttrs:F}=e;let W,D;const ue=Pt(e);try{if(n.shapeFlag&4){const q=r||s,re=q;W=me(h.call(re,q,v,o,P,E,K)),D=u}else{const q=t;W=me(q.length>1?q(o,{attrs:u,slots:c,emit:d}):q(o,null)),D=t.props?u:ao(u)}}catch(q){ot.length=0,Nt(q,e,1),W=Ae(ft)}let j=W;if(D&&F!==!1){const q=Object.keys(D),{shapeFlag:re}=j;q.length&&re&7&&(l&&q.some(yn)&&(D=ho(D,l)),j=Ye(j,D))}return n.dirs&&(j=Ye(j),j.dirs=j.dirs?j.dirs.concat(n.dirs):n.dirs),n.transition&&(j.transition=n.transition),W=j,Pt(ue),W}const ao=e=>{let t;for(const n in e)(n==="class"||n==="style"||St(n))&&((t||(t={}))[n]=e[n]);return t},ho=(e,t)=>{const n={};for(const s in e)(!yn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function po(e,t,n){const{props:s,children:r,component:o}=e,{props:l,children:c,patchFlag:u}=t,d=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&u>=0){if(u&1024)return!0;if(u&16)return s?kn(s,l,d):!!l;if(u&8){const h=t.dynamicProps;for(let v=0;ve.__isSuspense;function bo(e,t){t&&t.pendingBranch?I(e)?t.effects.push(...e):t.effects.push(e):lo(e)}const yo=Symbol.for("v-scx"),xo=()=>Ct(yo),vt={};function Xt(e,t,n){return Ys(e,t,n)}function Ys(e,t,{immediate:n,deep:s,flush:r,once:o,onTrack:l,onTrigger:c}=H){if(t&&o){const M=t;t=(...be)=>{M(...be),re()}}const u=Q,d=M=>s===!0?M:je(M,s===!1?1:void 0);let h,v=!1,E=!1;if(se(e)?(h=()=>e.value,v=fn(e)):Ge(e)?(h=()=>d(e),v=!0):I(e)?(E=!0,v=e.some(M=>Ge(M)||fn(M)),h=()=>e.map(M=>{if(se(M))return M.value;if(Ge(M))return d(M);if(A(M))return Ie(M,u,2)})):A(e)?t?h=()=>Ie(e,u,2):h=()=>(P&&P(),fe(e,u,3,[K])):h=oe,t&&s){const M=h;h=()=>je(M())}let P,K=M=>{P=j.onStop=()=>{Ie(M,u,4),P=j.onStop=void 0}},F;if(Vt)if(K=oe,t?n&&fe(t,u,3,[h(),E?[]:void 0,K]):h(),r==="sync"){const M=xo();F=M.__watcherHandles||(M.__watcherHandles=[])}else return oe;let W=E?new Array(e.length).fill(vt):vt;const D=()=>{if(!(!j.active||!j.dirty))if(t){const M=j.run();(s||v||(E?M.some((be,ae)=>Ue(be,W[ae])):Ue(M,W)))&&(P&&P(),fe(t,u,3,[M,W===vt?void 0:E&&W[0]===vt?[]:W,K]),W=M)}else j.run()};D.allowRecurse=!!t;let ue;r==="sync"?ue=D:r==="post"?ue=()=>k(D,u&&u.suspense):(D.pre=!0,u&&(D.id=u.uid),ue=()=>Ln(D));const j=new Cn(h,oe,ue),q=Mr(),re=()=>{j.stop(),q&&xn(q.effects,j)};return t?n?D():W=j.run():r==="post"?k(j.run.bind(j),u&&u.suspense):j.run(),F&&F.push(re),re}function vo(e,t,n){const s=this.proxy,r=z(e)?e.includes(".")?Xs(s,e):()=>s[e]:e.bind(s,s);let o;A(t)?o=t:(o=t.handler,n=t);const l=at(this),c=Ys(r,o.bind(s),n);return l(),c}function Xs(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r0){if(n>=t)return e;n++}if(s=s||new Set,s.has(e))return e;if(s.add(e),se(e))je(e.value,t,n,s);else if(I(e))for(let r=0;r{je(r,t,n,s)});else if(vr(e))for(const r in e)je(e[r],t,n,s);return e}function wo(e,t){if(ne===null)return e;const n=Kt(ne)||ne.proxy,s=e.dirs||(e.dirs=[]);for(let r=0;r!!e.type.__asyncLoader,Zs=e=>e.type.__isKeepAlive;function Eo(e,t){Qs(e,"a",t)}function Co(e,t){Qs(e,"da",t)}function Qs(e,t,n=Q){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if($t(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Zs(r.parent.vnode)&&Oo(s,t,n,r),r=r.parent}}function Oo(e,t,n,s){const r=$t(t,e,s,!0);ks(()=>{xn(s[t],r)},n)}function $t(e,t,n=Q,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...l)=>{if(n.isUnmounted)return;Ve();const c=at(n),u=fe(t,n,e,l);return c(),Ke(),u});return s?r.unshift(o):r.push(o),o}}const we=e=>(t,n=Q)=>(!Vt||e==="sp")&&$t(e,(...s)=>t(...s),n),To=we("bm"),Po=we("m"),Io=we("bu"),Ao=we("u"),So=we("bum"),ks=we("um"),Ro=we("sp"),Mo=we("rtg"),Fo=we("rtc");function Lo(e,t=Q){$t("ec",e,t)}const an=e=>e?dr(e)?Kt(e)||e.proxy:an(e.parent):null,st=Y(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>an(e.parent),$root:e=>an(e.root),$emit:e=>e.emit,$options:e=>Nn(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Ln(e.update)}),$nextTick:e=>e.n||(e.n=ro.bind(e.proxy)),$watch:e=>vo.bind(e)}),Zt=(e,t)=>e!==H&&!e.__isScriptSetup&&R(e,t),No={get({_:e},t){const{ctx:n,setupState:s,data:r,props:o,accessCache:l,type:c,appContext:u}=e;let d;if(t[0]!=="$"){const P=l[t];if(P!==void 0)switch(P){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(Zt(s,t))return l[t]=1,s[t];if(r!==H&&R(r,t))return l[t]=2,r[t];if((d=e.propsOptions[0])&&R(d,t))return l[t]=3,o[t];if(n!==H&&R(n,t))return l[t]=4,n[t];dn&&(l[t]=0)}}const h=st[t];let v,E;if(h)return t==="$attrs"&&ee(e,"get",t),h(e);if((v=c.__cssModules)&&(v=v[t]))return v;if(n!==H&&R(n,t))return l[t]=4,n[t];if(E=u.config.globalProperties,R(E,t))return E[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;return Zt(r,t)?(r[t]=n,!0):s!==H&&R(s,t)?(s[t]=n,!0):R(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:o}},l){let c;return!!n[l]||e!==H&&R(e,l)||Zt(t,l)||(c=o[0])&&R(c,l)||R(s,l)||R(st,l)||R(r.config.globalProperties,l)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:R(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function es(e){return I(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let dn=!0;function jo(e){const t=Nn(e),n=e.proxy,s=e.ctx;dn=!1,t.beforeCreate&&ts(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:l,watch:c,provide:u,inject:d,created:h,beforeMount:v,mounted:E,beforeUpdate:P,updated:K,activated:F,deactivated:W,beforeDestroy:D,beforeUnmount:ue,destroyed:j,unmounted:q,render:re,renderTracked:M,renderTriggered:be,errorCaptured:ae,serverPrefetch:Bt,expose:Se,inheritAttrs:Ze,components:dt,directives:ht,filters:Dt}=t;if(d&&$o(d,s,null),l)for(const V in l){const $=l[V];A($)&&(s[V]=$.bind(n))}if(r){const V=r.call(n,n);B(V)&&(e.data=An(V))}if(dn=!0,o)for(const V in o){const $=o[V],Re=A($)?$.bind(n,n):A($.get)?$.get.bind(n,n):oe,pt=!A($)&&A($.set)?$.set.bind(n):oe,Me=gi({get:Re,set:pt});Object.defineProperty(s,V,{enumerable:!0,configurable:!0,get:()=>Me.value,set:de=>Me.value=de})}if(c)for(const V in c)er(c[V],s,n,V);if(u){const V=A(u)?u.call(n):u;Reflect.ownKeys(V).forEach($=>{Do($,V[$])})}h&&ts(h,e,"c");function X(V,$){I($)?$.forEach(Re=>V(Re.bind(n))):$&&V($.bind(n))}if(X(To,v),X(Po,E),X(Io,P),X(Ao,K),X(Eo,F),X(Co,W),X(Lo,ae),X(Fo,M),X(Mo,be),X(So,ue),X(ks,q),X(Ro,Bt),I(Se))if(Se.length){const V=e.exposed||(e.exposed={});Se.forEach($=>{Object.defineProperty(V,$,{get:()=>n[$],set:Re=>n[$]=Re})})}else e.exposed||(e.exposed={});re&&e.render===oe&&(e.render=re),Ze!=null&&(e.inheritAttrs=Ze),dt&&(e.components=dt),ht&&(e.directives=ht)}function $o(e,t,n=oe){I(e)&&(e=hn(e));for(const s in e){const r=e[s];let o;B(r)?"default"in r?o=Ct(r.from||s,r.default,!0):o=Ct(r.from||s):o=Ct(r),se(o)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>o.value,set:l=>o.value=l}):t[s]=o}}function ts(e,t,n){fe(I(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function er(e,t,n,s){const r=s.includes(".")?Xs(n,s):()=>n[s];if(z(e)){const o=t[e];A(o)&&Xt(r,o)}else if(A(e))Xt(r,e.bind(n));else if(B(e))if(I(e))e.forEach(o=>er(o,t,n,s));else{const o=A(e.handler)?e.handler.bind(n):t[e.handler];A(o)&&Xt(r,o,e)}}function Nn(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:l}}=e.appContext,c=o.get(t);let u;return c?u=c:!r.length&&!n&&!s?u=t:(u={},r.length&&r.forEach(d=>It(u,d,l,!0)),It(u,t,l)),B(t)&&o.set(t,u),u}function It(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&It(e,o,n,!0),r&&r.forEach(l=>It(e,l,n,!0));for(const l in t)if(!(s&&l==="expose")){const c=Ho[l]||n&&n[l];e[l]=c?c(e[l],t[l]):t[l]}return e}const Ho={data:ns,props:ss,emits:ss,methods:et,computed:et,beforeCreate:Z,created:Z,beforeMount:Z,mounted:Z,beforeUpdate:Z,updated:Z,beforeDestroy:Z,beforeUnmount:Z,destroyed:Z,unmounted:Z,activated:Z,deactivated:Z,errorCaptured:Z,serverPrefetch:Z,components:et,directives:et,watch:Vo,provide:ns,inject:Uo};function ns(e,t){return t?e?function(){return Y(A(e)?e.call(this,this):e,A(t)?t.call(this,this):t)}:t:e}function Uo(e,t){return et(hn(e),hn(t))}function hn(e){if(I(e)){const t={};for(let n=0;n1)return n&&A(t)?t.call(s&&s.proxy):t}}function Wo(e,t,n,s=!1){const r={},o={};Tt(o,Ut,1),e.propsDefaults=Object.create(null),nr(e,t,r,o);for(const l in e.propsOptions[0])l in r||(r[l]=void 0);n?e.props=s?r:Qr(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function qo(e,t,n,s){const{props:r,attrs:o,vnode:{patchFlag:l}}=e,c=L(r),[u]=e.propsOptions;let d=!1;if((s||l>0)&&!(l&16)){if(l&8){const h=e.vnode.dynamicProps;for(let v=0;v{u=!0;const[E,P]=sr(v,t,!0);Y(l,E),P&&c.push(...P)};!n&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!o&&!u)return B(e)&&s.set(e,qe),qe;if(I(o))for(let h=0;h-1,P[1]=F<0||K-1||R(P,"default"))&&c.push(v)}}}const d=[l,c];return B(e)&&s.set(e,d),d}function rs(e){return e[0]!=="$"&&!nt(e)}function os(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function is(e,t){return os(e)===os(t)}function ls(e,t){return I(t)?t.findIndex(n=>is(n,e)):A(t)&&is(t,e)?0:-1}const rr=e=>e[0]==="_"||e==="$stable",jn=e=>I(e)?e.map(me):[me(e)],Go=(e,t,n)=>{if(t._n)return t;const s=uo((...r)=>jn(t(...r)),n);return s._c=!1,s},or=(e,t,n)=>{const s=e._ctx;for(const r in e){if(rr(r))continue;const o=e[r];if(A(o))t[r]=Go(r,o,s);else if(o!=null){const l=jn(o);t[r]=()=>l}}},ir=(e,t)=>{const n=jn(t);e.slots.default=()=>n},zo=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=L(t),Tt(t,"_",n)):or(t,e.slots={})}else e.slots={},t&&ir(e,t);Tt(e.slots,Ut,1)},Jo=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,l=H;if(s.shapeFlag&32){const c=t._;c?n&&c===1?o=!1:(Y(r,t),!n&&c===1&&delete r._):(o=!t.$stable,or(t,r)),l=t}else t&&(ir(e,t),l={default:1});if(o)for(const c in r)!rr(c)&&l[c]==null&&delete r[c]};function gn(e,t,n,s,r=!1){if(I(e)){e.forEach((E,P)=>gn(E,t&&(I(t)?t[P]:t),n,s,r));return}if(Et(s)&&!r)return;const o=s.shapeFlag&4?Kt(s.component)||s.component.proxy:s.el,l=r?null:o,{i:c,r:u}=e,d=t&&t.r,h=c.refs===H?c.refs={}:c.refs,v=c.setupState;if(d!=null&&d!==u&&(z(d)?(h[d]=null,R(v,d)&&(v[d]=null)):se(d)&&(d.value=null)),A(u))Ie(u,c,12,[l,h]);else{const E=z(u),P=se(u);if(E||P){const K=()=>{if(e.f){const F=E?R(v,u)?v[u]:h[u]:u.value;r?I(F)&&xn(F,o):I(F)?F.includes(o)||F.push(o):E?(h[u]=[o],R(v,u)&&(v[u]=h[u])):(u.value=[o],e.k&&(h[e.k]=u.value))}else E?(h[u]=l,R(v,u)&&(v[u]=l)):P&&(u.value=l,e.k&&(h[e.k]=l))};l?(K.id=-1,k(K,n)):K()}}}const k=bo;function Yo(e){return Xo(e)}function Xo(e,t){const n=Os();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:l,createText:c,createComment:u,setText:d,setElementText:h,parentNode:v,nextSibling:E,setScopeId:P=oe,insertStaticContent:K}=e,F=(i,f,a,p=null,g=null,b=null,x=void 0,_=null,y=!!f.dynamicChildren)=>{if(i===f)return;i&&!ke(i,f)&&(p=gt(i),de(i,g,b,!0),i=null),f.patchFlag===-2&&(y=!1,f.dynamicChildren=null);const{type:m,ref:w,shapeFlag:O}=f;switch(m){case Ht:W(i,f,a,p);break;case ft:D(i,f,a,p);break;case kt:i==null&&ue(f,a,p,x);break;case ge:dt(i,f,a,p,g,b,x,_,y);break;default:O&1?re(i,f,a,p,g,b,x,_,y):O&6?ht(i,f,a,p,g,b,x,_,y):(O&64||O&128)&&m.process(i,f,a,p,g,b,x,_,y,Be)}w!=null&&g&&gn(w,i&&i.ref,b,f||i,!f)},W=(i,f,a,p)=>{if(i==null)s(f.el=c(f.children),a,p);else{const g=f.el=i.el;f.children!==i.children&&d(g,f.children)}},D=(i,f,a,p)=>{i==null?s(f.el=u(f.children||""),a,p):f.el=i.el},ue=(i,f,a,p)=>{[i.el,i.anchor]=K(i.children,f,a,p,i.el,i.anchor)},j=({el:i,anchor:f},a,p)=>{let g;for(;i&&i!==f;)g=E(i),s(i,a,p),i=g;s(f,a,p)},q=({el:i,anchor:f})=>{let a;for(;i&&i!==f;)a=E(i),r(i),i=a;r(f)},re=(i,f,a,p,g,b,x,_,y)=>{f.type==="svg"?x="svg":f.type==="math"&&(x="mathml"),i==null?M(f,a,p,g,b,x,_,y):Bt(i,f,g,b,x,_,y)},M=(i,f,a,p,g,b,x,_)=>{let y,m;const{props:w,shapeFlag:O,transition:C,dirs:T}=i;if(y=i.el=l(i.type,b,w&&w.is,w),O&8?h(y,i.children):O&16&&ae(i.children,y,null,p,g,Qt(i,b),x,_),T&&Fe(i,null,p,"created"),be(y,i,i.scopeId,x,p),w){for(const N in w)N!=="value"&&!nt(N)&&o(y,N,null,w[N],b,i.children,p,g,ye);"value"in w&&o(y,"value",null,w.value,b),(m=w.onVnodeBeforeMount)&&pe(m,p,i)}T&&Fe(i,null,p,"beforeMount");const S=Zo(g,C);S&&C.beforeEnter(y),s(y,f,a),((m=w&&w.onVnodeMounted)||S||T)&&k(()=>{m&&pe(m,p,i),S&&C.enter(y),T&&Fe(i,null,p,"mounted")},g)},be=(i,f,a,p,g)=>{if(a&&P(i,a),p)for(let b=0;b{for(let m=y;m{const _=f.el=i.el;let{patchFlag:y,dynamicChildren:m,dirs:w}=f;y|=i.patchFlag&16;const O=i.props||H,C=f.props||H;let T;if(a&&Le(a,!1),(T=C.onVnodeBeforeUpdate)&&pe(T,a,f,i),w&&Fe(f,i,a,"beforeUpdate"),a&&Le(a,!0),m?Se(i.dynamicChildren,m,_,a,p,Qt(f,g),b):x||$(i,f,_,null,a,p,Qt(f,g),b,!1),y>0){if(y&16)Ze(_,f,O,C,a,p,g);else if(y&2&&O.class!==C.class&&o(_,"class",null,C.class,g),y&4&&o(_,"style",O.style,C.style,g),y&8){const S=f.dynamicProps;for(let N=0;N{T&&pe(T,a,f,i),w&&Fe(f,i,a,"updated")},p)},Se=(i,f,a,p,g,b,x)=>{for(let _=0;_{if(a!==p){if(a!==H)for(const _ in a)!nt(_)&&!(_ in p)&&o(i,_,a[_],null,x,f.children,g,b,ye);for(const _ in p){if(nt(_))continue;const y=p[_],m=a[_];y!==m&&_!=="value"&&o(i,_,m,y,x,f.children,g,b,ye)}"value"in p&&o(i,"value",a.value,p.value,x)}},dt=(i,f,a,p,g,b,x,_,y)=>{const m=f.el=i?i.el:c(""),w=f.anchor=i?i.anchor:c("");let{patchFlag:O,dynamicChildren:C,slotScopeIds:T}=f;T&&(_=_?_.concat(T):T),i==null?(s(m,a,p),s(w,a,p),ae(f.children||[],a,w,g,b,x,_,y)):O>0&&O&64&&C&&i.dynamicChildren?(Se(i.dynamicChildren,C,a,g,b,x,_),(f.key!=null||g&&f===g.subTree)&&lr(i,f,!0)):$(i,f,a,w,g,b,x,_,y)},ht=(i,f,a,p,g,b,x,_,y)=>{f.slotScopeIds=_,i==null?f.shapeFlag&512?g.ctx.activate(f,a,p,x,y):Dt(f,a,p,g,b,x,y):Hn(i,f,y)},Dt=(i,f,a,p,g,b,x)=>{const _=i.component=fi(i,p,g);if(Zs(i)&&(_.ctx.renderer=Be),ui(_),_.asyncDep){if(g&&g.registerDep(_,X),!i.el){const y=_.subTree=Ae(ft);D(null,y,f,a)}}else X(_,i,f,a,g,b,x)},Hn=(i,f,a)=>{const p=f.component=i.component;if(po(i,f,a))if(p.asyncDep&&!p.asyncResolved){V(p,f,a);return}else p.next=f,io(p.update),p.effect.dirty=!0,p.update();else f.el=i.el,p.vnode=f},X=(i,f,a,p,g,b,x)=>{const _=()=>{if(i.isMounted){let{next:w,bu:O,u:C,parent:T,vnode:S}=i;{const De=cr(i);if(De){w&&(w.el=S.el,V(i,w,x)),De.asyncDep.then(()=>{i.isUnmounted||_()});return}}let N=w,U;Le(i,!1),w?(w.el=S.el,V(i,w,x)):w=S,O&&wt(O),(U=w.props&&w.props.onVnodeBeforeUpdate)&&pe(U,T,w,S),Le(i,!0);const G=Yt(i),ie=i.subTree;i.subTree=G,F(ie,G,v(ie.el),gt(ie),i,g,b),w.el=G.el,N===null&&go(i,G.el),C&&k(C,g),(U=w.props&&w.props.onVnodeUpdated)&&k(()=>pe(U,T,w,S),g)}else{let w;const{el:O,props:C}=f,{bm:T,m:S,parent:N}=i,U=Et(f);if(Le(i,!1),T&&wt(T),!U&&(w=C&&C.onVnodeBeforeMount)&&pe(w,N,f),Le(i,!0),O&&Gt){const G=()=>{i.subTree=Yt(i),Gt(O,i.subTree,i,g,null)};U?f.type.__asyncLoader().then(()=>!i.isUnmounted&&G()):G()}else{const G=i.subTree=Yt(i);F(null,G,a,p,i,g,b),f.el=G.el}if(S&&k(S,g),!U&&(w=C&&C.onVnodeMounted)){const G=f;k(()=>pe(w,N,G),g)}(f.shapeFlag&256||N&&Et(N.vnode)&&N.vnode.shapeFlag&256)&&i.a&&k(i.a,g),i.isMounted=!0,f=a=p=null}},y=i.effect=new Cn(_,oe,()=>Ln(m),i.scope),m=i.update=()=>{y.dirty&&y.run()};m.id=i.uid,Le(i,!0),m()},V=(i,f,a)=>{f.component=i;const p=i.vnode.props;i.vnode=f,i.next=null,qo(i,f.props,p,a),Jo(i,f.children,a),Ve(),Qn(i),Ke()},$=(i,f,a,p,g,b,x,_,y=!1)=>{const m=i&&i.children,w=i?i.shapeFlag:0,O=f.children,{patchFlag:C,shapeFlag:T}=f;if(C>0){if(C&128){pt(m,O,a,p,g,b,x,_,y);return}else if(C&256){Re(m,O,a,p,g,b,x,_,y);return}}T&8?(w&16&&ye(m,g,b),O!==m&&h(a,O)):w&16?T&16?pt(m,O,a,p,g,b,x,_,y):ye(m,g,b,!0):(w&8&&h(a,""),T&16&&ae(O,a,p,g,b,x,_,y))},Re=(i,f,a,p,g,b,x,_,y)=>{i=i||qe,f=f||qe;const m=i.length,w=f.length,O=Math.min(m,w);let C;for(C=0;Cw?ye(i,g,b,!0,!1,O):ae(f,a,p,g,b,x,_,y,O)},pt=(i,f,a,p,g,b,x,_,y)=>{let m=0;const w=f.length;let O=i.length-1,C=w-1;for(;m<=O&&m<=C;){const T=i[m],S=f[m]=y?Oe(f[m]):me(f[m]);if(ke(T,S))F(T,S,a,null,g,b,x,_,y);else break;m++}for(;m<=O&&m<=C;){const T=i[O],S=f[C]=y?Oe(f[C]):me(f[C]);if(ke(T,S))F(T,S,a,null,g,b,x,_,y);else break;O--,C--}if(m>O){if(m<=C){const T=C+1,S=TC)for(;m<=O;)de(i[m],g,b,!0),m++;else{const T=m,S=m,N=new Map;for(m=S;m<=C;m++){const te=f[m]=y?Oe(f[m]):me(f[m]);te.key!=null&&N.set(te.key,m)}let U,G=0;const ie=C-S+1;let De=!1,Kn=0;const Qe=new Array(ie);for(m=0;m=ie){de(te,g,b,!0);continue}let he;if(te.key!=null)he=N.get(te.key);else for(U=S;U<=C;U++)if(Qe[U-S]===0&&ke(te,f[U])){he=U;break}he===void 0?de(te,g,b,!0):(Qe[he-S]=m+1,he>=Kn?Kn=he:De=!0,F(te,f[he],a,null,g,b,x,_,y),G++)}const Bn=De?Qo(Qe):qe;for(U=Bn.length-1,m=ie-1;m>=0;m--){const te=S+m,he=f[te],Dn=te+1{const{el:b,type:x,transition:_,children:y,shapeFlag:m}=i;if(m&6){Me(i.component.subTree,f,a,p);return}if(m&128){i.suspense.move(f,a,p);return}if(m&64){x.move(i,f,a,Be);return}if(x===ge){s(b,f,a);for(let O=0;O_.enter(b),g);else{const{leave:O,delayLeave:C,afterLeave:T}=_,S=()=>s(b,f,a),N=()=>{O(b,()=>{S(),T&&T()})};C?C(b,S,N):N()}else s(b,f,a)},de=(i,f,a,p=!1,g=!1)=>{const{type:b,props:x,ref:_,children:y,dynamicChildren:m,shapeFlag:w,patchFlag:O,dirs:C}=i;if(_!=null&&gn(_,null,a,i,!0),w&256){f.ctx.deactivate(i);return}const T=w&1&&C,S=!Et(i);let N;if(S&&(N=x&&x.onVnodeBeforeUnmount)&&pe(N,f,i),w&6)gr(i.component,a,p);else{if(w&128){i.suspense.unmount(a,p);return}T&&Fe(i,null,f,"beforeUnmount"),w&64?i.type.remove(i,f,a,g,Be,p):m&&(b!==ge||O>0&&O&64)?ye(m,f,a,!1,!0):(b===ge&&O&384||!g&&w&16)&&ye(y,f,a),p&&Un(i)}(S&&(N=x&&x.onVnodeUnmounted)||T)&&k(()=>{N&&pe(N,f,i),T&&Fe(i,null,f,"unmounted")},a)},Un=i=>{const{type:f,el:a,anchor:p,transition:g}=i;if(f===ge){pr(a,p);return}if(f===kt){q(i);return}const b=()=>{r(a),g&&!g.persisted&&g.afterLeave&&g.afterLeave()};if(i.shapeFlag&1&&g&&!g.persisted){const{leave:x,delayLeave:_}=g,y=()=>x(a,b);_?_(i.el,b,y):y()}else b()},pr=(i,f)=>{let a;for(;i!==f;)a=E(i),r(i),i=a;r(f)},gr=(i,f,a)=>{const{bum:p,scope:g,update:b,subTree:x,um:_}=i;p&&wt(p),g.stop(),b&&(b.active=!1,de(x,i,f,a)),_&&k(_,f),k(()=>{i.isUnmounted=!0},f),f&&f.pendingBranch&&!f.isUnmounted&&i.asyncDep&&!i.asyncResolved&&i.suspenseId===f.pendingId&&(f.deps--,f.deps===0&&f.resolve())},ye=(i,f,a,p=!1,g=!1,b=0)=>{for(let x=b;xi.shapeFlag&6?gt(i.component.subTree):i.shapeFlag&128?i.suspense.next():E(i.anchor||i.el);let Wt=!1;const Vn=(i,f,a)=>{i==null?f._vnode&&de(f._vnode,null,null,!0):F(f._vnode||null,i,f,null,null,null,a),Wt||(Wt=!0,Qn(),qs(),Wt=!1),f._vnode=i},Be={p:F,um:de,m:Me,r:Un,mt:Dt,mc:ae,pc:$,pbc:Se,n:gt,o:e};let qt,Gt;return t&&([qt,Gt]=t(Be)),{render:Vn,hydrate:qt,createApp:Bo(Vn,qt)}}function Qt({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Le({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Zo(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function lr(e,t,n=!1){const s=e.children,r=t.children;if(I(s)&&I(r))for(let o=0;o>1,e[n[c]]0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,l=n[o-1];o-- >0;)n[o]=l,l=t[l];return n}function cr(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:cr(t)}const ko=e=>e.__isTeleport,ge=Symbol.for("v-fgt"),Ht=Symbol.for("v-txt"),ft=Symbol.for("v-cmt"),kt=Symbol.for("v-stc"),ot=[];let ce=null;function fr(e=!1){ot.push(ce=e?null:[])}function ei(){ot.pop(),ce=ot[ot.length-1]||null}let ut=1;function cs(e){ut+=e}function ti(e){return e.dynamicChildren=ut>0?ce||qe:null,ei(),ut>0&&ce&&ce.push(e),e}function ur(e,t,n,s,r,o){return ti(xe(e,t,n,s,r,o,!0))}function ni(e){return e?e.__v_isVNode===!0:!1}function ke(e,t){return e.type===t.type&&e.key===t.key}const Ut="__vInternal",ar=({key:e})=>e??null,Ot=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?z(e)||se(e)||A(e)?{i:ne,r:e,k:t,f:!!n}:e:null);function xe(e,t=null,n=null,s=0,r=null,o=e===ge?0:1,l=!1,c=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ar(t),ref:t&&Ot(t),scopeId:Js,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ne};return c?($n(u,n),o&128&&e.normalize(u)):n&&(u.shapeFlag|=z(n)?8:16),ut>0&&!l&&ce&&(u.patchFlag>0||o&6)&&u.patchFlag!==32&&ce.push(u),u}const Ae=si;function si(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===mo)&&(e=ft),ni(e)){const c=Ye(e,t,!0);return n&&$n(c,n),ut>0&&!o&&ce&&(c.shapeFlag&6?ce[ce.indexOf(e)]=c:ce.push(c)),c.patchFlag|=-2,c}if(pi(e)&&(e=e.__vccOpts),t){t=ri(t);let{class:c,style:u}=t;c&&!z(c)&&(t.class=En(c)),B(u)&&(Us(u)&&!I(u)&&(u=Y({},u)),t.style=wn(u))}const l=z(e)?1:_o(e)?128:ko(e)?64:B(e)?4:A(e)?2:0;return xe(e,t,n,s,r,l,o,!0)}function ri(e){return e?Us(e)||Ut in e?Y({},e):e:null}function Ye(e,t,n=!1){const{props:s,ref:r,patchFlag:o,children:l}=e,c=t?ii(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&ar(c),ref:t&&t.ref?n&&r?I(r)?r.concat(Ot(t)):[r,Ot(t)]:Ot(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ge?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ye(e.ssContent),ssFallback:e.ssFallback&&Ye(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function oi(e=" ",t=0){return Ae(Ht,null,e,t)}function me(e){return e==null||typeof e=="boolean"?Ae(ft):I(e)?Ae(ge,null,e.slice()):typeof e=="object"?Oe(e):Ae(Ht,null,String(e))}function Oe(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ye(e)}function $n(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(I(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),$n(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Ut in t)?t._ctx=ne:r===3&&ne&&(ne.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else A(t)?(t={default:t,_ctx:ne},n=32):(t=String(t),s&64?(n=16,t=[oi(t)]):n=8);e.children=t,e.shapeFlag|=n}function ii(...e){const t={};for(let n=0;n{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),o=>{r.length>1?r.forEach(l=>l(o)):r[0](o)}};At=t("__VUE_INSTANCE_SETTERS__",n=>Q=n),mn=t("__VUE_SSR_SETTERS__",n=>Vt=n)}const at=e=>{const t=Q;return At(e),e.scope.on(),()=>{e.scope.off(),At(t)}},fs=()=>{Q&&Q.scope.off(),At(null)};function dr(e){return e.vnode.shapeFlag&4}let Vt=!1;function ui(e,t=!1){t&&mn(t);const{props:n,children:s}=e.vnode,r=dr(e);Wo(e,n,r,t),zo(e,s);const o=r?ai(e,t):void 0;return t&&mn(!1),o}function ai(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Vs(new Proxy(e.ctx,No));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?hi(e):null,o=at(e);Ve();const l=Ie(s,e,0,[e.props,r]);if(Ke(),o(),Es(l)){if(l.then(fs,fs),t)return l.then(c=>{us(e,c,t)}).catch(c=>{Nt(c,e,0)});e.asyncDep=l}else us(e,l,t)}else hr(e,t)}function us(e,t,n){A(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:B(t)&&(e.setupState=Bs(t)),hr(e,n)}let as;function hr(e,t,n){const s=e.type;if(!e.render){if(!t&&as&&!s.render){const r=s.template||Nn(e).template;if(r){const{isCustomElement:o,compilerOptions:l}=e.appContext.config,{delimiters:c,compilerOptions:u}=s,d=Y(Y({isCustomElement:o,delimiters:c},l),u);s.render=as(r,d)}}e.render=s.render||oe}{const r=at(e);Ve();try{jo(e)}finally{Ke(),r()}}}function di(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return ee(e,"get","$attrs"),t[n]}}))}function hi(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return di(e)},slots:e.slots,emit:e.emit,expose:t}}function Kt(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Bs(Vs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in st)return st[n](e)},has(t,n){return n in t||n in st}}))}function pi(e){return A(e)&&"__vccOpts"in e}const gi=(e,t)=>kr(e,t,Vt),mi="3.4.19";/** +* @vue/runtime-dom v3.4.19 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const _i="http://www.w3.org/2000/svg",bi="http://www.w3.org/1998/Math/MathML",Te=typeof document<"u"?document:null,ds=Te&&Te.createElement("template"),yi={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Te.createElementNS(_i,e):t==="mathml"?Te.createElementNS(bi,e):Te.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Te.createTextNode(e),createComment:e=>Te.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Te.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const l=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{ds.innerHTML=s==="svg"?`${e}`:s==="mathml"?`${e}`:e;const c=ds.content;if(s==="svg"||s==="mathml"){const u=c.firstChild;for(;u.firstChild;)c.appendChild(u.firstChild);c.removeChild(u)}t.insertBefore(c,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},xi=Symbol("_vtc");function vi(e,t,n){const s=e[xi];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const hs=Symbol("_vod"),wi=Symbol(""),Ei=/(^|;)\s*display\s*:/;function Ci(e,t,n){const s=e.style,r=z(n),o=s.display;let l=!1;if(n&&!r){if(t&&!z(t))for(const c in t)n[c]==null&&_n(s,c,"");for(const c in n)c==="display"&&(l=!0),_n(s,c,n[c])}else if(r){if(t!==n){const c=s[wi];c&&(n+=";"+c),s.cssText=n,l=Ei.test(n)}}else t&&e.removeAttribute("style");hs in e&&(e[hs]=l?s.display:"",s.display=o)}const ps=/\s*!important$/;function _n(e,t,n){if(I(n))n.forEach(s=>_n(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Oi(e,t);ps.test(n)?e.setProperty(Xe(s),n.replace(ps,""),"important"):e[s]=n}}const gs=["Webkit","Moz","ms"],en={};function Oi(e,t){const n=en[t];if(n)return n;let s=Je(t);if(s!=="filter"&&s in e)return en[t]=s;s=Cs(s);for(let r=0;rtn||(Ri.then(()=>tn=0),tn=Date.now());function Fi(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;fe(Li(s,n.value),t,5,[s])};return n.value=e,n.attached=Mi(),n}function Li(e,t){if(I(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const ys=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ni=(e,t,n,s,r,o,l,c,u)=>{const d=r==="svg";t==="class"?vi(e,s,d):t==="style"?Ci(e,n,s):St(t)?yn(t)||Ai(e,t,n,s,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ji(e,t,s,d))?Pi(e,t,s,o,l,c,u):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Ti(e,t,s,d))};function ji(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&ys(t)&&A(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return ys(t)&&z(n)?!1:t in e}const xs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return I(t)?n=>wt(t,n):t};function $i(e){e.target.composing=!0}function vs(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const nn=Symbol("_assign"),Hi={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[nn]=xs(r);const o=s||r.props&&r.props.type==="number";We(e,t?"change":"input",l=>{if(l.target.composing)return;let c=e.value;n&&(c=c.trim()),o&&(c=sn(c)),e[nn](c)}),n&&We(e,"change",()=>{e.value=e.value.trim()}),t||(We(e,"compositionstart",$i),We(e,"compositionend",vs),We(e,"change",vs))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:s,number:r}},o){if(e[nn]=xs(o),e.composing)return;const l=r||e.type==="number"?sn(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(n||s&&e.value.trim()===c)||(e.value=c))}},Ui=Y({patchProp:Ni},yi);let ws;function Vi(){return ws||(ws=Yo(Ui))}const Ki=(...e)=>{const t=Vi().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Di(s);if(!r)return;const o=t._component;!A(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.innerHTML="";const l=n(r,!1,Bi(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t};function Bi(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Di(e){return z(e)?document.querySelector(e):e}const Wi="/assets/sdxl-turbo-DtBCg58l.jpeg",qi=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Gi={name:"ImageCard",data(){return{imagePath:Wi,inputPrompt:"dog in a frosty background, puppy eyes, cute, full of lights, 8K"}},methods:{generateImage(){this.inputPrompt.length>1&&this.postRequest(this.inputPrompt)},async postRequest(e){try{const t=await fetch("http://127.0.0.1:8000/endpoint",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:e,negative_prompt:"ugly, blurry, poor quality"})});if(!t.ok)throw new Error(`HTTP error! Status: ${t.status}`);const n=await t.blob().then(s=>URL.createObjectURL(s));return this.imagePath=n,n}catch(t){console.error("Error fetching data:",t)}}}},zi={class:"flex justify-center items-center h-screen"},Ji={class:"w-auto h-auto rounded-md border"},Yi=["src"],Xi={class:"p-4"},Zi={class:"w-full"};function Qi(e,t,n,s,r,o){return fr(),ur("div",zi,[xe("div",Ji,[xe("img",{src:r.imagePath,alt:"Generated Image",class:"h-full w-full rounded-t-md object-cover"},null,8,Yi),xe("div",Xi,[xe("div",Zi,[wo(xe("input",{"onUpdate:modelValue":t[0]||(t[0]=l=>r.inputPrompt=l),class:"flex h-10 w-full rounded-md border border-black/30 bg-transparent px-3 py-2 text-sm placeholder:text-gray-600 focus:outline-none focus:ring-1 focus:ring-black/30 focus:ring-offset-1 disabled:cursor-not-allowed disabled:opacity-50",type:"text",placeholder:"Image prompt"},null,512),[[Hi,r.inputPrompt]])]),xe("button",{type:"button",onClick:t[1]||(t[1]=l=>o.generateImage()),class:"mt-4 w-full rounded-sm bg-black px-2 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-black/80 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-black"}," Generate ")])])])}const ki=qi(Gi,[["render",Qi]]),el=xe("h1",{class:"flex justify-center text-3xl font-bold underline"}," SDXL Turbo ",-1),tl={__name:"App",setup(e){return(t,n)=>(fr(),ur(ge,null,[el,Ae(ki)],64))}};Ki(tl).mount("#app"); diff --git a/src/ui/dist/assets/sdxl-turbo-DtBCg58l.jpeg b/src/ui/dist/assets/sdxl-turbo-DtBCg58l.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1d35b72557216db1a83b58ad20e092fa168ac4f1 GIT binary patch literal 26664 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 literal 0 HcmV?d00001 diff --git a/src/ui/dist/index.html b/src/ui/dist/index.html new file mode 100644 index 0000000..ce34d0e --- /dev/null +++ b/src/ui/dist/index.html @@ -0,0 +1,14 @@ + + + + + + + FastServe 🧡 + + + + +
+ +