{{ sponsor.sponsoredBy }}
diff --git a/.github/workflows/lint-commit-message.yml b/.github/workflows/lint-commit-message.yml
index fdb3e5f440..95e66baab5 100644
--- a/.github/workflows/lint-commit-message.yml
+++ b/.github/workflows/lint-commit-message.yml
@@ -20,16 +20,16 @@ jobs:
uses: pnpm/action-setup@v4
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
- node-version: 18
+ node-version: 20
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
diff --git a/.github/workflows/pr-docs-build.yml b/.github/workflows/pr-docs-build.yml
index e6409fc85a..a306b03dce 100644
--- a/.github/workflows/pr-docs-build.yml
+++ b/.github/workflows/pr-docs-build.yml
@@ -13,13 +13,11 @@ jobs:
strategy:
matrix:
- node-version: [18]
+ node-version: [20]
os: [ubuntu-latest, windows-latest]
include:
- - node-version: 18
+ - node-version: 20
node-name: LTS
- # - node-version: 18
- # node-name: Current
fail-fast: false
@@ -34,7 +32,7 @@ jobs:
uses: pnpm/action-setup@v4
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
@@ -44,7 +42,7 @@ jobs:
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
echo "pnpm_cache_dir=$(pnpm store path)" >> $env:GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
diff --git a/.github/workflows/publish-build-product.yml b/.github/workflows/publish-build-product.yml
index e0b6571b7e..cc8c8dd850 100644
--- a/.github/workflows/publish-build-product.yml
+++ b/.github/workflows/publish-build-product.yml
@@ -23,16 +23,16 @@ jobs:
uses: pnpm/action-setup@v4
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
- node-version: 18
+ node-version: 20
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
diff --git a/.github/workflows/publish-docs-deploy-manual.yml b/.github/workflows/publish-docs-deploy-manual.yml
index c0f2c35ce5..d4ff432c71 100644
--- a/.github/workflows/publish-docs-deploy-manual.yml
+++ b/.github/workflows/publish-docs-deploy-manual.yml
@@ -14,16 +14,16 @@ jobs:
uses: pnpm/action-setup@v4
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
- node-version: 18
+ node-version: 20
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
diff --git a/.github/workflows/publish-docs-deploy.yml b/.github/workflows/publish-docs-deploy.yml
index da56032eeb..a8d0fa81db 100644
--- a/.github/workflows/publish-docs-deploy.yml
+++ b/.github/workflows/publish-docs-deploy.yml
@@ -21,16 +21,16 @@ jobs:
uses: pnpm/action-setup@v4
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
- node-version: 18
+ node-version: 20
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
diff --git a/.github/workflows/publish-npm-nightly.yml b/.github/workflows/publish-npm-nightly.yml
index adfd172c96..3061e93666 100644
--- a/.github/workflows/publish-npm-nightly.yml
+++ b/.github/workflows/publish-npm-nightly.yml
@@ -20,16 +20,16 @@ jobs:
uses: pnpm/action-setup@v4
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
- node-version: 18
+ node-version: 20
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
@@ -56,9 +56,9 @@ jobs:
steps:
- uses: actions/checkout@v4
- - uses: actions/setup-node@v3
+ - uses: actions/setup-node@v4
with:
- node-version: '18'
+ node-version: 20
registry-url: https://registry.npmjs.com/
- name: Setup pnpm
diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml
index 2ff6e83354..f38122b193 100644
--- a/.github/workflows/publish-npm.yml
+++ b/.github/workflows/publish-npm.yml
@@ -19,9 +19,9 @@ jobs:
uses: pnpm/action-setup@v4
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
- node-version: 18
+ node-version: 20
registry-url: https://registry.npmjs.com/
- name: Get pnpm store directory
@@ -29,7 +29,7 @@ jobs:
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
@@ -55,9 +55,9 @@ jobs:
steps:
- uses: actions/checkout@v4
- - uses: actions/setup-node@v3
+ - uses: actions/setup-node@v4
with:
- node-version: 18
+ node-version: 20
registry-url: https://registry.npmjs.com/
- name: Setup pnpm
diff --git a/.github/workflows/publish-pr-commit-pkg.yml b/.github/workflows/publish-pr-commit-pkg.yml
index 0cbb680b11..a150316f17 100644
--- a/.github/workflows/publish-pr-commit-pkg.yml
+++ b/.github/workflows/publish-pr-commit-pkg.yml
@@ -21,7 +21,7 @@ jobs:
- run: corepack enable
- uses: actions/setup-node@v4
with:
- node-version: 18
+ node-version: 20
cache: 'pnpm'
- name: Setup pnpm
diff --git a/.github/workflows/publish-size-report.yml b/.github/workflows/publish-size-report.yml
index 4e177017ff..4f15ccc015 100644
--- a/.github/workflows/publish-size-report.yml
+++ b/.github/workflows/publish-size-report.yml
@@ -20,16 +20,16 @@ jobs:
uses: pnpm/action-setup@v4
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
- node-version: 18
+ node-version: 20
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
diff --git a/.github/workflows/staging-docs.yml b/.github/workflows/staging-docs.yml
index 55a136e393..6f8e51450b 100644
--- a/.github/workflows/staging-docs.yml
+++ b/.github/workflows/staging-docs.yml
@@ -23,16 +23,16 @@ jobs:
uses: pnpm/action-setup@v4
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
- node-version: 18
+ node-version: 20
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
diff --git a/.github/workflows/test-coverage.yml b/.github/workflows/test-coverage.yml
index 4a59a078ac..d99ed94ead 100644
--- a/.github/workflows/test-coverage.yml
+++ b/.github/workflows/test-coverage.yml
@@ -25,16 +25,16 @@ jobs:
uses: pnpm/action-setup@v4
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
- node-version: 18
+ node-version: 20
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
diff --git a/.github/workflows/test-ssr.yml b/.github/workflows/test-ssr.yml
index 0c708c8d07..2103c7c7bd 100644
--- a/.github/workflows/test-ssr.yml
+++ b/.github/workflows/test-ssr.yml
@@ -23,16 +23,16 @@ jobs:
uses: pnpm/action-setup@v4
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
- node-version: 18
+ node-version: 20
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
diff --git a/.github/workflows/test-unit.yml b/.github/workflows/test-unit.yml
index 87c87c6904..eedd0d1242 100644
--- a/.github/workflows/test-unit.yml
+++ b/.github/workflows/test-unit.yml
@@ -25,16 +25,16 @@ jobs:
uses: pnpm/action-setup@v4
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
- node-version: 18
+ node-version: 20
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
@@ -57,12 +57,12 @@ jobs:
strategy:
matrix:
- node-version: [18, 20]
+ node-version: [20, 22]
include:
- - node-version: 18
- node-name: LTS
- node-version: 20
- node-name: LTS-20
+ node-name: LTS
+ - node-version: 22
+ node-name: Current
steps:
- uses: actions/checkout@v4
@@ -71,7 +71,7 @@ jobs:
uses: pnpm/action-setup@v4
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
@@ -80,7 +80,7 @@ jobs:
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md
index e948225f0c..4f368e26d5 100644
--- a/CHANGELOG.en-US.md
+++ b/CHANGELOG.en-US.md
@@ -1,5 +1,49 @@
## Changelog
+### 2.8.6
+
+_2024-10-18_
+
+#### Features
+
+- Components [input] show pwd visible icon when the input is readonly (#18458 by @LoTwT)
+
+#### Bug fixes
+
+- Components [dropdown-item] remove redundant attributes (#18340 by @betavs)
+- Components [select-v2] data echo abnormality (#18334 by @betavs)
+- Components [segmented] no option to not render (#18509 by @btea)
+- Progress bar get stuck when navigating between routes (#18586 by @makedopamine)
+- Revert(components): [table-v2] #18179 & fix header checkbox z-index (#18554 by @warmthsea)
+
+### 2.8.5
+
+_2024-10-11_
+
+#### Features
+
+- I18n update germany translations (#18447 by @MaikoTan)
+- Components [mention] explicit export dropdownVisible (#18460 by @SorrowX)
+- Components [select & select-v2] explicit export `selectedLabel` (#18350 by @warmthsea)
+
+#### Bug fixes
+
+- Play dayjs cahce miss (#18381 by @makedopamine)
+- Theme-chalk upgrade SASS version and fix deprecated color function (#18376 by @lvzhenbo)
+- Components [transfer] render the option's label correctly when there's only an empty comment in the default slot (#18416 by @LoTwT)
+- Components [table] cancel layout update when component unmount (#18440 by @btea)
+- Hooks [lockscreen] compatible with document non-existence (#18445 by @btea)
+- Components [mention] native event triggered twice (#18453 by @SorrowX)
+- Components [select] use `blur` in the tooltip slot has no effect (#18335 by @warmthsea)
+- Hooks rendering multiple popper container DOM in SSR/SSG (#18482 by @tolking)
+- Components [select] the blur not triggered when click the outside (#18478 by @tolking)
+- Components [table] the last column shuld not allow drag (#18444 by @btea)
+
+#### Refactors
+
+- Components [badge] show-zero implement (#18360 by @warmthsea)
+- Docs remove Vite (#18383 by @makedopamine)
+
### 2.8.4
_2024-09-27_
diff --git a/README.md b/README.md
index 2b1264106a..c0008bf1b9 100644
--- a/README.md
+++ b/README.md
@@ -105,6 +105,11 @@ You can also try Element Plus out with the components built-in playground.
+
diff --git a/docs/.vitepress/config/sponsors.ts b/docs/.vitepress/config/sponsors.ts
index e9bed6f677..ef3b1c5a29 100644
--- a/docs/.vitepress/config/sponsors.ts
+++ b/docs/.vitepress/config/sponsors.ts
@@ -29,6 +29,14 @@ export const rightLogoSmallSponsors = [
slogan: 'Fast and elegant low-code dev platform',
slogan_cn: '快速且优雅的低代码平台',
},
+ {
+ name: 'Fantastic-admin',
+ img: '/images/sponsors/fantastic-admin.png',
+ imgL: '/images/sponsors/fantastic-admin-l.png',
+ url: 'https://fantastic-admin.github.io/',
+ slogan: 'Out-of-the-box Vue3 management system framework',
+ slogan_cn: '一款开箱即用的 Vue3 中后台管理系统框架',
+ },
{
name: 'bit',
img: '/images/bit.svg',
diff --git a/docs/.vitepress/config/vite.ts b/docs/.vitepress/config/vite.ts
index 924682ba18..7906075805 100644
--- a/docs/.vitepress/config/vite.ts
+++ b/docs/.vitepress/config/vite.ts
@@ -43,20 +43,27 @@ const alias: AliasOptions = [
...(process.env.DOC_ENV === 'production'
? []
: [
- {
- find: /^element-plus(\/(es|lib))?$/,
- replacement: path.resolve(projRoot, 'packages/element-plus/index.ts'),
- },
- {
- find: /^element-plus\/(es|lib)\/(.*)$/,
- replacement: `${path.resolve(projRoot, 'packages')}/$2`,
- },
- ]),
+ {
+ find: /^element-plus(\/(es|lib))?$/,
+ replacement: path.resolve(projRoot, 'packages/element-plus/index.ts'),
+ },
+ {
+ find: /^element-plus\/(es|lib)\/(.*)$/,
+ replacement: `${path.resolve(projRoot, 'packages')}/$2`,
+ },
+ ]),
]
export const getViteConfig = ({ mode }: { mode: string }): ViteConfig => {
const env = loadEnv(mode, process.cwd(), '')
return {
+ css: {
+ preprocessorOptions: {
+ scss: {
+ silenceDeprecations: ['legacy-js-api'],
+ },
+ },
+ },
server: {
host: true,
fs: {
diff --git a/docs/.vitepress/lang.js b/docs/.vitepress/lang.js
index 11c385cefd..e4cfefddd4 100644
--- a/docs/.vitepress/lang.js
+++ b/docs/.vitepress/lang.js
@@ -2,18 +2,15 @@
const supportedLangs = window.supportedLangs
const cacheKey = 'preferred_lang'
const defaultLang = 'en-US'
- // docs supported languages
- const langAlias = {
- en: 'en-US',
- fr: 'fr-FR',
- es: 'es-ES',
+ const handleNavigatorLang = (navLang) => {
+ const { language, region } = new Intl.Locale(navLang).maximize()
+ return `${language}-${region}`
}
- let userPreferredLang = localStorage.getItem(cacheKey) || navigator.language
- const language =
- langAlias[userPreferredLang] ||
- (supportedLangs.includes(userPreferredLang)
- ? userPreferredLang
- : defaultLang)
+ let userPreferredLang =
+ localStorage.getItem(cacheKey) || handleNavigatorLang(navigator.language)
+ const language = supportedLangs.includes(userPreferredLang)
+ ? userPreferredLang
+ : defaultLang
localStorage.setItem(cacheKey, language)
userPreferredLang = language
if (!location.pathname.startsWith(`/${userPreferredLang}`)) {
diff --git a/docs/.vitepress/vitepress/components/home/svg/guide-svg.vue b/docs/.vitepress/vitepress/components/home/svg/guide-svg.vue
index 0f6f2c32ab..191ece001d 100644
--- a/docs/.vitepress/vitepress/components/home/svg/guide-svg.vue
+++ b/docs/.vitepress/vitepress/components/home/svg/guide-svg.vue
@@ -13,10 +13,6 @@
d="M53 19C53 16.7909 54.7909 15 57 15H96L106.054 26.8815C106.665 27.6037 107 28.5191 107 29.4652V61C107 63.2091 105.209 65 103 65H57C54.7909 65 53 63.2091 53 61V19Z"
fill="var(--guide-c-1)"
/>
-