@douyinfe/semi-ui 2.26.0-beta.0 → 2.27.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/css/semi.css +207 -0
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +392 -201
  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 +1 -1
  9. package/lib/cjs/button/Button.d.ts +1 -1
  10. package/lib/cjs/button/buttonGroup.d.ts +1 -1
  11. package/lib/cjs/button/index.d.ts +1 -1
  12. package/lib/cjs/carousel/CarouselIndicator.d.ts +1 -1
  13. package/lib/cjs/carousel/index.d.ts +1 -1
  14. package/lib/cjs/cascader/index.d.ts +1 -1
  15. package/lib/cjs/cascader/item.d.ts +1 -1
  16. package/lib/cjs/datePicker/dateInput.d.ts +1 -1
  17. package/lib/cjs/datePicker/datePicker.d.ts +2 -2
  18. package/lib/cjs/datePicker/monthsGrid.d.ts +1 -1
  19. package/lib/cjs/form/baseForm.d.ts +1 -1
  20. package/lib/cjs/form/field.d.ts +1 -1
  21. package/lib/cjs/input/index.d.ts +1 -1
  22. package/lib/cjs/input/inputGroup.d.ts +1 -1
  23. package/lib/cjs/popover/index.d.ts +1 -1
  24. package/lib/cjs/rating/index.d.ts +1 -1
  25. package/lib/cjs/rating/item.d.ts +1 -1
  26. package/lib/cjs/switch/index.d.ts +1 -1
  27. package/lib/cjs/table/Table.d.ts +2 -2
  28. package/lib/cjs/table/index.d.ts +1 -1
  29. package/lib/cjs/tabs/TabBar.d.ts +1 -0
  30. package/lib/cjs/tabs/TabBar.js +28 -2
  31. package/lib/cjs/tabs/TabItem.d.ts +38 -0
  32. package/lib/cjs/tabs/TabItem.js +104 -0
  33. package/lib/cjs/tabs/index.d.ts +2 -0
  34. package/lib/cjs/tabs/index.js +3 -0
  35. package/lib/cjs/tagInput/index.d.ts +4 -1
  36. package/lib/cjs/tagInput/index.js +18 -2
  37. package/lib/cjs/timePicker/TimePicker.d.ts +1 -1
  38. package/lib/cjs/timePicker/index.d.ts +1 -1
  39. package/lib/cjs/tooltip/index.d.ts +1 -1
  40. package/lib/es/anchor/index.d.ts +1 -1
  41. package/lib/es/autoComplete/index.d.ts +1 -1
  42. package/lib/es/button/Button.d.ts +1 -1
  43. package/lib/es/button/buttonGroup.d.ts +1 -1
  44. package/lib/es/button/index.d.ts +1 -1
  45. package/lib/es/carousel/CarouselIndicator.d.ts +1 -1
  46. package/lib/es/carousel/index.d.ts +1 -1
  47. package/lib/es/cascader/index.d.ts +1 -1
  48. package/lib/es/cascader/item.d.ts +1 -1
  49. package/lib/es/datePicker/dateInput.d.ts +1 -1
  50. package/lib/es/datePicker/datePicker.d.ts +2 -2
  51. package/lib/es/datePicker/monthsGrid.d.ts +1 -1
  52. package/lib/es/form/baseForm.d.ts +1 -1
  53. package/lib/es/form/field.d.ts +1 -1
  54. package/lib/es/input/index.d.ts +1 -1
  55. package/lib/es/input/inputGroup.d.ts +1 -1
  56. package/lib/es/popover/index.d.ts +1 -1
  57. package/lib/es/rating/index.d.ts +1 -1
  58. package/lib/es/rating/item.d.ts +1 -1
  59. package/lib/es/switch/index.d.ts +1 -1
  60. package/lib/es/table/Table.d.ts +2 -2
  61. package/lib/es/table/index.d.ts +1 -1
  62. package/lib/es/tabs/TabBar.d.ts +1 -0
  63. package/lib/es/tabs/TabBar.js +27 -2
  64. package/lib/es/tabs/TabItem.d.ts +38 -0
  65. package/lib/es/tabs/TabItem.js +88 -0
  66. package/lib/es/tabs/index.d.ts +2 -0
  67. package/lib/es/tabs/index.js +2 -0
  68. package/lib/es/tagInput/index.d.ts +4 -1
  69. package/lib/es/tagInput/index.js +18 -2
  70. package/lib/es/timePicker/TimePicker.d.ts +1 -1
  71. package/lib/es/timePicker/index.d.ts +1 -1
  72. package/lib/es/tooltip/index.d.ts +1 -1
  73. package/package.json +8 -8
@@ -39,7 +39,7 @@ declare class Anchor extends BaseComponent<AnchorProps, AnchorState> {
39
39
  static contextType: React.Context<ContextValue>;
40
40
  static Link: typeof Link;
41
41
  static PropTypes: {
42
- size: PropTypes.Requireable<"default" | "small">;
42
+ size: PropTypes.Requireable<"small" | "default">;
43
43
  railTheme: PropTypes.Requireable<"primary" | "tertiary" | "muted">;
44
44
  className: PropTypes.Requireable<string>;
45
45
  style: PropTypes.Requireable<object>;
@@ -125,7 +125,7 @@ declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<Au
125
125
  renderSelectedItem: PropTypes.Requireable<(...args: any[]) => any>;
126
126
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
127
127
  showClear: PropTypes.Requireable<boolean>;
128
- size: PropTypes.Requireable<"default" | "small" | "large">;
128
+ size: PropTypes.Requireable<"small" | "default" | "large">;
129
129
  style: PropTypes.Requireable<object>;
130
130
  stopPropagation: PropTypes.Requireable<NonNullable<string | boolean>>;
131
131
  maxHeight: PropTypes.Requireable<NonNullable<string | number>>;
@@ -47,7 +47,7 @@ export default class Button extends PureComponent<ButtonProps> {
47
47
  disabled: PropTypes.Requireable<boolean>;
48
48
  prefixCls: PropTypes.Requireable<string>;
49
49
  style: PropTypes.Requireable<object>;
50
- size: PropTypes.Requireable<"default" | "small" | "large">;
50
+ size: PropTypes.Requireable<"small" | "default" | "large">;
51
51
  type: PropTypes.Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
52
52
  block: PropTypes.Requireable<boolean>;
53
53
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
@@ -18,7 +18,7 @@ export default class ButtonGroup extends BaseComponent<ButtonGroupProps> {
18
18
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
19
19
  disabled: PropTypes.Requireable<boolean>;
20
20
  type: PropTypes.Requireable<string>;
21
- size: PropTypes.Requireable<"default" | "small" | "large">;
21
+ size: PropTypes.Requireable<"small" | "default" | "large">;
22
22
  theme: PropTypes.Requireable<"solid" | "light" | "borderless">;
23
23
  'aria-label': PropTypes.Requireable<string>;
24
24
  };
@@ -22,7 +22,7 @@ declare class Button extends React.PureComponent<ButtonProps> {
22
22
  onMouseEnter: import("prop-types").Requireable<(...args: any[]) => any>;
23
23
  onMouseLeave: import("prop-types").Requireable<(...args: any[]) => any>;
24
24
  disabled: import("prop-types").Requireable<boolean>;
25
- size: import("prop-types").Requireable<"default" | "small" | "large">;
25
+ size: import("prop-types").Requireable<"small" | "default" | "large">;
26
26
  type: import("prop-types").Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
27
27
  block: import("prop-types").Requireable<boolean>;
28
28
  onClick: import("prop-types").Requireable<(...args: any[]) => any>;
@@ -12,7 +12,7 @@ declare class CarouselIndicator extends React.PureComponent<CarouselIndicatorPro
12
12
  total: PropTypes.Requireable<number>;
13
13
  onIndicatorChange: PropTypes.Requireable<(...args: any[]) => any>;
14
14
  type: PropTypes.Requireable<"line" | "dot" | "columnar">;
15
- trigger: PropTypes.Requireable<"hover" | "click">;
15
+ trigger: PropTypes.Requireable<"click" | "hover">;
16
16
  };
17
17
  onIndicatorChange: (activeIndex: number) => void;
18
18
  handleIndicatorClick: (activeIndex: number) => void;
@@ -30,7 +30,7 @@ declare class Carousel extends BaseComponent<CarouselProps, CarouselState> {
30
30
  slideDirection: PropTypes.Requireable<"left" | "right">;
31
31
  speed: PropTypes.Requireable<number>;
32
32
  style: PropTypes.Requireable<object>;
33
- trigger: PropTypes.Requireable<"hover" | "click">;
33
+ trigger: PropTypes.Requireable<"click" | "hover">;
34
34
  };
35
35
  static defaultProps: CarouselProps;
36
36
  foundation: CarouselFoundation;
@@ -110,7 +110,7 @@ declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
110
110
  zIndex: PropTypes.Requireable<number>;
111
111
  value: PropTypes.Requireable<NonNullable<string | number | any[]>>;
112
112
  validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
113
- showNext: PropTypes.Requireable<"hover" | "click">;
113
+ showNext: PropTypes.Requireable<"click" | "hover">;
114
114
  stopPropagation: PropTypes.Requireable<NonNullable<string | boolean>>;
115
115
  showClear: PropTypes.Requireable<boolean>;
116
116
  defaultOpen: PropTypes.Requireable<boolean>;
@@ -48,7 +48,7 @@ export default class Item extends PureComponent<CascaderItemProps> {
48
48
  onItemClick: PropTypes.Requireable<(...args: any[]) => any>;
49
49
  onItemHover: PropTypes.Requireable<(...args: any[]) => any>;
50
50
  multiple: PropTypes.Requireable<boolean>;
51
- showNext: PropTypes.Requireable<"hover" | "click">;
51
+ showNext: PropTypes.Requireable<"click" | "hover">;
52
52
  checkedKeys: PropTypes.Requireable<object>;
53
53
  halfCheckedKeys: PropTypes.Requireable<object>;
54
54
  onItemCheckboxClick: PropTypes.Requireable<(...args: any[]) => any>;
@@ -26,7 +26,7 @@ export default class DateInput extends BaseComponent<DateInputProps, {}> {
26
26
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
27
27
  value: PropTypes.Requireable<any[]>;
28
28
  disabled: PropTypes.Requireable<boolean>;
29
- type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
29
+ type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
30
30
  showClear: PropTypes.Requireable<boolean>;
31
31
  format: PropTypes.Requireable<string>;
32
32
  inputStyle: PropTypes.Requireable<object>;
@@ -46,8 +46,8 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
46
46
  'aria-invalid': PropTypes.Requireable<boolean>;
47
47
  'aria-labelledby': PropTypes.Requireable<string>;
48
48
  'aria-required': PropTypes.Requireable<boolean>;
49
- type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
50
- size: PropTypes.Requireable<"default" | "small" | "large">;
49
+ type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
50
+ size: PropTypes.Requireable<"small" | "default" | "large">;
51
51
  clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
52
52
  density: PropTypes.Requireable<"default" | "compact">;
53
53
  defaultValue: PropTypes.Requireable<NonNullable<string | number | object>>;
@@ -19,7 +19,7 @@ export interface MonthsGridProps extends MonthsGridFoundationProps, BaseProps {
19
19
  export declare type MonthsGridState = MonthsGridFoundationState;
20
20
  export default class MonthsGrid extends BaseComponent<MonthsGridProps, MonthsGridState> {
21
21
  static propTypes: {
22
- type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
22
+ type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
23
23
  defaultValue: PropTypes.Requireable<NonNullable<string | number | object>>;
24
24
  defaultPickerValue: PropTypes.Requireable<NonNullable<string | number | object>>;
25
25
  multiple: PropTypes.Requireable<boolean>;
@@ -135,7 +135,7 @@ declare class Form<Values extends Record<string, any> = any> extends BaseCompone
135
135
  preventScroll?: boolean;
136
136
  showRestTagsPopover?: boolean;
137
137
  restTagsPopoverProps?: import("../popover").PopoverProps;
138
- } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
138
+ } & Pick<import("../tooltip").TooltipProps, "motion" | "stopPropagation" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
139
139
  static Checkbox: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox").CheckboxProps & import("./interface").RCIncludeType>;
140
140
  static CheckboxGroup: React.ComponentType<import("utility-types").Subtract<import("../checkbox").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
141
141
  static Radio: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../radio").RadioProps & import("./interface").RCIncludeType>;
@@ -83,7 +83,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
83
83
  preventScroll?: boolean;
84
84
  showRestTagsPopover?: boolean;
85
85
  restTagsPopoverProps?: import("../popover").PopoverProps;
86
- } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
86
+ } & Pick<import("../tooltip").TooltipProps, "motion" | "stopPropagation" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
87
87
  declare const FormCheckboxGroup: import("react").ComponentType<import("utility-types").Subtract<import("../checkbox/checkboxGroup").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
88
88
  declare const FormCheckbox: import("react").ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox/checkbox").CheckboxProps & import("./interface").RCIncludeType>;
89
89
  declare const FormRadioGroup: import("react").ComponentType<import("utility-types").Subtract<import("../radio/radioGroup").RadioGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
@@ -83,7 +83,7 @@ declare class Input extends BaseComponent<InputProps, InputState> {
83
83
  showClear: PropTypes.Requireable<boolean>;
84
84
  hideSuffix: PropTypes.Requireable<boolean>;
85
85
  placeholder: PropTypes.Requireable<any>;
86
- size: PropTypes.Requireable<"default" | "small" | "large">;
86
+ size: PropTypes.Requireable<"small" | "default" | "large">;
87
87
  className: PropTypes.Requireable<string>;
88
88
  style: PropTypes.Requireable<object>;
89
89
  validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
@@ -21,7 +21,7 @@ export default class inputGroup extends BaseComponent<InputGroupProps, InputGrou
21
21
  static propTypes: {
22
22
  className: PropTypes.Requireable<string>;
23
23
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
24
- size: PropTypes.Requireable<"default" | "small" | "large">;
24
+ size: PropTypes.Requireable<"small" | "default" | "large">;
25
25
  style: PropTypes.Requireable<object>;
26
26
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
27
27
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
@@ -58,7 +58,7 @@ declare class Popover extends React.PureComponent<PopoverProps, PopoverState> {
58
58
  margin: PropTypes.Requireable<NonNullable<number | object>>;
59
59
  mouseEnterDelay: PropTypes.Requireable<number>;
60
60
  mouseLeaveDelay: PropTypes.Requireable<number>;
61
- trigger: PropTypes.Validator<NonNullable<"hover" | "focus" | "click" | "custom">>;
61
+ trigger: PropTypes.Validator<NonNullable<"click" | "focus" | "hover" | "custom">>;
62
62
  contentClassName: PropTypes.Requireable<NonNullable<string | any[]>>;
63
63
  onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
64
64
  onClickOutSide: PropTypes.Requireable<(...args: any[]) => any>;
@@ -69,7 +69,7 @@ export default class Rating extends BaseComponent<RatingProps, RatingState> {
69
69
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
70
70
  onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
71
71
  autoFocus: PropTypes.Requireable<boolean>;
72
- size: PropTypes.Requireable<NonNullable<number | "default" | "small">>;
72
+ size: PropTypes.Requireable<NonNullable<number | "small" | "default">>;
73
73
  tooltips: PropTypes.Requireable<string[]>;
74
74
  id: PropTypes.Requireable<string>;
75
75
  preventScroll: PropTypes.Requireable<boolean>;
@@ -40,7 +40,7 @@ export default class Item extends BaseComponent<RatingItemProps, RatingItemState
40
40
  disabled: PropTypes.Requireable<boolean>;
41
41
  count: PropTypes.Requireable<number>;
42
42
  ariaLabelPrefix: PropTypes.Requireable<string>;
43
- size: PropTypes.Requireable<NonNullable<number | "default" | "small">>;
43
+ size: PropTypes.Requireable<NonNullable<number | "small" | "default">>;
44
44
  'aria-describedby': PropTypes.Requireable<string>;
45
45
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
46
46
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
@@ -45,7 +45,7 @@ declare class Switch extends BaseComponent<SwitchProps, SwitchState> {
45
45
  onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
46
46
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
47
47
  style: PropTypes.Requireable<object>;
48
- size: PropTypes.Requireable<"default" | "small" | "large">;
48
+ size: PropTypes.Requireable<"small" | "default" | "large">;
49
49
  uncheckedText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
50
50
  id: PropTypes.Requireable<string>;
51
51
  };
@@ -52,7 +52,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
52
52
  components: PropTypes.Requireable<any>;
53
53
  bordered: PropTypes.Requireable<boolean>;
54
54
  loading: PropTypes.Requireable<boolean>;
55
- size: PropTypes.Requireable<"default" | "small" | "middle">;
55
+ size: PropTypes.Requireable<"small" | "default" | "middle">;
56
56
  tableLayout: PropTypes.Requireable<"" | "fixed" | "auto">;
57
57
  columns: PropTypes.Requireable<PropTypes.InferProps<{
58
58
  align: PropTypes.Requireable<"left" | "right" | "center">;
@@ -289,7 +289,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
289
289
  showTotal?: boolean;
290
290
  pageSize?: number;
291
291
  pageSizeOpts?: number[];
292
- size?: "default" | "small";
292
+ size?: "small" | "default";
293
293
  currentPage?: number;
294
294
  defaultCurrentPage?: number;
295
295
  onPageChange?: (currentPage: number) => void;
@@ -15,7 +15,7 @@ declare class Table<RecordType extends Record<string, any> = Data> extends React
15
15
  components: PropTypes.Requireable<any>;
16
16
  bordered: PropTypes.Requireable<boolean>;
17
17
  loading: PropTypes.Requireable<boolean>;
18
- size: PropTypes.Requireable<"default" | "small" | "middle">;
18
+ size: PropTypes.Requireable<"small" | "default" | "middle">;
19
19
  tableLayout: PropTypes.Requireable<"" | "fixed" | "auto">;
20
20
  columns: PropTypes.Requireable<PropTypes.InferProps<{
21
21
  align: PropTypes.Requireable<"left" | "right" | "center">;
@@ -31,6 +31,7 @@ declare class TabBar extends React.Component<TabBarProps, TabBarState> {
31
31
  renderExtra(): ReactNode;
32
32
  handleItemClick: (itemKey: string, e: MouseEvent<Element>) => void;
33
33
  handleKeyDown: (event: React.KeyboardEvent, itemKey: string, closable: boolean) => void;
34
+ renderTabItemInOverflowList: (panel: PlainTab) => ReactNode;
34
35
  renderTabItem: (panel: PlainTab) => ReactNode;
35
36
  renderTabComponents: (list: Array<PlainTab>) => Array<ReactNode>;
36
37
  handleArrowClick: (items: Array<OverflowItem>, pos: 'start' | 'end') => void;
@@ -27,6 +27,8 @@ var _semiIcons = require("@douyinfe/semi-icons");
27
27
 
28
28
  var _uuid = require("@douyinfe/semi-foundation/lib/cjs/utils/uuid");
29
29
 
30
+ var _TabItem = _interopRequireDefault(require("./TabItem"));
31
+
30
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
33
 
32
34
  var __rest = void 0 && (void 0).__rest || function (s, e) {
@@ -64,7 +66,7 @@ class TabBar extends _react.default.Component {
64
66
  this.props.handleKeyDown(event, itemKey, closable);
65
67
  };
66
68
 
67
- this.renderTabItem = panel => {
69
+ this.renderTabItemInOverflowList = panel => {
68
70
  const {
69
71
  size,
70
72
  type,
@@ -109,6 +111,30 @@ class TabBar extends _react.default.Component {
109
111
  }), panelIcon, panel.tab, closableIcon);
110
112
  };
111
113
 
114
+ this.renderTabItem = panel => {
115
+ const {
116
+ size,
117
+ type,
118
+ deleteTabItem,
119
+ handleKeyDown,
120
+ tabPosition
121
+ } = this.props;
122
+
123
+ const isSelected = this._isActive(panel.itemKey);
124
+
125
+ return /*#__PURE__*/_react.default.createElement(_TabItem.default, Object.assign({
126
+ key: this._getItemKey(panel.itemKey)
127
+ }, panel, {
128
+ selected: isSelected,
129
+ size: size,
130
+ type: type,
131
+ tabPosition: tabPosition,
132
+ handleKeyDown: handleKeyDown,
133
+ deleteTabItem: deleteTabItem,
134
+ onClick: this.handleItemClick
135
+ }));
136
+ };
137
+
112
138
  this.renderTabComponents = list => list.map(panel => this.renderTabItem(panel));
113
139
 
114
140
  this.handleArrowClick = (items, pos) => {
@@ -214,7 +240,7 @@ class TabBar extends _react.default.Component {
214
240
  overflowRenderer: this.renderOverflow,
215
241
  renderMode: "scroll",
216
242
  className: "".concat(_constants.cssClasses.TABS_BAR, "-overflow-list"),
217
- visibleItemRenderer: this.renderTabItem
243
+ visibleItemRenderer: this.renderTabItemInOverflowList
218
244
  });
219
245
  };
220
246
 
@@ -0,0 +1,38 @@
1
+ import React, { ReactNode, MouseEvent } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { TabType, TabSize, TabPosition } from './interface';
4
+ export interface TabItemProps {
5
+ tab?: ReactNode;
6
+ icon?: ReactNode;
7
+ size?: TabSize;
8
+ type?: TabType;
9
+ tabPosition?: TabPosition;
10
+ selected?: boolean;
11
+ closable?: boolean;
12
+ disabled?: boolean;
13
+ itemKey?: string;
14
+ handleKeyDown?: (event: React.KeyboardEvent, itemKey: string, closable: boolean) => void;
15
+ deleteTabItem?: (tabKey: string, event: MouseEvent<Element>) => void;
16
+ onClick?: (itemKey: string, e: MouseEvent<Element>) => void;
17
+ }
18
+ export default class TabItem extends React.Component<TabItemProps> {
19
+ static propsTypes: {
20
+ tab: PropTypes.Requireable<PropTypes.ReactNodeLike>;
21
+ icon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
22
+ size: PropTypes.Requireable<string>;
23
+ type: PropTypes.Requireable<string>;
24
+ tabPosition: PropTypes.Requireable<string>;
25
+ selected: PropTypes.Requireable<boolean>;
26
+ closable: PropTypes.Requireable<boolean>;
27
+ disabled: PropTypes.Requireable<boolean>;
28
+ itemKey: PropTypes.Requireable<string>;
29
+ handleKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
30
+ deleteTabItem: PropTypes.Requireable<(...args: any[]) => any>;
31
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
32
+ };
33
+ static elementType: string;
34
+ renderIcon(icon: ReactNode): ReactNode;
35
+ handleKeyDown: (event: React.KeyboardEvent) => void;
36
+ handleClick: (e: React.MouseEvent) => void;
37
+ render(): JSX.Element;
38
+ }
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
14
+ var _constants = require("@douyinfe/semi-foundation/lib/cjs/tabs/constants");
15
+
16
+ var _semiIcons = require("@douyinfe/semi-icons");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ class TabItem extends _react.default.Component {
21
+ constructor() {
22
+ super(...arguments);
23
+
24
+ this.handleKeyDown = event => {
25
+ const {
26
+ itemKey,
27
+ closable,
28
+ handleKeyDown
29
+ } = this.props;
30
+ handleKeyDown && handleKeyDown(event, itemKey, closable);
31
+ };
32
+
33
+ this.handleClick = e => {
34
+ const {
35
+ itemKey,
36
+ onClick,
37
+ disabled
38
+ } = this.props;
39
+ !disabled && onClick && onClick(itemKey, e);
40
+ };
41
+ }
42
+
43
+ renderIcon(icon) {
44
+ return /*#__PURE__*/_react.default.createElement("span", null, icon);
45
+ }
46
+
47
+ render() {
48
+ const {
49
+ tab,
50
+ size,
51
+ type,
52
+ icon,
53
+ selected,
54
+ closable,
55
+ disabled,
56
+ itemKey,
57
+ deleteTabItem,
58
+ tabPosition
59
+ } = this.props;
60
+ const panelIcon = icon ? this.renderIcon(icon) : null;
61
+ const className = (0, _classnames.default)(_constants.cssClasses.TABS_TAB, "".concat(_constants.cssClasses.TABS_TAB, "-").concat(type), "".concat(_constants.cssClasses.TABS_TAB, "-").concat(tabPosition), "".concat(_constants.cssClasses.TABS_TAB, "-single"), {
62
+ [_constants.cssClasses.TABS_TAB_ACTIVE]: selected,
63
+ [_constants.cssClasses.TABS_TAB_DISABLED]: disabled,
64
+ ["".concat(_constants.cssClasses.TABS_TAB, "-small")]: size === 'small',
65
+ ["".concat(_constants.cssClasses.TABS_TAB, "-medium")]: size === 'medium'
66
+ });
67
+ const closableIcon = type === 'card' && closable ? /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, {
68
+ "aria-label": "Close",
69
+ role: "button",
70
+ className: "".concat(_constants.cssClasses.TABS_TAB, "-icon-close"),
71
+ onClick: e => deleteTabItem(itemKey, e)
72
+ }) : null;
73
+ return /*#__PURE__*/_react.default.createElement("div", {
74
+ role: "tab",
75
+ id: "semiTab".concat(itemKey),
76
+ "data-tabkey": "semiTab".concat(itemKey),
77
+ "aria-controls": "semiTabPanel".concat(itemKey),
78
+ "aria-disabled": disabled ? 'true' : 'false',
79
+ "aria-selected": selected ? 'true' : 'false',
80
+ tabIndex: selected ? 0 : -1,
81
+ onKeyDown: this.handleKeyDown,
82
+ onClick: this.handleClick,
83
+ className: className
84
+ }, panelIcon, tab, closableIcon);
85
+ }
86
+
87
+ }
88
+
89
+ exports.default = TabItem;
90
+ TabItem.propsTypes = {
91
+ tab: _propTypes.default.node,
92
+ icon: _propTypes.default.node,
93
+ size: _propTypes.default.oneOf(_constants.strings.SIZE),
94
+ type: _propTypes.default.oneOf(_constants.strings.TYPE_MAP),
95
+ tabPosition: _propTypes.default.oneOf(_constants.strings.POSITION_MAP),
96
+ selected: _propTypes.default.bool,
97
+ closable: _propTypes.default.bool,
98
+ disabled: _propTypes.default.bool,
99
+ itemKey: _propTypes.default.string,
100
+ handleKeyDown: _propTypes.default.func,
101
+ deleteTabItem: _propTypes.default.func,
102
+ onClick: _propTypes.default.func
103
+ };
104
+ TabItem.elementType = 'TabItem';
@@ -4,6 +4,7 @@ import TabsFoundation, { TabsAdapter } from '@douyinfe/semi-foundation/lib/cjs/t
4
4
  import BaseComponent from '../_base/baseComponent';
5
5
  import '@douyinfe/semi-foundation/lib/cjs/tabs/tabs.css';
6
6
  import TabPane from './TabPane';
7
+ import TabItem from './TabItem';
7
8
  import { PlainTab, TabsProps } from './interface';
8
9
  export * from './interface';
9
10
  export interface TabsState {
@@ -14,6 +15,7 @@ export interface TabsState {
14
15
  }
15
16
  declare class Tabs extends BaseComponent<TabsProps, TabsState> {
16
17
  static TabPane: typeof TabPane;
18
+ static TabItem: typeof TabItem;
17
19
  static propTypes: {
18
20
  activeKey: PropTypes.Requireable<string>;
19
21
  className: PropTypes.Requireable<string>;
@@ -32,6 +32,8 @@ var _TabBar = _interopRequireDefault(require("./TabBar"));
32
32
 
33
33
  var _TabPane = _interopRequireDefault(require("./TabPane"));
34
34
 
35
+ var _TabItem = _interopRequireDefault(require("./TabItem"));
36
+
35
37
  var _tabsContext = _interopRequireDefault(require("./tabs-context"));
36
38
 
37
39
  var _interface = require("./interface");
@@ -379,6 +381,7 @@ class Tabs extends _baseComponent.default {
379
381
  }
380
382
 
381
383
  Tabs.TabPane = _TabPane.default;
384
+ Tabs.TabItem = _TabItem.default;
382
385
  Tabs.propTypes = {
383
386
  activeKey: _propTypes.default.string,
384
387
  className: _propTypes.default.string,
@@ -56,6 +56,7 @@ export interface TagInputState {
56
56
  focusing?: boolean;
57
57
  hovering?: boolean;
58
58
  active?: boolean;
59
+ entering?: boolean;
59
60
  }
60
61
  declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
61
62
  static propTypes: {
@@ -91,7 +92,7 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
91
92
  onAdd: PropTypes.Requireable<(...args: any[]) => any>;
92
93
  onRemove: PropTypes.Requireable<(...args: any[]) => any>;
93
94
  onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
94
- size: PropTypes.Requireable<"default" | "small" | "large">;
95
+ size: PropTypes.Requireable<"small" | "default" | "large">;
95
96
  validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
96
97
  prefix: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
97
98
  suffix: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
@@ -151,6 +152,8 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
151
152
  renderTags(): JSX.Element;
152
153
  blur(): void;
153
154
  focus(): void;
155
+ handleInputCompositionStart: (e: any) => void;
156
+ handleInputCompositionEnd: (e: any) => void;
154
157
  render(): JSX.Element;
155
158
  }
156
159
  export default TagInput;
@@ -186,13 +186,22 @@ class TagInput extends _baseComponent.default {
186
186
  this.foundation.handleSortEnd(callbackProps);
187
187
  };
188
188
 
189
+ this.handleInputCompositionStart = e => {
190
+ this.foundation.handleInputCompositionStart(e);
191
+ };
192
+
193
+ this.handleInputCompositionEnd = e => {
194
+ this.foundation.handleInputCompositionEnd(e);
195
+ };
196
+
189
197
  this.foundation = new _foundation.default(this.adapter);
190
198
  this.state = {
191
199
  tagsArray: props.defaultValue || [],
192
200
  inputValue: '',
193
201
  focusing: false,
194
202
  hovering: false,
195
- active: false
203
+ active: false,
204
+ entering: false
196
205
  };
197
206
  this.inputRef = /*#__PURE__*/_react.default.createRef();
198
207
  this.tagInputRef = /*#__PURE__*/_react.default.createRef();
@@ -268,6 +277,11 @@ class TagInput extends _baseComponent.default {
268
277
  active
269
278
  });
270
279
  },
280
+ setEntering: entering => {
281
+ this.setState({
282
+ entering
283
+ });
284
+ },
271
285
  getClickOutsideHandler: () => {
272
286
  return this.clickOutsideHandler;
273
287
  },
@@ -558,7 +572,9 @@ class TagInput extends _baseComponent.default {
558
572
  },
559
573
  onFocus: e => {
560
574
  this.handleInputFocus(e);
561
- }
575
+ },
576
+ onCompositionStart: this.handleInputCompositionStart,
577
+ onCompositionEnd: this.handleInputCompositionEnd
562
578
  })), this.renderClearBtn(), this.renderSuffix())
563
579
  );
564
580
  }
@@ -130,7 +130,7 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
130
130
  secondStep: PropTypes.Requireable<number>;
131
131
  focusOnOpen: PropTypes.Requireable<boolean>;
132
132
  autoFocus: PropTypes.Requireable<boolean>;
133
- size: PropTypes.Requireable<"default" | "small" | "large">;
133
+ size: PropTypes.Requireable<"small" | "default" | "large">;
134
134
  panels: PropTypes.Requireable<PropTypes.InferProps<{
135
135
  panelHeader: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
136
136
  panelFooter: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
@@ -48,7 +48,7 @@ export default class LocaleTimePicker extends React.PureComponent<LocalePickerPr
48
48
  secondStep: import("prop-types").Requireable<number>;
49
49
  focusOnOpen: import("prop-types").Requireable<boolean>;
50
50
  autoFocus: import("prop-types").Requireable<boolean>;
51
- size: import("prop-types").Requireable<"default" | "small" | "large">;
51
+ size: import("prop-types").Requireable<"small" | "default" | "large">;
52
52
  panels: import("prop-types").Requireable<import("prop-types").InferProps<{
53
53
  panelHeader: import("prop-types").Requireable<NonNullable<import("prop-types").ReactNodeLike>>;
54
54
  panelFooter: import("prop-types").Requireable<NonNullable<import("prop-types").ReactNodeLike>>;
@@ -90,7 +90,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
90
90
  getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
91
91
  mouseEnterDelay: PropTypes.Requireable<number>;
92
92
  mouseLeaveDelay: PropTypes.Requireable<number>;
93
- trigger: PropTypes.Validator<NonNullable<"hover" | "focus" | "click" | "custom">>;
93
+ trigger: PropTypes.Validator<NonNullable<"click" | "focus" | "hover" | "custom">>;
94
94
  className: PropTypes.Requireable<string>;
95
95
  wrapperClassName: PropTypes.Requireable<string>;
96
96
  clickToHide: PropTypes.Requireable<boolean>;
@@ -39,7 +39,7 @@ declare class Anchor extends BaseComponent<AnchorProps, AnchorState> {
39
39
  static contextType: React.Context<ContextValue>;
40
40
  static Link: typeof Link;
41
41
  static PropTypes: {
42
- size: PropTypes.Requireable<"default" | "small">;
42
+ size: PropTypes.Requireable<"small" | "default">;
43
43
  railTheme: PropTypes.Requireable<"primary" | "tertiary" | "muted">;
44
44
  className: PropTypes.Requireable<string>;
45
45
  style: PropTypes.Requireable<object>;
@@ -125,7 +125,7 @@ declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<Au
125
125
  renderSelectedItem: PropTypes.Requireable<(...args: any[]) => any>;
126
126
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
127
127
  showClear: PropTypes.Requireable<boolean>;
128
- size: PropTypes.Requireable<"default" | "small" | "large">;
128
+ size: PropTypes.Requireable<"small" | "default" | "large">;
129
129
  style: PropTypes.Requireable<object>;
130
130
  stopPropagation: PropTypes.Requireable<NonNullable<string | boolean>>;
131
131
  maxHeight: PropTypes.Requireable<NonNullable<string | number>>;
@@ -47,7 +47,7 @@ export default class Button extends PureComponent<ButtonProps> {
47
47
  disabled: PropTypes.Requireable<boolean>;
48
48
  prefixCls: PropTypes.Requireable<string>;
49
49
  style: PropTypes.Requireable<object>;
50
- size: PropTypes.Requireable<"default" | "small" | "large">;
50
+ size: PropTypes.Requireable<"small" | "default" | "large">;
51
51
  type: PropTypes.Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
52
52
  block: PropTypes.Requireable<boolean>;
53
53
  onClick: PropTypes.Requireable<(...args: any[]) => any>;