rsuite 5.48.1 → 5.50.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 (203) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/Cascader/styles/index.less +5 -4
  3. package/DatePicker/styles/index.less +18 -11
  4. package/DateRangeInput/package.json +7 -0
  5. package/DateRangePicker/styles/index.less +20 -0
  6. package/Dropdown/styles/index.less +5 -4
  7. package/Dropdown/styles/mixin.less +0 -11
  8. package/InputGroup/styles/index.less +1 -0
  9. package/Picker/styles/index.less +51 -24
  10. package/Picker/styles/mixin.less +17 -13
  11. package/README.md +34 -24
  12. package/Sidenav/styles/index.less +2 -0
  13. package/TagInput/styles/index.less +1 -1
  14. package/cjs/AutoComplete/AutoComplete.js +25 -26
  15. package/cjs/Calendar/Calendar.d.ts +5 -1
  16. package/cjs/Calendar/CalendarContainer.d.ts +7 -1
  17. package/cjs/Calendar/CalendarContainer.js +11 -4
  18. package/cjs/Calendar/CalendarHeader.js +2 -0
  19. package/cjs/Calendar/MonthDropdown.js +7 -2
  20. package/cjs/Calendar/MonthDropdownItem.js +2 -2
  21. package/cjs/Calendar/Table.js +6 -1
  22. package/cjs/Calendar/TimeDropdown.js +17 -10
  23. package/cjs/Calendar/types.d.ts +1 -0
  24. package/cjs/Cascader/Cascader.js +46 -48
  25. package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
  26. package/cjs/CheckPicker/CheckPicker.js +33 -36
  27. package/cjs/CheckTreePicker/CheckTreePicker.js +61 -64
  28. package/cjs/CustomProvider/CustomProvider.d.ts +13 -0
  29. package/cjs/CustomProvider/CustomProvider.js +2 -2
  30. package/cjs/DateInput/DateField.d.ts +9 -31
  31. package/cjs/DateInput/DateField.js +61 -12
  32. package/cjs/DateInput/DateInput.d.ts +7 -2
  33. package/cjs/DateInput/DateInput.js +74 -92
  34. package/cjs/DateInput/index.d.ts +4 -0
  35. package/cjs/DateInput/index.js +19 -1
  36. package/cjs/DateInput/useDateInputState.d.ts +7 -31
  37. package/cjs/DateInput/useDateInputState.js +39 -15
  38. package/cjs/DateInput/useIsFocused.d.ts +7 -0
  39. package/cjs/DateInput/useIsFocused.js +28 -0
  40. package/cjs/DateInput/useKeyboardInputEvent.d.ts +10 -0
  41. package/cjs/DateInput/useKeyboardInputEvent.js +44 -0
  42. package/cjs/DateInput/utils.d.ts +23 -1
  43. package/cjs/DateInput/utils.js +155 -51
  44. package/cjs/DatePicker/DatePicker.d.ts +25 -8
  45. package/cjs/DatePicker/DatePicker.js +208 -241
  46. package/cjs/DatePicker/Toolbar.js +5 -22
  47. package/cjs/DatePicker/utils.d.ts +5 -1
  48. package/cjs/DatePicker/utils.js +17 -1
  49. package/cjs/DateRangeInput/DateRangeInput.d.ts +29 -0
  50. package/cjs/DateRangeInput/DateRangeInput.js +244 -0
  51. package/cjs/DateRangeInput/index.d.ts +3 -0
  52. package/cjs/DateRangeInput/index.js +9 -0
  53. package/cjs/DateRangeInput/utils.d.ts +61 -0
  54. package/cjs/DateRangeInput/utils.js +146 -0
  55. package/cjs/DateRangePicker/Calendar.js +24 -23
  56. package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
  57. package/cjs/DateRangePicker/DateRangePicker.js +251 -203
  58. package/cjs/DateRangePicker/types.d.ts +11 -3
  59. package/cjs/DateRangePicker/utils.d.ts +2 -1
  60. package/cjs/DateRangePicker/utils.js +7 -5
  61. package/cjs/FormControl/FormControl.d.ts +11 -1
  62. package/cjs/FormControl/FormControl.js +6 -5
  63. package/cjs/Input/Input.d.ts +11 -0
  64. package/cjs/Input/Input.js +11 -8
  65. package/cjs/InputPicker/InputPicker.js +62 -63
  66. package/cjs/MultiCascader/MultiCascader.js +40 -42
  67. package/cjs/Overlay/OverlayTrigger.d.ts +3 -0
  68. package/cjs/Overlay/OverlayTrigger.js +5 -0
  69. package/cjs/Picker/PickerIndicator.d.ts +10 -0
  70. package/cjs/Picker/PickerIndicator.js +49 -0
  71. package/cjs/Picker/PickerLabel.d.ts +9 -0
  72. package/cjs/Picker/PickerLabel.js +23 -0
  73. package/cjs/Picker/PickerToggle.d.ts +17 -22
  74. package/cjs/Picker/PickerToggle.js +52 -177
  75. package/cjs/Picker/index.d.ts +3 -0
  76. package/cjs/Picker/index.js +10 -1
  77. package/cjs/Picker/usePickerRef.d.ts +19 -0
  78. package/cjs/Picker/usePickerRef.js +88 -0
  79. package/cjs/Picker/utils.d.ts +5 -9
  80. package/cjs/Picker/utils.js +22 -89
  81. package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
  82. package/cjs/SelectPicker/SelectPicker.js +39 -42
  83. package/cjs/TreePicker/TreePicker.js +72 -75
  84. package/cjs/index.d.ts +2 -0
  85. package/cjs/index.js +3 -1
  86. package/cjs/locales/index.d.ts +2 -2
  87. package/cjs/utils/constants.d.ts +2 -1
  88. package/cjs/utils/constants.js +1 -0
  89. package/cjs/utils/dateUtils.d.ts +0 -1
  90. package/cjs/utils/dateUtils.js +0 -6
  91. package/cjs/utils/getStringLength.d.ts +2 -0
  92. package/cjs/utils/getStringLength.js +18 -0
  93. package/cjs/utils/index.d.ts +3 -0
  94. package/cjs/utils/index.js +11 -2
  95. package/cjs/utils/useCustom.js +1 -1
  96. package/cjs/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  97. package/cjs/utils/useIsomorphicLayoutEffect.js +9 -0
  98. package/dist/rsuite-no-reset-rtl.css +140 -207
  99. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  100. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  101. package/dist/rsuite-no-reset.css +140 -207
  102. package/dist/rsuite-no-reset.min.css +1 -1
  103. package/dist/rsuite-no-reset.min.css.map +1 -1
  104. package/dist/rsuite-rtl.css +140 -75
  105. package/dist/rsuite-rtl.min.css +1 -1
  106. package/dist/rsuite-rtl.min.css.map +1 -1
  107. package/dist/rsuite.css +140 -75
  108. package/dist/rsuite.js +4833 -258
  109. package/dist/rsuite.js.map +1 -1
  110. package/dist/rsuite.min.css +1 -1
  111. package/dist/rsuite.min.css.map +1 -1
  112. package/dist/rsuite.min.js +1 -1
  113. package/dist/rsuite.min.js.map +1 -1
  114. package/esm/AutoComplete/AutoComplete.js +28 -29
  115. package/esm/Calendar/Calendar.d.ts +5 -1
  116. package/esm/Calendar/CalendarContainer.d.ts +7 -1
  117. package/esm/Calendar/CalendarContainer.js +12 -5
  118. package/esm/Calendar/CalendarHeader.js +2 -0
  119. package/esm/Calendar/MonthDropdown.js +7 -2
  120. package/esm/Calendar/MonthDropdownItem.js +2 -2
  121. package/esm/Calendar/Table.js +6 -1
  122. package/esm/Calendar/TimeDropdown.js +17 -10
  123. package/esm/Calendar/types.d.ts +1 -0
  124. package/esm/Cascader/Cascader.js +49 -51
  125. package/esm/CheckPicker/CheckPicker.d.ts +2 -2
  126. package/esm/CheckPicker/CheckPicker.js +36 -39
  127. package/esm/CheckTreePicker/CheckTreePicker.js +64 -67
  128. package/esm/CustomProvider/CustomProvider.d.ts +13 -0
  129. package/esm/CustomProvider/CustomProvider.js +3 -3
  130. package/esm/DateInput/DateField.d.ts +9 -31
  131. package/esm/DateInput/DateField.js +61 -12
  132. package/esm/DateInput/DateInput.d.ts +7 -2
  133. package/esm/DateInput/DateInput.js +77 -95
  134. package/esm/DateInput/index.d.ts +4 -0
  135. package/esm/DateInput/index.js +4 -0
  136. package/esm/DateInput/useDateInputState.d.ts +7 -31
  137. package/esm/DateInput/useDateInputState.js +41 -18
  138. package/esm/DateInput/useIsFocused.d.ts +7 -0
  139. package/esm/DateInput/useIsFocused.js +22 -0
  140. package/esm/DateInput/useKeyboardInputEvent.d.ts +10 -0
  141. package/esm/DateInput/useKeyboardInputEvent.js +38 -0
  142. package/esm/DateInput/utils.d.ts +23 -1
  143. package/esm/DateInput/utils.js +150 -51
  144. package/esm/DatePicker/DatePicker.d.ts +25 -8
  145. package/esm/DatePicker/DatePicker.js +211 -244
  146. package/esm/DatePicker/Toolbar.js +5 -22
  147. package/esm/DatePicker/utils.d.ts +5 -1
  148. package/esm/DatePicker/utils.js +16 -1
  149. package/esm/DateRangeInput/DateRangeInput.d.ts +29 -0
  150. package/esm/DateRangeInput/DateRangeInput.js +237 -0
  151. package/esm/DateRangeInput/index.d.ts +3 -0
  152. package/esm/DateRangeInput/index.js +3 -0
  153. package/esm/DateRangeInput/utils.d.ts +61 -0
  154. package/esm/DateRangeInput/utils.js +137 -0
  155. package/esm/DateRangePicker/Calendar.js +25 -23
  156. package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
  157. package/esm/DateRangePicker/DateRangePicker.js +253 -205
  158. package/esm/DateRangePicker/types.d.ts +11 -3
  159. package/esm/DateRangePicker/utils.d.ts +2 -1
  160. package/esm/DateRangePicker/utils.js +7 -5
  161. package/esm/FormControl/FormControl.d.ts +11 -1
  162. package/esm/FormControl/FormControl.js +4 -3
  163. package/esm/Input/Input.d.ts +11 -0
  164. package/esm/Input/Input.js +12 -9
  165. package/esm/InputPicker/InputPicker.js +64 -65
  166. package/esm/MultiCascader/MultiCascader.js +43 -45
  167. package/esm/Overlay/OverlayTrigger.d.ts +3 -0
  168. package/esm/Overlay/OverlayTrigger.js +5 -0
  169. package/esm/Picker/PickerIndicator.d.ts +10 -0
  170. package/esm/Picker/PickerIndicator.js +43 -0
  171. package/esm/Picker/PickerLabel.d.ts +9 -0
  172. package/esm/Picker/PickerLabel.js +17 -0
  173. package/esm/Picker/PickerToggle.d.ts +17 -22
  174. package/esm/Picker/PickerToggle.js +54 -179
  175. package/esm/Picker/index.d.ts +3 -0
  176. package/esm/Picker/index.js +3 -0
  177. package/esm/Picker/usePickerRef.d.ts +19 -0
  178. package/esm/Picker/usePickerRef.js +82 -0
  179. package/esm/Picker/utils.d.ts +5 -9
  180. package/esm/Picker/utils.js +24 -90
  181. package/esm/SelectPicker/SelectPicker.d.ts +2 -2
  182. package/esm/SelectPicker/SelectPicker.js +42 -45
  183. package/esm/TreePicker/TreePicker.js +75 -78
  184. package/esm/index.d.ts +2 -0
  185. package/esm/index.js +1 -0
  186. package/esm/locales/index.d.ts +2 -2
  187. package/esm/utils/constants.d.ts +2 -1
  188. package/esm/utils/constants.js +1 -0
  189. package/esm/utils/dateUtils.d.ts +0 -1
  190. package/esm/utils/dateUtils.js +0 -5
  191. package/esm/utils/getStringLength.d.ts +2 -0
  192. package/esm/utils/getStringLength.js +13 -0
  193. package/esm/utils/index.d.ts +3 -0
  194. package/esm/utils/index.js +4 -1
  195. package/esm/utils/useCustom.js +2 -2
  196. package/esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  197. package/esm/utils/useIsomorphicLayoutEffect.js +4 -0
  198. package/package.json +1 -1
  199. package/styles/color-modes/dark.less +1 -0
  200. package/styles/color-modes/high-contrast.less +1 -0
  201. package/styles/color-modes/light.less +1 -0
  202. package/styles/mixins/combobox.less +10 -0
  203. package/styles/normalize.less +230 -231
@@ -120,15 +120,12 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
120
120
  var _useState2 = (0, _react.useState)(),
121
121
  selectedPaths = _useState2[0],
122
122
  setSelectedPaths = _useState2[1];
123
- var triggerRef = (0, _react.useRef)(null);
124
- var overlayRef = (0, _react.useRef)(null);
125
- var targetRef = (0, _react.useRef)(null);
126
- var searchInputRef = (0, _react.useRef)(null);
127
- (0, _Picker.usePublicMethods)(ref, {
128
- triggerRef: triggerRef,
129
- overlayRef: overlayRef,
130
- targetRef: targetRef
131
- });
123
+ var _usePickerRef = (0, _Picker.usePickerRef)(ref),
124
+ trigger = _usePickerRef.trigger,
125
+ root = _usePickerRef.root,
126
+ target = _usePickerRef.target,
127
+ overlay = _usePickerRef.overlay,
128
+ searchInput = _usePickerRef.searchInput;
132
129
  var _useCustom = (0, _utils3.useCustom)('Picker', overrideLocale),
133
130
  locale = _useCustom.locale,
134
131
  rtl = _useCustom.rtl;
@@ -145,7 +142,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
145
142
  valueKey: valueKey,
146
143
  defaultLayer: selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length ? selectedPaths.length - 1 : 0,
147
144
  target: function target() {
148
- return overlayRef.current;
145
+ return overlay.current;
149
146
  },
150
147
  callback: (0, _react.useCallback)(function (value) {
151
148
  var _getColumnsAndPaths = (0, _utils2.getColumnsAndPaths)(data, flattenData.find(function (item) {
@@ -179,16 +176,16 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
179
176
  var _useState3 = (0, _react.useState)(''),
180
177
  searchKeyword = _useState3[0],
181
178
  setSearchKeyword = _useState3[1];
182
- var handleEntered = (0, _react.useCallback)(function () {
179
+ var handleEntered = (0, _utils3.useEventCallback)(function () {
183
180
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
184
181
  setActive(true);
185
- }, [onOpen]);
186
- var handleExited = (0, _react.useCallback)(function () {
182
+ });
183
+ var handleExited = (0, _utils3.useEventCallback)(function () {
187
184
  setActive(false);
188
185
  setSearchKeyword('');
189
- }, []);
190
- var handleSelect = (0, _react.useCallback)(function (node, cascadePaths, event) {
191
- var _node$childrenKey, _node$childrenKey2, _triggerRef$current, _triggerRef$current$u;
186
+ });
187
+ var handleSelect = (0, _utils3.useEventCallback)(function (node, cascadePaths, event) {
188
+ var _node$childrenKey, _node$childrenKey2, _trigger$current, _trigger$current$upda;
192
189
  setSelectedPaths(cascadePaths);
193
190
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
194
191
  var columnIndex = cascadePaths.length;
@@ -201,7 +198,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
201
198
  children.then(function (data) {
202
199
  node.loading = false;
203
200
  node[childrenKey] = data;
204
- if (targetRef.current || inline) {
201
+ if (target.current || inline) {
205
202
  addFlattenData(data, node);
206
203
  addColumn(data, columnIndex);
207
204
  }
@@ -218,9 +215,9 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
218
215
  // Removes subsequent columns of the current column when the clicked node is a leaf node.
219
216
  removeColumnByIndex(columnIndex);
220
217
  }
221
- (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$u = _triggerRef$current.updatePosition) === null || _triggerRef$current$u === void 0 ? void 0 : _triggerRef$current$u.call(_triggerRef$current);
222
- }, [onSelect, getChildren, childrenKey, inline, addFlattenData, addColumn, removeColumnByIndex]);
223
- var handleCheck = (0, _react.useCallback)(function (node, event, checked) {
218
+ (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$upda = _trigger$current.updatePosition) === null || _trigger$current$upda === void 0 ? void 0 : _trigger$current$upda.call(_trigger$current);
219
+ });
220
+ var handleCheck = (0, _utils3.useEventCallback)(function (node, event, checked) {
224
221
  var nodeValue = node[valueKey];
225
222
  var nextValue = [];
226
223
  if (cascade) {
@@ -238,38 +235,38 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
238
235
  setValue(nextValue);
239
236
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
240
237
  onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextValue, node, checked, event);
241
- }, [cascade, onChange, onCheck, setValue, splitValue, value, valueKey]);
242
- var handleClean = (0, _react.useCallback)(function (event) {
243
- if (disabled || !targetRef.current) {
238
+ });
239
+ var handleClean = (0, _utils3.useEventCallback)(function (event) {
240
+ if (disabled || !target.current) {
244
241
  return;
245
242
  }
246
243
  setSelectedPaths([]);
247
244
  setValue([]);
248
245
  setColumnData([data]);
249
246
  onChange === null || onChange === void 0 ? void 0 : onChange([], event);
250
- }, [data, disabled, onChange, setColumnData, setValue]);
251
- var handleMenuPressEnter = (0, _react.useCallback)(function (event) {
252
- var _overlayRef$current;
247
+ });
248
+ var handleMenuPressEnter = (0, _utils3.useEventCallback)(function (event) {
249
+ var _overlay$current;
253
250
  var focusItem = (0, _treeUtils.findNodeOfTree)(data, function (item) {
254
251
  return item[valueKey] === focusItemValue;
255
252
  });
256
- var checkbox = (_overlayRef$current = overlayRef.current) === null || _overlayRef$current === void 0 ? void 0 : _overlayRef$current.querySelector("[data-key=\"" + focusItemValue + "\"] [type=\"checkbox\"]");
253
+ var checkbox = (_overlay$current = overlay.current) === null || _overlay$current === void 0 ? void 0 : _overlay$current.querySelector("[data-key=\"" + focusItemValue + "\"] [type=\"checkbox\"]");
257
254
  if (checkbox) {
258
255
  handleCheck(focusItem, event, (checkbox === null || checkbox === void 0 ? void 0 : checkbox.getAttribute('aria-checked')) !== 'true');
259
256
  }
260
- }, [data, focusItemValue, handleCheck, valueKey]);
257
+ });
261
258
  var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends3.default)({
262
259
  toggle: !focusItemValue || !active,
263
- triggerRef: triggerRef,
264
- targetRef: targetRef,
265
- overlayRef: overlayRef,
266
- searchInputRef: searchInputRef,
260
+ trigger: trigger,
261
+ target: target,
262
+ overlay: overlay,
263
+ searchInput: searchInput,
267
264
  active: active,
268
265
  onExit: handleClean,
269
266
  onMenuKeyDown: onFocusItem,
270
267
  onMenuPressEnter: handleMenuPressEnter
271
268
  }, rest));
272
- var handleSearch = (0, _react.useCallback)(function (value, event) {
269
+ var handleSearch = (0, _utils3.useEventCallback)(function (value, event) {
273
270
  setSearchKeyword(value);
274
271
  onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
275
272
  if (value) {
@@ -278,8 +275,8 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
278
275
  setLayer(selectedPaths.length - 1);
279
276
  }
280
277
  setKeys([]);
281
- }, [onSearch, selectedPaths, setKeys, setLayer]);
282
- var getSearchResult = (0, _react.useCallback)(function () {
278
+ });
279
+ var getSearchResult = function getSearchResult() {
283
280
  var items = [];
284
281
  var result = flattenData.filter(function (item) {
285
282
  if (uncheckableItemValues.some(function (value) {
@@ -301,7 +298,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
301
298
  }
302
299
  }
303
300
  return items;
304
- }, [flattenData, labelKey, searchKeyword, uncheckableItemValues, valueKey]);
301
+ };
305
302
  var renderSearchRow = function renderSearchRow(item, key) {
306
303
  var _extends2;
307
304
  var nodes = (0, _treeUtils.getNodeParents)(item);
@@ -386,16 +383,16 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
386
383
  inline: inline
387
384
  }));
388
385
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
389
- ref: (0, _utils3.mergeRefs)(overlayRef, speakerRef),
386
+ ref: (0, _utils3.mergeRefs)(overlay, speakerRef),
390
387
  className: classes,
391
388
  style: styles,
392
- target: triggerRef,
389
+ target: trigger,
393
390
  onKeyDown: onPickerKeyDown
394
391
  }, searchable && /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {
395
392
  placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
396
393
  onChange: handleSearch,
397
394
  value: searchKeyword,
398
- inputRef: searchInputRef
395
+ inputRef: searchInput
399
396
  }), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(_DropdownMenu.default, {
400
397
  id: id ? id + "-listbox" : undefined,
401
398
  cascade: cascade,
@@ -451,7 +448,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
451
448
  }
452
449
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
453
450
  pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
454
- ref: triggerRef,
451
+ ref: trigger,
455
452
  placement: placement,
456
453
  onEnter: (0, _utils3.createChainedFunction)(handleEntered, onEnter),
457
454
  onExited: (0, _utils3.createChainedFunction)(handleExited, onExited),
@@ -459,13 +456,14 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
459
456
  speaker: renderDropdownMenu
460
457
  }, /*#__PURE__*/_react.default.createElement(Component, {
461
458
  className: classes,
462
- style: style
459
+ style: style,
460
+ ref: root
463
461
  }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends3.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
464
462
  id: id,
465
463
  as: toggleAs,
466
464
  appearance: appearance,
467
465
  disabled: disabled,
468
- ref: targetRef,
466
+ ref: target,
469
467
  onClean: (0, _utils3.createChainedFunction)(handleClean, onClean),
470
468
  onKeyDown: onPickerKeyDown,
471
469
  cleanable: cleanable && !disabled,
@@ -77,6 +77,9 @@ export interface OverlayTriggerHandle {
77
77
  updatePosition: () => void;
78
78
  open: (delay?: number) => void;
79
79
  close: (delay?: number) => void;
80
+ getState: () => {
81
+ open?: boolean;
82
+ };
80
83
  }
81
84
  /**
82
85
  * OverlayTrigger is used to display floating elements on another component.
@@ -171,6 +171,11 @@ var OverlayTrigger = /*#__PURE__*/_react.default.forwardRef(function (props, ref
171
171
  var _overlayRef$current;
172
172
  return (_overlayRef$current = overlayRef.current) === null || _overlayRef$current === void 0 ? void 0 : _overlayRef$current.child;
173
173
  },
174
+ getState: function getState() {
175
+ return {
176
+ open: open
177
+ };
178
+ },
174
179
  open: handleOpen,
175
180
  close: function close(delay) {
176
181
  return handleClose(delay, function () {
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface PickerIndicatorProps {
3
+ loading?: boolean;
4
+ caretAs?: React.ElementType | null;
5
+ onClose?: (event: React.MouseEvent<HTMLElement>) => void;
6
+ showCleanButton?: boolean;
7
+ as?: React.ElementType;
8
+ }
9
+ declare const PickerIndicator: ({ loading, caretAs, onClose, showCleanButton, as: Component }: PickerIndicatorProps) => JSX.Element;
10
+ export default PickerIndicator;
@@ -0,0 +1,49 @@
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 = _interopRequireDefault(require("react"));
8
+ var _icons = require("@rsuite/icons");
9
+ var _utils = require("../utils");
10
+ var _InputGroup = _interopRequireDefault(require("../InputGroup"));
11
+ var _CloseButton = _interopRequireDefault(require("../CloseButton"));
12
+ var _Loader = _interopRequireDefault(require("../Loader"));
13
+ var PickerIndicator = function PickerIndicator(_ref) {
14
+ var loading = _ref.loading,
15
+ caretAs = _ref.caretAs,
16
+ onClose = _ref.onClose,
17
+ showCleanButton = _ref.showCleanButton,
18
+ _ref$as = _ref.as,
19
+ Component = _ref$as === void 0 ? _InputGroup.default.Addon : _ref$as;
20
+ var _useCustom = (0, _utils.useCustom)(),
21
+ locale = _useCustom.locale;
22
+ var _useClassNames = (0, _utils.useClassNames)('picker'),
23
+ prefix = _useClassNames.prefix;
24
+ var addon = function addon() {
25
+ if (loading) {
26
+ return /*#__PURE__*/_react.default.createElement(_Loader.default, {
27
+ className: prefix('loader'),
28
+ "data-testid": "spinner"
29
+ });
30
+ }
31
+ if (showCleanButton) {
32
+ return /*#__PURE__*/_react.default.createElement(_CloseButton.default, {
33
+ className: prefix('clean'),
34
+ tabIndex: -1,
35
+ locale: {
36
+ closeLabel: locale === null || locale === void 0 ? void 0 : locale.clear
37
+ },
38
+ onClick: onClose
39
+ });
40
+ }
41
+ return caretAs && /*#__PURE__*/_react.default.createElement(_icons.Icon, {
42
+ as: caretAs,
43
+ className: prefix('caret-icon')
44
+ });
45
+ };
46
+ return /*#__PURE__*/_react.default.createElement(Component, null, addon());
47
+ };
48
+ var _default = PickerIndicator;
49
+ exports.default = _default;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ interface PickerLabelProps {
3
+ id?: string;
4
+ className?: string;
5
+ children?: React.ReactNode;
6
+ as?: React.ElementType;
7
+ }
8
+ declare const PickerLabel: ({ children, className, as: Component, ...rest }: PickerLabelProps) => JSX.Element | null;
9
+ export default PickerLabel;
@@ -0,0 +1,23 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _InputGroup = _interopRequireDefault(require("../InputGroup"));
11
+ var PickerLabel = function PickerLabel(_ref) {
12
+ var children = _ref.children,
13
+ className = _ref.className,
14
+ _ref$as = _ref.as,
15
+ Component = _ref$as === void 0 ? _InputGroup.default.Addon : _ref$as,
16
+ rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["children", "className", "as"]);
17
+ return children ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
18
+ "data-testid": "picker-label",
19
+ className: className
20
+ }, rest), children) : null;
21
+ };
22
+ var _default = PickerLabel;
23
+ exports.default = _default;
@@ -4,38 +4,33 @@ import { RsRefForwardingComponent, TypeAttributes } from '../@types/common';
4
4
  import { IconProps } from '@rsuite/icons/lib/Icon';
5
5
  declare type ValueType = string | number;
6
6
  export interface PickerToggleProps extends ToggleButtonProps {
7
- value?: ValueType | ValueType[];
8
- inputValue?: ValueType | ValueType[];
9
- id?: string;
7
+ active?: boolean;
10
8
  hasValue?: boolean;
11
9
  cleanable?: boolean;
12
10
  caret?: boolean;
13
- active?: boolean;
14
- disabled?: boolean;
15
- readOnly?: boolean;
16
- plaintext?: boolean;
17
- tabIndex?: number;
18
- /** Whether to display an loading indicator on toggle button */
19
- loading?: boolean;
20
- editable?: boolean;
21
- name?: string;
22
- inputPlaceholder?: string;
23
- inputMask?: (string | RegExp)[];
24
- onInputChange?: (value: string, event: React.ChangeEvent) => void;
25
- onInputPressEnter?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
26
- onInputBackspace?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
27
- onInputBlur?: (event: React.FocusEvent<HTMLElement>) => void;
28
- onInputFocus?: (event: React.FocusEvent<HTMLElement>) => void;
29
- placement?: TypeAttributes.Placement;
30
11
  /**
31
12
  * Custom caret component
32
13
  * @deprecated Use `caretAs` instead
33
14
  */
34
15
  caretComponent?: React.FC<IconProps>;
35
- /** Custom caret component */
16
+ /**
17
+ * Custom caret component
18
+ */
36
19
  caretAs?: React.ElementType;
37
- onClean?: (event: React.MouseEvent) => void;
20
+ disabled?: boolean;
21
+ placement?: TypeAttributes.Placement;
22
+ readOnly?: boolean;
23
+ plaintext?: boolean;
24
+ tabIndex?: number;
25
+ /**
26
+ * Whether to display an loading indicator on toggle button
27
+ */
28
+ loading?: boolean;
38
29
  label?: React.ReactNode;
30
+ name?: string;
31
+ id?: string;
32
+ inputValue?: ValueType | ValueType[];
33
+ onClean?: (event: React.MouseEvent) => void;
39
34
  }
40
35
  declare const PickerToggle: RsRefForwardingComponent<typeof ToggleButton, PickerToggleProps>;
41
36
  export default PickerToggle;