rsuite 5.59.2 → 5.60.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 (73) hide show
  1. package/Animation/styles/fade.less +1 -1
  2. package/Animation/styles/index.css +1 -1
  3. package/CHANGELOG.md +16 -0
  4. package/TagInput/styles/index.css +24 -24
  5. package/TagPicker/styles/index.css +24 -24
  6. package/TagPicker/styles/index.less +11 -10
  7. package/cjs/Form/Form.d.ts +13 -9
  8. package/cjs/Form/Form.js +55 -11
  9. package/cjs/Form/FormContext.d.ts +2 -2
  10. package/cjs/Form/hooks/useFormRef.d.ts +9 -7
  11. package/cjs/Form/hooks/useFormRef.js +5 -32
  12. package/cjs/Form/hooks/useFormValidate.d.ts +6 -4
  13. package/cjs/Form/hooks/useFormValidate.js +18 -12
  14. package/cjs/Form/hooks/useFormValue.d.ts +8 -1
  15. package/cjs/Form/hooks/useFormValue.js +7 -1
  16. package/cjs/InputPicker/InputAutosize.js +2 -2
  17. package/cjs/InputPicker/InputPicker.d.ts +5 -7
  18. package/cjs/InputPicker/InputPicker.js +119 -151
  19. package/cjs/InputPicker/InputPickerContext.d.ts +11 -3
  20. package/cjs/InputPicker/InputPickerContext.js +7 -1
  21. package/cjs/InputPicker/hooks/useData.d.ts +17 -0
  22. package/cjs/InputPicker/hooks/useData.js +44 -0
  23. package/cjs/InputPicker/hooks/useInput.d.ts +21 -0
  24. package/cjs/InputPicker/hooks/useInput.js +46 -0
  25. package/cjs/InputPicker/hooks/useMaxWidth.d.ts +4 -0
  26. package/cjs/InputPicker/hooks/useMaxWidth.js +25 -0
  27. package/cjs/InputPicker/index.d.ts +2 -1
  28. package/cjs/InputPicker/utils.d.ts +1 -0
  29. package/cjs/InputPicker/utils.js +17 -0
  30. package/cjs/TagInput/index.js +2 -2
  31. package/cjs/TagPicker/index.js +2 -2
  32. package/dist/rsuite-no-reset-rtl.css +25 -25
  33. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  34. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  35. package/dist/rsuite-no-reset.css +25 -25
  36. package/dist/rsuite-no-reset.min.css +1 -1
  37. package/dist/rsuite-no-reset.min.css.map +1 -1
  38. package/dist/rsuite-rtl.css +25 -25
  39. package/dist/rsuite-rtl.min.css +1 -1
  40. package/dist/rsuite-rtl.min.css.map +1 -1
  41. package/dist/rsuite.css +25 -25
  42. package/dist/rsuite.js +53 -9
  43. package/dist/rsuite.js.map +1 -1
  44. package/dist/rsuite.min.css +1 -1
  45. package/dist/rsuite.min.css.map +1 -1
  46. package/dist/rsuite.min.js +1 -1
  47. package/dist/rsuite.min.js.map +1 -1
  48. package/esm/Form/Form.d.ts +13 -9
  49. package/esm/Form/Form.js +55 -11
  50. package/esm/Form/FormContext.d.ts +2 -2
  51. package/esm/Form/hooks/useFormRef.d.ts +9 -7
  52. package/esm/Form/hooks/useFormRef.js +5 -32
  53. package/esm/Form/hooks/useFormValidate.d.ts +6 -4
  54. package/esm/Form/hooks/useFormValidate.js +18 -12
  55. package/esm/Form/hooks/useFormValue.d.ts +8 -1
  56. package/esm/Form/hooks/useFormValue.js +7 -1
  57. package/esm/InputPicker/InputAutosize.js +2 -2
  58. package/esm/InputPicker/InputPicker.d.ts +5 -7
  59. package/esm/InputPicker/InputPicker.js +111 -143
  60. package/esm/InputPicker/InputPickerContext.d.ts +11 -3
  61. package/esm/InputPicker/InputPickerContext.js +4 -0
  62. package/esm/InputPicker/hooks/useData.d.ts +17 -0
  63. package/esm/InputPicker/hooks/useData.js +38 -0
  64. package/esm/InputPicker/hooks/useInput.d.ts +21 -0
  65. package/esm/InputPicker/hooks/useInput.js +40 -0
  66. package/esm/InputPicker/hooks/useMaxWidth.d.ts +4 -0
  67. package/esm/InputPicker/hooks/useMaxWidth.js +19 -0
  68. package/esm/InputPicker/index.d.ts +2 -1
  69. package/esm/InputPicker/utils.d.ts +1 -0
  70. package/esm/InputPicker/utils.js +12 -0
  71. package/esm/TagInput/index.js +2 -2
  72. package/esm/TagPicker/index.js +2 -2
  73. package/package.json +1 -1
@@ -0,0 +1,46 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _useMaxWidth = _interopRequireDefault(require("./useMaxWidth"));
9
+ var _InputAutosize = _interopRequireDefault(require("../InputAutosize"));
10
+ var INPUT_MARGIN_RIGHT = 60;
11
+ function useInput(props) {
12
+ var multi = props.multi,
13
+ triggerRef = props.triggerRef;
14
+ var inputRef = (0, _react.useRef)();
15
+ var maxWidth = (0, _useMaxWidth.default)(triggerRef);
16
+ var getInput = (0, _react.useCallback)(function () {
17
+ var _inputRef$current;
18
+ return multi ? (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.input : inputRef.current;
19
+ }, [multi]);
20
+ var focus = (0, _react.useCallback)(function () {
21
+ var _getInput;
22
+ (_getInput = getInput()) === null || _getInput === void 0 ? void 0 : _getInput.focus();
23
+ }, [getInput]);
24
+ var blur = (0, _react.useCallback)(function () {
25
+ var _getInput2;
26
+ (_getInput2 = getInput()) === null || _getInput2 === void 0 ? void 0 : _getInput2.blur();
27
+ }, [getInput]);
28
+ var inputProps = (0, _react.useMemo)(function () {
29
+ return multi ? {
30
+ inputStyle: {
31
+ maxWidth: maxWidth - INPUT_MARGIN_RIGHT
32
+ },
33
+ as: _InputAutosize.default
34
+ } : {
35
+ as: 'input'
36
+ };
37
+ }, [maxWidth, multi]);
38
+ return {
39
+ inputProps: inputProps,
40
+ inputRef: inputRef,
41
+ focus: focus,
42
+ blur: blur
43
+ };
44
+ }
45
+ var _default = useInput;
46
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { OverlayTriggerHandle } from '../../internals/Picker/PickerToggleTrigger';
3
+ declare function useMaxWidth(triggerRef: React.RefObject<OverlayTriggerHandle>): number;
4
+ export default useMaxWidth;
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _getWidth = _interopRequireDefault(require("dom-lib/getWidth"));
9
+ function useMaxWidth(triggerRef) {
10
+ var _useState = (0, _react.useState)(100),
11
+ maxWidth = _useState[0],
12
+ setMaxWidth = _useState[1];
13
+ (0, _react.useEffect)(function () {
14
+ var _triggerRef$current;
15
+ // In multiple selection, you need to set a maximum width for the input.
16
+ if ((_triggerRef$current = triggerRef.current) !== null && _triggerRef$current !== void 0 && _triggerRef$current.root) {
17
+ var _triggerRef$current2;
18
+ setMaxWidth((0, _getWidth.default)((_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.root));
19
+ }
20
+ // eslint-disable-next-line react-hooks/exhaustive-deps
21
+ }, []);
22
+ return maxWidth;
23
+ }
24
+ var _default = useMaxWidth;
25
+ exports.default = _default;
@@ -1,3 +1,4 @@
1
1
  import InputPicker from './InputPicker';
2
- export type { InputPickerProps, InputItemDataType } from './InputPicker';
2
+ export type { InputItemDataType } from './hooks/useData';
3
+ export type { InputPickerProps } from './InputPicker';
3
4
  export default InputPicker;
@@ -0,0 +1 @@
1
+ export declare const convertSize: (size?: string) => "lg" | "md" | "sm";
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.convertSize = void 0;
6
+ var convertSize = function convertSize(size) {
7
+ switch (size) {
8
+ case 'lg':
9
+ return 'lg';
10
+ case 'sm':
11
+ case 'xs':
12
+ return 'sm';
13
+ default:
14
+ return 'md';
15
+ }
16
+ };
17
+ exports.convertSize = convertSize;
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _InputPicker = _interopRequireDefault(require("../InputPicker/InputPicker"));
12
- var _InputPickerContext = _interopRequireDefault(require("../InputPicker/InputPickerContext"));
12
+ var _InputPickerContext = require("../InputPicker/InputPickerContext");
13
13
  /**
14
14
  * The `TagInput` component is an enhancement of Input and supports input tags and management tags.
15
15
  *
@@ -41,7 +41,7 @@ var TagInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
41
41
  };
42
42
  });
43
43
  }, [defaultValue, value]);
44
- return /*#__PURE__*/_react.default.createElement(_InputPickerContext.default.Provider, {
44
+ return /*#__PURE__*/_react.default.createElement(_InputPickerContext.TagProvider, {
45
45
  value: contextValue
46
46
  }, /*#__PURE__*/_react.default.createElement(_InputPicker.default, (0, _extends2.default)({}, rest, {
47
47
  "aria-haspopup": false,
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _InputPicker = _interopRequireDefault(require("../InputPicker/InputPicker"));
12
- var _InputPickerContext = _interopRequireDefault(require("../InputPicker/InputPickerContext"));
12
+ var _InputPickerContext = require("../InputPicker/InputPickerContext");
13
13
  /**
14
14
  * `TagPicker` component enables multi-selection by tags and supports new options.
15
15
  *
@@ -32,7 +32,7 @@ var TagPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
32
32
  renderCheckbox: renderMenuItemCheckbox
33
33
  };
34
34
  }, [onTagRemove, renderMenuItemCheckbox, tagProps, trigger]);
35
- return /*#__PURE__*/_react.default.createElement(_InputPickerContext.default.Provider, {
35
+ return /*#__PURE__*/_react.default.createElement(_InputPickerContext.TagProvider, {
36
36
  value: contextValue
37
37
  }, /*#__PURE__*/_react.default.createElement(_InputPicker.default, (0, _extends2.default)({}, rest, {
38
38
  ref: ref
@@ -1466,7 +1466,7 @@ tbody.rs-anim-collapse.rs-anim-in {
1466
1466
  }
1467
1467
  .rs-anim-fade.rs-anim-in {
1468
1468
  opacity: 1;
1469
- pointer-events: unset;
1469
+ pointer-events: auto;
1470
1470
  }
1471
1471
  .rs-auto-complete-menu {
1472
1472
  overflow-y: auto;
@@ -14204,30 +14204,6 @@ textarea.rs-inline-edit-sm .rs-plaintext {
14204
14204
  .rs-plaintext .rs-tag {
14205
14205
  margin: 0;
14206
14206
  }
14207
- .rs-picker-tag-lg .rs-picker-textbox {
14208
- padding-bottom: 6px;
14209
- }
14210
- .rs-picker-tag-lg .rs-picker-textbox .rs-picker-search-input {
14211
- padding-right: 16px;
14212
- margin-top: 6px;
14213
- font-size: 16px;
14214
- }
14215
- .rs-picker-tag-lg .rs-picker-textbox input {
14216
- height: 20px;
14217
- }
14218
- .rs-picker-tag-lg .rs-picker-toggle {
14219
- padding-top: 8px;
14220
- padding-bottom: 8px;
14221
- -webkit-box-shadow: none;
14222
- box-shadow: none;
14223
- }
14224
- .rs-picker-tag-lg .rs-picker-textbox {
14225
- min-height: 40px;
14226
- }
14227
- .rs-picker-tag-lg .rs-picker-tag-list .rs-tag-lg {
14228
- margin-top: 6px;
14229
- margin-right: 6px;
14230
- }
14231
14207
  .rs-picker-tag .rs-picker-textbox,
14232
14208
  .rs-picker-tag-md .rs-picker-textbox {
14233
14209
  padding-bottom: 5px;
@@ -14254,6 +14230,30 @@ textarea.rs-inline-edit-sm .rs-plaintext {
14254
14230
  margin-top: 5px;
14255
14231
  margin-right: 5px;
14256
14232
  }
14233
+ .rs-picker-tag-lg .rs-picker-textbox {
14234
+ padding-bottom: 7px;
14235
+ }
14236
+ .rs-picker-tag-lg .rs-picker-textbox .rs-picker-search-input {
14237
+ padding-right: 16px;
14238
+ margin-top: 7px;
14239
+ font-size: 16px;
14240
+ }
14241
+ .rs-picker-tag-lg .rs-picker-textbox input {
14242
+ height: 20px;
14243
+ }
14244
+ .rs-picker-tag-lg .rs-picker-toggle {
14245
+ padding-top: 9px;
14246
+ padding-bottom: 9px;
14247
+ -webkit-box-shadow: none;
14248
+ box-shadow: none;
14249
+ }
14250
+ .rs-picker-tag-lg .rs-picker-textbox {
14251
+ min-height: 40px;
14252
+ }
14253
+ .rs-picker-tag-lg .rs-picker-tag-list .rs-tag-lg {
14254
+ margin-top: 6px;
14255
+ margin-right: 6px;
14256
+ }
14257
14257
  .rs-picker-tag-sm .rs-picker-textbox {
14258
14258
  padding-bottom: 2px;
14259
14259
  }