@douyinfe/semi-ui 2.12.0 → 2.12.1-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 (170) 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 +40 -40
  17. package/dist/css/semi.min.css +1 -1
  18. package/dist/umd/semi-ui.js +491 -362
  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/hoc/withField.tsx +1 -1
  26. package/form/label.tsx +1 -1
  27. package/grid/col.tsx +1 -1
  28. package/grid/row.tsx +1 -1
  29. package/iconButton/index.tsx +2 -1
  30. package/input/index.tsx +38 -11
  31. package/lib/cjs/avatar/index.js +4 -2
  32. package/lib/cjs/backtop/index.js +2 -1
  33. package/lib/cjs/badge/index.js +2 -1
  34. package/lib/cjs/banner/index.js +9 -4
  35. package/lib/cjs/breadcrumb/index.js +4 -3
  36. package/lib/cjs/button/Button.js +13 -3
  37. package/lib/cjs/card/index.js +10 -5
  38. package/lib/cjs/carousel/CarouselArrow.js +6 -2
  39. package/lib/cjs/carousel/index.js +2 -1
  40. package/lib/cjs/cascader/index.js +9 -6
  41. package/lib/cjs/cascader/item.js +2 -1
  42. package/lib/cjs/checkbox/checkbox.js +8 -4
  43. package/lib/cjs/collapsible/index.js +2 -1
  44. package/lib/cjs/datePicker/dateInput.js +2 -1
  45. package/lib/cjs/datePicker/datePicker.js +4 -2
  46. package/lib/cjs/divider/index.js +2 -1
  47. package/lib/cjs/dropdown/index.js +2 -1
  48. package/lib/cjs/empty/index.js +8 -4
  49. package/lib/cjs/form/hoc/withField.js +2 -1
  50. package/lib/cjs/form/label.js +2 -1
  51. package/lib/cjs/grid/col.js +2 -1
  52. package/lib/cjs/grid/row.js +2 -1
  53. package/lib/cjs/iconButton/index.js +3 -1
  54. package/lib/cjs/input/index.js +9 -5
  55. package/lib/cjs/list/index.js +6 -3
  56. package/lib/cjs/modal/ConfirmModal.js +2 -1
  57. package/lib/cjs/modal/Modal.js +6 -2
  58. package/lib/cjs/modal/ModalContent.js +13 -6
  59. package/lib/cjs/modal/confirm.d.ts +5 -5
  60. package/lib/cjs/notification/notice.js +6 -3
  61. package/lib/cjs/pagination/index.js +4 -2
  62. package/lib/cjs/popconfirm/index.js +6 -3
  63. package/lib/cjs/radio/radio.js +4 -2
  64. package/lib/cjs/rating/item.js +2 -1
  65. package/lib/cjs/scrollList/index.js +6 -3
  66. package/lib/cjs/select/index.js +8 -4
  67. package/lib/cjs/select/option.js +2 -1
  68. package/lib/cjs/sideSheet/SideSheetContent.js +6 -3
  69. package/lib/cjs/skeleton/index.js +3 -1
  70. package/lib/cjs/space/index.js +2 -1
  71. package/lib/cjs/spin/index.js +7 -3
  72. package/lib/cjs/switch/index.js +6 -4
  73. package/lib/cjs/table/Table.d.ts +1 -1
  74. package/lib/cjs/table/Table.js +6 -3
  75. package/lib/cjs/tabs/TabBar.js +2 -1
  76. package/lib/cjs/tabs/TabPane.js +5 -2
  77. package/lib/cjs/tagInput/index.js +4 -2
  78. package/lib/cjs/timePicker/Combobox.js +3 -1
  79. package/lib/cjs/toast/toast.js +6 -3
  80. package/lib/cjs/transfer/index.js +2 -1
  81. package/lib/cjs/tree/treeNode.js +2 -1
  82. package/lib/cjs/treeSelect/index.js +6 -3
  83. package/lib/cjs/typography/base.js +2 -1
  84. package/lib/cjs/upload/index.d.ts +1 -1
  85. package/lib/cjs/upload/index.js +13 -6
  86. package/lib/es/avatar/index.js +4 -2
  87. package/lib/es/backtop/index.js +2 -1
  88. package/lib/es/badge/index.js +2 -1
  89. package/lib/es/banner/index.js +9 -4
  90. package/lib/es/breadcrumb/index.js +4 -3
  91. package/lib/es/button/Button.js +11 -3
  92. package/lib/es/card/index.js +10 -5
  93. package/lib/es/carousel/CarouselArrow.js +6 -2
  94. package/lib/es/carousel/index.js +2 -1
  95. package/lib/es/cascader/index.js +9 -6
  96. package/lib/es/cascader/item.js +2 -1
  97. package/lib/es/checkbox/checkbox.js +8 -4
  98. package/lib/es/collapsible/index.js +2 -1
  99. package/lib/es/datePicker/dateInput.js +2 -1
  100. package/lib/es/datePicker/datePicker.js +4 -2
  101. package/lib/es/divider/index.js +2 -1
  102. package/lib/es/dropdown/index.js +2 -1
  103. package/lib/es/empty/index.js +8 -4
  104. package/lib/es/form/hoc/withField.js +2 -1
  105. package/lib/es/form/label.js +2 -1
  106. package/lib/es/grid/col.js +2 -1
  107. package/lib/es/grid/row.js +2 -1
  108. package/lib/es/iconButton/index.js +3 -1
  109. package/lib/es/input/index.js +9 -5
  110. package/lib/es/list/index.js +6 -3
  111. package/lib/es/modal/ConfirmModal.js +2 -1
  112. package/lib/es/modal/Modal.js +6 -2
  113. package/lib/es/modal/ModalContent.js +13 -6
  114. package/lib/es/modal/confirm.d.ts +5 -5
  115. package/lib/es/notification/notice.js +6 -3
  116. package/lib/es/pagination/index.js +4 -2
  117. package/lib/es/popconfirm/index.js +6 -3
  118. package/lib/es/radio/radio.js +4 -2
  119. package/lib/es/rating/item.js +2 -1
  120. package/lib/es/scrollList/index.js +6 -3
  121. package/lib/es/select/index.js +8 -4
  122. package/lib/es/select/option.js +2 -1
  123. package/lib/es/sideSheet/SideSheetContent.js +6 -3
  124. package/lib/es/skeleton/index.js +3 -1
  125. package/lib/es/space/index.js +2 -1
  126. package/lib/es/spin/index.js +7 -3
  127. package/lib/es/switch/index.js +6 -4
  128. package/lib/es/table/Table.d.ts +1 -1
  129. package/lib/es/table/Table.js +6 -3
  130. package/lib/es/tabs/TabBar.js +2 -1
  131. package/lib/es/tabs/TabPane.js +5 -2
  132. package/lib/es/tagInput/index.js +4 -2
  133. package/lib/es/timePicker/Combobox.js +3 -1
  134. package/lib/es/toast/toast.js +6 -3
  135. package/lib/es/transfer/index.js +2 -1
  136. package/lib/es/tree/treeNode.js +2 -1
  137. package/lib/es/treeSelect/index.js +6 -3
  138. package/lib/es/typography/base.js +2 -1
  139. package/lib/es/upload/index.d.ts +1 -1
  140. package/lib/es/upload/index.js +13 -6
  141. package/list/index.tsx +16 -4
  142. package/modal/ConfirmModal.tsx +1 -1
  143. package/modal/Modal.tsx +2 -0
  144. package/modal/ModalContent.tsx +27 -14
  145. package/notification/notice.tsx +16 -4
  146. package/package.json +9 -9
  147. package/pagination/index.tsx +16 -2
  148. package/popconfirm/index.tsx +11 -3
  149. package/radio/radio.tsx +10 -2
  150. package/rating/item.tsx +1 -1
  151. package/scrollList/index.tsx +19 -3
  152. package/select/index.tsx +12 -4
  153. package/select/option.tsx +5 -1
  154. package/sideSheet/SideSheetContent.tsx +3 -3
  155. package/skeleton/index.tsx +1 -1
  156. package/space/index.tsx +1 -1
  157. package/spin/index.tsx +15 -9
  158. package/switch/index.tsx +9 -14
  159. package/table/Table.tsx +5 -3
  160. package/tabs/TabBar.tsx +1 -1
  161. package/tabs/TabPane.tsx +9 -4
  162. package/tagInput/index.tsx +2 -2
  163. package/timePicker/Combobox.tsx +6 -1
  164. package/toast/toast.tsx +3 -3
  165. package/transfer/index.tsx +1 -0
  166. package/tree/treeNode.tsx +1 -1
  167. package/treeSelect/index.tsx +15 -3
  168. package/typography/base.tsx +1 -1
  169. package/upload/index.tsx +107 -38
  170. package/yarn-error.log +26235 -0
package/divider/index.tsx CHANGED
@@ -60,10 +60,14 @@ const Divider: React.FC<DividerProps> = props => {
60
60
 
61
61
  return (
62
62
  <div {...rest} className={dividerClassNames} style={{ ...overrideDefaultStyle, ...style }}>
63
- {(children && layout === 'horizontal') ? (
64
- typeof children === 'string' ? <span className={`${prefixCls}-divider_inner-text`}>
65
- {children}
66
- </span> : children
63
+ {children && layout === 'horizontal' ? (
64
+ typeof children === 'string' ? (
65
+ <span className={`${prefixCls}-divider_inner-text`} x-semi-prop="children">
66
+ {children}
67
+ </span>
68
+ ) : (
69
+ children
70
+ )
67
71
  ) : null}
68
72
  </div>
69
73
  );
@@ -144,7 +144,7 @@ class Dropdown extends BaseComponent<DropdownProps, DropdownState> {
144
144
  return (
145
145
  <DropdownContext.Provider value={contextValue}>
146
146
  <div className={className} style={style}>
147
- <div className={`${prefixCls}-content`}>{content}</div>
147
+ <div className={`${prefixCls}-content`} x-semi-prop="render">{content}</div>
148
148
  </div>
149
149
  </DropdownContext.Provider>
150
150
  );
package/empty/index.tsx CHANGED
@@ -109,17 +109,25 @@ export default class Empty extends BaseComponent<EmptyProps, EmptyState> {
109
109
  };
110
110
  return (
111
111
  <div className={wrapperCls} style={style}>
112
- <div className={`${prefixCls}-image`} style={imageStyle} >
112
+ <div className={`${prefixCls}-image`} style={imageStyle} x-semi-prop="image,darkModeImage">
113
113
  {imageNode}
114
114
  </div>
115
- <div className={`${prefixCls}-content`} >
115
+ <div className={`${prefixCls}-content`}>
116
116
  {title ? (
117
- <Typography.Title {...(titleProps as any)} className={`${prefixCls}-title`} >
117
+ <Typography.Title {...(titleProps as any)} className={`${prefixCls}-title`} x-semi-prop="title">
118
118
  {title}
119
119
  </Typography.Title>
120
120
  ) : null}
121
- {description ? <div className={`${prefixCls}-description`} >{description}</div> : null}
122
- {children ? <div className={`${prefixCls}-footer`}>{children}</div> : null}
121
+ {description ? (
122
+ <div className={`${prefixCls}-description`} x-semi-prop="description">
123
+ {description}
124
+ </div>
125
+ ) : null}
126
+ {children ? (
127
+ <div className={`${prefixCls}-footer`} x-semi-prop="children">
128
+ {children}
129
+ </div>
130
+ ) : null}
123
131
  </div>
124
132
  </div>
125
133
  );
@@ -439,7 +439,7 @@ function withField<
439
439
  [`${prefix}-field-extra-botttom`]: mergeExtraPos === 'bottom',
440
440
  });
441
441
 
442
- const extraContent = extraText ? <div className={extraCls} id={extraTextId}>{extraText}</div> : null;
442
+ const extraContent = extraText ? <div className={extraCls} id={extraTextId} x-semi-prop="extraText">{extraText}</div> : null;
443
443
 
444
444
  let newProps: Record<string, any> = {
445
445
  id: a11yId,
package/form/label.tsx CHANGED
@@ -61,7 +61,7 @@ export default class Label extends PureComponent<LabelProps> {
61
61
  width ? labelStyle.width = width : null;
62
62
 
63
63
  const textContent = (
64
- <div className={`${prefixCls}-field-label-text`}>
64
+ <div className={`${prefixCls}-field-label-text`} x-semi-prop="label">
65
65
  {typeof text !== 'undefined' ? text : children}
66
66
  </div>
67
67
  );
package/grid/col.tsx CHANGED
@@ -125,7 +125,7 @@ class Col extends React.Component<ColProps> {
125
125
  };
126
126
 
127
127
  return (
128
- <div {...others} style={style} className={classes}>
128
+ <div {...others} style={style} className={classes} x-semi-prop="children">
129
129
  {children}
130
130
  </div>
131
131
  );
package/grid/row.tsx CHANGED
@@ -167,7 +167,7 @@ class Row extends React.Component<RowProps, RowState> {
167
167
  gutters,
168
168
  }}
169
169
  >
170
- <div {...otherProps} className={classes} style={rowStyle}>
170
+ <div {...otherProps} className={classes} style={rowStyle} x-semi-prop="children">
171
171
  {children}
172
172
  </div>
173
173
  </RowContext.Provider>
@@ -97,7 +97,8 @@ class IconButton extends PureComponent<IconButtonProps> {
97
97
  [`${prefixCls}-content-right`]: iconPosition === 'left',
98
98
  });
99
99
 
100
- const children = originChildren != null ? <span className={btnTextCls}>{originChildren}</span> : null;
100
+ const xSemiProp = this.props['x-semi-children-alias'] || 'children';
101
+ const children = originChildren != null ? <span className={btnTextCls} x-semi-prop={xSemiProp}>{originChildren}</span> : null;
101
102
 
102
103
  if (iconPosition === 'left') {
103
104
  finalChildren = (
package/input/index.tsx CHANGED
@@ -141,7 +141,7 @@ class Input extends BaseComponent<InputProps, InputState> {
141
141
  onKeyUp: noop,
142
142
  onKeyPress: noop,
143
143
  onEnterPress: noop,
144
- validateStatus: 'default'
144
+ validateStatus: 'default',
145
145
  };
146
146
 
147
147
  inputRef!: React.RefObject<HTMLInputElement>;
@@ -195,7 +195,7 @@ class Input extends BaseComponent<InputProps, InputState> {
195
195
  notifyClear: (e: React.MouseEvent<HTMLDivElement>) => this.props.onClear(e),
196
196
  setPaddingLeft: (paddingLeft: string) => this.setState({ paddingLeft }),
197
197
  setMinLength: (minLength: number) => this.setState({ minLength }),
198
- isEventTarget: (e: React.MouseEvent) => e && e.target === e.currentTarget
198
+ isEventTarget: (e: React.MouseEvent) => e && e.target === e.currentTarget,
199
199
  };
200
200
  }
201
201
 
@@ -255,7 +255,7 @@ class Input extends BaseComponent<InputProps, InputState> {
255
255
 
256
256
  handleModeEnterPress = (e: React.KeyboardEvent<HTMLDivElement>) => {
257
257
  this.foundation.handleModeEnterPress(e);
258
- }
258
+ };
259
259
 
260
260
  handleClickPrefixOrSuffix = (e: React.MouseEvent<HTMLInputElement>) => {
261
261
  this.foundation.handleClickPrefixOrSuffix(e);
@@ -273,7 +273,11 @@ class Input extends BaseComponent<InputProps, InputState> {
273
273
  [`${prefixCls}-prepend-text`]: addonBefore && isString(addonBefore),
274
274
  [`${prefixCls}-prepend-icon`]: isSemiIcon(addonBefore),
275
275
  });
276
- return <div className={prefixWrapperCls}>{addonBefore}</div>;
276
+ return (
277
+ <div className={prefixWrapperCls} x-semi-prop="addonBefore">
278
+ {addonBefore}
279
+ </div>
280
+ );
277
281
  }
278
282
  return null;
279
283
  }
@@ -286,7 +290,11 @@ class Input extends BaseComponent<InputProps, InputState> {
286
290
  [`${prefixCls}-append-text`]: addonAfter && isString(addonAfter),
287
291
  [`${prefixCls}-append-icon`]: isSemiIcon(addonAfter),
288
292
  });
289
- return <div className={prefixWrapperCls}>{addonAfter}</div>;
293
+ return (
294
+ <div className={prefixWrapperCls} x-semi-prop="addonAfter">
295
+ {addonAfter}
296
+ </div>
297
+ );
290
298
  }
291
299
  return null;
292
300
  }
@@ -352,7 +360,17 @@ class Input extends BaseComponent<InputProps, InputState> {
352
360
  });
353
361
 
354
362
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
355
- return <div className={prefixWrapperCls} onMouseDown={this.handlePreventMouseDown} onClick={this.handleClickPrefixOrSuffix} id={insetLabelId}>{labelNode}</div>;
363
+ return (
364
+ <div
365
+ className={prefixWrapperCls}
366
+ onMouseDown={this.handlePreventMouseDown}
367
+ onClick={this.handleClickPrefixOrSuffix}
368
+ id={insetLabelId}
369
+ x-semi-prop="prefix,insetLabel"
370
+ >
371
+ {labelNode}
372
+ </div>
373
+ );
356
374
  }
357
375
 
358
376
  showClearBtn() {
@@ -367,13 +385,22 @@ class Input extends BaseComponent<InputProps, InputState> {
367
385
  return null;
368
386
  }
369
387
  const suffixWrapperCls = cls({
370
- [`${prefixCls }-suffix`]: true,
371
- [`${prefixCls }-suffix-text`]: suffix && isString(suffix),
372
- [`${prefixCls }-suffix-icon`]: isSemiIcon(suffix),
388
+ [`${prefixCls}-suffix`]: true,
389
+ [`${prefixCls}-suffix-text`]: suffix && isString(suffix),
390
+ [`${prefixCls}-suffix-icon`]: isSemiIcon(suffix),
373
391
  [`${prefixCls}-suffix-hidden`]: suffixAllowClear && Boolean(hideSuffix),
374
392
  });
375
393
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
376
- return <div className={suffixWrapperCls} onMouseDown={this.handlePreventMouseDown} onClick={this.handleClickPrefixOrSuffix}>{suffix}</div>;
394
+ return (
395
+ <div
396
+ className={suffixWrapperCls}
397
+ onMouseDown={this.handlePreventMouseDown}
398
+ onClick={this.handleClickPrefixOrSuffix}
399
+ x-semi-prop="suffix"
400
+ >
401
+ {suffix}
402
+ </div>
403
+ );
377
404
  }
378
405
 
379
406
  render() {
@@ -460,7 +487,7 @@ class Input extends BaseComponent<InputProps, InputState> {
460
487
  inputProps.minLength = stateMinLength;
461
488
  }
462
489
  if (validateStatus === 'error') {
463
- inputProps['aria-invalid'] = "true";
490
+ inputProps['aria-invalid'] = 'true';
464
491
  }
465
492
  return (
466
493
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
@@ -202,7 +202,8 @@ class Avatar extends _baseComponent.default {
202
202
  }, className);
203
203
  let content = children;
204
204
  const hoverRender = hoverContent ? /*#__PURE__*/_react.default.createElement("div", {
205
- className: "".concat(prefixCls, "-hover")
205
+ className: "".concat(prefixCls, "-hover"),
206
+ "x-semi-prop": "hoverContent"
206
207
  }, hoverContent) : null;
207
208
 
208
209
  if (isImg) {
@@ -216,7 +217,8 @@ class Avatar extends _baseComponent.default {
216
217
  content = /*#__PURE__*/_react.default.createElement("span", {
217
218
  className: "".concat(prefixCls, "-content")
218
219
  }, /*#__PURE__*/_react.default.createElement("span", {
219
- className: "".concat(prefixCls, "-label")
220
+ className: "".concat(prefixCls, "-label"),
221
+ "x-semi-prop": "children"
220
222
  }, children));
221
223
  }
222
224
 
@@ -121,7 +121,8 @@ class BackTop extends _baseComponent.default {
121
121
  const content = visible ? /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({}, others, {
122
122
  className: preCls,
123
123
  style: style,
124
- onClick: e => this.handleClick(e)
124
+ onClick: e => this.handleClick(e),
125
+ "x-semi-prop": "children"
125
126
  }), backtopBtn) : null;
126
127
  return content;
127
128
  }
@@ -104,7 +104,8 @@ class Badge extends _react.PureComponent {
104
104
  className: prefixCls
105
105
  }, rest), children, /*#__PURE__*/_react.default.createElement("span", {
106
106
  className: wrapper,
107
- style: style
107
+ style: style,
108
+ "x-semi-prop": "count"
108
109
  }, dot ? null : content));
109
110
  }
110
111
 
@@ -93,6 +93,7 @@ class Banner extends _baseComponent.default {
93
93
  className: "".concat(prefixCls, "-close"),
94
94
  onClick: this.remove,
95
95
  icon: closeIcon || /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, {
96
+ "x-semi-prop": "closeIcon",
96
97
  "aria-hidden": true
97
98
  }),
98
99
  theme: "borderless",
@@ -139,7 +140,8 @@ class Banner extends _baseComponent.default {
139
140
 
140
141
  if (iconType) {
141
142
  return /*#__PURE__*/_react.default.createElement("div", {
142
- className: iconCls
143
+ className: iconCls,
144
+ "x-semi-prop": "icon"
143
145
  }, iconType);
144
146
  }
145
147
 
@@ -181,12 +183,15 @@ class Banner extends _baseComponent.default {
181
183
  }, title ? /*#__PURE__*/_react.default.createElement(_typography.default.Title, {
182
184
  heading: 5,
183
185
  className: "".concat(prefixCls, "-title"),
184
- component: "div"
186
+ component: "div",
187
+ "x-semi-prop": "title"
185
188
  }, title) : null, description ? /*#__PURE__*/_react.default.createElement(_typography.default.Paragraph, {
186
189
  className: "".concat(prefixCls, "-description"),
187
- component: "div"
190
+ component: "div",
191
+ "x-semi-prop": "description"
188
192
  }, description) : null)), this.renderCloser()), children ? /*#__PURE__*/_react.default.createElement("div", {
189
- className: "".concat(prefixCls, "-extra")
193
+ className: "".concat(prefixCls, "-extra"),
194
+ "x-semi-prop": "children"
190
195
  }, children) : null) : null;
191
196
  return banner;
192
197
  }
@@ -76,14 +76,15 @@ class Breadcrumb extends _baseComponent.default {
76
76
  }, /*#__PURE__*/_react.default.createElement("span", {
77
77
  className: "".concat(clsPrefix, "-item-wrap")
78
78
  }, /*#__PURE__*/_react.default.createElement("span", {
79
- role: 'button',
79
+ role: "button",
80
80
  tabIndex: 0,
81
- "aria-label": 'Expand breadcrumb items',
81
+ "aria-label": "Expand breadcrumb items",
82
82
  className: (0, _concat.default)(_context = "".concat(clsPrefix, "-item ")).call(_context, clsPrefix, "-item-more"),
83
83
  onClick: item => this.foundation.handleExpand(item),
84
84
  onKeyPress: e => this.foundation.handleExpandEnterPress(e)
85
85
  }, hasRenderMore && renderMore(restItem), !hasRenderMore && moreType === 'default' && /*#__PURE__*/_react.default.createElement(_semiIcons.IconMore, null), !hasRenderMore && moreType === 'popover' && this.renderPopoverMore(restItem)), /*#__PURE__*/_react.default.createElement("span", {
86
- className: "".concat(clsPrefix, "-separator")
86
+ className: "".concat(clsPrefix, "-separator"),
87
+ "x-semi-prop": "separator"
87
88
  }, this.props.separator)));
88
89
 
89
90
  (0, _splice.default)(template).call(template, 1, itemsLen - maxItemCount, spread);
@@ -22,6 +22,10 @@ var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-sta
22
22
 
23
23
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
24
24
 
25
+ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
26
+
27
+ var _omit2 = _interopRequireDefault(require("lodash/omit"));
28
+
25
29
  var _react = _interopRequireWildcard(require("react"));
26
30
 
27
31
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -81,7 +85,7 @@ class Button extends _react.PureComponent {
81
85
 
82
86
  const baseProps = (0, _assign.default)((0, _assign.default)({
83
87
  disabled
84
- }, attr), {
88
+ }, (0, _omit2.default)(attr, ['x-semi-children-alias'])), {
85
89
  className: (0, _classnames.default)(prefixCls, {
86
90
  [(0, _concat.default)(_context = "".concat(prefixCls, "-")).call(_context, type)]: !disabled && type,
87
91
  ["".concat(prefixCls, "-disabled")]: disabled,
@@ -96,6 +100,12 @@ class Button extends _react.PureComponent {
96
100
  type: htmlType,
97
101
  'aria-disabled': disabled
98
102
  });
103
+ const xSemiProps = {};
104
+
105
+ if (!(className && (0, _includes.default)(className).call(className, '-with-icon'))) {
106
+ xSemiProps['x-semi-prop'] = this.props['x-semi-children-alias'] || 'children';
107
+ }
108
+
99
109
  return (
100
110
  /*#__PURE__*/
101
111
  // eslint-disable-next-line react/button-has-type
@@ -103,10 +113,10 @@ class Button extends _react.PureComponent {
103
113
  onClick: this.props.onClick,
104
114
  onMouseDown: this.props.onMouseDown,
105
115
  style: style
106
- }), /*#__PURE__*/_react.default.createElement("span", {
116
+ }), /*#__PURE__*/_react.default.createElement("span", (0, _assign.default)({
107
117
  className: "".concat(prefixCls, "-content"),
108
118
  onClick: e => disabled && e.stopPropagation()
109
- }, children))
119
+ }, xSemiProps), children))
110
120
  );
111
121
  }
112
122
 
@@ -95,7 +95,8 @@ class Card extends _react.PureComponent {
95
95
  _react.default.createElement("div", {
96
96
  className: headerWrapperCls
97
97
  }, headerExtraContent && /*#__PURE__*/_react.default.createElement("div", {
98
- className: "".concat(prefixcls, "-header-wrapper-extra")
98
+ className: "".concat(prefixcls, "-header-wrapper-extra"),
99
+ "x-semi-prop": "headerExtraContent"
99
100
  }, headerExtraContent), title && /*#__PURE__*/_react.default.createElement("div", {
100
101
  className: titleCls
101
102
  }, (0, _isString2.default)(title) ? /*#__PURE__*/_react.default.createElement(_typography.default.Title, {
@@ -103,7 +104,8 @@ class Card extends _react.PureComponent {
103
104
  ellipsis: {
104
105
  showTooltip: true,
105
106
  rows: 1
106
- }
107
+ },
108
+ "x-semi-prop": "title"
107
109
  }, title) : title)));
108
110
  }
109
111
 
@@ -116,7 +118,8 @@ class Card extends _react.PureComponent {
116
118
  } = this.props;
117
119
  const coverCls = (0, _classnames.default)("".concat(prefixcls, "-cover"));
118
120
  return cover && /*#__PURE__*/_react.default.createElement("div", {
119
- className: coverCls
121
+ className: coverCls,
122
+ "x-semi-prop": "cover"
120
123
  }, cover);
121
124
  };
122
125
 
@@ -148,7 +151,8 @@ class Card extends _react.PureComponent {
148
151
  spacing: 12
149
152
  }, (0, _map.default)(actions).call(actions, (item, idx) => /*#__PURE__*/_react.default.createElement("div", {
150
153
  key: idx,
151
- className: actionsItemCls
154
+ className: actionsItemCls,
155
+ "x-semi-prop": "actions.".concat(idx)
152
156
  }, item)))));
153
157
  };
154
158
 
@@ -163,7 +167,8 @@ class Card extends _react.PureComponent {
163
167
  });
164
168
  return footer && /*#__PURE__*/_react.default.createElement("div", {
165
169
  style: footerStyle,
166
- className: footerCls
170
+ className: footerCls,
171
+ "x-semi-prop": "footer"
167
172
  }, footer);
168
173
  };
169
174
  }
@@ -74,12 +74,16 @@ class CarouselArrow extends _react.default.PureComponent {
74
74
  // role='button'
75
75
  className: leftClassNames,
76
76
  onClick: prev
77
- }, (0, _get2.default)(this.props, 'arrowProps.leftArrow.props')), this.renderLeftIcon()), /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
77
+ }, (0, _get2.default)(this.props, 'arrowProps.leftArrow.props'), {
78
+ "x-semi-prop": "arrowProps.leftArrow.children"
79
+ }), this.renderLeftIcon()), /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
78
80
  // role='button'
79
81
  // tabIndex={0}
80
82
  className: rightClassNames,
81
83
  onClick: next
82
- }, (0, _get2.default)(this.props, 'arrowProps.rightArrow.props')), this.renderRightIcon()));
84
+ }, (0, _get2.default)(this.props, 'arrowProps.rightArrow.props'), {
85
+ "x-semi-prop": "arrowProps.rightArrow.children"
86
+ }), this.renderRightIcon()));
83
87
  }
84
88
 
85
89
  }
@@ -296,7 +296,8 @@ class Carousel extends _baseComponent.default {
296
296
  className: (0, _classnames.default)([(0, _concat.default)(_context2 = "".concat(_constants.cssClasses.CAROUSEL_CONTENT, "-")).call(_context2, animation)], {
297
297
  ["".concat(_constants.cssClasses.CAROUSEL_CONTENT)]: true,
298
298
  ["".concat(_constants.cssClasses.CAROUSEL_CONTENT, "-reverse")]: slideDirection === 'left' ? isReverse : !isReverse
299
- })
299
+ }),
300
+ "x-semi-prop": "children"
300
301
  }, this.renderChildren()), this.renderIndicator(), this.renderArrow());
301
302
  }
302
303
 
@@ -342,7 +342,8 @@ class Cascader extends _baseComponent.default {
342
342
  ["".concat(prefixcls, "-suffix-icon")]: (0, _utils.isSemiIcon)(suffix)
343
343
  });
344
344
  return /*#__PURE__*/_react.default.createElement("div", {
345
- className: suffixWrapperCls
345
+ className: suffixWrapperCls,
346
+ "x-semi-prop": "suffix"
346
347
  }, suffix);
347
348
  };
348
349
 
@@ -362,7 +363,8 @@ class Cascader extends _baseComponent.default {
362
363
  });
363
364
  return /*#__PURE__*/_react.default.createElement("div", {
364
365
  className: prefixWrapperCls,
365
- id: insetLabelId
366
+ id: insetLabelId,
367
+ "x-semi-prop": "prefix,insetLabel"
366
368
  }, labelNode);
367
369
  };
368
370
 
@@ -452,7 +454,7 @@ class Cascader extends _baseComponent.default {
452
454
  className: clearCls,
453
455
  onClick: this.handleClear,
454
456
  onKeyPress: this.handleClearEnterPress,
455
- role: 'button',
457
+ role: "button",
456
458
  tabIndex: 0
457
459
  }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null));
458
460
  }
@@ -471,7 +473,8 @@ class Cascader extends _baseComponent.default {
471
473
  }
472
474
 
473
475
  return arrowIcon ? /*#__PURE__*/_react.default.createElement("div", {
474
- className: (0, _classnames.default)("".concat(prefixcls, "-arrow"))
476
+ className: (0, _classnames.default)("".concat(prefixcls, "-arrow")),
477
+ "x-semi-prop": "arrowIcon"
475
478
  }, arrowIcon) : null;
476
479
  };
477
480
 
@@ -546,12 +549,12 @@ class Cascader extends _baseComponent.default {
546
549
  "aria-errormessage": this.props['aria-errormessage'],
547
550
  "aria-label": this.props['aria-label'],
548
551
  "aria-labelledby": this.props['aria-labelledby'],
549
- "aria-describedby": this.props["aria-describedby"],
552
+ "aria-describedby": this.props['aria-describedby'],
550
553
  "aria-required": this.props['aria-required'],
551
554
  id: id
552
555
  }, mouseEvent, {
553
556
  // eslint-disable-next-line jsx-a11y/role-has-required-aria-props
554
- role: 'combobox',
557
+ role: "combobox",
555
558
  tabIndex: 0
556
559
  }), inner);
557
560
  };
@@ -332,7 +332,8 @@ class Item extends _react.PureComponent {
332
332
  className: (0, _concat.default)(_context6 = "".concat(prefixcls, " ")).call(_context6, prefixcls, "-empty"),
333
333
  key: 'empty-list'
334
334
  }, /*#__PURE__*/_react.default.createElement("span", {
335
- className: "".concat(prefixcls, "-label")
335
+ className: "".concat(prefixcls, "-label"),
336
+ "x-semi-prop": "emptyContent"
336
337
  }, emptyContent || locale.emptyText));
337
338
  });
338
339
  }
@@ -181,13 +181,17 @@ class Checkbox extends _baseComponent.default {
181
181
  const extraCls = (0, _classnames.default)("".concat(prefix, "-extra"), {
182
182
  ["".concat(prefix, "-cardType_extra_noChildren")]: props.isCardType && !children
183
183
  });
184
+ const name = inGroup && this.context.checkboxGroup.name;
185
+ const xSemiPropChildren = this.props['x-semi-children-alias'] || 'children';
184
186
 
185
187
  const renderContent = () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children ? /*#__PURE__*/_react.default.createElement("span", {
186
- id: addonId,
187
- className: "".concat(prefix, "-addon")
188
+ id: this.addonId,
189
+ className: "".concat(prefix, "-addon"),
190
+ "x-semi-prop": xSemiPropChildren
188
191
  }, children) : null, extra ? /*#__PURE__*/_react.default.createElement("div", {
189
- id: extraId,
190
- className: extraCls
192
+ id: this.extraId,
193
+ className: extraCls,
194
+ "x-semi-prop": "extra"
191
195
  }, extra) : null);
192
196
 
193
197
  return (
@@ -115,7 +115,8 @@ const Collapsible = props => {
115
115
  style: {
116
116
  overflow: 'hidden'
117
117
  },
118
- id: id
118
+ id: id,
119
+ "x-semi-prop": "children"
119
120
  }, children));
120
121
  };
121
122
 
@@ -179,7 +179,8 @@ class DateInput extends _baseComponent.default {
179
179
  const labelNode = prefix || insetLabel;
180
180
  return labelNode ? /*#__PURE__*/_react.default.createElement("div", {
181
181
  className: "".concat(prefixCls, "-range-input-prefix"),
182
- onClick: e => !disabled && !rangeInputFocus && this.handleRangeStartFocus(e)
182
+ onClick: e => !disabled && !rangeInputFocus && this.handleRangeStartFocus(e),
183
+ "x-semi-prop": "prefix,insetLabel"
183
184
  }, labelNode) : null;
184
185
  }
185
186
 
@@ -220,11 +220,13 @@ class DatePicker extends _baseComponent.default {
220
220
  className: wrapCls,
221
221
  style: dropdownStyle
222
222
  }, topSlot && /*#__PURE__*/_react.default.createElement("div", {
223
- className: "".concat(_constants.cssClasses.PREFIX, "-topSlot")
223
+ className: "".concat(_constants.cssClasses.PREFIX, "-topSlot"),
224
+ "x-semi-prop": "topSlot"
224
225
  }, topSlot), insetInput && /*#__PURE__*/_react.default.createElement(_dateInput.default, (0, _assign.default)({}, insetInputProps, {
225
226
  insetInput: true
226
227
  })), this.adapter.typeIsYearOrMonth() ? this.renderYearMonthPanel(locale, localeCode) : this.renderMonthGrid(locale, localeCode, dateFnsLocale), this.renderQuickControls(), bottomSlot && /*#__PURE__*/_react.default.createElement("div", {
227
- className: "".concat(_constants.cssClasses.PREFIX, "-bottomSlot")
228
+ className: "".concat(_constants.cssClasses.PREFIX, "-bottomSlot"),
229
+ "x-semi-prop": "bottomSlot"
228
230
  }, bottomSlot), this.renderFooter(locale, localeCode));
229
231
  };
230
232
 
@@ -80,7 +80,8 @@ const Divider = props => {
80
80
  className: dividerClassNames,
81
81
  style: (0, _assign.default)((0, _assign.default)({}, overrideDefaultStyle), style)
82
82
  }), children && layout === 'horizontal' ? typeof children === 'string' ? /*#__PURE__*/_react.default.createElement("span", {
83
- className: "".concat(prefixCls, "-divider_inner-text")
83
+ className: "".concat(prefixCls, "-divider_inner-text"),
84
+ "x-semi-prop": "children"
84
85
  }, children) : children : null);
85
86
  };
86
87
 
@@ -118,7 +118,8 @@ class Dropdown extends _baseComponent.default {
118
118
  className: className,
119
119
  style: style
120
120
  }, /*#__PURE__*/_react.default.createElement("div", {
121
- className: "".concat(prefixCls, "-content")
121
+ className: "".concat(prefixCls, "-content"),
122
+ "x-semi-prop": "render"
122
123
  }, content)));
123
124
  }
124
125
 
@@ -122,15 +122,19 @@ class Empty extends _baseComponent.default {
122
122
  style: style
123
123
  }, /*#__PURE__*/_react.default.createElement("div", {
124
124
  className: "".concat(prefixCls, "-image"),
125
- style: imageStyle
125
+ style: imageStyle,
126
+ "x-semi-prop": "image,darkModeImage"
126
127
  }, imageNode), /*#__PURE__*/_react.default.createElement("div", {
127
128
  className: "".concat(prefixCls, "-content")
128
129
  }, title ? /*#__PURE__*/_react.default.createElement(_typography.default.Title, (0, _assign.default)({}, titleProps, {
129
- className: "".concat(prefixCls, "-title")
130
+ className: "".concat(prefixCls, "-title"),
131
+ "x-semi-prop": "title"
130
132
  }), title) : null, description ? /*#__PURE__*/_react.default.createElement("div", {
131
- className: "".concat(prefixCls, "-description")
133
+ className: "".concat(prefixCls, "-description"),
134
+ "x-semi-prop": "description"
132
135
  }, description) : null, children ? /*#__PURE__*/_react.default.createElement("div", {
133
- className: "".concat(prefixCls, "-footer")
136
+ className: "".concat(prefixCls, "-footer"),
137
+ "x-semi-prop": "children"
134
138
  }, children) : null));
135
139
  }
136
140
 
@@ -459,7 +459,8 @@ function withField(Component, opts) {
459
459
  });
460
460
  const extraContent = extraText ? /*#__PURE__*/_react.default.createElement("div", {
461
461
  className: extraCls,
462
- id: extraTextId
462
+ id: extraTextId,
463
+ "x-semi-prop": "extraText"
463
464
  }, extraText) : null;
464
465
  let newProps = (0, _assign.default)((0, _assign.default)({
465
466
  id: a11yId,
@@ -55,7 +55,8 @@ class Label extends _react.PureComponent {
55
55
  width ? labelStyle.width = width : null;
56
56
 
57
57
  const textContent = /*#__PURE__*/_react.default.createElement("div", {
58
- className: "".concat(prefixCls, "-field-label-text")
58
+ className: "".concat(prefixCls, "-field-label-text"),
59
+ "x-semi-prop": "label"
59
60
  }, typeof text !== 'undefined' ? text : children);
60
61
 
61
62
  const contentWithExtra = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, textContent, /*#__PURE__*/_react.default.createElement("div", {