@douyinfe/semi-ui 2.11.2 → 2.12.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/avatar/index.tsx +2 -2
  2. package/backtop/index.tsx +11 -7
  3. package/badge/index.tsx +1 -1
  4. package/banner/index.tsx +5 -5
  5. package/breadcrumb/index.tsx +5 -3
  6. package/button/Button.tsx +10 -8
  7. package/card/index.tsx +43 -41
  8. package/carousel/CarouselArrow.tsx +2 -0
  9. package/carousel/index.tsx +1 -0
  10. package/cascader/index.tsx +101 -123
  11. package/cascader/item.tsx +1 -1
  12. package/checkbox/checkbox.tsx +13 -2
  13. package/collapsible/index.tsx +8 -1
  14. package/datePicker/dateInput.tsx +1 -0
  15. package/datePicker/datePicker.tsx +13 -5
  16. package/dist/css/semi.css +33 -0
  17. package/dist/css/semi.min.css +1 -1
  18. package/dist/umd/semi-ui.js +694 -384
  19. package/dist/umd/semi-ui.js.map +1 -1
  20. package/dist/umd/semi-ui.min.js +1 -1
  21. package/dist/umd/semi-ui.min.js.map +1 -1
  22. package/divider/index.tsx +8 -4
  23. package/dropdown/index.tsx +1 -1
  24. package/empty/index.tsx +13 -5
  25. package/form/_story/FormSubmit/index.tsx +45 -0
  26. package/form/_story/form.stories.js +2 -1
  27. package/form/hoc/withField.tsx +1 -1
  28. package/form/label.tsx +1 -1
  29. package/grid/col.tsx +1 -1
  30. package/grid/row.tsx +1 -1
  31. package/iconButton/index.tsx +2 -1
  32. package/input/index.tsx +38 -11
  33. package/lib/cjs/avatar/index.js +4 -2
  34. package/lib/cjs/backtop/index.js +2 -1
  35. package/lib/cjs/badge/index.js +2 -1
  36. package/lib/cjs/banner/index.js +9 -4
  37. package/lib/cjs/breadcrumb/index.js +4 -3
  38. package/lib/cjs/button/Button.js +13 -3
  39. package/lib/cjs/card/index.js +10 -5
  40. package/lib/cjs/carousel/CarouselArrow.js +6 -2
  41. package/lib/cjs/carousel/index.js +2 -1
  42. package/lib/cjs/cascader/index.js +9 -6
  43. package/lib/cjs/cascader/item.js +2 -1
  44. package/lib/cjs/checkbox/checkbox.js +8 -4
  45. package/lib/cjs/collapsible/index.js +2 -1
  46. package/lib/cjs/datePicker/dateInput.d.ts +1 -1
  47. package/lib/cjs/datePicker/dateInput.js +2 -1
  48. package/lib/cjs/datePicker/datePicker.d.ts +1 -1
  49. package/lib/cjs/datePicker/datePicker.js +4 -2
  50. package/lib/cjs/datePicker/monthsGrid.d.ts +2 -2
  51. package/lib/cjs/divider/index.js +2 -1
  52. package/lib/cjs/dropdown/index.js +2 -1
  53. package/lib/cjs/empty/index.js +8 -4
  54. package/lib/cjs/form/baseForm.d.ts +1 -1
  55. package/lib/cjs/form/field.d.ts +1 -1
  56. package/lib/cjs/form/hoc/withField.js +2 -1
  57. package/lib/cjs/form/label.js +2 -1
  58. package/lib/cjs/grid/col.js +2 -1
  59. package/lib/cjs/grid/row.js +2 -1
  60. package/lib/cjs/iconButton/index.js +3 -1
  61. package/lib/cjs/input/index.js +9 -5
  62. package/lib/cjs/list/index.js +6 -3
  63. package/lib/cjs/modal/ConfirmModal.js +2 -1
  64. package/lib/cjs/modal/Modal.js +6 -2
  65. package/lib/cjs/modal/ModalContent.js +13 -6
  66. package/lib/cjs/notification/notice.js +6 -3
  67. package/lib/cjs/pagination/index.js +4 -2
  68. package/lib/cjs/popconfirm/index.js +6 -3
  69. package/lib/cjs/radio/radio.d.ts +1 -1
  70. package/lib/cjs/radio/radio.js +4 -2
  71. package/lib/cjs/radio/radioGroup.d.ts +1 -1
  72. package/lib/cjs/rating/item.js +2 -1
  73. package/lib/cjs/scrollList/index.js +6 -3
  74. package/lib/cjs/select/index.js +9 -5
  75. package/lib/cjs/select/option.js +2 -1
  76. package/lib/cjs/sideSheet/SideSheetContent.js +6 -3
  77. package/lib/cjs/skeleton/index.js +3 -1
  78. package/lib/cjs/slider/index.js +9 -5
  79. package/lib/cjs/space/index.js +2 -1
  80. package/lib/cjs/spin/index.js +7 -3
  81. package/lib/cjs/switch/index.js +6 -4
  82. package/lib/cjs/table/Table.d.ts +1 -1
  83. package/lib/cjs/table/Table.js +6 -3
  84. package/lib/cjs/tabs/TabBar.d.ts +1 -0
  85. package/lib/cjs/tabs/TabBar.js +10 -2
  86. package/lib/cjs/tabs/TabPane.js +7 -3
  87. package/lib/cjs/tabs/index.js +2 -1
  88. package/lib/cjs/tabs/interface.d.ts +1 -0
  89. package/lib/cjs/tag/index.d.ts +2 -0
  90. package/lib/cjs/tag/index.js +60 -11
  91. package/lib/cjs/tag/interface.d.ts +1 -0
  92. package/lib/cjs/tagInput/index.js +7 -4
  93. package/lib/cjs/timePicker/Combobox.js +3 -1
  94. package/lib/cjs/toast/toast.js +6 -3
  95. package/lib/cjs/transfer/index.js +2 -1
  96. package/lib/cjs/tree/treeNode.js +2 -1
  97. package/lib/cjs/treeSelect/index.js +9 -6
  98. package/lib/cjs/typography/base.js +2 -1
  99. package/lib/cjs/typography/title.d.ts +1 -1
  100. package/lib/cjs/upload/index.d.ts +1 -1
  101. package/lib/cjs/upload/index.js +13 -6
  102. package/lib/es/avatar/index.js +4 -2
  103. package/lib/es/backtop/index.js +2 -1
  104. package/lib/es/badge/index.js +2 -1
  105. package/lib/es/banner/index.js +9 -4
  106. package/lib/es/breadcrumb/index.js +4 -3
  107. package/lib/es/button/Button.js +11 -3
  108. package/lib/es/card/index.js +10 -5
  109. package/lib/es/carousel/CarouselArrow.js +6 -2
  110. package/lib/es/carousel/index.js +2 -1
  111. package/lib/es/cascader/index.js +9 -6
  112. package/lib/es/cascader/item.js +2 -1
  113. package/lib/es/checkbox/checkbox.js +8 -4
  114. package/lib/es/collapsible/index.js +2 -1
  115. package/lib/es/datePicker/dateInput.d.ts +1 -1
  116. package/lib/es/datePicker/dateInput.js +2 -1
  117. package/lib/es/datePicker/datePicker.d.ts +1 -1
  118. package/lib/es/datePicker/datePicker.js +4 -2
  119. package/lib/es/datePicker/monthsGrid.d.ts +2 -2
  120. package/lib/es/divider/index.js +2 -1
  121. package/lib/es/dropdown/index.js +2 -1
  122. package/lib/es/empty/index.js +8 -4
  123. package/lib/es/form/baseForm.d.ts +1 -1
  124. package/lib/es/form/field.d.ts +1 -1
  125. package/lib/es/form/hoc/withField.js +2 -1
  126. package/lib/es/form/label.js +2 -1
  127. package/lib/es/grid/col.js +2 -1
  128. package/lib/es/grid/row.js +2 -1
  129. package/lib/es/iconButton/index.js +3 -1
  130. package/lib/es/input/index.js +9 -5
  131. package/lib/es/list/index.js +6 -3
  132. package/lib/es/modal/ConfirmModal.js +2 -1
  133. package/lib/es/modal/Modal.js +6 -2
  134. package/lib/es/modal/ModalContent.js +13 -6
  135. package/lib/es/notification/notice.js +6 -3
  136. package/lib/es/pagination/index.js +4 -2
  137. package/lib/es/popconfirm/index.js +6 -3
  138. package/lib/es/radio/radio.d.ts +1 -1
  139. package/lib/es/radio/radio.js +4 -2
  140. package/lib/es/radio/radioGroup.d.ts +1 -1
  141. package/lib/es/rating/item.js +2 -1
  142. package/lib/es/scrollList/index.js +6 -3
  143. package/lib/es/select/index.js +9 -5
  144. package/lib/es/select/option.js +2 -1
  145. package/lib/es/sideSheet/SideSheetContent.js +6 -3
  146. package/lib/es/skeleton/index.js +3 -1
  147. package/lib/es/slider/index.js +9 -5
  148. package/lib/es/space/index.js +2 -1
  149. package/lib/es/spin/index.js +7 -3
  150. package/lib/es/switch/index.js +6 -4
  151. package/lib/es/table/Table.d.ts +1 -1
  152. package/lib/es/table/Table.js +6 -3
  153. package/lib/es/tabs/TabBar.d.ts +1 -0
  154. package/lib/es/tabs/TabBar.js +10 -2
  155. package/lib/es/tabs/TabPane.js +7 -3
  156. package/lib/es/tabs/index.js +2 -1
  157. package/lib/es/tabs/interface.d.ts +1 -0
  158. package/lib/es/tag/index.d.ts +2 -0
  159. package/lib/es/tag/index.js +56 -9
  160. package/lib/es/tag/interface.d.ts +1 -0
  161. package/lib/es/tagInput/index.js +7 -4
  162. package/lib/es/timePicker/Combobox.js +3 -1
  163. package/lib/es/toast/toast.js +6 -3
  164. package/lib/es/transfer/index.js +2 -1
  165. package/lib/es/tree/treeNode.js +2 -1
  166. package/lib/es/treeSelect/index.js +8 -5
  167. package/lib/es/typography/base.js +2 -1
  168. package/lib/es/typography/title.d.ts +1 -1
  169. package/lib/es/upload/index.d.ts +1 -1
  170. package/lib/es/upload/index.js +13 -6
  171. package/list/index.tsx +16 -4
  172. package/modal/ConfirmModal.tsx +1 -1
  173. package/modal/Modal.tsx +2 -0
  174. package/modal/ModalContent.tsx +33 -21
  175. package/notification/notice.tsx +16 -4
  176. package/package.json +9 -9
  177. package/pagination/index.tsx +16 -2
  178. package/popconfirm/index.tsx +11 -3
  179. package/radio/radio.tsx +10 -2
  180. package/rating/item.tsx +1 -1
  181. package/scrollList/index.tsx +19 -3
  182. package/select/index.tsx +13 -6
  183. package/select/option.tsx +5 -1
  184. package/sideSheet/SideSheetContent.tsx +3 -3
  185. package/skeleton/index.tsx +1 -1
  186. package/slider/index.tsx +5 -3
  187. package/space/index.tsx +1 -1
  188. package/spin/index.tsx +15 -9
  189. package/switch/index.tsx +9 -14
  190. package/table/Table.tsx +5 -3
  191. package/table/_story/v2/index.js +2 -1
  192. package/table/_story/v2/radioRowSelection.tsx +107 -0
  193. package/tabs/TabBar.tsx +8 -1
  194. package/tabs/TabPane.tsx +10 -4
  195. package/tabs/index.tsx +2 -1
  196. package/tabs/interface.ts +1 -0
  197. package/tag/index.tsx +32 -2
  198. package/tag/interface.ts +1 -0
  199. package/tagInput/index.tsx +3 -2
  200. package/timePicker/Combobox.tsx +6 -1
  201. package/toast/toast.tsx +3 -3
  202. package/transfer/index.tsx +1 -0
  203. package/tree/treeNode.tsx +1 -1
  204. package/treeSelect/index.tsx +16 -4
  205. package/typography/base.tsx +1 -1
  206. package/upload/index.tsx +107 -38
@@ -90,7 +90,9 @@ export default class ModalContent extends BaseComponent {
90
90
  let closer;
91
91
 
92
92
  if (closable) {
93
- const iconType = closeIcon || /*#__PURE__*/React.createElement(IconClose, null);
93
+ const iconType = closeIcon || /*#__PURE__*/React.createElement(IconClose, {
94
+ "x-semi-prop": "closeIcon"
95
+ });
94
96
  closer = /*#__PURE__*/React.createElement(Button, {
95
97
  "aria-label": "close",
96
98
  className: "".concat(cssClasses.DIALOG, "-close"),
@@ -111,7 +113,8 @@ export default class ModalContent extends BaseComponent {
111
113
  icon
112
114
  } = this.props;
113
115
  return icon ? /*#__PURE__*/React.createElement("span", {
114
- className: "".concat(cssClasses.DIALOG, "-icon-wrapper")
116
+ className: "".concat(cssClasses.DIALOG, "-icon-wrapper"),
117
+ "x-semi-prop": "icon"
115
118
  }, icon) : null;
116
119
  };
117
120
 
@@ -130,7 +133,8 @@ export default class ModalContent extends BaseComponent {
130
133
  }, icon, /*#__PURE__*/React.createElement(Typography.Title, {
131
134
  heading: 5,
132
135
  className: "".concat(cssClasses.DIALOG, "-title"),
133
- id: "".concat(cssClasses.DIALOG, "-title")
136
+ id: "".concat(cssClasses.DIALOG, "-title"),
137
+ "x-semi-prop": "title"
134
138
  }, title), closer);
135
139
  };
136
140
 
@@ -149,12 +153,14 @@ export default class ModalContent extends BaseComponent {
149
153
  return hasHeader ? /*#__PURE__*/React.createElement("div", {
150
154
  className: bodyCls,
151
155
  id: "".concat(cssClasses.DIALOG, "-body"),
152
- style: bodyStyle
156
+ style: bodyStyle,
157
+ "x-semi-prop": "children"
153
158
  }, children) : /*#__PURE__*/React.createElement("div", {
154
159
  className: "".concat(cssClasses.DIALOG, "-body-wrapper")
155
160
  }, icon, /*#__PURE__*/React.createElement("div", {
156
161
  className: bodyCls,
157
- style: bodyStyle
162
+ style: bodyStyle,
163
+ "x-semi-prop": "children"
158
164
  }, children), closer);
159
165
  };
160
166
 
@@ -186,7 +192,8 @@ export default class ModalContent extends BaseComponent {
186
192
  const body = this.renderBody();
187
193
  const header = this.renderHeader();
188
194
  const footer = props.footer ? /*#__PURE__*/React.createElement("div", {
189
- className: "".concat(cssClasses.DIALOG, "-footer")
195
+ className: "".concat(cssClasses.DIALOG, "-footer"),
196
+ "x-semi-prop": "footer"
190
197
  }, props.footer) : null;
191
198
  const dialogElement =
192
199
  /*#__PURE__*/
@@ -115,7 +115,8 @@ class Notice extends BaseComponent {
115
115
 
116
116
  if (iconType) {
117
117
  return /*#__PURE__*/React.createElement("div", {
118
- className: iconCls
118
+ className: iconCls,
119
+ "x-semi-prop": "icon"
119
120
  }, isSemiIcon(iconType) ? /*#__PURE__*/React.cloneElement(iconType, {
120
121
  size: iconType.props.size || 'large'
121
122
  }) : iconType);
@@ -173,9 +174,11 @@ class Notice extends BaseComponent {
173
174
  className: "".concat(prefixCls, "-content-wrapper")
174
175
  }, title ? /*#__PURE__*/React.createElement("div", {
175
176
  id: titleID,
176
- className: "".concat(prefixCls, "-title")
177
+ className: "".concat(prefixCls, "-title"),
178
+ "x-semi-prop": "title"
177
179
  }, title) : '', content ? /*#__PURE__*/React.createElement("div", {
178
- className: "".concat(prefixCls, "-content")
180
+ className: "".concat(prefixCls, "-content"),
181
+ "x-semi-prop": "content"
179
182
  }, content) : ''), showClose && /*#__PURE__*/React.createElement(Button, {
180
183
  className: "".concat(prefixCls, "-icon-close"),
181
184
  type: "tertiary",
@@ -154,7 +154,8 @@ export default class Pagination extends BaseComponent {
154
154
  "aria-disabled": prevDisabled ? true : false,
155
155
  "aria-label": "Previous",
156
156
  onClick: e => !prevDisabled && this.foundation.goPrev(e),
157
- className: preClassName
157
+ className: preClassName,
158
+ "x-semi-prop": "prevText"
158
159
  }, prevText || /*#__PURE__*/React.createElement(IconChevronLeft, {
159
160
  size: "large"
160
161
  }));
@@ -177,7 +178,8 @@ export default class Pagination extends BaseComponent {
177
178
  "aria-disabled": nextDisabled ? true : false,
178
179
  "aria-label": "Next",
179
180
  onClick: e => !nextDisabled && this.foundation.goNext(e),
180
- className: nextClassName
181
+ className: nextClassName,
182
+ "x-semi-prop": "prevText"
181
183
  }, nextText || /*#__PURE__*/React.createElement(IconChevronRight, {
182
184
  size: "large"
183
185
  }));
@@ -122,13 +122,16 @@ export default class Popconfirm extends BaseComponent {
122
122
  }, /*#__PURE__*/React.createElement("div", {
123
123
  className: "".concat(prefixCls, "-header")
124
124
  }, /*#__PURE__*/React.createElement("i", {
125
- className: "".concat(prefixCls, "-header-icon")
125
+ className: "".concat(prefixCls, "-header-icon"),
126
+ "x-semi-prop": "icon"
126
127
  }, /*#__PURE__*/React.isValidElement(icon) ? icon : null), /*#__PURE__*/React.createElement("div", {
127
128
  className: "".concat(prefixCls, "-header-body")
128
129
  }, showTitle ? /*#__PURE__*/React.createElement("div", {
129
- className: "".concat(prefixCls, "-header-title")
130
+ className: "".concat(prefixCls, "-header-title"),
131
+ "x-semi-prop": "title"
130
132
  }, title) : null, showContent ? /*#__PURE__*/React.createElement("div", {
131
- className: "".concat(prefixCls, "-header-content")
133
+ className: "".concat(prefixCls, "-header-content"),
134
+ "x-semi-prop": "content"
132
135
  }, content) : null), /*#__PURE__*/React.createElement(Button, {
133
136
  className: "".concat(prefixCls, "-btn-close"),
134
137
  icon: /*#__PURE__*/React.createElement(IconClose, null),
@@ -75,7 +75,7 @@ declare class Radio extends BaseComponent<RadioProps, RadioState> {
75
75
  prefixCls?: string;
76
76
  name?: string;
77
77
  onChange?: (e: RadioChangeEvent) => void;
78
- buttonSize?: "small" | "middle" | "large";
78
+ buttonSize?: "small" | "large" | "middle";
79
79
  isCardRadio?: boolean;
80
80
  isPureCardRadio?: boolean;
81
81
  };
@@ -165,10 +165,12 @@ class Radio extends BaseComponent {
165
165
  const renderContent = () => /*#__PURE__*/React.createElement(React.Fragment, null, children ? /*#__PURE__*/React.createElement("span", {
166
166
  className: addonCls,
167
167
  style: addonStyle,
168
- id: addonId
168
+ id: this.addonId,
169
+ "x-semi-prop": "children"
169
170
  }, children) : null, extra && !isButtonRadio ? /*#__PURE__*/React.createElement("div", {
170
171
  className: "".concat(prefix, "-extra"),
171
- id: extraId
172
+ id: this.extraId,
173
+ "x-semi-prop": "extra"
172
174
  }, extra) : null);
173
175
 
174
176
  return /*#__PURE__*/React.createElement("label", {
@@ -48,7 +48,7 @@ declare class RadioGroup extends BaseComponent<RadioGroupProps, RadioGroupState>
48
48
  disabled: PropTypes.Requireable<boolean>;
49
49
  name: PropTypes.Requireable<string>;
50
50
  options: PropTypes.Requireable<any[]>;
51
- buttonSize: PropTypes.Requireable<"small" | "middle" | "large">;
51
+ buttonSize: PropTypes.Requireable<"small" | "large" | "middle">;
52
52
  type: PropTypes.Requireable<"default" | "button" | "card" | "pureCard">;
53
53
  value: PropTypes.Requireable<any>;
54
54
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
@@ -98,7 +98,8 @@ export default class Item extends PureComponent {
98
98
  width: "".concat(firstWidth * 100, "%")
99
99
  }
100
100
  }, content), /*#__PURE__*/React.createElement("div", {
101
- className: "".concat(prefixCls, "-second")
101
+ className: "".concat(prefixCls, "-second"),
102
+ "x-semi-prop": "character"
102
103
  }, content)));
103
104
  }
104
105
 
@@ -35,16 +35,19 @@ class ScrollList extends BaseComponent {
35
35
  }, header ? /*#__PURE__*/React.createElement("div", {
36
36
  className: clsHeader
37
37
  }, /*#__PURE__*/React.createElement("div", {
38
- className: "".concat(clsHeader, "-title")
38
+ className: "".concat(clsHeader, "-title"),
39
+ "x-semi-prop": this.props['x-semi-header-alias'] || "header"
39
40
  }, header), /*#__PURE__*/React.createElement("div", {
40
41
  className: "".concat(clsWrapper, "-line")
41
42
  })) : null, /*#__PURE__*/React.createElement("div", {
42
43
  className: "".concat(clsWrapper, "-body"),
43
44
  style: {
44
45
  height: bodyHeight ? bodyHeight : ''
45
- }
46
+ },
47
+ "x-semi-prop": "children"
46
48
  }, children), footer ? /*#__PURE__*/React.createElement("div", {
47
- className: "".concat(clsWrapper, "-footer")
49
+ className: "".concat(clsWrapper, "-footer"),
50
+ "x-semi-prop": this.props['x-semi-footer-alias'] || "footer"
48
51
  }, footer) : null);
49
52
  }
50
53
 
@@ -626,7 +626,7 @@ class Select extends BaseComponent {
626
626
  role: "listbox",
627
627
  "aria-multiselectable": multiple,
628
628
  onScroll: e => this.foundation.handleListScroll(e)
629
- }, innerTopSlot, !loading ? listContent : this.renderLoading(), isEmpty && !loading ? this.renderEmpty() : null, innerBottomSlot), outerBottomSlot);
629
+ }, innerTopSlot, loading ? this.renderLoading() : isEmpty ? this.renderEmpty() : listContent, innerBottomSlot), outerBottomSlot);
630
630
  }
631
631
 
632
632
  renderSingleSelection(selections, filterable) {
@@ -663,7 +663,8 @@ class Select extends BaseComponent {
663
663
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
664
664
  className: contentWrapperCls
665
665
  }, /*#__PURE__*/React.createElement("span", {
666
- className: spanCls
666
+ className: spanCls,
667
+ "x-semi-prop": "placeholder"
667
668
  }, renderText || renderText === 0 ? renderText : placeholder), filterable && showInput ? this.renderInput() : null));
668
669
  }
669
670
 
@@ -825,7 +826,8 @@ class Select extends BaseComponent {
825
826
  ["".concat(prefixcls, "-suffix-icon")]: isSemiIcon(suffix)
826
827
  });
827
828
  return /*#__PURE__*/React.createElement("div", {
828
- className: suffixWrapperCls
829
+ className: suffixWrapperCls,
830
+ "x-semi-prop": "suffix"
829
831
  }, suffix);
830
832
  }
831
833
 
@@ -844,7 +846,8 @@ class Select extends BaseComponent {
844
846
  });
845
847
  return /*#__PURE__*/React.createElement("div", {
846
848
  className: prefixWrapperCls,
847
- id: insetLabelId
849
+ id: insetLabelId,
850
+ "x-semi-prop": "prefix,insetLabel"
848
851
  }, labelNode);
849
852
  }
850
853
 
@@ -896,7 +899,8 @@ class Select extends BaseComponent {
896
899
  });
897
900
  const showClear = this.props.showClear && (selections.size || inputValue) && !disabled && (isHovering || isOpen);
898
901
  const arrowContent = showArrow ? /*#__PURE__*/React.createElement("div", {
899
- className: "".concat(prefixcls, "-arrow")
902
+ className: "".concat(prefixcls, "-arrow"),
903
+ "x-semi-prop": "arrowIcon"
900
904
  }, arrowIcon) : /*#__PURE__*/React.createElement("div", {
901
905
  className: "".concat(prefixcls, "-arrow-empty")
902
906
  });
@@ -100,7 +100,8 @@ class Option extends PureComponent {
100
100
  return /*#__PURE__*/React.createElement(LocaleConsumer, {
101
101
  componentName: "Select"
102
102
  }, locale => /*#__PURE__*/React.createElement("div", {
103
- className: optionClassName
103
+ className: optionClassName,
104
+ "x-semi-prop": "emptyContent"
104
105
  }, emptyContent || locale.emptyText));
105
106
  } // Since there are empty, locale and other logic, the custom renderOptionItem is directly converged to the internal option instead of being placed in Select/index
106
107
 
@@ -79,7 +79,8 @@ export default class SideSheetContent extends React.PureComponent {
79
79
 
80
80
  if (title) {
81
81
  header = /*#__PURE__*/React.createElement("div", {
82
- className: "".concat(prefixCls, "-title")
82
+ className: "".concat(prefixCls, "-title"),
83
+ "x-semi-prop": "title"
83
84
  }, this.props.title);
84
85
  }
85
86
 
@@ -134,9 +135,11 @@ export default class SideSheetContent extends React.PureComponent {
134
135
  className: "".concat(prefixCls, "-content")
135
136
  }, header, /*#__PURE__*/React.createElement("div", {
136
137
  className: "".concat(prefixCls, "-body"),
137
- style: props.bodyStyle
138
+ style: props.bodyStyle,
139
+ "x-semi-prop": "children"
138
140
  }, props.children), props.footer ? /*#__PURE__*/React.createElement("div", {
139
- className: "".concat(prefixCls, "-footer")
141
+ className: "".concat(prefixCls, "-footer"),
142
+ "x-semi-prop": "footer"
140
143
  }, props.footer) : null));
141
144
  return dialogElement;
142
145
  }
@@ -43,7 +43,9 @@ class Skeleton extends PureComponent {
43
43
  content = /*#__PURE__*/React.createElement("div", _Object$assign({
44
44
  className: skCls,
45
45
  style: style
46
- }, others), placeholder);
46
+ }, others, {
47
+ "x-semi-prop": "placeholder"
48
+ }), placeholder);
47
49
  } else {
48
50
  content = children;
49
51
  }
@@ -243,7 +243,7 @@ export default class Slider extends BaseComponent {
243
243
  React.createElement("div", {
244
244
  className: cssClasses.TRACK,
245
245
  style: trackStyle,
246
- onClick: e => this.foundation.handleWrapClick(e)
246
+ onClick: this.foundation.handleWrapClick
247
247
  })
248
248
  );
249
249
  };
@@ -271,7 +271,7 @@ export default class Slider extends BaseComponent {
271
271
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
272
272
  React.createElement("span", {
273
273
  key: mark,
274
- onClick: e => this.foundation.handleWrapClick(e),
274
+ onClick: this.foundation.handleWrapClick,
275
275
  className: markClass,
276
276
  style: {
277
277
  [stylePos]: "calc(".concat(markPercent * 100, "% - 2px)")
@@ -299,12 +299,16 @@ export default class Slider extends BaseComponent {
299
299
 
300
300
  const activeResult = this.foundation.isMarkActive(Number(mark));
301
301
  const markPercent = (Number(mark) - min) / (max - min);
302
- return activeResult ? /*#__PURE__*/React.createElement("span", {
302
+ return activeResult ?
303
+ /*#__PURE__*/
304
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
305
+ React.createElement("span", {
303
306
  key: mark,
304
307
  className: cls(_concatInstanceProperty(_context3 = "".concat(prefixCls, "-mark")).call(_context3, vertical && verticalReverse ? '-reverse' : '')),
305
308
  style: {
306
309
  [stylePos]: "".concat(markPercent * 100, "%")
307
- }
310
+ },
311
+ onClick: this.foundation.handleWrapClick
308
312
  }, marks[mark]) : null;
309
313
  })) : null;
310
314
  return labelContent;
@@ -584,7 +588,7 @@ export default class Slider extends BaseComponent {
584
588
  onMouseLeave: () => this.foundation.handleWrapperLeave()
585
589
  }, /*#__PURE__*/React.createElement("div", {
586
590
  className: "".concat(prefixCls, "-rail"),
587
- onClick: e => this.foundation.handleWrapClick(e),
591
+ onClick: this.foundation.handleWrapClick,
588
592
  style: this.props.railStyle
589
593
  }), this.renderTrack(), this.renderStepDot(), /*#__PURE__*/React.createElement("div", null, this.renderHandle()), this.renderLabel(), /*#__PURE__*/React.createElement("div", {
590
594
  className: boundaryClass
@@ -66,7 +66,8 @@ class Space extends PureComponent {
66
66
  const childrenNodes = flatten(children);
67
67
  return /*#__PURE__*/React.createElement("div", {
68
68
  className: classNames,
69
- style: realStyle
69
+ style: realStyle,
70
+ "x-semi-prop": "children"
70
71
  }, childrenNodes);
71
72
  }
72
73
 
@@ -67,8 +67,11 @@ class Spin extends BaseComponent {
67
67
  return loading ? /*#__PURE__*/React.createElement("div", {
68
68
  className: "".concat(prefixCls, "-wrapper")
69
69
  }, indicator ? /*#__PURE__*/React.createElement("div", {
70
- className: spinIconCls
71
- }, indicator) : /*#__PURE__*/React.createElement(SpinIcon, null), tip ? /*#__PURE__*/React.createElement("div", null, tip) : null) : null;
70
+ className: spinIconCls,
71
+ "x-semi-prop": "indicator"
72
+ }, indicator) : /*#__PURE__*/React.createElement(SpinIcon, null), tip ? /*#__PURE__*/React.createElement("div", {
73
+ "x-semi-prop": "tip"
74
+ }, tip) : null) : null;
72
75
  }
73
76
 
74
77
  render() {
@@ -95,7 +98,8 @@ class Spin extends BaseComponent {
95
98
  style: style
96
99
  }, this.renderSpin(), /*#__PURE__*/React.createElement("div", {
97
100
  className: "".concat(prefixCls, "-children"),
98
- style: childStyle
101
+ style: childStyle,
102
+ "x-semi-prop": "children"
99
103
  }, children));
100
104
  }
101
105
 
@@ -119,19 +119,21 @@ class Switch extends BaseComponent {
119
119
  className: cssClasses.KNOB,
120
120
  "aria-hidden": true
121
121
  }), showCheckedText ? /*#__PURE__*/React.createElement("div", {
122
- className: cssClasses.CHECKED_TEXT
122
+ className: cssClasses.CHECKED_TEXT,
123
+ "x-semi-prop": "checkedText"
123
124
  }, checkedText) : null, showUncheckedText ? /*#__PURE__*/React.createElement("div", {
124
- className: cssClasses.UNCHECKED_TEXT
125
+ className: cssClasses.UNCHECKED_TEXT,
126
+ "x-semi-prop": "uncheckedText"
125
127
  }, uncheckedText) : null, /*#__PURE__*/React.createElement("input", _Object$assign({}, switchProps, {
126
128
  ref: this.switchRef,
127
129
  id: id,
128
- role: 'switch',
130
+ role: "switch",
129
131
  "aria-checked": nativeControlChecked,
130
132
  "aria-invalid": this.props['aria-invalid'],
131
133
  "aria-errormessage": this.props['aria-errormessage'],
132
134
  "aria-label": this.props['aria-label'],
133
135
  "aria-labelledby": this.props['aria-labelledby'],
134
- "aria-describedby": this.props["aria-describedby"],
136
+ "aria-describedby": this.props['aria-describedby'],
135
137
  "aria-disabled": this.props['disabled'],
136
138
  onChange: e => this.foundation.handleChange(e.target.checked, e),
137
139
  onFocus: e => this.handleFocusVisible(e),
@@ -280,7 +280,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
280
280
  * Combine pagination and table paging processing functions
281
281
  */
282
282
  mergePagination: (pagination: TablePaginationProps) => {
283
- position?: "top" | "bottom" | "both";
283
+ position?: "both" | "top" | "bottom";
284
284
  formatPageText?: import("./interface").FormatPageText;
285
285
  style?: React.CSSProperties;
286
286
  className?: string;
@@ -582,7 +582,8 @@ class Table extends BaseComponent {
582
582
  }
583
583
 
584
584
  return /*#__PURE__*/isValidElement(title) || typeof title === 'string' ? /*#__PURE__*/React.createElement("div", {
585
- className: "".concat(prefixCls, "-title")
585
+ className: "".concat(prefixCls, "-title"),
586
+ "x-semi-prop": "title"
586
587
  }, title) : null;
587
588
  };
588
589
 
@@ -607,7 +608,8 @@ class Table extends BaseComponent {
607
608
  }, (locale, localeCode) => /*#__PURE__*/React.createElement("div", {
608
609
  className: wrapCls
609
610
  }, /*#__PURE__*/React.createElement("div", {
610
- className: "".concat(prefixCls, "-empty")
611
+ className: "".concat(prefixCls, "-empty"),
612
+ "x-semi-prop": "empty"
611
613
  }, empty || locale.emptyText)));
612
614
  };
613
615
 
@@ -627,7 +629,8 @@ class Table extends BaseComponent {
627
629
 
628
630
  return /*#__PURE__*/isValidElement(footer) || typeof footer === 'string' ? /*#__PURE__*/React.createElement("div", {
629
631
  className: "".concat(prefixCls, "-footer"),
630
- key: "footer"
632
+ key: "footer",
633
+ "x-semi-prop": "footer"
631
634
  }, footer) : null;
632
635
  };
633
636
 
@@ -30,6 +30,7 @@ declare class TabBar extends React.Component<TabBarProps, TabBarState> {
30
30
  renderIcon(icon: ReactNode): ReactNode;
31
31
  renderExtra(): ReactNode;
32
32
  handleItemClick: (itemKey: string, e: MouseEvent<Element>) => void;
33
+ handleKeyDown: (event: React.KeyboardEvent, itemKey: string, closable: boolean) => void;
33
34
  renderTabItem: (panel: PlainTab) => ReactNode;
34
35
  renderTabComponents: (list: Array<PlainTab>) => Array<ReactNode>;
35
36
  handleArrowClick: (items: Array<OverflowItem>, pos: 'start' | 'end') => void;
@@ -49,6 +49,10 @@ class TabBar extends React.Component {
49
49
  }
50
50
  };
51
51
 
52
+ this.handleKeyDown = (event, itemKey, closable) => {
53
+ this.props.handleKeyDown(event, itemKey, closable);
54
+ };
55
+
52
56
  this.renderTabItem = panel => {
53
57
  const {
54
58
  size,
@@ -82,9 +86,12 @@ class TabBar extends React.Component {
82
86
  return /*#__PURE__*/React.createElement("div", _Object$assign({
83
87
  role: "tab",
84
88
  id: "semiTab".concat(key),
89
+ "data-tabkey": "semiTab".concat(key),
85
90
  "aria-controls": "semiTabPanel".concat(key),
86
91
  "aria-disabled": panel.disabled ? 'true' : 'false',
87
- "aria-selected": isSelected ? 'true' : 'false'
92
+ "aria-selected": isSelected ? 'true' : 'false',
93
+ tabIndex: isSelected ? 0 : -1,
94
+ onKeyDown: e => this.handleKeyDown(e, key, panel.closable)
88
95
  }, events, {
89
96
  className: className,
90
97
  key: this._getItemKey(key)
@@ -239,7 +246,8 @@ class TabBar extends React.Component {
239
246
 
240
247
  return /*#__PURE__*/React.createElement("div", {
241
248
  className: extraCls,
242
- style: tabBarStyle
249
+ style: tabBarStyle,
250
+ "x-semi-prop": "tabBarExtraContent"
243
251
  }, tabBarExtraContent);
244
252
  }
245
253
 
@@ -114,15 +114,19 @@ class TabPane extends PureComponent {
114
114
  "aria-labelledby": "semiTab".concat(itemKey),
115
115
  className: classNames,
116
116
  style: style,
117
- "aria-hidden": active ? 'false' : 'true'
118
- }, getDataAttr(restProps)), motion ? /*#__PURE__*/React.createElement(TabPaneTransition, {
117
+ "aria-hidden": active ? 'false' : 'true',
118
+ tabIndex: 0
119
+ }, getDataAttr(restProps), {
120
+ "x-semi-prop": "children"
121
+ }), motion ? /*#__PURE__*/React.createElement(TabPaneTransition, {
119
122
  direction: this.getDirection(this.context.activeKey, itemKey, this.context.panes),
120
123
  motion: motion,
121
124
  mode: tabPosition === 'top' ? 'horizontal' : 'vertical',
122
125
  state: active ? 'enter' : 'leave'
123
126
  }, transitionStyle => /*#__PURE__*/React.createElement("div", {
124
127
  className: "".concat(cssClasses.TABS_PANE_MOTION_OVERLAY),
125
- style: _Object$assign({}, transitionStyle)
128
+ style: _Object$assign({}, transitionStyle),
129
+ "x-semi-prop": "children"
126
130
  }, shouldRender ? children : null)) : shouldRender ? children : null);
127
131
  }
128
132
 
@@ -313,7 +313,8 @@ class Tabs extends BaseComponent {
313
313
  tabBarExtraContent,
314
314
  tabPosition,
315
315
  type,
316
- deleteTabItem: this.deleteTabItem
316
+ deleteTabItem: this.deleteTabItem,
317
+ handleKeyDown: this.foundation.handleKeyDown
317
318
  };
318
319
  const tabBar = renderTabBar ? renderTabBar(tabBarProps, TabBar) : /*#__PURE__*/React.createElement(TabBar, _Object$assign({}, tabBarProps));
319
320
  const content = keepDOM ? children : this.getActiveItem();
@@ -48,6 +48,7 @@ export interface TabBarProps {
48
48
  dropdownStyle?: CSSProperties;
49
49
  closable?: boolean;
50
50
  deleteTabItem?: (tabKey: string, event: MouseEvent<Element>) => void;
51
+ handleKeyDown?: (event: React.KeyboardEvent, itemKey: string, closable: boolean) => void;
51
52
  }
52
53
  export interface TabPaneProps {
53
54
  className?: string;
@@ -21,6 +21,7 @@ export default class Tag extends Component<TagProps, TagState> {
21
21
  className: PropTypes.Requireable<string>;
22
22
  avatarSrc: PropTypes.Requireable<string>;
23
23
  avatarShape: PropTypes.Requireable<string>;
24
+ 'aria-label': PropTypes.Requireable<string>;
24
25
  };
25
26
  constructor(props: TagProps);
26
27
  static getDerivedStateFromProps(nextProps: TagProps): {
@@ -28,6 +29,7 @@ export default class Tag extends Component<TagProps, TagState> {
28
29
  };
29
30
  setVisible(visible: boolean): void;
30
31
  close(e: React.MouseEvent<HTMLElement>, value: React.ReactNode): void;
32
+ handleKeyDown(event: any): void;
31
33
  renderAvatar(): JSX.Element;
32
34
  render(): JSX.Element;
33
35
  }