@douyinfe/semi-ui 2.23.4 → 2.24.0-alpha.1

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.
@@ -128,7 +128,7 @@ declare class Form<Values extends Record<string, any> = any> extends BaseCompone
128
128
  preventScroll?: boolean;
129
129
  showRestTagsPopover?: boolean;
130
130
  restTagsPopoverProps?: import("../popover").PopoverProps;
131
- } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
131
+ } & Pick<import("../tooltip").TooltipProps, "getPopupContainer" | "stopPropagation" | "motion" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
132
132
  static Checkbox: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox").CheckboxProps & import("./interface").RCIncludeType>;
133
133
  static CheckboxGroup: React.ComponentType<import("utility-types").Subtract<import("../checkbox").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
134
134
  static Radio: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../radio").RadioProps & import("./interface").RCIncludeType>;
@@ -76,7 +76,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
76
76
  preventScroll?: boolean;
77
77
  showRestTagsPopover?: boolean;
78
78
  restTagsPopoverProps?: import("../popover").PopoverProps;
79
- } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
79
+ } & Pick<import("../tooltip").TooltipProps, "getPopupContainer" | "stopPropagation" | "motion" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
80
80
  declare const FormCheckboxGroup: import("react").ComponentType<import("utility-types").Subtract<import("../checkbox/checkboxGroup").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
81
81
  declare const FormCheckbox: import("react").ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox/checkbox").CheckboxProps & import("./interface").RCIncludeType>;
82
82
  declare const FormRadioGroup: import("react").ComponentType<import("utility-types").Subtract<import("../radio/radioGroup").RadioGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
@@ -432,7 +432,7 @@ function withField(Component, opts) {
432
432
  const extraTextId = "".concat(a11yId, "-extraText");
433
433
  const errorMessageId = "".concat(a11yId, "-errormessage");
434
434
 
435
- let FieldComponent = (() => {
435
+ const FieldComponent = () => {
436
436
  // prefer to use validateStatus which pass by user throught props
437
437
  let blockStatus = validateStatus ? validateStatus : status;
438
438
  const extraCls = (0, _classnames.default)("".concat(prefix, "-field-extra"), {
@@ -552,17 +552,17 @@ function withField(Component, opts) {
552
552
  "x-field-id": field,
553
553
  "x-extra-pos": mergeExtraPos
554
554
  }, withCol ? withColContent : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, labelContent, fieldMainContent));
555
- })(); // !important optimization
555
+ }; // !important optimization
556
556
 
557
557
 
558
558
  const shouldUpdate = [...Object.values(fieldState), ...Object.values(props), field, mergeLabelPos, mergeLabelAlign, formProps.disabled];
559
559
 
560
560
  if (options.shouldMemo) {
561
561
  // eslint-disable-next-line react-hooks/exhaustive-deps
562
- return (0, _react.useMemo)(() => FieldComponent, [...shouldUpdate]);
562
+ return (0, _react.useMemo)(FieldComponent, [...shouldUpdate]);
563
563
  } else {
564
564
  // Some Custom Component with inner state shouldn't be memo, otherwise the component will not updated when the internal state is updated
565
- return FieldComponent;
565
+ return FieldComponent();
566
566
  }
567
567
  };
568
568
 
@@ -4,4 +4,4 @@ import Preview from "./preview";
4
4
  import '@douyinfe/semi-foundation/lib/cjs/image/image.css';
5
5
  export default Image;
6
6
  export { PreviewInner, Preview, };
7
- export { ImageProps, PreviewImageProps, PreviewProps, } from "./interface";
7
+ export type { ImageProps, PreviewImageProps, PreviewProps, } from "./interface";
@@ -69,5 +69,5 @@ export default class NavItem extends BaseComponent<NavItemProps, NavItemState> {
69
69
  wrapTooltip: (node: React.ReactNode) => JSX.Element;
70
70
  handleClick: (e: React.MouseEvent) => void;
71
71
  handleKeyPress: (e: React.KeyboardEvent) => void;
72
- render(): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
72
+ render(): React.ReactNode;
73
73
  }
@@ -269,6 +269,15 @@ class NavItem extends _baseComponent.default {
269
269
  itemDom = this.wrapTooltip(itemDom);
270
270
  }
271
271
 
272
+ if (typeof this.context.renderWrapper === 'function') {
273
+ return this.context.renderWrapper({
274
+ itemElement: itemDom,
275
+ isSubNav: isSubNav,
276
+ isInSubNav: isInSubNav,
277
+ props: this.props
278
+ });
279
+ }
280
+
272
281
  return itemDom;
273
282
  }
274
283
 
@@ -1,5 +1,5 @@
1
1
  import BaseComponent, { BaseProps } from '../_base/baseComponent';
2
- import React from 'react';
2
+ import React, { ReactElement, ReactNode } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { NavigationAdapter } from '@douyinfe/semi-foundation/lib/cjs/navigation/foundation';
5
5
  import SubNav, { SubNavProps } from './SubNav';
@@ -63,6 +63,12 @@ export interface NavProps extends BaseProps {
63
63
  isOpen: boolean;
64
64
  }) => void;
65
65
  onSelect?: (data: OnSelectedData) => void;
66
+ renderWrapper?: ({ itemElement, isSubNav, isInSubNav, props }: {
67
+ itemElement: ReactElement;
68
+ isInSubNav: boolean;
69
+ isSubNav: boolean;
70
+ props: NavItemProps | SubNavProps;
71
+ }) => ReactNode;
66
72
  }
67
73
  export interface NavState {
68
74
  isCollapsed: boolean;
@@ -234,7 +234,8 @@ class Nav extends _baseComponent.default {
234
234
  footer,
235
235
  header,
236
236
  toggleIconPosition,
237
- limitIndent
237
+ limitIndent,
238
+ renderWrapper
238
239
  } = this.props;
239
240
  const {
240
241
  selectedKeys,
@@ -341,7 +342,8 @@ class Nav extends _baseComponent.default {
341
342
  locale,
342
343
  prefixCls,
343
344
  toggleIconPosition,
344
- limitIndent
345
+ limitIndent,
346
+ renderWrapper
345
347
  }
346
348
  }, /*#__PURE__*/_react.default.createElement("div", {
347
349
  className: finalCls,
@@ -18,6 +18,7 @@ export interface NavContextType {
18
18
  subNavCloseDelay?: NavProps['subNavCloseDelay'];
19
19
  subNavOpenDelay?: NavProps['subNavOpenDelay'];
20
20
  canUpdateOpenKeys?: boolean;
21
+ renderWrapper?: NavProps['renderWrapper'];
21
22
  }
22
23
  declare const NavContext: React.Context<NavContextType>;
23
24
  export default NavContext;
@@ -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 | 6 | 5>;
40
+ heading: PropTypes.Requireable<4 | 2 | 1 | 3 | 6 | 5>;
41
41
  style: PropTypes.Requireable<object>;
42
42
  className: PropTypes.Requireable<string>;
43
43
  component: PropTypes.Requireable<string>;
@@ -3,12 +3,12 @@ import PropTypes from 'prop-types';
3
3
  import UploadFoundation from '@douyinfe/semi-foundation/lib/cjs/upload/foundation';
4
4
  import FileCard from './fileCard';
5
5
  import BaseComponent from '../_base/baseComponent';
6
- import { FileItem, RenderFileItemProps, UploadListType, PromptPositionType, BeforeUploadProps, AfterUploadProps, OnChangeProps, customRequestArgs, CustomError } from './interface';
6
+ import type { FileItem, RenderFileItemProps, UploadListType, PromptPositionType, BeforeUploadProps, AfterUploadProps, OnChangeProps, customRequestArgs, CustomError } from './interface';
7
7
  import { Locale } from '../locale/interface';
8
8
  import '@douyinfe/semi-foundation/lib/cjs/upload/upload.css';
9
9
  import type { CustomFile, UploadAdapter, BeforeUploadObjectResult, AfterUploadResult } from '@douyinfe/semi-foundation/lib/cjs/upload/foundation';
10
10
  import type { ValidateStatus } from '../_base/baseComponent';
11
- export { FileItem, RenderFileItemProps, UploadListType, PromptPositionType, BeforeUploadProps, AfterUploadProps, OnChangeProps, customRequestArgs, CustomError, BeforeUploadObjectResult, AfterUploadResult, };
11
+ export type { FileItem, RenderFileItemProps, UploadListType, PromptPositionType, BeforeUploadProps, AfterUploadProps, OnChangeProps, customRequestArgs, CustomError, BeforeUploadObjectResult, AfterUploadResult, };
12
12
  export interface UploadProps {
13
13
  accept?: string;
14
14
  action: string;
@@ -128,7 +128,7 @@ declare class Form<Values extends Record<string, any> = any> extends BaseCompone
128
128
  preventScroll?: boolean;
129
129
  showRestTagsPopover?: boolean;
130
130
  restTagsPopoverProps?: import("../popover").PopoverProps;
131
- } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
131
+ } & Pick<import("../tooltip").TooltipProps, "getPopupContainer" | "stopPropagation" | "motion" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
132
132
  static Checkbox: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox").CheckboxProps & import("./interface").RCIncludeType>;
133
133
  static CheckboxGroup: React.ComponentType<import("utility-types").Subtract<import("../checkbox").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
134
134
  static Radio: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../radio").RadioProps & import("./interface").RCIncludeType>;
@@ -76,7 +76,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
76
76
  preventScroll?: boolean;
77
77
  showRestTagsPopover?: boolean;
78
78
  restTagsPopoverProps?: import("../popover").PopoverProps;
79
- } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
79
+ } & Pick<import("../tooltip").TooltipProps, "getPopupContainer" | "stopPropagation" | "motion" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
80
80
  declare const FormCheckboxGroup: import("react").ComponentType<import("utility-types").Subtract<import("../checkbox/checkboxGroup").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
81
81
  declare const FormCheckbox: import("react").ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox/checkbox").CheckboxProps & import("./interface").RCIncludeType>;
82
82
  declare const FormRadioGroup: import("react").ComponentType<import("utility-types").Subtract<import("../radio/radioGroup").RadioGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
@@ -407,7 +407,7 @@ function withField(Component, opts) {
407
407
  const extraTextId = "".concat(a11yId, "-extraText");
408
408
  const errorMessageId = "".concat(a11yId, "-errormessage");
409
409
 
410
- let FieldComponent = (() => {
410
+ const FieldComponent = () => {
411
411
  // prefer to use validateStatus which pass by user throught props
412
412
  let blockStatus = validateStatus ? validateStatus : status;
413
413
  const extraCls = classNames("".concat(prefix, "-field-extra"), {
@@ -524,17 +524,17 @@ function withField(Component, opts) {
524
524
  "x-field-id": field,
525
525
  "x-extra-pos": mergeExtraPos
526
526
  }, withCol ? withColContent : /*#__PURE__*/React.createElement(React.Fragment, null, labelContent, fieldMainContent));
527
- })(); // !important optimization
527
+ }; // !important optimization
528
528
 
529
529
 
530
530
  const shouldUpdate = [...Object.values(fieldState), ...Object.values(props), field, mergeLabelPos, mergeLabelAlign, formProps.disabled];
531
531
 
532
532
  if (options.shouldMemo) {
533
533
  // eslint-disable-next-line react-hooks/exhaustive-deps
534
- return useMemo(() => FieldComponent, [...shouldUpdate]);
534
+ return useMemo(FieldComponent, [...shouldUpdate]);
535
535
  } else {
536
536
  // Some Custom Component with inner state shouldn't be memo, otherwise the component will not updated when the internal state is updated
537
- return FieldComponent;
537
+ return FieldComponent();
538
538
  }
539
539
  };
540
540
 
@@ -4,4 +4,4 @@ import Preview from "./preview";
4
4
  import '@douyinfe/semi-foundation/lib/es/image/image.css';
5
5
  export default Image;
6
6
  export { PreviewInner, Preview, };
7
- export { ImageProps, PreviewImageProps, PreviewProps, } from "./interface";
7
+ export type { ImageProps, PreviewImageProps, PreviewProps, } from "./interface";
@@ -69,5 +69,5 @@ export default class NavItem extends BaseComponent<NavItemProps, NavItemState> {
69
69
  wrapTooltip: (node: React.ReactNode) => JSX.Element;
70
70
  handleClick: (e: React.MouseEvent) => void;
71
71
  handleKeyPress: (e: React.KeyboardEvent) => void;
72
- render(): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
72
+ render(): React.ReactNode;
73
73
  }
@@ -247,6 +247,15 @@ export default class NavItem extends BaseComponent {
247
247
  itemDom = this.wrapTooltip(itemDom);
248
248
  }
249
249
 
250
+ if (typeof this.context.renderWrapper === 'function') {
251
+ return this.context.renderWrapper({
252
+ itemElement: itemDom,
253
+ isSubNav: isSubNav,
254
+ isInSubNav: isInSubNav,
255
+ props: this.props
256
+ });
257
+ }
258
+
250
259
  return itemDom;
251
260
  }
252
261
 
@@ -1,5 +1,5 @@
1
1
  import BaseComponent, { BaseProps } from '../_base/baseComponent';
2
- import React from 'react';
2
+ import React, { ReactElement, ReactNode } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { NavigationAdapter } from '@douyinfe/semi-foundation/lib/es/navigation/foundation';
5
5
  import SubNav, { SubNavProps } from './SubNav';
@@ -63,6 +63,12 @@ export interface NavProps extends BaseProps {
63
63
  isOpen: boolean;
64
64
  }) => void;
65
65
  onSelect?: (data: OnSelectedData) => void;
66
+ renderWrapper?: ({ itemElement, isSubNav, isInSubNav, props }: {
67
+ itemElement: ReactElement;
68
+ isInSubNav: boolean;
69
+ isSubNav: boolean;
70
+ props: NavItemProps | SubNavProps;
71
+ }) => ReactNode;
66
72
  }
67
73
  export interface NavState {
68
74
  isCollapsed: boolean;
@@ -205,7 +205,8 @@ class Nav extends BaseComponent {
205
205
  footer,
206
206
  header,
207
207
  toggleIconPosition,
208
- limitIndent
208
+ limitIndent,
209
+ renderWrapper
209
210
  } = this.props;
210
211
  const {
211
212
  selectedKeys,
@@ -310,7 +311,8 @@ class Nav extends BaseComponent {
310
311
  locale,
311
312
  prefixCls,
312
313
  toggleIconPosition,
313
- limitIndent
314
+ limitIndent,
315
+ renderWrapper
314
316
  }
315
317
  }, /*#__PURE__*/React.createElement("div", {
316
318
  className: finalCls,
@@ -18,6 +18,7 @@ export interface NavContextType {
18
18
  subNavCloseDelay?: NavProps['subNavCloseDelay'];
19
19
  subNavOpenDelay?: NavProps['subNavOpenDelay'];
20
20
  canUpdateOpenKeys?: boolean;
21
+ renderWrapper?: NavProps['renderWrapper'];
21
22
  }
22
23
  declare const NavContext: React.Context<NavContextType>;
23
24
  export default NavContext;
@@ -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 | 6 | 5>;
40
+ heading: PropTypes.Requireable<4 | 2 | 1 | 3 | 6 | 5>;
41
41
  style: PropTypes.Requireable<object>;
42
42
  className: PropTypes.Requireable<string>;
43
43
  component: PropTypes.Requireable<string>;
@@ -3,12 +3,12 @@ import PropTypes from 'prop-types';
3
3
  import UploadFoundation from '@douyinfe/semi-foundation/lib/es/upload/foundation';
4
4
  import FileCard from './fileCard';
5
5
  import BaseComponent from '../_base/baseComponent';
6
- import { FileItem, RenderFileItemProps, UploadListType, PromptPositionType, BeforeUploadProps, AfterUploadProps, OnChangeProps, customRequestArgs, CustomError } from './interface';
6
+ import type { FileItem, RenderFileItemProps, UploadListType, PromptPositionType, BeforeUploadProps, AfterUploadProps, OnChangeProps, customRequestArgs, CustomError } from './interface';
7
7
  import { Locale } from '../locale/interface';
8
8
  import '@douyinfe/semi-foundation/lib/es/upload/upload.css';
9
9
  import type { CustomFile, UploadAdapter, BeforeUploadObjectResult, AfterUploadResult } from '@douyinfe/semi-foundation/lib/es/upload/foundation';
10
10
  import type { ValidateStatus } from '../_base/baseComponent';
11
- export { FileItem, RenderFileItemProps, UploadListType, PromptPositionType, BeforeUploadProps, AfterUploadProps, OnChangeProps, customRequestArgs, CustomError, BeforeUploadObjectResult, AfterUploadResult, };
11
+ export type { FileItem, RenderFileItemProps, UploadListType, PromptPositionType, BeforeUploadProps, AfterUploadProps, OnChangeProps, customRequestArgs, CustomError, BeforeUploadObjectResult, AfterUploadResult, };
12
12
  export interface UploadProps {
13
13
  accept?: string;
14
14
  action: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-ui",
3
- "version": "2.23.4",
3
+ "version": "2.24.0-alpha.1",
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.23.4",
21
- "@douyinfe/semi-animation-react": "2.23.4",
22
- "@douyinfe/semi-foundation": "2.23.4",
23
- "@douyinfe/semi-icons": "2.23.4",
24
- "@douyinfe/semi-illustrations": "2.23.4",
25
- "@douyinfe/semi-theme-default": "2.23.4",
20
+ "@douyinfe/semi-animation": "2.24.0-alpha.0",
21
+ "@douyinfe/semi-animation-react": "2.24.0-alpha.0",
22
+ "@douyinfe/semi-foundation": "2.24.0-alpha.1",
23
+ "@douyinfe/semi-icons": "2.24.0-alpha.0",
24
+ "@douyinfe/semi-illustrations": "2.24.0-alpha.0",
25
+ "@douyinfe/semi-theme-default": "2.24.0-alpha.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": "39123342dc7146f2afb9d7c6e1a8f108b2c04a9c",
72
+ "gitHead": "90ea17a3aac528ba12f034b7f0940f1395ee1a30",
73
73
  "devDependencies": {
74
74
  "@babel/plugin-proposal-decorators": "^7.15.8",
75
75
  "@babel/plugin-transform-runtime": "^7.15.8",