From 3713a972aef59a80b7db1b502b1351529676cc3e Mon Sep 17 00:00:00 2001 From: ZZY <2450266535@qq.com> Date: Wed, 28 May 2025 16:00:29 +0800 Subject: [PATCH] init zzyxyz_vue project with basic cards show --- .env | 1 + .env.development | 0 .env.production | 0 .gitignore | 3 + index.html | 10 +- package-lock.json | 907 +++++++++++++++++++-- package.json | 6 +- public/favicon.ico | Bin 4286 -> 0 bytes src/App.vue | 80 +- src/apis/cards/CardType.ts | 17 + src/apis/cards/Cards.ts | 56 ++ src/apis/request.ts | 11 + src/assets/base.css | 86 -- src/assets/home.png | Bin 0 -> 6740 bytes src/assets/icons/Git-Icon-1788C.svg | 1 + src/assets/icons/beian.png | Bin 0 -> 1403 bytes src/assets/icons/home.png | Bin 0 -> 6740 bytes src/assets/icons/qq.png | Bin 0 -> 11492 bytes src/assets/icons/qq_link.png | Bin 0 -> 13784 bytes src/assets/icons/wechat.png | Bin 0 -> 12891 bytes src/assets/icons/wechat_link.png | Bin 0 -> 18818 bytes src/assets/logo.svg | 1 - src/assets/main.css | 37 +- src/components/AppFooter.vue | 85 ++ src/components/AppHero.vue | 22 + src/components/AppNavbar.vue | 15 + src/components/TheWelcome.vue | 95 --- src/components/WelcomeItem.vue | 87 -- src/components/cards/CardsContainer.vue | 18 + src/components/cards/CardsShow.vue | 18 + src/components/cards/OneCard.vue | 36 + src/components/icons/IconBeian.vue | 3 + src/components/icons/IconCommunity.vue | 7 - src/components/icons/IconDocumentation.vue | 7 - src/components/icons/IconEcosystem.vue | 7 - src/components/icons/IconGit.vue | 3 + src/components/icons/IconQQ.vue | 3 + src/components/icons/IconQQLink.vue | 3 + src/components/icons/IconSupport.vue | 7 - src/components/icons/IconTooling.vue | 19 - src/components/icons/IconWechat.vue | 3 + src/components/icons/IconWechatLink.vue | 3 + src/components/utils/ImgModal.vue | 29 + src/components/utils/LegalAlert.vue | 74 ++ src/router/index.ts | 22 +- src/views/AboutView.vue | 15 - src/views/CardView.vue | 17 + src/views/ErrorView.vue | 110 +++ src/views/HomeView.vue | 18 +- vite.config.ts | 16 +- 50 files changed, 1426 insertions(+), 532 deletions(-) create mode 100644 .env create mode 100644 .env.development create mode 100644 .env.production delete mode 100644 public/favicon.ico create mode 100644 src/apis/cards/CardType.ts create mode 100644 src/apis/cards/Cards.ts create mode 100644 src/apis/request.ts delete mode 100644 src/assets/base.css create mode 100644 src/assets/home.png create mode 100644 src/assets/icons/Git-Icon-1788C.svg create mode 100644 src/assets/icons/beian.png create mode 100644 src/assets/icons/home.png create mode 100644 src/assets/icons/qq.png create mode 100644 src/assets/icons/qq_link.png create mode 100644 src/assets/icons/wechat.png create mode 100644 src/assets/icons/wechat_link.png delete mode 100644 src/assets/logo.svg create mode 100644 src/components/AppFooter.vue create mode 100644 src/components/AppHero.vue create mode 100644 src/components/AppNavbar.vue delete mode 100644 src/components/TheWelcome.vue delete mode 100644 src/components/WelcomeItem.vue create mode 100644 src/components/cards/CardsContainer.vue create mode 100644 src/components/cards/CardsShow.vue create mode 100644 src/components/cards/OneCard.vue create mode 100644 src/components/icons/IconBeian.vue delete mode 100644 src/components/icons/IconCommunity.vue delete mode 100644 src/components/icons/IconDocumentation.vue delete mode 100644 src/components/icons/IconEcosystem.vue create mode 100644 src/components/icons/IconGit.vue create mode 100644 src/components/icons/IconQQ.vue create mode 100644 src/components/icons/IconQQLink.vue delete mode 100644 src/components/icons/IconSupport.vue delete mode 100644 src/components/icons/IconTooling.vue create mode 100644 src/components/icons/IconWechat.vue create mode 100644 src/components/icons/IconWechatLink.vue create mode 100644 src/components/utils/ImgModal.vue create mode 100644 src/components/utils/LegalAlert.vue delete mode 100644 src/views/AboutView.vue create mode 100644 src/views/CardView.vue create mode 100644 src/views/ErrorView.vue diff --git a/.env b/.env new file mode 100644 index 0000000..93c1ab8 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +VITE_BASE_URL=/api \ No newline at end of file diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..e69de29 diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..e69de29 diff --git a/.gitignore b/.gitignore index 8ee54e8..d3a5520 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,6 @@ coverage *.sw? *.tsbuildinfo + +# https://cn.vitejs.dev/guide/env-and-mode.html#env-variables +.env.*.local diff --git a/index.html b/index.html index 9e5fc8f..40d34ea 100644 --- a/index.html +++ b/index.html @@ -1,10 +1,10 @@ - + - - - - Vite App + + + + zzyxyz
diff --git a/package-lock.json b/package-lock.json index b0e7d16..30833e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,14 +1,18 @@ { "name": "zzyxyz_vue", - "version": "0.0.0", + "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "zzyxyz_vue", - "version": "0.0.0", + "version": "0.0.1", "dependencies": { + "@tailwindcss/vite": "^4.1.7", + "axios": "^1.9.0", + "daisyui": "^5.0.38", "pinia": "^3.0.1", + "tailwindcss": "^4.1.7", "vue": "^3.5.13", "vue-router": "^4.5.0" }, @@ -39,7 +43,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -648,7 +651,6 @@ "cpu": [ "ppc64" ], - "dev": true, "optional": true, "os": [ "aix" @@ -664,7 +666,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "android" @@ -680,7 +681,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "android" @@ -696,7 +696,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "android" @@ -712,7 +711,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -728,7 +726,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -744,7 +741,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -760,7 +756,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -776,7 +771,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -792,7 +786,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -808,7 +801,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "linux" @@ -824,7 +816,6 @@ "cpu": [ "loong64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -840,7 +831,6 @@ "cpu": [ "mips64el" ], - "dev": true, "optional": true, "os": [ "linux" @@ -856,7 +846,6 @@ "cpu": [ "ppc64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -872,7 +861,6 @@ "cpu": [ "riscv64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -888,7 +876,6 @@ "cpu": [ "s390x" ], - "dev": true, "optional": true, "os": [ "linux" @@ -904,7 +891,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -920,7 +906,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "netbsd" @@ -936,7 +921,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "netbsd" @@ -952,7 +936,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "openbsd" @@ -968,7 +951,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "openbsd" @@ -984,7 +966,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "sunos" @@ -1000,7 +981,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -1016,7 +996,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "win32" @@ -1032,7 +1011,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -1282,11 +1260,21 @@ "node": ">=12" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1300,7 +1288,6 @@ "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" } @@ -1309,7 +1296,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -1323,7 +1309,6 @@ "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -1439,7 +1424,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "android" @@ -1452,7 +1436,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "android" @@ -1465,7 +1448,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -1478,7 +1460,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -1491,7 +1472,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -1504,7 +1484,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -1517,7 +1496,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -1530,7 +1508,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -1543,7 +1520,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -1556,7 +1532,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -1569,7 +1544,6 @@ "cpu": [ "loong64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -1582,7 +1556,6 @@ "cpu": [ "ppc64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -1595,7 +1568,6 @@ "cpu": [ "riscv64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -1608,7 +1580,6 @@ "cpu": [ "riscv64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -1621,7 +1592,6 @@ "cpu": [ "s390x" ], - "dev": true, "optional": true, "os": [ "linux" @@ -1634,7 +1604,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -1647,7 +1616,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -1660,7 +1628,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -1673,7 +1640,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "win32" @@ -1686,7 +1652,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -1710,6 +1675,253 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@tailwindcss/node": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.7.tgz", + "integrity": "sha512-9rsOpdY9idRI2NH6CL4wORFY0+Q6fnx9XP9Ju+iq/0wJwGD5IByIgFmwVbyy4ymuyprj8Qh4ErxMKTUL4uNh3g==", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "lightningcss": "1.30.1", + "magic-string": "^0.30.17", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.7" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.7.tgz", + "integrity": "sha512-5SF95Ctm9DFiUyjUPnDGkoKItPX/k+xifcQhcqX5RA85m50jw1pT/KzjdvlqxRja45Y52nR4MR9fD1JYd7f8NQ==", + "hasInstallScript": true, + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.4.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.7", + "@tailwindcss/oxide-darwin-arm64": "4.1.7", + "@tailwindcss/oxide-darwin-x64": "4.1.7", + "@tailwindcss/oxide-freebsd-x64": "4.1.7", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.7", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.7", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.7", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.7", + "@tailwindcss/oxide-linux-x64-musl": "4.1.7", + "@tailwindcss/oxide-wasm32-wasi": "4.1.7", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.7", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.7" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.7.tgz", + "integrity": "sha512-IWA410JZ8fF7kACus6BrUwY2Z1t1hm0+ZWNEzykKmMNM09wQooOcN/VXr0p/WJdtHZ90PvJf2AIBS/Ceqx1emg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.7.tgz", + "integrity": "sha512-81jUw9To7fimGGkuJ2W5h3/oGonTOZKZ8C2ghm/TTxbwvfSiFSDPd6/A/KE2N7Jp4mv3Ps9OFqg2fEKgZFfsvg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.7.tgz", + "integrity": "sha512-q77rWjEyGHV4PdDBtrzO0tgBBPlQWKY7wZK0cUok/HaGgbNKecegNxCGikuPJn5wFAlIywC3v+WMBt0PEBtwGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.7.tgz", + "integrity": "sha512-RfmdbbK6G6ptgF4qqbzoxmH+PKfP4KSVs7SRlTwcbRgBwezJkAO3Qta/7gDy10Q2DcUVkKxFLXUQO6J3CRvBGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.7.tgz", + "integrity": "sha512-OZqsGvpwOa13lVd1z6JVwQXadEobmesxQ4AxhrwRiPuE04quvZHWn/LnihMg7/XkN+dTioXp/VMu/p6A5eZP3g==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.7.tgz", + "integrity": "sha512-voMvBTnJSfKecJxGkoeAyW/2XRToLZ227LxswLAwKY7YslG/Xkw9/tJNH+3IVh5bdYzYE7DfiaPbRkSHFxY1xA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.7.tgz", + "integrity": "sha512-PjGuNNmJeKHnP58M7XyjJyla8LPo+RmwHQpBI+W/OxqrwojyuCQ+GUtygu7jUqTEexejZHr/z3nBc/gTiXBj4A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.7.tgz", + "integrity": "sha512-HMs+Va+ZR3gC3mLZE00gXxtBo3JoSQxtu9lobbZd+DmfkIxR54NO7Z+UQNPsa0P/ITn1TevtFxXTpsRU7qEvWg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.7.tgz", + "integrity": "sha512-MHZ6jyNlutdHH8rd+YTdr3QbXrHXqwIhHw9e7yXEBcQdluGwhpQY2Eku8UZK6ReLaWtQ4gijIv5QoM5eE+qlsA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.7.tgz", + "integrity": "sha512-ANaSKt74ZRzE2TvJmUcbFQ8zS201cIPxUDm5qez5rLEwWkie2SkGtA4P+GPTj+u8N6JbPrC8MtY8RmJA35Oo+A==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@emnapi/wasi-threads": "^1.0.2", + "@napi-rs/wasm-runtime": "^0.2.9", + "@tybys/wasm-util": "^0.9.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.7.tgz", + "integrity": "sha512-HUiSiXQ9gLJBAPCMVRk2RT1ZrBjto7WvqsPBwUrNK2BcdSxMnk19h4pjZjI7zgPhDxlAbJSumTC4ljeA9y0tEw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.7.tgz", + "integrity": "sha512-rYHGmvoHiLJ8hWucSfSOEmdCBIGZIq7SpkPRSqLsH2Ab2YUNgKeAPT1Fi2cx3+hnYOrAb0jp9cRyode3bBW4mQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.7.tgz", + "integrity": "sha512-tYa2fO3zDe41I7WqijyVbRd8oWT0aEID1Eokz5hMT6wShLIHj3yvwj9XbfuloHP9glZ6H+aG2AN/+ZrxJ1Y5RQ==", + "dependencies": { + "@tailwindcss/node": "4.1.7", + "@tailwindcss/oxide": "4.1.7", + "tailwindcss": "4.1.7" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6" + } + }, "node_modules/@tsconfig/node22": { "version": "22.0.2", "resolved": "https://registry.npmjs.org/@tsconfig/node22/-/node22-22.0.2.tgz", @@ -1719,8 +1931,7 @@ "node_modules/@types/estree": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "dev": true + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==" }, "node_modules/@types/jsdom": { "version": "21.1.7", @@ -1743,7 +1954,7 @@ "version": "22.15.21", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.21.tgz", "integrity": "sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==", - "dev": true, + "devOptional": true, "dependencies": { "undici-types": "~6.21.0" } @@ -2544,6 +2755,21 @@ "node": ">=12" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", + "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -2641,6 +2867,18 @@ "node": ">=8" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -2711,6 +2949,14 @@ "node": ">= 16" } }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "engines": { + "node": ">=18" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2729,6 +2975,17 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", @@ -2818,6 +3075,14 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, + "node_modules/daisyui": { + "version": "5.0.38", + "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-5.0.38.tgz", + "integrity": "sha512-RsLsdePT/4ZU0N+vWivR/zJyAL9U9EeRtbis3K3VDvewrqY0NOFYBh6ib3n9GfN3Wb+FHwP80ae1qOA6ONWvyw==", + "funding": { + "url": "https://github.com/saadeghi/daisyui?sponsor=1" + } + }, "node_modules/data-urls": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", @@ -2915,6 +3180,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -2966,6 +3260,18 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/entities": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", @@ -2987,17 +3293,57 @@ "url": "https://github.com/sponsors/antfu" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", "dev": true }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/esbuild": { "version": "0.25.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", - "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -3488,6 +3834,25 @@ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/foreground-child": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", @@ -3504,6 +3869,20 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fs-extra": { "version": "11.3.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", @@ -3522,7 +3901,6 @@ "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": [ @@ -3532,6 +3910,14 @@ "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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -3541,6 +3927,41 @@ "node": ">=6.9.0" } }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", @@ -3601,11 +4022,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/graphemer": { "version": "1.4.0", @@ -3622,6 +4053,42 @@ "node": ">=8" } }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -3900,7 +4367,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", - "dev": true, "bin": { "jiti": "lib/jiti-cli.mjs" } @@ -4092,6 +4558,223 @@ "node": ">= 0.8.0" } }, + "node_modules/lightningcss": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.30.1", + "lightningcss-darwin-x64": "1.30.1", + "lightningcss-freebsd-x64": "1.30.1", + "lightningcss-linux-arm-gnueabihf": "1.30.1", + "lightningcss-linux-arm64-gnu": "1.30.1", + "lightningcss-linux-arm64-musl": "1.30.1", + "lightningcss-linux-x64-gnu": "1.30.1", + "lightningcss-linux-x64-musl": "1.30.1", + "lightningcss-win32-arm64-msvc": "1.30.1", + "lightningcss-win32-x64-msvc": "1.30.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -4139,6 +4822,14 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -4170,6 +4861,25 @@ "node": ">=8.6" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -4189,16 +4899,40 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, "engines": { "node": ">=16 || 14 >=14.17" } }, + "node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/mitt": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", @@ -4694,6 +5428,11 @@ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "dev": true }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -4764,7 +5503,6 @@ "version": "4.41.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.1.tgz", "integrity": "sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==", - "dev": true, "dependencies": { "@types/estree": "1.0.7" }, @@ -5127,6 +5865,43 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/tailwindcss": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.7.tgz", + "integrity": "sha512-kr1o/ErIdNhTz8uzAYL7TpaUuzKIE6QPQ4qmSdxnoX/lo+5wmUHQA6h3L5yIqEImSRnAAURDirLu/BgiXGPAhg==" + }, + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "engines": { + "node": ">=18" + } + }, "node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", @@ -5143,7 +5918,6 @@ "version": "0.2.14", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "dev": true, "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" @@ -5159,7 +5933,6 @@ "version": "6.4.4", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", - "dev": true, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -5173,7 +5946,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, "engines": { "node": ">=12" }, @@ -5334,7 +6106,7 @@ "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true + "devOptional": true }, "node_modules/unicorn-magic": { "version": "0.3.0", @@ -5406,7 +6178,6 @@ "version": "6.3.5", "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", - "dev": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -5586,7 +6357,6 @@ "version": "6.4.4", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", - "dev": true, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -5600,7 +6370,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, "engines": { "node": ">=12" }, diff --git a/package.json b/package.json index e90d899..c701dbe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zzyxyz_vue", - "version": "0.0.0", + "version": "0.0.1", "private": true, "type": "module", "scripts": { @@ -14,7 +14,11 @@ "format": "prettier --write src/" }, "dependencies": { + "@tailwindcss/vite": "^4.1.7", + "axios": "^1.9.0", + "daisyui": "^5.0.38", "pinia": "^3.0.1", + "tailwindcss": "^4.1.7", "vue": "^3.5.13", "vue-router": "^4.5.0" }, diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index df36fcfb72584e00488330b560ebcf34a41c64c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S diff --git a/src/App.vue b/src/App.vue index 7905b05..a78fb6f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,85 +1,7 @@ - - diff --git a/src/apis/cards/CardType.ts b/src/apis/cards/CardType.ts new file mode 100644 index 0000000..4d31e45 --- /dev/null +++ b/src/apis/cards/CardType.ts @@ -0,0 +1,17 @@ +export const schema = [ + { name: 'title', label: '标题', type: 'input' }, + { name: 'body', label: '内容', type: 'input' }, + { name: 'jumpHref', label: '跳转链接', type: 'input' }, + { name: 'btnText', label: '按钮内容', type: 'input' }, + { name: 'btnHref', label: '按钮链接', type: 'input' }, +] + +export type CardType = { + title: string | null + body: string | null + jumpHref: string | null + imgSrc: string | null + imgAlt: string | null + btnText: string | null + btnHref: string | null +} diff --git a/src/apis/cards/Cards.ts b/src/apis/cards/Cards.ts new file mode 100644 index 0000000..136610e --- /dev/null +++ b/src/apis/cards/Cards.ts @@ -0,0 +1,56 @@ +import { type CardType } from './CardType' +import request from '../request' + +const file_api = { + root_url: '/api', + cards: { + url: 'cards', + type: 'json', + home: 'home', + }, +} + +export function GetRealHref(href: string, user_name: string = '$') { + if (href.startsWith('$')) { + href = `/card${href.substring(1)}?user_name=${user_name}` + } + return href +} + +export async function GetCardsData(cards: CardType[], url?: string) { + await request + .get(`files/cards/${url ? url : 'index-content.json'}`) + .then((response) => { + if (response.status != 200) { + throw new Error(`HTTP error! status: ${response.status}`) + // return null + } + return response.data + }) + .then((jsonData) => { + // console.log(jsonData) + if (!jsonData || !cards) { + return null + } + cards.length = 0 + jsonData.datas.forEach((i: CardType) => { + const item = { ...jsonData.default_item, ...i } + cards.push({ + title: item.title, + body: item.intro, + jumpHref: item.url, + imgSrc: null, + imgAlt: null, + btnText: null, + btnHref: null, + }) + }) + }) + .catch((error) => { + console.error('Error fetching data:', error) + }) + .finally(function () { + // 总是会执行 + console.log('finally', cards) + }) +} diff --git a/src/apis/request.ts b/src/apis/request.ts new file mode 100644 index 0000000..86d13df --- /dev/null +++ b/src/apis/request.ts @@ -0,0 +1,11 @@ +import axios from 'axios' + +const request = axios.create({ + baseURL: import.meta.env.VITE_BASE_URL, + timeout: 3000, + headers: { + 'Content-Type': 'application/json', + }, +}) + +export default request diff --git a/src/assets/base.css b/src/assets/base.css deleted file mode 100644 index 8816868..0000000 --- a/src/assets/base.css +++ /dev/null @@ -1,86 +0,0 @@ -/* color palette from */ -:root { - --vt-c-white: #ffffff; - --vt-c-white-soft: #f8f8f8; - --vt-c-white-mute: #f2f2f2; - - --vt-c-black: #181818; - --vt-c-black-soft: #222222; - --vt-c-black-mute: #282828; - - --vt-c-indigo: #2c3e50; - - --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); - --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); - --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); - --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); - - --vt-c-text-light-1: var(--vt-c-indigo); - --vt-c-text-light-2: rgba(60, 60, 60, 0.66); - --vt-c-text-dark-1: var(--vt-c-white); - --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); -} - -/* semantic color variables for this project */ -:root { - --color-background: var(--vt-c-white); - --color-background-soft: var(--vt-c-white-soft); - --color-background-mute: var(--vt-c-white-mute); - - --color-border: var(--vt-c-divider-light-2); - --color-border-hover: var(--vt-c-divider-light-1); - - --color-heading: var(--vt-c-text-light-1); - --color-text: var(--vt-c-text-light-1); - - --section-gap: 160px; -} - -@media (prefers-color-scheme: dark) { - :root { - --color-background: var(--vt-c-black); - --color-background-soft: var(--vt-c-black-soft); - --color-background-mute: var(--vt-c-black-mute); - - --color-border: var(--vt-c-divider-dark-2); - --color-border-hover: var(--vt-c-divider-dark-1); - - --color-heading: var(--vt-c-text-dark-1); - --color-text: var(--vt-c-text-dark-2); - } -} - -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - font-weight: normal; -} - -body { - min-height: 100vh; - color: var(--color-text); - background: var(--color-background); - transition: - color 0.5s, - background-color 0.5s; - line-height: 1.6; - font-family: - Inter, - -apple-system, - BlinkMacSystemFont, - 'Segoe UI', - Roboto, - Oxygen, - Ubuntu, - Cantarell, - 'Fira Sans', - 'Droid Sans', - 'Helvetica Neue', - sans-serif; - font-size: 15px; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} diff --git a/src/assets/home.png b/src/assets/home.png new file mode 100644 index 0000000000000000000000000000000000000000..f683c56e792fc9814365b4697689895e78689db5 GIT binary patch literal 6740 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 O0-@~P?3#}SUHl&ycFb)6 literal 0 HcmV?d00001 diff --git a/src/assets/icons/Git-Icon-1788C.svg b/src/assets/icons/Git-Icon-1788C.svg new file mode 100644 index 0000000..5bf444b --- /dev/null +++ b/src/assets/icons/Git-Icon-1788C.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/beian.png b/src/assets/icons/beian.png new file mode 100644 index 0000000000000000000000000000000000000000..2a13ba2f4b92c4b531945a66e3e35e3ead3739f9 GIT binary patch literal 1403 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 O0-@~P?3#}SUHl&ycFb)6 literal 0 HcmV?d00001 diff --git a/src/assets/icons/qq.png b/src/assets/icons/qq.png new file mode 100644 index 0000000000000000000000000000000000000000..6789b43f9c6a49397cc8021e0c051a830e836c3c GIT binary patch literal 11492 zcmY*=gXsEA20lEhQ000zPnrg-X0D&sakRP&>i8kAEQcQ_*@(ivNX?Iwk-B_W@dJPoKjJj@ClMp3k>EI^9@# znCqx%PpBdqlW#>#@PX$E?J2D{=SQCVddc%HBu&{r%z~TkJDp#cpm01AO7WLX6@z4#jblCVbA`CU8To3E!j28^E5OLki3qAJ2K{okXNfK;ld|Oq4Eyu7I*G4amCp z7=C~StTtCAb)r1Dei}lTb)QamXg%5Bh|PoCdhs?C3na_JnWOxd zfn>hKw{{1?7C$@-}aZMw{s{BmSLCLw;I%Bv1ADkAsmxlnigKgL5c`_Cxz^oA` zMldg*0GSSx3l$)T2hGlH4?U?$`PUX`@|(kPQN=p5=?2Ik$r=9 z(LM$VXY5fvn52?jdPKl8T06w0AH6NuvUssUZ}t5N!U@)(qy0AA=8{Ra>+b!hfl3VX z#Hl;draRqltx5MefLV4Trp^!oNLTGy0d%!G$ae)VI zJv~b&vf`$JA~L2Fz>S(^$ZZKuWq3dUN$wb^rG=X8DzaL!LQz7T^pKf=Ak$HAz-<)HLNoFzL;Bre zhAQU=FU=Ptc+d=JV@F1)`NL$LqVEOW1R$YV zC`RhoP
;Xj(?rX_FyQo2|EK$3=Ta z%4HzL`o)V}ZnwFZ?pNEZC=bqd7$GkC#Wvr255-n*G|s*zl~70HKcnYQRD;QL#Lx_- zLW4}-9bXsatixd&La5|=N%{Elj2G&6XKr-Y$fMU{IHQ6BZQ zAYlsdSgx`OFp{E?PGJACBwFZEr%BUg8BV3<6`>Ay@Br`fSI@hy%Yyvs93||Ci`qe zg@wyRY8})N;OLGvKe27A&xGlmXa;-uBmcq5uKQ@xh7YkHj2;LH`AG$x>ZR1P;yq(F z=dJWhu6tC+p(cTx&guwo`L{Q8w_{8nz&IYRl=|KpGCE~XMP%A#avEW$HdAb_`dRll zQ=~;8TYsZGICgTS+2^n5a%>I-&@ATX_X%u#l_xNulIISqEH27prFnGT#c9!=&woaV zu)$l1nbK5{Bo>@VL-g#^X)Q2oMuLgp+F2bl1d-c&%ToHDvt>)D}Gl#9voMAW_A+QWvj+9R1D{zzC9)SK_jVaR9a=WK<)zREuYR>LLvZ1vs#pkjcb(rwH%%l=F zyk~5GM5!vFJ;YSv=cB)o^O;3PYDBbO^J5?AZGJvWCAoHRZZ52PyJ_+tP451RjdW&i zVI01%CFJh_J&qQ!kQng&Zif_OMRT@93X)$hGp!Te7(#)};o~VM_{E6tXD(?6D@9ce zFe(A(+&TDt6}7M8@qJII&LZF&#^wMOVhFt$7JZ=Y&-GFS(1Nqzs<;0wsaJ_8A?`Jt zj1E6Ki<~>ECmLh2cmNCDMudAfF51yI&UD7-w{ajwUhV;T9S%Vnq z$Mbp6lpl&Qgz2FkFF;WmPKz{x(5BLST1Y-3^1#PcNv411%K>UC&&+8Ro6ShjWBa+w z6>*eTk@wMexRK$|fZ!kEfOa8o;u>m5#UYBx@;U76{R|&zF{MWQNbgx*u3Lga>JE4-( zM-~tROre^A6mMoEkp~CA)WVmwYXa1+FY4!3I80(0qVubLY_qK6belV~kWl>*IM}lr zuc|40wmpaALmiRwOvdlu1Ji3)@^5__tD3~Vug)Xp=bzVN-&w~BHy+zMvoO_J94Y&XAl+w3{PK=zLf-Mj;fCCKsvB*u^jP0U=X zRD41D3ZWv-AL`zp&5^jYxc<>f@ntIRo*GII3T9xC?|H+IrhG`oPn;sPmXh_UD0;Lu z!}^tGGg-~q4?!TH0Cku?P|KDuFA=wl@}M4(K@7CEMI!413EtevvZ?OYTN`JhCaG9) zOB4P>%&=WSSp!kO_hd7y%d~e0HyQ0`j=*xg`_Z1KC2O= z1r0Ufl@2f<-YIym-xtq`Ao>TPs(~#E?}v9`T?yEgxjONl9v00)BrJ5AvTrUVQ5Oviz&gMXnbIcBW zgHn$N#`&Ohrjm?~@6ma%JtGAvJ$gVt861lPsUbC>1P+dj#b9n$M~j#W+%7cpo>X7W znZh~;ns@=e40IgT_q*zyH#{Ml5q7 zg##qzGv93UXAzE}6r_nOTth^At?-G#bLpo2Wg1mNF#Fx(hI6*{WpKuzayb0ot^RWC z-pDl@LneG#dQWfCEp=EhlYMuX(6K;>Zv4a#(uGBZ#Y@}w_FDqR-de}6pYIuFDPB9Q zDO9f$Zo6G5;={?;k;=lXuJ1a;cXqt-FO-YSVxsxeB9DnmeZ@36XIj~&mnCT(Z^@ydovallp z6oKmCP0UhhKn$IZf~ zt9x>Wb=GGisMh)EXARiDi>&qgGqlEZXynJQObp-IhJGg1fBe`mz}7^bXx6UtGg&M` z*Um}O2Q-wXO|@m4tejz;4^N6nQj~8#VN~9 zq7l%vdmf;yE57iVY^eNwwl!hmboZC3gxz)g@*L#73Rq+a?4JJnhYIM8`i!nFXDH{? z`CPEwP#exluA};QRonc5S-UZ@IsFRTV&R|x1LWFf=6p?_^As$|^Ec;F4W0)A~+g&p{sf zGB03{vI@+`k1X9Lz9tm{2z+a(3s-fuldo5cmo|jNa-p~Lq&nETyZ@=SZhLj^bO`

2A2a;6^&zvRv$ZmW)2kGul0^R{tX*Tdy;E#pCM{ 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 Re5Eo#OI=^BRt5U%{{Ss2+=~DJ literal 0 HcmV?d00001 diff --git a/src/assets/icons/qq_link.png b/src/assets/icons/qq_link.png new file mode 100644 index 0000000000000000000000000000000000000000..49b58c47d3e29b95335578371e7abfc59b9b8d0a GIT binary patch literal 13784 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/wechat.png b/src/assets/icons/wechat.png new file mode 100644 index 0000000000000000000000000000000000000000..c2511a6d63528a3187a17f4f9563896c0a04bb10 GIT binary patch literal 12891 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/wechat_link.png b/src/assets/icons/wechat_link.png new file mode 100644 index 0000000000000000000000000000000000000000..0ef0db03c5595a4e04df9bd750dc35d9dbc02658 GIT binary patch literal 18818 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 literal 0 HcmV?d00001 diff --git a/src/assets/logo.svg b/src/assets/logo.svg deleted file mode 100644 index 7565660..0000000 --- a/src/assets/logo.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/assets/main.css b/src/assets/main.css index 36fb845..39855e7 100644 --- a/src/assets/main.css +++ b/src/assets/main.css @@ -1,35 +1,2 @@ -@import './base.css'; - -#app { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - font-weight: normal; -} - -a, -.green { - text-decoration: none; - color: hsla(160, 100%, 37%, 1); - transition: 0.4s; - padding: 3px; -} - -@media (hover: hover) { - a:hover { - background-color: hsla(160, 100%, 37%, 0.2); - } -} - -@media (min-width: 1024px) { - body { - display: flex; - place-items: center; - } - - #app { - display: grid; - grid-template-columns: 1fr 1fr; - padding: 0 2rem; - } -} +@import 'tailwindcss'; +@plugin "daisyui"; diff --git a/src/components/AppFooter.vue b/src/components/AppFooter.vue new file mode 100644 index 0000000..37d4801 --- /dev/null +++ b/src/components/AppFooter.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/components/AppHero.vue b/src/components/AppHero.vue new file mode 100644 index 0000000..356b874 --- /dev/null +++ b/src/components/AppHero.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/src/components/AppNavbar.vue b/src/components/AppNavbar.vue new file mode 100644 index 0000000..ac0a51d --- /dev/null +++ b/src/components/AppNavbar.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/src/components/TheWelcome.vue b/src/components/TheWelcome.vue deleted file mode 100644 index 8b731d9..0000000 --- a/src/components/TheWelcome.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - diff --git a/src/components/WelcomeItem.vue b/src/components/WelcomeItem.vue deleted file mode 100644 index 6d7086a..0000000 --- a/src/components/WelcomeItem.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/src/components/cards/CardsContainer.vue b/src/components/cards/CardsContainer.vue new file mode 100644 index 0000000..db2444f --- /dev/null +++ b/src/components/cards/CardsContainer.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/components/cards/CardsShow.vue b/src/components/cards/CardsShow.vue new file mode 100644 index 0000000..0ca66e8 --- /dev/null +++ b/src/components/cards/CardsShow.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/components/cards/OneCard.vue b/src/components/cards/OneCard.vue new file mode 100644 index 0000000..a86d294 --- /dev/null +++ b/src/components/cards/OneCard.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/components/icons/IconBeian.vue b/src/components/icons/IconBeian.vue new file mode 100644 index 0000000..17eb223 --- /dev/null +++ b/src/components/icons/IconBeian.vue @@ -0,0 +1,3 @@ + diff --git a/src/components/icons/IconCommunity.vue b/src/components/icons/IconCommunity.vue deleted file mode 100644 index 2dc8b05..0000000 --- a/src/components/icons/IconCommunity.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/components/icons/IconDocumentation.vue b/src/components/icons/IconDocumentation.vue deleted file mode 100644 index 6d4791c..0000000 --- a/src/components/icons/IconDocumentation.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/components/icons/IconEcosystem.vue b/src/components/icons/IconEcosystem.vue deleted file mode 100644 index c3a4f07..0000000 --- a/src/components/icons/IconEcosystem.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/components/icons/IconGit.vue b/src/components/icons/IconGit.vue new file mode 100644 index 0000000..6b8e69a --- /dev/null +++ b/src/components/icons/IconGit.vue @@ -0,0 +1,3 @@ + diff --git a/src/components/icons/IconQQ.vue b/src/components/icons/IconQQ.vue new file mode 100644 index 0000000..e18a6ae --- /dev/null +++ b/src/components/icons/IconQQ.vue @@ -0,0 +1,3 @@ + diff --git a/src/components/icons/IconQQLink.vue b/src/components/icons/IconQQLink.vue new file mode 100644 index 0000000..f1b2d32 --- /dev/null +++ b/src/components/icons/IconQQLink.vue @@ -0,0 +1,3 @@ + diff --git a/src/components/icons/IconSupport.vue b/src/components/icons/IconSupport.vue deleted file mode 100644 index 7452834..0000000 --- a/src/components/icons/IconSupport.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/components/icons/IconTooling.vue b/src/components/icons/IconTooling.vue deleted file mode 100644 index 660598d..0000000 --- a/src/components/icons/IconTooling.vue +++ /dev/null @@ -1,19 +0,0 @@ - - diff --git a/src/components/icons/IconWechat.vue b/src/components/icons/IconWechat.vue new file mode 100644 index 0000000..844fbae --- /dev/null +++ b/src/components/icons/IconWechat.vue @@ -0,0 +1,3 @@ + diff --git a/src/components/icons/IconWechatLink.vue b/src/components/icons/IconWechatLink.vue new file mode 100644 index 0000000..512da34 --- /dev/null +++ b/src/components/icons/IconWechatLink.vue @@ -0,0 +1,3 @@ + diff --git a/src/components/utils/ImgModal.vue b/src/components/utils/ImgModal.vue new file mode 100644 index 0000000..879f8af --- /dev/null +++ b/src/components/utils/ImgModal.vue @@ -0,0 +1,29 @@ + + + + diff --git a/src/components/utils/LegalAlert.vue b/src/components/utils/LegalAlert.vue new file mode 100644 index 0000000..a4dbb73 --- /dev/null +++ b/src/components/utils/LegalAlert.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/router/index.ts b/src/router/index.ts index 3e49915..2e1db23 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,5 +1,4 @@ import { createRouter, createWebHistory } from 'vue-router' -import HomeView from '../views/HomeView.vue' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), @@ -7,15 +6,24 @@ const router = createRouter({ { path: '/', name: 'home', - component: HomeView, - }, - { - path: '/about', - name: 'about', // route level code-splitting // this generates a separate chunk (About.[hash].js) for this route // which is lazy-loaded when the route is visited. - component: () => import('../views/AboutView.vue'), + component: () => import('../views/HomeView.vue'), + }, + { + name: 'cardShower', + path: '/card/:pages_path*', + component: () => import('@/views/CardView.vue'), + props: true, + }, + { + name: 'notFound', + path: '/:any*', // 使用正则表达式匹配所有路径 + component: () => import('@/views/ErrorView.vue'), + props() { + return { statusCode: 404 } + }, }, ], }) diff --git a/src/views/AboutView.vue b/src/views/AboutView.vue deleted file mode 100644 index 756ad2a..0000000 --- a/src/views/AboutView.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/src/views/CardView.vue b/src/views/CardView.vue new file mode 100644 index 0000000..59ba4b0 --- /dev/null +++ b/src/views/CardView.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/views/ErrorView.vue b/src/views/ErrorView.vue new file mode 100644 index 0000000..6ed26d7 --- /dev/null +++ b/src/views/ErrorView.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index d5c0217..ff83cf0 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -1,9 +1,19 @@ diff --git a/vite.config.ts b/vite.config.ts index 4217010..f568eb7 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,15 +4,29 @@ import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueDevTools from 'vite-plugin-vue-devtools' +import tailwindcss from '@tailwindcss/vite' + // https://vite.dev/config/ export default defineConfig({ plugins: [ vue(), vueDevTools(), + + // https://tailwindcss.com/docs/installation/using-vite + tailwindcss(), ], resolve: { alias: { - '@': fileURLToPath(new URL('./src', import.meta.url)) + '@': fileURLToPath(new URL('./src', import.meta.url)), + }, + }, + server: { + proxy: { + '/api': { + target: 'http://localhost:7012', + // changeOrigin: true, + // rewrite: (path) => path.replace(/^\/api/, ''), + }, }, }, })