* 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` (
Please make sure these boxes are checked before submitting your PR, thank you!
devbranch.@vitest/ui and vitest versions are not synchronized. #24136 @vitest/ui was updated, but vitest was not updated, I don't know why.
Summary by CodeRabbit