diff --git a/.github/workflows/deploy-v3-site.yml b/.github/workflows/deploy-v3-site.yml
index 1775ad4ad..e2e7950eb 100644
--- a/.github/workflows/deploy-v3-site.yml
+++ b/.github/workflows/deploy-v3-site.yml
@@ -36,4 +36,4 @@ jobs:
with:
branch: gh-pages
folder: packages/vant/site-dist
- target-folder: v3
+ clean: false
diff --git a/README.md b/README.md
index fa3e46a44..90229053e 100644
--- a/README.md
+++ b/README.md
@@ -45,21 +45,21 @@
Using `npm` to install:
```bash
-# install Vant 2 for Vue 2 project
-npm i vant@2
+# install latest Vant for Vue 3 project
+npm i vant
-# install Vant 3 for Vue 3 project
-npm i vant@3
+# install Vant 2 for Vue 2 project
+npm i vant@latest-v2
```
Using `yarn` or `pnpm`:
```bash
# with yarn
-yarn add vant@3
+yarn add vant
# with pnpm
-pnpm add vant@3
+pnpm add vant
```
## Quickstart
diff --git a/README.zh-CN.md b/README.zh-CN.md
index 42a7d38d6..9bb8b5597 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -27,7 +27,7 @@
Vant 是**有赞前端团队**开源的移动端组件库,于 2017 年开源。Vant 对内承载了有赞所有核心业务,对外服务十多万开发者,是业界主流的移动端组件库之一。
-目前 Vant 官方提供了 [Vue 2 版本](https://vant-contrib.gitee.io/vant)、[Vue 3 版本](https://vant-contrib.gitee.io/vant/v3)和[微信小程序版本](http://vant-contrib.gitee.io/vant-weapp),并由社区团队维护 [React 版本](https://github.com/mxdi9i7/vant-react)和[支付宝小程序版本](https://github.com/ant-move/Vant-Aliapp)。
+目前 Vant 官方提供了 [Vue 2 版本](https://vant-contrib.gitee.io/vant/v2)、[Vue 3 版本](https://vant-contrib.gitee.io/vant)和[微信小程序版本](http://vant-contrib.gitee.io/vant-weapp),并由社区团队维护 [React 版本](https://github.com/mxdi9i7/vant-react)和[支付宝小程序版本](https://github.com/ant-move/Vant-Aliapp)。
## 特性
@@ -49,21 +49,21 @@ Vant 是**有赞前端团队**开源的移动端组件库,于 2017 年开源
在现有项目中使用 Vant 时,可以通过 `npm` 进行安装:
```bash
-# Vue 2 项目,安装 Vant 2
-npm i vant@2
+# Vue 3 项目,安装最新版 Vant
+npm i vant
-# Vue 3 项目,安装 Vant 3
-npm i vant@3
+# Vue 2 项目,安装 Vant 2
+npm i vant@latest-v2
```
当然,你也可以通过 `yarn` 或 `pnpm` 进行安装:
```bash
# 通过 yarn 安装
-yarn add vant@3
+yarn add vant
# 通过 pnpm 安装
-pnpm add vant@3
+pnpm add vant
```
## 快速上手
diff --git a/packages/create-vant-cli-app/generators/vue3/babel.config.js b/packages/create-vant-cli-app/generators/vue3/babel.config.js
deleted file mode 100644
index fa5ee221e..000000000
--- a/packages/create-vant-cli-app/generators/vue3/babel.config.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- presets: ['@vant/cli/preset'],
-};
diff --git a/packages/create-vant-cli-app/generators/vue3/package.json.tpl b/packages/create-vant-cli-app/generators/vue3/package.json.tpl
index 47764cd62..ee3136dc9 100644
--- a/packages/create-vant-cli-app/generators/vue3/package.json.tpl
+++ b/packages/create-vant-cli-app/generators/vue3/package.json.tpl
@@ -3,20 +3,23 @@
"version": "1.0.0",
"description": "",
"main": "lib/<%= name %>.js",
+ "module": "es/index.js",
"style": "lib/index.css",
+ "typings": "lib/index.d.ts",
"files": [
"lib",
"es"
],
"scripts": {
"dev": "vant-cli dev",
- "test": "vant-cli test",
"lint": "vant-cli lint",
+ "test": "vant-cli test",
"build": "vant-cli build",
- "prepare": "husky install",
- "release": "vant-cli release",
- "test:coverage": "open test/coverage/index.html",
- "build-site": "vant-cli build-site && gh-pages -d site-dist"
+ "build:site": "vant-cli build-site",
+ "release": "vant-cli release --tag next",
+ "release:site": "pnpm build:site && gh-pages -d site-dist",
+ "test:watch": "vant-cli test --watch",
+ "test:coverage": "open test/coverage/index.html"
},
"author": "",
"license": "MIT",
@@ -30,8 +33,9 @@
"vue": "^3.0.0"
},
"devDependencies": {
- "@vant/cli": "^3.9.0",
- "vue": "^3.0.0"
+ "@vant/cli": "^4.0.0",
+ "vue": "^3.0.0",
+ "sass": "^1.49.7"
},
"eslintConfig": {
"root": true,
diff --git a/packages/create-vant-cli-app/generators/vue3/vant.config.js b/packages/create-vant-cli-app/generators/vue3/vant.config.mjs
similarity index 97%
rename from packages/create-vant-cli-app/generators/vue3/vant.config.js
rename to packages/create-vant-cli-app/generators/vue3/vant.config.mjs
index 749ef1a35..314aa23e8 100644
--- a/packages/create-vant-cli-app/generators/vue3/vant.config.js
+++ b/packages/create-vant-cli-app/generators/vue3/vant.config.mjs
@@ -1,4 +1,4 @@
-module.exports = {
+export default {
name: '<%= name %>',
build: {
css: {
diff --git a/packages/create-vant-cli-app/package.json b/packages/create-vant-cli-app/package.json
index ae8978eb1..7c896e569 100644
--- a/packages/create-vant-cli-app/package.json
+++ b/packages/create-vant-cli-app/package.json
@@ -1,6 +1,6 @@
{
"name": "create-vant-cli-app",
- "version": "1.1.1",
+ "version": "2.0.0",
"description": "Create Vant Cli App",
"main": "lib/index.js",
"bin": {
diff --git a/packages/vant-cli/README.md b/packages/vant-cli/README.md
index 5c2eeb9c4..df02f0c53 100644
--- a/packages/vant-cli/README.md
+++ b/packages/vant-cli/README.md
@@ -68,5 +68,4 @@ pnpm add @vant/cli -D
- [命令](https://github.com/youzan/vant/tree/dev/packages/vant-cli/docs/commands.md)
- [配置指南](https://github.com/youzan/vant/tree/dev/packages/vant-cli/docs/config.md)
- [目录结构](https://github.com/youzan/vant/tree/dev/packages/vant-cli/docs/directory.md)
-- [桌面端组件](https://github.com/youzan/vant/tree/dev/packages/vant-cli/docs/desktop.md)
- [更新日志](https://github.com/youzan/vant/tree/dev/packages/vant-cli/changelog.md)
diff --git a/packages/vant-cli/changelog.md b/packages/vant-cli/changelog.md
index ff0f42a9f..51afe59bd 100644
--- a/packages/vant-cli/changelog.md
+++ b/packages/vant-cli/changelog.md
@@ -1,72 +1,57 @@
# 更新日志
-## v4.0.0-rc.6
+## v4.0.0
-- 修复通过 pnpm 安装使用时报错的问题
-
-## v4.0.0-rc.4
-
-- 新增 CommonJS 格式的构建产物,分别为 `lib/[name].cjs.js` 和 `lib/[name].cjs.min.js`
-- 现在 ESModule 和 CommonJS 格式的产物会自动对外部依赖进行 external 处理
-- 修复 Windows 路径兼容问题
-
-## v4.0.0-rc.3
+`2022-02-07`
### 不兼容更新
- 支持的 node 版本范围提升到 `^14.16.0 || >=16.0.0`
+- 使用 vite 代替 webpack 进行构建,移除了所有 webpack 相关依赖
+- 使用 esbuild 进行代码转义和压缩
- babel preset 添加了 `cjs` 后缀,现在需要通过 `@vant/cli/preset.cjs` 引入
- vant.config.js 重命名为 `vant.config.mjs`,由 commonJs 变更为 ESModule 格式
-
-### Features
-
-- 新增 build.configureWebpack 配置项
-
-### 依赖升级
-
-对以下依赖进行了大版本升级:
-
-- eslint v8
-
-## v4.0.0-beta.6
-
-### 不兼容更新
-
-- 使用 vite 代替 webpack 进行构建,移除了所有 webpack 相关依赖
- 站点构建产物的目录由 `site` 调整为 `site-dist`
- 不再支持 webpack.config.js 配置文件
- 不再支持 less import 语法中使用波浪号
- 不再在 demo 文件中自动注册组件
+- 暂时不支持预览桌面端组件
- 移除 build 命令的 --watch 参数
- 移除内置的 babel-plugin-import 插件
- 由于不再使用 html-webpack-plugin, 因此移除了 site.htmlPluginOptions 配置项
+- 为了避免幽灵依赖,不再默认依赖 `@vue/test-utils`,使用时需要手动安装
- 为了减少依赖数量,移除了默认安装的 sass 依赖,使用 sass 时需要手动安装:
```bash
yarn add sass
```
-- 为了避免 Phantom dependency,不再默认依赖 `@vue/test-utils`,使用时需要手动安装
-
-### Features
-
-- 新增 site.htmlMeta 配置项
-- 新增 ESModule 格式的构建产物,分别为 `lib/[name].es.js` 和 `lib/[name].es.min.js`
-
### 依赖升级
对以下依赖进行了大版本升级:
+- eslint v8
- jest v27
- husky v7
- ts-jest v27
- postcss v8
-- clean-css v5
- commander v8
-- babel-jest v27
- lint-staged v11
- autoprefixer v10
+### Features
+
+- 新增 site.htmlMeta 配置项
+- 新增 build.configureWebpack 配置项
+- 新增 ESModule 格式的构建产物,分别为 `lib/[name].es.js` 和 `lib/[name].es.min.js`
+- 新增 CommonJS 格式的构建产物,分别为 `lib/[name].cjs.js` 和 `lib/[name].cjs.min.js`
+- 现在 ESModule 和 CommonJS 格式的产物会自动对外部依赖进行 external 处理
+
+### BugFixes
+
+- 修复 Windows 路径兼容问题
+- 修复通过 pnpm 安装使用时报错的问题
+
## v3.11.2
`2021-07-15`
diff --git a/packages/vant-cli/docs/commands.md b/packages/vant-cli/docs/commands.md
index d676ef746..deed799d5 100644
--- a/packages/vant-cli/docs/commands.md
+++ b/packages/vant-cli/docs/commands.md
@@ -25,7 +25,7 @@ npx vant-cli dev
运行本地开发环境。
-运行 dev 命令时,Vant Cli 会通过 [webpack-dev-server](https://github.com/webpack/webpack-dev-server) 启动一个本地服务器,用于在开发过程中对文档和示例进行预览。
+运行 dev 命令时,Vant Cli 会通过启动一个本地服务器,用于在开发过程中对文档和示例进行预览。
### build
diff --git a/packages/vant-cli/docs/desktop.md b/packages/vant-cli/docs/desktop.md
deleted file mode 100644
index af8b43b50..000000000
--- a/packages/vant-cli/docs/desktop.md
+++ /dev/null
@@ -1,84 +0,0 @@
-## 关于桌面端组件
-
-Vant Cli 也支持预览桌面端组件,你可以在组件的 `demo` 目录下新建一个 `.vue` 文件,并在组件的 `README` 中按如下格式声明要预览的组件:
-
-```html
-./demo/MyDemo.vue
-```
-
-`demo-code` 标签中间的文本为 `README` 到 `demo` 文件的相对路径。
-
-```
-button
-├─ demo # 组件示例
-│ └─ MyDemo.vue # 要预览的 demo 文件
-├─ index.js # 组件入口
-├─ index.less # 组件样式
-└─ README.md # 组件文档
-```
-
-
-
-`demo-code` 标签支持以下属性:
-
-| 名称 | 类型 | 描述 |
-| --------- | ------- | --------------------------------------- |
-| compact | boolean | 紧凑模式 |
-| transform | boolean | 防止预览区内 fixed 定位的元素飞出预览区 |
-| inline | boolean | 只显示组件本身,不显示预览区边框和代码 |
-
-### `compact`
-
-```html
-./demo/MyDemo.vue
-```
-
-
-
-### `transform`
-
-```html
-./demo/MyDemo.vue
-```
-
-
-
-### `inline`
-
-```html
-./demo/MyDemo.vue
-```
-
-
-
-### 去除手机模拟器
-
-对于 PC 端的组件,如果不需要右侧的手机模拟器,可以在 `vant.config.js` 文件中设置 `site.hideSimulator` 为 `true`,这样在所有页面都会隐藏手机模拟器,也可以只针对具体页面设置。
-
-```js
-module.exports = {
- site: {
- defaultLang: 'zh-CN',
- hideSimulator: true, // 所有页面都不显示
- locales: {
- 'zh-CN': {
- title: 'Vant',
- description: '轻量、可靠的移动端 Vue 组件库',
- hideSimulator: true, // 中文下所有页面都不显示
- nav: [
- {
- title: '基础组件',
- items: [
- {
- path: 'button',
- title: 'Button 按钮',
- hideSimulator: true, // 只针对某个页面不显示
- },
- ],
- },
- ],
- },
- },
- },
-};
-```
diff --git a/packages/vant-cli/package.json b/packages/vant-cli/package.json
index 8703581ff..7e0e37908 100644
--- a/packages/vant-cli/package.json
+++ b/packages/vant-cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@vant/cli",
- "version": "4.0.0-rc.6",
+ "version": "4.0.0",
"type": "module",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
diff --git a/packages/vant-cli/site/common/index.js b/packages/vant-cli/site/common/index.js
index 0da499ee8..dcfb367e9 100644
--- a/packages/vant-cli/site/common/index.js
+++ b/packages/vant-cli/site/common/index.js
@@ -8,4 +8,31 @@ export function decamelize(str, sep = '-') {
.toLowerCase();
}
+// from https://30secondsofcode.org
+export function copyToClipboard(str) {
+ const el = document.createElement('textarea');
+ el.value = str;
+ el.setAttribute('readonly', '');
+ el.style.position = 'absolute';
+ el.style.left = '-9999px';
+ document.body.appendChild(el);
+
+ const selection = document.getSelection();
+
+ if (!selection) {
+ return;
+ }
+
+ const selected = selection.rangeCount > 0 ? selection.getRangeAt(0) : false;
+
+ el.select();
+ document.execCommand('copy');
+ document.body.removeChild(el);
+
+ if (selected) {
+ selection.removeAllRanges();
+ selection.addRange(selected);
+ }
+}
+
export { isMobile };
diff --git a/packages/vant-cli/site/desktop/components/Content.vue b/packages/vant-cli/site/desktop/components/Content.vue
index c09032a12..134265196 100644
--- a/packages/vant-cli/site/desktop/components/Content.vue
+++ b/packages/vant-cli/site/desktop/components/Content.vue
@@ -8,6 +8,8 @@
@@ -47,6 +88,54 @@ export default {
background-color: var(--van-doc-background-2);
border-radius: var(--van-doc-border-radius);
+ > pre code {
+ position: relative;
+ padding-right: 30px;
+ pointer-events: none;
+ overflow: initial;
+ }
+
+ > pre:hover {
+ code::before {
+ position: absolute;
+ z-index: 9;
+ right: 14px;
+ top: 11px;
+ width: 20px;
+ height: 20px;
+ background-position: center;
+ background-size: contain;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAAXNSR0IArs4c6QAADGtJREFUeF7tnW2IXFcZx5+zl6wktssibErjC4J+MvhGUwWrkChUq00VNasfLPiCG1SWPXejQfBDJuAXNbv3mSwGs8W3ighdxb5pUZDuh7aCNiLV5lsRLE1pFiTGNNAxM0fuusF1szv3nDPnnnPPPf+B+TTPefs9z2+fmZvJXEF4gAAI7EhAgA0IgMDOBCAIqgMEhhCAICgPEIAgqAEQsCOADmLHDaMSIQBBEkk0jmlHAILYccOoRAhAkEQSjWPaEYAgdtwwKhECECSRROOYdgQgiB03jEqEAARJJNE4ph0BCGLHDaMSIQBBEkk0jmlHAILYccOoRAhAkEQSjWPaEYAgdtwwKhECECSRROOYdgQgiB03jEqEAATRTHSn0xm/fPnyLUqp8nmT5jCEWRDIsuxir9dbW1paWrMY7nQIBBmCM8/z1yil7iKiTxHRYafkMZkugWUiepCZH9Md4DIOgmxDU0p5KxEdJaIvEtE+l8AxlzWBc0S0zMylMN4eEGQLaimlJKKvQQxvNWi6UCnKN5n5QdOBNvEQZBO1PM9/rpT6hA1IjPFOIGdmrntVCLJBWEp5lohm6gaO+d0RGBsbO7y4uPiouxlvnAmCEJGU8vNE9P06QWPueggIId5dFMUf6pmdKHlBpJR3ENETdQHGvLUTOMfMB+paBYJI+RAR3VMXYMzrhcDRuq5uJS0I3lp5KV4fi9TWRVIXBN3DR/l6WEMpNd3tdldcL5W6IFeI6NWuoWK+IARWmHna9crJCiKlPEhEj7sGivnCEWBm5/XsfMJweMxWnpubOyKEeMBs1Hr0SSJatRiHIfoEukT0Nv3w/0b2+/29rr/gmKwgeZ5/WSn1XcMkfI6Zf2Q4BuEWBPI8f1Ip9R6ToVmW7V9YWDhvMqYqNllBpJQdIjpRBWjz63W0cJP1U4q1fAt8iJmddncIYlB1EMQA1oihEGREgKMORwcZlWC94yFIvXwrZ4cglYiCBkCQoPjXv6CIzyCBczBseQgSODkQJHACKpaHIIHzA0ECJwCCND4BeIvV4BShgwRODjpI4ASggzQ+AeggDU4ROkjg5KCDBE4AOkjjE4AO0uAUoYMETg46SOAEoIM0PgHoIA1OETpI4OSggwROADpI4xOADtLgFKGDBE4OOkjgBKCDND4B6CANThE6SODkoIMETgA6SOMTgA7S4BShgwRODjpI4ASggzQ+AeggDU4ROkjg5KCDBE4AOkjjE4AO0uAUoYMETg46SOAEoIM0PgHoIA1OETpI4OSggwROADqIXgLKvxRKqamxsbEppdRevVE3Rgkhnh8MBs/s2rXr/KlTp16umgeCVBEK+3rSHWTjzk4fIqLyebPjVFwgovuYuXwLteMDgjim7ni6JAXZuGHmcU/3BBx6QxUI4riiHU+XnCA2BTkqcyHEB4ui+O1289jsBz9ePWpG9McnJYiUsrzZ+0f08TiL/D0zb3uPCQjijHEtEyUjiE0hOiTem5ycvLnT6fS2zmmzL3QQh5nBVaz1H4i+l4ju94d126tbtxdF8TQECZkF87Vb30GklLcSUVmY+8zxuBshhHhdURQvQBB3TH3MlIIgxv9S7Rq8Uuq5brf7ZnxId022/vlaLcjs7OxUlmV/Dt09iGiZmY9CkPoL2vUKrRbE8g6yrhnTsA/V+JDuHLfTCVstiJTycSI66JSY2WTPZlk2PeyWwBDEDKjv6NYK0ul0xi9duvSKb6BEVH7F5BwR/anqaybl3iBIgAwZLNlaQebn518/GAz+bsBiPVQpNd3tdldMx9nGQxBbcn7GtVaQPM8PKKX+aIjxpM5ffcM5h4ZDEJc03c/VWkGacrCqlEGQKkJhX29KHQnXGJpysKpzQZAqQmFfb0odQRCDOsB3sQxgjRgKQf4f4CFmXh2RqdFwdBAjXN6DIQgE8V50MS0IQSBITPXqfa8QBIJ4L7qYFoQgECSmevW+VwgCQbwXXUwLQhAIElO9et8rBIEg3osupgUhCASJqV697xWCQBDvRRfTghAEgsRUr973CkEgiPeii2lBCAJBYqpX73uFIBDEe9HFtCAEgSAx1av3vUIQCOK96GJaEIJAkJjq1fteIQgE8V50MS0IQSBITPXqfa8QBIJ4L7qYFoQgECSmevW+VwgCQbwXXUwLQhAIElO9et8rBIEg3osupgUhCASJqV697xWCQBDvRRfTghAEgsRUr973CkEgiPeii2lBCAJBYqpX73uFIBDEe9HFtCAEgSAx1av3vUIQCOK96GJaEIJAkJjq1fteIQgE8V50MS0IQSBITPXqfa8QBIJ4L7qYFoQgECSmevW+VwgCQbwXXUwLQhAIElO9et8rBIEg3osupgUhCASJqV697xWCQBDvRRfTghAEgsRUr973CkHCC/JVIvqOSeazLNu/sLBw3mQMYu0ISCk7RHTCZLQQ4vaiKJ42GVMVK6oCTF9vivlV+5ZS3ktE91fFbXn9JBGtMvOq4TiEGxCQUn6WiH5oMGQ9dGxs7A2Li4vPm44bFp+sIHme36mU+o1LmJgrLIHJyclXdTqdnstdJCvI7OzsRJZl/3QJE3MFJfAIM9/jegfJClKClFKWHeRO11AxXxACn2Hmn7peOXVBjD8Iuk4A5nNC4IIQ4q1FUfzDyWybJklakJmZmT27d+9+QgjxTtdgMZ9XAieZufxj5/yRtCAlzTzPP62U+plzspjQF4ELRHSAmV+sY8HkBdn4LFJeUiwvLeIRH4GcmbmubUOQDbJSyr8R0RvrAo153RMQQvyiKIpPup/5fzNCkE10pZTlv8LeVidwzO2MwDIzH3U22w4TQZAtYKSU3yKi43WDx/wjEfgCM/9gpBk0B0OQbUCVH9wHg8FxXN3SrCJ/YQ8T0beZ+UlfS0KQHUiXl4D37NlTdpL3E9H7fCUE69xA4GUi+h0RPeSra2zeAQTRqEgp5aQQ4l1KqVuIqHzepDEMIZYEhBAXB4PBmhBiLfQXQyGIZRIxLA0CECSNPOOUlgQgiCU4DEuDAARJI884pSUBCGIJDsPSIABB0shz5SnzPH9teZXu6tWrf1leXv535YBEAiBIIone6ZhSyrNKqQ8IId60EfOKUuqcEOLHzLycOB6CIIlWwLFjx97S7/efrTj+Y8z84UQRrR8bgiSafSnlX4lof9XxhRAfL4ril1VxbX0dgrQ1s0POZfibU8/1er13nDlz5kqCqNBBUky6lLL80t9h3bMPBoM7Tp8+/ZRufJvi0EHalE3Ns0gpXyCifZrhJIT4UlEU39ONb1McBGlTNjXPIqVUmqHXw2r7UQTDfXgPhyDekYdfEILo5wCC6LNqTSQE0U8lBNFn1ZpICKKfSgiiz6o1kRBEP5UQRJ9VayIhiH4qIYg+q9ZEQhD9VEIQfVatiYQg+qmEIPqsWhMJQfRTCUH0WbUmEoLopxKC6LNqTSQE0U8lBNFn1ZpICKKfSgiiz6o1kRBEP5UQRJ9VayIhiH4qIYg+q9ZEQhD9VDoXRPP/Om/d4TPM/Hb9bSPSlsDc3NwRIcQDJuOFEF8piuKMyZi2xDoXZHZ2dirLsoumgIQQTymlvmE6DvFGBA4S0QmjEUSklJrudrsrpuPaEO9ckBKKRQtvA8s2n+FQ6F9ZDwW3LkHOEtFMqENhXacE/sXME05njGiyugS5i4h+HREHbHVnAivMPJ0qoFoE2XibhRtitqOqvN0PsIm46hSkfItVvtXCI14CDzPzR+Pd/ug7r00QdJHRk9OAGd7r84aZDTjvDVuoW5CPEVGyP1vZxIQb7CnZn/rZzKhWQTa6iCSiwiAxCA1P4FfMfHf4bYTfQe2ClEecn5+/ezAYPBL+uNiBBgF0jk2QvAhSrpfneXkb5fLrCrdpJAkh/glcIKKvM/NP/C/d3BW9CXIdgZSyvLpVPiFKM+qiFOO+8oojM7/YjC01ZxfeBbl+9I0vzR0hovKJh38Cq0KIlWvXrq0sLS2t+V8+jhWDCbIZT/kFx/Hx8al+v783Dmxx7lIIcUUI8dLExMRLnU6nF+cp/O66EYL4PTJWAwF9AhBEnxUiEyQAQRJMOo6sTwCC6LNCZIIEIEiCSceR9QlAEH1WiEyQAARJMOk4sj4BCKLPCpEJEoAgCSYdR9YnAEH0WSEyQQIQJMGk48j6BCCIPitEJkgAgiSYdBxZnwAE0WeFyAQJQJAEk44j6xOAIPqsEJkgAQiSYNJxZH0CEESfFSITJABBEkw6jqxPAILos0JkggT+AwDMEDJE88DWAAAAAElFTkSuQmCC);
+ cursor: pointer;
+ content: '';
+ display: block;
+ pointer-events: auto;
+ }
+ }
+
+ > pre .code-copy-success::after {
+ content: 'Copied!';
+ display: block;
+ position: absolute;
+ z-index: 9;
+ right: -4px;
+ top: 0;
+ animation: ease-out code-copy-animation 0.2s;
+ animation-fill-mode: forwards;
+ }
+
+ @keyframes code-copy-animation {
+ 0% {
+ top: 0;
+ opacity: 0;
+ }
+
+ 100% {
+ top: -20px;
+ opacity: 1;
+ }
+ }
+
> p a,
> ul a,
> table a,
diff --git a/packages/vant-cli/site/desktop/components/DemoPlayground.vue b/packages/vant-cli/site/desktop/components/DemoPlayground.vue
index d8b8afbc0..e7d81d9ab 100644
--- a/packages/vant-cli/site/desktop/components/DemoPlayground.vue
+++ b/packages/vant-cli/site/desktop/components/DemoPlayground.vue
@@ -19,7 +19,7 @@
title="Toggle source code panel"
class="action-icon"
role="source"
- @click="toogleSource"
+ @click="toggleSource"
/>
-
+
+
-
+
+