@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
@@ -338,7 +338,8 @@ class TagInput extends _baseComponent.default {
338
338
  } = this.state;
339
339
  const {
340
340
  showClear,
341
- disabled
341
+ disabled,
342
+ clearIcon
342
343
  } = this.props;
343
344
  const clearCls = (0, _classnames.default)("".concat(prefixCls, "-clearBtn"), {
344
345
  ["".concat(prefixCls, "-clearBtn-invisible")]: !hovering || inputValue === '' && tagsArray.length === 0 || disabled
@@ -352,7 +353,7 @@ class TagInput extends _baseComponent.default {
352
353
  className: clearCls,
353
354
  onClick: e => this.handleClearBtn(e),
354
355
  onKeyPress: e => this.handleClearEnterPress(e)
355
- }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null));
356
+ }, clearIcon ? clearIcon : /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null));
356
357
  }
357
358
 
358
359
  return null;
@@ -565,6 +566,7 @@ class TagInput extends _baseComponent.default {
565
566
 
566
567
  TagInput.propTypes = {
567
568
  children: _propTypes.default.node,
569
+ clearIcon: _propTypes.default.node,
568
570
  style: _propTypes.default.object,
569
571
  className: _propTypes.default.string,
570
572
  disabled: _propTypes.default.bool,
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import BaseComponent, { ValidateStatus } from '../_base/baseComponent';
4
+ import { PopoverProps } from '../popover';
4
5
  import TimePickerFoundation, { TimePickerAdapter } from '@douyinfe/semi-foundation/lib/cjs/timePicker/foundation';
5
6
  import '@douyinfe/semi-foundation/lib/cjs/timePicker/timePicker.css';
6
7
  import { InputSize } from '../input';
@@ -8,8 +9,8 @@ import { Position } from '../tooltip';
8
9
  import { ScrollItemProps } from '../scrollList/scrollItem';
9
10
  import { Locale } from '../locale/interface';
10
11
  export interface Panel {
11
- panelHeader?: React.ReactNode;
12
- panelFooter?: React.ReactNode;
12
+ panelHeader?: React.ReactNode | React.ReactNode[];
13
+ panelFooter?: React.ReactNode | React.ReactNode[];
13
14
  }
14
15
  export declare type BaseValueType = string | number | Date;
15
16
  export declare type Type = 'time' | 'timeRange';
@@ -23,6 +24,7 @@ export declare type TimePickerProps = {
23
24
  autoFocus?: boolean;
24
25
  className?: string;
25
26
  clearText?: string;
27
+ clearIcon?: React.ReactNode;
26
28
  dateFnsLocale?: Locale['dateFnsLocale'];
27
29
  defaultOpen?: boolean;
28
30
  defaultValue?: BaseValueType | BaseValueType[];
@@ -30,6 +32,7 @@ export declare type TimePickerProps = {
30
32
  disabledHours?: () => number[];
31
33
  disabledMinutes?: (selectedHour: number) => number[];
32
34
  disabledSeconds?: (selectedHour: number, selectedMinute: number) => number[];
35
+ dropdownMargin?: PopoverProps['margin'];
33
36
  focusOnOpen?: boolean;
34
37
  format?: string;
35
38
  getPopupContainer?: () => HTMLElement;
@@ -45,8 +48,8 @@ export declare type TimePickerProps = {
45
48
  minuteStep?: number;
46
49
  motion?: boolean;
47
50
  open?: boolean;
48
- panelFooter?: React.ReactNode;
49
- panelHeader?: React.ReactNode;
51
+ panelFooter?: React.ReactNode | React.ReactNode[];
52
+ panelHeader?: React.ReactNode | React.ReactNode[];
50
53
  panels?: Panel[];
51
54
  placeholder?: string;
52
55
  popupClassName?: string;
@@ -98,6 +101,7 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
98
101
  'aria-required': PropTypes.Requireable<boolean>;
99
102
  prefixCls: PropTypes.Requireable<string>;
100
103
  clearText: PropTypes.Requireable<string>;
104
+ clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
101
105
  value: PropTypes.Requireable<NonNullable<string | number | string[] | number[] | Date | Date[]>>;
102
106
  inputReadOnly: PropTypes.Requireable<boolean>;
103
107
  disabled: PropTypes.Requireable<boolean>;
@@ -117,6 +121,7 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
117
121
  disabledHours: PropTypes.Requireable<(...args: any[]) => any>;
118
122
  disabledMinutes: PropTypes.Requireable<(...args: any[]) => any>;
119
123
  disabledSeconds: PropTypes.Requireable<(...args: any[]) => any>;
124
+ dropdownMargin: PropTypes.Requireable<NonNullable<number | object>>;
120
125
  hideDisabledOptions: PropTypes.Requireable<boolean>;
121
126
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
122
127
  use12Hours: PropTypes.Requireable<boolean>;
@@ -197,8 +202,8 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
197
202
  }, index: number) => void;
198
203
  handleInput: (value: string) => void;
199
204
  createPanelProps: (index?: number) => {
200
- panelHeader: React.ReactNode;
201
- panelFooter: React.ReactNode;
205
+ panelHeader: React.ReactNode | React.ReactNode[];
206
+ panelFooter: React.ReactNode | React.ReactNode[];
202
207
  };
203
208
  getPanelElement(): JSX.Element;
204
209
  getPopupClassName(): string;
@@ -91,8 +91,8 @@ class TimePicker extends _baseComponent.default {
91
91
  0: locale.begin,
92
92
  1: locale.end
93
93
  };
94
- panelProps.panelHeader = (0, _get2.default)(panels, index, (0, _isNullOrUndefined.default)(panelHeader) ? (0, _get2.default)(defaultHeaderMap, index, null) : panelHeader);
95
- panelProps.panelFooter = (0, _get2.default)(panels, index, panelFooter);
94
+ panelProps.panelHeader = (0, _get2.default)(panels, index, (0, _isNullOrUndefined.default)(panelHeader) ? (0, _get2.default)(defaultHeaderMap, index, null) : Array.isArray(panelHeader) ? panelHeader[index] : panelHeader);
95
+ panelProps.panelFooter = (0, _get2.default)(panels, index, Array.isArray(panelFooter) ? panelFooter[index] : panelFooter);
96
96
  }
97
97
 
98
98
  return panelProps;
@@ -299,6 +299,7 @@ class TimePicker extends _baseComponent.default {
299
299
  placeholder,
300
300
  disabled,
301
301
  defaultValue,
302
+ dropdownMargin,
302
303
  className,
303
304
  popupStyle,
304
305
  size,
@@ -327,7 +328,7 @@ class TimePicker extends _baseComponent.default {
327
328
  motion,
328
329
  autoAdjustOverflow
329
330
  } = _a,
330
- rest = __rest(_a, ["prefixCls", "placeholder", "disabled", "defaultValue", "className", "popupStyle", "size", "style", "locale", "localeCode", "zIndex", "getPopupContainer", "insetLabel", "insetLabelId", "inputStyle", "showClear", "panelHeader", "panelFooter", "rangeSeparator", "onOpenChange", "onChangeWithDateFirst", "popupClassName", "hideDisabledOptions", "use12Hours", "minuteStep", "hourStep", "secondStep", "scrollItemProps", "triggerRender", "motion", "autoAdjustOverflow"]);
331
+ rest = __rest(_a, ["prefixCls", "placeholder", "disabled", "defaultValue", "dropdownMargin", "className", "popupStyle", "size", "style", "locale", "localeCode", "zIndex", "getPopupContainer", "insetLabel", "insetLabelId", "inputStyle", "showClear", "panelHeader", "panelFooter", "rangeSeparator", "onOpenChange", "onChangeWithDateFirst", "popupClassName", "hideDisabledOptions", "use12Hours", "minuteStep", "hourStep", "secondStep", "scrollItemProps", "triggerRender", "motion", "autoAdjustOverflow"]);
331
332
 
332
333
  const format = this.foundation.getDefaultFormatIfNeed();
333
334
  const position = this.foundation.getPosition();
@@ -387,6 +388,7 @@ class TimePicker extends _baseComponent.default {
387
388
  position: position,
388
389
  visible: disabled ? false : Boolean(open),
389
390
  motion: motion,
391
+ margin: dropdownMargin,
390
392
  autoAdjustOverflow: autoAdjustOverflow
391
393
  }, useCustomTrigger ? /*#__PURE__*/_react.default.createElement(_trigger.default, {
392
394
  triggerRender: triggerRender,
@@ -414,6 +416,7 @@ TimePicker.propTypes = Object.assign(Object.assign({
414
416
  'aria-required': _propTypes.default.bool,
415
417
  prefixCls: _propTypes.default.string,
416
418
  clearText: _propTypes.default.string,
419
+ clearIcon: _propTypes.default.node,
417
420
  value: _TimeShape.TimeShape,
418
421
  inputReadOnly: _propTypes.default.bool,
419
422
  disabled: _propTypes.default.bool,
@@ -433,6 +436,7 @@ TimePicker.propTypes = Object.assign(Object.assign({
433
436
  disabledHours: _propTypes.default.func,
434
437
  disabledMinutes: _propTypes.default.func,
435
438
  disabledSeconds: _propTypes.default.func,
439
+ dropdownMargin: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
436
440
  hideDisabledOptions: _propTypes.default.bool,
437
441
  onChange: _propTypes.default.func,
438
442
  use12Hours: _propTypes.default.bool,
@@ -19,6 +19,7 @@ export default class LocaleTimePicker extends React.PureComponent<LocalePickerPr
19
19
  'aria-required': import("prop-types").Requireable<boolean>;
20
20
  prefixCls: import("prop-types").Requireable<string>;
21
21
  clearText: import("prop-types").Requireable<string>;
22
+ clearIcon: import("prop-types").Requireable<import("prop-types").ReactNodeLike>;
22
23
  value: import("prop-types").Requireable<NonNullable<string | number | string[] | number[] | Date | Date[]>>;
23
24
  inputReadOnly: import("prop-types").Requireable<boolean>;
24
25
  disabled: import("prop-types").Requireable<boolean>;
@@ -38,6 +39,7 @@ export default class LocaleTimePicker extends React.PureComponent<LocalePickerPr
38
39
  disabledHours: import("prop-types").Requireable<(...args: any[]) => any>;
39
40
  disabledMinutes: import("prop-types").Requireable<(...args: any[]) => any>;
40
41
  disabledSeconds: import("prop-types").Requireable<(...args: any[]) => any>;
42
+ dropdownMargin: import("prop-types").Requireable<NonNullable<number | object>>;
41
43
  hideDisabledOptions: import("prop-types").Requireable<boolean>;
42
44
  onChange: import("prop-types").Requireable<(...args: any[]) => any>;
43
45
  use12Hours: import("prop-types").Requireable<boolean>;
@@ -220,6 +220,8 @@ class Tooltip extends _baseComponent.default {
220
220
  const icon = this.renderIcon();
221
221
  const portalInnerStyle = (0, _omit2.default)(containerStyle, motion ? ['transformOrigin'] : undefined);
222
222
  const transformOrigin = (0, _get2.default)(containerStyle, 'transformOrigin');
223
+ const userOpacity = (0, _get2.default)(style, 'opacity');
224
+ const opacity = userOpacity ? userOpacity : 1;
223
225
 
224
226
  const inner = /*#__PURE__*/_react.default.createElement(_cssAnimation.default, {
225
227
  fillMode: "forwards",
@@ -242,11 +244,11 @@ class Tooltip extends _baseComponent.default {
242
244
  } = _ref;
243
245
  return /*#__PURE__*/_react.default.createElement("div", Object.assign({
244
246
  className: (0, _classnames.default)(className, animationClassName),
245
- style: Object.assign(Object.assign(Object.assign({
246
- opacity: isPositionUpdated ? '1' : "0"
247
- }, animationStyle), {
247
+ style: Object.assign(Object.assign(Object.assign(Object.assign({}, animationStyle), {
248
248
  transformOrigin
249
- }), style)
249
+ }), style), {
250
+ opacity: isPositionUpdated ? opacity : "0"
251
+ })
250
252
  }, portalEventSet, animationEventsNeedBind, {
251
253
  role: role,
252
254
  "x-placement": placement,
@@ -46,10 +46,12 @@ export interface TreeSelectProps extends Omit<BasicTreeSelectProps, OverrideComm
46
46
  arrowIcon?: React.ReactNode;
47
47
  autoAdjustOverflow?: boolean;
48
48
  clickToHide?: boolean;
49
+ clearIcon?: React.ReactNode;
49
50
  defaultOpen?: boolean;
50
51
  dropdownClassName?: string;
51
52
  dropdownMatchSelectWidth?: boolean;
52
53
  dropdownStyle?: React.CSSProperties;
54
+ dropdownMargin?: PopoverProps['margin'];
53
55
  insetLabel?: React.ReactNode;
54
56
  insetLabelId?: string;
55
57
  maxTagCount?: number;
@@ -59,6 +61,7 @@ export interface TreeSelectProps extends Omit<BasicTreeSelectProps, OverrideComm
59
61
  outerTopSlot?: React.ReactNode;
60
62
  placeholder?: string;
61
63
  prefix?: React.ReactNode;
64
+ position?: PopoverProps['position'];
62
65
  searchAutoFocus?: boolean;
63
66
  searchPlaceholder?: string;
64
67
  showSearchClear?: boolean;
@@ -102,6 +105,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
102
105
  loadData: PropTypes.Requireable<(...args: any[]) => any>;
103
106
  onLoad: PropTypes.Requireable<(...args: any[]) => any>;
104
107
  arrowIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
108
+ clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
105
109
  defaultOpen: PropTypes.Requireable<boolean>;
106
110
  defaultValue: PropTypes.Requireable<NonNullable<string | any[]>>;
107
111
  defaultExpandAll: PropTypes.Requireable<boolean>;
@@ -139,6 +143,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
139
143
  }>[]>;
140
144
  dropdownClassName: PropTypes.Requireable<string>;
141
145
  dropdownStyle: PropTypes.Requireable<object>;
146
+ dropdownMargin: PropTypes.Requireable<NonNullable<number | object>>;
142
147
  motion: PropTypes.Requireable<boolean>;
143
148
  placeholder: PropTypes.Requireable<string>;
144
149
  maxTagCount: PropTypes.Requireable<number>;
@@ -396,6 +396,9 @@ class TreeSelect extends _baseComponent.default {
396
396
 
397
397
  this.renderClearBtn = () => {
398
398
  const showClearBtn = this.showClearBtn();
399
+ const {
400
+ clearIcon
401
+ } = this.props;
399
402
  const clearCls = (0, _classnames.default)("".concat(prefixcls, "-clearbtn"));
400
403
 
401
404
  if (showClearBtn) {
@@ -406,7 +409,7 @@ class TreeSelect extends _baseComponent.default {
406
409
  className: clearCls,
407
410
  onClick: this.handleClear,
408
411
  onKeyPress: this.handleClearEnterPress
409
- }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null));
412
+ }, clearIcon ? clearIcon : /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null));
410
413
  }
411
414
 
412
415
  return null;
@@ -1281,19 +1284,22 @@ class TreeSelect extends _baseComponent.default {
1281
1284
  mouseEnterDelay,
1282
1285
  autoAdjustOverflow,
1283
1286
  stopPropagation,
1284
- getPopupContainer
1287
+ getPopupContainer,
1288
+ dropdownMargin,
1289
+ position
1285
1290
  } = this.props;
1286
1291
  const {
1287
1292
  isOpen,
1288
1293
  rePosKey
1289
1294
  } = this.state;
1290
1295
  const selection = this.renderSelection();
1291
- const pos = 'bottomLeft';
1296
+ const pos = position ? position : 'bottomLeft';
1292
1297
  return /*#__PURE__*/_react.default.createElement(_index3.default, {
1293
1298
  stopPropagation: stopPropagation,
1294
1299
  getPopupContainer: getPopupContainer,
1295
1300
  zIndex: zIndex,
1296
1301
  motion: motion,
1302
+ margin: dropdownMargin,
1297
1303
  ref: this.optionsRef,
1298
1304
  content: content,
1299
1305
  visible: isOpen,
@@ -1320,6 +1326,7 @@ TreeSelect.propTypes = {
1320
1326
  loadData: _propTypes.default.func,
1321
1327
  onLoad: _propTypes.default.func,
1322
1328
  arrowIcon: _propTypes.default.node,
1329
+ clearIcon: _propTypes.default.node,
1323
1330
  defaultOpen: _propTypes.default.bool,
1324
1331
  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.array]),
1325
1332
  defaultExpandAll: _propTypes.default.bool,
@@ -1358,6 +1365,7 @@ TreeSelect.propTypes = {
1358
1365
  })),
1359
1366
  dropdownClassName: _propTypes.default.string,
1360
1367
  dropdownStyle: _propTypes.default.object,
1368
+ dropdownMargin: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
1361
1369
  motion: _propTypes.default.bool,
1362
1370
  placeholder: _propTypes.default.string,
1363
1371
  maxTagCount: _propTypes.default.number,
@@ -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>;
@@ -183,7 +183,8 @@ class AutoComplete extends BaseComponent {
183
183
  validateStatus,
184
184
  autoFocus,
185
185
  value,
186
- id
186
+ id,
187
+ clearIcon
187
188
  } = this.props;
188
189
  const {
189
190
  inputValue,
@@ -224,7 +225,8 @@ class AutoComplete extends BaseComponent {
224
225
  validateStatus,
225
226
  size,
226
227
  onBlur: this.onBlur,
227
- onFocus: this.onFocus
228
+ onFocus: this.onFocus,
229
+ clearIcon
228
230
  };
229
231
  return /*#__PURE__*/React.createElement("div", Object.assign({}, outerProps), typeof triggerRender === 'function' ? /*#__PURE__*/React.createElement(Trigger, Object.assign({}, innerProps, {
230
232
  inputValue: typeof value !== 'undefined' ? value : inputValue,
@@ -340,6 +342,7 @@ AutoComplete.propTypes = {
340
342
  autoFocus: PropTypes.bool,
341
343
  autoAdjustOverflow: PropTypes.bool,
342
344
  className: PropTypes.string,
345
+ clearIcon: PropTypes.node,
343
346
  children: PropTypes.node,
344
347
  data: PropTypes.array,
345
348
  defaultOpen: PropTypes.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)>>;
@@ -375,6 +375,9 @@ class Cascader extends BaseComponent {
375
375
 
376
376
  this.renderClearBtn = () => {
377
377
  const clearCls = cls("".concat(prefixcls, "-clearbtn"));
378
+ const {
379
+ clearIcon
380
+ } = this.props;
378
381
  const allowClear = this.showClearBtn();
379
382
 
380
383
  if (allowClear) {
@@ -384,7 +387,7 @@ class Cascader extends BaseComponent {
384
387
  onKeyPress: this.handleClearEnterPress,
385
388
  role: "button",
386
389
  tabIndex: 0
387
- }, /*#__PURE__*/React.createElement(IconClear, null));
390
+ }, clearIcon ? clearIcon : /*#__PURE__*/React.createElement(IconClear, null));
388
391
  }
389
392
 
390
393
  return null;
@@ -911,7 +914,8 @@ class Cascader extends BaseComponent {
911
914
  mouseLeaveDelay,
912
915
  mouseEnterDelay,
913
916
  position,
914
- motion
917
+ motion,
918
+ dropdownMargin
915
919
  } = this.props;
916
920
  const {
917
921
  isOpen,
@@ -927,6 +931,7 @@ class Cascader extends BaseComponent {
927
931
  getPopupContainer: getPopupContainer,
928
932
  zIndex: zIndex,
929
933
  motion: motion,
934
+ margin: dropdownMargin,
930
935
  ref: this.optionsRef,
931
936
  content: content,
932
937
  visible: isOpen,
@@ -952,11 +957,13 @@ Cascader.propTypes = {
952
957
  'aria-required': PropTypes.bool,
953
958
  'aria-label': PropTypes.string,
954
959
  arrowIcon: PropTypes.node,
960
+ clearIcon: PropTypes.node,
955
961
  changeOnSelect: PropTypes.bool,
956
962
  defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),
957
963
  disabled: PropTypes.bool,
958
964
  dropdownClassName: PropTypes.string,
959
965
  dropdownStyle: PropTypes.object,
966
+ dropdownMargin: PropTypes.oneOfType([PropTypes.number, PropTypes.object]),
960
967
  emptyContent: PropTypes.node,
961
968
  motion: PropTypes.bool,
962
969
 
@@ -166,7 +166,8 @@ export default class DateInput extends BaseComponent {
166
166
  const {
167
167
  showClear,
168
168
  prefixCls,
169
- disabled
169
+ disabled,
170
+ clearIcon
170
171
  } = this.props;
171
172
  const allowClear = (rangeStart || rangeEnd) && showClear;
172
173
  return allowClear && !disabled ? /*#__PURE__*/React.createElement("div", {
@@ -175,7 +176,7 @@ export default class DateInput extends BaseComponent {
175
176
  "aria-label": "Clear range input value",
176
177
  className: "".concat(prefixCls, "-range-input-clearbtn"),
177
178
  onMouseDown: e => !disabled && this.handleRangeInputClear(e)
178
- }, /*#__PURE__*/React.createElement(IconClear, {
179
+ }, clearIcon ? clearIcon : /*#__PURE__*/React.createElement(IconClear, {
179
180
  "aria-hidden": true
180
181
  })) : null;
181
182
  }
@@ -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/es/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>;
@@ -237,7 +237,8 @@ export default class DatePicker extends BaseComponent {
237
237
  dateFnsLocale,
238
238
  stopPropagation,
239
239
  autoAdjustOverflow,
240
- spacing
240
+ spacing,
241
+ dropdownMargin
241
242
  } = this.props;
242
243
  return /*#__PURE__*/React.createElement(Popover, {
243
244
  getPopupContainer: getPopupContainer,
@@ -245,6 +246,7 @@ export default class DatePicker extends BaseComponent {
245
246
  autoAdjustOverflow: autoAdjustOverflow,
246
247
  zIndex: zIndex,
247
248
  motion: motion,
249
+ margin: dropdownMargin,
248
250
  content: this.renderPanel(locale, localeCode, dateFnsLocale),
249
251
  trigger: "custom",
250
252
  position: position,
@@ -647,6 +649,7 @@ export default class DatePicker extends BaseComponent {
647
649
 
648
650
  renderInner(extraProps) {
649
651
  const {
652
+ clearIcon,
650
653
  type,
651
654
  format,
652
655
  multiple,
@@ -688,6 +691,7 @@ export default class DatePicker extends BaseComponent {
688
691
 
689
692
  const props = Object.assign(Object.assign({}, extraProps), {
690
693
  placeholder: phText,
694
+ clearIcon,
691
695
  disabled: inputDisabled,
692
696
  inputValue,
693
697
  value: value,
@@ -769,6 +773,7 @@ DatePicker.propTypes = {
769
773
  'aria-required': PropTypes.bool,
770
774
  type: PropTypes.oneOf(strings.TYPE_SET),
771
775
  size: PropTypes.oneOf(strings.SIZE_SET),
776
+ clearIcon: PropTypes.node,
772
777
  density: PropTypes.oneOf(strings.DENSITY_SET),
773
778
  defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object, PropTypes.array]),
774
779
  value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object, PropTypes.array]),
@@ -824,6 +829,7 @@ DatePicker.propTypes = {
824
829
  autoSwitchDate: PropTypes.bool,
825
830
  dropdownClassName: PropTypes.string,
826
831
  dropdownStyle: PropTypes.object,
832
+ dropdownMargin: PropTypes.oneOfType([PropTypes.number, PropTypes.object]),
827
833
  topSlot: PropTypes.node,
828
834
  bottomSlot: PropTypes.node,
829
835
  dateFnsLocale: PropTypes.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;
@@ -172,10 +172,11 @@ class Dropdown extends BaseComponent {
172
172
  zIndex,
173
173
  className,
174
174
  motion,
175
+ margin,
175
176
  style,
176
177
  prefixCls
177
178
  } = _a,
178
- attr = __rest(_a, ["children", "position", "trigger", "onVisibleChange", "zIndex", "className", "motion", "style", "prefixCls"]);
179
+ attr = __rest(_a, ["children", "position", "trigger", "onVisibleChange", "zIndex", "className", "motion", "margin", "style", "prefixCls"]);
179
180
 
180
181
  let {
181
182
  spacing
@@ -197,6 +198,7 @@ class Dropdown extends BaseComponent {
197
198
  return /*#__PURE__*/React.createElement(Tooltip, Object.assign({
198
199
  zIndex: zIndex,
199
200
  motion: motion,
201
+ margin: margin,
200
202
  content: pop,
201
203
  className: className,
202
204
  prefixCls: prefixCls,
@@ -232,25 +234,26 @@ Dropdown.Divider = DropdownDivider;
232
234
  Dropdown.Title = DropdownTitle;
233
235
  Dropdown.contextType = DropdownContext;
234
236
  Dropdown.propTypes = {
235
- render: PropTypes.node,
236
237
  children: PropTypes.node,
237
- visible: PropTypes.bool,
238
- position: PropTypes.oneOf(positionSet),
238
+ contentClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),
239
+ className: PropTypes.string,
239
240
  getPopupContainer: PropTypes.func,
241
+ margin: PropTypes.oneOfType([PropTypes.number, PropTypes.object]),
240
242
  mouseEnterDelay: PropTypes.number,
241
243
  mouseLeaveDelay: PropTypes.number,
242
- trigger: PropTypes.oneOf(triggerSet),
243
- zIndex: PropTypes.number,
244
+ menu: PropTypes.array,
244
245
  motion: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object]),
245
- className: PropTypes.string,
246
- contentClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),
247
- style: PropTypes.object,
248
246
  onVisibleChange: PropTypes.func,
249
- rePosKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
250
- showTick: PropTypes.bool,
251
247
  prefixCls: PropTypes.string,
248
+ position: PropTypes.oneOf(positionSet),
249
+ rePosKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
250
+ render: PropTypes.node,
252
251
  spacing: PropTypes.number,
253
- menu: PropTypes.array
252
+ showTick: PropTypes.bool,
253
+ style: PropTypes.object,
254
+ trigger: PropTypes.oneOf(triggerSet),
255
+ visible: PropTypes.bool,
256
+ zIndex: PropTypes.number
254
257
  };
255
258
  Dropdown.defaultProps = {
256
259
  onVisibleChange: _noop,
@@ -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;