rsuite 5.55.1 → 5.57.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 (223) hide show
  1. package/AutoComplete/styles/index.css +3 -3
  2. package/CHANGELOG.md +33 -0
  3. package/CascadeTree/package.json +7 -0
  4. package/CascadeTree/styles/index.css +273 -0
  5. package/CascadeTree/styles/index.less +77 -0
  6. package/CascadeTree/styles/search.less +45 -0
  7. package/Cascader/styles/index.css +190 -195
  8. package/Cascader/styles/index.less +1 -122
  9. package/CheckPicker/styles/index.css +142 -40
  10. package/CheckPicker/styles/index.less +1 -1
  11. package/CheckTree/styles/index.css +143 -41
  12. package/CheckTreePicker/styles/index.css +143 -41
  13. package/CheckTreePicker/styles/index.less +2 -2
  14. package/Checkbox/styles/index.css +159 -36
  15. package/Checkbox/styles/index.less +32 -13
  16. package/DatePicker/styles/index.css +3 -3
  17. package/DateRangePicker/styles/index.css +3 -3
  18. package/InputPicker/styles/index.css +3 -3
  19. package/MultiCascadeTree/package.json +7 -0
  20. package/MultiCascadeTree/styles/index.css +3701 -0
  21. package/MultiCascadeTree/styles/index.less +37 -0
  22. package/MultiCascader/styles/index.css +213 -108
  23. package/MultiCascader/styles/index.less +11 -31
  24. package/Pagination/styles/index.css +3 -3
  25. package/Radio/styles/index.css +133 -19
  26. package/Radio/styles/index.less +28 -12
  27. package/RadioGroup/styles/index.css +1 -1
  28. package/RadioGroup/styles/index.less +1 -1
  29. package/SelectPicker/styles/index.css +3 -3
  30. package/TagGroup/styles/index.css +1 -1
  31. package/TagGroup/styles/index.less +1 -1
  32. package/TagInput/styles/index.css +141 -39
  33. package/TagPicker/styles/index.css +141 -39
  34. package/cjs/@types/common.d.ts +12 -14
  35. package/cjs/CascadeTree/CascadeTree.d.ts +16 -0
  36. package/cjs/CascadeTree/CascadeTree.js +174 -0
  37. package/cjs/CascadeTree/SearchView.d.ts +17 -0
  38. package/cjs/CascadeTree/SearchView.js +106 -0
  39. package/cjs/CascadeTree/TreeView.d.ts +20 -0
  40. package/cjs/{Cascader → CascadeTree}/TreeView.js +42 -33
  41. package/cjs/CascadeTree/hooks/index.d.ts +3 -0
  42. package/cjs/CascadeTree/hooks/index.js +12 -0
  43. package/cjs/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  44. package/cjs/CascadeTree/hooks/usePaths.js +42 -0
  45. package/cjs/CascadeTree/hooks/useSearch.d.ts +17 -0
  46. package/cjs/CascadeTree/hooks/useSearch.js +59 -0
  47. package/cjs/CascadeTree/hooks/useSelect.d.ts +23 -0
  48. package/cjs/CascadeTree/hooks/useSelect.js +64 -0
  49. package/cjs/CascadeTree/index.d.ts +4 -0
  50. package/cjs/CascadeTree/index.js +9 -0
  51. package/cjs/CascadeTree/types.d.ts +66 -0
  52. package/cjs/CascadeTree/types.js +2 -0
  53. package/cjs/CascadeTree/utils.d.ts +32 -0
  54. package/cjs/CascadeTree/utils.js +66 -0
  55. package/cjs/Cascader/Cascader.d.ts +57 -26
  56. package/cjs/Cascader/Cascader.js +180 -247
  57. package/cjs/Cascader/useActive.d.ts +15 -0
  58. package/cjs/Cascader/useActive.js +43 -0
  59. package/cjs/Checkbox/Checkbox.d.ts +67 -25
  60. package/cjs/Checkbox/Checkbox.js +36 -26
  61. package/cjs/InlineEdit/InlineEdit.d.ts +1 -1
  62. package/cjs/InputPicker/InputPicker.js +2 -2
  63. package/cjs/InputPicker/InputPickerContext.d.ts +1 -1
  64. package/cjs/Loader/Loader.js +5 -4
  65. package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  66. package/cjs/MultiCascadeTree/MultiCascadeTree.js +131 -0
  67. package/cjs/MultiCascadeTree/SearchView.d.ts +17 -0
  68. package/cjs/MultiCascadeTree/SearchView.js +117 -0
  69. package/cjs/MultiCascadeTree/TreeView.d.ts +22 -0
  70. package/cjs/{MultiCascader → MultiCascadeTree}/TreeView.js +22 -21
  71. package/cjs/MultiCascadeTree/hooks/index.d.ts +5 -0
  72. package/cjs/MultiCascadeTree/hooks/index.js +16 -0
  73. package/cjs/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  74. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +202 -0
  75. package/cjs/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  76. package/cjs/MultiCascadeTree/hooks/useColumnData.js +52 -0
  77. package/cjs/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  78. package/cjs/MultiCascadeTree/hooks/useFlattenData.js +33 -0
  79. package/cjs/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  80. package/cjs/MultiCascadeTree/hooks/useSearch.js +52 -0
  81. package/cjs/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  82. package/cjs/MultiCascadeTree/hooks/useSelect.js +83 -0
  83. package/cjs/MultiCascadeTree/index.d.ts +4 -0
  84. package/cjs/MultiCascadeTree/index.js +9 -0
  85. package/cjs/MultiCascadeTree/types.d.ts +26 -0
  86. package/cjs/MultiCascadeTree/types.js +2 -0
  87. package/cjs/MultiCascadeTree/utils.d.ts +37 -0
  88. package/cjs/MultiCascadeTree/utils.js +140 -0
  89. package/cjs/MultiCascader/MultiCascader.d.ts +57 -29
  90. package/cjs/MultiCascader/MultiCascader.js +175 -287
  91. package/cjs/Radio/Radio.d.ts +42 -16
  92. package/cjs/Radio/Radio.js +42 -37
  93. package/cjs/RadioGroup/RadioGroup.d.ts +1 -1
  94. package/cjs/RadioGroup/RadioGroup.js +3 -3
  95. package/cjs/TagPicker/index.js +1 -1
  96. package/cjs/Tree/Tree.d.ts +4 -4
  97. package/cjs/index.d.ts +6 -1
  98. package/cjs/index.js +8 -3
  99. package/cjs/internals/Picker/ListCheckItem.d.ts +2 -11
  100. package/cjs/internals/Picker/ListCheckItem.js +8 -6
  101. package/cjs/internals/Picker/PickerToggle.d.ts +4 -5
  102. package/cjs/toaster/ToastContainer.d.ts +9 -2
  103. package/cjs/toaster/index.d.ts +0 -1
  104. package/cjs/toaster/index.js +1 -3
  105. package/cjs/useToaster/index.d.ts +2 -0
  106. package/cjs/useToaster/index.js +9 -0
  107. package/cjs/{toaster → useToaster}/useToaster.d.ts +4 -4
  108. package/cjs/{toaster → useToaster}/useToaster.js +4 -4
  109. package/cjs/utils/index.d.ts +1 -0
  110. package/cjs/utils/index.js +5 -2
  111. package/dist/rsuite-no-reset-rtl.css +322 -124
  112. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  113. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  114. package/dist/rsuite-no-reset.css +322 -124
  115. package/dist/rsuite-no-reset.min.css +1 -1
  116. package/dist/rsuite-no-reset.min.css.map +1 -1
  117. package/dist/rsuite-rtl.css +322 -124
  118. package/dist/rsuite-rtl.min.css +1 -1
  119. package/dist/rsuite-rtl.min.css.map +1 -1
  120. package/dist/rsuite.css +322 -124
  121. package/dist/rsuite.js +248 -50
  122. package/dist/rsuite.js.map +1 -1
  123. package/dist/rsuite.min.css +1 -1
  124. package/dist/rsuite.min.css.map +1 -1
  125. package/dist/rsuite.min.js +1 -1
  126. package/dist/rsuite.min.js.map +1 -1
  127. package/esm/@types/common.d.ts +12 -14
  128. package/esm/CascadeTree/CascadeTree.d.ts +16 -0
  129. package/esm/CascadeTree/CascadeTree.js +167 -0
  130. package/esm/CascadeTree/SearchView.d.ts +17 -0
  131. package/esm/CascadeTree/SearchView.js +100 -0
  132. package/esm/CascadeTree/TreeView.d.ts +20 -0
  133. package/esm/{Cascader → CascadeTree}/TreeView.js +42 -33
  134. package/esm/CascadeTree/hooks/index.d.ts +3 -0
  135. package/esm/CascadeTree/hooks/index.js +4 -0
  136. package/esm/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  137. package/esm/CascadeTree/hooks/usePaths.js +36 -0
  138. package/esm/CascadeTree/hooks/useSearch.d.ts +17 -0
  139. package/esm/CascadeTree/hooks/useSearch.js +54 -0
  140. package/esm/CascadeTree/hooks/useSelect.d.ts +23 -0
  141. package/esm/CascadeTree/hooks/useSelect.js +59 -0
  142. package/esm/CascadeTree/index.d.ts +4 -0
  143. package/esm/CascadeTree/index.js +3 -0
  144. package/esm/CascadeTree/types.d.ts +66 -0
  145. package/esm/CascadeTree/types.js +1 -0
  146. package/esm/CascadeTree/utils.d.ts +32 -0
  147. package/esm/CascadeTree/utils.js +61 -0
  148. package/esm/Cascader/Cascader.d.ts +57 -26
  149. package/esm/Cascader/Cascader.js +167 -233
  150. package/esm/Cascader/useActive.d.ts +15 -0
  151. package/esm/Cascader/useActive.js +37 -0
  152. package/esm/Checkbox/Checkbox.d.ts +67 -25
  153. package/esm/Checkbox/Checkbox.js +38 -28
  154. package/esm/InlineEdit/InlineEdit.d.ts +1 -1
  155. package/esm/InputPicker/InputPicker.js +2 -2
  156. package/esm/InputPicker/InputPickerContext.d.ts +1 -1
  157. package/esm/Loader/Loader.js +6 -5
  158. package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  159. package/esm/MultiCascadeTree/MultiCascadeTree.js +125 -0
  160. package/esm/MultiCascadeTree/SearchView.d.ts +17 -0
  161. package/esm/MultiCascadeTree/SearchView.js +111 -0
  162. package/esm/MultiCascadeTree/TreeView.d.ts +22 -0
  163. package/esm/{MultiCascader → MultiCascadeTree}/TreeView.js +22 -21
  164. package/esm/MultiCascadeTree/hooks/index.d.ts +5 -0
  165. package/esm/MultiCascadeTree/hooks/index.js +6 -0
  166. package/esm/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  167. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +197 -0
  168. package/esm/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  169. package/esm/MultiCascadeTree/hooks/useColumnData.js +46 -0
  170. package/esm/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  171. package/esm/MultiCascadeTree/hooks/useFlattenData.js +28 -0
  172. package/esm/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  173. package/esm/MultiCascadeTree/hooks/useSearch.js +47 -0
  174. package/esm/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  175. package/esm/MultiCascadeTree/hooks/useSelect.js +77 -0
  176. package/esm/MultiCascadeTree/index.d.ts +4 -0
  177. package/esm/MultiCascadeTree/index.js +3 -0
  178. package/esm/MultiCascadeTree/types.d.ts +26 -0
  179. package/esm/MultiCascadeTree/types.js +1 -0
  180. package/esm/MultiCascadeTree/utils.d.ts +37 -0
  181. package/esm/MultiCascadeTree/utils.js +130 -0
  182. package/esm/MultiCascader/MultiCascader.d.ts +57 -29
  183. package/esm/MultiCascader/MultiCascader.js +168 -279
  184. package/esm/Radio/Radio.d.ts +42 -16
  185. package/esm/Radio/Radio.js +43 -38
  186. package/esm/RadioGroup/RadioGroup.d.ts +1 -1
  187. package/esm/RadioGroup/RadioGroup.js +5 -5
  188. package/esm/TagPicker/index.js +1 -1
  189. package/esm/Tree/Tree.d.ts +4 -4
  190. package/esm/index.d.ts +6 -1
  191. package/esm/index.js +5 -1
  192. package/esm/internals/Picker/ListCheckItem.d.ts +2 -11
  193. package/esm/internals/Picker/ListCheckItem.js +8 -6
  194. package/esm/internals/Picker/PickerToggle.d.ts +4 -5
  195. package/esm/toaster/ToastContainer.d.ts +9 -2
  196. package/esm/toaster/index.d.ts +0 -1
  197. package/esm/toaster/index.js +0 -1
  198. package/esm/useToaster/index.d.ts +2 -0
  199. package/esm/useToaster/index.js +3 -0
  200. package/esm/{toaster → useToaster}/useToaster.d.ts +4 -4
  201. package/esm/{toaster → useToaster}/useToaster.js +4 -4
  202. package/esm/utils/index.d.ts +1 -0
  203. package/esm/utils/index.js +2 -1
  204. package/internals/Picker/styles/index.less +1 -1
  205. package/package.json +1 -1
  206. package/styles/index.less +2 -0
  207. package/useToaster/package.json +7 -0
  208. package/useToaster/styles/index.css +239 -0
  209. package/useToaster/styles/index.less +1 -0
  210. package/cjs/Cascader/DropdownMenu.d.ts +0 -24
  211. package/cjs/Cascader/DropdownMenu.js +0 -175
  212. package/cjs/Cascader/TreeView.d.ts +0 -24
  213. package/cjs/Cascader/utils.js +0 -79
  214. package/cjs/MultiCascader/TreeView.d.ts +0 -25
  215. package/cjs/MultiCascader/utils.d.ts +0 -71
  216. package/cjs/MultiCascader/utils.js +0 -382
  217. package/esm/Cascader/DropdownMenu.d.ts +0 -24
  218. package/esm/Cascader/DropdownMenu.js +0 -168
  219. package/esm/Cascader/TreeView.d.ts +0 -24
  220. package/esm/Cascader/utils.js +0 -74
  221. package/esm/MultiCascader/TreeView.d.ts +0 -25
  222. package/esm/MultiCascader/utils.d.ts +0 -71
  223. package/esm/MultiCascader/utils.js +0 -369
@@ -1,31 +1,34 @@
1
1
  'use client';
2
+ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
3
  import _extends from "@babel/runtime/helpers/esm/extends";
3
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import React, { useCallback, useContext } from 'react';
5
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
6
+ import React, { useContext } from 'react';
5
7
  import PropTypes from 'prop-types';
6
8
  import { RadioContext } from '../RadioGroup/RadioGroup';
7
- import { useClassNames, useControlled, partitionHTMLProps } from '../utils';
9
+ import { useClassNames, useControlled, useEventCallback, useUniqueId, partitionHTMLProps } from '../utils';
8
10
  import { refType } from '../internals/propTypes';
9
11
  /**
10
12
  * The `Radio` component is a simple radio button.
11
13
  * @see https://rsuitejs.com/components/radio
12
14
  */
13
15
  var Radio = /*#__PURE__*/React.forwardRef(function (props, ref) {
14
- var _useContext = useContext(RadioContext),
15
- groupValue = _useContext.value,
16
- controlled = _useContext.controlled,
17
- inlineContext = _useContext.inline,
18
- nameContext = _useContext.name,
19
- disabledContext = _useContext.disabled,
20
- readOnlyContext = _useContext.readOnly,
21
- plaintextContext = _useContext.plaintext,
22
- onGroupChange = _useContext.onChange;
16
+ var radioContext = useContext(RadioContext);
17
+ var _ref = radioContext !== null && radioContext !== void 0 ? radioContext : {},
18
+ groupValue = _ref.value,
19
+ inlineContext = _ref.inline,
20
+ nameContext = _ref.name,
21
+ disabledContext = _ref.disabled,
22
+ readOnlyContext = _ref.readOnly,
23
+ plaintextContext = _ref.plaintext,
24
+ onGroupChange = _ref.onChange;
23
25
  var _props$as = props.as,
24
26
  Component = _props$as === void 0 ? 'div' : _props$as,
25
27
  title = props.title,
26
28
  className = props.className,
27
29
  children = props.children,
28
30
  checkedProp = props.checked,
31
+ color = props.color,
29
32
  defaultChecked = props.defaultChecked,
30
33
  _props$classPrefix = props.classPrefix,
31
34
  classPrefix = _props$classPrefix === void 0 ? 'radio' : _props$classPrefix,
@@ -46,15 +49,16 @@ var Radio = /*#__PURE__*/React.forwardRef(function (props, ref) {
46
49
  value = props.value,
47
50
  onChange = props.onChange,
48
51
  onClick = props.onClick,
49
- rest = _objectWithoutPropertiesLoose(props, ["as", "title", "className", "children", "checked", "defaultChecked", "classPrefix", "tabIndex", "inputRef", "inputProps", "disabled", "readOnly", "plaintext", "inline", "name", "value", "onChange", "onClick"]);
52
+ rest = _objectWithoutPropertiesLoose(props, ["as", "title", "className", "children", "checked", "color", "defaultChecked", "classPrefix", "tabIndex", "inputRef", "inputProps", "disabled", "readOnly", "plaintext", "inline", "name", "value", "onChange", "onClick"]);
50
53
  var _useControlled = useControlled(typeof groupValue !== 'undefined' ? groupValue === value : checkedProp, defaultChecked || false),
51
54
  checked = _useControlled[0],
52
- setChecked = _useControlled[1];
55
+ setChecked = _useControlled[1],
56
+ selfControlled = _useControlled[2];
53
57
  var _useClassNames = useClassNames(classPrefix),
54
58
  merge = _useClassNames.merge,
55
59
  withClassPrefix = _useClassNames.withClassPrefix,
56
60
  prefix = _useClassNames.prefix;
57
- var classes = merge(className, withClassPrefix({
61
+ var classes = merge(className, withClassPrefix(color, {
58
62
  inline: inline,
59
63
  disabled: disabled,
60
64
  checked: checked
@@ -62,59 +66,62 @@ var Radio = /*#__PURE__*/React.forwardRef(function (props, ref) {
62
66
  var _partitionHTMLProps = partitionHTMLProps(rest),
63
67
  htmlInputProps = _partitionHTMLProps[0],
64
68
  restProps = _partitionHTMLProps[1];
65
- var handleChange = useCallback(function (event) {
69
+ var handleChange = useEventCallback(function (event) {
66
70
  if (disabled || readOnly) {
67
71
  return;
68
72
  }
69
73
  setChecked(true);
70
74
  onGroupChange === null || onGroupChange === void 0 ? void 0 : onGroupChange(value, event);
71
75
  onChange === null || onChange === void 0 ? void 0 : onChange(value, true, event);
72
- }, [disabled, onChange, onGroupChange, readOnly, setChecked, value]);
76
+ });
77
+ var controlled = radioContext ? true : selfControlled;
73
78
  if (typeof controlled !== 'undefined') {
74
79
  // In uncontrolled situations, use defaultChecked instead of checked
75
80
  htmlInputProps[controlled ? 'checked' : 'defaultChecked'] = checked;
76
81
  }
77
- var input = /*#__PURE__*/React.createElement("span", {
78
- className: prefix('wrapper')
82
+ var labelId = useUniqueId('label-');
83
+ if (plaintext) {
84
+ return checked ? /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {
85
+ ref: ref,
86
+ className: classes
87
+ }), children) : null;
88
+ }
89
+ var control = /*#__PURE__*/React.createElement("span", {
90
+ className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["control"])))
79
91
  }, /*#__PURE__*/React.createElement("input", _extends({}, htmlInputProps, inputProps, {
92
+ "aria-labelledby": labelId,
93
+ "aria-checked": checked,
94
+ "aria-disabled": disabled,
80
95
  ref: inputRef,
81
96
  type: "radio",
82
97
  name: name,
83
98
  value: value,
84
99
  tabIndex: tabIndex,
100
+ readOnly: readOnly,
85
101
  disabled: disabled,
86
- onChange: handleChange,
87
- onClick: useCallback(function (event) {
88
- return event.stopPropagation();
89
- }, [])
102
+ onChange: handleChange
90
103
  })), /*#__PURE__*/React.createElement("span", {
91
- className: prefix('inner'),
104
+ className: prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["inner"]))),
92
105
  "aria-hidden": true
93
106
  }));
94
- if (plaintext) {
95
- return checked ? /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {
96
- ref: ref,
97
- className: classes
98
- }), children) : null;
99
- }
100
107
  return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {
101
108
  ref: ref,
102
109
  onClick: onClick,
103
- className: classes,
104
- "aria-checked": checked,
105
- "aria-disabled": disabled
110
+ className: classes
106
111
  }), /*#__PURE__*/React.createElement("div", {
107
- className: prefix('checker')
112
+ className: prefix(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["checker"])))
108
113
  }, children ? /*#__PURE__*/React.createElement("label", {
109
114
  title: title
110
- }, input, children) : input));
115
+ }, control, /*#__PURE__*/React.createElement("span", {
116
+ className: prefix(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["label"]))),
117
+ id: labelId
118
+ }, children)) : control));
111
119
  });
112
120
  Radio.displayName = 'Radio';
113
121
  Radio.propTypes = {
114
122
  id: PropTypes.string,
115
123
  name: PropTypes.string,
116
124
  inline: PropTypes.bool,
117
- title: PropTypes.string,
118
125
  disabled: PropTypes.bool,
119
126
  checked: PropTypes.bool,
120
127
  defaultChecked: PropTypes.bool,
@@ -124,8 +131,6 @@ Radio.propTypes = {
124
131
  classPrefix: PropTypes.string,
125
132
  value: PropTypes.any,
126
133
  inputRef: refType,
127
- onChange: PropTypes.func,
128
- onClick: PropTypes.func,
129
- tabIndex: PropTypes.number
134
+ onChange: PropTypes.func
130
135
  };
131
136
  export default Radio;
@@ -21,7 +21,7 @@ export interface RadioGroupProps<T = ValueType> extends WithAsProps, FormControl
21
21
  /** Primary content */
22
22
  children?: React.ReactNode;
23
23
  }
24
- export declare const RadioContext: React.Context<RadioContextProps>;
24
+ export declare const RadioContext: React.Context<RadioContextProps | undefined>;
25
25
  /**
26
26
  * The `RadioGroup` component is used to group a collection of `Radio` components.
27
27
  * @see https://rsuitejs.com/components/radio/#radio-group
@@ -1,12 +1,12 @@
1
1
  'use client';
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import React, { useCallback, useMemo } from 'react';
4
+ import React, { useMemo } from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { useClassNames, useControlled } from '../utils';
6
+ import { useClassNames, useControlled, useEventCallback } from '../utils';
7
7
  import { oneOf } from '../internals/propTypes';
8
8
  import Plaintext from '../internals/Plaintext';
9
- export var RadioContext = /*#__PURE__*/React.createContext({});
9
+ export var RadioContext = /*#__PURE__*/React.createContext(void 0);
10
10
 
11
11
  /**
12
12
  * The `RadioGroup` component is used to group a collection of `Radio` components.
@@ -40,10 +40,10 @@ var RadioGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
40
40
  value = _useControlled[0],
41
41
  setValue = _useControlled[1],
42
42
  isControlled = _useControlled[2];
43
- var handleChange = useCallback(function (nextValue, event) {
43
+ var handleChange = useEventCallback(function (nextValue, event) {
44
44
  setValue(nextValue);
45
45
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue !== null && nextValue !== void 0 ? nextValue : '', event);
46
- }, [onChange, setValue]);
46
+ });
47
47
  var contextValue = useMemo(function () {
48
48
  return {
49
49
  inline: inline,
@@ -23,7 +23,7 @@ var TagPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
23
23
  trigger: trigger,
24
24
  tagProps: tagProps,
25
25
  onTagRemove: onTagRemove,
26
- renderMenuItemCheckbox: renderMenuItemCheckbox
26
+ renderCheckbox: renderMenuItemCheckbox
27
27
  };
28
28
  }, [onTagRemove, renderMenuItemCheckbox, tagProps, trigger]);
29
29
  return /*#__PURE__*/React.createElement(InputPickerContext.Provider, {
@@ -77,11 +77,11 @@ export interface TreeBaseProps<ValueType = string | number, ItemDataType = Recor
77
77
  /** load node children data asynchronously */
78
78
  getChildren?: (activeNode: ItemDataType) => ItemDataType[] | Promise<ItemDataType>;
79
79
  }
80
- export interface TreeProps<ValueType = string | number> extends TreeBaseProps<ValueType, ItemDataType>, TreeDragProps<ItemDataType> {
80
+ export interface TreeProps<T = string | number> extends TreeBaseProps<T, ItemDataType<T>>, TreeDragProps<ItemDataType<T>> {
81
81
  /** Tree Data */
82
- data: ItemDataType[];
82
+ data: ItemDataType<T>[];
83
83
  /** Selected value */
84
- value?: ValueType;
84
+ value?: T;
85
85
  /** Whether using virtualized list */
86
86
  virtualized?: boolean;
87
87
  /** Tree data structure Label property name */
@@ -91,7 +91,7 @@ export interface TreeProps<ValueType = string | number> extends TreeBaseProps<Va
91
91
  /** Tree data structure Children property name */
92
92
  childrenKey?: string;
93
93
  /** Default selected Value */
94
- defaultValue?: ValueType;
94
+ defaultValue?: T;
95
95
  }
96
96
  /**
97
97
  * The `Tree` component is used to display hierarchical data.
package/esm/index.d.ts CHANGED
@@ -32,8 +32,9 @@ export { default as Avatar } from './Avatar';
32
32
  export type { AvatarProps } from './Avatar';
33
33
  export { default as AvatarGroup } from './AvatarGroup';
34
34
  export type { AvatarGroupProps } from './AvatarGroup';
35
- export { default as toaster, useToaster } from './toaster';
35
+ export { default as toaster } from './toaster';
36
36
  export type { Toaster } from './toaster';
37
+ export { default as useToaster } from './useToaster';
37
38
  export { default as Dropdown } from './Dropdown';
38
39
  export type { DropdownProps, DropdownMenuItemProps, DropdownMenuProps } from './Dropdown';
39
40
  export { default as Nav } from './Nav';
@@ -114,6 +115,10 @@ export { default as Tree } from './Tree';
114
115
  export type { TreeProps } from './Tree';
115
116
  export { default as CheckTree } from './CheckTree';
116
117
  export type { CheckTreeProps } from './CheckTree';
118
+ export { default as CascadeTree } from './CascadeTree';
119
+ export type { CascadeTreeProps } from './CascadeTree';
120
+ export { default as MultiCascadeTree } from './MultiCascadeTree';
121
+ export type { MultiCascadeTreeProps } from './MultiCascadeTree';
117
122
  export { default as Panel } from './Panel';
118
123
  export type { PanelProps } from './Panel';
119
124
  export { default as Accordion } from './Accordion';
package/esm/index.js CHANGED
@@ -17,7 +17,9 @@ export { default as Placeholder } from './Placeholder';
17
17
  export { default as Badge } from './Badge';
18
18
  export { default as Avatar } from './Avatar';
19
19
  export { default as AvatarGroup } from './AvatarGroup';
20
- export { default as toaster, useToaster } from './toaster';
20
+ export { default as toaster } from './toaster';
21
+ export { default as useToaster } from './useToaster';
22
+
21
23
  // Nav
22
24
  export { default as Dropdown } from './Dropdown';
23
25
  export { default as Nav } from './Nav';
@@ -61,6 +63,8 @@ export { default as InlineEdit } from './InlineEdit';
61
63
  // Data display
62
64
  export { default as Tree } from './Tree';
63
65
  export { default as CheckTree } from './CheckTree';
66
+ export { default as CascadeTree } from './CascadeTree';
67
+ export { default as MultiCascadeTree } from './MultiCascadeTree';
64
68
  export { default as Panel } from './Panel';
65
69
  export { default as Accordion } from './Accordion';
66
70
  export { default as PanelGroup } from './PanelGroup';
@@ -1,23 +1,14 @@
1
1
  import React from 'react';
2
2
  import { CheckboxProps } from '../../Checkbox';
3
3
  import { WithAsProps, RsRefForwardingComponent } from '../../@types/common';
4
- export interface ListCheckItemProps extends WithAsProps {
4
+ export interface ListCheckItemProps extends WithAsProps, Omit<CheckboxProps, 'onSelect'> {
5
5
  active?: boolean;
6
6
  checkboxAs?: React.ElementType | string;
7
- classPrefix?: string;
8
- disabled?: boolean;
9
- checkable?: boolean;
10
- indeterminate?: boolean;
11
- value?: string | number;
12
7
  focus?: boolean;
13
- title?: string;
14
- className?: string;
15
- children?: React.ReactNode;
16
8
  onSelect?: (value: any, event: React.SyntheticEvent, checked: boolean) => void;
17
9
  onCheck?: (value: any, event: React.SyntheticEvent, checked: boolean) => void;
18
10
  onSelectItem?: (value: any, event: React.SyntheticEvent, checked: boolean) => void;
19
- onKeyDown?: (event: React.KeyboardEvent) => void;
20
- renderMenuItemCheckbox?: (checkboxProps: CheckboxProps) => React.ReactNode;
11
+ renderCheckbox?: (checkboxProps: CheckboxProps) => React.ReactNode;
21
12
  }
22
13
  declare const ListCheckItem: RsRefForwardingComponent<'div', ListCheckItemProps>;
23
14
  export default ListCheckItem;
@@ -24,12 +24,13 @@ var ListCheckItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
24
24
  children = props.children,
25
25
  className = props.className,
26
26
  indeterminate = props.indeterminate,
27
+ labelClickable = props.labelClickable,
27
28
  onKeyDown = props.onKeyDown,
28
29
  onSelect = props.onSelect,
29
30
  onCheck = props.onCheck,
30
31
  onSelectItem = props.onSelectItem,
31
- renderMenuItemCheckbox = props.renderMenuItemCheckbox,
32
- rest = _objectWithoutPropertiesLoose(props, ["active", "as", "checkboxAs", "classPrefix", "checkable", "disabled", "value", "focus", "children", "className", "indeterminate", "onKeyDown", "onSelect", "onCheck", "onSelectItem", "renderMenuItemCheckbox"]);
32
+ renderCheckbox = props.renderCheckbox,
33
+ rest = _objectWithoutPropertiesLoose(props, ["active", "as", "checkboxAs", "classPrefix", "checkable", "disabled", "value", "focus", "children", "className", "indeterminate", "labelClickable", "onKeyDown", "onSelect", "onCheck", "onSelectItem", "renderCheckbox"]);
33
34
  var handleChange = useEventCallback(function (value, checked, event) {
34
35
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, event, checked);
35
36
  });
@@ -53,13 +54,14 @@ var ListCheckItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
53
54
  focus: focus
54
55
  });
55
56
  var checkboxProps = {
56
- value: value,
57
- disabled: disabled,
58
- indeterminate: indeterminate,
59
57
  checkable: checkable,
60
58
  children: children,
61
59
  checked: active,
62
60
  className: checkboxItemClasses,
61
+ disabled: disabled,
62
+ value: value,
63
+ indeterminate: indeterminate,
64
+ labelClickable: labelClickable,
63
65
  onKeyDown: disabled ? undefined : onKeyDown,
64
66
  onChange: handleChange,
65
67
  onClick: handleSelectItem,
@@ -75,7 +77,7 @@ var ListCheckItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
75
77
  ref: ref,
76
78
  className: merge(className, rootPrefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["picker-list-item"])))),
77
79
  tabIndex: -1
78
- }), renderMenuItemCheckbox ? renderMenuItemCheckbox(checkboxProps) : /*#__PURE__*/React.createElement(CheckboxItem, _extends({
80
+ }), renderCheckbox ? renderCheckbox(checkboxProps) : /*#__PURE__*/React.createElement(CheckboxItem, _extends({
79
81
  role: "checkbox"
80
82
  }, checkboxProps)));
81
83
  });
@@ -1,9 +1,8 @@
1
1
  import React from 'react';
2
2
  import ToggleButton, { ToggleButtonProps } from './ToggleButton';
3
- import { RsRefForwardingComponent, TypeAttributes } from '../../@types/common';
3
+ import { RsRefForwardingComponent, TypeAttributes, DataItemValue } from '../../@types/common';
4
4
  import { IconProps } from '@rsuite/icons/lib/Icon';
5
- declare type ValueType = string | number;
6
- export interface PickerToggleProps extends ToggleButtonProps {
5
+ export interface PickerToggleProps<T = DataItemValue> extends ToggleButtonProps {
7
6
  active?: boolean;
8
7
  hasValue?: boolean;
9
8
  cleanable?: boolean;
@@ -28,8 +27,8 @@ export interface PickerToggleProps extends ToggleButtonProps {
28
27
  loading?: boolean;
29
28
  label?: React.ReactNode;
30
29
  name?: string;
31
- inputValue?: ValueType | ValueType[];
32
- focusItemValue?: ValueType | null;
30
+ inputValue?: T | T[];
31
+ focusItemValue?: T | null;
33
32
  onClean?: (event: React.MouseEvent) => void;
34
33
  }
35
34
  declare const PickerToggle: RsRefForwardingComponent<typeof ToggleButton, PickerToggleProps>;
@@ -3,9 +3,16 @@ import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
3
  export declare type PlacementType = 'topCenter' | 'bottomCenter' | 'topStart' | 'topEnd' | 'bottomStart' | 'bottomEnd';
4
4
  export declare const toastPlacements: PlacementType[];
5
5
  export interface ToastContainerProps extends WithAsProps {
6
- /** The placement of the message box */
6
+ /**
7
+ * The placement of the message box。
8
+ *
9
+ * @default 'topCenter'
10
+ */
7
11
  placement?: PlacementType;
8
- /** Set the message to appear in the specified container */
12
+ /**
13
+ * Set the message to appear in the specified container
14
+ *
15
+ */
9
16
  container?: HTMLElement | (() => HTMLElement);
10
17
  /** The number of milliseconds to wait before automatically closing a message. */
11
18
  duration?: number;
@@ -1,4 +1,3 @@
1
1
  import toaster from './toaster';
2
2
  export type { Toaster } from './toaster';
3
- export { default as useToaster } from './useToaster';
4
3
  export default toaster;
@@ -1,4 +1,3 @@
1
1
  'use client';
2
2
  import toaster from './toaster';
3
- export { default as useToaster } from './useToaster';
4
3
  export default toaster;
@@ -0,0 +1,2 @@
1
+ import useToaster from './useToaster';
2
+ export default useToaster;
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ import useToaster from './useToaster';
3
+ export default useToaster;
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
- import { ToastContainerProps } from './ToastContainer';
2
+ import { ToastContainerProps } from '../toaster/ToastContainer';
3
3
  /**
4
- * The 'useToaster' hook is a wrapper for the 'toaster' module.
4
+ * Toaster display brief, temporary notifications of actions, errors, or other events in an application.
5
+ * It is often used with the Message and Notification components.
5
6
  * @returns toaster { push, remove, clear }
6
7
  *
7
- * @see https://rsuitejs.com/components/message/
8
- * @see https://rsuitejs.com/components/notification/
8
+ * @see https://rsuitejs.com/components/use-toaster/
9
9
  */
10
10
  declare const useToaster: () => {
11
11
  /**
@@ -1,14 +1,14 @@
1
1
  'use client';
2
2
  import { useMemo } from 'react';
3
- import toaster from './toaster';
3
+ import toaster from '../toaster';
4
4
  import { useCustom } from '../utils';
5
5
 
6
6
  /**
7
- * The 'useToaster' hook is a wrapper for the 'toaster' module.
7
+ * Toaster display brief, temporary notifications of actions, errors, or other events in an application.
8
+ * It is often used with the Message and Notification components.
8
9
  * @returns toaster { push, remove, clear }
9
10
  *
10
- * @see https://rsuitejs.com/components/message/
11
- * @see https://rsuitejs.com/components/notification/
11
+ * @see https://rsuitejs.com/components/use-toaster/
12
12
  */
13
13
  var useToaster = function useToaster() {
14
14
  var _useCustom = useCustom(),
@@ -46,3 +46,4 @@ export { default as useUniqueId } from './useUniqueId';
46
46
  export { default as useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
47
47
  export { default as useInternalId } from './useInternalId';
48
48
  export { default as useEnsuredRef } from './useEnsuredRef';
49
+ export { useMap } from './useMap';
@@ -48,4 +48,5 @@ export { default as useMount } from './useMount';
48
48
  export { default as useUniqueId } from './useUniqueId';
49
49
  export { default as useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
50
50
  export { default as useInternalId } from './useInternalId';
51
- export { default as useEnsuredRef } from './useEnsuredRef';
51
+ export { default as useEnsuredRef } from './useEnsuredRef';
52
+ export { useMap } from './useMap';
@@ -397,7 +397,7 @@
397
397
  }
398
398
  }
399
399
 
400
- .rs-checkbox-wrapper {
400
+ .rs-checkbox-control {
401
401
  left: @picker-item-content-padding-horizontal;
402
402
 
403
403
  .grouped &,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.55.1",
3
+ "version": "5.57.0",
4
4
  "description": "A suite of react components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
package/styles/index.less CHANGED
@@ -13,6 +13,7 @@
13
13
  @import '../Calendar/styles/index';
14
14
  @import '../Carousel/styles/index';
15
15
  @import '../Cascader/styles/index';
16
+ @import '../CascadeTree/styles/index';
16
17
  @import '../Checkbox/styles/index';
17
18
  @import '../CheckboxGroup/styles/index';
18
19
  @import '../CheckPicker/styles/index';
@@ -46,6 +47,7 @@
46
47
  @import '../Loader/styles/index';
47
48
  @import '../Message/styles/index';
48
49
  @import '../Modal/styles/index';
50
+ @import '../MultiCascadeTree/styles/index';
49
51
  @import '../MultiCascader/styles/index';
50
52
  @import '../Nav/styles/index';
51
53
  @import '../Navbar/styles/index';
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "rsuite/useToaster",
3
+ "private": true,
4
+ "main": "../cjs/useToaster/index.js",
5
+ "module": "../esm/useToaster/index.js",
6
+ "types": "../esm/useToaster/index.d.ts"
7
+ }