diff --git a/.github/renovate.json5 b/.github/renovate.json5
index b91faca83a..b4004a2270 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -1,9 +1,7 @@
{
extends: ['config:base', 'schedule:weekly', 'group:allNonMajor'],
labels: ['dependencies'],
- pin: false,
rangeStrategy: 'bump',
- node: false,
packageRules: [
{
depTypeList: ['peerDependencies'],
diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md
index 7b5c3376a2..e4f101a471 100644
--- a/CHANGELOG.en-US.md
+++ b/CHANGELOG.en-US.md
@@ -1,5 +1,30 @@
## Changelog
+### 2.3.8
+
+_2023-07-14_
+
+#### Bug fixes
+
+- Correct sass map has-key parameter (#13132 by @wonderl17)
+- Components [date-picker] One input affect the other input (#12181 by @HeftyKoo)
+- Components [virtual-list] Resetting the vertical scrollbar state (#13319 by @huangguangfa)
+- Components [tree] fix node can drop inner (#9770 by @init-qy)
+- Style [progress] linecap value of track is consistent with path (#13395 by @btea)
+- Theme-chalk [form] remove default width of Input in inline form (#13375 by @tolking)
+- Components [checkbox] default after border color is transparent (#13402 by @chenxch)
+- Components [table] multiple line ellipsis tooltip takes effect (#12805 by @btea)
+- Style [select] tooltip positioning is incorrect (#13424 by @wuzhidexiaoming)
+- Tree content checkbox height larger than item height, close #13396 (#13446 by @YunYouJun)
+- Types in exports (#13443 by @zhuying547)
+- Add more exports types (#13498 by @sxzz)
+- Components [color-picker] fix incorrect cursor position (#13516 by @kooriookami)
+- Components [input] lose focus when click suffix icon (#13264 by @tolking)
+- Style(theme-chalk): [table] fix th font weight (#13556 by @kaine0923)
+#### Refactors
+
+- Components [select] override the class using computed (#13302 by @wzc520pyfm)
+
### 2.3.7
_2023-06-21_
diff --git a/README.md b/README.md
index 50137500dd..264864acd7 100644
--- a/README.md
+++ b/README.md
@@ -73,6 +73,11 @@ You can also try Element Plus out with the components built-in playground.
+
+
+
diff --git a/docs/.vitepress/vitepress/styles/mixins.scss b/docs/.vitepress/vitepress/styles/mixins.scss
index 27c85422b5..6946b2b60e 100644
--- a/docs/.vitepress/vitepress/styles/mixins.scss
+++ b/docs/.vitepress/vitepress/styles/mixins.scss
@@ -23,7 +23,7 @@ $breakpoints: (
) !default;
@mixin respond-to($breakpoint) {
- @if #{map.has-key($breakpoints, $breakpoints)} {
+ @if #{map.has-key($breakpoints, $breakpoint)} {
@media screen and (min-width: #{map.get($breakpoints, $breakpoint)}) {
@content;
}
diff --git a/docs/en-US/component/dialog.md b/docs/en-US/component/dialog.md
index 8af567c556..a3c8a1661c 100644
--- a/docs/en-US/component/dialog.md
+++ b/docs/en-US/component/dialog.md
@@ -121,6 +121,7 @@ When using `modal` = false, please make sure that `append-to-body` was set to **
| fullscreen | whether the Dialog takes up full screen | boolean | — | false |
| top | value for `margin-top` of Dialog CSS | string | — | 15vh |
| modal | whether a mask is displayed | boolean | — | true |
+| modal-class | custom class names for mask | string | — | — |
| append-to-body | whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` | boolean | — | false |
| lock-scroll | whether scroll of body is disabled while Dialog is displayed | boolean | — | true |
| custom-class ^(deprecated) | custom class names for Dialog | string | — | — |
diff --git a/docs/en-US/component/form.md b/docs/en-US/component/form.md
index a3639f6fa7..e40903ac93 100644
--- a/docs/en-US/component/form.md
+++ b/docs/en-US/component/form.md
@@ -37,7 +37,7 @@ To prevent this behavior, you can add `@submit.prevent` on ``.
When the vertical space is limited and the form is relatively simple, you can put it in one line.
-:::demo Set the `inline` attribute to `true` and the form will be inline. After ^(2.3.6), the ElInput component will get a fixed width to avoid the width change caused by the clearable icon.
+:::demo Set the `inline` attribute to `true` and the form will be inline.
form/inline-form
@@ -125,25 +125,24 @@ form/accessibility
### Form Attributes
-| Name | Description | Type | Default |
-| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | ------- |
-| model | Data of form component. | ^[object]`Record` | — |
-| rules | Validation rules of form. | ^[object]`FormRules` | — |
-| inline | Whether the form is inline. | ^[boolean] | false |
-| label-position | Position of label. If set to `'left'` or `'right'`, `label-width` prop is also required. | ^[enum]`'left' \| 'right' \| 'top'` | right |
-| label-width | Width of label, e.g. `'50px'`. All its direct child form items will inherit this value. `auto` is supported. | ^[string] / ^[number] | '' |
-| label-suffix | Suffix of the label. | ^[string] | '' |
-| hide-required-asterisk | Whether to hide required fields should have a red asterisk (star) beside their labels. | ^[boolean] | false |
-| require-asterisk-position | Position of asterisk. | ^[enum]`'left' \| 'right'` | left |
-| show-message | Whether to show the error message. | ^[boolean] | true |
-| inline-message | Whether to display the error message inline with the form item. | ^[boolean] | false |
-| status-icon | Whether to display an icon indicating the validation result. | ^[boolean] | false |
-| validate-on-rule-change | Whether to trigger validation when the `rules` prop is changed. | ^[boolean] | true |
-| size | Control the size of components in this form. | ^[enum]`'' \| 'large' \| 'default' \| 'small'` | — |
-| disabled | Whether to disable all components in this form. If set to `true`, it will override the `disabled` prop of the inner component. | ^[boolean] | false |
-| scroll-to-error | When validation fails, scroll to the first error form entry. | ^[boolean] | false |
-| scroll-into-view-options | When validation fails, it scrolls to the first error item based on the scrollIntoView option. [scrollIntoView](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView). | ^[object]`Record` / ^[boolean] | — |
-
+| Name | Description | Type | Default |
+| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- | ------- |
+| model | Data of form component. | ^[object]`Record` | — |
+| rules | Validation rules of form. | ^[object]`FormRules` | — |
+| inline | Whether the form is inline. | ^[boolean] | false |
+| label-position | Position of label. If set to `'left'` or `'right'`, `label-width` prop is also required. | ^[enum]`'left' \| 'right' \| 'top'` | right |
+| label-width | Width of label, e.g. `'50px'`. All its direct child form items will inherit this value. `auto` is supported. | ^[string] / ^[number] | '' |
+| label-suffix | Suffix of the label. | ^[string] | '' |
+| hide-required-asterisk | Whether to hide required fields should have a red asterisk (star) beside their labels. | ^[boolean] | false |
+| require-asterisk-position | Position of asterisk. | ^[enum]`'left' \| 'right'` | left |
+| show-message | Whether to show the error message. | ^[boolean] | true |
+| inline-message | Whether to display the error message inline with the form item. | ^[boolean] | false |
+| status-icon | Whether to display an icon indicating the validation result. | ^[boolean] | false |
+| validate-on-rule-change | Whether to trigger validation when the `rules` prop is changed. | ^[boolean] | true |
+| size | Control the size of components in this form. | ^[enum]`'' \| 'large' \| 'default' \| 'small'` | — |
+| disabled | Whether to disable all components in this form. If set to `true`, it will override the `disabled` prop of the inner component. | ^[boolean] | false |
+| scroll-to-error | When validation fails, scroll to the first error form entry. | ^[boolean] | false |
+| scroll-into-view-options | When validation fails, it scrolls to the first error item based on the scrollIntoView option. [scrollIntoView](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView). | ^[object]`Record` / ^[boolean] | — |
### Form Events
@@ -237,6 +236,6 @@ interface FormItemRule extends RuleItem {
trigger?: Arrayable
}
type FormRules = Partial>>
-
```
+
diff --git a/docs/en-US/component/image.md b/docs/en-US/component/image.md
index a2571102dd..ccd8e13578 100644
--- a/docs/en-US/component/image.md
+++ b/docs/en-US/component/image.md
@@ -93,7 +93,7 @@ image/image-preview
| ----------- | -------------------------------------------------------- |
| placeholder | custom placeholder content when image hasn't loaded yet. |
| error | custom image load failed content. |
-| viewer | description of the image. |
+| viewer | custom content when image preview. |
## Image Viewer API
diff --git a/docs/en-US/component/input.md b/docs/en-US/component/input.md
index 912d6cba31..829b9366f6 100644
--- a/docs/en-US/component/input.md
+++ b/docs/en-US/component/input.md
@@ -183,3 +183,15 @@ input/length-limiting
| select | select the text in input element | ^[Function]`() => void` |
| textarea | HTML textarea element | ^[object]`Ref` |
| textareaStyle | style of textarea | ^[object]`Ref` |
+
+## FAQ
+
+#### Why is the width of the ElInput component expanded by clearable?
+
+Typical issue: [#7287](https://github.com/element-plus/element-plus/issues/7287)
+
+PS: Since the ElInput component does not have a default width, when the clearable icon is displayed, the width of the component will be expanded, which can be solved by setting width.
+
+```vue
+
+```
diff --git a/docs/en-US/component/message-box.md b/docs/en-US/component/message-box.md
index cb5d896b38..78c9d9092c 100644
--- a/docs/en-US/component/message-box.md
+++ b/docs/en-US/component/message-box.md
@@ -154,41 +154,43 @@ import { ElMessageBox } from 'element-plus'
The corresponding methods are: `ElMessageBox`, `ElMessageBox.alert`, `ElMessageBox.confirm` and `ElMessageBox.prompt`. The parameters are the same as above.
-## Options
+## API
-| Attribute | Description | Type | Accepted Values | Default |
-| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | ------------------------------------------------ |
-| autofocus | auto focus when open MessageBox | boolean | — | true |
-| title | title of the MessageBox | string | — | — |
-| message | content of the MessageBox | `string \| VNode \| (() => VNode)` | — | — |
-| dangerouslyUseHTMLString | whether `message` is treated as HTML string | boolean | — | false |
-| type | message type, used for icon display | string | success / info / warning / error | — |
-| icon | custom icon component, overrides `type` | `string \| Component` | — | — |
-| custom-class | custom class name for MessageBox | string | — | — |
-| custom-style | custom inline style for MessageBox | CSSProperties | — | — |
-| callback | MessageBox closing callback if you don't prefer Promise | function(action, instance), where `action` can be 'confirm', 'cancel' or 'close', and `instance` is the MessageBox instance. You can access to that instance's attributes and methods | — | — |
-| showClose | whether to show close icon of MessageBox | boolean | — | true |
-| before-close | callback before MessageBox closes, and it will prevent MessageBox from closing | function(action, instance, done), where `action` can be 'confirm', 'cancel' or 'close'; `instance` is the MessageBox instance, and you can access to that instance's attributes and methods; `done` is for closing the instance | — | — |
-| distinguish-cancel-and-close | whether to distinguish canceling and closing the MessageBox | boolean | — | false |
-| lock-scroll | whether to lock body scroll when MessageBox prompts | boolean | — | true |
-| show-cancel-button | whether to show a cancel button | boolean | — | false (true when called with confirm and prompt) |
-| show-confirm-button | whether to show a confirm button | boolean | — | true |
-| cancel-button-text | text content of cancel button | string | — | Cancel |
-| confirm-button-text | text content of confirm button | string | — | OK |
-| cancel-button-class | custom class name of cancel button | string | — | — |
-| confirm-button-class | custom class name of confirm button | string | — | — |
-| close-on-click-modal | whether MessageBox can be closed by clicking the mask | boolean | — | true (false when called with alert) |
-| close-on-press-escape | whether MessageBox can be closed by pressing the ESC | boolean | — | true (false when called with alert) |
-| close-on-hash-change | whether to close MessageBox when hash changes | boolean | — | true |
-| show-input | whether to show an input | boolean | — | false (true when called with prompt) |
-| input-placeholder | placeholder of input | string | — | — |
-| input-type | type of input | string | — | text |
-| input-value | initial value of input | string | — | — |
-| input-pattern | regexp for the input | regexp | — | — |
-| input-validator | validation function for the input. Should returns a boolean or string. If a string is returned, it will be assigned to inputErrorMessage | function | — | — |
-| input-error-message | error message when validation fails | string | — | Illegal input |
-| center | whether to align the content in center | boolean | — | false |
-| draggable | whether MessageBox is draggable | boolean | — | false |
-| round-button | whether to use round button | boolean | — | false |
-| button-size | custom size of confirm and cancel buttons | string | small / default / large | default |
-| append-to | set the root element for the message box | string \| HTMLElement | — | — |
+### Options
+
+| Name | Description | Type | Default |
+| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------ |
+| autofocus | auto focus when open MessageBox | ^[boolean] | true |
+| title | title of the MessageBox | ^[string] | '' |
+| message | content of the MessageBox | ^[string] / ^[VNode] / ^[Function]`() => VNode` | — |
+| dangerouslyUseHTMLString | whether `message` is treated as HTML string | ^[boolean] | false |
+| type | message type, used for icon display | ^[enum]`'success' \| 'info' \| 'warning' \| 'error'` | '' |
+| icon | custom icon component, overrides `type` | ^[string] / ^[Component] | '' |
+| custom-class | custom class name for MessageBox | ^[string] | '' |
+| custom-style | custom inline style for MessageBox | ^[CSSProperties] | {} |
+| callback | MessageBox closing callback if you don't prefer Promise | ^[Function]`(value: string, action: Action) => any \| (action: Action) => any` | null |
+| showClose | whether to show close icon of MessageBox | ^[boolean] | true |
+| before-close | callback before MessageBox closes, and it will prevent MessageBox from closing | ^[Function]`(action: Action, instance: MessageBoxState, done: () => void) => void` | null |
+| distinguish-cancel-and-close | whether to distinguish canceling and closing the MessageBox | ^[boolean] | false |
+| lock-scroll | whether to lock body scroll when MessageBox prompts | ^[boolean] | true |
+| show-cancel-button | whether to show a cancel button | ^[boolean] | false (true when called with confirm and prompt) |
+| show-confirm-button | whether to show a confirm button | ^[boolean] | true |
+| cancel-button-text | text content of cancel button | ^[string] | Cancel |
+| confirm-button-text | text content of confirm button | ^[string] | OK |
+| cancel-button-class | custom class name of cancel button | ^[string] | '' |
+| confirm-button-class | custom class name of confirm button | ^[string] | '' |
+| close-on-click-modal | whether MessageBox can be closed by clicking the mask | ^[boolean] | true (false when called with alert) |
+| close-on-press-escape | whether MessageBox can be closed by pressing the ESC | ^[boolean] | true (false when called with alert) |
+| close-on-hash-change | whether to close MessageBox when hash changes | ^[boolean] | true |
+| show-input | whether to show an input | ^[boolean] | false (true when called with prompt) |
+| input-placeholder | placeholder of input | ^[string] | '' |
+| input-type | type of input | ^[string] | text |
+| input-value | initial value of input | ^[string] | null |
+| input-pattern | regexp for the input | ^[regexp] | null | |
+| input-validator | validation function for the input. Should returns a boolean or string. If a string is returned, it will be assigned to inputErrorMessage | ^[Function]`(value: string) => boolea \| string` | null |
+| input-error-message | error message when validation fails | ^[string] | Illegal input |
+| center | whether to align the content in center | ^[boolean] | false |
+| draggable | whether MessageBox is draggable | ^[boolean] | false |
+| round-button | whether to use round button | ^[boolean] | false |
+| button-size | custom size of confirm and cancel buttons | ^[string]`'small' \| 'default' \| 'large'` | default |
+| append-to | set the root element for the message box | ^[string] / ^[HTMLElement] | - |
diff --git a/docs/en-US/component/progress.md b/docs/en-US/component/progress.md
index aa907f0243..831b02993b 100644
--- a/docs/en-US/component/progress.md
+++ b/docs/en-US/component/progress.md
@@ -81,22 +81,22 @@ progress/striped-progress
### Attributes
-| Name | Description | Type | Default |
-| -------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ------- |
-| percentage | percentage, **required** | ^[number]`(0-100)` | 0 |
-| type | the type of progress bar | ^[enum]`'line' \| 'circle' \| 'dashboard'` | line |
-| stroke-width | the width of progress bar | ^[number] | 6 |
-| text-inside | whether to place the percentage inside progress bar, only works when `type` is 'line' | ^[boolean] | false |
-| status | the current status of progress bar | ^[enum]`'success' \| 'exception' \| 'warning'` | — |
-| indeterminate | set indeterminate progress | ^[boolean] | false |
-| duration | control the animation duration of indeterminate progress or striped flow progress | ^[number] | 3 |
-| color | background color of progress bar. Overrides `status` prop | ^[string] / ^[function]`(percentage: number) => string` / ^[Array]`{ color: string; percentage: number }[]` | '' |
-| width | the canvas width of circle progress bar | ^[number] | 126 |
-| show-text | whether to show percentage | ^[boolean] | true |
-| stroke-linecap | circle/dashboard type shape at the end path | ^[enum]`'butt' \| 'round' \| 'square'` | round |
-| format | custom text format | ^[Function]`(percentage: number) => string` | — |
-| striped ^(2.3.4) | stripe over the progress bar's color | ^[boolean] | false |
-| striped-flow ^(2.3.4) | get the stripes to flow | ^[boolean] | false |
+| Name | Description | Type | Default |
+| --------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ------- |
+| percentage | percentage, **required** | ^[number]`(0-100)` | 0 |
+| type | the type of progress bar | ^[enum]`'line' \| 'circle' \| 'dashboard'` | line |
+| stroke-width | the width of progress bar | ^[number] | 6 |
+| text-inside | whether to place the percentage inside progress bar, only works when `type` is 'line' | ^[boolean] | false |
+| status | the current status of progress bar | ^[enum]`'success' \| 'exception' \| 'warning'` | — |
+| indeterminate | set indeterminate progress | ^[boolean] | false |
+| duration | control the animation duration of indeterminate progress or striped flow progress | ^[number] | 3 |
+| color | background color of progress bar. Overrides `status` prop | ^[string] / ^[function]`(percentage: number) => string` / ^[Array]`{ color: string; percentage: number }[]` | '' |
+| width | the canvas width of circle progress bar | ^[number] | 126 |
+| show-text | whether to show percentage | ^[boolean] | true |
+| stroke-linecap | circle/dashboard type shape at the end path | ^[enum]`'butt' \| 'round' \| 'square'` | round |
+| format | custom text format | ^[Function]`(percentage: number) => string` | — |
+| striped ^(2.3.4) | stripe over the progress bar's color | ^[boolean] | false |
+| striped-flow ^(2.3.4) | get the stripes to flow | ^[boolean] | false |
### Slots
diff --git a/docs/examples/form/inline-form.vue b/docs/examples/form/inline-form.vue
index bdb68631b0..a07f20da09 100644
--- a/docs/examples/form/inline-form.vue
+++ b/docs/examples/form/inline-form.vue
@@ -40,3 +40,9 @@ const onSubmit = () => {
console.log('submit!')
}
+
+
diff --git a/docs/examples/progress/circular-progress-bar.vue b/docs/examples/progress/circular-progress-bar.vue
index 8090166de2..6dc5ea8d0b 100644
--- a/docs/examples/progress/circular-progress-bar.vue
+++ b/docs/examples/progress/circular-progress-bar.vue
@@ -8,10 +8,6 @@