rsuite 5.15.1 → 5.16.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.
Files changed (53) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/Form/styles/mixin.less +1 -1
  3. package/InputGroup/styles/index.less +8 -4
  4. package/Picker/styles/index.less +4 -0
  5. package/Table/styles/index.less +0 -1
  6. package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
  7. package/cjs/CheckPicker/test/CheckPicker.test.js +7 -0
  8. package/cjs/DateRangePicker/DateRangePicker.js +3 -1
  9. package/cjs/InputGroup/InputGroupAddon.d.ts +2 -2
  10. package/cjs/InputGroup/test/InputGroup.test.d.ts +1 -0
  11. package/cjs/InputGroup/test/InputGroup.test.js +15 -0
  12. package/cjs/Overlay/Overlay.d.ts +2 -1
  13. package/cjs/Overlay/OverlayTrigger.d.ts +5 -1
  14. package/cjs/Overlay/OverlayTrigger.js +3 -3
  15. package/cjs/Overlay/Position.d.ts +3 -1
  16. package/cjs/Overlay/Position.js +2 -2
  17. package/cjs/Overlay/positionUtils.d.ts +2 -2
  18. package/cjs/Picker/PickerToggle.d.ts +1 -0
  19. package/cjs/Picker/PickerToggle.js +5 -2
  20. package/cjs/Picker/PickerToggleTrigger.d.ts +2 -3
  21. package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
  22. package/cjs/SelectPicker/test/SelectPicker.test.js +7 -0
  23. package/cjs/Table/Table.d.ts +3 -3
  24. package/cjs/Whisper/test/Whisper.test.js +19 -1
  25. package/dist/rsuite-rtl.css +26 -19
  26. package/dist/rsuite-rtl.min.css +1 -1
  27. package/dist/rsuite-rtl.min.css.map +1 -1
  28. package/dist/rsuite.css +26 -19
  29. package/dist/rsuite.js +11 -11
  30. package/dist/rsuite.min.css +1 -1
  31. package/dist/rsuite.min.css.map +1 -1
  32. package/dist/rsuite.min.js +1 -1
  33. package/dist/rsuite.min.js.map +1 -1
  34. package/esm/CheckPicker/CheckPicker.d.ts +2 -2
  35. package/esm/CheckPicker/test/CheckPicker.test.js +6 -0
  36. package/esm/DateRangePicker/DateRangePicker.js +3 -1
  37. package/esm/InputGroup/InputGroupAddon.d.ts +2 -2
  38. package/esm/InputGroup/test/InputGroup.test.d.ts +1 -0
  39. package/esm/InputGroup/test/InputGroup.test.js +10 -0
  40. package/esm/Overlay/Overlay.d.ts +2 -1
  41. package/esm/Overlay/OverlayTrigger.d.ts +5 -1
  42. package/esm/Overlay/OverlayTrigger.js +3 -3
  43. package/esm/Overlay/Position.d.ts +3 -1
  44. package/esm/Overlay/Position.js +2 -2
  45. package/esm/Overlay/positionUtils.d.ts +2 -2
  46. package/esm/Picker/PickerToggle.d.ts +1 -0
  47. package/esm/Picker/PickerToggle.js +5 -2
  48. package/esm/Picker/PickerToggleTrigger.d.ts +2 -3
  49. package/esm/SelectPicker/SelectPicker.d.ts +2 -2
  50. package/esm/SelectPicker/test/SelectPicker.test.js +6 -0
  51. package/esm/Table/Table.d.ts +3 -3
  52. package/esm/Whisper/test/Whisper.test.js +18 -1
  53. package/package.json +3 -3
@@ -1,10 +1,10 @@
1
1
  import React, { Ref } from 'react';
2
2
  import { PickerLocale } from '../locales';
3
- import { PickerInstance } from '../Picker';
3
+ import { PickerInstance, PickerToggleProps } from '../Picker';
4
4
  import { ItemDataType, FormControlPickerProps } from '../@types/common';
5
5
  import type { MultipleSelectProps } from '../SelectPicker';
6
6
  export declare type ValueType = (number | string)[];
7
- export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerLocale, ItemDataType<T>>, MultipleSelectProps<T> {
7
+ export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerLocale, ItemDataType<T>>, MultipleSelectProps<T>, Pick<PickerToggleProps, 'label'> {
8
8
  /** Top the selected option in the options */
9
9
  sticky?: boolean;
10
10
  /** A picker that can be counted */
@@ -68,4 +68,10 @@ var pickerRef = /*#__PURE__*/React.createRef();
68
68
  React.createElement(CheckPicker, {
69
69
  ref: pickerRef,
70
70
  data: []
71
+ }); // With a label
72
+
73
+ /*#__PURE__*/
74
+ React.createElement(CheckPicker, {
75
+ label: "User",
76
+ data: []
71
77
  });
@@ -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 {
@@ -31,6 +31,7 @@ export interface PickerToggleProps extends ToggleButtonProps {
31
31
  /** Custom caret component */
32
32
  caretAs?: React.ElementType;
33
33
  onClean?: (event: React.MouseEvent) => void;
34
+ label?: React.ReactNode;
34
35
  }
35
36
  declare const PickerToggle: RsRefForwardingComponent<typeof ToggleButton, PickerToggleProps>;
36
37
  export default PickerToggle;
@@ -51,7 +51,8 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
51
51
  caretComponent = props.caretComponent,
52
52
  _props$caretAs = props.caretAs,
53
53
  caretAs = _props$caretAs === void 0 ? caretComponent : _props$caretAs,
54
- rest = _objectWithoutPropertiesLoose(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "cleanable", "tabIndex", "id", "value", "input", "inputPlaceholder", "inputValue", "inputMask", "onInputChange", "onInputPressEnter", "onInputBlur", "onInputFocus", "onClean", "onFocus", "onBlur", "placement", "caretComponent", "caretAs"]);
54
+ label = props.label,
55
+ rest = _objectWithoutPropertiesLoose(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "cleanable", "tabIndex", "id", "value", "input", "inputPlaceholder", "inputValue", "inputMask", "onInputChange", "onInputPressEnter", "onInputBlur", "onInputFocus", "onClean", "onFocus", "onBlur", "placement", "caretComponent", "caretAs", "label"]);
55
56
 
56
57
  var inputRef = useRef(null);
57
58
 
@@ -172,7 +173,9 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
172
173
  }), children ? /*#__PURE__*/React.createElement("span", {
173
174
  className: prefix(hasValue ? 'value' : 'placeholder'),
174
175
  "aria-placeholder": typeof children === 'string' ? children : undefined
175
- }, children) : null, showCleanButton && /*#__PURE__*/React.createElement(CloseButton, {
176
+ }, label && /*#__PURE__*/React.createElement("span", {
177
+ className: prefix('label')
178
+ }, label, ": "), children) : null, showCleanButton && /*#__PURE__*/React.createElement(CloseButton, {
176
179
  className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["clean"]))),
177
180
  tabIndex: -1,
178
181
  locale: {
@@ -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[];
@@ -1,6 +1,6 @@
1
1
  import React, { Ref } from 'react';
2
2
  import { PickerLocale } from '../locales';
3
- import { PickerInstance } from '../Picker';
3
+ import { PickerInstance, PickerToggleProps } from '../Picker';
4
4
  import { FormControlPickerProps, ItemDataType } from '../@types/common';
5
5
  import { ListProps } from 'react-virtualized/dist/commonjs/List';
6
6
  export interface SelectProps<T> {
@@ -40,7 +40,7 @@ export interface MultipleSelectProps<T> extends Omit<SelectProps<T>, 'renderValu
40
40
  /** Custom render selected items */
41
41
  renderValue?: (value: T[], item: ItemDataType<T>[], selectedElement: React.ReactNode) => React.ReactNode;
42
42
  }
43
- export interface SelectPickerProps<T> extends FormControlPickerProps<T, PickerLocale, ItemDataType<T>>, SelectProps<T> {
43
+ export interface SelectPickerProps<T> extends FormControlPickerProps<T, PickerLocale, ItemDataType<T>>, SelectProps<T>, Pick<PickerToggleProps, 'label'> {
44
44
  }
45
45
  export interface SelectPickerComponent {
46
46
  <T>(props: SelectPickerProps<T> & {
@@ -56,4 +56,10 @@ var pickerRef = /*#__PURE__*/React.createRef();
56
56
  React.createElement(SelectPicker, {
57
57
  ref: pickerRef,
58
58
  data: []
59
+ }); // With a label
60
+
61
+ /*#__PURE__*/
62
+ React.createElement(SelectPicker, {
63
+ label: "User",
64
+ data: []
59
65
  });
@@ -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>;
@@ -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));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.15.1",
3
+ "version": "5.16.1",
4
4
  "description": "A suite of react components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -37,8 +37,8 @@
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",
41
- "schema-typed": "^2.0.2"
40
+ "rsuite-table": "^5.6.0",
41
+ "schema-typed": "^2.0.3"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "react": ">=16.8.0",