diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md index 23158b9f3d97a..e982742326b2d 100644 --- a/CHANGELOG.en-US.md +++ b/CHANGELOG.en-US.md @@ -1,5 +1,28 @@ ## Changelog +### 2.6.2 + +_2024-03-22_ + +#### Features + +- Components [breadcrumb] aria-label uses locale (#16089 by @btea) + +#### Bug fixes + +- Components [anchor] `type` default value typo (#16102 by @cullyfung) +- Components [tree] remove duplicate type declaration (#16106 by @inside5545) +- Components [cascader] form nested causing clear icon invalid (#16068 by @btea) +- Components [anchor,tour] the `type` type typo (#16119 by @warmthsea) +- Components [select] stop the click event propagation of `header/footer` slot (#16151 by @warmthsea) +- Components [tree] the value of append can be zero (#16130 by @btea) +- Components [select & select-v2] click toggleMenu add prevent (#16149 by @kooriookami) +- Theme-chalk replace `gulp-clean-css` with `cssnano` (#16056 by @zhixiaotong) +- Components [tag] remove duplicate style (#16174 by @btea) +- Hooks SSR hydration error caused by z-index (#16175 by @tolking) +- Components [cascader-panel] get the reactive proxy of `node` to trigger side effects (#16198 by @makedopamine) +- Style(components): [anchor] marker transition expression incorrect (#16100 by @zeyongTsai) + ### 2.6.1 _2024-03-08_ diff --git a/docs/.vitepress/vitepress/components/globals/overview.vue b/docs/.vitepress/vitepress/components/globals/overview.vue index 2aa2f6db7078c..0a0c112930210 100644 --- a/docs/.vitepress/vitepress/components/globals/overview.vue +++ b/docs/.vitepress/vitepress/components/globals/overview.vue @@ -84,9 +84,14 @@ const filteredSidebars = computed(() => .slice(1) .map((group) => ({ ...group, - children: group.children.filter((item) => - item.text.toLowerCase().includes(query.value.trim().toLowerCase()) - ), + children: group.children.filter((item) => { + const value = query.value.trim().toLowerCase() + return ( + group.text.toLowerCase().includes(value) || + item.text.toLowerCase().includes(value) || + item.promotion?.includes(value) + ) + }), })) .filter((group) => group.children.length) ) @@ -133,7 +138,7 @@ const getIcon = (link: string) => { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; - ::v-deep(.el-card) { + :deep(.el-card) { cursor: pointer; .el-card__header { diff --git a/docs/en-US/component/anchor.md b/docs/en-US/component/anchor.md index 99d8580dc8f99..4753a2571ce5f 100644 --- a/docs/en-US/component/anchor.md +++ b/docs/en-US/component/anchor.md @@ -84,7 +84,7 @@ anchor/affix | bound | the offset of the element starting to trigger the anchor. | `number` | 15 | | duration | set the scroll duration of the container, in milliseconds. | `number` | 300 | | marker | whether to show the marker. | ^[boolean] | true | -| type | set Anchor type. | ^[enum]`'defalut' \| 'underline'` | `default` | +| type | set Anchor type. | ^[enum]`'default' \| 'underline'` | `default` | | direction | Set Anchor direction. | ^[enum]`'vertical' \| 'horizontal'` | `vertical` | ### Anchor Events diff --git a/docs/en-US/component/checkbox.md b/docs/en-US/component/checkbox.md index 58f70b8aa9ce8..4b1215830b8df 100644 --- a/docs/en-US/component/checkbox.md +++ b/docs/en-US/component/checkbox.md @@ -132,7 +132,7 @@ checkbox/with-border | max | maximum number of checkbox checked | ^[number] | — | | label | label for screen reader | ^[string] | — | | text-color | font color when button is active | ^[string] | #ffffff | -| fill | border and background color when button is active | ^[string] | #409EFF | +| fill | border and background color when button is active | ^[string] | #409eff | | tag | element tag of the checkbox group | ^[string] | div | | validate-event | whether to trigger form validation | ^[boolean] | true | diff --git a/docs/en-US/component/drawer.md b/docs/en-US/component/drawer.md index 42a753a7facec..f492f398a889a 100644 --- a/docs/en-US/component/drawer.md +++ b/docs/en-US/component/drawer.md @@ -98,7 +98,7 @@ Drawer provides an API called `destroyOnClose`, which is a flag variable that in | custom-class ^(deprecated) | Extra class names for Drawer | ^[string] | — | | destroy-on-close | Indicates whether children should be destroyed after Drawer closed | ^[boolean] | false | | modal | Should show shadowing layer | ^[boolean] | true | -| direction | Drawer's opening direction | ^[enum]`'rtl' \| 'ltr' \| 'ttb' \| 'btt' \| 'rtl'` | rtl | +| direction | Drawer's opening direction | ^[enum]`'rtl' \| 'ltr' \| 'ttb' \| 'btt'` | rtl | | show-close | Should show close button at the top right of Drawer | ^[boolean] | true | | size | Drawer's size, if Drawer is horizontal mode, it effects the width property, otherwise it effects the height property, when size is `number` type, it describes the size by unit of pixels; when size is `string` type, it should be used with `x%` notation, other wise it will be interpreted to pixel unit | ^[number] / ^[string] | 30% | | title | Drawer's title, can also be set by named slot, detailed descriptions can be found in the slot form | ^[string] | — | diff --git a/docs/en-US/component/icon.md b/docs/en-US/component/icon.md index f91658b8a34d8..5d593b6f2f077 100644 --- a/docs/en-US/component/icon.md +++ b/docs/en-US/component/icon.md @@ -129,7 +129,7 @@ import { Edit, Share, Delete, Search, Loading } from '@element-plus/icons-vue' - + @@ -156,7 +156,7 @@ import { Edit, Share, Delete, Search, Loading } from '@element-plus/icons-vue' - + diff --git a/docs/en-US/component/menu.md b/docs/en-US/component/menu.md index 9de2418180d08..863565dd13c2e 100644 --- a/docs/en-US/component/menu.md +++ b/docs/en-US/component/menu.md @@ -72,7 +72,7 @@ menu/popper-offset | popper-offset ^(2.4.4) | offset of the popper (effective for all submenus) | number | — | 6 | | background-color | background color of Menu (hex format) (deprecated, use `--bg-color` instead) | string | — | #ffffff | | text-color | text color of Menu (hex format) (deprecated, use `--text-color` instead) | string | — | #303133 | -| active-text-color | text color of currently active menu item (hex format) (deprecated, use `--active-color` instead) | string | — | #409EFF | +| active-text-color | text color of currently active menu item (hex format) (deprecated, use `--active-color` instead) | string | — | #409eff | | default-active | index of active menu on page load | string | — | — | | default-openeds | array that contains indexes of currently active sub-menus | Array | — | — | | unique-opened | whether only one sub-menu can be active | boolean | — | false | diff --git a/docs/en-US/component/message-box.md b/docs/en-US/component/message-box.md index a0b8030fa1ef2..0bf0ef810a799 100644 --- a/docs/en-US/component/message-box.md +++ b/docs/en-US/component/message-box.md @@ -187,7 +187,7 @@ The corresponding methods are: `ElMessageBox`, `ElMessageBox.alert`, `ElMessageB | 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-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) => boolean \| 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 | diff --git a/docs/en-US/component/radio.md b/docs/en-US/component/radio.md index 9f06934c8ad2f..e556533f161fe 100644 --- a/docs/en-US/component/radio.md +++ b/docs/en-US/component/radio.md @@ -99,7 +99,7 @@ radio/with-borders | size | the size of radio buttons or bordered radios | ^[string] | default | | disabled | whether the nesting radios are disabled | ^[boolean] | false | | text-color | font color when button is active | ^[string] | #ffffff | -| fill | border and background color when button is active | ^[string] | #409EFF | +| fill | border and background color when button is active | ^[string] | #409eff | | validate-event | whether to trigger form validation | ^[boolean] | true | | label ^(a11y) | same as `aria-label` in RadioGroup | ^[string] | — | | name | native `name` attribute | ^[string] | — | diff --git a/docs/en-US/component/rate.md b/docs/en-US/component/rate.md index 94eda0338b4d1..3b55423442246 100644 --- a/docs/en-US/component/rate.md +++ b/docs/en-US/component/rate.md @@ -96,9 +96,9 @@ Use `css/scss` language to change the global or local color. We set some global | allow-half | whether picking half start is allowed | ^[boolean] | false | | low-threshold | threshold value between low and medium level. The value itself will be included in low level | ^[number] | 2 | | high-threshold | threshold value between medium and high level. The value itself will be included in high level | ^[number] | 4 | -| colors | colors for icons. If array, it should have 3 elements, each of which corresponds with a score level, else if object, the key should be threshold value between two levels, and the value should be corresponding color | ^[object]`string[] \| Record` | ['#F7BA2A', '#F7BA2A', '#F7BA2A'] | -| void-color | color of unselected icons | ^[string] | #C6D1DE | -| disabled-void-color | color of unselected read-only icons | ^[string] | #EFF2F7 | +| colors | colors for icons. If array, it should have 3 elements, each of which corresponds with a score level, else if object, the key should be threshold value between two levels, and the value should be corresponding color | ^[object]`string[] \| Record` | ['#f7ba2a', '#f7ba2a', '#f7ba2a'] | +| void-color | color of unselected icons | ^[string] | #c6d1de | +| disabled-void-color | color of unselected read-only icons | ^[string] | #eff2f7 | | icons | icon components. If array, it should have 3 elements, each of which corresponds with a score level, else if object, the key should be threshold value between two levels, and the value should be corresponding icon component | ^[object]`string[] \| Component[] \| Record` | [StarFilled, StarFilled, StarFilled] | | void-icon | component of unselected icons | ^[string] / ^[Component] | Star | | disabled-void-icon | component of unselected read-only icons | ^[string] / ^[Component] | StarFilled | diff --git a/docs/en-US/component/select-v2.md b/docs/en-US/component/select-v2.md index f345533c32e46..ccd13b7d07f17 100644 --- a/docs/en-US/component/select-v2.md +++ b/docs/en-US/component/select-v2.md @@ -239,7 +239,7 @@ select-v2/custom-loading | remote-method | function that gets called when the input value changes. Its parameter is the current input value. To use this, `filterable` must be true | ^[Function]`(keyword: string) => void` | — | | validate-event | whether to trigger form validation | ^[boolean] | true | | placement | position of dropdown | ^[enum]`'top' \| 'top-start' \| 'top-end' \| 'bottom' \| 'bottom-start' \| 'bottom-end' \| 'left' \| 'left-start' \| 'left-end' \| 'right' \| 'right-start' \| 'right-end'` | bottom-start | -| fallback-placements ^(2.5.6) | list of possible positions for dropdown [popper.js](https://popper.js.org/docs/v2/modifiers/flip/#fallbackplacements) | ^[arrary]`Placement[]` | ['bottom-start', 'top-start', 'right', 'left'] | +| fallback-placements ^(2.5.6) | list of possible positions for dropdown [popper.js](https://popper.js.org/docs/v2/modifiers/flip/#fallbackplacements) | ^[array]`Placement[]` | ['bottom-start', 'top-start', 'right', 'left'] | | collapse-tags-tooltip ^(2.3.0) | whether show all selected tags when mouse hover text of collapse-tags. To use this, `collapse-tags` must be true | ^[boolean] | false | | max-collapse-tags ^(2.3.0) | The max tags number to be shown. To use this, `collapse-tags` must be true | ^[number] | 1 | | tag-type ^(2.5.0) | tag type | ^[enum]`'' \| 'success' \| 'info' \| 'warning' \| 'danger'` | info | diff --git a/docs/en-US/component/select.md b/docs/en-US/component/select.md index ec9e5f8046531..7297bbc6c5604 100644 --- a/docs/en-US/component/select.md +++ b/docs/en-US/component/select.md @@ -201,7 +201,7 @@ select/custom-loading | tag-type | tag type | ^[enum]`'' \| 'success' \| 'info' \| 'warning' \| 'danger'` | info | | validate-event | whether to trigger form validation | ^[boolean] | true | | placement ^(2.2.17) | position of dropdown | ^[enum]`'top' \| 'top-start' \| 'top-end' \| 'bottom' \| 'bottom-start' \| 'bottom-end' \| 'left' \| 'left-start' \| 'left-end' \| 'right' \| 'right-start' \| 'right-end'` | bottom-start | -| fallback-placements ^(2.5.6) | list of possible positions for dropdown [popper.js](https://popper.js.org/docs/v2/modifiers/flip/#fallbackplacements) | ^[arrary]`Placement[]` | ['bottom-start', 'top-start', 'right', 'left'] | +| fallback-placements ^(2.5.6) | list of possible positions for dropdown [popper.js](https://popper.js.org/docs/v2/modifiers/flip/#fallbackplacements) | ^[array]`Placement[]` | ['bottom-start', 'top-start', 'right', 'left'] | | max-collapse-tags ^(2.3.0) | the max tags number to be shown. To use this, `collapse-tags` must be true | ^[number] | 1 | | popper-options | [popper.js](https://popper.js.org/docs/v2/) parameters | ^[object]refer to [popper.js](https://popper.js.org/docs/v2/) doc | {} | | aria-label ^(a11y) | same as `aria-label` in native input | ^[string] | — | diff --git a/docs/en-US/component/tooltip.md b/docs/en-US/component/tooltip.md index b1edabebfb9ae..0a1f6b1b2aefc 100644 --- a/docs/en-US/component/tooltip.md +++ b/docs/en-US/component/tooltip.md @@ -157,7 +157,7 @@ tooltip/animations | content | display content, can be overridden by `slot#content` | ^[string] | '' | | raw-content | whether `content` is treated as HTML string | ^[boolean] | false | | placement | position of Tooltip | ^[enum]`'top' \| 'top-start' \| 'top-end' \| 'bottom' \| 'bottom-start' \| 'bottom-end' \| 'left' \| 'left-start' \| 'left-end' \| 'right' \| 'right-start' \| 'right-end'` | bottom | -| fallback-placements | list of possible positions for Tooltip [popper.js](https://popper.js.org/docs/v2/modifiers/flip/#fallbackplacements) | ^[arrary]`Placement[]` | — | +| fallback-placements | list of possible positions for Tooltip [popper.js](https://popper.js.org/docs/v2/modifiers/flip/#fallbackplacements) | ^[array]`Placement[]` | — | | visible / v-model:visible | visibility of Tooltip | ^[boolean] | — | | disabled | whether Tooltip is disabled | ^[boolean] | — | | offset | offset of the Tooltip | ^[number] | 12 | diff --git a/docs/en-US/component/tree-v2.md b/docs/en-US/component/tree-v2.md index e29b302b1e0c3..3d133c82b4174 100644 --- a/docs/en-US/component/tree-v2.md +++ b/docs/en-US/component/tree-v2.md @@ -61,7 +61,7 @@ tree-v2/custom-node Tree nodes can be filtered -:::demo Invoke the `filter` method of the Tree instance to filter tree nodes. Its parameter is the filtering keyword. Note that for it to work, `filter-node-method` is required, and its value is the filtering method. +:::demo Invoke the `filter` method of the Tree instance to filter tree nodes. Its parameter is the filtering keyword. Note that for it to work, `filter-method` is required, and its value is the filtering method. tree-v2/filter diff --git a/docs/en-US/guide/ssr.md b/docs/en-US/guide/ssr.md index 06e76529c7da8..afdebabf8fa74 100644 --- a/docs/en-US/guide/ssr.md +++ b/docs/en-US/guide/ssr.md @@ -31,6 +31,20 @@ app.provide(ID_INJECTION_KEY, { }) ``` +## Provide ZIndex + +When you using SSR for development, you may encounter hydration errors caused by `z-index`. In this case, we recommend injecting an initial value to avoid such errors. + +```ts +// src/main.js (irrelevant code omitted) +import { createApp } from 'vue' +import { ZINDEX_INJECTION_KEY } from 'element-plus' +import App from './App.vue' + +const app = createApp(App) +app.provide(ZINDEX_INJECTION_KEY, { current: 0 }) +``` + ## Teleports [Teleport](https://vuejs.org/guide/scaling-up/ssr.html#teleports) is used internally by multiple components in Element Plus (eg. ElDialog, ElDrawer, ElTooltip, ElDropdown, ElSelect, ElDatePicker ...), so special handling is required during SSR. @@ -79,7 +93,7 @@ There may be some [SSR problems with teleport](https://github.com/vuejs/core/iss 1. The `teleported` attribute in all components based on ElTooltip should be consistent, it is recommended to use the default value. 2. The `append-to-body` attribute value of ElDialog and ElDrawer should be consistent, it is recommended to enable the `append-to-body`. -3. When the ElSubMenu component has a multi-layer popup, It is recommended to enable the `popper-append-to-body` +3. When the ElSubMenu component has a multi-layer popup, It is recommended to enable the `teleported` ::: diff --git a/docs/examples/anchor/scroll.vue b/docs/examples/anchor/scroll.vue index cc003749500f9..8cb7b88aa1d61 100644 --- a/docs/examples/anchor/scroll.vue +++ b/docs/examples/anchor/scroll.vue @@ -52,7 +52,7 @@ diff --git a/global.d.ts b/global.d.ts index f09f9ab63eb91..1a9429ffcaae3 100644 --- a/global.d.ts +++ b/global.d.ts @@ -6,6 +6,8 @@ declare module '@vue/runtime-core' { ElAside: typeof import('element-plus')['ElAside'] ElAutocomplete: typeof import('element-plus')['ElAutocomplete'] ElAvatar: typeof import('element-plus')['ElAvatar'] + ElAnchor: typeof import('element-plus')['ElAnchor'] + ElAnchorLink: typeof import('element-plus')['ElAnchorLink'] ElBacktop: typeof import('element-plus')['ElBacktop'] ElBadge: typeof import('element-plus')['ElBadge'] ElBreadcrumb: typeof import('element-plus')['ElBreadcrumb'] diff --git a/packages/components/anchor/src/anchor.ts b/packages/components/anchor/src/anchor.ts index fba9540e25a8d..eb4900086798a 100644 --- a/packages/components/anchor/src/anchor.ts +++ b/packages/components/anchor/src/anchor.ts @@ -50,8 +50,8 @@ export const anchorProps = buildProps({ * @description Set Anchor type */ type: { - type: definePropType<'defalut' | 'underline'>(String), - default: 'defalut', + type: definePropType<'default' | 'underline'>(String), + default: 'default', }, /** * @description Set Anchor direction diff --git a/packages/components/breadcrumb/src/breadcrumb.vue b/packages/components/breadcrumb/src/breadcrumb.vue index e49b505c57df4..ce4e0ec6fc198 100644 --- a/packages/components/breadcrumb/src/breadcrumb.vue +++ b/packages/components/breadcrumb/src/breadcrumb.vue @@ -2,7 +2,7 @@
@@ -11,7 +11,7 @@