@douyinfe/semi-ui 2.24.4-alpha.0 → 2.25.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 (89) hide show
  1. package/dist/css/semi.css +83 -15
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +312 -245
  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/anchor/index.d.ts +1 -1
  8. package/lib/cjs/autoComplete/index.d.ts +3 -1
  9. package/lib/cjs/autoComplete/index.js +5 -2
  10. package/lib/cjs/carousel/CarouselIndicator.d.ts +1 -1
  11. package/lib/cjs/carousel/index.d.ts +2 -2
  12. package/lib/cjs/cascader/index.d.ts +4 -0
  13. package/lib/cjs/cascader/index.js +9 -2
  14. package/lib/cjs/datePicker/dateInput.js +3 -2
  15. package/lib/cjs/datePicker/datePicker.d.ts +7 -2
  16. package/lib/cjs/datePicker/datePicker.js +7 -1
  17. package/lib/cjs/datePicker/monthsGrid.d.ts +1 -1
  18. package/lib/cjs/datePicker/quickControl.d.ts +1 -1
  19. package/lib/cjs/datePicker/yearAndMonth.d.ts +1 -1
  20. package/lib/cjs/dropdown/index.d.ts +12 -11
  21. package/lib/cjs/dropdown/index.js +15 -12
  22. package/lib/cjs/form/baseForm.d.ts +11 -4
  23. package/lib/cjs/form/field.d.ts +11 -4
  24. package/lib/cjs/image/image.js +25 -5
  25. package/lib/cjs/input/index.d.ts +2 -0
  26. package/lib/cjs/input/index.js +7 -2
  27. package/lib/cjs/inputNumber/index.d.ts +2 -0
  28. package/lib/cjs/inputNumber/index.js +1 -0
  29. package/lib/cjs/popover/index.d.ts +5 -3
  30. package/lib/cjs/popover/index.js +1 -0
  31. package/lib/cjs/radio/radio.d.ts +1 -1
  32. package/lib/cjs/radio/radioGroup.d.ts +1 -1
  33. package/lib/cjs/select/index.d.ts +5 -1
  34. package/lib/cjs/select/index.js +9 -3
  35. package/lib/cjs/table/Body/index.js +2 -2
  36. package/lib/cjs/table/Table.d.ts +1 -1
  37. package/lib/cjs/tag/index.js +1 -1
  38. package/lib/cjs/tagInput/index.d.ts +2 -0
  39. package/lib/cjs/tagInput/index.js +11 -7
  40. package/lib/cjs/timePicker/TimePicker.d.ts +11 -6
  41. package/lib/cjs/timePicker/TimePicker.js +7 -3
  42. package/lib/cjs/timePicker/index.d.ts +2 -0
  43. package/lib/cjs/tooltip/index.d.ts +1 -1
  44. package/lib/cjs/treeSelect/index.d.ts +5 -0
  45. package/lib/cjs/treeSelect/index.js +11 -3
  46. package/lib/cjs/typography/numeral.d.ts +1 -1
  47. package/lib/cjs/typography/title.d.ts +1 -1
  48. package/lib/es/anchor/index.d.ts +1 -1
  49. package/lib/es/autoComplete/index.d.ts +3 -1
  50. package/lib/es/autoComplete/index.js +5 -2
  51. package/lib/es/carousel/CarouselIndicator.d.ts +1 -1
  52. package/lib/es/carousel/index.d.ts +2 -2
  53. package/lib/es/cascader/index.d.ts +4 -0
  54. package/lib/es/cascader/index.js +9 -2
  55. package/lib/es/datePicker/dateInput.js +3 -2
  56. package/lib/es/datePicker/datePicker.d.ts +7 -2
  57. package/lib/es/datePicker/datePicker.js +7 -1
  58. package/lib/es/datePicker/monthsGrid.d.ts +1 -1
  59. package/lib/es/datePicker/quickControl.d.ts +1 -1
  60. package/lib/es/datePicker/yearAndMonth.d.ts +1 -1
  61. package/lib/es/dropdown/index.d.ts +12 -11
  62. package/lib/es/dropdown/index.js +15 -12
  63. package/lib/es/form/baseForm.d.ts +11 -4
  64. package/lib/es/form/field.d.ts +11 -4
  65. package/lib/es/image/image.js +25 -5
  66. package/lib/es/input/index.d.ts +2 -0
  67. package/lib/es/input/index.js +7 -2
  68. package/lib/es/inputNumber/index.d.ts +2 -0
  69. package/lib/es/inputNumber/index.js +1 -0
  70. package/lib/es/popover/index.d.ts +5 -3
  71. package/lib/es/popover/index.js +1 -0
  72. package/lib/es/radio/radio.d.ts +1 -1
  73. package/lib/es/radio/radioGroup.d.ts +1 -1
  74. package/lib/es/select/index.d.ts +5 -1
  75. package/lib/es/select/index.js +9 -3
  76. package/lib/es/table/Body/index.js +3 -3
  77. package/lib/es/table/Table.d.ts +1 -1
  78. package/lib/es/tag/index.js +1 -1
  79. package/lib/es/tagInput/index.d.ts +2 -0
  80. package/lib/es/tagInput/index.js +11 -7
  81. package/lib/es/timePicker/TimePicker.d.ts +11 -6
  82. package/lib/es/timePicker/TimePicker.js +7 -3
  83. package/lib/es/timePicker/index.d.ts +2 -0
  84. package/lib/es/tooltip/index.d.ts +1 -1
  85. package/lib/es/treeSelect/index.d.ts +5 -0
  86. package/lib/es/treeSelect/index.js +11 -3
  87. package/lib/es/typography/numeral.d.ts +1 -1
  88. package/lib/es/typography/title.d.ts +1 -1
  89. package/package.json +8 -8
@@ -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>;
@@ -481,6 +481,7 @@ InputNumber.propTypes = {
481
481
  'aria-describedby': PropTypes.string,
482
482
  'aria-required': PropTypes.bool,
483
483
  autofocus: PropTypes.bool,
484
+ clearIcon: PropTypes.node,
484
485
  className: PropTypes.string,
485
486
  defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
486
487
  disabled: PropTypes.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;
@@ -53,7 +54,8 @@ declare class Popover extends React.PureComponent<PopoverProps, PopoverState> {
53
54
  visible: PropTypes.Requireable<boolean>;
54
55
  autoAdjustOverflow: PropTypes.Requireable<boolean>;
55
56
  motion: PropTypes.Requireable<boolean>;
56
- position: PropTypes.Requireable<"top" | "topLeft" | "topRight" | "left" | "leftTop" | "leftBottom" | "right" | "rightTop" | "rightBottom" | "bottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver">;
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">>;
@@ -121,6 +121,7 @@ Popover.propTypes = {
121
121
  motion: PropTypes.bool,
122
122
  position: PropTypes.oneOf(positionSet),
123
123
  // getPopupContainer: PropTypes.func,
124
+ margin: PropTypes.oneOfType([PropTypes.number, PropTypes.object]),
124
125
  mouseEnterDelay: PropTypes.number,
125
126
  mouseLeaveDelay: PropTypes.number,
126
127
  trigger: PropTypes.oneOf(triggerSet).isRequired,
@@ -82,7 +82,7 @@ declare class Radio extends BaseComponent<RadioProps, RadioState> {
82
82
  prefixCls?: string;
83
83
  name?: string;
84
84
  onChange?: (e: RadioChangeEvent) => void;
85
- buttonSize?: "small" | "middle" | "large";
85
+ buttonSize?: "small" | "large" | "middle";
86
86
  isCardRadio?: boolean;
87
87
  isPureCardRadio?: boolean;
88
88
  };
@@ -48,7 +48,7 @@ declare class RadioGroup extends BaseComponent<RadioGroupProps, RadioGroupState>
48
48
  disabled: PropTypes.Requireable<boolean>;
49
49
  name: PropTypes.Requireable<string>;
50
50
  options: PropTypes.Requireable<any[]>;
51
- buttonSize: PropTypes.Requireable<"small" | "middle" | "large">;
51
+ buttonSize: PropTypes.Requireable<"small" | "large" | "middle">;
52
52
  type: PropTypes.Requireable<"default" | "button" | "card" | "pureCard">;
53
53
  value: PropTypes.Requireable<any>;
54
54
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
@@ -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>;
@@ -173,11 +176,12 @@ declare class Select extends BaseComponent<SelectProps, SelectState> {
173
176
  emptyContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
174
177
  onDropdownVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
175
178
  zIndex: PropTypes.Requireable<number>;
176
- position: PropTypes.Requireable<"top" | "topLeft" | "topRight" | "left" | "leftTop" | "leftBottom" | "right" | "rightTop" | "rightBottom" | "bottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver">;
179
+ position: PropTypes.Requireable<"left" | "top" | "right" | "bottom" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver">;
177
180
  onSearch: PropTypes.Requireable<(...args: any[]) => any>;
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>;
@@ -938,7 +938,8 @@ class Select extends BaseComponent {
938
938
  insetLabel,
939
939
  placeholder,
940
940
  triggerRender,
941
- arrowIcon
941
+ arrowIcon,
942
+ clearIcon
942
943
  } = this.props;
943
944
  const {
944
945
  selections,
@@ -975,6 +976,7 @@ class Select extends BaseComponent {
975
976
  }, arrowIcon) : /*#__PURE__*/React.createElement("div", {
976
977
  className: "".concat(prefixcls, "-arrow-empty")
977
978
  });
979
+ const clear = clearIcon ? clearIcon : /*#__PURE__*/React.createElement(IconClear, null);
978
980
  const inner = useCustomTrigger ? /*#__PURE__*/React.createElement(Trigger, {
979
981
  value: Array.from(selections.values()),
980
982
  inputValue: inputValue,
@@ -996,7 +998,7 @@ class Select extends BaseComponent {
996
998
  }, showClear ? /*#__PURE__*/React.createElement("div", {
997
999
  className: cls("".concat(prefixcls, "-clear")),
998
1000
  onClick: this.onClear
999
- }, /*#__PURE__*/React.createElement(IconClear, null)) : arrowContent), /*#__PURE__*/React.createElement(Fragment, {
1001
+ }, clear) : arrowContent), /*#__PURE__*/React.createElement(Fragment, {
1000
1002
  key: "suffix"
1001
1003
  }, suffix ? this.renderSuffix() : null)];
1002
1004
  /**
@@ -1056,7 +1058,8 @@ class Select extends BaseComponent {
1056
1058
  mouseLeaveDelay,
1057
1059
  mouseEnterDelay,
1058
1060
  spacing,
1059
- stopPropagation
1061
+ stopPropagation,
1062
+ dropdownMargin
1060
1063
  } = this.props;
1061
1064
  const {
1062
1065
  isOpen,
@@ -1067,6 +1070,7 @@ class Select extends BaseComponent {
1067
1070
  return /*#__PURE__*/React.createElement(Popover, {
1068
1071
  getPopupContainer: getPopupContainer,
1069
1072
  motion: motion,
1073
+ margin: dropdownMargin,
1070
1074
  autoAdjustOverflow: autoAdjustOverflow,
1071
1075
  mouseLeaveDelay: mouseLeaveDelay,
1072
1076
  mouseEnterDelay: mouseEnterDelay,
@@ -1100,6 +1104,7 @@ Select.propTypes = {
1100
1104
  autoFocus: PropTypes.bool,
1101
1105
  autoClearSearchValue: PropTypes.bool,
1102
1106
  children: PropTypes.node,
1107
+ clearIcon: PropTypes.node,
1103
1108
  defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.array, PropTypes.object]),
1104
1109
  value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.array, PropTypes.object]),
1105
1110
  placeholder: PropTypes.node,
@@ -1124,6 +1129,7 @@ Select.propTypes = {
1124
1129
  getPopupContainer: PropTypes.func,
1125
1130
  dropdownClassName: PropTypes.string,
1126
1131
  dropdownStyle: PropTypes.object,
1132
+ dropdownMargin: PropTypes.oneOfType([PropTypes.number, PropTypes.object]),
1127
1133
  outerTopSlot: PropTypes.node,
1128
1134
  innerTopSlot: PropTypes.node,
1129
1135
  inputProps: PropTypes.object,
@@ -30,7 +30,7 @@ import classnames from 'classnames';
30
30
  import { VariableSizeList as List } from 'react-window';
31
31
  import { arrayAdd, getRecordKey, isExpanded, isSelected, isDisabled, getRecord, genExpandedRowKey, getDefaultVirtualizedRowConfig, isTreeTable } from '@douyinfe/semi-foundation/lib/es/table/utils';
32
32
  import BodyFoundation from '@douyinfe/semi-foundation/lib/es/table/bodyFoundation';
33
- import { strings, numbers } from '@douyinfe/semi-foundation/lib/es/table/constants';
33
+ import { strings } from '@douyinfe/semi-foundation/lib/es/table/constants';
34
34
  import BaseComponent from '../../_base/baseComponent';
35
35
  import { logger } from '../utils';
36
36
  import ColGroup from '../ColGroup';
@@ -287,7 +287,7 @@ class Body extends BaseComponent {
287
287
 
288
288
  const listStyle = {
289
289
  width: '100%',
290
- height: (virtualizedData === null || virtualizedData === void 0 ? void 0 : virtualizedData.length) ? y : numbers.DEFAULT_EMPTYSLOT_HEIGHT,
290
+ height: (virtualizedData === null || virtualizedData === void 0 ? void 0 : virtualizedData.length) ? y : null,
291
291
  overflowX: 'auto',
292
292
  overflowY: 'auto'
293
293
  };
@@ -299,7 +299,7 @@ class Body extends BaseComponent {
299
299
  ref: this.listRef,
300
300
  className: wrapCls,
301
301
  outerRef: this.forwardRef,
302
- height: listStyle.height,
302
+ height: (virtualizedData === null || virtualizedData === void 0 ? void 0 : virtualizedData.length) ? y : 0,
303
303
  width: listStyle.width,
304
304
  itemData: virtualizedData,
305
305
  itemSize: this.itemSize,
@@ -300,7 +300,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
300
300
  showSizeChanger?: boolean;
301
301
  showQuickJumper?: boolean;
302
302
  popoverZIndex?: number;
303
- popoverPosition?: "top" | "topLeft" | "topRight" | "left" | "leftTop" | "leftBottom" | "right" | "rightTop" | "rightBottom" | "bottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver";
303
+ popoverPosition?: "left" | "top" | "right" | "bottom" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver";
304
304
  hideOnSinglePage?: boolean;
305
305
  hoverShowPageSelect?: boolean;
306
306
  };
@@ -172,7 +172,7 @@ export default class Tag extends Component {
172
172
  "aria-label": this.props['aria-label'] || _isString(children) ? "".concat(closable ? 'Closable ' : '', "Tag: ").concat(children) : ''
173
173
  }, wrapProps), /*#__PURE__*/React.createElement("div", {
174
174
  className: "".concat(prefixCls, "-content")
175
- }, avatarSrc ? this.renderAvatar() : null, children, closeIcon));
175
+ }, avatarSrc ? this.renderAvatar() : null, children), closeIcon);
176
176
  }
177
177
 
178
178
  }
@@ -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>;
@@ -309,7 +309,8 @@ class TagInput extends BaseComponent {
309
309
  } = this.state;
310
310
  const {
311
311
  showClear,
312
- disabled
312
+ disabled,
313
+ clearIcon
313
314
  } = this.props;
314
315
  const clearCls = cls("".concat(prefixCls, "-clearBtn"), {
315
316
  ["".concat(prefixCls, "-clearBtn-invisible")]: !hovering || inputValue === '' && tagsArray.length === 0 || disabled
@@ -323,7 +324,7 @@ class TagInput extends BaseComponent {
323
324
  className: clearCls,
324
325
  onClick: e => this.handleClearBtn(e),
325
326
  onKeyPress: e => this.handleClearEnterPress(e)
326
- }, /*#__PURE__*/React.createElement(IconClear, null));
327
+ }, clearIcon ? clearIcon : /*#__PURE__*/React.createElement(IconClear, null));
327
328
  }
328
329
 
329
330
  return null;
@@ -441,7 +442,7 @@ class TagInput extends BaseComponent {
441
442
  }
442
443
 
443
444
  blur() {
444
- this.inputRef.current.blur(); // unregister clickOutside event
445
+ this.inputRef.current.blur(); // unregister clickOutside event
445
446
 
446
447
  this.foundation.clickOutsideCallBack();
447
448
  }
@@ -456,7 +457,7 @@ class TagInput extends BaseComponent {
456
457
  });
457
458
 
458
459
  if (!disabled) {
459
- // register clickOutside event
460
+ // register clickOutside event
460
461
  this.foundation.handleClick();
461
462
  }
462
463
  }
@@ -482,13 +483,15 @@ class TagInput extends BaseComponent {
482
483
  ["".concat(prefixCls, "-disabled")]: disabled,
483
484
  ["".concat(prefixCls, "-hover")]: hovering && !disabled,
484
485
  ["".concat(prefixCls, "-error")]: validateStatus === 'error',
485
- ["".concat(prefixCls, "-warning")]: validateStatus === 'warning'
486
+ ["".concat(prefixCls, "-warning")]: validateStatus === 'warning',
487
+ ["".concat(prefixCls, "-small")]: size === 'small',
488
+ ["".concat(prefixCls, "-large")]: size === 'large'
486
489
  });
487
490
  const inputCls = cls("".concat(prefixCls, "-wrapper-input"), "".concat(prefixCls, "-wrapper-input-").concat(size));
488
- const wrapperCls = cls("".concat(prefixCls, "-wrapper"), "".concat(prefixCls, "-wrapper-").concat(size));
491
+ const wrapperCls = cls("".concat(prefixCls, "-wrapper"));
489
492
  return (
490
493
  /*#__PURE__*/
491
- // eslint-disable-next-line
494
+ // eslint-disable-next-line
492
495
  React.createElement("div", {
493
496
  ref: this.tagInputRef,
494
497
  style: style,
@@ -535,6 +538,7 @@ class TagInput extends BaseComponent {
535
538
 
536
539
  TagInput.propTypes = {
537
540
  children: PropTypes.node,
541
+ clearIcon: PropTypes.node,
538
542
  style: PropTypes.object,
539
543
  className: PropTypes.string,
540
544
  disabled: PropTypes.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/es/timePicker/foundation';
5
6
  import '@douyinfe/semi-foundation/lib/es/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;
@@ -65,8 +65,8 @@ export default class TimePicker extends BaseComponent {
65
65
  0: locale.begin,
66
66
  1: locale.end
67
67
  };
68
- panelProps.panelHeader = _get(panels, index, isNullOrUndefined(panelHeader) ? _get(defaultHeaderMap, index, null) : panelHeader);
69
- panelProps.panelFooter = _get(panels, index, panelFooter);
68
+ panelProps.panelHeader = _get(panels, index, isNullOrUndefined(panelHeader) ? _get(defaultHeaderMap, index, null) : Array.isArray(panelHeader) ? panelHeader[index] : panelHeader);
69
+ panelProps.panelFooter = _get(panels, index, Array.isArray(panelFooter) ? panelFooter[index] : panelFooter);
70
70
  }
71
71
 
72
72
  return panelProps;
@@ -273,6 +273,7 @@ export default class TimePicker extends BaseComponent {
273
273
  placeholder,
274
274
  disabled,
275
275
  defaultValue,
276
+ dropdownMargin,
276
277
  className,
277
278
  popupStyle,
278
279
  size,
@@ -301,7 +302,7 @@ export default class TimePicker extends BaseComponent {
301
302
  motion,
302
303
  autoAdjustOverflow
303
304
  } = _a,
304
- 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"]);
305
+ 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"]);
305
306
 
306
307
  const format = this.foundation.getDefaultFormatIfNeed();
307
308
  const position = this.foundation.getPosition();
@@ -361,6 +362,7 @@ export default class TimePicker extends BaseComponent {
361
362
  position: position,
362
363
  visible: disabled ? false : Boolean(open),
363
364
  motion: motion,
365
+ margin: dropdownMargin,
364
366
  autoAdjustOverflow: autoAdjustOverflow
365
367
  }, useCustomTrigger ? /*#__PURE__*/React.createElement(Trigger, {
366
368
  triggerRender: triggerRender,
@@ -386,6 +388,7 @@ TimePicker.propTypes = Object.assign(Object.assign({
386
388
  'aria-required': PropTypes.bool,
387
389
  prefixCls: PropTypes.string,
388
390
  clearText: PropTypes.string,
391
+ clearIcon: PropTypes.node,
389
392
  value: TimeShape,
390
393
  inputReadOnly: PropTypes.bool,
391
394
  disabled: PropTypes.bool,
@@ -405,6 +408,7 @@ TimePicker.propTypes = Object.assign(Object.assign({
405
408
  disabledHours: PropTypes.func,
406
409
  disabledMinutes: PropTypes.func,
407
410
  disabledSeconds: PropTypes.func,
411
+ dropdownMargin: PropTypes.oneOfType([PropTypes.number, PropTypes.object]),
408
412
  hideDisabledOptions: PropTypes.bool,
409
413
  onChange: PropTypes.func,
410
414
  use12Hours: PropTypes.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>;
@@ -86,7 +86,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
86
86
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
87
87
  motion: PropTypes.Requireable<boolean>;
88
88
  autoAdjustOverflow: PropTypes.Requireable<boolean>;
89
- position: PropTypes.Requireable<"top" | "topLeft" | "topRight" | "left" | "leftTop" | "leftBottom" | "right" | "rightTop" | "rightBottom" | "bottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver">;
89
+ position: PropTypes.Requireable<"left" | "top" | "right" | "bottom" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver">;
90
90
  getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
91
91
  mouseEnterDelay: PropTypes.Requireable<number>;
92
92
  mouseLeaveDelay: PropTypes.Requireable<number>;
@@ -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>;
@@ -349,6 +349,9 @@ class TreeSelect extends BaseComponent {
349
349
 
350
350
  this.renderClearBtn = () => {
351
351
  const showClearBtn = this.showClearBtn();
352
+ const {
353
+ clearIcon
354
+ } = this.props;
352
355
  const clearCls = cls("".concat(prefixcls, "-clearbtn"));
353
356
 
354
357
  if (showClearBtn) {
@@ -359,7 +362,7 @@ class TreeSelect extends BaseComponent {
359
362
  className: clearCls,
360
363
  onClick: this.handleClear,
361
364
  onKeyPress: this.handleClearEnterPress
362
- }, /*#__PURE__*/React.createElement(IconClear, null));
365
+ }, clearIcon ? clearIcon : /*#__PURE__*/React.createElement(IconClear, null));
363
366
  }
364
367
 
365
368
  return null;
@@ -1235,19 +1238,22 @@ class TreeSelect extends BaseComponent {
1235
1238
  mouseEnterDelay,
1236
1239
  autoAdjustOverflow,
1237
1240
  stopPropagation,
1238
- getPopupContainer
1241
+ getPopupContainer,
1242
+ dropdownMargin,
1243
+ position
1239
1244
  } = this.props;
1240
1245
  const {
1241
1246
  isOpen,
1242
1247
  rePosKey
1243
1248
  } = this.state;
1244
1249
  const selection = this.renderSelection();
1245
- const pos = 'bottomLeft';
1250
+ const pos = position ? position : 'bottomLeft';
1246
1251
  return /*#__PURE__*/React.createElement(Popover, {
1247
1252
  stopPropagation: stopPropagation,
1248
1253
  getPopupContainer: getPopupContainer,
1249
1254
  zIndex: zIndex,
1250
1255
  motion: motion,
1256
+ margin: dropdownMargin,
1251
1257
  ref: this.optionsRef,
1252
1258
  content: content,
1253
1259
  visible: isOpen,
@@ -1274,6 +1280,7 @@ TreeSelect.propTypes = {
1274
1280
  loadData: PropTypes.func,
1275
1281
  onLoad: PropTypes.func,
1276
1282
  arrowIcon: PropTypes.node,
1283
+ clearIcon: PropTypes.node,
1277
1284
  defaultOpen: PropTypes.bool,
1278
1285
  defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),
1279
1286
  defaultExpandAll: PropTypes.bool,
@@ -1312,6 +1319,7 @@ TreeSelect.propTypes = {
1312
1319
  })),
1313
1320
  dropdownClassName: PropTypes.string,
1314
1321
  dropdownStyle: PropTypes.object,
1322
+ dropdownMargin: PropTypes.oneOfType([PropTypes.number, PropTypes.object]),
1315
1323
  motion: PropTypes.bool,
1316
1324
  placeholder: PropTypes.string,
1317
1325
  maxTagCount: PropTypes.number,
@@ -28,7 +28,7 @@ export default class Numeral extends PureComponent<NumeralProps> {
28
28
  static propTypes: {
29
29
  rule: PropTypes.Requireable<"text" | "numbers" | "bytes-decimal" | "bytes-binary" | "percentages" | "exponential">;
30
30
  precision: PropTypes.Requireable<number>;
31
- truncate: PropTypes.Requireable<"ceil" | "floor" | "round">;
31
+ truncate: PropTypes.Requireable<"round" | "ceil" | "floor">;
32
32
  parser: PropTypes.Requireable<(...args: any[]) => any>;
33
33
  copyable: PropTypes.Requireable<NonNullable<boolean | object>>;
34
34
  delete: PropTypes.Requireable<boolean>;
@@ -37,7 +37,7 @@ export default class Title extends PureComponent<TitleProps> {
37
37
  underline: PropTypes.Requireable<boolean>;
38
38
  strong: PropTypes.Requireable<boolean>;
39
39
  type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
40
- heading: PropTypes.Requireable<1 | 2 | 3 | 4 | 5 | 6>;
40
+ heading: PropTypes.Requireable<1 | 2 | 3 | 4 | 6 | 5>;
41
41
  style: PropTypes.Requireable<object>;
42
42
  className: PropTypes.Requireable<string>;
43
43
  component: PropTypes.Requireable<string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-ui",
3
- "version": "2.24.4-alpha.0",
3
+ "version": "2.25.0",
4
4
  "description": "",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es/index.js",
@@ -17,12 +17,12 @@
17
17
  "lib/*"
18
18
  ],
19
19
  "dependencies": {
20
- "@douyinfe/semi-animation": "2.24.3",
21
- "@douyinfe/semi-animation-react": "2.24.3",
22
- "@douyinfe/semi-foundation": "2.24.3",
23
- "@douyinfe/semi-icons": "2.24.3",
24
- "@douyinfe/semi-illustrations": "2.24.3",
25
- "@douyinfe/semi-theme-default": "2.24.3",
20
+ "@douyinfe/semi-animation": "2.25.0",
21
+ "@douyinfe/semi-animation-react": "2.25.0",
22
+ "@douyinfe/semi-foundation": "2.25.0",
23
+ "@douyinfe/semi-icons": "2.25.0",
24
+ "@douyinfe/semi-illustrations": "2.25.0",
25
+ "@douyinfe/semi-theme-default": "2.25.0",
26
26
  "async-validator": "^3.5.0",
27
27
  "classnames": "^2.2.6",
28
28
  "copy-text-to-clipboard": "^2.1.1",
@@ -69,7 +69,7 @@
69
69
  ],
70
70
  "author": "",
71
71
  "license": "MIT",
72
- "gitHead": "0b408b581caff46443a1eec44535cac0ada7aebd",
72
+ "gitHead": "3c2ec566acd956095fc502690245c9a502251357",
73
73
  "devDependencies": {
74
74
  "@babel/plugin-proposal-decorators": "^7.15.8",
75
75
  "@babel/plugin-transform-runtime": "^7.15.8",