From 338fab7bf5856e906190777759c70696a1fe5a7a Mon Sep 17 00:00:00 2001
From: Fromsko <1614355756@qq.com>
Date: Fri, 20 Sep 2024 17:18:31 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E6=B7=BB=E7=BB=84=E4=BB=B6?=
=?UTF-8?q?=E5=B1=95=E7=A4=BA=E5=BA=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components_vue3/.gitignore | 30 +
components_vue3/.vscode/extensions.json | 3 +
components_vue3/README.md | 33 +
components_vue3/env.d.ts | 1 +
components_vue3/index.html | 13 +
components_vue3/package.json | 27 +
components_vue3/pnpm-lock.yaml | 860 ++++++++++++++++++
components_vue3/public/favicon.ico | Bin 0 -> 4286 bytes
components_vue3/src/App.vue | 85 ++
components_vue3/src/assets/base.css | 86 ++
components_vue3/src/assets/logo.svg | 1 +
components_vue3/src/assets/main.css | 35 +
components_vue3/src/components/HelloWorld.vue | 41 +
components_vue3/src/components/TheWelcome.vue | 88 ++
.../src/components/WelcomeItem.vue | 87 ++
.../src/components/icons/IconCommunity.vue | 7 +
.../components/icons/IconDocumentation.vue | 7 +
.../src/components/icons/IconEcosystem.vue | 7 +
.../src/components/icons/IconSupport.vue | 7 +
.../src/components/icons/IconTooling.vue | 19 +
components_vue3/src/main.ts | 11 +
components_vue3/src/router/index.ts | 23 +
components_vue3/src/views/AboutView.vue | 15 +
components_vue3/src/views/HomeView.vue | 9 +
components_vue3/tsconfig.app.json | 14 +
components_vue3/tsconfig.json | 11 +
components_vue3/tsconfig.node.json | 19 +
components_vue3/vite.config.ts | 16 +
hello_vue3/bun.lockb | Bin 0 -> 51069 bytes
hello_vue3/src/App.vue | 6 +-
.../src/components/{Demo.vue => Login.vue} | 15 +-
31 files changed, 1571 insertions(+), 5 deletions(-)
create mode 100644 components_vue3/.gitignore
create mode 100644 components_vue3/.vscode/extensions.json
create mode 100644 components_vue3/README.md
create mode 100644 components_vue3/env.d.ts
create mode 100644 components_vue3/index.html
create mode 100644 components_vue3/package.json
create mode 100644 components_vue3/pnpm-lock.yaml
create mode 100644 components_vue3/public/favicon.ico
create mode 100644 components_vue3/src/App.vue
create mode 100644 components_vue3/src/assets/base.css
create mode 100644 components_vue3/src/assets/logo.svg
create mode 100644 components_vue3/src/assets/main.css
create mode 100644 components_vue3/src/components/HelloWorld.vue
create mode 100644 components_vue3/src/components/TheWelcome.vue
create mode 100644 components_vue3/src/components/WelcomeItem.vue
create mode 100644 components_vue3/src/components/icons/IconCommunity.vue
create mode 100644 components_vue3/src/components/icons/IconDocumentation.vue
create mode 100644 components_vue3/src/components/icons/IconEcosystem.vue
create mode 100644 components_vue3/src/components/icons/IconSupport.vue
create mode 100644 components_vue3/src/components/icons/IconTooling.vue
create mode 100644 components_vue3/src/main.ts
create mode 100644 components_vue3/src/router/index.ts
create mode 100644 components_vue3/src/views/AboutView.vue
create mode 100644 components_vue3/src/views/HomeView.vue
create mode 100644 components_vue3/tsconfig.app.json
create mode 100644 components_vue3/tsconfig.json
create mode 100644 components_vue3/tsconfig.node.json
create mode 100644 components_vue3/vite.config.ts
create mode 100644 hello_vue3/bun.lockb
rename hello_vue3/src/components/{Demo.vue => Login.vue} (93%)
diff --git a/components_vue3/.gitignore b/components_vue3/.gitignore
new file mode 100644
index 0000000..8ee54e8
--- /dev/null
+++ b/components_vue3/.gitignore
@@ -0,0 +1,30 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+.DS_Store
+dist
+dist-ssr
+coverage
+*.local
+
+/cypress/videos/
+/cypress/screenshots/
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+*.tsbuildinfo
diff --git a/components_vue3/.vscode/extensions.json b/components_vue3/.vscode/extensions.json
new file mode 100644
index 0000000..a7cea0b
--- /dev/null
+++ b/components_vue3/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["Vue.volar"]
+}
diff --git a/components_vue3/README.md b/components_vue3/README.md
new file mode 100644
index 0000000..2a43315
--- /dev/null
+++ b/components_vue3/README.md
@@ -0,0 +1,33 @@
+# components_vue3
+
+This template should help get you started developing with Vue 3 in Vite.
+
+## Recommended IDE Setup
+
+[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur).
+
+## Type Support for `.vue` Imports in TS
+
+TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types.
+
+## Customize configuration
+
+See [Vite Configuration Reference](https://vitejs.dev/config/).
+
+## Project Setup
+
+```sh
+bun install
+```
+
+### Compile and Hot-Reload for Development
+
+```sh
+bun dev
+```
+
+### Type-Check, Compile and Minify for Production
+
+```sh
+bun build
+```
diff --git a/components_vue3/env.d.ts b/components_vue3/env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/components_vue3/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/components_vue3/index.html b/components_vue3/index.html
new file mode 100644
index 0000000..a888544
--- /dev/null
+++ b/components_vue3/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite App
+
+
+
+
+
+
diff --git a/components_vue3/package.json b/components_vue3/package.json
new file mode 100644
index 0000000..e65c3e5
--- /dev/null
+++ b/components_vue3/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "components_vue3",
+ "version": "0.0.0",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "run-p type-check \"build-only {@}\" --",
+ "preview": "vite preview",
+ "build-only": "vite build",
+ "type-check": "vue-tsc --build --force"
+ },
+ "dependencies": {
+ "vue": "^3.4.29",
+ "vue-router": "^4.3.3"
+ },
+ "devDependencies": {
+ "@tsconfig/node20": "^20.1.4",
+ "@types/node": "^20.14.5",
+ "@vitejs/plugin-vue": "^5.0.5",
+ "@vue/tsconfig": "^0.5.1",
+ "npm-run-all2": "^6.2.0",
+ "typescript": "~5.4.0",
+ "vite": "^5.3.1",
+ "vue-tsc": "^2.0.21"
+ }
+}
diff --git a/components_vue3/pnpm-lock.yaml b/components_vue3/pnpm-lock.yaml
new file mode 100644
index 0000000..178fc8b
--- /dev/null
+++ b/components_vue3/pnpm-lock.yaml
@@ -0,0 +1,860 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ vue:
+ specifier: ^3.4.29
+ version: 3.5.6(typescript@5.4.5)
+ vue-router:
+ specifier: ^4.3.3
+ version: 4.4.5(vue@3.5.6(typescript@5.4.5))
+ devDependencies:
+ '@tsconfig/node20':
+ specifier: ^20.1.4
+ version: 20.1.4
+ '@types/node':
+ specifier: ^20.14.5
+ version: 20.16.5
+ '@vitejs/plugin-vue':
+ specifier: ^5.0.5
+ version: 5.1.4(vite@5.4.6(@types/node@20.16.5))(vue@3.5.6(typescript@5.4.5))
+ '@vue/tsconfig':
+ specifier: ^0.5.1
+ version: 0.5.1
+ npm-run-all2:
+ specifier: ^6.2.0
+ version: 6.2.3
+ typescript:
+ specifier: ~5.4.0
+ version: 5.4.5
+ vite:
+ specifier: ^5.3.1
+ version: 5.4.6(@types/node@20.16.5)
+ vue-tsc:
+ specifier: ^2.0.21
+ version: 2.1.6(typescript@5.4.5)
+
+packages:
+
+ '@babel/helper-string-parser@7.24.8':
+ resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.24.7':
+ resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.25.6':
+ resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/types@7.25.6':
+ resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==}
+ engines: {node: '>=6.9.0'}
+
+ '@esbuild/aix-ppc64@0.21.5':
+ resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.21.5':
+ resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.21.5':
+ resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.21.5':
+ resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.21.5':
+ resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.21.5':
+ resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.21.5':
+ resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.21.5':
+ resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.21.5':
+ resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.21.5':
+ resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.21.5':
+ resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.21.5':
+ resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.21.5':
+ resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.21.5':
+ resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.21.5':
+ resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.21.5':
+ resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.21.5':
+ resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-x64@0.21.5':
+ resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-x64@0.21.5':
+ resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.21.5':
+ resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.21.5':
+ resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.21.5':
+ resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.21.5':
+ resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+
+ '@jridgewell/sourcemap-codec@1.5.0':
+ resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
+
+ '@rollup/rollup-darwin-arm64@4.22.1':
+ resolution: {integrity: sha512-IwEyoeCZoO1lpY5Er5t3UK/Aq5q2W/ubLmu3pYW4as0htn4NbJagBaVNr1aVhRTXUxrYvcPhxQCqodShnocLdA==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-linux-x64-gnu@4.22.1':
+ resolution: {integrity: sha512-ot1DPlQZGGiZYNyE/PF3jbT6juuG0W5oiguHQEvjoZZ3+FSxMfdJnBz1P71QeqICSOlSFG9Z31oA/uXyuxDEVw==}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-x64-musl@4.22.1':
+ resolution: {integrity: sha512-euksHNkKlXS9RKKHSBBPtloSEUGPg1eRVGfOkXSSIj5W9LdkMfOefsTlVf2g8kuayZW/98nIJ83Fnou9OaZNXA==}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-win32-x64-msvc@4.22.1':
+ resolution: {integrity: sha512-UgdylcqjcgJSNMhrjMJpJ4T3zriTmiUd2COh1mJHwDShrhhMkpZ/j4M5e4GsvBFviaxtrJtufr0FnKfm2UfOSw==}
+ cpu: [x64]
+ os: [win32]
+
+ '@tsconfig/node20@20.1.4':
+ resolution: {integrity: sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==}
+
+ '@types/estree@1.0.5':
+ resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
+
+ '@types/node@20.16.5':
+ resolution: {integrity: sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==}
+
+ '@vitejs/plugin-vue@5.1.4':
+ resolution: {integrity: sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ peerDependencies:
+ vite: ^5.0.0
+ vue: ^3.2.25
+
+ '@volar/language-core@2.4.5':
+ resolution: {integrity: sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==}
+
+ '@volar/source-map@2.4.5':
+ resolution: {integrity: sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==}
+
+ '@volar/typescript@2.4.5':
+ resolution: {integrity: sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==}
+
+ '@vue/compiler-core@3.5.6':
+ resolution: {integrity: sha512-r+gNu6K4lrvaQLQGmf+1gc41p3FO2OUJyWmNqaIITaJU6YFiV5PtQSFZt8jfztYyARwqhoCayjprC7KMvT3nRA==}
+
+ '@vue/compiler-dom@3.5.6':
+ resolution: {integrity: sha512-xRXqxDrIqK8v8sSScpistyYH0qYqxakpsIvqMD2e5sV/PXQ1mTwtXp4k42yHK06KXxKSmitop9e45Ui/3BrTEw==}
+
+ '@vue/compiler-sfc@3.5.6':
+ resolution: {integrity: sha512-pjWJ8Kj9TDHlbF5LywjVso+BIxCY5wVOLhkEXRhuCHDxPFIeX1zaFefKs8RYoHvkSMqRWt93a0f2gNJVJixHwg==}
+
+ '@vue/compiler-ssr@3.5.6':
+ resolution: {integrity: sha512-VpWbaZrEOCqnmqjE83xdwegtr5qO/2OPUC6veWgvNqTJ3bYysz6vY3VqMuOijubuUYPRpG3OOKIh9TD0Stxb9A==}
+
+ '@vue/compiler-vue2@2.7.16':
+ resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==}
+
+ '@vue/devtools-api@6.6.4':
+ resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
+
+ '@vue/language-core@2.1.6':
+ resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@vue/reactivity@3.5.6':
+ resolution: {integrity: sha512-shZ+KtBoHna5GyUxWfoFVBCVd7k56m6lGhk5e+J9AKjheHF6yob5eukssHRI+rzvHBiU1sWs/1ZhNbLExc5oYQ==}
+
+ '@vue/runtime-core@3.5.6':
+ resolution: {integrity: sha512-FpFULR6+c2lI+m1fIGONLDqPQO34jxV8g6A4wBOgne8eSRHP6PQL27+kWFIx5wNhhjkO7B4rgtsHAmWv7qKvbg==}
+
+ '@vue/runtime-dom@3.5.6':
+ resolution: {integrity: sha512-SDPseWre45G38ENH2zXRAHL1dw/rr5qp91lS4lt/nHvMr0MhsbCbihGAWLXNB/6VfFOJe2O+RBRkXU+CJF7/sw==}
+
+ '@vue/server-renderer@3.5.6':
+ resolution: {integrity: sha512-zivnxQnOnwEXVaT9CstJ64rZFXMS5ZkKxCjDQKiMSvUhXRzFLWZVbaBiNF4HGDqGNNsTgmjcCSmU6TB/0OOxLA==}
+ peerDependencies:
+ vue: 3.5.6
+
+ '@vue/shared@3.5.6':
+ resolution: {integrity: sha512-eidH0HInnL39z6wAt6SFIwBrvGOpDWsDxlw3rCgo1B+CQ1781WzQUSU3YjxgdkcJo9Q8S6LmXTkvI+cLHGkQfA==}
+
+ '@vue/tsconfig@0.5.1':
+ resolution: {integrity: sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==}
+
+ ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+
+ computeds@0.0.1:
+ resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==}
+
+ cross-spawn@7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+
+ csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+
+ de-indent@1.0.2:
+ resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==}
+
+ entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
+ esbuild@0.21.5:
+ resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
+ engines: {node: '>=12'}
+ hasBin: true
+
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ he@1.2.0:
+ resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+ hasBin: true
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ json-parse-even-better-errors@3.0.2:
+ resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ magic-string@0.30.11:
+ resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
+
+ memorystream@0.3.1:
+ resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==}
+ engines: {node: '>= 0.10.0'}
+
+ minimatch@9.0.5:
+ resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ muggle-string@0.4.1:
+ resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
+
+ nanoid@3.3.7:
+ resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ npm-normalize-package-bin@3.0.1:
+ resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ npm-run-all2@6.2.3:
+ resolution: {integrity: sha512-5RsxC7jEc/RjxOYBVdEfrJf5FsJ0pHA7jr2/OxrThXknajETCTYjigOCG3iaGjdYIKEQlDuCG0ir0T1HTva8pg==}
+ engines: {node: ^14.18.0 || ^16.13.0 || >=18.0.0, npm: '>= 8'}
+ hasBin: true
+
+ path-browserify@1.0.1:
+ resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
+
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ picocolors@1.1.0:
+ resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==}
+
+ pidtree@0.6.0:
+ resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+
+ postcss@8.4.47:
+ resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ read-package-json-fast@3.0.2:
+ resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ rollup@4.22.1:
+ resolution: {integrity: sha512-rit4zY5uPX0jrzTidez3rFr0MD30Rpu3S8VxwXFDfBVAzkk9U28s5MF3/R6u5bIHN6CQnf7zbiwVQbqBkyrU/A==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
+ semver@7.6.3:
+ resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ shell-quote@1.8.1:
+ resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
+ to-fast-properties@2.0.0:
+ resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
+ engines: {node: '>=4'}
+
+ typescript@5.4.5:
+ resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ undici-types@6.19.8:
+ resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
+
+ vite@5.4.6:
+ resolution: {integrity: sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || >=20.0.0
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ sass-embedded: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+
+ vscode-uri@3.0.8:
+ resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
+
+ vue-router@4.4.5:
+ resolution: {integrity: sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==}
+ peerDependencies:
+ vue: ^3.2.0
+
+ vue-tsc@2.1.6:
+ resolution: {integrity: sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.0.0'
+
+ vue@3.5.6:
+ resolution: {integrity: sha512-zv+20E2VIYbcJOzJPUWp03NOGFhMmpCKOfSxVTmCYyYFFko48H9tmuQFzYj7tu4qX1AeXlp9DmhIP89/sSxxhw==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+snapshots:
+
+ '@babel/helper-string-parser@7.24.8': {}
+
+ '@babel/helper-validator-identifier@7.24.7': {}
+
+ '@babel/parser@7.25.6':
+ dependencies:
+ '@babel/types': 7.25.6
+
+ '@babel/types@7.25.6':
+ dependencies:
+ '@babel/helper-string-parser': 7.24.8
+ '@babel/helper-validator-identifier': 7.24.7
+ to-fast-properties: 2.0.0
+
+ '@esbuild/aix-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm@0.21.5':
+ optional: true
+
+ '@esbuild/android-x64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-x64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/linux-loong64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-s390x@0.21.5':
+ optional: true
+
+ '@esbuild/linux-x64@0.21.5':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/sunos-x64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/win32-x64@0.21.5':
+ optional: true
+
+ '@jridgewell/sourcemap-codec@1.5.0': {}
+
+ '@rollup/rollup-darwin-arm64@4.22.1':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.22.1':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.22.1':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.22.1':
+ optional: true
+
+ '@tsconfig/node20@20.1.4': {}
+
+ '@types/estree@1.0.5': {}
+
+ '@types/node@20.16.5':
+ dependencies:
+ undici-types: 6.19.8
+
+ '@vitejs/plugin-vue@5.1.4(vite@5.4.6(@types/node@20.16.5))(vue@3.5.6(typescript@5.4.5))':
+ dependencies:
+ vite: 5.4.6(@types/node@20.16.5)
+ vue: 3.5.6(typescript@5.4.5)
+
+ '@volar/language-core@2.4.5':
+ dependencies:
+ '@volar/source-map': 2.4.5
+
+ '@volar/source-map@2.4.5': {}
+
+ '@volar/typescript@2.4.5':
+ dependencies:
+ '@volar/language-core': 2.4.5
+ path-browserify: 1.0.1
+ vscode-uri: 3.0.8
+
+ '@vue/compiler-core@3.5.6':
+ dependencies:
+ '@babel/parser': 7.25.6
+ '@vue/shared': 3.5.6
+ entities: 4.5.0
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
+
+ '@vue/compiler-dom@3.5.6':
+ dependencies:
+ '@vue/compiler-core': 3.5.6
+ '@vue/shared': 3.5.6
+
+ '@vue/compiler-sfc@3.5.6':
+ dependencies:
+ '@babel/parser': 7.25.6
+ '@vue/compiler-core': 3.5.6
+ '@vue/compiler-dom': 3.5.6
+ '@vue/compiler-ssr': 3.5.6
+ '@vue/shared': 3.5.6
+ estree-walker: 2.0.2
+ magic-string: 0.30.11
+ postcss: 8.4.47
+ source-map-js: 1.2.1
+
+ '@vue/compiler-ssr@3.5.6':
+ dependencies:
+ '@vue/compiler-dom': 3.5.6
+ '@vue/shared': 3.5.6
+
+ '@vue/compiler-vue2@2.7.16':
+ dependencies:
+ de-indent: 1.0.2
+ he: 1.2.0
+
+ '@vue/devtools-api@6.6.4': {}
+
+ '@vue/language-core@2.1.6(typescript@5.4.5)':
+ dependencies:
+ '@volar/language-core': 2.4.5
+ '@vue/compiler-dom': 3.5.6
+ '@vue/compiler-vue2': 2.7.16
+ '@vue/shared': 3.5.6
+ computeds: 0.0.1
+ minimatch: 9.0.5
+ muggle-string: 0.4.1
+ path-browserify: 1.0.1
+ optionalDependencies:
+ typescript: 5.4.5
+
+ '@vue/reactivity@3.5.6':
+ dependencies:
+ '@vue/shared': 3.5.6
+
+ '@vue/runtime-core@3.5.6':
+ dependencies:
+ '@vue/reactivity': 3.5.6
+ '@vue/shared': 3.5.6
+
+ '@vue/runtime-dom@3.5.6':
+ dependencies:
+ '@vue/reactivity': 3.5.6
+ '@vue/runtime-core': 3.5.6
+ '@vue/shared': 3.5.6
+ csstype: 3.1.3
+
+ '@vue/server-renderer@3.5.6(vue@3.5.6(typescript@5.4.5))':
+ dependencies:
+ '@vue/compiler-ssr': 3.5.6
+ '@vue/shared': 3.5.6
+ vue: 3.5.6(typescript@5.4.5)
+
+ '@vue/shared@3.5.6': {}
+
+ '@vue/tsconfig@0.5.1': {}
+
+ ansi-styles@6.2.1: {}
+
+ balanced-match@1.0.2: {}
+
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
+ computeds@0.0.1: {}
+
+ cross-spawn@7.0.3:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ csstype@3.1.3: {}
+
+ de-indent@1.0.2: {}
+
+ entities@4.5.0: {}
+
+ esbuild@0.21.5:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.21.5
+ '@esbuild/android-arm': 0.21.5
+ '@esbuild/android-arm64': 0.21.5
+ '@esbuild/android-x64': 0.21.5
+ '@esbuild/darwin-arm64': 0.21.5
+ '@esbuild/darwin-x64': 0.21.5
+ '@esbuild/freebsd-arm64': 0.21.5
+ '@esbuild/freebsd-x64': 0.21.5
+ '@esbuild/linux-arm': 0.21.5
+ '@esbuild/linux-arm64': 0.21.5
+ '@esbuild/linux-ia32': 0.21.5
+ '@esbuild/linux-loong64': 0.21.5
+ '@esbuild/linux-mips64el': 0.21.5
+ '@esbuild/linux-ppc64': 0.21.5
+ '@esbuild/linux-riscv64': 0.21.5
+ '@esbuild/linux-s390x': 0.21.5
+ '@esbuild/linux-x64': 0.21.5
+ '@esbuild/netbsd-x64': 0.21.5
+ '@esbuild/openbsd-x64': 0.21.5
+ '@esbuild/sunos-x64': 0.21.5
+ '@esbuild/win32-arm64': 0.21.5
+ '@esbuild/win32-ia32': 0.21.5
+ '@esbuild/win32-x64': 0.21.5
+
+ estree-walker@2.0.2: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ he@1.2.0: {}
+
+ isexe@2.0.0: {}
+
+ json-parse-even-better-errors@3.0.2: {}
+
+ magic-string@0.30.11:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ memorystream@0.3.1: {}
+
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ muggle-string@0.4.1: {}
+
+ nanoid@3.3.7: {}
+
+ npm-normalize-package-bin@3.0.1: {}
+
+ npm-run-all2@6.2.3:
+ dependencies:
+ ansi-styles: 6.2.1
+ cross-spawn: 7.0.3
+ memorystream: 0.3.1
+ minimatch: 9.0.5
+ pidtree: 0.6.0
+ read-package-json-fast: 3.0.2
+ shell-quote: 1.8.1
+
+ path-browserify@1.0.1: {}
+
+ path-key@3.1.1: {}
+
+ picocolors@1.1.0: {}
+
+ pidtree@0.6.0: {}
+
+ postcss@8.4.47:
+ dependencies:
+ nanoid: 3.3.7
+ picocolors: 1.1.0
+ source-map-js: 1.2.1
+
+ read-package-json-fast@3.0.2:
+ dependencies:
+ json-parse-even-better-errors: 3.0.2
+ npm-normalize-package-bin: 3.0.1
+
+ rollup@4.22.1:
+ dependencies:
+ '@types/estree': 1.0.5
+ optionalDependencies:
+ '@rollup/rollup-darwin-arm64': 4.22.1
+ '@rollup/rollup-linux-x64-gnu': 4.22.1
+ '@rollup/rollup-linux-x64-musl': 4.22.1
+ '@rollup/rollup-win32-x64-msvc': 4.22.1
+ fsevents: 2.3.3
+
+ semver@7.6.3: {}
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ shell-quote@1.8.1: {}
+
+ source-map-js@1.2.1: {}
+
+ to-fast-properties@2.0.0: {}
+
+ typescript@5.4.5: {}
+
+ undici-types@6.19.8: {}
+
+ vite@5.4.6(@types/node@20.16.5):
+ dependencies:
+ esbuild: 0.21.5
+ postcss: 8.4.47
+ rollup: 4.22.1
+ optionalDependencies:
+ '@types/node': 20.16.5
+ fsevents: 2.3.3
+
+ vscode-uri@3.0.8: {}
+
+ vue-router@4.4.5(vue@3.5.6(typescript@5.4.5)):
+ dependencies:
+ '@vue/devtools-api': 6.6.4
+ vue: 3.5.6(typescript@5.4.5)
+
+ vue-tsc@2.1.6(typescript@5.4.5):
+ dependencies:
+ '@volar/typescript': 2.4.5
+ '@vue/language-core': 2.1.6(typescript@5.4.5)
+ semver: 7.6.3
+ typescript: 5.4.5
+
+ vue@3.5.6(typescript@5.4.5):
+ dependencies:
+ '@vue/compiler-dom': 3.5.6
+ '@vue/compiler-sfc': 3.5.6
+ '@vue/runtime-dom': 3.5.6
+ '@vue/server-renderer': 3.5.6(vue@3.5.6(typescript@5.4.5))
+ '@vue/shared': 3.5.6
+ optionalDependencies:
+ typescript: 5.4.5
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
diff --git a/components_vue3/public/favicon.ico b/components_vue3/public/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2
GIT binary patch
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{T%b6i9IjI)Ls)S{-*mq<@~R{?$}ZKjf;^k75i_}(2MXt}^SEBVg7AI@28
zo_uPg2V)_e-`2Ois=PYoe%9u*n9({PFR)OnHJPi{dNx>KxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S
literal 0
HcmV?d00001
diff --git a/components_vue3/src/App.vue b/components_vue3/src/App.vue
new file mode 100644
index 0000000..7905b05
--- /dev/null
+++ b/components_vue3/src/App.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+ Home
+ About
+
+
+
+
+
+
+
+
diff --git a/components_vue3/src/assets/base.css b/components_vue3/src/assets/base.css
new file mode 100644
index 0000000..8816868
--- /dev/null
+++ b/components_vue3/src/assets/base.css
@@ -0,0 +1,86 @@
+/* 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/components_vue3/src/assets/logo.svg b/components_vue3/src/assets/logo.svg
new file mode 100644
index 0000000..7565660
--- /dev/null
+++ b/components_vue3/src/assets/logo.svg
@@ -0,0 +1 @@
+
diff --git a/components_vue3/src/assets/main.css b/components_vue3/src/assets/main.css
new file mode 100644
index 0000000..36fb845
--- /dev/null
+++ b/components_vue3/src/assets/main.css
@@ -0,0 +1,35 @@
+@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;
+ }
+}
diff --git a/components_vue3/src/components/HelloWorld.vue b/components_vue3/src/components/HelloWorld.vue
new file mode 100644
index 0000000..38d821e
--- /dev/null
+++ b/components_vue3/src/components/HelloWorld.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
{{ msg }}
+
+ You’ve successfully created a project with
+ Vite +
+ Vue 3 . What's next?
+
+
+
+
+
diff --git a/components_vue3/src/components/TheWelcome.vue b/components_vue3/src/components/TheWelcome.vue
new file mode 100644
index 0000000..49d8f73
--- /dev/null
+++ b/components_vue3/src/components/TheWelcome.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+ Documentation
+
+ Vue’s
+ official documentation
+ provides you with all information you need to get started.
+
+
+
+
+
+
+ Tooling
+
+ This project is served and bundled with
+ Vite . The
+ recommended IDE setup is
+ VSCode +
+ Volar . If
+ you need to test your components and web pages, check out
+ Cypress and
+ Cypress Component Testing .
+
+
+
+ More instructions are available in README.md
.
+
+
+
+
+
+
+ Ecosystem
+
+ Get official tools and libraries for your project:
+ Pinia ,
+ Vue Router ,
+ Vue Test Utils , and
+ Vue Dev Tools . If
+ you need more resources, we suggest paying
+ Awesome Vue
+ a visit.
+
+
+
+
+
+
+ Community
+
+ Got stuck? Ask your question on
+ Vue Land , our official
+ Discord server, or
+ StackOverflow . You should also subscribe to
+ our mailing list and follow
+ the official
+ @vuejs
+ twitter account for latest news in the Vue world.
+
+
+
+
+
+
+ Support Vue
+
+ As an independent project, Vue relies on community backing for its sustainability. You can help
+ us by
+ becoming a sponsor .
+
+
diff --git a/components_vue3/src/components/WelcomeItem.vue b/components_vue3/src/components/WelcomeItem.vue
new file mode 100644
index 0000000..6d7086a
--- /dev/null
+++ b/components_vue3/src/components/WelcomeItem.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
diff --git a/components_vue3/src/components/icons/IconCommunity.vue b/components_vue3/src/components/icons/IconCommunity.vue
new file mode 100644
index 0000000..2dc8b05
--- /dev/null
+++ b/components_vue3/src/components/icons/IconCommunity.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/components_vue3/src/components/icons/IconDocumentation.vue b/components_vue3/src/components/icons/IconDocumentation.vue
new file mode 100644
index 0000000..6d4791c
--- /dev/null
+++ b/components_vue3/src/components/icons/IconDocumentation.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/components_vue3/src/components/icons/IconEcosystem.vue b/components_vue3/src/components/icons/IconEcosystem.vue
new file mode 100644
index 0000000..c3a4f07
--- /dev/null
+++ b/components_vue3/src/components/icons/IconEcosystem.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/components_vue3/src/components/icons/IconSupport.vue b/components_vue3/src/components/icons/IconSupport.vue
new file mode 100644
index 0000000..7452834
--- /dev/null
+++ b/components_vue3/src/components/icons/IconSupport.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/components_vue3/src/components/icons/IconTooling.vue b/components_vue3/src/components/icons/IconTooling.vue
new file mode 100644
index 0000000..660598d
--- /dev/null
+++ b/components_vue3/src/components/icons/IconTooling.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
diff --git a/components_vue3/src/main.ts b/components_vue3/src/main.ts
new file mode 100644
index 0000000..5a5dbdb
--- /dev/null
+++ b/components_vue3/src/main.ts
@@ -0,0 +1,11 @@
+import './assets/main.css'
+
+import { createApp } from 'vue'
+import App from './App.vue'
+import router from './router'
+
+const app = createApp(App)
+
+app.use(router)
+
+app.mount('#app')
diff --git a/components_vue3/src/router/index.ts b/components_vue3/src/router/index.ts
new file mode 100644
index 0000000..a49ae50
--- /dev/null
+++ b/components_vue3/src/router/index.ts
@@ -0,0 +1,23 @@
+import { createRouter, createWebHistory } from 'vue-router'
+import HomeView from '../views/HomeView.vue'
+
+const router = createRouter({
+ history: createWebHistory(import.meta.env.BASE_URL),
+ routes: [
+ {
+ 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')
+ }
+ ]
+})
+
+export default router
diff --git a/components_vue3/src/views/AboutView.vue b/components_vue3/src/views/AboutView.vue
new file mode 100644
index 0000000..756ad2a
--- /dev/null
+++ b/components_vue3/src/views/AboutView.vue
@@ -0,0 +1,15 @@
+
+
+
This is an about page
+
+
+
+
diff --git a/components_vue3/src/views/HomeView.vue b/components_vue3/src/views/HomeView.vue
new file mode 100644
index 0000000..d5c0217
--- /dev/null
+++ b/components_vue3/src/views/HomeView.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/components_vue3/tsconfig.app.json b/components_vue3/tsconfig.app.json
new file mode 100644
index 0000000..e14c754
--- /dev/null
+++ b/components_vue3/tsconfig.app.json
@@ -0,0 +1,14 @@
+{
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
+ "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
+ "exclude": ["src/**/__tests__/*"],
+ "compilerOptions": {
+ "composite": true,
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ }
+}
diff --git a/components_vue3/tsconfig.json b/components_vue3/tsconfig.json
new file mode 100644
index 0000000..66b5e57
--- /dev/null
+++ b/components_vue3/tsconfig.json
@@ -0,0 +1,11 @@
+{
+ "files": [],
+ "references": [
+ {
+ "path": "./tsconfig.node.json"
+ },
+ {
+ "path": "./tsconfig.app.json"
+ }
+ ]
+}
diff --git a/components_vue3/tsconfig.node.json b/components_vue3/tsconfig.node.json
new file mode 100644
index 0000000..f094063
--- /dev/null
+++ b/components_vue3/tsconfig.node.json
@@ -0,0 +1,19 @@
+{
+ "extends": "@tsconfig/node20/tsconfig.json",
+ "include": [
+ "vite.config.*",
+ "vitest.config.*",
+ "cypress.config.*",
+ "nightwatch.conf.*",
+ "playwright.config.*"
+ ],
+ "compilerOptions": {
+ "composite": true,
+ "noEmit": true,
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
+
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "types": ["node"]
+ }
+}
diff --git a/components_vue3/vite.config.ts b/components_vue3/vite.config.ts
new file mode 100644
index 0000000..5c45e1d
--- /dev/null
+++ b/components_vue3/vite.config.ts
@@ -0,0 +1,16 @@
+import { fileURLToPath, URL } from 'node:url'
+
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [
+ vue(),
+ ],
+ resolve: {
+ alias: {
+ '@': fileURLToPath(new URL('./src', import.meta.url))
+ }
+ }
+})
diff --git a/hello_vue3/bun.lockb b/hello_vue3/bun.lockb
new file mode 100644
index 0000000000000000000000000000000000000000..4bd45805d683c9aa9f2b1da54f4e15eaff5407b5
GIT binary patch
literal 51069
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
R4(zFr(OFlj|IhpT{{!WU{gMCx
literal 0
HcmV?d00001
diff --git a/hello_vue3/src/App.vue b/hello_vue3/src/App.vue
index 6e1aaf7..d82476a 100644
--- a/hello_vue3/src/App.vue
+++ b/hello_vue3/src/App.vue
@@ -2,16 +2,16 @@
-
+
diff --git a/hello_vue3/src/components/Demo.vue b/hello_vue3/src/components/Login.vue
similarity index 93%
rename from hello_vue3/src/components/Demo.vue
rename to hello_vue3/src/components/Login.vue
index 7abb669..e8b1f86 100644
--- a/hello_vue3/src/components/Demo.vue
+++ b/hello_vue3/src/components/Login.vue
@@ -109,14 +109,25 @@ let handleLogin = () => {
z-index: 1;
justify-content: center;
text-align: center;
+ outline: none;
background-color: lightseagreen;
margin: 0 auto; /* 水平居中 */
- display: block; /* 使按钮成为块级元素 */
+ display: block; /*使按钮成为块级元素 */
transition: background-color 0.3s ease; /* 添加简单的背景色过渡效果 */
}
+.input-box button {
+ user-select: none;
+}
+
+.input-box button:focus {
+ /* 焦点在的时候变化颜色 */
+ background-color: #3cb371;
+}
+
.input-box button:hover {
- background-color: #3cb371; /* 悬停时的背景色 */
+ /* 鼠标悬停颜色变化 */
+ background-color: #3cb371;
}
/* 接下来是猫头鹰的样式 */