@douyinfe/semi-ui 2.24.3 → 2.25.0-beta.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 (65) hide show
  1. package/dist/css/semi.css +14 -6
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +91 -43
  4. package/dist/umd/semi-ui.js.map +1 -1
  5. package/dist/umd/semi-ui.min.js +1 -1
  6. package/dist/umd/semi-ui.min.js.map +1 -1
  7. package/lib/cjs/autoComplete/index.d.ts +2 -0
  8. package/lib/cjs/autoComplete/index.js +5 -2
  9. package/lib/cjs/cascader/index.d.ts +4 -0
  10. package/lib/cjs/cascader/index.js +9 -2
  11. package/lib/cjs/datePicker/dateInput.js +3 -2
  12. package/lib/cjs/datePicker/datePicker.d.ts +5 -0
  13. package/lib/cjs/datePicker/datePicker.js +7 -1
  14. package/lib/cjs/dropdown/index.d.ts +12 -11
  15. package/lib/cjs/dropdown/index.js +15 -12
  16. package/lib/cjs/form/baseForm.d.ts +7 -0
  17. package/lib/cjs/form/field.d.ts +7 -0
  18. package/lib/cjs/input/index.d.ts +2 -0
  19. package/lib/cjs/input/index.js +7 -2
  20. package/lib/cjs/inputNumber/index.d.ts +2 -0
  21. package/lib/cjs/inputNumber/index.js +1 -0
  22. package/lib/cjs/popover/index.d.ts +4 -2
  23. package/lib/cjs/popover/index.js +1 -0
  24. package/lib/cjs/select/index.d.ts +4 -0
  25. package/lib/cjs/select/index.js +9 -3
  26. package/lib/cjs/table/Body/index.js +2 -2
  27. package/lib/cjs/tag/index.js +1 -1
  28. package/lib/cjs/tagInput/index.d.ts +2 -0
  29. package/lib/cjs/tagInput/index.js +4 -2
  30. package/lib/cjs/timePicker/TimePicker.d.ts +11 -6
  31. package/lib/cjs/timePicker/TimePicker.js +7 -3
  32. package/lib/cjs/timePicker/index.d.ts +2 -0
  33. package/lib/cjs/tooltip/index.js +6 -4
  34. package/lib/cjs/treeSelect/index.d.ts +5 -0
  35. package/lib/cjs/treeSelect/index.js +11 -3
  36. package/lib/es/autoComplete/index.d.ts +2 -0
  37. package/lib/es/autoComplete/index.js +5 -2
  38. package/lib/es/cascader/index.d.ts +4 -0
  39. package/lib/es/cascader/index.js +9 -2
  40. package/lib/es/datePicker/dateInput.js +3 -2
  41. package/lib/es/datePicker/datePicker.d.ts +5 -0
  42. package/lib/es/datePicker/datePicker.js +7 -1
  43. package/lib/es/dropdown/index.d.ts +12 -11
  44. package/lib/es/dropdown/index.js +15 -12
  45. package/lib/es/form/baseForm.d.ts +7 -0
  46. package/lib/es/form/field.d.ts +7 -0
  47. package/lib/es/input/index.d.ts +2 -0
  48. package/lib/es/input/index.js +7 -2
  49. package/lib/es/inputNumber/index.d.ts +2 -0
  50. package/lib/es/inputNumber/index.js +1 -0
  51. package/lib/es/popover/index.d.ts +4 -2
  52. package/lib/es/popover/index.js +1 -0
  53. package/lib/es/select/index.d.ts +4 -0
  54. package/lib/es/select/index.js +9 -3
  55. package/lib/es/table/Body/index.js +3 -3
  56. package/lib/es/tag/index.js +1 -1
  57. package/lib/es/tagInput/index.d.ts +2 -0
  58. package/lib/es/tagInput/index.js +4 -2
  59. package/lib/es/timePicker/TimePicker.d.ts +11 -6
  60. package/lib/es/timePicker/TimePicker.js +7 -3
  61. package/lib/es/timePicker/index.d.ts +2 -0
  62. package/lib/es/tooltip/index.js +7 -4
  63. package/lib/es/treeSelect/index.d.ts +5 -0
  64. package/lib/es/treeSelect/index.js +11 -3
  65. package/package.json +8 -8
@@ -26,6 +26,7 @@ export interface AutoCompleteProps<T extends AutoCompleteItems> {
26
26
  autoAdjustOverflow?: boolean;
27
27
  autoFocus?: boolean;
28
28
  className?: string;
29
+ clearIcon?: ReactNode;
29
30
  children?: ReactNode | undefined;
30
31
  data?: T[];
31
32
  disabled?: boolean;
@@ -94,6 +95,7 @@ declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<Au
94
95
  autoFocus: PropTypes.Requireable<boolean>;
95
96
  autoAdjustOverflow: PropTypes.Requireable<boolean>;
96
97
  className: PropTypes.Requireable<string>;
98
+ clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
97
99
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
98
100
  data: PropTypes.Requireable<any[]>;
99
101
  defaultOpen: PropTypes.Requireable<boolean>;
@@ -207,7 +207,8 @@ class AutoComplete extends _baseComponent.default {
207
207
  validateStatus,
208
208
  autoFocus,
209
209
  value,
210
- id
210
+ id,
211
+ clearIcon
211
212
  } = this.props;
212
213
  const {
213
214
  inputValue,
@@ -248,7 +249,8 @@ class AutoComplete extends _baseComponent.default {
248
249
  validateStatus,
249
250
  size,
250
251
  onBlur: this.onBlur,
251
- onFocus: this.onFocus
252
+ onFocus: this.onFocus,
253
+ clearIcon
252
254
  };
253
255
  return /*#__PURE__*/_react.default.createElement("div", Object.assign({}, outerProps), typeof triggerRender === 'function' ? /*#__PURE__*/_react.default.createElement(_trigger.default, Object.assign({}, innerProps, {
254
256
  inputValue: typeof value !== 'undefined' ? value : inputValue,
@@ -364,6 +366,7 @@ AutoComplete.propTypes = {
364
366
  autoFocus: _propTypes.default.bool,
365
367
  autoAdjustOverflow: _propTypes.default.bool,
366
368
  className: _propTypes.default.string,
369
+ clearIcon: _propTypes.default.node,
367
370
  children: _propTypes.default.node,
368
371
  data: _propTypes.default.array,
369
372
  defaultOpen: _propTypes.default.bool,
@@ -27,8 +27,10 @@ export interface CascaderProps extends BasicCascaderProps {
27
27
  'aria-required'?: React.AriaAttributes['aria-required'];
28
28
  'aria-label'?: React.AriaAttributes['aria-label'];
29
29
  arrowIcon?: ReactNode;
30
+ clearIcon?: ReactNode;
30
31
  defaultValue?: Value;
31
32
  dropdownStyle?: CSSProperties;
33
+ dropdownMargin?: PopoverProps['margin'];
32
34
  emptyContent?: ReactNode;
33
35
  motion?: boolean;
34
36
  treeData?: Array<CascaderData>;
@@ -70,11 +72,13 @@ declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
70
72
  'aria-required': PropTypes.Requireable<boolean>;
71
73
  'aria-label': PropTypes.Requireable<string>;
72
74
  arrowIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
75
+ clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
73
76
  changeOnSelect: PropTypes.Requireable<boolean>;
74
77
  defaultValue: PropTypes.Requireable<NonNullable<string | any[]>>;
75
78
  disabled: PropTypes.Requireable<boolean>;
76
79
  dropdownClassName: PropTypes.Requireable<string>;
77
80
  dropdownStyle: PropTypes.Requireable<object>;
81
+ dropdownMargin: PropTypes.Requireable<NonNullable<number | object>>;
78
82
  emptyContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
79
83
  motion: PropTypes.Requireable<boolean>;
80
84
  filterTreeNode: PropTypes.Requireable<NonNullable<boolean | ((...args: any[]) => any)>>;
@@ -420,6 +420,9 @@ class Cascader extends _baseComponent.default {
420
420
 
421
421
  this.renderClearBtn = () => {
422
422
  const clearCls = (0, _classnames.default)("".concat(prefixcls, "-clearbtn"));
423
+ const {
424
+ clearIcon
425
+ } = this.props;
423
426
  const allowClear = this.showClearBtn();
424
427
 
425
428
  if (allowClear) {
@@ -429,7 +432,7 @@ class Cascader extends _baseComponent.default {
429
432
  onKeyPress: this.handleClearEnterPress,
430
433
  role: "button",
431
434
  tabIndex: 0
432
- }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null));
435
+ }, clearIcon ? clearIcon : /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null));
433
436
  }
434
437
 
435
438
  return null;
@@ -959,7 +962,8 @@ class Cascader extends _baseComponent.default {
959
962
  mouseLeaveDelay,
960
963
  mouseEnterDelay,
961
964
  position,
962
- motion
965
+ motion,
966
+ dropdownMargin
963
967
  } = this.props;
964
968
  const {
965
969
  isOpen,
@@ -975,6 +979,7 @@ class Cascader extends _baseComponent.default {
975
979
  getPopupContainer: getPopupContainer,
976
980
  zIndex: zIndex,
977
981
  motion: motion,
982
+ margin: dropdownMargin,
978
983
  ref: this.optionsRef,
979
984
  content: content,
980
985
  visible: isOpen,
@@ -1000,11 +1005,13 @@ Cascader.propTypes = {
1000
1005
  'aria-required': _propTypes.default.bool,
1001
1006
  'aria-label': _propTypes.default.string,
1002
1007
  arrowIcon: _propTypes.default.node,
1008
+ clearIcon: _propTypes.default.node,
1003
1009
  changeOnSelect: _propTypes.default.bool,
1004
1010
  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.array]),
1005
1011
  disabled: _propTypes.default.bool,
1006
1012
  dropdownClassName: _propTypes.default.string,
1007
1013
  dropdownStyle: _propTypes.default.object,
1014
+ dropdownMargin: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
1008
1015
  emptyContent: _propTypes.default.node,
1009
1016
  motion: _propTypes.default.bool,
1010
1017
 
@@ -186,7 +186,8 @@ class DateInput extends _baseComponent.default {
186
186
  const {
187
187
  showClear,
188
188
  prefixCls,
189
- disabled
189
+ disabled,
190
+ clearIcon
190
191
  } = this.props;
191
192
  const allowClear = (rangeStart || rangeEnd) && showClear;
192
193
  return allowClear && !disabled ? /*#__PURE__*/_react.default.createElement("div", {
@@ -195,7 +196,7 @@ class DateInput extends _baseComponent.default {
195
196
  "aria-label": "Clear range input value",
196
197
  className: "".concat(prefixCls, "-range-input-clearbtn"),
197
198
  onMouseDown: e => !disabled && this.handleRangeInputClear(e)
198
- }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, {
199
+ }, clearIcon ? clearIcon : /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, {
199
200
  "aria-hidden": true
200
201
  })) : null;
201
202
  }
@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
3
3
  import { ContextValue } from '../configProvider/context';
4
4
  import DatePickerFoundation, { DatePickerAdapter, DatePickerFoundationProps, DatePickerFoundationState, DayStatusType, PresetType, Type, RangeType } from '@douyinfe/semi-foundation/lib/cjs/datePicker/foundation';
5
5
  import BaseComponent from '../_base/baseComponent';
6
+ import { PopoverProps } from '../popover/index';
6
7
  import { DateInputProps } from './dateInput';
7
8
  import MonthsGrid, { MonthsGridProps } from './monthsGrid';
8
9
  import { YearAndMonthProps } from './yearAndMonth';
@@ -17,6 +18,7 @@ export interface DatePickerProps extends DatePickerFoundationProps {
17
18
  'aria-invalid'?: React.AriaAttributes['aria-invalid'];
18
19
  'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
19
20
  'aria-required'?: React.AriaAttributes['aria-required'];
21
+ clearIcon?: React.ReactNode;
20
22
  timePickerOpts?: TimePickerProps;
21
23
  bottomSlot?: React.ReactNode;
22
24
  insetLabel?: React.ReactNode;
@@ -33,6 +35,7 @@ export interface DatePickerProps extends DatePickerFoundationProps {
33
35
  locale?: Locale['DatePicker'];
34
36
  dateFnsLocale?: Locale['dateFnsLocale'];
35
37
  yearAndMonthOpts?: ScrollItemProps<any>;
38
+ dropdownMargin?: PopoverProps['margin'];
36
39
  }
37
40
  export declare type DatePickerState = DatePickerFoundationState;
38
41
  export default class DatePicker extends BaseComponent<DatePickerProps, DatePickerState> {
@@ -45,6 +48,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
45
48
  'aria-required': PropTypes.Requireable<boolean>;
46
49
  type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
47
50
  size: PropTypes.Requireable<"default" | "small" | "large">;
51
+ clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
48
52
  density: PropTypes.Requireable<"default" | "compact">;
49
53
  defaultValue: PropTypes.Requireable<NonNullable<string | number | object>>;
50
54
  value: PropTypes.Requireable<NonNullable<string | number | object>>;
@@ -100,6 +104,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
100
104
  autoSwitchDate: PropTypes.Requireable<boolean>;
101
105
  dropdownClassName: PropTypes.Requireable<string>;
102
106
  dropdownStyle: PropTypes.Requireable<object>;
107
+ dropdownMargin: PropTypes.Requireable<NonNullable<number | object>>;
103
108
  topSlot: PropTypes.Requireable<PropTypes.ReactNodeLike>;
104
109
  bottomSlot: PropTypes.Requireable<PropTypes.ReactNodeLike>;
105
110
  dateFnsLocale: PropTypes.Requireable<object>;
@@ -267,7 +267,8 @@ class DatePicker extends _baseComponent.default {
267
267
  dateFnsLocale,
268
268
  stopPropagation,
269
269
  autoAdjustOverflow,
270
- spacing
270
+ spacing,
271
+ dropdownMargin
271
272
  } = this.props;
272
273
  return /*#__PURE__*/_react.default.createElement(_index.default, {
273
274
  getPopupContainer: getPopupContainer,
@@ -275,6 +276,7 @@ class DatePicker extends _baseComponent.default {
275
276
  autoAdjustOverflow: autoAdjustOverflow,
276
277
  zIndex: zIndex,
277
278
  motion: motion,
279
+ margin: dropdownMargin,
278
280
  content: this.renderPanel(locale, localeCode, dateFnsLocale),
279
281
  trigger: "custom",
280
282
  position: position,
@@ -673,6 +675,7 @@ class DatePicker extends _baseComponent.default {
673
675
 
674
676
  renderInner(extraProps) {
675
677
  const {
678
+ clearIcon,
676
679
  type,
677
680
  format,
678
681
  multiple,
@@ -714,6 +717,7 @@ class DatePicker extends _baseComponent.default {
714
717
 
715
718
  const props = Object.assign(Object.assign({}, extraProps), {
716
719
  placeholder: phText,
720
+ clearIcon,
717
721
  disabled: inputDisabled,
718
722
  inputValue,
719
723
  value: value,
@@ -797,6 +801,7 @@ DatePicker.propTypes = {
797
801
  'aria-required': _propTypes.default.bool,
798
802
  type: _propTypes.default.oneOf(_constants.strings.TYPE_SET),
799
803
  size: _propTypes.default.oneOf(_constants.strings.SIZE_SET),
804
+ clearIcon: _propTypes.default.node,
800
805
  density: _propTypes.default.oneOf(_constants.strings.DENSITY_SET),
801
806
  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.object, _propTypes.default.array]),
802
807
  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.object, _propTypes.default.array]),
@@ -852,6 +857,7 @@ DatePicker.propTypes = {
852
857
  autoSwitchDate: _propTypes.default.bool,
853
858
  dropdownClassName: _propTypes.default.string,
854
859
  dropdownStyle: _propTypes.default.object,
860
+ dropdownMargin: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
855
861
  topSlot: _propTypes.default.node,
856
862
  bottomSlot: _propTypes.default.node,
857
863
  dateFnsLocale: _propTypes.default.object,
@@ -55,25 +55,26 @@ declare class Dropdown extends BaseComponent<DropdownProps, DropdownState> {
55
55
  static Title: typeof DropdownTitle;
56
56
  static contextType: React.Context<DropdownContextType>;
57
57
  static propTypes: {
58
- render: PropTypes.Requireable<PropTypes.ReactNodeLike>;
59
58
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
60
- visible: PropTypes.Requireable<boolean>;
61
- position: PropTypes.Requireable<"left" | "top" | "right" | "bottom" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver">;
59
+ contentClassName: PropTypes.Requireable<NonNullable<string | any[]>>;
60
+ className: PropTypes.Requireable<string>;
62
61
  getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
62
+ margin: PropTypes.Requireable<NonNullable<number | object>>;
63
63
  mouseEnterDelay: PropTypes.Requireable<number>;
64
64
  mouseLeaveDelay: PropTypes.Requireable<number>;
65
- trigger: PropTypes.Requireable<string>;
66
- zIndex: PropTypes.Requireable<number>;
65
+ menu: PropTypes.Requireable<any[]>;
67
66
  motion: PropTypes.Requireable<NonNullable<boolean | object>>;
68
- className: PropTypes.Requireable<string>;
69
- contentClassName: PropTypes.Requireable<NonNullable<string | any[]>>;
70
- style: PropTypes.Requireable<object>;
71
67
  onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
72
- rePosKey: PropTypes.Requireable<NonNullable<string | number>>;
73
- showTick: PropTypes.Requireable<boolean>;
74
68
  prefixCls: PropTypes.Requireable<string>;
69
+ position: PropTypes.Requireable<"left" | "top" | "right" | "bottom" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver">;
70
+ rePosKey: PropTypes.Requireable<NonNullable<string | number>>;
71
+ render: PropTypes.Requireable<PropTypes.ReactNodeLike>;
75
72
  spacing: PropTypes.Requireable<number>;
76
- menu: PropTypes.Requireable<any[]>;
73
+ showTick: PropTypes.Requireable<boolean>;
74
+ style: PropTypes.Requireable<object>;
75
+ trigger: PropTypes.Requireable<string>;
76
+ visible: PropTypes.Requireable<boolean>;
77
+ zIndex: PropTypes.Requireable<number>;
77
78
  };
78
79
  static defaultProps: {
79
80
  onVisibleChange: (...args: any[]) => void;
@@ -196,10 +196,11 @@ class Dropdown extends _baseComponent.default {
196
196
  zIndex,
197
197
  className,
198
198
  motion,
199
+ margin,
199
200
  style,
200
201
  prefixCls
201
202
  } = _a,
202
- attr = __rest(_a, ["children", "position", "trigger", "onVisibleChange", "zIndex", "className", "motion", "style", "prefixCls"]);
203
+ attr = __rest(_a, ["children", "position", "trigger", "onVisibleChange", "zIndex", "className", "motion", "margin", "style", "prefixCls"]);
203
204
 
204
205
  let {
205
206
  spacing
@@ -221,6 +222,7 @@ class Dropdown extends _baseComponent.default {
221
222
  return /*#__PURE__*/_react.default.createElement(_index.default, Object.assign({
222
223
  zIndex: zIndex,
223
224
  motion: motion,
225
+ margin: margin,
224
226
  content: pop,
225
227
  className: className,
226
228
  prefixCls: prefixCls,
@@ -254,25 +256,26 @@ Dropdown.Divider = _dropdownDivider.default;
254
256
  Dropdown.Title = _dropdownTitle.default;
255
257
  Dropdown.contextType = _context.default;
256
258
  Dropdown.propTypes = {
257
- render: _propTypes.default.node,
258
259
  children: _propTypes.default.node,
259
- visible: _propTypes.default.bool,
260
- position: _propTypes.default.oneOf(positionSet),
260
+ contentClassName: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.array]),
261
+ className: _propTypes.default.string,
261
262
  getPopupContainer: _propTypes.default.func,
263
+ margin: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
262
264
  mouseEnterDelay: _propTypes.default.number,
263
265
  mouseLeaveDelay: _propTypes.default.number,
264
- trigger: _propTypes.default.oneOf(triggerSet),
265
- zIndex: _propTypes.default.number,
266
+ menu: _propTypes.default.array,
266
267
  motion: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.func, _propTypes.default.object]),
267
- className: _propTypes.default.string,
268
- contentClassName: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.array]),
269
- style: _propTypes.default.object,
270
268
  onVisibleChange: _propTypes.default.func,
271
- rePosKey: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
272
- showTick: _propTypes.default.bool,
273
269
  prefixCls: _propTypes.default.string,
270
+ position: _propTypes.default.oneOf(positionSet),
271
+ rePosKey: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
272
+ render: _propTypes.default.node,
274
273
  spacing: _propTypes.default.number,
275
- menu: _propTypes.default.array
274
+ showTick: _propTypes.default.bool,
275
+ style: _propTypes.default.object,
276
+ trigger: _propTypes.default.oneOf(triggerSet),
277
+ visible: _propTypes.default.bool,
278
+ zIndex: _propTypes.default.number
276
279
  };
277
280
  Dropdown.defaultProps = {
278
281
  onVisibleChange: _noop2.default,
@@ -64,6 +64,7 @@ declare class Form<Values extends Record<string, any> = any> extends BaseCompone
64
64
  autoFocus?: boolean;
65
65
  autoClearSearchValue?: boolean;
66
66
  arrowIcon?: React.ReactNode;
67
+ clearIcon?: React.ReactNode;
67
68
  defaultValue?: string | number | any[] | Record<string, any>;
68
69
  value?: string | number | any[] | Record<string, any>;
69
70
  placeholder?: React.ReactNode;
@@ -84,6 +85,12 @@ declare class Form<Values extends Record<string, any> = any> extends BaseCompone
84
85
  onSearch?: (value: string) => void;
85
86
  dropdownClassName?: string;
86
87
  dropdownStyle?: React.CSSProperties;
88
+ dropdownMargin?: number | {
89
+ marginLeft: number;
90
+ marginTop: number;
91
+ marginRight: number;
92
+ marginBottom: number;
93
+ };
87
94
  outerTopSlot?: React.ReactNode;
88
95
  innerTopSlot?: React.ReactNode;
89
96
  outerBottomSlot?: React.ReactNode;
@@ -12,6 +12,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
12
12
  autoFocus?: boolean;
13
13
  autoClearSearchValue?: boolean;
14
14
  arrowIcon?: import("react").ReactNode;
15
+ clearIcon?: import("react").ReactNode;
15
16
  defaultValue?: string | number | any[] | Record<string, any>;
16
17
  value?: string | number | any[] | Record<string, any>;
17
18
  placeholder?: import("react").ReactNode;
@@ -32,6 +33,12 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
32
33
  onSearch?: (value: string) => void;
33
34
  dropdownClassName?: string;
34
35
  dropdownStyle?: import("react").CSSProperties;
36
+ dropdownMargin?: number | {
37
+ marginLeft: number;
38
+ marginTop: number;
39
+ marginRight: number;
40
+ marginBottom: number;
41
+ };
35
42
  outerTopSlot?: import("react").ReactNode;
36
43
  innerTopSlot?: import("react").ReactNode;
37
44
  outerBottomSlot?: import("react").ReactNode;
@@ -33,6 +33,7 @@ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
33
33
  insetLabelId?: string;
34
34
  size?: InputSize;
35
35
  className?: string;
36
+ clearIcon?: React.ReactNode;
36
37
  style?: React.CSSProperties;
37
38
  validateStatus?: ValidateStatus;
38
39
  onClear?: (e: React.MouseEvent<HTMLDivElement>) => void;
@@ -69,6 +70,7 @@ declare class Input extends BaseComponent<InputProps, InputState> {
69
70
  'aria-required': PropTypes.Requireable<boolean>;
70
71
  addonBefore: PropTypes.Requireable<PropTypes.ReactNodeLike>;
71
72
  addonAfter: PropTypes.Requireable<PropTypes.ReactNodeLike>;
73
+ clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
72
74
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
73
75
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
74
76
  mode: PropTypes.Requireable<"password">;
@@ -224,6 +224,9 @@ class Input extends _baseComponent.default {
224
224
 
225
225
  renderClearBtn() {
226
226
  const clearCls = (0, _classnames.default)("".concat(prefixCls, "-clearbtn"));
227
+ const {
228
+ clearIcon
229
+ } = this.props;
227
230
  const allowClear = this.foundation.isAllowClear(); // use onMouseDown to fix issue 1203
228
231
 
229
232
  if (allowClear) {
@@ -233,7 +236,7 @@ class Input extends _baseComponent.default {
233
236
  _react.default.createElement("div", {
234
237
  className: clearCls,
235
238
  onMouseDown: this.handleClear
236
- }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null))
239
+ }, clearIcon ? clearIcon : /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null))
237
240
  );
238
241
  }
239
242
 
@@ -370,6 +373,7 @@ class Input extends _baseComponent.default {
370
373
  addonAfter,
371
374
  addonBefore,
372
375
  autofocus,
376
+ clearIcon,
373
377
  className,
374
378
  disabled,
375
379
  defaultValue,
@@ -394,7 +398,7 @@ class Input extends _baseComponent.default {
394
398
  getValueLength,
395
399
  preventScroll
396
400
  } = _a,
397
- rest = __rest(_a, ["addonAfter", "addonBefore", "autofocus", "className", "disabled", "defaultValue", "placeholder", "prefix", "mode", "insetLabel", "insetLabelId", "validateStatus", "type", "readonly", "size", "suffix", "style", "showClear", "onEnterPress", "onClear", "hideSuffix", "inputStyle", "forwardRef", "maxLength", "getValueLength", "preventScroll"]);
401
+ rest = __rest(_a, ["addonAfter", "addonBefore", "autofocus", "clearIcon", "className", "disabled", "defaultValue", "placeholder", "prefix", "mode", "insetLabel", "insetLabelId", "validateStatus", "type", "readonly", "size", "suffix", "style", "showClear", "onEnterPress", "onClear", "hideSuffix", "inputStyle", "forwardRef", "maxLength", "getValueLength", "preventScroll"]);
398
402
 
399
403
  const {
400
404
  value,
@@ -488,6 +492,7 @@ Input.propTypes = {
488
492
  'aria-required': _propTypes.default.bool,
489
493
  addonBefore: _propTypes.default.node,
490
494
  addonAfter: _propTypes.default.node,
495
+ clearIcon: _propTypes.default.node,
491
496
  prefix: _propTypes.default.node,
492
497
  suffix: _propTypes.default.node,
493
498
  mode: _propTypes.default.oneOf(modeSet),
@@ -9,6 +9,7 @@ import { ArrayElement } from '../_base/base';
9
9
  export interface InputNumberProps extends InputProps {
10
10
  autofocus?: boolean;
11
11
  className?: string;
12
+ clearIcon?: React.ReactNode;
12
13
  defaultValue?: number | string;
13
14
  disabled?: boolean;
14
15
  formatter?: (value: number | string) => string;
@@ -51,6 +52,7 @@ declare class InputNumber extends BaseComponent<InputNumberProps, InputNumberSta
51
52
  'aria-describedby': PropTypes.Requireable<string>;
52
53
  'aria-required': PropTypes.Requireable<boolean>;
53
54
  autofocus: PropTypes.Requireable<boolean>;
55
+ clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
54
56
  className: PropTypes.Requireable<string>;
55
57
  defaultValue: PropTypes.Requireable<NonNullable<string | number>>;
56
58
  disabled: PropTypes.Requireable<boolean>;
@@ -505,6 +505,7 @@ InputNumber.propTypes = {
505
505
  'aria-describedby': _propTypes.default.string,
506
506
  'aria-required': _propTypes.default.bool,
507
507
  autofocus: _propTypes.default.bool,
508
+ clearIcon: _propTypes.default.node,
508
509
  className: _propTypes.default.string,
509
510
  defaultValue: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
510
511
  disabled: _propTypes.default.bool,
@@ -12,12 +12,13 @@ declare interface ArrowStyle {
12
12
  borderOpacity?: string | number;
13
13
  }
14
14
  export interface PopoverProps extends BaseProps {
15
+ autoAdjustOverflow?: boolean;
15
16
  children?: React.ReactNode;
16
17
  content?: TooltipProps['content'];
17
18
  visible?: boolean;
18
- autoAdjustOverflow?: boolean;
19
- motion?: boolean;
20
19
  position?: Position;
20
+ motion?: boolean;
21
+ margin?: TooltipProps['margin'];
21
22
  mouseEnterDelay?: number;
22
23
  mouseLeaveDelay?: number;
23
24
  trigger?: Trigger;
@@ -54,6 +55,7 @@ declare class Popover extends React.PureComponent<PopoverProps, PopoverState> {
54
55
  autoAdjustOverflow: PropTypes.Requireable<boolean>;
55
56
  motion: PropTypes.Requireable<boolean>;
56
57
  position: PropTypes.Requireable<"left" | "top" | "right" | "bottom" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver">;
58
+ margin: PropTypes.Requireable<NonNullable<number | object>>;
57
59
  mouseEnterDelay: PropTypes.Requireable<number>;
58
60
  mouseLeaveDelay: PropTypes.Requireable<number>;
59
61
  trigger: PropTypes.Validator<NonNullable<"hover" | "focus" | "click" | "custom">>;
@@ -139,6 +139,7 @@ Popover.propTypes = {
139
139
  motion: _propTypes.default.bool,
140
140
  position: _propTypes.default.oneOf(positionSet),
141
141
  // getPopupContainer: PropTypes.func,
142
+ margin: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
142
143
  mouseEnterDelay: _propTypes.default.number,
143
144
  mouseLeaveDelay: _propTypes.default.number,
144
145
  trigger: _propTypes.default.oneOf(triggerSet).isRequired,
@@ -67,6 +67,7 @@ export declare type SelectProps = {
67
67
  autoFocus?: boolean;
68
68
  autoClearSearchValue?: boolean;
69
69
  arrowIcon?: React.ReactNode;
70
+ clearIcon?: React.ReactNode;
70
71
  defaultValue?: string | number | any[] | Record<string, any>;
71
72
  value?: string | number | any[] | Record<string, any>;
72
73
  placeholder?: React.ReactNode;
@@ -87,6 +88,7 @@ export declare type SelectProps = {
87
88
  onSearch?: (value: string) => void;
88
89
  dropdownClassName?: string;
89
90
  dropdownStyle?: React.CSSProperties;
91
+ dropdownMargin?: PopoverProps['margin'];
90
92
  outerTopSlot?: React.ReactNode;
91
93
  innerTopSlot?: React.ReactNode;
92
94
  outerBottomSlot?: React.ReactNode;
@@ -157,6 +159,7 @@ declare class Select extends BaseComponent<SelectProps, SelectState> {
157
159
  autoFocus: PropTypes.Requireable<boolean>;
158
160
  autoClearSearchValue: PropTypes.Requireable<boolean>;
159
161
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
162
+ clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
160
163
  defaultValue: PropTypes.Requireable<NonNullable<string | number | object>>;
161
164
  value: PropTypes.Requireable<NonNullable<string | number | object>>;
162
165
  placeholder: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -178,6 +181,7 @@ declare class Select extends BaseComponent<SelectProps, SelectState> {
178
181
  getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
179
182
  dropdownClassName: PropTypes.Requireable<string>;
180
183
  dropdownStyle: PropTypes.Requireable<object>;
184
+ dropdownMargin: PropTypes.Requireable<NonNullable<number | object>>;
181
185
  outerTopSlot: PropTypes.Requireable<PropTypes.ReactNodeLike>;
182
186
  innerTopSlot: PropTypes.Requireable<PropTypes.ReactNodeLike>;
183
187
  inputProps: PropTypes.Requireable<object>;
@@ -984,7 +984,8 @@ class Select extends _baseComponent.default {
984
984
  insetLabel,
985
985
  placeholder,
986
986
  triggerRender,
987
- arrowIcon
987
+ arrowIcon,
988
+ clearIcon
988
989
  } = this.props;
989
990
  const {
990
991
  selections,
@@ -1021,6 +1022,7 @@ class Select extends _baseComponent.default {
1021
1022
  }, arrowIcon) : /*#__PURE__*/_react.default.createElement("div", {
1022
1023
  className: "".concat(prefixcls, "-arrow-empty")
1023
1024
  });
1025
+ const clear = clearIcon ? clearIcon : /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null);
1024
1026
  const inner = useCustomTrigger ? /*#__PURE__*/_react.default.createElement(_trigger.default, {
1025
1027
  value: Array.from(selections.values()),
1026
1028
  inputValue: inputValue,
@@ -1042,7 +1044,7 @@ class Select extends _baseComponent.default {
1042
1044
  }, showClear ? /*#__PURE__*/_react.default.createElement("div", {
1043
1045
  className: (0, _classnames.default)("".concat(prefixcls, "-clear")),
1044
1046
  onClick: this.onClear
1045
- }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null)) : arrowContent), /*#__PURE__*/_react.default.createElement(_react.Fragment, {
1047
+ }, clear) : arrowContent), /*#__PURE__*/_react.default.createElement(_react.Fragment, {
1046
1048
  key: "suffix"
1047
1049
  }, suffix ? this.renderSuffix() : null)];
1048
1050
  /**
@@ -1102,7 +1104,8 @@ class Select extends _baseComponent.default {
1102
1104
  mouseLeaveDelay,
1103
1105
  mouseEnterDelay,
1104
1106
  spacing,
1105
- stopPropagation
1107
+ stopPropagation,
1108
+ dropdownMargin
1106
1109
  } = this.props;
1107
1110
  const {
1108
1111
  isOpen,
@@ -1113,6 +1116,7 @@ class Select extends _baseComponent.default {
1113
1116
  return /*#__PURE__*/_react.default.createElement(_index2.default, {
1114
1117
  getPopupContainer: getPopupContainer,
1115
1118
  motion: motion,
1119
+ margin: dropdownMargin,
1116
1120
  autoAdjustOverflow: autoAdjustOverflow,
1117
1121
  mouseLeaveDelay: mouseLeaveDelay,
1118
1122
  mouseEnterDelay: mouseEnterDelay,
@@ -1146,6 +1150,7 @@ Select.propTypes = {
1146
1150
  autoFocus: _propTypes.default.bool,
1147
1151
  autoClearSearchValue: _propTypes.default.bool,
1148
1152
  children: _propTypes.default.node,
1153
+ clearIcon: _propTypes.default.node,
1149
1154
  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.array, _propTypes.default.object]),
1150
1155
  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.array, _propTypes.default.object]),
1151
1156
  placeholder: _propTypes.default.node,
@@ -1170,6 +1175,7 @@ Select.propTypes = {
1170
1175
  getPopupContainer: _propTypes.default.func,
1171
1176
  dropdownClassName: _propTypes.default.string,
1172
1177
  dropdownStyle: _propTypes.default.object,
1178
+ dropdownMargin: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
1173
1179
  outerTopSlot: _propTypes.default.node,
1174
1180
  innerTopSlot: _propTypes.default.node,
1175
1181
  inputProps: _propTypes.default.object,
@@ -308,7 +308,7 @@ class Body extends _baseComponent.default {
308
308
 
309
309
  const listStyle = {
310
310
  width: '100%',
311
- height: (virtualizedData === null || virtualizedData === void 0 ? void 0 : virtualizedData.length) ? y : _constants.numbers.DEFAULT_EMPTYSLOT_HEIGHT,
311
+ height: (virtualizedData === null || virtualizedData === void 0 ? void 0 : virtualizedData.length) ? y : null,
312
312
  overflowX: 'auto',
313
313
  overflowY: 'auto'
314
314
  };
@@ -320,7 +320,7 @@ class Body extends _baseComponent.default {
320
320
  ref: this.listRef,
321
321
  className: wrapCls,
322
322
  outerRef: this.forwardRef,
323
- height: listStyle.height,
323
+ height: (virtualizedData === null || virtualizedData === void 0 ? void 0 : virtualizedData.length) ? y : 0,
324
324
  width: listStyle.width,
325
325
  itemData: virtualizedData,
326
326
  itemSize: this.itemSize,
@@ -210,7 +210,7 @@ class Tag extends _react.Component {
210
210
  "aria-label": this.props['aria-label'] || (0, _isString2.default)(children) ? "".concat(closable ? 'Closable ' : '', "Tag: ").concat(children) : ''
211
211
  }, wrapProps), /*#__PURE__*/_react.default.createElement("div", {
212
212
  className: "".concat(prefixCls, "-content")
213
- }, avatarSrc ? this.renderAvatar() : null, children, closeIcon));
213
+ }, avatarSrc ? this.renderAvatar() : null, children), closeIcon);
214
214
  }
215
215
 
216
216
  }
@@ -11,6 +11,7 @@ export declare type RestTagsPopoverProps = PopoverProps;
11
11
  declare type ValidateStatus = "default" | "error" | "warning";
12
12
  export interface TagInputProps {
13
13
  className?: string;
14
+ clearIcon?: React.ReactNode;
14
15
  defaultValue?: string[];
15
16
  disabled?: boolean;
16
17
  inputValue?: string;
@@ -59,6 +60,7 @@ export interface TagInputState {
59
60
  declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
60
61
  static propTypes: {
61
62
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
63
+ clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
62
64
  style: PropTypes.Requireable<object>;
63
65
  className: PropTypes.Requireable<string>;
64
66
  disabled: PropTypes.Requireable<boolean>;