feat(components): [select/select-v2] add end-reached event#23806
Conversation
|
👋 @ALypovskyi, seems like this is your first time contribution to element-plus. |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds a new public end-reached event ('top'|'bottom'|'left'|'right') across virtual-list and select (v1 and v2) components; wires emission from scrollbar → list → select, exposes handlers in useSelect hooks, updates docs, and adds tests covering multiple edge-scroll scenarios. Changes
Sequence Diagram(s)sequenceDiagram
participant Scrollbar
participant List
participant Select
participant Consumer
rect rgba(200,230,255,0.5)
Scrollbar->>List: detect scroll / detect edge
end
rect rgba(200,255,200,0.5)
List->>List: emit END_REACHED_EVT(direction)
end
rect rgba(255,230,200,0.5)
List->>Select: forward 'end-reached'(direction)
Select->>Consumer: component emits 'end-reached'(direction)
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
docs/en-US/component/select.md (1)
321-321: Consider adding a version marker toend-reachedin the events table.For consistency with other newly introduced API rows, adding an upcoming release marker (for example
^(x.y.z)) improves feature discoverability.Based on learnings: Documentation version markers in Markdown files under the docs directory may be updated during release preparation, even if the target version has not yet been released.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/en-US/component/select.md` at line 321, The events table row for the 'end-reached' event is missing the release/version marker used elsewhere; update the table entry for the 'end-reached' event (the row with the signature ^[Function]`(direction: 'top' | 'bottom' | 'left' | 'right') => void`) to include the upcoming-release marker in the same format as other new API rows (e.g., add `^(x.y.z)` next to the event name) so it matches the existing versioning convention for newly introduced features.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@packages/components/select/__tests__/select.test.ts`:
- Line 4488: The forEach callback currently uses an expression body that returns
a value (cleanup.forEach((fn) => fn())), which trips the Biome lint rule; change
it to a non-returning block-style callback or a simple loop so no value is
returned—e.g. replace cleanup.forEach((fn) => fn()) with cleanup.forEach((fn) =>
{ fn(); }) or with for (const fn of cleanup) { fn(); } to eliminate the returned
value from the callback.
---
Nitpick comments:
In `@docs/en-US/component/select.md`:
- Line 321: The events table row for the 'end-reached' event is missing the
release/version marker used elsewhere; update the table entry for the
'end-reached' event (the row with the signature ^[Function]`(direction: 'top' |
'bottom' | 'left' | 'right') => void`) to include the upcoming-release marker in
the same format as other new API rows (e.g., add `^(x.y.z)` next to the event
name) so it matches the existing versioning convention for newly introduced
features.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 815626f1-4937-4f8c-9026-95d5c33d4f5c
📒 Files selected for processing (5)
docs/en-US/component/select.mdpackages/components/select/__tests__/select.test.tspackages/components/select/src/select.tspackages/components/select/src/select.vuepackages/components/select/src/useSelect.ts
end-reached event forwarding
1ff8b6a to
78b8adc
Compare
end-reached event forwardingend-reached event forwarding
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (2)
packages/components/select-v2/src/defaults.ts (1)
379-379: Alignend-reachedvalidator with scrollbar contract in SelectV2.Line 379 uses
!!direction, accepting any truthy value. SelectV2'sselect-dropdown.tsxalready correctly usesscrollbarEmits['end-reached'], which validates against['left', 'right', 'top', 'bottom']. Reusing the shared validator maintains consistency across the component and ensures runtime validation matches the actual event contract.♻️ Proposed fix
+import { scrollbarEmits } from '@element-plus/components/scrollbar' import type { EmitFn } from '@element-plus/utils/vue/typescript' import type { ScrollbarDirection } from '@element-plus/components/scrollbar' @@ - 'end-reached': (direction: ScrollbarDirection) => !!direction, + 'end-reached': scrollbarEmits['end-reached'],🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/components/select-v2/src/defaults.ts` at line 379, The 'end-reached' validator in defaults.ts currently uses a loose !!direction check; replace it to reuse the scrollbar contract validator used elsewhere so it only accepts 'left'|'right'|'top'|'bottom'. Locate the 'end-reached' entry in the defaults.ts exports and change its validator to reference the same validator used by select-dropdown.tsx (scrollbarEmits['end-reached'] or the shared validator function/constant) so runtime validation matches the scrollbar contract.packages/components/virtual-list/src/builders/build-list.ts (1)
247-274: Keepstates.scrollOffsetclamped tomaxOffsetin one place.
updateScrollOffsetcurrently only applies a lower bound (>= 0). Normalizing before writing state keeps scroll state invariant and avoids transient out-of-range values.♻️ Proposed refinement
const updateScrollOffset = ( offset: number, { isScrolling, updateRequested, }: { isScrolling: boolean updateRequested: boolean } ) => { const currentState = unref(states) - const nextOffset = Math.max(offset, 0) + const nextOffset = normalizeOffset(offset) if (nextOffset === currentState.scrollOffset) { return } const scrollDir = getScrollDir(currentState.scrollOffset, nextOffset) states.value = { ...currentState, isScrolling, scrollDir, scrollOffset: nextOffset, updateRequested, } - emitEndReached(scrollDir, normalizeOffset(nextOffset)) + emitEndReached(scrollDir, nextOffset) nextTick(resetIsScrolling) }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/components/virtual-list/src/builders/build-list.ts` around lines 247 - 274, The updateScrollOffset function writes an unclamped nextOffset into states.value causing transient out-of-range scrollOffset; ensure you clamp/normalize before setting state by computing normalizedOffset = normalizeOffset(Math.max(offset, 0)) (or use existing maxOffset logic) and use normalizedOffset for all comparisons and for scrollOffset in the states.value assignment, and update the call to emitEndReached to pass normalizeOffset(normalizedOffset) or the already-normalized value so states.scrollOffset is always kept within bounds in one place; reference updateScrollOffset, states, normalizeOffset, and emitEndReached when making the change.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@packages/components/virtual-list/src/builders/build-list.ts`:
- Around line 233-241: The horizontal end-reached emission currently hardcodes
'right' for forward and 'left' for backward which is reversed in RTL; update the
emit calls to respect RTL by using _isHorizontal.value ? (_isRTL.value ? 'left'
: 'right') : 'bottom' (or analogously for start: _isHorizontal.value ?
(_isRTL.value ? 'right' : 'left') : 'top') when emitting END_REACHED_EVT so
forward/backward map correctly in RTL, apply the same change to the other
similar block (the section around lines 305-317), and add a regression test in
the virtual-list tests asserting the END_REACHED_EVT payload for horizontal RTL:
forward should emit 'left' and backward should emit 'right'.
In `@packages/components/virtual-list/src/types.ts`:
- Around line 226-227: GridExposes.states currently types xAxisScrollDir and
yAxisScrollDir as Direction while GridStates defines them as ScrollDirection;
update the GridExposes.states type so both xAxisScrollDir and yAxisScrollDir use
the ScrollDirection type (replace/align the existing Direction annotation) to
ensure the public API matches GridStates; look for the GridExposes.states
declaration and the GridStates.xAxisScrollDir / GridStates.yAxisScrollDir
symbols to make the change and run type checks.
---
Nitpick comments:
In `@packages/components/select-v2/src/defaults.ts`:
- Line 379: The 'end-reached' validator in defaults.ts currently uses a loose
!!direction check; replace it to reuse the scrollbar contract validator used
elsewhere so it only accepts 'left'|'right'|'top'|'bottom'. Locate the
'end-reached' entry in the defaults.ts exports and change its validator to
reference the same validator used by select-dropdown.tsx
(scrollbarEmits['end-reached'] or the shared validator function/constant) so
runtime validation matches the scrollbar contract.
In `@packages/components/virtual-list/src/builders/build-list.ts`:
- Around line 247-274: The updateScrollOffset function writes an unclamped
nextOffset into states.value causing transient out-of-range scrollOffset; ensure
you clamp/normalize before setting state by computing normalizedOffset =
normalizeOffset(Math.max(offset, 0)) (or use existing maxOffset logic) and use
normalizedOffset for all comparisons and for scrollOffset in the states.value
assignment, and update the call to emitEndReached to pass
normalizeOffset(normalizedOffset) or the already-normalized value so
states.scrollOffset is always kept within bounds in one place; reference
updateScrollOffset, states, normalizeOffset, and emitEndReached when making the
change.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 3a370f12-97a2-4e1a-a391-dabab1ea0a06
📒 Files selected for processing (16)
docs/en-US/component/select-v2.mddocs/en-US/component/select.mdpackages/components/select-v2/__tests__/select.test.tspackages/components/select-v2/src/defaults.tspackages/components/select-v2/src/select-dropdown.tsxpackages/components/select-v2/src/select.vuepackages/components/select-v2/src/useSelect.tspackages/components/select/__tests__/select.test.tspackages/components/select/src/select.tspackages/components/select/src/select.vuepackages/components/select/src/useSelect.tspackages/components/virtual-list/__tests__/dynamic-size-list.test.tspackages/components/virtual-list/__tests__/fixed-size-list.test.tspackages/components/virtual-list/src/builders/build-list.tspackages/components/virtual-list/src/defaults.tspackages/components/virtual-list/src/types.ts
🚧 Files skipped from review as they are similar to previous changes (2)
- packages/components/select/tests/select.test.ts
- packages/components/select/src/select.ts
There was a problem hiding this comment.
🧹 Nitpick comments (3)
packages/components/virtual-list/__tests__/fixed-size-list.test.ts (2)
184-205: Use a more specific scrollbar selector for stability.The current
.el-virtual-scrollbartarget is broad. Narrowing the target and asserting existence will make this test less fragile.Suggested selector refinement
- const track = wrapper.find('.el-virtual-scrollbar').element + const track = wrapper.find('.el-virtual-scrollbar__bar.is-vertical') + expect(track.exists()).toBe(true) const event = new MouseEvent('mousedown', { bubbles: true, cancelable: true, clientY: 100, }) - track.dispatchEvent(event) + track.element.dispatchEvent(event)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/components/virtual-list/__tests__/fixed-size-list.test.ts` around lines 184 - 205, The test "should emit end-reached when clicking scrollbar track to bottom" uses a broad selector '.el-virtual-scrollbar' which makes it fragile; update the selector to a more specific scrollbar track element (e.g., the actual track class used by the component such as '.el-virtual-scrollbar__track' or the inner track element) when calling wrapper.find, assert the found element exists (e.g., expect(found.exists()).toBe(true) or similar) before dispatching the MouseEvent, and then dispatch the event on that specific track element and keep the existing expectation that onEndReached was called with 'bottom'.
166-182: Tighten this assertion to catch duplicate emits.Right now this passes even if
end-reachedfires multiple times with'bottom'. Consider asserting call count here.Suggested assertion hardening
await makeScroll(windowRef, 'scrollTop', 2400) await nextTick() + expect(onEndReached).toHaveBeenCalledTimes(1) expect(onEndReached).toHaveBeenCalledWith('bottom')🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/components/virtual-list/__tests__/fixed-size-list.test.ts` around lines 166 - 182, The test currently only checks that onEndReached was called with 'bottom' but doesn't guard against duplicate emits; update the assertion in the "should emit end-reached when native scrolling reaches bottom" test to also assert the call count for the mock onEndReached (e.g., expect(onEndReached).toHaveBeenCalledTimes(1)) after the existing expect(onEndReached).toHaveBeenCalledWith('bottom') so duplicate emits are caught; locate the mock named onEndReached and the test body around makeScroll/windowRef in fixed-size-list.test.ts to add this assertion.packages/components/virtual-list/src/builders/build-list.ts (1)
259-261: Normalize offset in the centralized updater to enforce a single invariant.At Line 260,
nextOffsetis only clamped at the lower bound. UsingnormalizeOffset(offset)here keepsstates.scrollOffsetbounded for all call paths (including exposedscrollTo) and avoids temporary out-of-range state.♻️ Proposed tweak
- const nextOffset = Math.max(offset, 0) + const nextOffset = normalizeOffset(offset)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/components/virtual-list/src/builders/build-list.ts` around lines 259 - 261, The centralized updater currently computes nextOffset with Math.max(offset, 0) which only clamps the lower bound; update this to use normalizeOffset(offset) so states.scrollOffset is always bounded for all call paths (including scrollTo) and avoid transient out-of-range values; locate the assignment to nextOffset in build-list.ts (near currentState = unref(states)) and replace the Math.max usage with normalizeOffset, ensuring normalizeOffset is in scope/imported where used.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@packages/components/virtual-list/__tests__/fixed-size-list.test.ts`:
- Around line 184-205: The test "should emit end-reached when clicking scrollbar
track to bottom" uses a broad selector '.el-virtual-scrollbar' which makes it
fragile; update the selector to a more specific scrollbar track element (e.g.,
the actual track class used by the component such as
'.el-virtual-scrollbar__track' or the inner track element) when calling
wrapper.find, assert the found element exists (e.g.,
expect(found.exists()).toBe(true) or similar) before dispatching the MouseEvent,
and then dispatch the event on that specific track element and keep the existing
expectation that onEndReached was called with 'bottom'.
- Around line 166-182: The test currently only checks that onEndReached was
called with 'bottom' but doesn't guard against duplicate emits; update the
assertion in the "should emit end-reached when native scrolling reaches bottom"
test to also assert the call count for the mock onEndReached (e.g.,
expect(onEndReached).toHaveBeenCalledTimes(1)) after the existing
expect(onEndReached).toHaveBeenCalledWith('bottom') so duplicate emits are
caught; locate the mock named onEndReached and the test body around
makeScroll/windowRef in fixed-size-list.test.ts to add this assertion.
In `@packages/components/virtual-list/src/builders/build-list.ts`:
- Around line 259-261: The centralized updater currently computes nextOffset
with Math.max(offset, 0) which only clamps the lower bound; update this to use
normalizeOffset(offset) so states.scrollOffset is always bounded for all call
paths (including scrollTo) and avoid transient out-of-range values; locate the
assignment to nextOffset in build-list.ts (near currentState = unref(states))
and replace the Math.max usage with normalizeOffset, ensuring normalizeOffset is
in scope/imported where used.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 47032a3b-fa89-43b4-a2f4-1c3e93792e86
📒 Files selected for processing (3)
packages/components/virtual-list/__tests__/fixed-size-list.test.tspackages/components/virtual-list/src/builders/build-list.tspackages/components/virtual-list/src/types.ts
There was a problem hiding this comment.
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 `@packages/components/virtual-list/__tests__/fixed-size-list.test.ts`:
- Around line 186-208: The test is brittle because it dispatches a mousedown at
a hardcoded clientY without mocking DOM measurements; update the test to mock
the scrollbar element's getBoundingClientRect to return values that map clientY
to the bottom region, then trigger the mousedown and assert the actual scroll
offset changed to the expected maximum (use wrapper.vm.states.scrollOffset or
the component's maxOffset calculation) in addition to verifying
onEndReached('bottom'); reference the component handler clickTrackHandler and
ensure getBoundingClientRect is stubbed before dispatching the event so the
click reliably resolves to the bottom.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 5b0c1d0a-c9b1-4e63-b2e3-7125830f293e
📒 Files selected for processing (2)
packages/components/virtual-list/__tests__/dynamic-size-list.test.tspackages/components/virtual-list/__tests__/fixed-size-list.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
- packages/components/virtual-list/tests/dynamic-size-list.test.ts
commit: |
|
🧪 Playground Preview: https://element-plus.run/?pr=23806 |
02f28fa to
7681860
Compare
7681860 to
fc6de0e
Compare
|
LGTM👍. Waiting for reviewers more familiar with these components to review. |
9494f53 to
a6f833c
Compare
a6f833c to
af26513
Compare
end-reached event forwardingend-reached event
|
@ALypovskyi Thanks for your contribution! ❤️ |
…-plus#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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>
* 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]>

Please make sure these boxes are checked before submitting your PR, thank you!
devbranch.Description
This PR forwards the internal dropdown scrollbar
end-reachedevent fromel-select.Selectalready exposespopup-scroll, but it did not expose the scrollbar boundary event. With this change, consumers can listen for:and receive the same direction payload as Scrollbar:
This is useful for infinite loading when Select options are fetched from a paginated API
Summary by CodeRabbit
New Features
Documentation
Tests