فهرست منبع

Merge branch 'release' into feat/modal_content_class

pointhalo 1 سال پیش
والد
کامیت
7ccd1f020c
37فایلهای تغییر یافته به همراه412 افزوده شده و 257 حذف شده
  1. 21 6
      content/start/changelog/index-en-US.md
  2. 22 7
      content/start/changelog/index.md
  3. 1 1
      lerna.json
  4. 3 3
      packages/semi-animation-react/package.json
  5. 1 1
      packages/semi-animation-styled/package.json
  6. 1 1
      packages/semi-animation/package.json
  7. 1 1
      packages/semi-eslint-plugin/package.json
  8. 2 2
      packages/semi-foundation/package.json
  9. 43 2
      packages/semi-foundation/select/select.scss
  10. 6 1
      packages/semi-foundation/select/variables.scss
  11. 1 1
      packages/semi-icons-lab/package.json
  12. 1 1
      packages/semi-icons/package.json
  13. 1 1
      packages/semi-illustrations/package.json
  14. 2 2
      packages/semi-next/package.json
  15. 1 1
      packages/semi-rspack/package.json
  16. 1 1
      packages/semi-scss-compile/package.json
  17. 1 1
      packages/semi-theme-default/package.json
  18. 2 4
      packages/semi-theme-default/scss/_palette.scss
  19. 1 1
      packages/semi-theme-default/scss/animation.scss
  20. 2 2
      packages/semi-theme-default/scss/global.scss
  21. 2 2
      packages/semi-ui/_base/_story/index.stories.jsx
  22. 3 1
      packages/semi-ui/autoComplete/index.tsx
  23. 3 1
      packages/semi-ui/calendar/monthCalendar.tsx
  24. 3 1
      packages/semi-ui/cascader/index.tsx
  25. 9 9
      packages/semi-ui/datePicker/datePicker.tsx
  26. 7 7
      packages/semi-ui/package.json
  27. 44 4
      packages/semi-ui/select/_story/select.stories.jsx
  28. 7 4
      packages/semi-ui/select/index.tsx
  29. 2 1
      packages/semi-ui/tagInput/index.tsx
  30. 13 11
      packages/semi-ui/timePicker/TimePicker.tsx
  31. 7 2
      packages/semi-ui/tooltip/index.tsx
  32. 22 1
      packages/semi-ui/treeSelect/_story/treeSelect.stories.jsx
  33. 4 1
      packages/semi-ui/treeSelect/index.tsx
  34. 1 1
      packages/semi-webpack/package.json
  35. 4 4
      scripts/designToken.js
  36. 15 15
      scripts/version.js
  37. 152 152
      sitemap.xml

+ 21 - 6
content/start/changelog/index-en-US.md

@@ -16,21 +16,36 @@ Version:Major.Minor.Patch (follow the **Semver** specification)
 
 ---
 
+#### 🎉 2.56.0-beta.0 (2024-04-03)
+- 【Feat】
+    - WebComponent Support:clickOutSide add support for Shadow DOM scenarios,involving components: AutoComplete、Calendar、Cascader、DatePicker、Select、TagInput、TimePicker、Tooltip、TreeSelect [@changlin2569](https://github.com/changlin2569)  [#1381](https://github.com/DouyinFE/semi-design/issues/1381) 
+    - WebComponent Support:Inject the css variable into the shadow dom through the :host, :host-context pseudo-class selectors to ensure that the Semi component style under the shadow dom is correct. [#2142](https://github.com/DouyinFE/semi-design/issues/2142) 
+    - Backtop click to increase throttle to prevent repeated triggering within duration. [@OnlyWick](https://github.com/OnlyWick)
+- 【Fix】
+    - Fixed Typography single-line css omission accuracy issue  [#1731](https://github.com/DouyinFE/semi-design/issues/1731) 
+    - Fixed the issue where the label of the last row is vertically spaced differently from other rows after selecting multiple rows when Select is multi-selected and filter is turned on. [#1667](https://github.com/DouyinFE/semi-design/issues/1667)
+- 【Style】
+    - Fixed the style issue where the height of Form.RadioGroup is inconsistent with that of the normal RadioGroup when type=button/card  [@nekocode](https://github.com/nekocode) [#1954](https://github.com/DouyinFE/semi-design/issues/1954) 
+    - Fixed the style issue where the style of RadioGroup is incorrect after being selected if the parent has overflow:hidden [@nekocode](https://github.com/nekocode) [#2126](https://github.com/DouyinFE/semi-design/issues/2126) 
+- 【Design token】
+    - Select add `$height-select_multiple_input_small`、`$height-select_multiple_input_default`、`$height-select_multiple_input_large`  used to specify the height of the input when searching is enabled [#2151](https://github.com/DouyinFE/semi-design/pull/2151)
+
+
 #### 🎉 2.55.5 (2024-04-02)
 - 【Fix】
-  - Fixed a type error caused by value not being in treeData when checkRelation in the Tree component is unRelated.
-  - Fix type error in controlled Cascader where value is not in TreeData
-  - Fixed the problem of slider tooltip not automatically hiding when the mouse is moved in some scenarios (Affected version 2.49.0 ~ 2.55.4)
+  - Fixed a type error caused by value not being in treeData when checkRelation in the Tree component is unRelated. [#2147](https://github.com/DouyinFE/semi-design/pull/2147)
+  - Fix type error in controlled Cascader where value is not in TreeData [#2146](https://github.com/DouyinFE/semi-design/pull/2146)
+  - Fixed the problem of slider tooltip not automatically hiding when the mouse is moved in some scenarios (Affected version 2.49.0 ~ 2.55.4) [#2148](https://github.com/DouyinFE/semi-design/pull/2148)
 
 #### 🎉 2.55.3 (2024-04-01)
 - 【Fix】
-  - Fixed the problem that when onChangWithObject is turned on for Select multi-selection and value is controlled, the current value does not exist in the optionList, and the rendering is not re-executed after updating other properties in the value.
+  - Fixed the problem that when onChangWithObject is turned on for Select multi-selection and value is controlled, the current value does not exist in the optionList, and the rendering is not re-executed after updating other properties in the value. [#2139](https://github.com/DouyinFE/semi-design/pull/2139)
 
 
 #### 🎉 2.55.1 (2024-03-25)
 - 【Fix】
-  - Fix: Fix collapse & collapsible keepDOM failure problem (affects versions 2.54.0-beta.0 ~ 2.55.0)
-  - Fix: Correct the default value of lazyRender for collapse, from true set in 2.54.0 to a more appropriate false, keeping the use cases where lazyRender is not set consistent with the behavior before 2.54 (affects versions 2.54.0-beta.0 ~ 2.55.0 )
+  - Fix: Fix collapse & collapsible keepDOM failure problem (affects versions 2.54.0-beta.0 ~ 2.55.0) [#2140](https://github.com/DouyinFE/semi-design/pull/2140)
+  - Fix: Correct the default value of lazyRender for collapse, from true set in 2.54.0 to a more appropriate false, keeping the use cases where lazyRender is not set consistent with the behavior before 2.54 (affects versions 2.54.0-beta.0 ~ 2.55.0) [#2140](https://github.com/DouyinFE/semi-design/pull/2140)
 
 #### 🎉 2.55.0 (2024-03-22)
 - 【Fix】

+ 22 - 7
content/start/changelog/index.md

@@ -14,24 +14,39 @@ Semi 版本号遵循 **Semver** 规范(主版本号-次版本号-修订版本
 -   不同版本间的详细关系,可查阅 [FAQ](/zh-CN/start/faq)
 
 
+#### 🎉 2.56.0-beta.0 (2024-04-03)
+- 【Feat】
+    - WebComponent 场景支持:clickOutSide 增加对 Shadow DOM 场景的支持,涉及组件包括 AutoComplete、Calendar、Cascader、DatePicker、Select、TagInput、TimePicker、Tooltip、TreeSelect [@changlin2569](https://github.com/changlin2569) [#1381](https://github.com/DouyinFE/semi-design/issues/1381) 
+    - WebComponent 场景支持:通过 :host, :host-context 伪类选择器将 css variable 注入 shadow dom,保障 Shadow DOM 下的 Semi 组件样式正确  [#2142](https://github.com/DouyinFE/semi-design/issues/2142) 
+    - Backtop 点击增加 throttle,防止duration内重复触发 [@OnlyWick](https://github.com/OnlyWick) [#2125](https://github.com/DouyinFE/semi-design/pull/2125)
+- 【Fix】
+    - 修复 Typography 单行 css 省略的精确性问题  [#1731](https://github.com/DouyinFE/semi-design/issues/1731) 
+    - 修复 Select 多选且 filter 开启的情况下,选择多行后,最后一行的标签垂直间隔于其他行不同的问题 [#1667](https://github.com/DouyinFE/semi-design/issues/1667)
+- 【Style】
+    - 修复 Form.RadioGroup 在 type=button/card 时与普通 RadioGroup的高度不一致的样式问题  [@nekocode](https://github.com/nekocode) [#1954](https://github.com/DouyinFE/semi-design/issues/1954)
+    - 修复 RadioGroup 在父级若有 overflow:hidden 的情况下选中后样式不对的问题 [@nekocode](https://github.com/nekocode) [#2126](https://github.com/DouyinFE/semi-design/issues/2126)
+- 【Design token】
+    - Select 增加 `$height-select_multiple_input_small`、`$height-select_multiple_input_default`、`$height-select_multiple_input_large` 三个 token 可用于指定开启搜索时的 input 的高度 [#2151](https://github.com/DouyinFE/semi-design/pull/2151)
+
+
 #### 🎉 2.55.5 (2024-04-02)
 - 【Fix】
-  - 修复 Tree 组件中 checkRelation 为 unRelated 时,由于 value 不在 treeData 中导致的类型错误
-  - 修复受控 Cascader 中 value 不在 TreeData 内时的类型错误
-  - 修复 slider 在一些场景下 tooltip 在 鼠标移走时不自动隐藏的问题 (影响范围 2.49.0 ~ 2.55.4 )
+  - 修复 Tree 组件中 checkRelation 为 unRelated 时,由于 value 不在 treeData 中导致的类型错误 [#2147](https://github.com/DouyinFE/semi-design/pull/2147)
+  - 修复受控 Cascader 中 value 不在 TreeData 内时的类型错误 [#2146](https://github.com/DouyinFE/semi-design/pull/2146)
+  - 修复 Slider 在一些场景下 tooltip 在 鼠标移走时不自动隐藏的问题 (影响范围 2.49.0 ~ 2.55.4 )[#2148](https://github.com/DouyinFE/semi-design/pull/2148)
 
 #### 🎉 2.55.3 (2024-04-01)
 - 【Fix】
-  - 修复 Select 多选开启 onChangWithObject 且 value 受控,当前value 并不存在于 optionList 中,更新了 value中的其他属性后渲染未重新执行的问题
+  - 修复 Select 多选开启 onChangWithObject 且 value 受控,当前value 并不存在于 optionList 中,更新了 value中的其他属性后渲染未重新执行的问题 [#2139](https://github.com/DouyinFE/semi-design/pull/2139)
 
 #### 🎉 2.55.1 (2024-03-25)
 - 【Fix】
-  - Fix: 修复 collapse & collapsible keepDOM 失效的问题 (影响版本 2.54.0-beta.0 ~ 2.55.0)
-  - Fix:修正 collapse 的 lazyRender 默认值,由 2.54.0 设置的 true 改为更合适的 false,保持未设置 lazyRender的用例与 2.54前行为的一致性 (影响版本 2.54.0-beta.0 ~ 2.55.0)
+  - Fix: 修复 collapse & collapsible keepDOM 失效的问题 (影响版本 2.54.0-beta.0 ~ 2.55.0)[#2140](https://github.com/DouyinFE/semi-design/pull/2140)
+  - Fix:修正 collapse 的 lazyRender 默认值,由 2.54.0 设置的 true 改为更合适的 false,保持未设置 lazyRender的用例与 2.54前行为的一致性 (影响版本 2.54.0-beta.0 ~ 2.55.0)[#2140](https://github.com/DouyinFE/semi-design/pull/2140)
 
 #### 🎉 2.55.0 (2024-03-22)
 - 【Fix】
-  - 修复 Table 表头选择状态在数据为空时错误被选中问题(影响 v2.51 ~ v2.54版本)  [#2128](https://github.com/DouyinFE/semi-design/issues/2128)
+  - 修复 Table 表头选择状态在数据为空时错误被选中问题(影响 v2.51 ~ v2.54版本)[#2128](https://github.com/DouyinFE/semi-design/issues/2128)
   - 修复 Split Button 在 children Button className 变化时丢失样式的问题
 
 #### 🎉 2.55.0-beta.0 (2024-03-18)

+ 1 - 1
lerna.json

@@ -1,5 +1,5 @@
 {
     "useWorkspaces": true,
     "npmClient": "yarn",
-    "version": "2.55.5"
+    "version": "2.56.0-beta.0"
 }

+ 3 - 3
packages/semi-animation-react/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@douyinfe/semi-animation-react",
-    "version": "2.55.5",
+    "version": "2.56.0-beta.0",
     "description": "motion library for semi-ui-react",
     "keywords": [
         "motion",
@@ -25,8 +25,8 @@
         "prepublishOnly": "npm run build:lib"
     },
     "dependencies": {
-        "@douyinfe/semi-animation": "2.55.5",
-        "@douyinfe/semi-animation-styled": "2.55.5",
+        "@douyinfe/semi-animation": "2.56.0-beta.0",
+        "@douyinfe/semi-animation-styled": "2.56.0-beta.0",
         "classnames": "^2.2.6"
     },
     "devDependencies": {

+ 1 - 1
packages/semi-animation-styled/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@douyinfe/semi-animation-styled",
-    "version": "2.55.5",
+    "version": "2.56.0-beta.0",
     "description": "semi styled animation",
     "keywords": [
         "semi",

+ 1 - 1
packages/semi-animation/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@douyinfe/semi-animation",
-    "version": "2.55.5",
+    "version": "2.56.0-beta.0",
     "description": "animation base library for semi-ui",
     "keywords": [
         "animation",

+ 1 - 1
packages/semi-eslint-plugin/package.json

@@ -1,6 +1,6 @@
 {
     "name": "eslint-plugin-semi-design",
-    "version": "2.55.5",
+    "version": "2.56.0-beta.0",
     "description": "semi ui eslint plugin",
     "keywords": [
         "semi",

+ 2 - 2
packages/semi-foundation/package.json

@@ -1,13 +1,13 @@
 {
     "name": "@douyinfe/semi-foundation",
-    "version": "2.55.5",
+    "version": "2.56.0-beta.0",
     "description": "",
     "scripts": {
         "build:lib": "node ./scripts/compileLib.js",
         "prepublishOnly": "npm run build:lib"
     },
     "dependencies": {
-        "@douyinfe/semi-animation": "2.55.5",
+        "@douyinfe/semi-animation": "2.56.0-beta.0",
         "async-validator": "^3.5.0",
         "classnames": "^2.2.6",
         "date-fns": "^2.29.3",

+ 43 - 2
packages/semi-foundation/select/select.scss

@@ -393,17 +393,29 @@ $overflowList: #{$prefix}-overflow-list;
         overflow: hidden;
         position: relative;
 
+        &:not(.#{$module}-content-wrapper-empty) {
+            .#{$prefix}-input-wrapper {
+                height: $height-select_multiple_input_default;
+                line-height: $height-select_multiple_input_default;
+                .#{$prefix}-input-default {
+                    height: $height-select_multiple_input_default;
+                }
+            }
+        }
+
         &-empty {
             .#{$prefix}-input-wrapper {
                 position: absolute;
                 top: 0;
                 left: 0;
                 height: 100%;
-                width: 100%;
+                .#{$prefix}-input-default {
+                    height: 100%;
+                }
+                // width: 100%; // no need to set width here, will calcuate inline style by js
             }
         }
     }
-
     .#{$prefix}-input-wrapper {
         // position: absolute;
         // top: 0;
@@ -424,6 +436,35 @@ $overflowList: #{$prefix}-overflow-list;
     }
 }
 
+.#{$multiple}.#{$filterable}.#{$module}-large {
+    .#{$module}-content-wrapper {
+        &:not(.#{$module}-content-wrapper-empty) {
+            .#{$prefix}-input-wrapper-large {
+                height: $height-select_multiple_input_large;
+                line-height: $height-select_multiple_input_large;
+                .#{$prefix}-input-large {
+                    height: $height-select_multiple_input_large
+                }
+            }
+        }
+    }
+}
+
+.#{$multiple}.#{$filterable}.#{$module}-small {
+    .#{$module}-content-wrapper {
+        &:not(.#{$module}-content-wrapper-empty) {
+            .#{$prefix}-input-wrapper {
+                height: $height-select_multiple_input_small;
+                line-height: $height-select_multiple_input_small;
+                .#{$prefix}-input-small {
+                    height: $height-select_multiple_input_small;
+                }
+            }
+        }
+    }
+}
+
+
 .#{$module}-option-list-wrapper {
     padding-top: $spacing-select_option_list-paddingTop;
     padding-bottom: $spacing-select_option_list-paddingBottom;

+ 6 - 1
packages/semi-foundation/select/variables.scss

@@ -65,7 +65,12 @@ $width-select_arrow: 32px; // 选择器输入框下拉箭头宽度
 $width-select_arrow_empty: 12px; // 选择器输入框下拉箭头为空时(有suffix icon)宽度
 $width-select_clear-icon: 32px; // 选择器输入框清空按钮宽度
 $width-select_group_top-border: $border-thickness-control; // 选择器菜单分组标题描边宽度
-$height-select_multiple_content_wrapper-minHeight: $height-select_default - 2px; // 多项选择器标签组最小宽度
+$height-select_multiple_content_wrapper-minHeight: $height-select_default - 2px; // 多项选择器标签组最小高度
+
+$height-select_multiple_input_small: 20px; // 小尺寸多项选择器输入框Input框高度
+$height-select_multiple_input_default: 24px; // 默认多项选择器输入框Input框高度
+$height-select_multiple_input_large: 24px; // 大尺寸多项选择器输入框Input框高度
+
 $width-select-border-hover: $width-select-border;  // 选择器输入框描边宽度 - 悬浮
 $width-select-border-focus: $width-select-border-hover; // 选择器输入框描边宽度 - 按下
 $width-select-border-active: $width-select-border-focus; // 选择器输入框描边宽度 - 选中

+ 1 - 1
packages/semi-icons-lab/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@douyinfe/semi-icons-lab",
-  "version": "2.55.5",
+  "version": "2.56.0-beta.0",
   "description": "semi icons lab",
   "keywords": [
     "semi",

+ 1 - 1
packages/semi-icons/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@douyinfe/semi-icons",
-    "version": "2.55.5",
+    "version": "2.56.0-beta.0",
     "description": "semi icons",
     "keywords": [
         "semi",

+ 1 - 1
packages/semi-illustrations/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@douyinfe/semi-illustrations",
-    "version": "2.55.5",
+    "version": "2.56.0-beta.0",
     "description": "semi illustrations",
     "keywords": [
         "semi",

+ 2 - 2
packages/semi-next/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@douyinfe/semi-next",
-    "version": "2.55.5",
+    "version": "2.56.0-beta.0",
     "description": "Plugin that support Semi Design in Next.js",
     "author": "伍浩威 <[email protected]>",
     "homepage": "",
@@ -23,7 +23,7 @@
         "typescript": "^4"
     },
     "dependencies": {
-        "@douyinfe/semi-webpack-plugin": "2.55.5"
+        "@douyinfe/semi-webpack-plugin": "2.56.0-beta.0"
     },
     "gitHead": "eb34a4f25f002bb4cbcfa51f3df93bed868c831a"
 }

+ 1 - 1
packages/semi-rspack/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@douyinfe/semi-rspack-plugin",
-    "version": "2.55.5",
+    "version": "2.56.0-beta.0",
     "description": "",
     "homepage": "",
     "license": "MIT",

+ 1 - 1
packages/semi-scss-compile/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@douyinfe/semi-scss-compile",
-    "version": "2.55.5",
+    "version": "2.56.0-beta.0",
     "description": "compile semi scss to css",
     "author": "[email protected]",
     "license": "MIT",

+ 1 - 1
packages/semi-theme-default/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@douyinfe/semi-theme-default",
-    "version": "2.55.5",
+    "version": "2.56.0-beta.0",
     "description": "semi-theme-default",
     "keywords": [
         "semi-theme",

+ 2 - 4
packages/semi-theme-default/scss/_palette.scss

@@ -1,5 +1,4 @@
-body,
-body .semi-always-light {
+body, body .semi-always-light, :host, :host .semi-always-light {
     --semi-amber-0: 254,251,235;
     --semi-amber-1: 252,245,206;
     --semi-amber-2: 249,232,158;
@@ -164,8 +163,7 @@ body .semi-always-light {
     --semi-yellow-9: 83,72,0;
 }
 
-body[theme-mode="dark"],
-body .semi-always-dark {
+body[theme-mode="dark"], body .semi-always-dark, :host-context(body[theme-mode="dark"]), :host .semi-always-dark {
     --semi-red-0: 108,9,11;
     --semi-red-1: 144,17,16;
     --semi-red-2: 180,32,25;

+ 1 - 1
packages/semi-theme-default/scss/animation.scss

@@ -1,4 +1,4 @@
-body{
+body, :host {
 
 
   --semi-transition_duration-slowest:0ms;

+ 2 - 2
packages/semi-theme-default/scss/global.scss

@@ -1,6 +1,6 @@
 @import "./_palette.scss";
 
-body, body[theme-mode="dark"] .semi-always-light {
+body, body[theme-mode="dark"] .semi-always-light, :host, :host .semi-always-light {
     font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     --semi-color-white: rgba(var(--semi-white), 1); // 浅色模式下深色背景内容Inverse
@@ -125,7 +125,7 @@ body, body[theme-mode="dark"] .semi-always-light {
     --semi-color-data-19: rgba(188, 198, 255, 1); //vchart 数据色板颜色 - 19
 }
 
-body[theme-mode="dark"], body .semi-always-dark {
+body[theme-mode="dark"], body .semi-always-dark, :host-context(body[theme-mode="dark"]), :host .semi-always-dark {
     font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     --semi-color-white: rgba(228, 231, 245, 1);

+ 2 - 2
packages/semi-ui/_base/_story/index.stories.jsx

@@ -124,11 +124,11 @@ semiGlobal.config.overrideDefaultProps = {
     },
     Select: {
         zIndex: 2000,
-        getPopupContainer: () => document.querySelector('#popupContainer')
+        // getPopupContainer: () => document.querySelector('#popupContainer')
     },
     Tooltip: {
         zIndex: 2001,
-        getPopupContainer: () => document.querySelector('#popupContainer'),
+        // getPopupContainer: () => document.querySelector('#popupContainer'),
         trigger:"click"
     },
 };

+ 3 - 1
packages/semi-ui/autoComplete/index.tsx

@@ -305,11 +305,13 @@ class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<AutoComple
                     const triggerDom = this.triggerRef && this.triggerRef.current;
                     const optionsDom = ReactDOM.findDOMNode(optionInstance);
                     const target = e.target as Element;
+                    const path = e.composedPath && e.composedPath() || [target];
                     if (
                         optionsDom &&
                         (!optionsDom.contains(target) || !optionsDom.contains(target.parentNode)) &&
                         triggerDom &&
-                        !triggerDom.contains(target)
+                        !triggerDom.contains(target) &&
+                        !(path.includes(triggerDom) || path.includes(optionsDom))
                     ) {
                         cb(e);
                     }

+ 3 - 1
packages/semi-ui/calendar/monthCalendar.tsx

@@ -87,7 +87,9 @@ export default class monthCalendar extends BaseComponent<MonthCalendarProps, Mon
                 const clickOutsideHandler = (e: MouseEvent) => {
                     const cardInstance = this.cardRef && this.cardRef.get(key);
                     const cardDom = ReactDOM.findDOMNode(cardInstance);
-                    if (cardDom && !cardDom.contains(e.target as any)) {
+                    const target = e.target as Element;
+                    const path = e.composedPath && e.composedPath() || [target];
+                    if (cardDom && !cardDom.contains(target) && !path.includes(cardDom)) {
                         cb();
                     }
                 };

+ 3 - 1
packages/semi-ui/cascader/index.tsx

@@ -313,11 +313,13 @@ class Cascader extends BaseComponent<CascaderProps, CascaderState> {
                     const triggerDom = this.triggerRef && this.triggerRef.current;
                     const optionsDom = ReactDOM.findDOMNode(optionInstance);
                     const target = e.target as Element;
+                    const path = e.composedPath && e.composedPath() || [target];
                     if (
                         optionsDom &&
                         (!optionsDom.contains(target) || !optionsDom.contains(target.parentNode)) &&
                         triggerDom &&
-                        !triggerDom.contains(target)
+                        !triggerDom.contains(target) &&
+                        !(path.includes(triggerDom) || path.includes(optionsDom))
                     ) {
                         cb(e);
                     }

+ 9 - 9
packages/semi-ui/datePicker/datePicker.tsx

@@ -258,15 +258,15 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
                 this.clickOutSideHandler = e => {
                     const triggerEl = this.triggerElRef && this.triggerElRef.current;
                     const panelEl = this.panelRef && this.panelRef.current;
-                    const isInTrigger = triggerEl && triggerEl.contains(e.target as Node);
-                    const isInPanel = panelEl && panelEl.contains(e.target as Node);
-                    const clickOutSide = !isInTrigger && !isInPanel && this._mounted;
-                    if (this.adapter.needConfirm()) {
-                        clickOutSide && this.props.onClickOutSide();
-                        return;
-                    } else {
-                        if (clickOutSide) {
-                            this.props.onClickOutSide();
+                    const target = e.target as Element;
+                    const path = e.composedPath && e.composedPath() || [target];
+                    if (
+                        !(triggerEl && triggerEl.contains(target)) &&
+                        !(panelEl && panelEl.contains(target)) &&
+                        !(path.includes(triggerEl) || path.includes(panelEl))
+                    ) {
+                        this.props.onClickOutSide();
+                        if (!this.adapter.needConfirm()) {
                             this.foundation.closePanel(e);
                         }
                     }

+ 7 - 7
packages/semi-ui/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@douyinfe/semi-ui",
-    "version": "2.55.5",
+    "version": "2.56.0-beta.0",
     "description": "A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.",
     "main": "lib/cjs/index.js",
     "module": "lib/es/index.js",
@@ -20,12 +20,12 @@
         "@dnd-kit/core": "^6.0.8",
         "@dnd-kit/sortable": "^7.0.2",
         "@dnd-kit/utilities": "^3.2.1",
-        "@douyinfe/semi-animation": "2.55.5",
-        "@douyinfe/semi-animation-react": "2.55.5",
-        "@douyinfe/semi-foundation": "2.55.5",
-        "@douyinfe/semi-icons": "2.55.5",
-        "@douyinfe/semi-illustrations": "2.55.5",
-        "@douyinfe/semi-theme-default": "2.55.5",
+        "@douyinfe/semi-animation": "2.56.0-beta.0",
+        "@douyinfe/semi-animation-react": "2.56.0-beta.0",
+        "@douyinfe/semi-foundation": "2.56.0-beta.0",
+        "@douyinfe/semi-icons": "2.56.0-beta.0",
+        "@douyinfe/semi-illustrations": "2.56.0-beta.0",
+        "@douyinfe/semi-theme-default": "2.56.0-beta.0",
         "async-validator": "^3.5.0",
         "classnames": "^2.2.6",
         "copy-text-to-clipboard": "^2.1.1",

+ 44 - 4
packages/semi-ui/select/_story/select.stories.jsx

@@ -855,7 +855,27 @@ SelectFilterSingle.story = {
 };
 
 export const SelectFilterMultiple = () => (
-  <>
+  <Space>
+    <Select
+      filter
+      multiple={true}
+      style={{
+        width: '250px',
+      }}
+      size='small'
+      placeholder="fefe"
+    >
+      <Option value={1}>opt1</Option>
+      <Option value={2}>opt2</Option>
+      <Option value={3}>opt3</Option>
+      <Option value={4}>opt4</Option>
+      <Option value={5}>opt5</Option>
+      <Option value={6}>opt6</Option>
+      <Option value={7}>opt7</Option>
+      <Option value={8}>opt8</Option>
+      <Option value={9}>opt9</Option>
+      <Option value={10}>opt10</Option>
+    </Select>
     <Select
       filter
       multiple={true}
@@ -866,13 +886,34 @@ export const SelectFilterMultiple = () => (
     >
       <Option value={1}>opt1</Option>
       <Option value={2}>opt2</Option>
-      <Option value={3}>opt22</Option>
       <Option value={3}>opt3</Option>
       <Option value={4}>opt4</Option>
       <Option value={5}>opt5</Option>
       <Option value={6}>opt6</Option>
       <Option value={7}>opt7</Option>
       <Option value={8}>opt8</Option>
+      <Option value={9}>opt9</Option>
+      <Option value={10}>opt10</Option>
+    </Select>
+    <Select
+      filter
+      size='large'
+      multiple={true}
+      style={{
+        width: '250px',
+      }}
+      placeholder="fefe"
+    >
+      <Option value={1}>opt1</Option>
+      <Option value={2}>opt2</Option>
+      <Option value={3}>opt3</Option>
+      <Option value={4}>opt4</Option>
+      <Option value={5}>opt5</Option>
+      <Option value={6}>opt6</Option>
+      <Option value={7}>opt7</Option>
+      <Option value={8}>opt8</Option>
+      <Option value={9}>opt9</Option>
+      <Option value={10}>opt10</Option>
     </Select>
     <Select
       filter
@@ -885,7 +926,6 @@ export const SelectFilterMultiple = () => (
     >
       <Option value={1}>opt1</Option>
       <Option value={2}>opt2</Option>
-      <Option value={3}>opt22</Option>
       <Option value={3}>opt3</Option>
       <Option value={4}>opt4</Option>
       <Option value={5}>opt5</Option>
@@ -893,7 +933,7 @@ export const SelectFilterMultiple = () => (
       <Option value={7}>opt7</Option>
       <Option value={8}>opt8</Option>
     </Select>
-  </>
+  </Space>
 );
 
 SelectFilterMultiple.story = {

+ 7 - 4
packages/semi-ui/select/index.tsx

@@ -453,10 +453,13 @@ class Select extends BaseComponent<SelectProps, SelectState> {
                     const optionInstance = this.optionsRef && this.optionsRef.current;
                     const triggerDom = (this.triggerRef && this.triggerRef.current) as Element;
                     const optionsDom = ReactDOM.findDOMNode(optionInstance as ReactInstance);
-                    // let isInPanel = optionsDom && optionsDom.contains(e.target);
-                    // let isInTrigger = triggerDom && triggerDom.contains(e.target);
-                    if (optionsDom && !optionsDom.contains(e.target as Node) &&
-                        triggerDom && !triggerDom.contains(e.target as Node)) {
+                    const target = e.target as Element;
+                    const path = (e as any).composedPath && (e as any).composedPath() || [target];
+
+                    if (!(optionsDom && optionsDom.contains(target)) &&
+                        !(triggerDom && triggerDom.contains(target)) &&
+                        !(path.includes(triggerDom) || path.includes(optionsDom))
+                    ) {
                         cb(e);
                     }
                 };

+ 2 - 1
packages/semi-ui/tagInput/index.tsx

@@ -253,7 +253,8 @@ class TagInput extends BaseComponent<TagInputProps, TagInputState> {
                 const clickOutsideHandler = (e: Event) => {
                     const tagInputDom = this.tagInputRef && this.tagInputRef.current;
                     const target = e.target as Element;
-                    if (tagInputDom && !tagInputDom.contains(target)) {
+                    const path = e.composedPath && e.composedPath() || [target];
+                    if (tagInputDom && !tagInputDom.contains(target) && !path.includes(tagInputDom)) {
                         cb(e);
                     }
                 };

+ 13 - 11
packages/semi-ui/timePicker/TimePicker.tsx

@@ -213,6 +213,7 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
     foundation: TimePickerFoundation;
     timePickerRef: React.MutableRefObject<HTMLDivElement>;
     savePanelRef: React.RefObject<HTMLDivElement>;
+    useCustomTrigger: boolean;
 
     clickOutSideHandler: (e: MouseEvent) => void;
 
@@ -236,6 +237,7 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
         this.foundation = new TimePickerFoundation(this.adapter);
         this.timePickerRef = React.createRef();
         this.savePanelRef = React.createRef();
+        this.useCustomTrigger = typeof this.props.triggerRender === 'function';
     }
 
     get adapter(): TimePickerAdapter<TimePickerProps, TimePickerState> {
@@ -250,14 +252,15 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
                 }
                 this.clickOutSideHandler = e => {
                     const panel = this.savePanelRef && this.savePanelRef.current;
-                    const isInPanel = e.target && panel && panel.contains(e.target as Node);
-                    const isInTimepicker =
-                        this.timePickerRef &&
-                        this.timePickerRef.current &&
-                        this.timePickerRef.current.contains(e.target as Node);
-                    if (!isInTimepicker && !isInPanel) {
-                        const clickedOutside = true;
-                        this.foundation.handlePanelClose(clickedOutside, e);
+                    const trigger = this.timePickerRef && this.timePickerRef.current;
+                    const target = e.target as Element;
+                    const path = e.composedPath && e.composedPath() || [target];
+
+                    if (!(panel && panel.contains(target)) &&
+                        !(trigger && trigger.contains(target)) &&
+                        !(path.includes(trigger) || path.includes(panel))
+                    ) {
+                        this.foundation.handlePanelClose(true, e);
                     }
                 };
                 document.addEventListener('mousedown', this.clickOutSideHandler);
@@ -478,7 +481,6 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
         } = this.props;
         const format = this.foundation.getDefaultFormatIfNeed();
         const position = this.foundation.getPosition();
-        const useCustomTrigger = typeof triggerRender === 'function';
 
         const { open, inputValue, invalid, value } = this.state;
         const popupClassName = this.getPopupClassName();
@@ -514,7 +516,7 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
 
         const outerProps = {} as { onClick: () => void };
 
-        if (useCustomTrigger) {
+        if (this.useCustomTrigger) {
             outerProps.onClick = this.openPanel;
         }
 
@@ -540,7 +542,7 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
                     autoAdjustOverflow={autoAdjustOverflow}
                     stopPropagation={stopPropagation}
                 >
-                    {useCustomTrigger ? (
+                    {this.useCustomTrigger ? (
                         <Trigger
                             triggerRender={triggerRender}
                             disabled={disabled}

+ 7 - 2
packages/semi-ui/tooltip/index.tsx

@@ -349,9 +349,14 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
                     let popupEl = this.containerEl && this.containerEl.current;
                     el = ReactDOM.findDOMNode(el as React.ReactInstance);
                     popupEl = ReactDOM.findDOMNode(popupEl as React.ReactInstance) as HTMLDivElement;
+                    const target = e.target as Element;
+                    const path = (e as any).composedPath && (e as any).composedPath() || [target];
+                    const isClickTriggerToHide = this.props.clickTriggerToHide ? el && (el as any).contains(target) || path.includes(el) : false;
                     if (
-                        (el && !(el as any).contains(e.target) && popupEl && !(popupEl as any).contains(e.target)) ||
-                        (this.props.clickTriggerToHide && el && (el as any).contains(e.target))
+                        el && !(el as any).contains(target) && 
+                        popupEl && !(popupEl as any).contains(target) && 
+                        !(path.includes(popupEl) || path.includes(el)) ||
+                        isClickTriggerToHide
                     ) {
                         this.props.onClickOutSide(e);
                         cb();

+ 22 - 1
packages/semi-ui/treeSelect/_story/treeSelect.stories.jsx

@@ -1,4 +1,5 @@
 import React, { useState, useMemo, useRef, useCallback, useEffect } from 'react';
+import ReactDOM from 'react-dom';
 import { Icon, Input, Button, Form, Popover, Tag, Typography, CheckboxGroup, TagInput, Switch, Tree } from '../../index';
 import TreeSelect from '../index';
 import { flattenDeep } from 'lodash';
@@ -2684,4 +2685,24 @@ export const Issue1542 = () => {
       />
     </>  
   );
-};
+};
+
+class WebComponentWrapper extends HTMLElement {
+  constructor() {
+      super();
+      this.attachShadow({ mode: 'open' });
+  }
+
+  connectedCallback() {
+      ReactDOM.render(<_TreeSelect />, this.shadowRoot);
+  }
+}
+
+customElements.define('my-web-component', WebComponentWrapper);
+
+export const WebCompTestOutside = () => {
+
+  return (
+    <my-web-component></my-web-component>
+  );
+};

+ 4 - 1
packages/semi-ui/treeSelect/index.tsx

@@ -638,6 +638,8 @@ class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState> {
                     const triggerDom = this.triggerRef && this.triggerRef.current;
                     const optionsDom = ReactDOM.findDOMNode(optionInstance);
                     const target = e.target as Element;
+                    const path = e.composedPath && e.composedPath() || [target];
+
                     if (
                         optionsDom &&
                         (
@@ -645,7 +647,8 @@ class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState> {
                             !optionsDom.contains(target.parentNode)
                         ) &&
                         triggerDom &&
-                        !triggerDom.contains(target)
+                        !triggerDom.contains(target) &&
+                        !(path.includes(triggerDom) || path.includes(optionsDom))
                     ) {
                         cb(e);
                     }

+ 1 - 1
packages/semi-webpack/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@douyinfe/semi-webpack-plugin",
-    "version": "2.55.5",
+    "version": "2.56.0-beta.0",
     "description": "",
     "author": "伍浩威 <[email protected]>",
     "homepage": "",

+ 4 - 4
scripts/designToken.js

@@ -17,10 +17,10 @@ const getTokenCategory = codeLine => {
 const codeLineSplit = codeLine => {
     const [key, value, comment] = codeLine.split(/:|\/\/|\/\*/).map(code => code.trim()).filter(code => code);
     let category = getTokenCategory(codeLine);
-    if (category==='transition'){
+    if (category==='transition') {
         category = "animation";
     }
-    return { key, value: lodash.trimEnd(value, ';'), comment:comment && comment.replace("ignore-semi-css-trans", ""), category: category, raw: codeLine };
+    return { key, value: lodash.trimEnd(value, ';'), comment: comment && comment.replace("ignore-semi-css-trans", ""), category: category, raw: codeLine };
 };
 
 const getGlobalDesignToken = () => {
@@ -95,7 +95,7 @@ const getGlobalDesignToken = () => {
             token.category="animation";
             return token;
         });
-    return { global: globalScssContent, palette: paletteContent, normal: normalContent, animation:animationContent };
+    return { global: globalScssContent, palette: paletteContent, normal: normalContent, animation: animationContent };
 };
 
 // 官网组件 design token 注入
@@ -111,7 +111,7 @@ async function main() {
             componentVariablesMap[dirname.toLowerCase()] = scssCodeLineList.map(codeLine => codeLineSplit(codeLine));
         }
         const animationSCSSPath = path.join(semiUIDir, dirname, 'animation.scss');
-        if (fs.existsSync(animationSCSSPath)){
+        if (fs.existsSync(animationSCSSPath)) {
             const raw = fs.readFileSync(animationSCSSPath, { encoding: 'utf-8' });
             const scssCodeLineList = raw.split('\n').filter(codeLine => codeLine && !isComment(codeLine));
             animationVariablesMap[dirname.toLowerCase()] = scssCodeLineList.map(codeLine => codeLineSplit(codeLine));

+ 15 - 15
scripts/version.js

@@ -3,30 +3,30 @@ const semver = require('semver');
 
 const findLatestVersion = (versionSet) => {
     return [...versionSet].find(v => v === semver.coerce(v).raw);
-}
+};
 
 const getAlphaVersion = (versionSet) => {
     let latestVersion = findLatestVersion(versionSet);
     const nextBetaVersion = semver.inc(latestVersion, 'preminor', 'beta');
-    // 如果已经有beta版本了,那么就得发下个版本的alplh
+    // 如果已经有beta版本了,那么就得发下个版本的alpla
     if (versionSet.has(nextBetaVersion)) {
         latestVersion = semver.inc(latestVersion, 'minor');
     }
     let nextVersion = semver.inc(latestVersion, 'preminor', 'alpha');
     while (versionSet.has(nextVersion)) {
-        nextVersion = semver.inc(nextVersion, 'prerelease', 'alpha')
+        nextVersion = semver.inc(nextVersion, 'prerelease', 'alpha');
     }
     return nextVersion;
-}
+};
 
 const getBetaVersion = (versionSet) => {
     const latestVersion = findLatestVersion(versionSet);
     let nextVersion = semver.inc(latestVersion, 'preminor', 'beta');
     while (versionSet.has(nextVersion)) {
-        nextVersion = semver.inc(nextVersion, 'prerelease', 'beta')
+        nextVersion = semver.inc(nextVersion, 'prerelease', 'beta');
     }
     return nextVersion;
-}
+};
 
 const getHotfixVersion = (versionSet) => {
     const latestVersion = findLatestVersion(versionSet);
@@ -34,20 +34,20 @@ const getHotfixVersion = (versionSet) => {
     while (versionSet.has(nextVersion)) {
         nextVersion = semver.inc(nextVersion, 'prerelease', 'beta');
     }
-    return nextVersion
-}
+    return nextVersion;
+};
 
 const getMinorVersion = (versionSet) => {
     const latestVersion = findLatestVersion(versionSet);
     const nextVersion = semver.inc(latestVersion, 'minor');
-    return nextVersion
-}
+    return nextVersion;
+};
 
 const getPatchVersion = (versionSet) => {
     const latestVersion = findLatestVersion(versionSet);
     const nextVersion = semver.inc(latestVersion, 'patch');
-    return nextVersion
-}
+    return nextVersion;
+};
 
 
 const generateVersions = (versionSet, releaseType) => {
@@ -69,11 +69,11 @@ const generateVersions = (versionSet, releaseType) => {
 
 
 function main() {
-    const versionList = JSON.parse(process.env.VERSION_LIST)
-    const releaseType = process.env.RELEASE_TYPE
+    const versionList = JSON.parse(process.env.VERSION_LIST);
+    const releaseType = process.env.RELEASE_TYPE;
     const sortedVersionList = versionList.sort(semver.rcompare);
     const sortedVersionSet = new Set(sortedVersionList);
     return generateVersions(sortedVersionSet, releaseType);
 }
 
-console.log(main())
+console.log(main());

+ 152 - 152
sitemap.xml

@@ -2,22 +2,22 @@
 <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
     <url>
         <loc>https://juejin.cn/post/7267418854124699702</loc>
-        <lastmod>2024-04-02T07:21:32.704Z</lastmod>
+        <lastmod>2024-04-03T07:36:14.165Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://medium.com/front-end-weekly/how-we-test-semi-design-component-libraries-64b854f63b65</loc>
-        <lastmod>2024-04-02T07:21:31.743Z</lastmod>
+        <lastmod>2024-04-03T07:36:13.986Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://mp.weixin.qq.com/s/noHoWRuA25PgqFNcurhIUA</loc>
-        <lastmod>2024-04-02T07:21:35.299Z</lastmod>
+        <lastmod>2024-04-03T07:36:16.553Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://mp.weixin.qq.com/s/O3js-SZDNPEOjGxh-aAkbw</loc>
-        <lastmod>2024-04-02T07:21:35.208Z</lastmod>
+        <lastmod>2024-04-03T07:36:16.892Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
@@ -646,15 +646,15 @@
     </url>
     <url>
         <loc>https://semi.design/design/zh-CN/visual/iconography</loc>
-        <lastmod>2024-03-18T12:30:45.347Z</lastmod>
+        <lastmod>2024-04-03T07:36:20.461Z</lastmod>
         <changefreq>weekly</changefreq>
-        <scm>1.0.0.133</scm>
+        <scm>1.0.0.130</scm>
     </url>
     <url>
         <loc>https://semi.design/design/zh-CN/visual/layout</loc>
-        <lastmod>2024-04-02T07:21:40.694Z</lastmod>
+        <lastmod>2024-04-03T07:36:20.335Z</lastmod>
         <changefreq>weekly</changefreq>
-        <scm>1.0.0.130</scm>
+        <scm>1.0.0.133</scm>
     </url>
     <url>
         <loc>https://semi.design/design/zh-CN/visual/spacings</loc>
@@ -790,77 +790,77 @@
     </url>
     <url>
         <loc>https://semi.design/en-US/basic/divider</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/basic/grid</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/basic/icon</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/basic/layout</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/basic/space</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/basic/tokens</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/basic/typography</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/feedback/banner</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/feedback/notification</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/feedback/popconfirm</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/feedback/progress</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/feedback/skeleton</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/feedback/spin</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/feedback/toast</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/autocomplete</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
@@ -870,362 +870,362 @@
     </url>
     <url>
         <loc>https://semi.design/en-US/input/cascader</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/checkbox</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/datepicker</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/form</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/input</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/inputnumber</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/radio</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/rating</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/select</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/slider</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/switch</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/taginput</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/timepicker</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/transfer</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/treeselect</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/input/upload</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/navigation/anchor</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/navigation/backtop</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/navigation/breadcrumb</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/navigation/navigation</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/navigation/pagination</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/navigation/steps</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/navigation/tabs</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/navigation/tree</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/other/configprovider</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/other/locale</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/avatar</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/badge</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/calendar</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/card</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/carousel</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/collapse</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/collapsible</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/descriptions</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/dropdown</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/empty</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/highlight</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/image</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/list</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/modal</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/overflowlist</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/popover</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/scrolllist</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/sidesheet</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/table</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/tag</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/timeline</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/show/tooltip</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/start/accessibility</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/start/changelog</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/start/customize-theme</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/start/dark-mode</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/start/faq</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/start/getting-started</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/start/introduction</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/start/overview</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/en-US/start/update-to-v2</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/basic/divider</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/basic/grid</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/basic/icon</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/basic/layout</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/basic/space</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/basic/tokens</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/basic/typography</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/feedback/banner</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/feedback/notification</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/feedback/popconfirm</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/feedback/progress</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/feedback/skeleton</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/feedback/spin</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/feedback/toast</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/autocomplete</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
@@ -1235,287 +1235,287 @@
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/cascader</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/checkbox</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/datepicker</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/form</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/input</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/inputnumber</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/radio</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/rating</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/select</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/slider</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/switch</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/taginput</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/timepicker</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/transfer</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/treeselect</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/input/upload</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/navigation/anchor</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/navigation/backtop</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/navigation/breadcrumb</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/navigation/navigation</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/navigation/pagination</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/navigation/steps</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/navigation/tabs</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/navigation/tree</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/other/configprovider</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/other/locale</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/avatar</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/badge</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/calendar</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/card</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/carousel</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/collapse</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/collapsible</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/descriptions</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/dropdown</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/empty</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/highlight</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/image</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/list</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/modal</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/overflowlist</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/popover</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/scrolllist</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/sidesheet</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/table</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/tag</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/timeline</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/show/tooltip</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/start/accessibility</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/start/changelog</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/start/customize-theme</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/start/dark-mode</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/start/faq</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/start/getting-started</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/start/introduction</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/start/overview</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
     <url>
         <loc>https://semi.design/zh-CN/start/update-to-v2</loc>
-        <lastmod>2024-04-02T06:46:30.000Z</lastmod>
+        <lastmod>2024-04-03T07:33:24.000Z</lastmod>
         <changefreq>weekly</changefreq>
     </url>
 </urlset>