@douyinfe/semi-ui 2.10.2 → 2.11.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 (143) hide show
  1. package/anchor/link.tsx +2 -2
  2. package/autoComplete/index.tsx +3 -3
  3. package/avatar/interface.ts +2 -2
  4. package/badge/index.tsx +1 -1
  5. package/banner/index.tsx +4 -4
  6. package/breadcrumb/bread-context.tsx +1 -1
  7. package/card/cardGroup.tsx +1 -1
  8. package/card/index.tsx +1 -1
  9. package/cascader/index.tsx +4 -4
  10. package/checkbox/checkbox.tsx +16 -6
  11. package/collapse/index.tsx +1 -1
  12. package/collapse/item.tsx +1 -1
  13. package/collapsible/index.tsx +1 -1
  14. package/datePicker/_story/datePicker.stories.js +48 -1
  15. package/datePicker/_story/v2/AutoFillTime.jsx +37 -0
  16. package/datePicker/_story/v2/InputFormat.jsx +29 -0
  17. package/datePicker/_story/v2/InputFormatConfirm.jsx +44 -0
  18. package/datePicker/_story/v2/InputFormatDisabled.jsx +27 -0
  19. package/datePicker/_story/v2/index.js +4 -0
  20. package/datePicker/dateInput.tsx +7 -0
  21. package/datePicker/datePicker.tsx +7 -11
  22. package/datePicker/monthsGrid.tsx +2 -1
  23. package/descriptions/item.tsx +1 -1
  24. package/dist/umd/semi-ui.js +521 -197
  25. package/dist/umd/semi-ui.js.map +1 -1
  26. package/dist/umd/semi-ui.min.js +1 -1
  27. package/dist/umd/semi-ui.min.js.map +1 -1
  28. package/empty/index.tsx +1 -1
  29. package/form/errorMessage.tsx +1 -1
  30. package/form/interface.ts +1 -1
  31. package/form/label.tsx +1 -1
  32. package/form/section.tsx +2 -2
  33. package/form/slot.tsx +1 -1
  34. package/layout/Sider.tsx +1 -1
  35. package/lib/cjs/anchor/link.d.ts +2 -2
  36. package/lib/cjs/autoComplete/index.d.ts +1 -1
  37. package/lib/cjs/autoComplete/index.js +1 -1
  38. package/lib/cjs/avatar/interface.d.ts +2 -2
  39. package/lib/cjs/badge/index.d.ts +1 -1
  40. package/lib/cjs/banner/index.d.ts +4 -4
  41. package/lib/cjs/breadcrumb/bread-context.d.ts +1 -1
  42. package/lib/cjs/card/cardGroup.d.ts +1 -1
  43. package/lib/cjs/card/index.d.ts +1 -1
  44. package/lib/cjs/cascader/index.d.ts +1 -1
  45. package/lib/cjs/checkbox/checkbox.d.ts +4 -0
  46. package/lib/cjs/checkbox/checkbox.js +23 -11
  47. package/lib/cjs/collapse/index.d.ts +1 -1
  48. package/lib/cjs/collapse/item.d.ts +1 -1
  49. package/lib/cjs/collapsible/index.d.ts +1 -1
  50. package/lib/cjs/datePicker/dateInput.d.ts +1 -0
  51. package/lib/cjs/datePicker/dateInput.js +5 -3
  52. package/lib/cjs/datePicker/datePicker.js +9 -12
  53. package/lib/cjs/datePicker/monthsGrid.js +2 -1
  54. package/lib/cjs/descriptions/item.d.ts +1 -1
  55. package/lib/cjs/empty/index.d.ts +1 -1
  56. package/lib/cjs/form/errorMessage.d.ts +1 -1
  57. package/lib/cjs/form/interface.d.ts +1 -1
  58. package/lib/cjs/form/label.d.ts +1 -1
  59. package/lib/cjs/form/section.d.ts +2 -2
  60. package/lib/cjs/form/slot.d.ts +1 -1
  61. package/lib/cjs/layout/Sider.d.ts +1 -1
  62. package/lib/cjs/list/index.d.ts +1 -1
  63. package/lib/cjs/list/item.d.ts +1 -1
  64. package/lib/cjs/modal/Modal.d.ts +5 -5
  65. package/lib/cjs/modal/ModalContent.d.ts +1 -1
  66. package/lib/cjs/modal/confirm.d.ts +4 -2
  67. package/lib/cjs/modal/useModal/index.d.ts +16 -23
  68. package/lib/cjs/navigation/Footer.d.ts +1 -1
  69. package/lib/cjs/radio/radio.d.ts +4 -0
  70. package/lib/cjs/radio/radio.js +26 -12
  71. package/lib/cjs/radio/radioGroup.d.ts +1 -1
  72. package/lib/cjs/select/index.d.ts +1 -1
  73. package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -1
  74. package/lib/cjs/table/interface.d.ts +1 -1
  75. package/lib/cjs/tag/group.d.ts +3 -3
  76. package/lib/cjs/timeline/index.d.ts +1 -1
  77. package/lib/cjs/timeline/item.d.ts +1 -1
  78. package/lib/cjs/tooltip/index.d.ts +1 -0
  79. package/lib/cjs/tooltip/index.js +6 -1
  80. package/lib/es/anchor/link.d.ts +2 -2
  81. package/lib/es/autoComplete/index.d.ts +1 -1
  82. package/lib/es/autoComplete/index.js +1 -1
  83. package/lib/es/avatar/interface.d.ts +2 -2
  84. package/lib/es/badge/index.d.ts +1 -1
  85. package/lib/es/banner/index.d.ts +4 -4
  86. package/lib/es/breadcrumb/bread-context.d.ts +1 -1
  87. package/lib/es/card/cardGroup.d.ts +1 -1
  88. package/lib/es/card/index.d.ts +1 -1
  89. package/lib/es/cascader/index.d.ts +1 -1
  90. package/lib/es/checkbox/checkbox.d.ts +4 -0
  91. package/lib/es/checkbox/checkbox.js +23 -11
  92. package/lib/es/collapse/index.d.ts +1 -1
  93. package/lib/es/collapse/item.d.ts +1 -1
  94. package/lib/es/collapsible/index.d.ts +1 -1
  95. package/lib/es/datePicker/dateInput.d.ts +1 -0
  96. package/lib/es/datePicker/dateInput.js +5 -3
  97. package/lib/es/datePicker/datePicker.js +9 -12
  98. package/lib/es/datePicker/monthsGrid.js +2 -1
  99. package/lib/es/descriptions/item.d.ts +1 -1
  100. package/lib/es/empty/index.d.ts +1 -1
  101. package/lib/es/form/errorMessage.d.ts +1 -1
  102. package/lib/es/form/interface.d.ts +1 -1
  103. package/lib/es/form/label.d.ts +1 -1
  104. package/lib/es/form/section.d.ts +2 -2
  105. package/lib/es/form/slot.d.ts +1 -1
  106. package/lib/es/layout/Sider.d.ts +1 -1
  107. package/lib/es/list/index.d.ts +1 -1
  108. package/lib/es/list/item.d.ts +1 -1
  109. package/lib/es/modal/Modal.d.ts +5 -5
  110. package/lib/es/modal/ModalContent.d.ts +1 -1
  111. package/lib/es/modal/confirm.d.ts +4 -2
  112. package/lib/es/modal/confirm.js +1 -1
  113. package/lib/es/modal/useModal/index.d.ts +16 -23
  114. package/lib/es/navigation/Footer.d.ts +1 -1
  115. package/lib/es/radio/radio.d.ts +4 -0
  116. package/lib/es/radio/radio.js +26 -12
  117. package/lib/es/radio/radioGroup.d.ts +1 -1
  118. package/lib/es/select/index.d.ts +1 -1
  119. package/lib/es/sideSheet/SideSheetContent.d.ts +1 -1
  120. package/lib/es/table/interface.d.ts +1 -1
  121. package/lib/es/tag/group.d.ts +3 -3
  122. package/lib/es/timeline/index.d.ts +1 -1
  123. package/lib/es/timeline/item.d.ts +1 -1
  124. package/lib/es/tooltip/index.d.ts +1 -0
  125. package/lib/es/tooltip/index.js +6 -1
  126. package/list/index.tsx +1 -1
  127. package/list/item.tsx +1 -1
  128. package/modal/Modal.tsx +7 -7
  129. package/modal/ModalContent.tsx +1 -1
  130. package/modal/confirm.tsx +10 -11
  131. package/modal/useModal/index.tsx +9 -1
  132. package/navigation/Footer.tsx +2 -2
  133. package/package.json +9 -9
  134. package/radio/radio.tsx +17 -7
  135. package/radio/radioGroup.tsx +1 -1
  136. package/select/index.tsx +8 -8
  137. package/sideSheet/SideSheetContent.tsx +1 -1
  138. package/table/interface.ts +1 -1
  139. package/tag/group.tsx +4 -4
  140. package/timeline/index.tsx +1 -1
  141. package/timeline/item.tsx +1 -1
  142. package/tooltip/index.tsx +5 -1
  143. package/treeSelect/index.tsx +1 -1
package/select/index.tsx CHANGED
@@ -51,7 +51,7 @@ type ExcludeInputType = {
51
51
  type OnChangeValueType = string | number | Record<string, any>;
52
52
  export interface optionRenderProps {
53
53
  key?: any;
54
- label?: string | React.ReactNode | number;
54
+ label?: React.ReactNode;
55
55
  value?: string | number;
56
56
  style?: React.CSSProperties;
57
57
  className?: string;
@@ -447,11 +447,11 @@ class Select extends BaseComponent<SelectProps, SelectState> {
447
447
  let options = [];
448
448
  const { optionList } = this.props;
449
449
  if (optionList && optionList.length) {
450
- options = optionList.map((itemOpt, index) => ({
451
- _show: true,
452
- _selected: false,
450
+ options = optionList.map((itemOpt, index) => ({
451
+ _show: true,
452
+ _selected: false,
453
453
  _scrollIndex: index,
454
- ...itemOpt
454
+ ...itemOpt
455
455
  }));
456
456
  optionGroups[0] = { children: options, label: '' };
457
457
  } else {
@@ -773,7 +773,7 @@ class Select extends BaseComponent<SelectProps, SelectState> {
773
773
  const groupContent = <OptionGroup {...parentGroup} key={parentGroup.label} />;
774
774
  groupStatus.set(parentGroup.label, true);
775
775
  content.push(groupContent);
776
- }
776
+ }
777
777
  content.push(optionContent);
778
778
  });
779
779
 
@@ -901,7 +901,7 @@ class Select extends BaseComponent<SelectProps, SelectState> {
901
901
  content: optionNode.label,
902
902
  });
903
903
  }
904
-
904
+
905
905
  const mapItems = maxTagCount ? selectedItems.slice(0, maxTagCount) : selectedItems; // no need to render rest tag when maxTagCount is setting
906
906
 
907
907
  const tags = mapItems.map((item, i) => {
@@ -948,7 +948,7 @@ class Select extends BaseComponent<SelectProps, SelectState> {
948
948
 
949
949
  const NotOneLine = !maxTagCount; // Multiple lines (that is, do not set maxTagCount), do not use TagGroup, directly traverse with Tag, otherwise Input cannot follow the correct position
950
950
 
951
- const tagContent = NotOneLine ? tags : <TagGroup tagList={tags} maxTagCount={n} restCount={maxTagCount ? selectedItems.length - maxTagCount : undefined} size="large" mode="custom" />;
951
+ const tagContent = NotOneLine ? tags : <TagGroup<"custom"> tagList={tags} maxTagCount={n} restCount={maxTagCount ? selectedItems.length - maxTagCount : undefined} size="large" mode="custom" />;
952
952
 
953
953
  return (
954
954
  <>
@@ -23,7 +23,7 @@ export interface SideSheetContentProps {
23
23
  style: CSSProperties;
24
24
  bodyStyle?: CSSProperties;
25
25
  className: string;
26
- children?: React.ReactNode | undefined;
26
+ children?: React.ReactNode;
27
27
  footer?: React.ReactNode;
28
28
  'aria-label'?: string;
29
29
  }
@@ -240,7 +240,7 @@ export type RowSelectionOnSelect<RecordType> = (
240
240
  nativeEvent?: React.MouseEvent
241
241
  ) => void;
242
242
  export type RowSelectionOnSelectAll<RecordType> = (selected?: boolean, selectedRows?: RecordType[], changedRows?: RecordType[]) => void;
243
- export type ExpandIcon = ((expanded?: boolean) => React.ReactNode) | React.ReactNode | boolean;
243
+ export type ExpandIcon = ((expanded?: boolean) => React.ReactNode) | React.ReactNode;
244
244
  export type ExpandedRowRender<RecordType> = (record?: RecordType, index?: number, expanded?: boolean) => React.ReactNode;
245
245
  export type Footer<RecordType> = ReactNode | ((pageData?: RecordType[]) => React.ReactNode);
246
246
  export type FormatPageText = ((pageInfo?: { currentStart?: number; currentEnd?: number; total?: number }) => React.ReactNode) | boolean;
package/tag/group.tsx CHANGED
@@ -10,12 +10,12 @@ const prefixCls = cssClasses.PREFIX;
10
10
  const tagSize = strings.TAG_SIZE;
11
11
  const avatarShapeSet = strings.AVATAR_SHAPE;
12
12
 
13
- export interface TagGroupProps {
13
+ export interface TagGroupProps<T> {
14
14
  style?: React.CSSProperties;
15
15
  className?: string;
16
16
  maxTagCount?: number;
17
17
  restCount?: number;
18
- tagList?: (TagProps | React.ReactNode)[];
18
+ tagList?: (T extends 'custom' ? React.ReactNode : TagProps)[];
19
19
  size?: 'small' | 'large';
20
20
  showPopover?: boolean;
21
21
  popoverProps?: PopoverProps;
@@ -23,7 +23,7 @@ export interface TagGroupProps {
23
23
  mode?: string;
24
24
  }
25
25
 
26
- export default class TagGroup extends PureComponent<TagGroupProps> {
26
+ export default class TagGroup<T> extends PureComponent<TagGroupProps<T>> {
27
27
  static defaultProps = {
28
28
  style: {},
29
29
  className: '',
@@ -84,7 +84,7 @@ export default class TagGroup extends PureComponent<TagGroupProps> {
84
84
  let renderTags: (Tag | React.ReactNode)[] = tags;
85
85
 
86
86
  const normalTags: (Tag | React.ReactNode)[] = tags.slice(0, maxTagCount);
87
- const restTags = tags.slice(maxTagCount) as React.ReactNode;
87
+ const restTags = tags.slice(maxTagCount) as React.ReactNode;
88
88
  let nTag = null;
89
89
  if (n > 0) {
90
90
  nTag = this.renderNTag(n, restTags);
@@ -17,7 +17,7 @@ export interface TimelineProps extends Pick<React.AriaAttributes, 'aria-label'>
17
17
  className?: string;
18
18
  style?: React.CSSProperties;
19
19
  dataSource?: Data[];
20
- children?: React.ReactNode | undefined;
20
+ children?: React.ReactNode;
21
21
  }
22
22
 
23
23
  const prefixCls = cssClasses.PREFIX;
package/timeline/item.tsx CHANGED
@@ -7,7 +7,7 @@ import '@douyinfe/semi-foundation/timeline/timeline.scss';
7
7
 
8
8
  export interface TimelineItemProps {
9
9
  color?: string;
10
- children?: React.ReactNode | undefined;
10
+ children?: React.ReactNode;
11
11
  time?: React.ReactNode;
12
12
  type?: 'default' | 'ongoing' | 'success' | 'warning' | 'error';
13
13
  dot?: React.ReactNode;
package/tooltip/index.tsx CHANGED
@@ -75,6 +75,7 @@ export interface TooltipProps extends BaseProps {
75
75
  guardFocus?: boolean;
76
76
  returnFocusOnClose?: boolean;
77
77
  onEscKeyDown?: (e: React.KeyboardEvent) => void;
78
+ wrapperId?: string;
78
79
  }
79
80
  interface TooltipState {
80
81
  visible: boolean;
@@ -193,7 +194,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
193
194
  placement: props.position || 'top',
194
195
  transitionStyle: {},
195
196
  isPositionUpdated: false,
196
- id: getUuidShort(), // auto generate id, will be used by children.aria-describedby & content.id, improve a11y
197
+ id: props.wrapperId, // auto generate id, will be used by children.aria-describedby & content.id, improve a11y
197
198
  };
198
199
  this.foundation = new TooltipFoundation(this.adapter);
199
200
  this.eventManager = new Event();
@@ -428,6 +429,9 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
428
429
  },
429
430
  notifyEscKeydown: (event: React.KeyboardEvent) => {
430
431
  this.props.onEscKeyDown(event);
432
+ },
433
+ setId: () => {
434
+ this.setState({ id: getUuidShort() });
431
435
  }
432
436
  };
433
437
  }
@@ -826,7 +826,7 @@ class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState> {
826
826
  const tagList = this.renderTagList();
827
827
  // mode=custom to return tagList directly
828
828
  return (
829
- <TagGroup
829
+ <TagGroup<'custom'>
830
830
  maxTagCount={maxTagCount}
831
831
  tagList={tagList}
832
832
  size="large"