@douyinfe/semi-ui 2.36.0-alpha.0 → 2.36.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 (169) hide show
  1. package/dist/css/semi.css +166 -510
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +247 -277
  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 +3 -2
  8. package/lib/cjs/anchor/link.js +13 -6
  9. package/lib/cjs/autoComplete/index.d.ts +1 -1
  10. package/lib/cjs/button/Button.d.ts +1 -1
  11. package/lib/cjs/button/buttonGroup.d.ts +1 -1
  12. package/lib/cjs/button/index.d.ts +1 -1
  13. package/lib/cjs/calendar/dayCalendar.d.ts +2 -1
  14. package/lib/cjs/calendar/dayCalendar.js +7 -2
  15. package/lib/cjs/calendar/index.d.ts +1 -0
  16. package/lib/cjs/calendar/index.js +1 -0
  17. package/lib/cjs/calendar/interface.d.ts +2 -0
  18. package/lib/cjs/calendar/monthCalendar.d.ts +1 -1
  19. package/lib/cjs/calendar/monthCalendar.js +12 -4
  20. package/lib/cjs/calendar/rangeCalendar.d.ts +3 -1
  21. package/lib/cjs/calendar/rangeCalendar.js +23 -9
  22. package/lib/cjs/calendar/weekCalendar.d.ts +3 -1
  23. package/lib/cjs/calendar/weekCalendar.js +23 -9
  24. package/lib/cjs/collapse/item.d.ts +0 -2
  25. package/lib/cjs/collapse/item.js +2 -3
  26. package/lib/cjs/datePicker/dateInput.d.ts +1 -1
  27. package/lib/cjs/datePicker/datePicker.d.ts +2 -2
  28. package/lib/cjs/datePicker/datePicker.js +12 -4
  29. package/lib/cjs/datePicker/monthsGrid.d.ts +1 -1
  30. package/lib/cjs/datePicker/monthsGrid.js +6 -2
  31. package/lib/cjs/datePicker/yearAndMonth.d.ts +3 -1
  32. package/lib/cjs/datePicker/yearAndMonth.js +4 -2
  33. package/lib/cjs/form/baseForm.d.ts +1 -1
  34. package/lib/cjs/form/field.d.ts +1 -1
  35. package/lib/cjs/input/index.d.ts +1 -1
  36. package/lib/cjs/input/inputGroup.d.ts +1 -1
  37. package/lib/cjs/input/textarea.d.ts +1 -1
  38. package/lib/cjs/modal/confirm.d.ts +17 -17
  39. package/lib/cjs/navigation/Footer.d.ts +3 -0
  40. package/lib/cjs/navigation/Footer.js +19 -9
  41. package/lib/cjs/navigation/Item.d.ts +0 -4
  42. package/lib/cjs/navigation/Item.js +10 -29
  43. package/lib/cjs/navigation/SubNav.d.ts +1 -18
  44. package/lib/cjs/navigation/SubNav.js +30 -70
  45. package/lib/cjs/navigation/index.d.ts +4 -1
  46. package/lib/cjs/navigation/index.js +7 -1
  47. package/lib/cjs/rating/index.d.ts +1 -1
  48. package/lib/cjs/rating/item.d.ts +1 -1
  49. package/lib/cjs/select/index.d.ts +2 -1
  50. package/lib/cjs/select/index.js +4 -0
  51. package/lib/cjs/skeleton/index.d.ts +0 -1
  52. package/lib/cjs/skeleton/index.js +0 -1
  53. package/lib/cjs/skeleton/item.d.ts +0 -1
  54. package/lib/cjs/skeleton/item.js +1 -6
  55. package/lib/cjs/steps/basicStep.d.ts +0 -3
  56. package/lib/cjs/steps/basicStep.js +2 -8
  57. package/lib/cjs/steps/basicSteps.js +1 -2
  58. package/lib/cjs/steps/fillStep.d.ts +0 -2
  59. package/lib/cjs/steps/fillStep.js +1 -3
  60. package/lib/cjs/steps/fillSteps.js +8 -5
  61. package/lib/cjs/steps/index.d.ts +1 -63
  62. package/lib/cjs/steps/index.js +0 -9
  63. package/lib/cjs/steps/navStep.d.ts +0 -3
  64. package/lib/cjs/steps/navStep.js +2 -6
  65. package/lib/cjs/steps/navSteps.js +1 -2
  66. package/lib/cjs/steps/step.d.ts +1 -4
  67. package/lib/cjs/steps/step.js +0 -1
  68. package/lib/cjs/switch/index.d.ts +1 -1
  69. package/lib/cjs/table/Body/index.d.ts +1 -1
  70. package/lib/cjs/table/ResizableTable.d.ts +1 -1
  71. package/lib/cjs/table/Table.d.ts +2 -2
  72. package/lib/cjs/table/TableHeaderRow.js +22 -14
  73. package/lib/cjs/table/index.d.ts +1 -1
  74. package/lib/cjs/table/interface.d.ts +5 -1
  75. package/lib/cjs/tagInput/index.d.ts +1 -1
  76. package/lib/cjs/timePicker/TimePicker.d.ts +1 -1
  77. package/lib/cjs/timePicker/index.d.ts +1 -1
  78. package/lib/cjs/timeline/index.d.ts +1 -2
  79. package/lib/cjs/timeline/index.js +2 -8
  80. package/lib/cjs/timeline/item.d.ts +0 -10
  81. package/lib/cjs/timeline/item.js +3 -42
  82. package/lib/cjs/typography/base.d.ts +1 -0
  83. package/lib/cjs/typography/base.js +28 -14
  84. package/lib/cjs/typography/title.d.ts +2 -0
  85. package/lib/cjs/typography/title.js +2 -1
  86. package/lib/es/anchor/index.d.ts +3 -2
  87. package/lib/es/anchor/link.js +12 -6
  88. package/lib/es/autoComplete/index.d.ts +1 -1
  89. package/lib/es/button/Button.d.ts +1 -1
  90. package/lib/es/button/buttonGroup.d.ts +1 -1
  91. package/lib/es/button/index.d.ts +1 -1
  92. package/lib/es/calendar/dayCalendar.d.ts +2 -1
  93. package/lib/es/calendar/dayCalendar.js +7 -2
  94. package/lib/es/calendar/index.d.ts +1 -0
  95. package/lib/es/calendar/index.js +1 -0
  96. package/lib/es/calendar/interface.d.ts +2 -0
  97. package/lib/es/calendar/monthCalendar.d.ts +1 -1
  98. package/lib/es/calendar/monthCalendar.js +12 -4
  99. package/lib/es/calendar/rangeCalendar.d.ts +3 -1
  100. package/lib/es/calendar/rangeCalendar.js +19 -9
  101. package/lib/es/calendar/weekCalendar.d.ts +3 -1
  102. package/lib/es/calendar/weekCalendar.js +19 -9
  103. package/lib/es/collapse/item.d.ts +0 -2
  104. package/lib/es/collapse/item.js +2 -3
  105. package/lib/es/datePicker/dateInput.d.ts +1 -1
  106. package/lib/es/datePicker/datePicker.d.ts +2 -2
  107. package/lib/es/datePicker/datePicker.js +12 -4
  108. package/lib/es/datePicker/monthsGrid.d.ts +1 -1
  109. package/lib/es/datePicker/monthsGrid.js +6 -2
  110. package/lib/es/datePicker/yearAndMonth.d.ts +3 -1
  111. package/lib/es/datePicker/yearAndMonth.js +4 -2
  112. package/lib/es/form/baseForm.d.ts +1 -1
  113. package/lib/es/form/field.d.ts +1 -1
  114. package/lib/es/input/index.d.ts +1 -1
  115. package/lib/es/input/inputGroup.d.ts +1 -1
  116. package/lib/es/input/textarea.d.ts +1 -1
  117. package/lib/es/modal/confirm.d.ts +17 -17
  118. package/lib/es/navigation/Footer.d.ts +3 -0
  119. package/lib/es/navigation/Footer.js +16 -7
  120. package/lib/es/navigation/Item.d.ts +0 -4
  121. package/lib/es/navigation/Item.js +10 -28
  122. package/lib/es/navigation/SubNav.d.ts +1 -18
  123. package/lib/es/navigation/SubNav.js +31 -72
  124. package/lib/es/navigation/index.d.ts +4 -1
  125. package/lib/es/navigation/index.js +7 -1
  126. package/lib/es/rating/index.d.ts +1 -1
  127. package/lib/es/rating/item.d.ts +1 -1
  128. package/lib/es/select/index.d.ts +2 -1
  129. package/lib/es/select/index.js +4 -0
  130. package/lib/es/skeleton/index.d.ts +0 -1
  131. package/lib/es/skeleton/index.js +0 -1
  132. package/lib/es/skeleton/item.d.ts +0 -1
  133. package/lib/es/skeleton/item.js +1 -6
  134. package/lib/es/steps/basicStep.d.ts +0 -3
  135. package/lib/es/steps/basicStep.js +2 -8
  136. package/lib/es/steps/basicSteps.js +1 -2
  137. package/lib/es/steps/fillStep.d.ts +0 -2
  138. package/lib/es/steps/fillStep.js +1 -3
  139. package/lib/es/steps/fillSteps.js +8 -6
  140. package/lib/es/steps/index.d.ts +1 -63
  141. package/lib/es/steps/index.js +0 -6
  142. package/lib/es/steps/navStep.d.ts +0 -3
  143. package/lib/es/steps/navStep.js +2 -6
  144. package/lib/es/steps/navSteps.js +1 -2
  145. package/lib/es/steps/step.d.ts +1 -4
  146. package/lib/es/steps/step.js +0 -1
  147. package/lib/es/switch/index.d.ts +1 -1
  148. package/lib/es/table/Body/index.d.ts +1 -1
  149. package/lib/es/table/ResizableTable.d.ts +1 -1
  150. package/lib/es/table/Table.d.ts +2 -2
  151. package/lib/es/table/TableHeaderRow.js +22 -14
  152. package/lib/es/table/index.d.ts +1 -1
  153. package/lib/es/table/interface.d.ts +5 -1
  154. package/lib/es/tagInput/index.d.ts +1 -1
  155. package/lib/es/timePicker/TimePicker.d.ts +1 -1
  156. package/lib/es/timePicker/index.d.ts +1 -1
  157. package/lib/es/timeline/index.d.ts +1 -2
  158. package/lib/es/timeline/index.js +2 -7
  159. package/lib/es/timeline/item.d.ts +0 -10
  160. package/lib/es/timeline/item.js +3 -41
  161. package/lib/es/typography/base.d.ts +1 -0
  162. package/lib/es/typography/base.js +28 -14
  163. package/lib/es/typography/title.d.ts +2 -0
  164. package/lib/es/typography/title.js +2 -1
  165. package/package.json +8 -9
  166. package/lib/cjs/timeline/context.d.ts +0 -8
  167. package/lib/cjs/timeline/context.js +0 -15
  168. package/lib/es/timeline/context.d.ts +0 -8
  169. package/lib/es/timeline/context.js +0 -3
@@ -86,7 +86,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
86
86
  preventScroll?: boolean;
87
87
  showRestTagsPopover?: boolean;
88
88
  restTagsPopoverProps?: import("../popover").PopoverProps;
89
- } & Pick<import("../tooltip").TooltipProps, "motion" | "stopPropagation" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
89
+ } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
90
90
  declare const FormCheckboxGroup: import("react").ComponentType<import("utility-types").Subtract<import("../checkbox/checkboxGroup").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
91
91
  declare const FormCheckbox: import("react").ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox/checkbox").CheckboxProps & import("./interface").RCIncludeType>;
92
92
  declare const FormRadioGroup: import("react").ComponentType<import("utility-types").Subtract<import("../radio/radioGroup").RadioGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
@@ -84,7 +84,7 @@ declare class Input extends BaseComponent<InputProps, InputState> {
84
84
  showClear: PropTypes.Requireable<boolean>;
85
85
  hideSuffix: PropTypes.Requireable<boolean>;
86
86
  placeholder: PropTypes.Requireable<any>;
87
- size: PropTypes.Requireable<"small" | "default" | "large">;
87
+ size: PropTypes.Requireable<"default" | "small" | "large">;
88
88
  className: PropTypes.Requireable<string>;
89
89
  style: PropTypes.Requireable<object>;
90
90
  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<"small" | "default" | "large">;
24
+ size: PropTypes.Requireable<"default" | "small" | "large">;
25
25
  style: PropTypes.Requireable<object>;
26
26
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
27
27
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ValidateStatus } from '../_base/baseComponent';
3
3
  import '@douyinfe/semi-foundation/lib/cjs/input/textarea.css';
4
- declare type OmitTextareaAttr = 'onChange' | 'onInput' | 'prefix' | 'size' | 'onFocus' | 'onBlur' | 'onKeyDown' | 'onKeyPress' | 'onKeyUp';
4
+ declare type OmitTextareaAttr = 'onChange' | 'onInput' | 'prefix' | 'size' | 'onFocus' | 'onBlur' | 'onKeyDown' | 'onKeyPress' | 'onKeyUp' | 'onResize';
5
5
  export interface TextAreaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, OmitTextareaAttr> {
6
6
  autosize?: boolean;
7
7
  borderless?: boolean;
@@ -140,12 +140,12 @@ export declare function withWarning(props: ModalReactProps): {
140
140
  type: "warning";
141
141
  };
142
142
  export declare function withError(props: ModalReactProps): {
143
- children?: React.ReactNode;
144
- motion?: boolean;
145
143
  title?: React.ReactNode;
144
+ children?: React.ReactNode;
146
145
  size?: import("@douyinfe/semi-foundation/lib/cjs/modal/modalFoundation").Size;
147
146
  style?: React.CSSProperties;
148
147
  className?: string;
148
+ motion?: boolean;
149
149
  getPopupContainer?: () => HTMLElement;
150
150
  footer?: React.ReactNode;
151
151
  header?: React.ReactNode;
@@ -201,24 +201,34 @@ export declare function withError(props: ModalReactProps): {
201
201
  onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;
202
202
  onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;
203
203
  'aria-label'?: string;
204
- onAnimationStart?: React.AnimationEventHandler<HTMLButtonElement>;
205
- onAnimationEnd?: React.AnimationEventHandler<HTMLButtonElement>;
206
204
  title?: string;
207
205
  name?: string;
208
206
  value?: string | number | readonly string[];
207
+ onAnimationStart?: React.AnimationEventHandler<HTMLButtonElement>;
208
+ onAnimationEnd?: React.AnimationEventHandler<HTMLButtonElement>;
209
209
  form?: string;
210
210
  slot?: string;
211
211
  hidden?: boolean;
212
212
  color?: string;
213
+ onChange?: React.FormEventHandler<HTMLButtonElement>;
214
+ defaultChecked?: boolean;
213
215
  defaultValue?: string | number | readonly string[];
216
+ suppressContentEditableWarning?: boolean;
217
+ suppressHydrationWarning?: boolean;
214
218
  accessKey?: string;
219
+ autoFocus?: boolean;
220
+ formAction?: string;
221
+ formEncType?: string;
222
+ formMethod?: string;
223
+ formNoValidate?: boolean;
224
+ formTarget?: string;
215
225
  dir?: string;
216
226
  draggable?: boolean | "false" | "true";
217
227
  lang?: string;
218
- translate?: "yes" | "no";
228
+ translate?: "no" | "yes";
219
229
  prefix?: string;
220
230
  contentEditable?: "inherit" | (boolean | "false" | "true");
221
- inputMode?: "none" | "search" | "text" | "tel" | "url" | "email" | "numeric" | "decimal";
231
+ inputMode?: "search" | "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal";
222
232
  tabIndex?: number;
223
233
  role?: React.AriaRole;
224
234
  onMouseOut?: React.MouseEventHandler<HTMLButtonElement>;
@@ -230,9 +240,6 @@ export declare function withError(props: ModalReactProps): {
230
240
  'aria-haspopup'?: boolean | "dialog" | "menu" | "listbox" | "grid" | "false" | "true" | "tree";
231
241
  'aria-controls'?: string;
232
242
  'aria-describedby'?: string;
233
- defaultChecked?: boolean;
234
- suppressContentEditableWarning?: boolean;
235
- suppressHydrationWarning?: boolean;
236
243
  contextMenu?: string;
237
244
  placeholder?: string;
238
245
  spellCheck?: boolean | "false" | "true";
@@ -267,7 +274,7 @@ export declare function withError(props: ModalReactProps): {
267
274
  'aria-current'?: boolean | "time" | "page" | "false" | "true" | "location" | "step" | "date";
268
275
  'aria-details'?: string;
269
276
  'aria-disabled'?: boolean | "false" | "true";
270
- 'aria-dropeffect'?: "none" | "link" | "copy" | "move" | "execute" | "popup";
277
+ 'aria-dropeffect'?: "link" | "none" | "copy" | "move" | "execute" | "popup";
271
278
  'aria-errormessage'?: string;
272
279
  'aria-flowto'?: string;
273
280
  'aria-grabbed'?: boolean | "false" | "true";
@@ -316,7 +323,6 @@ export declare function withError(props: ModalReactProps): {
316
323
  onCompositionUpdateCapture?: React.CompositionEventHandler<HTMLButtonElement>;
317
324
  onFocusCapture?: React.FocusEventHandler<HTMLButtonElement>;
318
325
  onBlurCapture?: React.FocusEventHandler<HTMLButtonElement>;
319
- onChange?: React.FormEventHandler<HTMLButtonElement>;
320
326
  onChangeCapture?: React.FormEventHandler<HTMLButtonElement>;
321
327
  onBeforeInput?: React.FormEventHandler<HTMLButtonElement>;
322
328
  onBeforeInputCapture?: React.FormEventHandler<HTMLButtonElement>;
@@ -451,12 +457,6 @@ export declare function withError(props: ModalReactProps): {
451
457
  onAnimationIterationCapture?: React.AnimationEventHandler<HTMLButtonElement>;
452
458
  onTransitionEnd?: React.TransitionEventHandler<HTMLButtonElement>;
453
459
  onTransitionEndCapture?: React.TransitionEventHandler<HTMLButtonElement>;
454
- autoFocus?: boolean;
455
- formAction?: string;
456
- formEncType?: string;
457
- formMethod?: string;
458
- formNoValidate?: boolean;
459
- formTarget?: string;
460
460
  };
461
461
  };
462
462
  export declare function withConfirm(props: ModalReactProps): {
@@ -6,6 +6,7 @@ import { BaseProps } from '../_base/baseComponent';
6
6
  export interface NavFooterProps extends BaseProps {
7
7
  collapseButton?: React.ReactNode;
8
8
  collapseText?: (collapsed?: boolean) => React.ReactNode;
9
+ onClick?: (event: React.MouseEvent) => void;
9
10
  }
10
11
  export default class NavFooter extends PureComponent<NavFooterProps> {
11
12
  static contextType: React.Context<NavContextType>;
@@ -15,9 +16,11 @@ export default class NavFooter extends PureComponent<NavFooterProps> {
15
16
  className: PropTypes.Requireable<string>;
16
17
  collapseButton: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
17
18
  collapseText: PropTypes.Requireable<(...args: any[]) => any>;
19
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
18
20
  };
19
21
  static defaultProps: {
20
22
  collapseButton: boolean;
23
+ onClick: (...args: any[]) => void;
21
24
  };
22
25
  context: NavContextType;
23
26
  static elementType: string;
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
+ var _noop2 = _interopRequireDefault(require("lodash/noop"));
9
+
8
10
  var _react = _interopRequireWildcard(require("react"));
9
11
 
10
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -19,12 +21,12 @@ require("@douyinfe/semi-foundation/lib/cjs/navigation/navigation.css");
19
21
 
20
22
  var _navContext = _interopRequireDefault(require("./nav-context"));
21
23
 
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
25
 
26
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
27
 
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
+
28
30
  class NavFooter extends _react.PureComponent {
29
31
  constructor() {
30
32
  super(...arguments);
@@ -59,7 +61,8 @@ class NavFooter extends _react.PureComponent {
59
61
  const {
60
62
  style,
61
63
  className,
62
- collapseButton
64
+ collapseButton,
65
+ onClick
63
66
  } = this.props;
64
67
  let {
65
68
  children
@@ -76,10 +79,15 @@ class NavFooter extends _react.PureComponent {
76
79
  const wrapCls = (0, _classnames.default)(className, `${_constants.cssClasses.PREFIX}-footer`, {
77
80
  [`${_constants.cssClasses.PREFIX}-footer-collapsed`]: isCollapsed
78
81
  });
79
- return /*#__PURE__*/_react.default.createElement("div", {
80
- className: wrapCls,
81
- style: style
82
- }, children);
82
+ return (
83
+ /*#__PURE__*/
84
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
85
+ _react.default.createElement("div", {
86
+ className: wrapCls,
87
+ style: style,
88
+ onClick: onClick
89
+ }, children)
90
+ );
83
91
  }
84
92
 
85
93
  }
@@ -91,9 +99,11 @@ NavFooter.propTypes = {
91
99
  style: _propTypes.default.object,
92
100
  className: _propTypes.default.string,
93
101
  collapseButton: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.bool]),
94
- collapseText: _propTypes.default.func
102
+ collapseText: _propTypes.default.func,
103
+ onClick: _propTypes.default.func
95
104
  };
96
105
  NavFooter.defaultProps = {
97
- collapseButton: false
106
+ collapseButton: false,
107
+ onClick: _noop2.default
98
108
  };
99
109
  NavFooter.elementType = "NavFooter";
@@ -19,9 +19,6 @@ export interface NavItemProps extends ItemProps, BaseProps {
19
19
  onClick?(clickItems: SelectedData): void;
20
20
  onMouseEnter?: React.MouseEventHandler<HTMLLIElement>;
21
21
  onMouseLeave?: React.MouseEventHandler<HTMLLIElement>;
22
- selected?: boolean;
23
- mode?: string;
24
- isInSubNav?: boolean;
25
22
  }
26
23
  export interface SelectedData extends SelectedItemProps<NavItemProps> {
27
24
  text?: React.ReactNode;
@@ -31,7 +28,6 @@ export interface NavItemState {
31
28
  }
32
29
  export default class NavItem extends BaseComponent<NavItemProps, NavItemState> {
33
30
  static contextType: React.Context<NavContextType>;
34
- static elementType: string;
35
31
  static propTypes: {
36
32
  text: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
37
33
  itemKey: PropTypes.Requireable<NonNullable<string | number>>;
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _isUndefined2 = _interopRequireDefault(require("lodash/isUndefined"));
9
-
10
8
  var _times2 = _interopRequireDefault(require("lodash/times"));
11
9
 
12
10
  var _noop2 = _interopRequireDefault(require("lodash/noop"));
@@ -123,28 +121,21 @@ class NavItem extends _baseComponent.default {
123
121
  notifyMouseLeave: function () {
124
122
  return _this.props.onMouseLeave(...arguments);
125
123
  },
126
- getIsCollapsed: () => this.props.isCollapsed || Boolean(this.context && this.context.isCollapsed),
127
- getSelected: () => this.props.selected || Boolean(this.context && this.context.selectedKeys && this.context.selectedKeys.includes(this.props.itemKey)),
128
- getIsOpen: () => Boolean(this.context && this.context.openKeys && this.context.openKeys.includes(this.props.itemKey)),
129
- getIsInSubNav: () => this.props.isInSubNav || Boolean(this.context && this.context.isInSubNav),
130
- getMode: () => {
131
- var _a, _b;
132
-
133
- return (_a = this.props.mode) !== null && _a !== void 0 ? _a : (_b = this.context) === null || _b === void 0 ? void 0 : _b.mode;
134
- }
124
+ getIsCollapsed: () => this.props.isCollapsed || Boolean(this.context && this.context.isCollapsed) || false,
125
+ getSelected: () => Boolean(this.context && this.context.selectedKeys && this.context.selectedKeys.includes(this.props.itemKey)),
126
+ getIsOpen: () => Boolean(this.context && this.context.openKeys && this.context.openKeys.includes(this.props.itemKey))
135
127
  });
136
128
  }
137
129
 
138
130
  renderIcon(icon, pos) {
139
131
  let isToggleIcon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
140
132
  let key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
141
- const mode = this.adapter.getMode();
142
133
 
143
134
  if (this.props.isSubNav) {
144
135
  return null;
145
136
  }
146
137
 
147
- if (!icon && mode === _constants.strings.MODE_HORIZONTAL) {
138
+ if (!icon && this.context.mode === _constants.strings.MODE_HORIZONTAL) {
148
139
  return null;
149
140
  }
150
141
 
@@ -167,8 +158,6 @@ class NavItem extends _baseComponent.default {
167
158
  }
168
159
 
169
160
  render() {
170
- var _a;
171
-
172
161
  const {
173
162
  text,
174
163
  children,
@@ -184,17 +173,16 @@ class NavItem extends _baseComponent.default {
184
173
  linkOptions,
185
174
  disabled,
186
175
  level = 0,
187
- tabIndex,
188
- mode: modeInProps
176
+ tabIndex
189
177
  } = this.props;
190
178
  const {
179
+ mode,
180
+ isInSubNav,
191
181
  prefixCls,
192
182
  limitIndent
193
183
  } = this.context;
194
184
  const isCollapsed = this.adapter.getIsCollapsed();
195
185
  const selected = this.adapter.getSelected();
196
- const isInSubNav = this.adapter.getIsInSubNav();
197
- const mode = this.adapter.getMode();
198
186
  let itemChildren = null;
199
187
 
200
188
  if (!(0, _isNullOrUndefined.default)(children)) {
@@ -242,20 +230,14 @@ class NavItem extends _baseComponent.default {
242
230
  onKeyDown: this.handleKeyPress
243
231
  }, itemChildren);
244
232
  } else {
245
- // isFirstLayer 用于决定 semi-navigation-first-layers(仅在 c2中使用) 是否生效
246
- // 当 this.props.isInSubNav 存在是,则由 this.props.isInSubNav 决定
247
- // 否则由 this.context?.mode 决定,因为第一层节点无context
248
- const isFirstLayer = !(0, _isUndefined2.default)(this.props.isInSubNav) ? !this.props.isInSubNav : (0, _isUndefined2.default)((_a = this.context) === null || _a === void 0 ? void 0 : _a.mode); // Items are divided into normal and sub-wrap
249
-
233
+ // Items are divided into normal and sub-wrap
250
234
  const popoverItemCls = (0, _classnames.default)(`${className || `${clsPrefix}-normal`}`, {
251
235
  [clsPrefix]: true,
252
236
  [`${clsPrefix}-sub`]: isSubNav,
253
237
  [`${clsPrefix}-selected`]: selected && !isSubNav,
254
238
  [`${clsPrefix}-collapsed`]: isCollapsed,
255
239
  [`${clsPrefix}-disabled`]: disabled,
256
- [`${clsPrefix}-has-link`]: typeof link === 'string',
257
- [`${_constants.cssClasses.PREFIX}-first-layer`]: isFirstLayer,
258
- [`${clsPrefix}-horizontal`]: modeInProps === _constants.strings.MODE_HORIZONTAL
240
+ [`${clsPrefix}-has-link`]: typeof link === 'string'
259
241
  });
260
242
  const ariaProps = {
261
243
  'aria-disabled': disabled
@@ -335,5 +317,4 @@ NavItem.defaultProps = {
335
317
  onMouseLeave: _noop2.default,
336
318
  disabled: false,
337
319
  tabIndex: 0
338
- };
339
- NavItem.elementType = 'Nav.Item';
320
+ };
@@ -4,10 +4,6 @@ import PropTypes from 'prop-types';
4
4
  import '@douyinfe/semi-foundation/lib/cjs/navigation/navigation.css';
5
5
  import SubNavFoundation, { SubNavAdapter } from '@douyinfe/semi-foundation/lib/cjs/navigation/subNavFoundation';
6
6
  import { NavContextType } from './nav-context';
7
- export interface ToggleIcon {
8
- open?: string;
9
- closed?: string;
10
- }
11
7
  export interface SubNavProps extends BaseProps {
12
8
  disabled?: boolean;
13
9
  dropdownStyle?: React.CSSProperties;
@@ -21,15 +17,12 @@ export interface SubNavProps extends BaseProps {
21
17
  onMouseEnter?: React.MouseEventHandler<HTMLLIElement>;
22
18
  onMouseLeave?: React.MouseEventHandler<HTMLLIElement>;
23
19
  text?: React.ReactNode;
24
- toggleIcon?: ToggleIcon;
25
- active?: boolean;
26
- mode?: string;
20
+ expandIcon?: React.ReactNode;
27
21
  }
28
22
  export interface SubNavState {
29
23
  isHovered: boolean;
30
24
  }
31
25
  export default class SubNav extends BaseComponent<SubNavProps, SubNavState> {
32
- static elementType: string;
33
26
  static contextType: React.Context<NavContextType>;
34
27
  static propTypes: {
35
28
  /**
@@ -56,10 +49,6 @@ export default class SubNav extends BaseComponent<SubNavProps, SubNavState> {
56
49
  * Nested child elements
57
50
  */
58
51
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
59
- /**
60
- * The icon name of the right control switch (on and off status)
61
- */
62
- toggleIcon: PropTypes.Requireable<any>;
63
52
  style: PropTypes.Requireable<object>;
64
53
  /**
65
54
  * Icon name on the left
@@ -73,7 +62,6 @@ export default class SubNav extends BaseComponent<SubNavProps, SubNavState> {
73
62
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
74
63
  disabled: PropTypes.Requireable<boolean>;
75
64
  level: PropTypes.Requireable<number>;
76
- active: PropTypes.Requireable<boolean>;
77
65
  };
78
66
  static defaultProps: {
79
67
  level: number;
@@ -81,12 +69,7 @@ export default class SubNav extends BaseComponent<SubNavProps, SubNavState> {
81
69
  isCollapsed: boolean;
82
70
  isOpen: boolean;
83
71
  maxHeight: number;
84
- toggleIcon: {
85
- open: JSX.Element;
86
- closed: JSX.Element;
87
- };
88
72
  disabled: boolean;
89
- active: boolean;
90
73
  };
91
74
  titleRef: React.RefObject<HTMLDivElement>;
92
75
  itemRef: React.RefObject<HTMLLIElement>;
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _isUndefined2 = _interopRequireDefault(require("lodash/isUndefined"));
9
-
10
8
  var _get2 = _interopRequireDefault(require("lodash/get"));
11
9
 
12
10
  var _times2 = _interopRequireDefault(require("lodash/times"));
@@ -131,29 +129,16 @@ class SubNav extends _baseComponent.default {
131
129
 
132
130
  return _this._invokeContextFunc('onClick', ...args);
133
131
  },
134
- getIsSelected: itemKey => this.props.active || Boolean(!(0, _isNullOrUndefined.default)(itemKey) && (0, _get2.default)(this.context, 'selectedKeys', []).includes(String(itemKey))),
135
- getIsOpen: () => this.props.isOpen || Boolean(this.context && this.context.openKeys && this.context.openKeys.includes(String(this.props.itemKey))),
136
- getIsCollapsed: () => {
137
- var _a;
138
-
139
- return this.props.isCollapsed || Boolean((_a = this.context) === null || _a === void 0 ? void 0 : _a.isCollapsed);
140
- },
141
- getMode: () => {
142
- var _a, _b;
143
-
144
- return (_a = this.props.mode) !== null && _a !== void 0 ? _a : (_b = this.context) === null || _b === void 0 ? void 0 : _b.mode;
145
- }
132
+ getIsSelected: itemKey => Boolean(!(0, _isNullOrUndefined.default)(itemKey) && (0, _get2.default)(this.context, 'selectedKeys', []).includes(String(itemKey))),
133
+ getIsOpen: () => Boolean(this.context && this.context.openKeys && this.context.openKeys.includes(String(this.props.itemKey)))
146
134
  });
147
135
  }
148
136
 
149
137
  renderIcon(icon, pos, withTransition) {
150
138
  let isToggleIcon = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
151
139
  let key = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
152
-
153
- var _a;
154
-
155
140
  const {
156
- prefixCls = _constants.cssClasses.PREFIX
141
+ prefixCls
157
142
  } = this.context;
158
143
  let iconSize = 'large';
159
144
 
@@ -161,15 +146,14 @@ class SubNav extends _baseComponent.default {
161
146
  iconSize = 'default';
162
147
  }
163
148
 
164
- const isOpen = this.adapter.getIsOpen();
165
149
  const className = (0, _classnames.default)(`${prefixCls}-item-icon`, {
166
- [`${prefixCls}-item-icon-toggle-${(_a = this.context.toggleIconPosition) !== null && _a !== void 0 ? _a : 'right'}`]: isToggleIcon,
167
- [`${prefixCls}-item-icon-info`]: !isToggleIcon,
168
- [`${prefixCls}-icon-rotate-${isOpen ? "180" : "0"}-no-transition`]: !withTransition && isToggleIcon
150
+ [`${prefixCls}-item-icon-toggle-${this.context.toggleIconPosition}`]: isToggleIcon,
151
+ [`${prefixCls}-item-icon-info`]: !isToggleIcon
169
152
  });
153
+ const isOpen = this.adapter.getIsOpen();
170
154
  const iconElem = /*#__PURE__*/_react.default.isValidElement(icon) ? withTransition ? /*#__PURE__*/_react.default.createElement(_cssAnimation.default, {
171
155
  animationState: isOpen ? "enter" : "leave",
172
- startClassName: `${prefixCls}-icon-rotate-${isOpen ? "180" : "0"}`
156
+ startClassName: `${_constants.cssClasses.PREFIX}-icon-rotate-${isOpen ? "180" : "0"}`
173
157
  }, _ref => {
174
158
  let {
175
159
  animationClassName
@@ -196,23 +180,21 @@ class SubNav extends _baseComponent.default {
196
180
  itemKey,
197
181
  indent,
198
182
  disabled,
199
- level
183
+ level,
184
+ expandIcon
200
185
  } = this.props;
201
186
  const {
187
+ mode,
202
188
  isInSubNav,
203
- prefixCls = _constants.cssClasses.PREFIX,
189
+ isCollapsed,
190
+ prefixCls,
204
191
  subNavMotion,
205
192
  limitIndent
206
193
  } = this.context;
207
- const isFirstLayer = (0, _isUndefined2.default)(this.context.mode);
208
- const mode = this.adapter.getMode();
209
194
  const isOpen = this.adapter.getIsOpen();
210
- const isCollapsed = this.adapter.getIsCollapsed();
211
195
  const titleCls = (0, _classnames.default)(`${prefixCls}-sub-title`, {
212
196
  [`${prefixCls}-sub-title-selected`]: this.adapter.getIsSelected(itemKey),
213
- [`${prefixCls}-sub-title-disabled`]: disabled,
214
- [`${prefixCls}-first-layer`]: isFirstLayer,
215
- [`${prefixCls}-sub-title-horizontal`]: mode === _constants.strings.MODE_HORIZONTAL
197
+ [`${prefixCls}-sub-title-disabled`]: disabled
216
198
  });
217
199
  let withTransition = false;
218
200
  let toggleIconType = '';
@@ -229,7 +211,7 @@ class SubNav extends _baseComponent.default {
229
211
  "aria-hidden": true
230
212
  });
231
213
  } else {
232
- toggleIconType = /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronDown, {
214
+ toggleIconType = expandIcon ? expandIcon : /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronDown, {
233
215
  "aria-hidden": true
234
216
  }); // Horizontal mode does not require animation fix#1198
235
217
  // withTransition = true;
@@ -239,7 +221,7 @@ class SubNav extends _baseComponent.default {
239
221
  withTransition = true;
240
222
  }
241
223
 
242
- toggleIconType = /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronDown, {
224
+ toggleIconType = expandIcon ? expandIcon : /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronDown, {
243
225
  "aria-hidden": true
244
226
  });
245
227
  }
@@ -253,7 +235,6 @@ class SubNav extends _baseComponent.default {
253
235
  }
254
236
 
255
237
  const isIconChevronRightShow = !isCollapsed && isInSubNav && mode === _constants.strings.MODE_HORIZONTAL || isCollapsed && isInSubNav;
256
- const toggleIconPositionLeft = this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_LEFT;
257
238
 
258
239
  const titleDiv = /*#__PURE__*/_react.default.createElement("div", {
259
240
  role: "menuitem",
@@ -266,9 +247,9 @@ class SubNav extends _baseComponent.default {
266
247
  "aria-expanded": isOpen ? 'true' : 'false'
267
248
  }, /*#__PURE__*/_react.default.createElement("div", {
268
249
  className: `${prefixCls}-item-inner`
269
- }, placeholderIcons, toggleIconPositionLeft && this.renderIcon(toggleIconType, _constants.strings.ICON_POS_RIGHT, withTransition, true, 'key-toggle-position-left'), icon || indent || isInSubNav && mode !== _constants.strings.MODE_HORIZONTAL ? this.renderIcon(icon, _constants.strings.ICON_POS_LEFT, false, false, 'key-inSubNav-position-left') : null, /*#__PURE__*/_react.default.createElement("span", {
250
+ }, placeholderIcons, this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_LEFT && this.renderIcon(toggleIconType, _constants.strings.ICON_POS_RIGHT, withTransition, true, 'key-toggle-position-left'), icon || indent || isInSubNav && mode !== _constants.strings.MODE_HORIZONTAL ? this.renderIcon(icon, _constants.strings.ICON_POS_LEFT, false, false, 'key-inSubNav-position-left') : null, /*#__PURE__*/_react.default.createElement("span", {
270
251
  className: `${prefixCls}-item-text`
271
- }, text), !toggleIconPositionLeft && this.renderIcon(toggleIconType, _constants.strings.ICON_POS_RIGHT, withTransition, true, 'key-toggle-position-right')));
252
+ }, text), this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_RIGHT && this.renderIcon(toggleIconType, _constants.strings.ICON_POS_RIGHT, withTransition, true, 'key-toggle-position-right')));
272
253
 
273
254
  return titleDiv;
274
255
  }
@@ -279,12 +260,12 @@ class SubNav extends _baseComponent.default {
279
260
  maxHeight
280
261
  } = this.props;
281
262
  const {
263
+ isCollapsed,
264
+ mode,
282
265
  subNavMotion,
283
- prefixCls = _constants.cssClasses.PREFIX
266
+ prefixCls
284
267
  } = this.context;
285
- const isCollapsed = this.adapter.getIsCollapsed();
286
268
  const isOpen = this.adapter.getIsOpen();
287
- const mode = this.adapter.getMode();
288
269
  const isHorizontal = mode === _constants.strings.MODE_HORIZONTAL;
289
270
  const subNavCls = (0, _classnames.default)(`${prefixCls}-sub`, {
290
271
  [`${prefixCls}-sub-open`]: isOpen,
@@ -315,14 +296,14 @@ class SubNav extends _baseComponent.default {
315
296
  disabled
316
297
  } = this.props;
317
298
  const {
299
+ mode,
318
300
  isInSubNav,
301
+ isCollapsed,
319
302
  subNavCloseDelay,
320
303
  subNavOpenDelay,
321
- prefixCls = _constants.cssClasses.PREFIX,
304
+ prefixCls,
322
305
  getPopupContainer
323
306
  } = this.context;
324
- const isCollapsed = this.adapter.getIsCollapsed();
325
- const mode = this.adapter.getMode();
326
307
  const isOpen = this.adapter.getIsOpen();
327
308
  const openKeysIsControlled = this.adapter.getOpenKeysIsControlled();
328
309
  const subNavCls = (0, _classnames.default)({
@@ -367,10 +348,10 @@ class SubNav extends _baseComponent.default {
367
348
  text
368
349
  } = this.props;
369
350
  const {
370
- prefixCls = _constants.cssClasses.PREFIX
351
+ mode,
352
+ isCollapsed,
353
+ prefixCls
371
354
  } = this.context;
372
- const mode = this.adapter.getMode();
373
- const isCollapsed = this.adapter.getIsCollapsed();
374
355
  let titleDiv = this.renderTitleDiv();
375
356
  const subUl = this.renderSubUl(); // When mode=horizontal, it is displayed in Dropdown
376
357
 
@@ -388,11 +369,9 @@ class SubNav extends _baseComponent.default {
388
369
  onMouseEnter: onMouseEnter,
389
370
  onMouseLeave: onMouseLeave,
390
371
  disabled: disabled,
391
- text: text,
392
- mode: mode
372
+ text: text
393
373
  }, /*#__PURE__*/_react.default.createElement(_navContext.default.Provider, {
394
374
  value: Object.assign(Object.assign({}, this.context), {
395
- mode: mode,
396
375
  isInSubNav: true
397
376
  })
398
377
  }, titleDiv, subUl));
@@ -432,14 +411,6 @@ SubNav.propTypes = {
432
411
  * Nested child elements
433
412
  */
434
413
  children: _propTypes.default.node,
435
-
436
- /**
437
- * The icon name of the right control switch (on and off status)
438
- */
439
- toggleIcon: _propTypes.default.oneOfType([_propTypes.default.any, _propTypes.default.shape({
440
- open: _propTypes.default.string,
441
- closed: _propTypes.default.string
442
- })]),
443
414
  style: _propTypes.default.object,
444
415
 
445
416
  /**
@@ -455,8 +426,7 @@ SubNav.propTypes = {
455
426
  onMouseLeave: _propTypes.default.func,
456
427
  // Is it disabled
457
428
  disabled: _propTypes.default.bool,
458
- level: _propTypes.default.number,
459
- active: _propTypes.default.bool
429
+ level: _propTypes.default.number
460
430
  };
461
431
  SubNav.defaultProps = {
462
432
  level: 0,
@@ -464,15 +434,5 @@ SubNav.defaultProps = {
464
434
  isCollapsed: false,
465
435
  isOpen: false,
466
436
  maxHeight: _constants.numbers.DEFAULT_SUBNAV_MAX_HEIGHT,
467
- toggleIcon: {
468
- open: /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronUp, {
469
- "aria-hidden": true
470
- }),
471
- closed: /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronDown, {
472
- "aria-hidden": true
473
- })
474
- },
475
- disabled: false,
476
- active: false
477
- };
478
- SubNav.elementType = 'Nav.Sub';
437
+ disabled: false
438
+ };
@@ -11,7 +11,7 @@ export type { CollapseButtonProps } from './CollapseButton';
11
11
  export type { NavFooterProps } from './Footer';
12
12
  export type { NavHeaderProps } from './Header';
13
13
  export type { NavItemProps } from './Item';
14
- export type { ToggleIcon, SubNavProps } from './SubNav';
14
+ export type { SubNavProps } from './SubNav';
15
15
  export declare type Mode = 'vertical' | 'horizontal';
16
16
  export interface OnSelectedData {
17
17
  itemKey: React.ReactText;
@@ -33,6 +33,7 @@ export interface NavProps extends BaseProps {
33
33
  defaultIsCollapsed?: boolean;
34
34
  defaultOpenKeys?: React.ReactText[];
35
35
  defaultSelectedKeys?: React.ReactText[];
36
+ expandIcon?: React.ReactNode;
36
37
  footer?: React.ReactNode | NavFooterProps;
37
38
  header?: React.ReactNode | NavHeaderProps;
38
39
  isCollapsed?: boolean;
@@ -86,9 +87,11 @@ declare class Nav extends BaseComponent<NavProps, NavState> {
86
87
  static Header: typeof Header;
87
88
  static Footer: typeof Footer;
88
89
  static propTypes: {
90
+ collapseIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
89
91
  defaultOpenKeys: PropTypes.Requireable<NonNullable<string | number>[]>;
90
92
  openKeys: PropTypes.Requireable<NonNullable<string | number>[]>;
91
93
  defaultSelectedKeys: PropTypes.Requireable<NonNullable<string | number>[]>;
94
+ expandIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
92
95
  selectedKeys: PropTypes.Requireable<NonNullable<string | number>[]>;
93
96
  mode: PropTypes.Requireable<string>;
94
97
  onSelect: PropTypes.Requireable<(...args: any[]) => any>;