Skip to content

chore: update renovate.json5 to renovate.json#24134

Merged
thinkasany merged 2 commits into
devfrom
update-renovate
Apr 25, 2026
Merged

chore: update renovate.json5 to renovate.json#24134
thinkasany merged 2 commits into
devfrom
update-renovate

Conversation

@thinkasany
Copy link
Copy Markdown
Member

@thinkasany thinkasany commented Apr 25, 2026

Summary by CodeRabbit

  • Chores
    • Added a new repository configuration for dependency update automation.
    • Removed the prior dependency automation configuration.
    • Updated editor settings to recognize and treat the repository's dependency config files with JSON-with-comments formatting for improved editing.

Copilot AI review requested due to automatic review settings April 25, 2026 13:35
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 25, 2026

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 25, 2026

📝 Walkthrough

Walkthrough

Replaces the repository's Renovate configuration by deleting .github/renovate.json5 and adding .github/renovate.json with new rules (weekly schedule, dependency label, rangeStrategy bump, peerDependency ignore, grouped devDependency patch updates, explicit ignore list). Also adds a VS Code association for **/renovate.json as jsonc.

Changes

Cohort / File(s) Summary
Renovate config files
​.github/renovate.json, ​.github/renovate.json5
Adds a new .github/renovate.json (extends config:base, weekly schedule, dependencies label, rangeStrategy: bump, disables peerDependencies updates, groups patch devDependencies, explicit ignoreDeps) and deletes the previous .github/renovate.json5.
Editor settings
.vscode/settings.json
Adds files.associations mapping to treat **/renovate.json as jsonc for editor syntax/highlight handling.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Suggested reviewers

  • btea

Poem

🐇 I hopped through files with a twitch and a grin,
.json5 gone, .json hopped boldly in.
Weekly checks, grouped patches in tow,
Peer deps skipped — tidy and slow.
A rabbit-approved bot, updating on show! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning No pull request description was provided. The template requires descriptions with explanations and references to relative issues. Add a description explaining the rationale for switching from renovate.json5 to renovate.json and reference any related issues.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: renaming the Renovate configuration file from renovate.json5 to renovate.json.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch update-renovate

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented Apr 25, 2026

Open in StackBlitz

pnpm add https://pkg.pr.new/element-plus@24134
npm i https://pkg.pr.new/element-plus@24134
yarn add https://pkg.pr.new/[email protected]

commit: 8e4ae15

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/renovate.json:
- Line 3: Update the Renovate preset in the "extends" array by replacing
"config:base" with "config:recommended" so the array becomes
["config:recommended", "schedule:weekly"]; modify the "extends" key in the
existing JSON to reflect this new preset name.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d1f665a4-bf2f-4838-b8b4-c5ab15a7ce89

📥 Commits

Reviewing files that changed from the base of the PR and between 5bb5105 and f893022.

📒 Files selected for processing (2)
  • .github/renovate.json
  • .github/renovate.json5
💤 Files with no reviewable changes (1)
  • .github/renovate.json5

Comment thread .github/renovate.json
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 25, 2026

Size Change: 0 B

Total Size: 1.48 MB

ℹ️ View Unchanged
Filename Size
dist/element-plus/dist/index.css 47.3 kB
dist/element-plus/dist/index.full.js 437 kB
dist/element-plus/dist/index.full.min.js 289 kB
dist/element-plus/dist/index.full.min.mjs 282 kB
dist/element-plus/dist/index.full.mjs 428 kB

compressed-size-action

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR migrates the Renovate configuration from JSON5 to strict JSON, keeping the same Renovate behaviors while making the config schema-valid.

Changes:

  • Remove .github/renovate.json5 and add .github/renovate.json.
  • Convert JSON5 syntax/comments to valid JSON and add the Renovate $schema reference.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
.github/renovate.json5 Removes the JSON5-based Renovate configuration.
.github/renovate.json Adds the equivalent Renovate config in strict JSON with a schema reference.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/renovate.json Outdated
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 25, 2026

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 86.2% 18522 / 21485
🔵 Statements 85.04% 19394 / 22804
🔵 Functions 84.6% 4936 / 5834
🔵 Branches 75.62% 10786 / 14263
File CoverageNo changed files found.
Generated in workflow #2592 for commit 8e4ae15 by the Vitest Coverage Report Action

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 25, 2026

🧪 Playground Preview: https://element-plus.run/?pr=24134
Please comment the example via this playground if needed.

@btea
Copy link
Copy Markdown
Member

btea commented Apr 25, 2026

Why change json5 to json? json5 supports comments, which makes it more convenient.

@thinkasany
Copy link
Copy Markdown
Member Author

thinkasany commented Apr 25, 2026

Why change json5 to json? json5 supports comments, which makes it more convenient.

https://docs.renovatebot.com/configuration-options/
看起来是支持的。
image

理论上是没问题的,我在里面也加上了注释。 是否允许尝试,如果有任何问题,我将回滚至 json5.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/renovate.json:
- Around line 18-33: The renovate.json contains JavaScript-style comments inside
the "ignoreDeps" array (the // comments adjacent to "node", "chalk", "cypress",
"jsdom", "vitest", "unocss") which makes the file invalid JSON; remove all `//
...` comment lines so "ignoreDeps" is a plain JSON array of strings (or convert
the file to JSONC if comments are required) and validate the file parses with a
JSON parser (e.g., jq) to ensure the "ignoreDeps" array contains only string
entries.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a0aa504e-4aad-4868-aaa1-8e6b59cf81e0

📥 Commits

Reviewing files that changed from the base of the PR and between f893022 and 8e4ae15.

📒 Files selected for processing (2)
  • .github/renovate.json
  • .vscode/settings.json
✅ Files skipped from review due to trivial changes (1)
  • .vscode/settings.json

Comment thread .github/renovate.json
@thinkasany thinkasany requested a review from btea April 25, 2026 14:25
@thinkasany thinkasany merged commit 8f13c69 into dev Apr 25, 2026
17 checks passed
@thinkasany thinkasany deleted the update-renovate branch April 25, 2026 14:38
@github-actions
Copy link
Copy Markdown
Contributor

@thinkasany Thanks for your contribution! ❤️

@element-bot element-bot mentioned this pull request May 8, 2026
3 tasks
btea added a commit that referenced this pull request May 8, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 18, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 18, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 18, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 18, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 18, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 18, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 18, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 18, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 18, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 18, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 18, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 19, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 19, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 19, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 19, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 19, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 19, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 19, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 19, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
github-actions Bot added a commit that referenced this pull request May 19, 2026
* fix(deps): update dependency @docsearch/css to v4 (#24000)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @docsearch/js to v4 (#24001)

* fix(deps): update dependency @docsearch/js to v4

* fix: update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm/action-setup action to v6 (#24027)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-router to v5 (#24028)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(components): [date-picker] add `singlePanel` for range-picker (#19498)

* feat: add single panel for range picker

feat: enable single panel for all ranges

test: date-picker single panel

chore: add single-panel doc

chore: refine scss declaration

chore: typo & bump version

chore: fix lint

ci: test

* chore: update

* chore: tweak

* chore: format

* chore: update demo

---------

Co-authored-by: btea <[email protected]>

* docs(components): [datetime-picker] update `show-week-number` type (#24029)

docs: update `show-week-number` type

* fix(deps): update dependency typescript to v6 (#24026)

* fix(deps): update dependency typescript to v6

* fix: bump

* fix: update lock

* fix: rm

* fix: up

* fix: rm

* fix: up

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(components): remove console noises from failed form validation (#23663)

* refactor(components): remove console noises from failed form validation

* chore: update

---------

Co-authored-by: btea <[email protected]>

* refactor(components): [select/v2] remove the unnecessary `computed` (#24058)

refactor(components): [select/v2] replace computed with 3 expression

* fix(components): [message] missing content wrapper in VNode message (#23352)

fix(components): [message] Fix body style for vNode message

closed #23351

Co-authored-by: Roman Karavia <[email protected]>

* feat(components): [input-number] add `tabindex` prop (#23582)

* feat(components): [tree/tree-v2/tree-select] setChecked supports deep check (#23591)

* feat(components): [tree, tree-v2, tree-select] add ignoreCheckStrictly

Add a new parameter `ignoreCheckStrictly` to the `setChecked` method, which allows
recursively setting the checked state of child nodes even when `check-strictly` is enabled.

Closes #23511

* fix: setChecked

* fix: [tree] don't check parent node on checkStrictly

* test: stricter assertions

* docs: update description

* docs: sync

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: rzzf <[email protected]>

* feat(components): [input-otp] new component (#23634)

* feat(components): [input-otp] new component

* chore: cleanup

* feat: add ariaLabel a18n

* fix: paste numbers

* style: apply coderabbit suggest

* chore: fix typo

* style: fix empty size style

* fix: add length clamp

* fix: delete

* fix: update

* fix: change event

* fix: udpate

* test: update

* style: remove unsed var

* fix: delete index

* fix: deleted focus current input

* style: add error status

* fix: should update when length changes

* Update packages/components/input-otp/src/input-otp.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: validate change

* refactor: update input event payload

* refactor: using validate replace type

* docs: update

* docs: add overview icon

* docs: update icon

* fix: handleFocus is stuck in an infinite loop

* feat: add focus and blur event

* refactor: rename variant to type

* feat: expose inputRefs

* fix: input event paramater

* docs: update expose

* refactor: update events logic

* refactor: remove attrs

* fix: update

* fix: readonly

* refactor: rename validate to validator

* Update packages/locale/lang/zh-cn.ts

Co-authored-by: btea <[email protected]>

* chore: update locale

* feat: add separator prop and slot

* docs: fix typo

* feat: add `mask` prop

* fix: avoid rendering empty placeholders caused by empty slots or empty strings

* test: fix case

* docs: fix typo

* fix: unblock input when focus stays unchanged after delete

* refactor: apply suggestions

Co-authored-by: keeplearning66 <[email protected]>

* feat: support autofill and focus / blur methods

* chore: cleanup

* refactor: optimize code

* refactor: remove the length limitation and refactor inputRefs

* Update docs/examples/input-otp/sizes.vue

Co-authored-by: micaiguai <[email protected]>

* chore: revert useTemplateRef

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: btea <[email protected]>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>

* fix(style): [form-item] remove trailing inline margin (#23671)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity (#24064)

* fix(components): [virtual-list] `scrollbar-always-on` loses reactivity

* refactor: remove unused scrollbarAlwaysOn

* refactor: apply codex suggest

* revert: select-v2

* ci: upgrade minor action (#24034)

Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite to v8 (#24039)

* chore(deps): update dependency vite to v8

* fix: type error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dependency vite-plugin-inspect to v11 (#24014)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14 (#23930)

* chore(deps): update dependency @vueuse/core to v14

* fix: type

* fix: type

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* refactor(types): import MaybeRef from vue instead of @vueuse/core (#24068)

chore: import `MayberRef` from vue

* chore(deps): update dependency unplugin-vue-components to v32 (#24038)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): revert update dependency vite-plugin-inspect to v11 (#24069)

Revert "chore(deps): update dependency vite-plugin-inspect to v11 (#24014)"

This reverts commit 957176d.

* chore: update the value of `moduleResolution` to `bundler` (#24070)

* chore(play): replace `esbuild` with `oxc` (#24071)

* fix(components): [input] prevent layout shift when toggling clear icon (#23661)

* fix(components): [input] prevent layout shift when toggling clear icon

* chore: deplace clear icon

* refactor(element-plus): remove `el-teleport` (#23219)

* fix(components): affix

change v-if to disabled prop

* refactor(components): [teleport] remove

* chore(element-plus): update peerDependencies vue version

* chore(element-plus): update pnpm-lock.yaml

* refactor(components): [teleport] remove

* feat(components): [input-number] add formatter and parser props (#23271)

* feat(components): [input-number] add `formatter` and `parser` props

* refactor: update

* Update docs/en-US/component/input-number.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: update

* docs: update version tag

* docs: apply coderabbit suggest

* docs: sync jsdoc

* docs: add desc

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: disable the leave transition of the version tag to prevent layout shifting (#24077)

* feat(components): [select/select-v2] add `end-reached` event (#23806)

* feat(components): [select] Add end-reached event forwarding

Forward the scrollbar end-reached event from Select so consumers
can react when the dropdown reaches a scroll boundary.

- Add the Select end-reached emit and wire it to the dropdown
  scrollbar
- Cover the new event with a Select unit test
- Document the event in the Select events table

* test(components): [select] Fix cleanup callbacks for lint compliance

* docs(components): [select] Add missing version tag

* feat(components): [select-v2] Implenent end-reached event support

Forward the virtual list end-reached event from SelectV2 so consumers can react when the dropdown
reaches a scroll boundary.

* fix(components): [virtual-list] correct rtl end-reached direction

Fix horizontal end-reached payloads in RTL mode so boundary events match the visual scroll
direction.

* refactor(types): [virtual-list] use scroll dir types

* test(components): [virtual-list] improve end-reached coverage

* test(components): [virtual-list] harden scrollbar track click test

Stub getBoundingClientRect on the track element so clickTrackHandler resolves the click position
from known values instead of relying on jsdom's default zeros. Derive clientY from the mocked rect
and assert the resulting scrollOffset equals maxOffset (2400).

* refactor(components): [select-v2] Reuse shared emit and scroll types

* docs(components): [select/v2] bump end-reached version badge to 2.13.7

* refactor(types): [select-v2] simplify virtual-list state typing

Explicitly type `scrollDir` so the rest of the list state can be inferred without the extra
`ListState` type

* fix(components): [virtual-list] precision tolerance in edge detection

Use the shared numeric tolerance helper when checking list edges so small browser precision
differences do not prevent start/end detection

* fix(components): [virtual-list] apply edge tolerance to wheel guards

Reuse the normalized edge-state check for `useWheel` start/end guards so offsets within the accepted
precision range are treated as already at the boundary

* fix(components): [virtual-list] prevent duplicate end-reached

Browsers round scrollTop to sub-pixel boundaries (e.g. 0.5px at DPR=2, 0.8px at DPR=1.25). When
onUpdated sets scrollTop programmatically, the browser may clamp it below our computed maxOffset.
The resulting native scroll event resets both edgeState and the useWheel guard, allowing the next
wheel event to emit end-reached a second time. Increase EDGE_TOLERANCE from the default 0.03 to 1 so
getEdgeState absorbs the rounding gap on all common device-pixel-ratios.

* Update docs/en-US/component/select-v2.md

Co-authored-by: btea <[email protected]>

* docs(components): [select] bump end-reached version badge to 2.14.0

* refactor(components): [virtual-list] use clamp for offset normalization

* refactor(components): [virtual-list] reuse computed edge state

* refactor(components): [virtual-list] convert edgeState to plain variable

---------

Co-authored-by: thinkasany <[email protected]>
Co-authored-by: btea <[email protected]>

* refactor(components): [menu-item] set index attribute to required (#20453)

* refactor(components): [menu] remove `ts-nocheck` and optimize code

* fix: ci

* fix: index is required

* revert: revert css

* fix: ci

* chore: revert

* chore:  remove unnecessary line in resize callback logic

* fix(components): type error

* chore: cleanup

* fix: enhance menu-item prop validation

* refactor(components): remove unused prop validation for 'index'

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency unplugin-icons to v23 (#24035)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] avoid border flicker while resizing (#24078)

* fix(components): [input] avoid border flicker while resizing

* fix: update

* fix: update

* fix: update

* chore: format

* fix: resolve #21836

* fix: resolve autosize

* fix: update

* improvement(components): [select] improve emits type (#24074)

* improvement(components): [select] improve emits type

* chore: update

* fix(components): [segmented] incorrect bg position after update options (#24101)

* fix(components): [segmented] incorrect bg position after update options

* fix: update

* test(components): [segmented] improve test case stability (#24110)

* feat(components): [autocomplete] add `popper-options` and `show-arrow` props (#24109)

* docs: keep breakpoints consistent (#24060)

* refactor(components): [cascader] replace `defineSlots` with `useSlots` (#24114)

* fix(dts): some type declarations in tree-v2 are missing (#24116)

fix: some type declarations in tree-v2 are missing

* feat(components): [cascader] support `virtual-scroll` & `fitInputWidth` & `height` & `item-size` (#23877)

* feat(components): [cascader-panel] support virtual scroll

* refactor: fix nitpick

* fix: suggestion-item slot width & add test

* refactor: extraction function

* refactor: fix empty style

* feat: add `fitInputWidth` prop

* fix: Nitpick

* fix: style issue & kebab-case

* fix: calc width & style issue

* fix: undo class

* refactor: simpify code

* fix: skip disabled nodes in virtual nav & add test

* refactor: adjust code

* refactor: adjust code

* Update docs/en-US/component/cascader.md

Co-authored-by: btea <[email protected]>

* Update cascader.md

* refactor: getActiveNodeIndex

* refactor: getSuggestionPanelEl

* refactor: handleSuggestionKeyDown

* chore: improve the template structure to preserve Git history

* refactor: cleanup

---------

Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: btea <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] prevent stale height callbacks (#24118)

* feat(components): [message-box] pass action-handlers to vnode (#23901)

Co-authored-by: rzzf <[email protected]>

* chore(deps): separate Renovate patch grouping by dependency (#24119)

* chore(deps): separate Renovate patch grouping by dependency

* Update .github/renovate.json5

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: btea <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(deps): update pnpm to v10.33.2 (#24122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update commitlint monorepo (#24123)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript to ~6.0.3 (#24125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency globals to ^17.5.0 (#24133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency components-helper to ^2.2.0 (#24127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency @types/lodash to ^4.17.24 (#24126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency eslint-plugin-prettier to ^5.5.5 (#24124)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency prettier to ^3.8.3 (#24129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(deps): update dependency typescript-eslint to ^8.59.0 (#24130)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [select] correctly display selected labels after `options` change (#24036)

* fix(components): [select] preserve selected label on remote search

* test(components): [select] preserve selected label on remote search

* fix(components): [select] use latest object label in getOption

* fix(components): [select] rebuild fallback option in getOption

* test(components): [select] fix remote label regression coverage

* Merge branch 'dev' into fix/select-remote-search-label

* chore(deps): update dependency puppeteer to ^24.42.0 (#24135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.7 (#24137)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies (#24136)

* chore(deps): update all patch devdependencies

* chore(deps): update all patch devdependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: update renovate.json5 to renovate.json (#24134)

* chore: update renovate.json5 to renovate.json

* fix: update

* fix(deps): update dependency markdown-it to ^14.1.1 (#24138)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency tinyglobby to ^0.2.16 (#24139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0 (#24128)

* fix(deps): update dependency eslint-plugin-vue to ^10.9.0

* chore: add vue-eslint-parser dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: rzzf <[email protected]>

* fix(components): [table] parent-child selection mismatch in tree data (#23596)

* fix(components): [table] parent-child selection mismatch in tree data

* test: add test

* docs: add one more children to check indeterminate

* fix: add watch checkStrictly change

* fix: simpify code

* feat: add lazy support

* test: add lazy tree selection linkage test case

* perf: fix some potential issues

* chore: refactor implementation & tests

* chore: handle lazy selections on expand lazy row

* refactor: remove duplicated code

* refactor: simpify

* refactor: logic

* refactor: code

* fix: remove lazy children from selection when parent deleted

* perf: optimize tree selection cascade and cache rowIndexMap

* use spread operator

---------

Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: btea <[email protected]>

* chore(deps): update vitest to ^4.1.5 (#24142)

* chore: update ts configuration (#24141)

* chore(deps): update dependency @crowdin/cli to ^4.14.2 (#24143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency happy-dom to ^20.9.0 (#24144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore: restore Vitest update rules (#24145)

* chore: renovate use semanticCommitTypeAll(chore) (#24146)

* chore(deps): update dependency dayjs to ^1.11.20 (#24149)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass-embedded to ^1.99.0 (#24150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update lodash monorepo to ^4.18.1 (#24151)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [input] incorrect positioning of icon and count when resizing `textarea` (#24115)

* fix(components): [textarea] incorrect positioning of icon and count during resizing

* fix: update

* fix: use rAF

* fix: update

* fix: count pos incorrect

* fix: apply cr review

* revert: input.scss

* fix: update

* refactor: remove `isFirstObserve`

* chore: renovate rebase when conflicted (#24153)

* chore(deps): disable update dependencies (#24156)

* chore(deps): disable update dependencies

* chore: apply review

* chore(deps): `@floating-ui/dom` use catalog protocol (#24162)

* chore(deps): `@popperjs/core` use catalog ptotocol (#24163)

* chore(deps): `@popperjs/core` use catalog ptotocol

* chore: format

---------

Co-authored-by: rzzf <[email protected]>

* chore(deps): update dependency cz-git to ^1.13.0 (#24168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency czg to ^1.13.0 (#24169)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* improvement(utils): add generics component support to setPropsDefaults (#24161)

* improvement(utils): add generics component support to setPropsDefaults

* chore: update lockfile

* refactor: improve type

* feat(components): style properties support Boolean values (#24165)

* feat(components): style properties support Boolean values

fix #24102

* chore: apply cr review

* chore: apply cr review

* Update packages/components/input/src/input.ts

* Update packages/components/popper/src/content.ts

* Update packages/components/table/src/table/defaults.ts

* fix(components): [dialog] incorrect boundary when resizing the window (#24172)

* fix(components): [dialog] incorrect boundary when resizing the window

fix #24166

* fix: update

* improvement(utils): object properties types (#24173)

* improvement(utils): object properties types

* chore: update

* chore: add comment

* chore(deps): update dependency lightningcss to ^1.32.0 (#24159)

* chore(deps): update dependency lightningcss to ^1.32.0

* ci: rerun

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update dawidd6/action-download-artifact action to v21 (#24176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @vueuse/core to v14.3.0 (#24186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint to ^10.3.0 (#24187)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update all patch devdependencies to ^20.5.3 (#24185)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* chore(deps): update pnpm to v10.33.3 (#24192)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency vue-component-type-helpers to ^3.2.8 (#24191)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>

* fix(components): [splitter] expand panel with initial zero size (#24200)

* fix(components): [splitter] expand panel with initial zero size

* fix: apply cr suggests

* fix(build): generate correct DTS for all non-entry files (#24179)

* chore: Update changelog 2.14.0 (#24204)

chore: update changelog 2.14.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: thinkasany <[email protected]>
Co-authored-by: Noblet Ouways <[email protected]>
Co-authored-by: Mason <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: Roman Karavia <[email protected]>
Co-authored-by: rzzf <[email protected]>
Co-authored-by: leihaohao <[email protected]>
Co-authored-by: Dsaquel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: keeplearning66 <[email protected]>
Co-authored-by: micaiguai <[email protected]>
Co-authored-by: Artem Lypovyi <[email protected]>
Co-authored-by: jiaxiang <[email protected]>
Co-authored-by: 知晓同丶 <[email protected]>
Co-authored-by: zhixiaotong <[email protected]>
Co-authored-by: xingyixiang <[email protected]>
Co-authored-by: lostElk <[email protected]>
Co-authored-by: Element <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants