diff --git a/.gitignore b/.gitignore
index 7e0e1ec9b..e3e41bc4e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,6 +15,7 @@
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
+.idea
# Directories potentially created on remote AFP share
.AppleDB
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 000000000..13566b81b
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/aws.xml b/.idea/aws.xml
new file mode 100644
index 000000000..03f1bb6ee
--- /dev/null
+++ b/.idea/aws.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 000000000..a1998581b
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 000000000..79ee123c2
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/docs.iml b/.idea/docs.iml
new file mode 100644
index 000000000..d6ebd4805
--- /dev/null
+++ b/.idea/docs.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 000000000..211753fb9
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 000000000..6049cfe01
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 000000000..35eb1ddfb
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.vitepress/config.ts b/.vitepress/config.ts
index 489af755f..d2d95be1a 100644
--- a/.vitepress/config.ts
+++ b/.vitepress/config.ts
@@ -760,7 +760,7 @@ export default defineConfigWithTheme({
socialLinks: [
{ icon: 'github', link: 'https://github.com/vuejs/' },
{ icon: 'twitter', link: 'https://twitter.com/vuejs' },
- { icon: 'discord', link: 'https://discord.com/invite/HBherRA' }
+ { icon: 'discord', link: 'https://discord.com/invite/vue' }
],
editLink: {
diff --git a/.vitepress/inlined-scripts/restorePreference.js b/.vitepress/inlined-scripts/restorePreference.js
index 5e18b50ff..6eee492a4 100644
--- a/.vitepress/inlined-scripts/restorePreference.js
+++ b/.vitepress/inlined-scripts/restorePreference.js
@@ -8,6 +8,6 @@
restore('vue-docs-prefer-composition', 'prefer-composition', true)
restore('vue-docs-prefer-sfc', 'prefer-sfc', true)
- // window.__VUE_BANNER_ID__ = ''
- // restore(`vue-docs-banner-${__VUE_BANNER_ID__}`, 'banner-dismissed')
+ window.__VUE_BANNER_ID__ = 'vueconfus2024'
+ restore(`vue-docs-banner-${__VUE_BANNER_ID__}`, 'banner-dismissed')
})()
diff --git a/.vitepress/theme/components/Banner.vue b/.vitepress/theme/components/Banner.vue
index 6730fcd48..f10b9e22e 100644
--- a/.vitepress/theme/components/Banner.vue
+++ b/.vitepress/theme/components/Banner.vue
@@ -22,16 +22,30 @@ function dismiss() {
-
+
+ VueConf US
+ - Join the official Vue.js conference
+ | May 15-17, 2024 - New Orleans, USA
+ Register Now
+
+
+ Use code VUEJSDOCS
+ to get $100 off!
+
@@ -50,12 +64,10 @@ html:not(.banner-dismissed) {
font-weight: 600;
color: #fff;
background-color: var(--vt-c-green);
- background: linear-gradient(
- 90deg,
- rgba(66, 184, 131, 1) 0%,
- rgba(39, 179, 137, 1) 19%,
- rgba(100, 126, 255, 1) 100%
- );
+ background: #11252b;
+ display: flex;
+ justify-content: center;
+ align-items: center;
}
.banner-dismissed .banner {
@@ -70,7 +82,7 @@ button {
position: absolute;
right: 0;
top: 0;
- padding: 5px;
+ padding: 20px 10px;
}
.close {
@@ -79,10 +91,59 @@ button {
fill: #fff;
transform: rotate(45deg);
}
-/*
-@media (max-width: 720px) {
- a > span {
+
+.vt-banner-text {
+ color: #fff;
+ font-size: 16px;
+}
+
+.vt-text-primary {
+ color: #75c05e;
+}
+
+.vt-primary-action {
+ background: #75c05e;
+ color: #121c1a;
+ padding: 8px 15px;
+ border-radius: 5px;
+ font-size: 14px;
+ text-decoration: none;
+ margin: 0 20px;
+ font-weight: bold;
+}
+.vt-primary-action:hover {
+ text-decoration: none;
+ background: #5a9f45;
+}
+
+@media (max-width: 1280px) {
+ .banner .vt-banner-text {
+ font-size: 14px;
+ }
+ .vt-tagline {
+ display: none;
+ }
+}
+
+@media (max-width: 780px) {
+ .vt-tagline {
+ display: none;
+ }
+ .vt-coupon {
+ display: none;
+ }
+ .vt-primary-action {
+ margin: 0 10px;
+ padding: 7px 10px;
+ }
+ .vt-time-now {
+ display: none;
+ }
+}
+
+@media (max-width: 560px) {
+ .vt-place {
display: none;
}
-} */
+}
diff --git a/.vitepress/theme/components/NewsLetter.vue b/.vitepress/theme/components/NewsLetter.vue
index ef5424c4e..0f4b4be31 100644
--- a/.vitepress/theme/components/NewsLetter.vue
+++ b/.vitepress/theme/components/NewsLetter.vue
@@ -44,9 +44,9 @@ import { VTLink } from '@vue/theme'
class="link"
href="https://news.vuejs.org/"
no-icon
- >news.vuejs.org 阅读之前的期刊并收听我们的播客。你也可以在
+ >news.vuejs.org 阅读之前的期刊并收听我们的播客。你也可以在
Twitter 关注我们,或加入我们的
- Discord 家园。
+ Discord 家园。
diff --git a/package.json b/package.json
index fa8e084ae..a748a3d30 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
"preinstall": "npx only-allow pnpm"
},
"dependencies": {
- "@vue/repl": "^3.0.0",
+ "@vue/repl": "^4.0.1",
"@vue/theme": "^2.2.5",
"dynamics.js": "^1.1.5",
"gsap": "^3.9.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f629134e9..bd056b03d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,11 +9,11 @@ overrides:
dependencies:
'@vue/repl':
- specifier: ^3.0.0
- version: 3.4.0
+ specifier: ^4.0.1
+ version: 4.1.1
'@vue/theme':
specifier: ^2.2.5
- version: 2.2.5(vitepress@1.0.0-rc.33)(vue@3.4.15)
+ version: 2.2.5(vitepress@1.0.0-rc.33)(vue@3.4.21)
dynamics.js:
specifier: ^1.1.5
version: 1.1.5
@@ -25,7 +25,7 @@ dependencies:
version: 1.0.0-rc.33(@types/node@20.10.1)(terser@5.14.2)
vue:
specifier: ^3.4.0
- version: 3.4.15
+ version: 3.4.21
devDependencies:
'@types/markdown-it':
@@ -211,8 +211,8 @@ packages:
engines: {node: '>=6.9.0'}
dev: false
- /@babel/parser@7.23.6:
- resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==}
+ /@babel/parser@7.23.9:
+ resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
@@ -682,7 +682,7 @@ packages:
resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
dev: false
- /@vitejs/plugin-vue@5.0.0-beta.1(vite@5.0.10)(vue@3.4.15):
+ /@vitejs/plugin-vue@5.0.0-beta.1(vite@5.0.10)(vue@3.4.21):
resolution: {integrity: sha512-zFAHH6RJH2w/LQlFyqrml96yjYmT8n8e3O4esRxHzCn250uOlkuc0IAqFJWqdxLmQquEM4q5/ECnQJRGsKjoIw==}
engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies:
@@ -690,98 +690,98 @@ packages:
vue: ^3.2.25
dependencies:
vite: 5.0.10(@types/node@20.10.1)(terser@5.14.2)
- vue: 3.4.15
+ vue: 3.4.21
dev: false
- /@vue/compiler-core@3.4.15:
- resolution: {integrity: sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==}
+ /@vue/compiler-core@3.4.21:
+ resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==}
dependencies:
- '@babel/parser': 7.23.6
- '@vue/shared': 3.4.15
+ '@babel/parser': 7.23.9
+ '@vue/shared': 3.4.21
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.0.2
dev: false
- /@vue/compiler-dom@3.4.15:
- resolution: {integrity: sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==}
+ /@vue/compiler-dom@3.4.21:
+ resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==}
dependencies:
- '@vue/compiler-core': 3.4.15
- '@vue/shared': 3.4.15
+ '@vue/compiler-core': 3.4.21
+ '@vue/shared': 3.4.21
dev: false
- /@vue/compiler-sfc@3.4.15:
- resolution: {integrity: sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==}
+ /@vue/compiler-sfc@3.4.21:
+ resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==}
dependencies:
- '@babel/parser': 7.23.6
- '@vue/compiler-core': 3.4.15
- '@vue/compiler-dom': 3.4.15
- '@vue/compiler-ssr': 3.4.15
- '@vue/shared': 3.4.15
+ '@babel/parser': 7.23.9
+ '@vue/compiler-core': 3.4.21
+ '@vue/compiler-dom': 3.4.21
+ '@vue/compiler-ssr': 3.4.21
+ '@vue/shared': 3.4.21
estree-walker: 2.0.2
- magic-string: 0.30.5
- postcss: 8.4.33
+ magic-string: 0.30.7
+ postcss: 8.4.35
source-map-js: 1.0.2
dev: false
- /@vue/compiler-ssr@3.4.15:
- resolution: {integrity: sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==}
+ /@vue/compiler-ssr@3.4.21:
+ resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==}
dependencies:
- '@vue/compiler-dom': 3.4.15
- '@vue/shared': 3.4.15
+ '@vue/compiler-dom': 3.4.21
+ '@vue/shared': 3.4.21
dev: false
/@vue/devtools-api@6.5.1:
resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==}
dev: false
- /@vue/reactivity@3.4.15:
- resolution: {integrity: sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w==}
+ /@vue/reactivity@3.4.21:
+ resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==}
dependencies:
- '@vue/shared': 3.4.15
+ '@vue/shared': 3.4.21
dev: false
- /@vue/repl@3.4.0:
- resolution: {integrity: sha512-iHhIsmQsp9PJuOwverCRQC2owFb0FSFzk6YWwyirAX6AqH//2FrUV4WB16f9lGX5pDXAHjxlzAE6Lqf9P17HHA==}
+ /@vue/repl@4.1.1:
+ resolution: {integrity: sha512-gkbnU+rM01/ILdnDJbsWS8+PW6qMAzprBo/U2+7eVci0kx6VAR26fL/qrcEPwEYa6q0vzzptZ4il0SaUGGqZKw==}
dev: false
- /@vue/runtime-core@3.4.15:
- resolution: {integrity: sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw==}
+ /@vue/runtime-core@3.4.21:
+ resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==}
dependencies:
- '@vue/reactivity': 3.4.15
- '@vue/shared': 3.4.15
+ '@vue/reactivity': 3.4.21
+ '@vue/shared': 3.4.21
dev: false
- /@vue/runtime-dom@3.4.15:
- resolution: {integrity: sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw==}
+ /@vue/runtime-dom@3.4.21:
+ resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==}
dependencies:
- '@vue/runtime-core': 3.4.15
- '@vue/shared': 3.4.15
+ '@vue/runtime-core': 3.4.21
+ '@vue/shared': 3.4.21
csstype: 3.1.3
dev: false
- /@vue/server-renderer@3.4.15(vue@3.4.15):
- resolution: {integrity: sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw==}
+ /@vue/server-renderer@3.4.21(vue@3.4.21):
+ resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==}
peerDependencies:
- vue: 3.4.15
+ vue: 3.4.21
dependencies:
- '@vue/compiler-ssr': 3.4.15
- '@vue/shared': 3.4.15
- vue: 3.4.15
+ '@vue/compiler-ssr': 3.4.21
+ '@vue/shared': 3.4.21
+ vue: 3.4.21
dev: false
- /@vue/shared@3.4.15:
- resolution: {integrity: sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==}
+ /@vue/shared@3.4.21:
+ resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==}
dev: false
- /@vue/theme@2.2.5(vitepress@1.0.0-rc.33)(vue@3.4.15):
+ /@vue/theme@2.2.5(vitepress@1.0.0-rc.33)(vue@3.4.21):
resolution: {integrity: sha512-UUPD0XxlRa69Ytely8JEU/cu8Pae5f4UqZNIXANPN8KT6j/O23dCbOfp1cKlSn+Q/xXLYp0K+vRh4IqZjt/9BQ==}
peerDependencies:
vitepress: ^1.0.0-alpha.60
dependencies:
'@docsearch/css': 3.5.2
'@docsearch/js': 3.5.2
- '@vueuse/core': 9.13.0(vue@3.4.15)
+ '@vueuse/core': 9.13.0(vue@3.4.21)
body-scroll-lock: 3.1.5
normalize.css: 8.0.1
vitepress: 1.0.0-rc.33(@types/node@20.10.1)(terser@5.14.2)
@@ -795,31 +795,31 @@ packages:
- vue
dev: false
- /@vueuse/core@10.7.0(vue@3.4.15):
+ /@vueuse/core@10.7.0(vue@3.4.21):
resolution: {integrity: sha512-4EUDESCHtwu44ZWK3Gc/hZUVhVo/ysvdtwocB5vcauSV4B7NiGY5972WnsojB3vRNdxvAt7kzJWE2h9h7C9d5w==}
dependencies:
'@types/web-bluetooth': 0.0.20
'@vueuse/metadata': 10.7.0
- '@vueuse/shared': 10.7.0(vue@3.4.15)
- vue-demi: 0.14.6(vue@3.4.15)
+ '@vueuse/shared': 10.7.0(vue@3.4.21)
+ vue-demi: 0.14.6(vue@3.4.21)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
dev: false
- /@vueuse/core@9.13.0(vue@3.4.15):
+ /@vueuse/core@9.13.0(vue@3.4.21):
resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==}
dependencies:
'@types/web-bluetooth': 0.0.16
'@vueuse/metadata': 9.13.0
- '@vueuse/shared': 9.13.0(vue@3.4.15)
- vue-demi: 0.14.6(vue@3.4.15)
+ '@vueuse/shared': 9.13.0(vue@3.4.21)
+ vue-demi: 0.14.6(vue@3.4.21)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
dev: false
- /@vueuse/integrations@10.7.0(focus-trap@7.5.4)(vue@3.4.15):
+ /@vueuse/integrations@10.7.0(focus-trap@7.5.4)(vue@3.4.21):
resolution: {integrity: sha512-rxiMYgS+91n93qXpHZF9NbHhppWY6IJyVTDxt4acyChL0zZVx7P8FAAfpF1qVK8e4wfjerhpEiMJ0IZ1GWUZ2A==}
peerDependencies:
async-validator: '*'
@@ -860,10 +860,10 @@ packages:
universal-cookie:
optional: true
dependencies:
- '@vueuse/core': 10.7.0(vue@3.4.15)
- '@vueuse/shared': 10.7.0(vue@3.4.15)
+ '@vueuse/core': 10.7.0(vue@3.4.21)
+ '@vueuse/shared': 10.7.0(vue@3.4.21)
focus-trap: 7.5.4
- vue-demi: 0.14.6(vue@3.4.15)
+ vue-demi: 0.14.6(vue@3.4.21)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -877,19 +877,19 @@ packages:
resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
dev: false
- /@vueuse/shared@10.7.0(vue@3.4.15):
+ /@vueuse/shared@10.7.0(vue@3.4.21):
resolution: {integrity: sha512-kc00uV6CiaTdc3i1CDC4a3lBxzaBE9AgYNtFN87B5OOscqeWElj/uza8qVDmk7/U8JbqoONLbtqiLJ5LGRuqlw==}
dependencies:
- vue-demi: 0.14.6(vue@3.4.15)
+ vue-demi: 0.14.6(vue@3.4.21)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
dev: false
- /@vueuse/shared@9.13.0(vue@3.4.15):
+ /@vueuse/shared@9.13.0(vue@3.4.21):
resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==}
dependencies:
- vue-demi: 0.14.6(vue@3.4.15)
+ vue-demi: 0.14.6(vue@3.4.21)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -1280,8 +1280,8 @@ packages:
engines: {node: 14 || >=16.14}
dev: true
- /magic-string@0.30.5:
- resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
+ /magic-string@0.30.7:
+ resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==}
engines: {node: '>=12'}
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
@@ -1739,8 +1739,8 @@ packages:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
dev: false
- /postcss@8.4.33:
- resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==}
+ /postcss@8.4.35:
+ resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.7
@@ -2051,7 +2051,7 @@ packages:
dependencies:
'@types/node': 20.10.1
esbuild: 0.19.8
- postcss: 8.4.33
+ postcss: 8.4.35
rollup: 4.6.0
terser: 5.14.2
optionalDependencies:
@@ -2073,10 +2073,10 @@ packages:
'@docsearch/css': 3.5.2
'@docsearch/js': 3.5.2
'@types/markdown-it': 13.0.7
- '@vitejs/plugin-vue': 5.0.0-beta.1(vite@5.0.10)(vue@3.4.15)
+ '@vitejs/plugin-vue': 5.0.0-beta.1(vite@5.0.10)(vue@3.4.21)
'@vue/devtools-api': 6.5.1
- '@vueuse/core': 10.7.0(vue@3.4.15)
- '@vueuse/integrations': 10.7.0(focus-trap@7.5.4)(vue@3.4.15)
+ '@vueuse/core': 10.7.0(vue@3.4.21)
+ '@vueuse/integrations': 10.7.0(focus-trap@7.5.4)(vue@3.4.21)
focus-trap: 7.5.4
mark.js: 8.11.1
minisearch: 6.3.0
@@ -2084,7 +2084,7 @@ packages:
shikiji: 0.9.12
shikiji-transformers: 0.9.12
vite: 5.0.10(@types/node@20.10.1)(terser@5.14.2)
- vue: 3.4.15
+ vue: 3.4.21
transitivePeerDependencies:
- '@algolia/client-search'
- '@types/node'
@@ -2113,7 +2113,7 @@ packages:
- universal-cookie
dev: false
- /vue-demi@0.14.6(vue@3.4.15):
+ /vue-demi@0.14.6(vue@3.4.21):
resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==}
engines: {node: '>=12'}
hasBin: true
@@ -2125,22 +2125,22 @@ packages:
'@vue/composition-api':
optional: true
dependencies:
- vue: 3.4.15
+ vue: 3.4.21
dev: false
- /vue@3.4.15:
- resolution: {integrity: sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ==}
+ /vue@3.4.21:
+ resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
- '@vue/compiler-dom': 3.4.15
- '@vue/compiler-sfc': 3.4.15
- '@vue/runtime-dom': 3.4.15
- '@vue/server-renderer': 3.4.15(vue@3.4.15)
- '@vue/shared': 3.4.15
+ '@vue/compiler-dom': 3.4.21
+ '@vue/compiler-sfc': 3.4.21
+ '@vue/runtime-dom': 3.4.21
+ '@vue/server-renderer': 3.4.21(vue@3.4.21)
+ '@vue/shared': 3.4.21
dev: false
/which@2.0.2:
diff --git a/src/about/community-guide.md b/src/about/community-guide.md
index e0eb52674..b08f77419 100644
--- a/src/about/community-guide.md
+++ b/src/about/community-guide.md
@@ -23,7 +23,7 @@ Vue.js 的社区正在急速增长中,如果你正在阅读本文,这说明
### 获得帮助 {#get-support}
-- [Discord 聊天室](https://chat.vuejs.org/):一个 Vue 开发者相互认识和实时聊天的地方。
+- [Discord 聊天室](https://discord.com/invite/vue):一个 Vue 开发者相互认识和实时聊天的地方。
- [论坛](https://forum.vuejs.org/):咨询与 Vue 及其生态的相关问题的最佳地点。
- [DEV 社区](https://dev.to/t/vue):在 Dev.to 分享与讨论 Vue 的相关话题。
- [Meetup](https://events.vuejs.org/meetups):想在当地找到像你一样的 Vue.js 爱好者吗?有兴趣成为社区领袖吗?这里就有你所需要的支持和帮助!
diff --git a/src/api/compile-time-flags.md b/src/api/compile-time-flags.md
index 71cec1727..bc10d7d18 100644
--- a/src/api/compile-time-flags.md
+++ b/src/api/compile-time-flags.md
@@ -26,7 +26,7 @@ outline: deep
在生产环境中启用/禁用开发者工具支持。启用会在打包结果中包含更多代码,因此建议仅在调试时启用此功能。
-## `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__` {#VUE_PROD_HYDRATATION_MISMATCH_DETAILS}
+## `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__` {#VUE_PROD_HYDRATION_MISMATCH_DETAILS}
- **默认值:**`false`
diff --git a/src/ecosystem/newsletters.md b/src/ecosystem/newsletters.md
index 9c3a0fef7..fb85aad1b 100644
--- a/src/ecosystem/newsletters.md
+++ b/src/ecosystem/newsletters.md
@@ -7,6 +7,5 @@
- [Jakub Andrzejewski](https://dev.to/jacobandrewsky)
- [Weekly Vue News](https://weekly-vue.news/)
- [Vue.js Developers Newsletter](https://vuejsdevelopers.com/newsletter/)
-- [VueDose](https://vuedose.tips/articles#newsletter)
如果你还知道其他优秀的内容,请使用[该链接](https://github.com/vuejs/docs/edit/main/src/ecosystem/newsletters.md)提交一个 pull request!
diff --git a/src/ecosystem/themes/themes.json b/src/ecosystem/themes/themes.json
index 563f52610..ed48d3911 100644
--- a/src/ecosystem/themes/themes.json
+++ b/src/ecosystem/themes/themes.json
@@ -45,48 +45,6 @@
"description": "Premium Vue.js UI Kit",
"url": "https://www.creative-tim.com/product/vue-now-ui-kit-pro?affiliate_id=116187",
"image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-now-ui-kit-pro/vue-now-ui-kit-pro.jpg"
- },
- {
- "name": "Vue Now UI Dashboard Pro",
- "price": 59,
- "description": "Premium Vue.js Admin Template",
- "url": "https://www.creative-tim.com/product/vue-now-ui-dashboard-pro?affiliate_id=116187",
- "image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-now-ui-dashboard-pro/vue-now-ui-dashboard-pro.jpg"
- },
- {
- "name": "Vue Now UI Kit",
- "price": 0,
- "description": "Free Vue.js UI Kit",
- "url": "https://www.creative-tim.com/product/vue-now-ui-kit?affiliate_id=116187",
- "image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-now-ui-kit/vue-now-ui-kit.jpg"
- },
- {
- "name": "Vue Light Bootstrap Dashboard Pro",
- "price": 49,
- "description": "Premium Vue.js Admin Template",
- "url": "https://www.creative-tim.com/product/vue-light-bootstrap-dashboard-pro?affiliate_id=116187",
- "image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-light-bootstrap-dashboard-pro/vue-light-bootstrap-dashboard-pro.jpg"
- },
- {
- "name": "Vue Material Dashboard Pro",
- "price": 59,
- "description": "Premium Vue.js Admin Template",
- "url": "https://www.creative-tim.com/product/vue-material-dashboard-pro?affiliate_id=116187",
- "image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-material-dashboard-pro/vue-material-dashboard-pro.jpg"
- },
- {
- "name": "Vue Material Kit Pro",
- "price": 89,
- "description": "Premium Vue.js UI Kit",
- "url": "https://www.creative-tim.com/product/vue-material-kit-pro?affiliate_id=116187",
- "image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-material-kit-pro/vue-material-kit-pro.jpg"
- },
- {
- "name": "Vue Light Bootstrap Dashboard",
- "price": 0,
- "description": "Free Vue.js Admin Template",
- "url": "https://www.creative-tim.com/product/vue-light-bootstrap-dashboard?affiliate_id=116187",
- "image": "https://raw.githubusercontent.com/creativetimofficial/public-assets/master/vue-light-bootstrap-dashboard/vue-light-bootstrap-dashboard.jpg"
}
]
},
@@ -136,139 +94,6 @@
"description": "Premium Vue.js Plugin",
"image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/color-picker.jpg",
"price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/cookies-management/?utm_ref_id=82665",
- "name": "Vue Cookies Management Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/cookie.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/countdown/?utm_ref_id=82665",
- "name": "Vue Countdown Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/countdown.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/data-parser/?utm_ref_id=82665",
- "name": "Vue Data Parser Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/data-parser.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/drag-and-drop/?utm_ref_id=82665",
- "name": "Vue Drag and Drop Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/drag-and-drop.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/dummy/?utm_ref_id=82665",
- "name": "Vue Dummy Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/dummy.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/ecommerce-gallery/?utm_ref_id=82665",
- "name": "Vue eCommerce Gallery Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/ecommerce-gallery.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/file-upload/?utm_ref_id=82665",
- "name": "Vue File Upload Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/file-upload.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/filters/?utm_ref_id=82665",
- "name": "Vue Filters Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/filters.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/input-mask/?utm_ref_id=82665",
- "name": "Vue Input Mask Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/input-mask.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/mention/?utm_ref_id=82665",
- "name": "Vue Mention Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/mention.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/multi-item-carousel/?utm_ref_id=82665",
- "name": "Vue Multi Item Carousel Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/multi-item-carousel.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/onboarding/?utm_ref_id=82665",
- "name": "Vue Onboarding Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/onboarding.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/parallax/?utm_ref_id=82665",
- "name": "Vue Parallax Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/parallax.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/storage-management/?utm_ref_id=82665",
- "name": "Vue Storage Management Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/storage-management.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/table-editor/?utm_ref_id=82665",
- "name": "Vue Table Editor Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/table-editor.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/transfer/?utm_ref_id=82665",
- "name": "Vue Transfer Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/transfer.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/tree-view/?utm_ref_id=82665",
- "name": "Vue Tree View Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/treeview.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/vector-maps/?utm_ref_id=82665",
- "name": "Vue Vector Maps Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/vector-maps.jpg",
- "price": 199
- },
- {
- "url": "https://mdbootstrap.com/docs/vue/plugins/wysiwyg-editor/?utm_ref_id=82665",
- "name": "Vue WYSIWYG Bootstrap",
- "description": "Premium Vue.js Plugin",
- "image": "https://mdbootstrap.com/img/Marketing/mdb-press-pack/vuejs/plugins/wysiwyg.jpg",
- "price": 199
}
]
},
@@ -318,62 +143,6 @@
"description": "PrimeOne Design Admin Template",
"url": "https://www.primefaces.org/layouts/diamond-vue?af_id=4218",
"image": "https://www.primefaces.org/vue-templates/diamond.jpg"
- },
- {
- "name": "Poseidon",
- "price": 59,
- "description": "PrimeOne Design Admin Template",
- "url": "https://www.primefaces.org/layouts/poseidon-vue?af_id=4218",
- "image": "https://www.primefaces.org/vue-templates/poseidon.jpg"
- },
- {
- "name": "Verona",
- "price": 49,
- "description": "PrimeOne Design Admin Template",
- "url": "https://www.primefaces.org/layouts/verona-vue?af_id=4218",
- "image": "https://www.primefaces.org/vue-templates/verona.jpg"
- },
- {
- "name": "Sapphire",
- "price": 49,
- "description": "Material Design Admin Template",
- "url": "https://www.primefaces.org/layouts/sapphire-vue?af_id=4218",
- "image": "https://www.primefaces.org/vue-templates/sapphire.jpg"
- },
- {
- "name": "Avalon",
- "price": 49,
- "description": "Bootstrap Inspired Admin Template",
- "url": "https://www.primefaces.org/layouts/avalon-vue?af_id=4218",
- "image": "https://www.primefaces.org/vue-templates/avalon.jpg"
- },
- {
- "name": "Serenity",
- "price": 49,
- "description": "Material Design Admin Template",
- "url": "https://www.primefaces.org/layouts/serenity-vue?af_id=4218",
- "image": "https://www.primefaces.org/vue-templates/serenity.jpg"
- },
- {
- "name": "Babylon",
- "price": 49,
- "description": "Admin Template with Extensive Options",
- "url": "https://www.primefaces.org/layouts/babylon-vue?af_id=4218",
- "image": "https://www.primefaces.org/vue-templates/babylon.jpg"
- },
- {
- "name": "Roma",
- "price": 39,
- "description": "Admin Template with a Clean Design System",
- "url": "https://www.primefaces.org/layouts/roma-vue?af_id=4218",
- "image": "https://www.primefaces.org/vue-templates/roma.jpg"
- },
- {
- "name": "Prestige",
- "price": 39,
- "description": "Highly Customizable Admin Template",
- "url": "https://www.primefaces.org/layouts/prestige-vue?af_id=4218",
- "image": "https://www.primefaces.org/vue-templates/prestige.jpg"
}
]
},
@@ -425,5 +194,104 @@
"image": "https://flatlogic.com/assets/templates/light_blue_vue_full_nodejs-06f941c849f0a83a3c0d38c728101eace06a7515ea048f12bcd91f165280246f.webp"
}
]
- }
+ },
+ {
+ "name": "WrapPixel",
+ "description": "Check out developer friendly vue js admin dashboard templates built by our partners from [WrapPixel](https://wrappixel.com). Download them to start building your real time web application quickly to save hundreds of hours in development and design.",
+ "seeMoreUrl": "https://www.wrappixel.com/templates/category/vuejs-templates/",
+ "products": [
+ {
+ "name": "Spike Free VueJs Admin Template",
+ "price": 0,
+ "description": "Free & Open Source VueJs Admin Template",
+ "url": "https://www.wrappixel.com/templates/spike-free-vuejs-admin-template/?ref=320",
+ "image": "https://www.wrappixel.com/wp-content/uploads/edd/2023/10/spike-free-vuetify-vuejs-admin-template-wp.jpg"
+ },
+ {
+ "name": "Spike Vue3 Admin Dashboard",
+ "price": 49,
+ "description": "Powerful Vue3 Dashboard Theme",
+ "url": "https://www.wrappixel.com/templates/spike-vuejs-admin-dashboard/?ref=320",
+ "image": "https://www.wrappixel.com/wp-content/uploads/edd/2023/09/spike-vuejs-admin-dashboard-prev-img.jpg"
+ },
+ {
+ "name": "MaterialPro Vue3 Admin Dashboard",
+ "price": 49,
+ "description": "Vue 3 + Vuetify 3 + Vite + Typescript",
+ "url": "https://www.wrappixel.com/templates/materialpro-vuetify-admin/?ref=320",
+ "image": "https://www.wrappixel.com/wp-content/uploads/edd/2020/05/materialpro-vuejs-dashboard-template-20.jpg"
+ },
+ {
+ "name": "Free MaterialPro Vuetify Admin",
+ "price": 0,
+ "description": "Free Vuetify Dashboard Template",
+ "url": "https://www.wrappixel.com/templates/materialpro-vuetify-admin-lite/?ref=320",
+ "image": "https://www.wrappixel.com/wp-content/uploads/edd/2020/05/materialpro-vuejs-lite-admin-wp-20.jpg"
+ },
+ {
+ "name": "Free AdminPro VueJs Lite",
+ "price": 0,
+ "description": "Free & Open Source VueJs Admin Template",
+ "url": "https://www.wrappixel.com/templates/adminpro-vuetify-admin-lite/?ref=320",
+ "image": "https://www.wrappixel.com/wp-content/uploads/edd/2020/11/feature_image.jpg"
+ },
+ {
+ "name": "AdminPro Vue3 + Vuetify Dashboard",
+ "price": 49,
+ "description": "Vue3 + Vite + Vuetify + Typescript",
+ "url": "https://www.wrappixel.com/templates/adminpro-vuetify-dashboard/?ref=320",
+ "image": "https://www.wrappixel.com/wp-content/uploads/edd/2020/10/adminpro-vuetify-dasboard-template-y.jpg"
+ }
+ ]
+ },
+ {
+ "name": "CodedThemes",
+ "description": "Explore Vue.js admin dashboard templates crafted with developers in mind by our partners at [CodedThemes](https://codedthemes.com). Download now to expedite the development of your real-time web applications, saving you countless hours in design and development.",
+ "seeMoreUrl": "https://codedthemes.com/item/category/templates/vue-template/",
+ "products": [
+ {
+ "name": "Free Berry Vuetify VueJs Admin Template",
+ "price": 0,
+ "description": "Free & Open Source VueJs Admin Template with well known desing of Berry",
+ "url": "https://codedthemes.com/item/berry-free-vuetify-vuejs-admin-template/?ref=evan.vuejs",
+ "image": "https://codedthemes.com/wp-content/uploads/2024/03/Berry-free-vue.png"
+ },
+ {
+ "name": "Berry Vue3 Admin Dashboard",
+ "price": 59,
+ "description": "Discover our visually captivating Vue 3 Dashboard Theme!",
+ "url": "https://codedthemes.com/item/berry-vue-admin-dashboard/?ref=evan.vuejs",
+ "image": "https://codedthemes.com/wp-content/uploads/2024/03/Berry-pro-vue.png"
+ },
+ {
+ "name": "Mantis Vue3 Admin Dashboard",
+ "price": 59,
+ "description": "Simple yet rebust to start any development with latest VueJs and Vuetify",
+ "url": "https://codedthemes.com/item/mantis-vue-admin-template/?ref=evan.vuejs",
+ "image": "https://codedthemes.com/wp-content/uploads/2024/03/Mantis-pro-vue.png"
+ },
+ {
+ "name": "Free Mantis Vuetify VueJs Admin Template",
+ "price": 0,
+ "description": "Free Vuetify Dashboard Template with simplest design and code",
+ "url": "https://codedthemes.com/item/mantis-free-vuetify-vuejs-admin-template/?ref=evan.vuejs",
+ "image": "https://codedthemes.com/wp-content/uploads/2024/03/Mantis-free-vue.png"
+ },
+ {
+ "name": "Free Able Pro VueJs",
+ "price": 0,
+ "description": "Free & Open Source Able pro VueJs Admin Template",
+ "url": "https://codedthemes.com/item/able-pro-free-vuejs-admin-dashboard/?ref=evan.vuejs",
+ "image": "https://codedthemes.com/wp-content/uploads/2024/03/Able-pro-free-vue.png"
+ },
+ {
+ "name": "Able Pro Vue3 + Vuetify Dashboard",
+ "price": 11,
+ "description": "Vue3 + Vite + Vuetify + Typescript",
+ "url": "https://codedthemes.com/item/able-pro-vuejs-admin-dashboard/?ref=evan.vuejs",
+ "image": "https://codedthemes.com/wp-content/uploads/2024/03/Able-pro-pro-vue.png"
+ }
+ ]
+}
+
]
diff --git a/src/examples/ExampleRepl.vue b/src/examples/ExampleRepl.vue
index f54d912cb..fc56e9922 100644
--- a/src/examples/ExampleRepl.vue
+++ b/src/examples/ExampleRepl.vue
@@ -1,16 +1,31 @@