Commit Graph

4628 Commits

Author SHA1 Message Date
rzzf
0c5f7b2b84 refactor(components): [segmented] make component generic 2026-02-22 20:35:49 +08:00
Dsaquel
f0305685db chore: add vue-component-type-helpers to dep 2026-02-22 20:18:18 +08:00
rzzf
be0b56574e fix(components): [table-v2] navigation back triggered by trackpad scrolling (#23673)
* fix(components): [table-v2] navigation back triggered by trackpad scrolling

* fix: apply coderabbit suggest

* fix: simplify the code
2026-02-20 21:59:06 +01:00
E66
e53399fae4 fix(components): [select/select-v2] prevent empty input from causing unnecessary line breaks (#23394)
* fix(components): [select] prevent empty input from taking space

* fix(components): [select-v2] prevent empty input from taking space

* test(components): Supplement related test cases

* test: update test case
2026-02-19 21:46:17 +08:00
Noblet Ouways
83365c8fad fix(components): [badge] dot becomes rectangle on transition leave (#23667)
* fix(components): [badge] dot becomes rectangle on transition leave

closed #11166

* fix: build

* perf: use v-if instead of v-show

thanks rzzf for the tip

Co-authored-by: rzzf <cszhjh@gmail.com>

* test: fix test

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
2026-02-18 21:24:41 +08:00
mortis.yi
e53956863a fix(components): [tree-select] emit change when toggling node labels (#22863)
* fix(components): [tree-select] emit change when toggling node labels

closed #22862

* fix(components): [tree-select] avoid double change on checkbox

closed #22862

* refactor(components): [tree-select] extract update helper

closed #22862

---------

Co-authored-by: alex.yang <alex.yang@hytechc.com>
Co-authored-by: 云游君 <me@yunyoujun.cn>
2026-02-18 00:35:09 +01:00
E66
fdea0ddff0 fix(components): [autocomplete] reset ignoreFocusEvent on outside click (#23513)
* fix(components): [autocomplete] reset ignoreFocusEvent on outside click

* Update autocomplete.vue

* Update autocomplete.vue

* Update autocomplete.vue

* Update autocomplete.vue
2026-02-17 21:36:39 +01:00
E66
0192470da6 fix(components): [color-picker] add colorFormat prop validation (#23587)
* feat(components): [color-picker] add type hints for colorFormat prop

* feat(components): [color-picker] add type hints for colorFormat prop

* docs: align color-format type with ColorFormats
2026-02-15 13:51:57 +01:00
rzzf
de984256ab feat(utils): add setPropsDefaults method (#23612)
* feat(components): add `setPropsDefaults` method

* chore: cleanup

* test: add test

* docs: add Custom Defaults

* fix: apply coderabbit suggest

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

* feat: support array props

* chore: fix type error

* refactor: use fromPairs replace zipObject

* fix: correct type

* refactor: apply coderabbit suggest

* docs: detail tip

* docs: add warning

* Update docs/en-US/guide/custom-defaults.md

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

* chore: revert main.ts

* docs: update

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-02-14 13:37:05 +01:00
lostElk
2b1ab441e3 feat(components): [select/select-v2] add tag-tooltip config object prop (#23556)
* feat(components): [select] add collapseTagsTooltipAppendTo & test

Add collapseTagsTooltipAppendTo prop to control where the collapse-tags tooltip is appended. Wire it
to the tag tooltip with fallback to appendTo. Add unit test to verify prop is passed correctly.

* docs(docs): add collapseTagsTooltipAppendTo doc

* refactor(components): [select]rename collapseTagsTooltipAppendTo prop

Rename collapseTagsTooltipAppendTo to tooltipAppendTo
Simplify the prop name by removing redundant context
Behavior remains unchanged

* docs(components): [select] add version tag for tooltipAppendTo prop

* Update packages/components/select/__tests__/select.test.ts

Co-authored-by: rzzf <cszhjh@gmail.com>

* feat(components): [select] add tagTooltip config object

Add TagTooltip to support appendTo, placement, fallbackPlacements, effect, popperClass, popperStyle,
teleported, popperOptions, showAfter, and offsetWire all tagTooltip properties to the collapse-tags
tooltip with fallback to existing select propsProvides more granular control over tooltip behavior
while maintaining backward compatibility

* docs(components): [select] add tag-tooltip config object doc

* docs(components): [select] add default value for fallback-placements

* docs(components): [select]  update tag-tooltip default value to {}

* docs(components): [select]remove string type from TagTooltipProps effect

* docs(components): [select] add fallback mechanism tip for tag-tooltip

* feat(components): [select] extend TagTooltipProps

Add transition, hideAfter, and autoClose properties to TagTooltipProps

Update popperStyle type to accept both string and CSSProperties

* docs(components): [select] enhance tag-tooltip documentation

Add transition, hide-after, and auto-close properties to TagTooltip API table

Clarify fallback mechanism with priority order explanation

Add custom container positioning tip for append-to usage

* docs(components): [select] refine tag-tooltip priority description

Co-authored-by: keeplearning66 <1256734885@qq.com>

* docs(components): [select] refine effect prop type in tag-tooltip

Co-authored-by: keeplearning66 <1256734885@qq.com>

* chore: format

* docs: apply rabbit comment

* feat(components): [select-v2] add TagTooltipProps interface

Add TagTooltipProps interface with popper configuration options

* feat(components): [select-v2] implement tagTooltip prop

* test(components): [select-v2] add tag-tooltip prop test case

Add test case to verify tagTooltip prop functionality with appendTo option

* docs(components): [select-v2] add tag-tooltip API documentation

Add tag-tooltip configuration object to Select V2 API table

Add comprehensive tag-tooltip properties section with fallback mechanism explanation and custom
container positioning tip

* docs(components): [select-v2] add version tag to tag-tooltip prop

* fix(components): [select-v2] Optional chain tagTooltip access

* fix(components): [select] optional chain tagTooltip access

* feat(components): [select-v2] Fix tooltip teleport timing

* docs(components): [select-v] add version tag for tag-tooltip

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

* docs(components): [select] add version tag for tag-tooltip

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
Co-authored-by: keeplearning66 <1256734885@qq.com>
Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>
2026-02-14 00:00:16 +01:00
snowbitx
5a997a62c5 fix(components): [time-select] prevent freeze when step is invalid (#23635)
* fix(components): [time-select] prevent freeze when step is 00:00

* test: add test case

* fix: handle invalid step value formats "00:" and ":00"

* refactor: invalidStep use default value

* refactor: step use computed

* chore: typo

* refactor: step use computed
2026-02-13 23:58:39 +01:00
snowbitx
2d316c0e85 test(components): [image] add a test case for lazy image (#23655)
* test(components): [image] add a test case for lazy image

* fix: add clear logic

* chore: format

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
2026-02-13 06:43:29 +00:00
E66
d473123ba3 fix(components): [mention] avoid selecting disabled items by pressing Enter (#23645)
* Update mention-dropdown.vue

* fix(components): [mention] disabled item selected on enter

* Update mention-dropdown.vue

* test(components): [mention] add test cases for disabled options

* Update packages/components/mention/src/mention-dropdown.vue

Co-authored-by: rzzf <cszhjh@gmail.com>

* Apply suggestion from @rzzf

Co-authored-by: rzzf <cszhjh@gmail.com>

* Apply suggestion from @rzzf

Co-authored-by: rzzf <cszhjh@gmail.com>

* Apply suggestion from @rzzf

Co-authored-by: rzzf <cszhjh@gmail.com>

* Apply suggestion from @rzzf

Co-authored-by: rzzf <cszhjh@gmail.com>

* Apply suggestion from @rzzf

Co-authored-by: rzzf <cszhjh@gmail.com>

* Update mention.test.tsx

* Update packages/components/mention/__tests__/mention.test.tsx

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
2026-02-12 18:15:57 +08:00
rzzf
efc729e3e0 fix(components): [textarea] unexpected page scrolling when typing in Firefox (#23606)
* fix(components): [textarea] unexpected page scrolling when typing in Firefox

* docs: add issue number
2026-02-10 23:50:00 +01:00
E66
a005d766e6 fix(components): [watermark] correct fontWeight type definition (#23641) 2026-02-10 09:09:20 +08:00
btea
9ffd7ce279 feat(components): [config-provider] add table config (#23610)
* feat(components): [config-provider] add table config

* fix: update

* Update packages/components/table/src/table-column/watcher-helper.ts

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

* fix: update

* docs: update

* docs: update

---------

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>
2026-02-10 09:07:40 +08:00
E66
1a5c4467ad chore: [calendar] fix typo (#23639)
chore(components)[calendar]: fix typo
2026-02-09 15:00:20 +08:00
snowbitx
a908e29038 fix(components): [time-select] duplicate end time with format (#23626)
* fix(components): [time-select] duplicate end time with format

* test: add test case
2026-02-09 13:30:44 +08:00
snowbitx
d359c5f4a3 feat(components): [time-select] add name prop (#23633)
* fix(components): [time-select] duplicate end time with format

* docs: add name version

* test: add test case
2026-02-09 09:23:21 +08:00
snowbitx
0c8b492dab fix(components): [upload] keep delete icon visible on focus-within (#23561)
* fix(components): [upload] keep delete icon visible on focus-within

* chore: add aria-label

* Update packages/components/upload/src/upload-list.vue

Co-authored-by: rzzf <cszhjh@gmail.com>

* fix: tip style

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
2026-02-06 17:22:53 +08:00
btea
8f7ecf6b9f fix(types): [message-box] MessageBoxData cross type (#23614)
* fix(types): [message-box] MessageBoxData cross type

* fix: add test case
2026-02-06 16:13:31 +08:00
snowbitx
8ad85b3e66 fix(components): [rate] avoid capturing focus when disabled (#23589)
* fix(components): [select] avoid capturing focus when disabled

* chore: revert handlekey
2026-02-05 10:33:50 +08:00
Huy Truong Gia
41531fc4ff fix(locale): [vi] refine translations and fill missing keys (#23592)
* fix(locale): [vi] refine translations and fill missing keys

The previous Vietnamese locale file was incomplete and contained mixed
English strings. This update achieves 100% translation coverage and
standardizes terminology for a better user experience.

- Translate all missing keys for Colorpicker, Slider, and InputNumber.
- Localize ARIA labels to support accessibility standards.
- Fix inconsistent terminology in DatePicker and Pagination.
- Unify empty state messages to "Không có dữ liệu".

* fix(locale): [vi] fix lint error of locale strings

Collapse multiline strings to single-line for consistency. 

This changes the color picker 'description' and the date picker 'dateTablePrompt' to remove embedded line breaks and extra indentation.
2026-02-04 16:17:02 +08:00
E66
bdf2fe7d51 fix(components): [carousel] fix vertical indicator layout with label and outside (#23368)
* fix(style): [carousel] fix vertical indicator layout with label prop

* fix(style): [carousel] fix outside indicator in vertical mode

* refactor(style): [carousel] optimize style control

* Update carousel.vue

* Update carousel.scss

* Update packages/theme-chalk/src/carousel.scss

Co-authored-by: rzzf <cszhjh@gmail.com>

* Update carousel.scss

* Update carousel.scss

* Update carousel.scss

* Update packages/theme-chalk/src/carousel.scss

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
Co-authored-by: keeplearning66 <1256734885@qq.com>
2026-02-03 22:03:49 +08:00
Kylin
f154ce27c6 feat(components): [button] add dashed prop (#22738)
* feat(components): [input] add the dashed attribute

* docs: update tag

* refactor: update the documentation of config-provider

* refactor: update config-provider test

* refactor: update button test

* refactor: update test

* test: update

* refactor: update css

* refactor: reset

* refactor: update css

* refactor: delete blank lines

* docs: update version

* docs: update button type

* docs: update button type

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
2026-02-03 10:39:54 +08:00
snowbitx
4a4fc2559c chore(components): [drawer] mark deprecate exposed afterEnter/afterLeave (#23554)
* docs(components): [drawer] document afterEnter and afterLeave in expose

* chore(components): [drawer] remove afterEnter and afterLeave from expose

* chore: deprecated after 2.14.0

* test: remove rAF mock

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
2026-02-02 14:52:24 +08:00
E66
0023b39f01 fix(components): [carousel] avoid stopping autoplay after children change (#23494)
* fix(components): [carousel] Carousel stops autoplay

* test(components): [carousel] add test cases

* Update packages/components/carousel/__tests__/carousel.test.tsx

Co-authored-by: rzzf <cszhjh@gmail.com>

---------

Co-authored-by: keeplearning66 <1256734885@qq.com>
Co-authored-by: rzzf <cszhjh@gmail.com>
2026-02-01 15:11:06 +08:00
keeplearning66
1bdfcc3b0d chore: supplement deprecation annotations (#23570)
* chore: supplement deprecation annotations

* chore: update
2026-02-01 14:19:59 +08:00
yinfoyuan
c417dfb3ed feat(utils): [dom] add support for ShadowDom (#23235)
Add the isShadowRoot utility function to detect ShadowRoot
handle ShadowRoot situations in getStyle and getScrollContainer
add unit tests for isShadowRoot

BREAKING CHANGE: `getScrollContainer()` now returns shadowRoot

closed #23228

Co-authored-by: yinfoyuan <1063428973@qq.com>
2026-02-01 14:07:11 +08:00
snowbitx
3f52e599f9 feat(components): [drawer] expose DrawerInstance (#23544)
* refactor(types): align component instance expose typings

* chore: revert

* chore: revert

* chore: revert

* docs: update doc

* chore: use unknown

* docs: update doc

* docs: update doc

* docs: revert dev-guide
2026-01-30 20:39:49 +08:00
keeplearning66
c7e64279b6 fix(components): [select/select-v2] avoid triggering multiple visible-change during the first search (#23507)
fix: avoid triggering multiple visible-change during the first search
2026-01-30 16:48:41 +08:00
E66
d2e2ff3d59 fix(components): [affix] positioning under KeepAlive cache (#23549)
* fix(components): [affix] positioning under KeepAlive cache

* Update packages/components/affix/src/affix.vue

Co-authored-by: rzzf <cszhjh@gmail.com>

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
2026-01-29 16:53:12 +08:00
snowbitx
c3654150f2 feat(components): [time-picker] supplement type for TimePickerInstance (#23536)
* chore(components): [time-picker] export TimePicker instance type

* Apply suggestion from @Dsaquel

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

---------

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>
2026-01-29 09:05:57 +08:00
rzzf
487beafccd fix(theme-chalk): [card] ensure height works correctly in flex layout (#23539)
* fix(theme-chalk): [card] ensure height works correctly in flex layout

* Add issue number comment
2026-01-28 22:43:52 +01:00
An Hao
38df8de99c feat(components): [table] add row-expandable prop (#23140)
* feat(components): [table] add row-expandable prop

* Update table.md

* fix(components): [table] refine rowExpandable and update expandable docs

* fix(components): [table] refine rowExpandable

---------

Co-authored-by: anhao <wzanh@sinopec.com>
2026-01-27 22:59:45 +01:00
snowbitx
48fee03a13 chore(components): [split-panel] remove unused el props (#23533) 2026-01-27 22:55:26 +01:00
snowbitx
0db1ae698c refactor(components): [config-provider] improve ConfigContext types (#23528)
* refactor(components): [config-provider] align shadow type

* refactor(components): [config-provider] align button/link  context type

* Update button.vue

* Change link type from 'primary' to 'success'
2026-01-26 10:35:38 +08:00
Jacob Alspaw
ff08effa63 fix: correct type definitions for ElMessageBox (#23518) 2026-01-25 22:26:56 +01:00
snowbitx
5f34b69e98 test(components): [badge] add a test case for hidden prop (#23525)
test(components): [badge] add hidden visibility test
2026-01-25 15:52:38 +08:00
snowbitx
81eb301df3 refactor(components): [badge] use factory default for offset prop (#23526)
fix(components): [badge] use factory default for offset prop
2026-01-25 15:52:24 +08:00
snowbitx
510e21e259 fix(components): [message-box] handle IME composition on Enter key (#23523)
* fix(components): [message-box] handle IME composition on Enter key

* Update index.vue

* Update packages/components/message-box/src/index.vue

Co-authored-by: rzzf <cszhjh@gmail.com>

* fix: ts error

* test: add test case

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
2026-01-25 13:04:21 +08:00
疾风
ac6a316444 fix(components): [table] Make tableLayout optional in table type (#23202)
* Make tableLayout optional in defaults.ts

fix tableLayout Type

* Make tableLayout optional in Props type

* Handle undefined tableLayout in key generation

* Fix optional chaining for tableLayout property

* Make tableLayout prop required in hColgroup

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
2026-01-23 23:46:52 +01:00
rzzf
12e4038f82 chore: bump lodash and lodash-es (#23510) 2026-01-23 11:42:43 +08:00
tjyuanpeng
96168bfe29 fix(components): [date-picker-panel] add missing is-disabled class to disabled buttons when using unlink-panels (#23393)
fix(components): [date-picker] add btns disabled class in unlinkPanels
2026-01-22 13:17:11 +01:00
btea
598af41d99 feat(build): add supply-validator-plugin plugin (#23458)
* feat(hooks): add useValidator hook

* fix: lint

* feat: add plugin

* chore: add dep

* fix: update

* chore: update script

* fix: remove never used `mergeDefaults`
2026-01-22 12:55:10 +08:00
Noblet Ouways
e856d8baa1 fix(components): [date-picker-panel] reliable startDate of weekstart (#23422)
fix #23221
2026-01-21 22:18:27 +08:00
XiaoGao
c94130cb55 refactor(components): [drawer] use type-based definitions (#23484)
* put Ts

* refactor(components): [drawer] use type-based definitions

* refactor: update

* fix: type error

* fix: type error

* refactor: tweaks

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
Co-authored-by: keeplearning66 <1256734885@qq.com>
2026-01-21 13:40:34 +08:00
zhongli-kira
31c57b9a65 refactor(components): [checkbox] use type-based definitions (#23480)
* refactor(components): [checkbox/checkbox-button/checkbox-group] use type-based definitions

* refactor: update

* refactor: fix type

* docs: update description

* fix: update

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
Co-authored-by: btea <2356281422@qq.com>
2026-01-20 20:41:20 +08:00
E66
77a4e31a1c refactor(components): [notification] use type-based definitions (#23445)
* refactor(components): [notification] use type-based definitions

* test: remove runtime validation expectation

* fix(components): [notification] position type constraint error

* Update notification.test.tsx

* Update notification.vue

* chore: revert comments

---------

Co-authored-by: rzzf <cszhjh@gmail.com>
2026-01-20 20:16:02 +08:00
rzzf
6b3fcaf045 improvement(components): [tooltip] add missing emits type (#23489)
fix(components): [tooltip] missing emits type
2026-01-20 20:14:43 +08:00