rsuite 5.14.0 → 5.15.2

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 (53) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/Table/styles/index.less +0 -1
  3. package/cjs/DateRangePicker/DateRangePicker.js +3 -1
  4. package/cjs/InputGroup/InputGroupAddon.d.ts +2 -2
  5. package/cjs/InputGroup/test/InputGroup.test.d.ts +1 -0
  6. package/cjs/InputGroup/test/InputGroup.test.js +15 -0
  7. package/cjs/Overlay/Overlay.d.ts +2 -1
  8. package/cjs/Overlay/OverlayTrigger.d.ts +5 -1
  9. package/cjs/Overlay/OverlayTrigger.js +3 -3
  10. package/cjs/Overlay/Position.d.ts +3 -1
  11. package/cjs/Overlay/Position.js +2 -2
  12. package/cjs/Overlay/positionUtils.d.ts +2 -2
  13. package/cjs/Picker/PickerToggleTrigger.d.ts +2 -3
  14. package/cjs/Table/Table.d.ts +3 -3
  15. package/cjs/Uploader/Uploader.d.ts +2 -0
  16. package/cjs/Uploader/Uploader.js +6 -2
  17. package/cjs/Whisper/test/Whisper.test.js +19 -1
  18. package/cjs/utils/ajaxUpload.d.ts +1 -0
  19. package/cjs/utils/ajaxUpload.js +3 -1
  20. package/dist/rsuite-rtl.css +24 -25
  21. package/dist/rsuite-rtl.min.css +1 -1
  22. package/dist/rsuite-rtl.min.css.map +1 -1
  23. package/dist/rsuite.css +24 -25
  24. package/dist/rsuite.js +10 -10
  25. package/dist/rsuite.min.css +1 -1
  26. package/dist/rsuite.min.css.map +1 -1
  27. package/dist/rsuite.min.js +1 -1
  28. package/dist/rsuite.min.js.map +1 -1
  29. package/esm/DateRangePicker/DateRangePicker.js +3 -1
  30. package/esm/InputGroup/InputGroupAddon.d.ts +2 -2
  31. package/esm/InputGroup/test/InputGroup.test.d.ts +1 -0
  32. package/esm/InputGroup/test/InputGroup.test.js +10 -0
  33. package/esm/Overlay/Overlay.d.ts +2 -1
  34. package/esm/Overlay/OverlayTrigger.d.ts +5 -1
  35. package/esm/Overlay/OverlayTrigger.js +3 -3
  36. package/esm/Overlay/Position.d.ts +3 -1
  37. package/esm/Overlay/Position.js +2 -2
  38. package/esm/Overlay/positionUtils.d.ts +2 -2
  39. package/esm/Picker/PickerToggleTrigger.d.ts +2 -3
  40. package/esm/Table/Table.d.ts +3 -3
  41. package/esm/Uploader/Uploader.d.ts +2 -0
  42. package/esm/Uploader/Uploader.js +6 -2
  43. package/esm/Whisper/test/Whisper.test.js +18 -1
  44. package/esm/utils/ajaxUpload.d.ts +1 -0
  45. package/esm/utils/ajaxUpload.js +3 -1
  46. package/package.json +2 -2
  47. package/styles/color-modes/dark.less +223 -184
  48. package/styles/color-modes/high-contrast.less +221 -182
  49. package/styles/color-modes/light.less +42 -3
  50. package/styles/colors/dark.less +91 -91
  51. package/styles/colors/high-contrast.less +91 -91
  52. package/styles/variables.less +3 -0
  53. package/styles/color-modes/common.less +0 -44
@@ -370,7 +370,9 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
370
370
  closeOverlay = false;
371
371
  }
372
372
 
373
- handleValueUpdate(event, value, closeOverlay);
373
+ handleValueUpdate(event, value, closeOverlay); // End unfinished selections.
374
+
375
+ hasDoneSelect.current = true;
374
376
  }, [handleValueUpdate]);
375
377
  var handleOK = useCallback(function (event) {
376
378
  handleValueUpdate(event, selectedDates);
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { WithAsProps } from '../@types/common';
2
+ import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
3
3
  export interface InputGroupAddonProps extends WithAsProps, React.HTMLAttributes<HTMLSpanElement> {
4
4
  /** An Input group addon can show that it is disabled */
5
5
  disabled?: boolean;
6
6
  }
7
- declare const InputGroupAddon: React.ForwardRefExoticComponent<InputGroupAddonProps & React.RefAttributes<HTMLSpanElement>>;
7
+ declare const InputGroupAddon: RsRefForwardingComponent<'span', InputGroupAddonProps>;
8
8
  export default InputGroupAddon;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { InputGroup } from '../..';
3
+
4
+ /*#__PURE__*/
5
+ React.createElement(InputGroup, null, /*#__PURE__*/React.createElement(InputGroup.Addon, {
6
+ as: "label",
7
+ htmlFor: "input"
8
+ }), /*#__PURE__*/React.createElement("input", {
9
+ id: "input"
10
+ }));
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ import { PositionChildProps } from './Position';
3
4
  import { TypeAttributes, AnimationEventProps, CursorPosition } from '../@types/common';
4
5
  export interface OverlayProps extends AnimationEventProps {
5
6
  container?: HTMLElement | (() => HTMLElement | null) | null;
6
- children: React.ReactElement | ((props: any, ref: any) => React.ReactElement);
7
+ children: React.ReactElement | ((props: PositionChildProps & React.HTMLAttributes<HTMLElement>, ref: React.RefCallback<HTMLElement>) => React.ReactElement);
7
8
  childrenProps?: React.HTMLAttributes<HTMLElement>;
8
9
  className?: string;
9
10
  containerPadding?: number;
@@ -1,5 +1,7 @@
1
+ /// <reference types="node" />
1
2
  import React from 'react';
2
3
  import { AnimationEventProps, StandardProps, TypeAttributes } from '../@types/common';
4
+ import { PositionChildProps } from './Position';
3
5
  export declare type OverlayTriggerType = 'click' | 'hover' | 'focus' | 'active' | 'contextMenu' | 'none';
4
6
  export interface OverlayTriggerProps extends StandardProps, AnimationEventProps {
5
7
  /** Triggering events */
@@ -17,7 +19,9 @@ export interface OverlayTriggerProps extends StandardProps, AnimationEventProps
17
19
  /** Container padding */
18
20
  containerPadding?: number;
19
21
  /** display element */
20
- speaker: React.ReactElement | ((props: any, ref: React.RefObject<any>) => React.ReactElement);
22
+ speaker: React.ReactElement | ((props: PositionChildProps & Pick<React.HTMLAttributes<HTMLElement>, 'id' | 'onMouseEnter' | 'onMouseLeave'> & {
23
+ onClose: (delay?: number) => NodeJS.Timeout | void;
24
+ }, ref: React.RefCallback<HTMLElement>) => React.ReactElement);
21
25
  /** Prevent floating element overflow */
22
26
  preventOverflow?: boolean;
23
27
  /** Opern overlay */
@@ -59,6 +59,7 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
59
59
  _props$trigger = props.trigger,
60
60
  trigger = _props$trigger === void 0 ? defaultTrigger : _props$trigger,
61
61
  disabled = props.disabled,
62
+ followCursor = props.followCursor,
62
63
  readOnly = props.readOnly,
63
64
  plaintext = props.plaintext,
64
65
  openProp = props.open,
@@ -79,9 +80,8 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
79
80
  onFocus = props.onFocus,
80
81
  onBlur = props.onBlur,
81
82
  onClose = props.onClose,
82
- followCursor = props.followCursor,
83
83
  onExited = props.onExited,
84
- rest = _objectWithoutPropertiesLoose(props, ["children", "container", "controlId", "defaultOpen", "trigger", "disabled", "readOnly", "plaintext", "open", "delay", "delayOpen", "delayClose", "enterable", "placement", "speaker", "rootClose", "onClick", "onMouseOver", "onMouseMove", "onMouseOut", "onContextMenu", "onFocus", "onBlur", "onClose", "followCursor", "onExited"]);
84
+ rest = _objectWithoutPropertiesLoose(props, ["children", "container", "controlId", "defaultOpen", "trigger", "disabled", "followCursor", "readOnly", "plaintext", "open", "delay", "delayOpen", "delayClose", "enterable", "placement", "speaker", "rootClose", "onClick", "onMouseOver", "onMouseMove", "onMouseOut", "onContextMenu", "onFocus", "onBlur", "onClose", "onExited"]);
85
85
 
86
86
  var _usePortal = usePortal({
87
87
  container: container
@@ -254,7 +254,7 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
254
254
  clientLeft: event.clientY
255
255
  };
256
256
  });
257
- }, [open]);
257
+ }, []);
258
258
  var preventDefault = useCallback(function (event) {
259
259
  event.preventDefault();
260
260
  }, []);
@@ -4,9 +4,11 @@ export interface PositionChildProps {
4
4
  className: string;
5
5
  left?: number;
6
6
  top?: number;
7
+ arrowOffsetLeft?: number;
8
+ arrowOffsetTop?: number;
7
9
  }
8
10
  export interface PositionProps {
9
- children: (props: PositionChildProps, ref: any) => React.ReactElement;
11
+ children: (props: PositionChildProps, ref: React.RefObject<HTMLElement>) => React.ReactElement;
10
12
  className?: string;
11
13
  container?: HTMLElement | (() => HTMLElement | null) | null;
12
14
  containerPadding?: number;
@@ -30,8 +30,8 @@ var usePosition = function usePosition(props, ref) {
30
30
  var defaultPosition = {
31
31
  positionLeft: 0,
32
32
  positionTop: 0,
33
- arrowOffsetLeft: null,
34
- arrowOffsetTop: null
33
+ arrowOffsetLeft: undefined,
34
+ arrowOffsetTop: undefined
35
35
  };
36
36
 
37
37
  var _useState = useState(defaultPosition),
@@ -8,8 +8,8 @@ declare type Offset = {
8
8
  export interface PositionType {
9
9
  positionLeft?: number;
10
10
  positionTop?: number;
11
- arrowOffsetLeft?: null | number;
12
- arrowOffsetTop?: null | number;
11
+ arrowOffsetLeft?: number;
12
+ arrowOffsetTop?: number;
13
13
  positionClassName?: string;
14
14
  }
15
15
  export interface UtilProps {
@@ -1,15 +1,14 @@
1
1
  import React from 'react';
2
- import { OverlayTriggerInstance, OverlayTriggerType } from '../Overlay/OverlayTrigger';
2
+ import { OverlayTriggerInstance, OverlayTriggerProps, OverlayTriggerType } from '../Overlay/OverlayTrigger';
3
3
  import { PositionChildProps } from '../Overlay/Position';
4
4
  import { TypeAttributes, AnimationEventProps } from '../@types/common';
5
5
  export type { OverlayTriggerInstance, PositionChildProps };
6
- export interface PickerToggleTriggerProps extends Omit<AnimationEventProps, 'onEntering' | 'onExiting'> {
6
+ export interface PickerToggleTriggerProps extends Omit<AnimationEventProps, 'onEntering' | 'onExiting'>, Pick<OverlayTriggerProps, 'speaker'> {
7
7
  placement?: TypeAttributes.Placement;
8
8
  pickerProps: any;
9
9
  open?: boolean;
10
10
  trigger?: OverlayTriggerType | OverlayTriggerType[];
11
11
  children: React.ReactElement | ((props: any, ref: any) => React.ReactElement);
12
- speaker: React.ReactElement | ((props: any, ref: React.RefObject<any>) => React.ReactElement);
13
12
  }
14
13
  export declare const omitTriggerPropKeys: string[];
15
14
  export declare const pickTriggerPropKeys: string[];
@@ -5,13 +5,13 @@ export interface TableInstance extends React.Component<TableProps> {
5
5
  scrollTop: (top: number) => void;
6
6
  scrollLeft: (left: number) => void;
7
7
  }
8
- export interface CellProps extends StandardProps {
8
+ export interface CellProps<T = any> extends StandardProps {
9
9
  /** Data binding key, but also a sort of key */
10
- dataKey?: string;
10
+ dataKey?: string | keyof T;
11
11
  /** Row Number */
12
12
  rowIndex?: number;
13
13
  /** Row Data */
14
- rowData?: any;
14
+ rowData?: T;
15
15
  }
16
16
  interface TableComponent extends RsRefForwardingComponent<'div', TableProps & {
17
17
  ref?: React.Ref<TableInstance>;
@@ -71,6 +71,8 @@ export interface UploaderProps extends WithAsProps {
71
71
  draggable?: boolean;
72
72
  /** Custom locale */
73
73
  locale?: UploaderLocale;
74
+ /** The http method of upload request */
75
+ method?: string;
74
76
  /** Allow the queue to be updated. After you select a file, update the checksum function before the upload file queue, and return false to not update */
75
77
  shouldQueueUpdate?: (fileList: FileType[], newFile: FileType[] | FileType) => boolean | Promise<boolean>;
76
78
  /** Allow uploading of files. Check function before file upload, return false without uploading */
@@ -123,6 +123,8 @@ var Uploader = /*#__PURE__*/React.forwardRef(function (props, ref) {
123
123
  removable = _props$removable === void 0 ? true : _props$removable,
124
124
  disabledFileItem = props.disabledFileItem,
125
125
  maxPreviewFileSize = props.maxPreviewFileSize,
126
+ _props$method = props.method,
127
+ method = _props$method === void 0 ? 'POST' : _props$method,
126
128
  _props$autoUpload = props.autoUpload,
127
129
  autoUpload = _props$autoUpload === void 0 ? true : _props$autoUpload,
128
130
  action = props.action,
@@ -146,7 +148,7 @@ var Uploader = /*#__PURE__*/React.forwardRef(function (props, ref) {
146
148
  onError = props.onError,
147
149
  onProgress = props.onProgress,
148
150
  onReupload = props.onReupload,
149
- rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "listType", "defaultFileList", "fileList", "fileListVisible", "locale", "style", "draggable", "name", "multiple", "disabled", "readOnly", "plaintext", "accept", "children", "toggleAs", "removable", "disabledFileItem", "maxPreviewFileSize", "autoUpload", "action", "headers", "withCredentials", "disableMultipart", "timeout", "data", "onRemove", "onUpload", "shouldUpload", "shouldQueueUpdate", "renderFileInfo", "renderThumbnail", "onPreview", "onChange", "onSuccess", "onError", "onProgress", "onReupload"]);
151
+ rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "listType", "defaultFileList", "fileList", "fileListVisible", "locale", "style", "draggable", "name", "multiple", "disabled", "readOnly", "plaintext", "accept", "children", "toggleAs", "removable", "disabledFileItem", "maxPreviewFileSize", "method", "autoUpload", "action", "headers", "withCredentials", "disableMultipart", "timeout", "data", "onRemove", "onUpload", "shouldUpload", "shouldQueueUpdate", "renderFileInfo", "renderThumbnail", "onPreview", "onChange", "onSuccess", "onError", "onProgress", "onReupload"]);
150
152
 
151
153
  var _useClassNames = useClassNames(classPrefix),
152
154
  merge = _useClassNames.merge,
@@ -253,6 +255,7 @@ var Uploader = /*#__PURE__*/React.forwardRef(function (props, ref) {
253
255
  timeout: timeout,
254
256
  headers: headers,
255
257
  data: data,
258
+ method: method,
256
259
  withCredentials: withCredentials,
257
260
  disableMultipart: disableMultipart,
258
261
  file: file.blobFile,
@@ -273,7 +276,7 @@ var Uploader = /*#__PURE__*/React.forwardRef(function (props, ref) {
273
276
  }
274
277
 
275
278
  onUpload === null || onUpload === void 0 ? void 0 : onUpload(file, uploadData, xhr);
276
- }, [action, data, handleAjaxUploadError, handleAjaxUploadProgress, handleAjaxUploadSuccess, headers, name, onUpload, timeout, updateFileStatus, withCredentials, disableMultipart]);
279
+ }, [name, timeout, headers, data, method, withCredentials, disableMultipart, action, handleAjaxUploadError, handleAjaxUploadSuccess, handleAjaxUploadProgress, updateFileStatus, onUpload]);
277
280
  var handleAjaxUpload = useCallback(function () {
278
281
  fileList.current.forEach(function (file) {
279
282
  var checkState = shouldUpload === null || shouldUpload === void 0 ? void 0 : shouldUpload(file);
@@ -466,6 +469,7 @@ Uploader.propTypes = {
466
469
  onProgress: PropTypes.func,
467
470
  onRemove: PropTypes.func,
468
471
  maxPreviewFileSize: PropTypes.number,
472
+ method: PropTypes.string,
469
473
  style: PropTypes.object,
470
474
  renderFileInfo: PropTypes.func,
471
475
  renderThumbnail: PropTypes.func,
@@ -1,6 +1,9 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+
1
3
  var _whisperRef$current, _whisperRef$current2, _whisperRef$current3, _whisperRef$current4, _whisperRef$current5;
2
4
 
3
5
  import React from 'react';
6
+ import { expectType } from 'ts-expect';
4
7
  import Whisper from '../Whisper';
5
8
  var whisperRef = /*#__PURE__*/React.createRef();
6
9
 
@@ -13,4 +16,18 @@ React.createElement(Whisper, {
13
16
  (_whisperRef$current2 = whisperRef.current) === null || _whisperRef$current2 === void 0 ? void 0 : _whisperRef$current2.open(300);
14
17
  (_whisperRef$current3 = whisperRef.current) === null || _whisperRef$current3 === void 0 ? void 0 : _whisperRef$current3.close();
15
18
  (_whisperRef$current4 = whisperRef.current) === null || _whisperRef$current4 === void 0 ? void 0 : _whisperRef$current4.close(300);
16
- (_whisperRef$current5 = whisperRef.current) === null || _whisperRef$current5 === void 0 ? void 0 : _whisperRef$current5.updatePosition();
19
+ (_whisperRef$current5 = whisperRef.current) === null || _whisperRef$current5 === void 0 ? void 0 : _whisperRef$current5.updatePosition(); // speaker function types
20
+
21
+ /*#__PURE__*/
22
+ React.createElement(Whisper, {
23
+ speaker: function speaker(props, ref) {
24
+ expectType(props.arrowOffsetLeft);
25
+ expectType(props.arrowOffsetLeft);
26
+ expectType(props.onMouseEnter);
27
+ expectType(props.onMouseLeave);
28
+ expectType(props.onClose);
29
+ return /*#__PURE__*/React.createElement("div", _extends({
30
+ ref: ref
31
+ }, props));
32
+ }
33
+ }, /*#__PURE__*/React.createElement("div", null));
@@ -11,6 +11,7 @@ interface Options {
11
11
  headers?: any;
12
12
  file: File;
13
13
  url: string;
14
+ method?: string;
14
15
  onError: (status: ErrorStatus, event: ProgressEvent, xhr: XMLHttpRequest) => void;
15
16
  onSuccess: (response: any, event: ProgressEvent, xhr: XMLHttpRequest) => void;
16
17
  onProgress: (percent: number, event: ProgressEvent, xhr: XMLHttpRequest) => void;
@@ -19,6 +19,8 @@ export default function ajaxUpload(options) {
19
19
  headers = _options$headers === void 0 ? {} : _options$headers,
20
20
  _options$data = options.data,
21
21
  data = _options$data === void 0 ? {} : _options$data,
22
+ _options$method = options.method,
23
+ method = _options$method === void 0 ? 'POST' : _options$method,
22
24
  onError = options.onError,
23
25
  onSuccess = options.onSuccess,
24
26
  onProgress = options.onProgress,
@@ -28,7 +30,7 @@ export default function ajaxUpload(options) {
28
30
  disableMultipart = options.disableMultipart;
29
31
  var xhr = new XMLHttpRequest();
30
32
  var sendableData;
31
- xhr.open('POST', url, true);
33
+ xhr.open(method, url, true);
32
34
 
33
35
  if (!disableMultipart) {
34
36
  sendableData = new FormData();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.14.0",
3
+ "version": "5.15.2",
4
4
  "description": "A suite of react components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -37,7 +37,7 @@
37
37
  "lodash": "^4.17.11",
38
38
  "prop-types": "^15.7.2",
39
39
  "react-virtualized": "^9.22.3",
40
- "rsuite-table": "^5.5.0",
40
+ "rsuite-table": "^5.6.0",
41
41
  "schema-typed": "^2.0.2"
42
42
  },
43
43
  "peerDependencies": {