rsuite 5.50.0 → 5.51.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 (177) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/CheckTreePicker/styles/index.less +3 -3
  3. package/DatePicker/styles/index.less +1 -1
  4. package/Form/styles/mixin.less +1 -2
  5. package/InputGroup/styles/index.less +0 -14
  6. package/InputPicker/styles/index.less +1 -1
  7. package/Picker/styles/index.less +2 -2
  8. package/Picker/styles/mixin.less +3 -3
  9. package/TagInput/styles/index.less +1 -1
  10. package/TagPicker/styles/index.less +5 -1
  11. package/TreePicker/styles/index.less +2 -2
  12. package/cjs/@types/common.d.ts +8 -0
  13. package/cjs/AutoComplete/AutoComplete.js +14 -11
  14. package/cjs/AutoComplete/Combobox.d.ts +8 -0
  15. package/cjs/AutoComplete/Combobox.js +31 -0
  16. package/cjs/Calendar/CalendarContainer.js +35 -37
  17. package/cjs/Cascader/Cascader.js +12 -11
  18. package/cjs/Cascader/DropdownMenu.d.ts +3 -20
  19. package/cjs/Cascader/DropdownMenu.js +48 -48
  20. package/cjs/Cascader/TreeView.d.ts +24 -0
  21. package/cjs/Cascader/TreeView.js +174 -0
  22. package/cjs/CheckPicker/CheckPicker.js +9 -8
  23. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
  24. package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
  25. package/cjs/CheckTreePicker/CheckTreePicker.js +20 -20
  26. package/cjs/DatePicker/DatePicker.js +5 -6
  27. package/cjs/DateRangePicker/DateRangePicker.js +3 -4
  28. package/cjs/Form/Form.d.ts +14 -0
  29. package/cjs/Form/Form.js +39 -30
  30. package/cjs/Form/FormContext.d.ts +1 -0
  31. package/cjs/FormControl/FormControl.js +40 -18
  32. package/cjs/FormGroup/FormGroup.js +2 -1
  33. package/cjs/InputPicker/InputPicker.js +46 -29
  34. package/cjs/InputPicker/InputSearch.js +3 -15
  35. package/cjs/InputPicker/TagList.d.ts +3 -0
  36. package/cjs/InputPicker/TagList.js +29 -0
  37. package/cjs/InputPicker/TextBox.d.ts +18 -0
  38. package/cjs/InputPicker/TextBox.js +48 -0
  39. package/cjs/MultiCascader/MultiCascader.js +13 -10
  40. package/cjs/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
  41. package/cjs/MultiCascader/{DropdownMenu.js → TreeView.js} +77 -74
  42. package/{esm/Picker/DropdownMenuCheckItem.d.ts → cjs/Picker/ListCheckItem.d.ts} +3 -3
  43. package/cjs/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +14 -30
  44. package/{esm/Picker/DropdownMenuItem.d.ts → cjs/Picker/ListItem.d.ts} +4 -4
  45. package/cjs/Picker/{DropdownMenuItem.js → ListItem.js} +15 -24
  46. package/cjs/Picker/ListItemGroup.d.ts +6 -0
  47. package/cjs/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
  48. package/cjs/Picker/Listbox.d.ts +35 -0
  49. package/cjs/Picker/{DropdownMenu.js → Listbox.js} +49 -64
  50. package/cjs/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
  51. package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
  52. package/cjs/Picker/PickerToggle.d.ts +1 -1
  53. package/cjs/Picker/PickerToggle.js +16 -9
  54. package/cjs/Picker/PickerToggleTrigger.d.ts +15 -0
  55. package/cjs/Picker/PickerToggleTrigger.js +21 -5
  56. package/cjs/Picker/SearchBar.js +7 -9
  57. package/cjs/Picker/TreeView.d.ts +7 -0
  58. package/cjs/Picker/TreeView.js +31 -0
  59. package/cjs/Picker/hooks/index.d.ts +6 -0
  60. package/cjs/Picker/hooks/index.js +18 -0
  61. package/cjs/Picker/hooks/useCombobox.d.ts +7 -0
  62. package/cjs/Picker/hooks/useCombobox.js +22 -0
  63. package/cjs/Picker/hooks/useFocusItemValue.d.ts +30 -0
  64. package/cjs/Picker/hooks/useFocusItemValue.js +246 -0
  65. package/cjs/Picker/hooks/usePickerClassName.d.ts +21 -0
  66. package/cjs/Picker/hooks/usePickerClassName.js +39 -0
  67. package/cjs/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +2 -2
  68. package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
  69. package/cjs/Picker/hooks/useSearch.d.ts +18 -0
  70. package/cjs/Picker/hooks/useSearch.js +57 -0
  71. package/cjs/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
  72. package/cjs/Picker/hooks/useToggleKeyDownEvent.js +101 -0
  73. package/cjs/Picker/index.d.ts +7 -6
  74. package/cjs/Picker/index.js +26 -19
  75. package/cjs/Picker/propTypes.d.ts +0 -6
  76. package/cjs/Picker/propTypes.js +0 -5
  77. package/cjs/Picker/utils.d.ts +2 -96
  78. package/cjs/Picker/utils.js +1 -406
  79. package/cjs/SelectPicker/SelectPicker.js +8 -8
  80. package/cjs/TagInput/index.js +4 -0
  81. package/cjs/TreePicker/TreeNode.d.ts +2 -2
  82. package/cjs/TreePicker/TreeNode.js +22 -56
  83. package/cjs/TreePicker/TreePicker.js +19 -20
  84. package/dist/rsuite-no-reset-rtl.css +109 -117
  85. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  86. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  87. package/dist/rsuite-no-reset.css +109 -117
  88. package/dist/rsuite-no-reset.min.css +1 -1
  89. package/dist/rsuite-no-reset.min.css.map +1 -1
  90. package/dist/rsuite-rtl.css +109 -117
  91. package/dist/rsuite-rtl.min.css +1 -1
  92. package/dist/rsuite-rtl.min.css.map +1 -1
  93. package/dist/rsuite.css +109 -117
  94. package/dist/rsuite.js +184 -74
  95. package/dist/rsuite.js.map +1 -1
  96. package/dist/rsuite.min.css +1 -1
  97. package/dist/rsuite.min.css.map +1 -1
  98. package/dist/rsuite.min.js +1 -1
  99. package/dist/rsuite.min.js.map +1 -1
  100. package/esm/@types/common.d.ts +8 -0
  101. package/esm/AutoComplete/AutoComplete.js +15 -12
  102. package/esm/AutoComplete/Combobox.d.ts +8 -0
  103. package/esm/AutoComplete/Combobox.js +25 -0
  104. package/esm/Calendar/CalendarContainer.js +37 -39
  105. package/esm/Cascader/Cascader.js +13 -12
  106. package/esm/Cascader/DropdownMenu.d.ts +3 -20
  107. package/esm/Cascader/DropdownMenu.js +50 -49
  108. package/esm/Cascader/TreeView.d.ts +24 -0
  109. package/esm/Cascader/TreeView.js +167 -0
  110. package/esm/CheckPicker/CheckPicker.js +10 -9
  111. package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
  112. package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
  113. package/esm/CheckTreePicker/CheckTreePicker.js +21 -21
  114. package/esm/DatePicker/DatePicker.js +5 -6
  115. package/esm/DateRangePicker/DateRangePicker.js +3 -4
  116. package/esm/Form/Form.d.ts +14 -0
  117. package/esm/Form/Form.js +41 -32
  118. package/esm/Form/FormContext.d.ts +1 -0
  119. package/esm/FormControl/FormControl.js +39 -17
  120. package/esm/FormGroup/FormGroup.js +3 -2
  121. package/esm/InputPicker/InputPicker.js +47 -30
  122. package/esm/InputPicker/InputSearch.js +4 -15
  123. package/esm/InputPicker/TagList.d.ts +3 -0
  124. package/esm/InputPicker/TagList.js +23 -0
  125. package/esm/InputPicker/TextBox.d.ts +18 -0
  126. package/esm/InputPicker/TextBox.js +42 -0
  127. package/esm/MultiCascader/MultiCascader.js +14 -11
  128. package/esm/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
  129. package/esm/MultiCascader/{DropdownMenu.js → TreeView.js} +79 -75
  130. package/{cjs/Picker/DropdownMenuCheckItem.d.ts → esm/Picker/ListCheckItem.d.ts} +3 -3
  131. package/esm/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +15 -30
  132. package/{cjs/Picker/DropdownMenuItem.d.ts → esm/Picker/ListItem.d.ts} +4 -4
  133. package/esm/Picker/{DropdownMenuItem.js → ListItem.js} +16 -24
  134. package/esm/Picker/ListItemGroup.d.ts +6 -0
  135. package/esm/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
  136. package/esm/Picker/Listbox.d.ts +35 -0
  137. package/esm/Picker/{DropdownMenu.js → Listbox.js} +50 -64
  138. package/esm/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
  139. package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
  140. package/esm/Picker/PickerToggle.d.ts +1 -1
  141. package/esm/Picker/PickerToggle.js +16 -9
  142. package/esm/Picker/PickerToggleTrigger.d.ts +15 -0
  143. package/esm/Picker/PickerToggleTrigger.js +20 -5
  144. package/esm/Picker/SearchBar.js +8 -9
  145. package/esm/Picker/TreeView.d.ts +7 -0
  146. package/esm/Picker/TreeView.js +25 -0
  147. package/esm/Picker/hooks/index.d.ts +6 -0
  148. package/esm/Picker/hooks/index.js +7 -0
  149. package/esm/Picker/hooks/useCombobox.d.ts +7 -0
  150. package/esm/Picker/hooks/useCombobox.js +17 -0
  151. package/esm/Picker/hooks/useFocusItemValue.d.ts +30 -0
  152. package/esm/Picker/hooks/useFocusItemValue.js +240 -0
  153. package/esm/Picker/hooks/usePickerClassName.d.ts +21 -0
  154. package/esm/Picker/hooks/usePickerClassName.js +33 -0
  155. package/esm/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +2 -2
  156. package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
  157. package/esm/Picker/hooks/useSearch.d.ts +18 -0
  158. package/esm/Picker/hooks/useSearch.js +51 -0
  159. package/esm/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
  160. package/esm/Picker/hooks/useToggleKeyDownEvent.js +96 -0
  161. package/esm/Picker/index.d.ts +7 -6
  162. package/esm/Picker/index.js +7 -6
  163. package/esm/Picker/propTypes.d.ts +0 -6
  164. package/esm/Picker/propTypes.js +0 -5
  165. package/esm/Picker/utils.d.ts +2 -96
  166. package/esm/Picker/utils.js +2 -401
  167. package/esm/SelectPicker/SelectPicker.js +9 -9
  168. package/esm/TagInput/index.js +4 -0
  169. package/esm/TreePicker/TreeNode.d.ts +2 -2
  170. package/esm/TreePicker/TreeNode.js +24 -58
  171. package/esm/TreePicker/TreePicker.js +20 -21
  172. package/package.json +1 -1
  173. package/styles/variables.less +1 -3
  174. package/cjs/Picker/DropdownMenu.d.ts +0 -59
  175. package/cjs/Picker/DropdownMenuGroup.d.ts +0 -6
  176. package/esm/Picker/DropdownMenu.d.ts +0 -59
  177. package/esm/Picker/DropdownMenuGroup.d.ts +0 -6
@@ -0,0 +1,167 @@
1
+ 'use client';
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
+ import React, { useEffect, useRef } from 'react';
5
+ import SpinnerIcon from '@rsuite/icons/legacy/Spinner';
6
+ import isUndefined from 'lodash/isUndefined';
7
+ import isNil from 'lodash/isNil';
8
+ import { shallowEqual, useClassNames, mergeRefs, useCustom, useEventCallback } from '../utils';
9
+ import { ListItem, useCombobox } from '../Picker';
10
+ import AngleLeftIcon from '@rsuite/icons/legacy/AngleLeft';
11
+ import AngleRightIcon from '@rsuite/icons/legacy/AngleRight';
12
+ import getPosition from 'dom-lib/getPosition';
13
+ import scrollTop from 'dom-lib/scrollTop';
14
+ var emptyArray = [];
15
+ var TreeView = /*#__PURE__*/React.forwardRef(function (props, ref) {
16
+ var _props$as = props.as,
17
+ Component = _props$as === void 0 ? 'div' : _props$as,
18
+ activeItemValue = props.activeItemValue,
19
+ classPrefix = props.classPrefix,
20
+ className = props.className,
21
+ _props$childrenKey = props.childrenKey,
22
+ childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
23
+ _props$disabledItemVa = props.disabledItemValues,
24
+ disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,
25
+ _props$menuWidth = props.menuWidth,
26
+ menuWidth = _props$menuWidth === void 0 ? 120 : _props$menuWidth,
27
+ _props$menuHeight = props.menuHeight,
28
+ menuHeight = _props$menuHeight === void 0 ? 200 : _props$menuHeight,
29
+ _props$valueKey = props.valueKey,
30
+ valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
31
+ _props$cascadeData = props.cascadeData,
32
+ cascadeData = _props$cascadeData === void 0 ? emptyArray : _props$cascadeData,
33
+ _props$cascadePaths = props.cascadePaths,
34
+ cascadePaths = _props$cascadePaths === void 0 ? emptyArray : _props$cascadePaths,
35
+ loadingItemsSet = props.loadingItemsSet,
36
+ _props$labelKey = props.labelKey,
37
+ labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
38
+ style = props.style,
39
+ renderMenu = props.renderMenu,
40
+ renderMenuItem = props.renderMenuItem,
41
+ onSelect = props.onSelect,
42
+ rest = _objectWithoutPropertiesLoose(props, ["as", "activeItemValue", "classPrefix", "className", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "valueKey", "cascadeData", "cascadePaths", "loadingItemsSet", "labelKey", "style", "renderMenu", "renderMenuItem", "onSelect"]);
43
+ var _useClassNames = useClassNames(classPrefix),
44
+ merge = _useClassNames.merge,
45
+ prefix = _useClassNames.prefix;
46
+ var classes = merge(className, prefix('items'));
47
+ var rootRef = useRef();
48
+ var _useCustom = useCustom(),
49
+ rtl = _useCustom.rtl;
50
+ var _useCombobox = useCombobox(),
51
+ id = _useCombobox.id,
52
+ labelId = _useCombobox.labelId,
53
+ popupType = _useCombobox.popupType;
54
+ useEffect(function () {
55
+ var _rootRef$current;
56
+ var columns = ((_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.querySelectorAll('[data-type="column"]')) || [];
57
+ columns.forEach(function (column) {
58
+ if (!column) {
59
+ return;
60
+ }
61
+ var activeItem = column.querySelector("." + prefix('item-focus'));
62
+ if (!activeItem) {
63
+ activeItem = column.querySelector("." + prefix('item-active'));
64
+ }
65
+ if (activeItem) {
66
+ var position = getPosition(activeItem, column);
67
+ // Let the active option scroll into view.
68
+ scrollTop(column, position === null || position === void 0 ? void 0 : position.top);
69
+ }
70
+ });
71
+ }, [prefix]);
72
+ var getCascadePaths = function getCascadePaths(layer, node) {
73
+ var paths = [];
74
+ for (var i = 0; i < cascadeData.length && i < layer; i += 1) {
75
+ if (i < layer - 1 && cascadePaths) {
76
+ paths.push(cascadePaths[i]);
77
+ }
78
+ }
79
+ paths.push(node);
80
+ return paths;
81
+ };
82
+ var handleSelect = useEventCallback(function (layer, node, event) {
83
+ var isLeafNode = isNil(node[childrenKey]);
84
+ var cascadePaths = getCascadePaths(layer + 1, node);
85
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, isLeafNode, event);
86
+ });
87
+ var renderCascadeNode = function renderCascadeNode(nodeProps) {
88
+ var _loadingItemsSet$has;
89
+ var node = nodeProps.node,
90
+ index = nodeProps.index,
91
+ layer = nodeProps.layer,
92
+ focus = nodeProps.focus,
93
+ size = nodeProps.size;
94
+ var children = node[childrenKey];
95
+ var value = node[valueKey];
96
+ var label = node[labelKey];
97
+ var disabled = disabledItemValues.some(function (disabledValue) {
98
+ return shallowEqual(disabledValue, value);
99
+ });
100
+ var loading = (_loadingItemsSet$has = loadingItemsSet === null || loadingItemsSet === void 0 ? void 0 : loadingItemsSet.has(node)) !== null && _loadingItemsSet$has !== void 0 ? _loadingItemsSet$has : false;
101
+
102
+ // Use `value` in keys when If `value` is string or number
103
+ var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
104
+ var Icon = loading ? SpinnerIcon : rtl ? AngleLeftIcon : AngleRightIcon;
105
+ return /*#__PURE__*/React.createElement(ListItem, {
106
+ as: 'li',
107
+ role: "treeitem",
108
+ "aria-level": layer + 1,
109
+ "aria-setsize": size,
110
+ "aria-posinset": index + 1,
111
+ "aria-label": typeof label === 'string' ? label : undefined,
112
+ classPrefix: "picker-cascader-menu-item",
113
+ key: layer + "-" + onlyKey,
114
+ disabled: disabled,
115
+ active: !isUndefined(activeItemValue) && shallowEqual(activeItemValue, value),
116
+ focus: focus,
117
+ value: value,
118
+ className: children ? prefix('has-children') : undefined,
119
+ onSelect: function onSelect(_value, event) {
120
+ return handleSelect(layer, node, event);
121
+ }
122
+ }, renderMenuItem ? renderMenuItem(label, node) : label, children ? /*#__PURE__*/React.createElement(Icon, {
123
+ className: prefix('caret'),
124
+ spin: loading,
125
+ "data-testid": "spinner"
126
+ }) : null);
127
+ };
128
+ var cascadeNodes = cascadeData.map(function (children, layer) {
129
+ var onlyKey = layer + "_" + children.length;
130
+ var parentNode = cascadePaths[layer - 1];
131
+ var menu = /*#__PURE__*/React.createElement(React.Fragment, null, children.map(function (item, index) {
132
+ var focus = cascadePaths[layer] && shallowEqual(cascadePaths[layer][valueKey], item[valueKey]);
133
+ return renderCascadeNode({
134
+ node: item,
135
+ index: index,
136
+ layer: layer,
137
+ focus: focus,
138
+ size: children.length
139
+ });
140
+ }));
141
+ return /*#__PURE__*/React.createElement("ul", {
142
+ role: "group",
143
+ "data-layer": layer,
144
+ "data-type": 'column',
145
+ key: onlyKey,
146
+ className: prefix('column'),
147
+ style: {
148
+ height: menuHeight,
149
+ width: menuWidth
150
+ }
151
+ }, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
152
+ });
153
+ var styles = _extends({}, style, {
154
+ width: cascadeData.length * menuWidth
155
+ });
156
+ return /*#__PURE__*/React.createElement(Component, _extends({
157
+ role: "tree",
158
+ id: id + "-" + popupType,
159
+ "aria-labelledby": labelId
160
+ }, rest, {
161
+ ref: mergeRefs(rootRef, ref),
162
+ className: classes,
163
+ style: styles
164
+ }), cascadeNodes);
165
+ });
166
+ TreeView.displayName = 'TreeView';
167
+ export default TreeView;
@@ -15,7 +15,7 @@ import isNil from 'lodash/isNil';
15
15
  import { filterNodesOfTree } from '../utils/treeUtils';
16
16
  import { createChainedFunction, useClassNames, shallowEqual, useCustom, useControlled, useEventCallback, mergeRefs } from '../utils';
17
17
  import { getDataGroupBy } from '../utils/getDataGroupBy';
18
- import { DropdownMenu, DropdownMenuCheckItem as DropdownMenuItem, PickerToggle, PickerOverlay, SearchBar, SelectedElement, PickerToggleTrigger, useFocusItemValue, usePickerClassName, useSearch, useToggleKeyDownEvent, usePickerRef, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
18
+ import { Listbox, ListCheckItem, PickerToggle, PickerPopup, SearchBar, SelectedElement, PickerToggleTrigger, useFocusItemValue, usePickerClassName, useSearch, useToggleKeyDownEvent, usePickerRef, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
19
19
  var emptyArray = [];
20
20
  /**
21
21
  * A component for selecting checkable items in a dropdown list.
@@ -246,7 +246,7 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
246
246
  hasValue = false;
247
247
  }
248
248
  }
249
- var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
249
+ var renderPopup = function renderPopup(positionProps, speakerRef) {
250
250
  var left = positionProps.left,
251
251
  top = positionProps.top,
252
252
  className = positionProps.className;
@@ -274,8 +274,7 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
274
274
  } else if (typeof sort === 'function') {
275
275
  items = items.sort(sort(false));
276
276
  }
277
- var menu = items.length || filteredStickyItems.length ? /*#__PURE__*/React.createElement(DropdownMenu, {
278
- id: id ? id + "-listbox" : undefined,
277
+ var menu = items.length || filteredStickyItems.length ? /*#__PURE__*/React.createElement(Listbox, {
279
278
  listProps: listProps,
280
279
  listRef: list,
281
280
  disabledItemValues: disabledItemValues,
@@ -285,7 +284,7 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
285
284
  renderMenuItem: renderMenuItem,
286
285
  maxHeight: menuMaxHeight,
287
286
  classPrefix: 'picker-check-menu',
288
- dropdownMenuItemAs: DropdownMenuItem,
287
+ listItemAs: ListCheckItem,
289
288
  activeItemValues: value,
290
289
  focusItemValue: focusItemValue,
291
290
  data: [].concat(filteredStickyItems, items)
@@ -299,7 +298,7 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
299
298
  }) : /*#__PURE__*/React.createElement("div", {
300
299
  className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["none"])))
301
300
  }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
302
- return /*#__PURE__*/React.createElement(PickerOverlay, {
301
+ return /*#__PURE__*/React.createElement(PickerPopup, {
303
302
  ref: mergeRefs(overlay, speakerRef),
304
303
  autoWidth: menuAutoWidth,
305
304
  className: classes,
@@ -324,19 +323,20 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
324
323
  classes = _usePickerClassName[0],
325
324
  usedClassNamePropKeys = _usePickerClassName[1];
326
325
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
326
+ id: id,
327
+ multiple: true,
327
328
  pickerProps: pick(props, pickTriggerPropKeys),
328
329
  ref: trigger,
329
330
  placement: placement,
330
331
  onEnter: createChainedFunction(initStickyItems, onEnter),
331
332
  onEntered: createChainedFunction(handleEntered, onEntered),
332
333
  onExited: createChainedFunction(handleExited, onExited),
333
- speaker: renderDropdownMenu
334
+ speaker: renderPopup
334
335
  }, /*#__PURE__*/React.createElement(Component, {
335
336
  className: classes,
336
337
  style: style,
337
338
  ref: root
338
339
  }, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
339
- id: id,
340
340
  ref: target,
341
341
  appearance: appearance,
342
342
  disabled: disabled,
@@ -347,7 +347,8 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
347
347
  hasValue: hasValue,
348
348
  active: active,
349
349
  placement: placement,
350
- inputValue: value
350
+ inputValue: value,
351
+ focusItemValue: focusItemValue
351
352
  }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));
352
353
  });
353
354
  CheckPicker.displayName = 'CheckPicker';
@@ -21,8 +21,8 @@ export interface CheckTreeNodeProps extends WithAsProps {
21
21
  allUncheckable?: boolean;
22
22
  onExpand?: (nodeData: any) => void;
23
23
  onSelect?: (nodeData: any, event: React.SyntheticEvent) => void;
24
- onRenderTreeIcon?: (nodeData: any, expandIcon?: React.ReactNode) => React.ReactNode;
25
- onRenderTreeNode?: (nodeData: any) => React.ReactNode;
24
+ renderTreeIcon?: (nodeData: any, expandIcon?: React.ReactNode) => React.ReactNode;
25
+ renderTreeNode?: (nodeData: any) => React.ReactNode;
26
26
  }
27
27
  declare const CheckTreeNode: RsRefForwardingComponent<'div', CheckTreeNodeProps>;
28
28
  export default CheckTreeNode;
@@ -1,13 +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, { forwardRef, useCallback } from 'react';
5
- import PropTypes from 'prop-types';
4
+ import React, { forwardRef } from 'react';
6
5
  import ArrowDown from '@rsuite/icons/legacy/ArrowDown';
7
6
  import Spinner from '@rsuite/icons/legacy/Spinner';
8
- import DropdownMenuCheckItem from '../Picker/DropdownMenuCheckItem';
7
+ import ListCheckItem from '../Picker/ListCheckItem';
9
8
  import { getTreeNodeIndent } from '../utils/treeUtils';
10
- import { useClassNames, CHECK_STATE, reactToString } from '../utils';
9
+ import { useClassNames, useEventCallback, CHECK_STATE, reactToString } from '../utils';
11
10
  var CheckTreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
12
11
  var _ref$as = _ref.as,
13
12
  Component = _ref$as === void 0 ? 'div' : _ref$as,
@@ -29,11 +28,12 @@ var CheckTreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
29
28
  label = _ref.label,
30
29
  uncheckable = _ref.uncheckable,
31
30
  checkState = _ref.checkState,
31
+ value = _ref.value,
32
32
  onExpand = _ref.onExpand,
33
33
  onSelect = _ref.onSelect,
34
- onRenderTreeIcon = _ref.onRenderTreeIcon,
35
- onRenderTreeNode = _ref.onRenderTreeNode,
36
- rest = _objectWithoutPropertiesLoose(_ref, ["as", "style", "className", "classPrefix", "visible", "layer", "disabled", "allUncheckable", "rtl", "loading", "expand", "hasChildren", "nodeData", "focus", "label", "uncheckable", "checkState", "onExpand", "onSelect", "onRenderTreeIcon", "onRenderTreeNode"]);
34
+ renderTreeIcon = _ref.renderTreeIcon,
35
+ renderTreeNode = _ref.renderTreeNode,
36
+ rest = _objectWithoutPropertiesLoose(_ref, ["as", "style", "className", "classPrefix", "visible", "layer", "disabled", "allUncheckable", "rtl", "loading", "expand", "hasChildren", "nodeData", "focus", "label", "uncheckable", "checkState", "value", "onExpand", "onSelect", "renderTreeIcon", "renderTreeNode"]);
37
37
  var _useClassNames = useClassNames(classPrefix),
38
38
  prefix = _useClassNames.prefix,
39
39
  merge = _useClassNames.merge,
@@ -46,13 +46,13 @@ var CheckTreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
46
46
  return nodes.join('');
47
47
  }
48
48
  };
49
- var handleExpand = useCallback(function (event) {
49
+ var handleExpand = useEventCallback(function (event) {
50
50
  var _event$nativeEvent, _event$nativeEvent$st;
51
51
  // stop propagation when using custom loading icon
52
52
  event === null || event === void 0 ? void 0 : (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : (_event$nativeEvent$st = _event$nativeEvent.stopImmediatePropagation) === null || _event$nativeEvent$st === void 0 ? void 0 : _event$nativeEvent$st.call(_event$nativeEvent);
53
53
  onExpand === null || onExpand === void 0 ? void 0 : onExpand(nodeData);
54
- }, [nodeData, onExpand]);
55
- var handleSelect = useCallback(function (_value, event) {
54
+ });
55
+ var handleSelect = useEventCallback(function (_value, event) {
56
56
  if (disabled || uncheckable) {
57
57
  return;
58
58
  }
@@ -67,7 +67,7 @@ var CheckTreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
67
67
  check: isChecked
68
68
  });
69
69
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextNodeData, event);
70
- }, [disabled, checkState, uncheckable, nodeData, onSelect]);
70
+ });
71
71
  var renderIcon = function renderIcon() {
72
72
  var expandIconClasses = prefix('expand-icon', 'icon', {
73
73
  expanded: expand
@@ -82,8 +82,8 @@ var CheckTreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
82
82
  spin: true
83
83
  }));
84
84
  }
85
- if (typeof onRenderTreeIcon === 'function') {
86
- var customIcon = onRenderTreeIcon(nodeData);
85
+ if (typeof renderTreeIcon === 'function') {
86
+ var customIcon = renderTreeIcon(nodeData);
87
87
  expandIcon = customIcon !== null ? /*#__PURE__*/React.createElement("div", {
88
88
  className: prefix('custom-icon')
89
89
  }, customIcon) : expandIcon;
@@ -96,23 +96,6 @@ var CheckTreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
96
96
  onClick: handleExpand
97
97
  }, expandIcon) : null;
98
98
  };
99
- var renderLabel = function renderLabel() {
100
- return /*#__PURE__*/React.createElement(DropdownMenuCheckItem, {
101
- as: "div",
102
- active: checkState === CHECK_STATE.CHECK,
103
- indeterminate: checkState === CHECK_STATE.INDETERMINATE,
104
- focus: focus,
105
- checkable: !uncheckable,
106
- disabled: disabled,
107
- "data-layer": layer,
108
- value: nodeData.refKey,
109
- className: prefix('label'),
110
- title: getTitle(),
111
- onSelect: handleSelect
112
- }, /*#__PURE__*/React.createElement("span", {
113
- className: prefix('text-wrapper')
114
- }, typeof onRenderTreeNode === 'function' ? onRenderTreeNode(nodeData) : label));
115
- };
116
99
  var classes = merge(className, withClassPrefix({
117
100
  disabled: disabled,
118
101
  'all-uncheckable': !!allUncheckable,
@@ -120,42 +103,31 @@ var CheckTreeNode = /*#__PURE__*/forwardRef(function (_ref, ref) {
120
103
  focus: focus
121
104
  }));
122
105
  var styles = _extends({}, style, getTreeNodeIndent(rtl, layer - 1));
123
- return visible ? /*#__PURE__*/React.createElement(Component, _extends({
106
+ return visible ? /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
107
+ style: styles,
108
+ className: classes,
109
+ ref: ref
110
+ }), renderIcon(), /*#__PURE__*/React.createElement(ListCheckItem, {
111
+ as: "div",
124
112
  role: "treeitem",
125
113
  "aria-label": label,
126
114
  "aria-expanded": expand,
127
115
  "aria-selected": checkState === CHECK_STATE.CHECK,
128
116
  "aria-disabled": disabled,
129
- "aria-level": layer
130
- }, rest, {
131
- style: styles,
132
- className: classes,
133
- ref: ref
134
- }), renderIcon(), renderLabel()) : null;
117
+ "aria-level": layer,
118
+ active: checkState === CHECK_STATE.CHECK,
119
+ indeterminate: checkState === CHECK_STATE.INDETERMINATE,
120
+ focus: focus,
121
+ checkable: !uncheckable,
122
+ disabled: disabled,
123
+ "data-layer": layer,
124
+ value: nodeData.refKey || value,
125
+ className: prefix('label'),
126
+ title: getTitle(),
127
+ onSelect: handleSelect
128
+ }, /*#__PURE__*/React.createElement("span", {
129
+ className: prefix('text-wrapper')
130
+ }, typeof renderTreeNode === 'function' ? renderTreeNode(nodeData) : label))) : null;
135
131
  });
136
132
  CheckTreeNode.displayName = 'CheckTreeNode';
137
- CheckTreeNode.propTypes = {
138
- as: PropTypes.elementType,
139
- rtl: PropTypes.bool,
140
- classPrefix: PropTypes.string,
141
- visible: PropTypes.bool,
142
- style: PropTypes.object,
143
- label: PropTypes.any,
144
- layer: PropTypes.number,
145
- loading: PropTypes.bool,
146
- value: PropTypes.any,
147
- focus: PropTypes.bool,
148
- expand: PropTypes.bool,
149
- nodeData: PropTypes.object,
150
- disabled: PropTypes.bool,
151
- className: PropTypes.string,
152
- checkState: PropTypes.oneOf([CHECK_STATE.UNCHECK, CHECK_STATE.CHECK, CHECK_STATE.INDETERMINATE]),
153
- hasChildren: PropTypes.bool,
154
- uncheckable: PropTypes.bool,
155
- allUncheckable: PropTypes.bool,
156
- onExpand: PropTypes.func,
157
- onSelect: PropTypes.func,
158
- onRenderTreeIcon: PropTypes.func,
159
- onRenderTreeNode: PropTypes.func
160
- };
161
133
  export default CheckTreeNode;
@@ -15,7 +15,7 @@ import CheckTreeNode from './CheckTreeNode';
15
15
  import TreeContext from '../Tree/TreeContext';
16
16
  import { getKeyParentMap, getPathTowardsItem, getTreeNodeIndent } from '../utils/treeUtils';
17
17
  import { createChainedFunction, useCustom, useClassNames, useControlled, useEventCallback, KEY_VALUES, mergeRefs } from '../utils';
18
- import { PickerToggle, onMenuKeyDown as _onMenuKeyDown, PickerOverlay, SearchBar, SelectedElement, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName, useToggleKeyDownEvent, usePickerRef, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
18
+ import { PickerToggle, TreeView, onMenuKeyDown as _onMenuKeyDown, PickerPopup, SearchBar, SelectedElement, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName, useToggleKeyDownEvent, usePickerRef, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
19
19
  import { isEveryChildChecked, isSomeNodeHasChildren, isAllSiblingNodeUncheckable, isEveryFirstLevelNodeUncheckable, getFormattedTree, getDisabledState, getCheckTreePickerDefaultValue, getSelectedItems, isNodeUncheckable } from './utils';
20
20
  import { hasVisibleChildren, getExpandWhenSearching, useTreeSearch, useTreeNodeRefs, getDefaultExpandItemValues, useFlattenTreeData, focusNextItem, getFocusableItems, focusPreviousItem, toggleExpand, getActiveItem, useGetTreeNodeChildren, focusToActiveTreeNode, focusTreeNode, leftArrowHandler, rightArrowHandler, isSearching } from '../utils/treeUtils';
21
21
  var emptyArray = [];
@@ -238,8 +238,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
238
238
  allUncheckable: isAllSiblingNodeUncheckable(node, flattenNodes, uncheckableItemValues, valueKey),
239
239
  onSelect: handleSelect,
240
240
  onExpand: handleExpand,
241
- onRenderTreeNode: renderTreeNode,
242
- onRenderTreeIcon: renderTreeIcon
241
+ renderTreeNode: renderTreeNode,
242
+ renderTreeIcon: renderTreeIcon
243
243
  };
244
244
  };
245
245
  var focusActiveNode = function focusActiveNode() {
@@ -402,8 +402,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
402
402
  });
403
403
  var handleClean = useEventCallback(function (event) {
404
404
  var target = event.target;
405
- // exclude searchBar
406
- if (target.matches('div[role="searchbox"] > input') || disabled || !cleanable) {
405
+ // exclude searchbox
406
+ if (target.matches('input[role="searchbox"]') || disabled || !cleanable) {
407
407
  return;
408
408
  }
409
409
  setActiveNode(null);
@@ -557,7 +557,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
557
557
  return saveTreeNodeRef(_ref, refKey);
558
558
  }
559
559
  })), /*#__PURE__*/React.createElement("div", {
560
- className: checkTreePrefix('children')
560
+ className: checkTreePrefix('group'),
561
+ role: "group"
561
562
  }, nodes.map(function (child) {
562
563
  return renderNode(child, layer);
563
564
  }), showIndentLine && /*#__PURE__*/React.createElement("span", {
@@ -609,21 +610,17 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
609
610
  className: prefix('none')
610
611
  }, locale.noResultsText);
611
612
  }
612
- var treeNodesClass = merge(checkTreePrefix('nodes'), (_merge2 = {}, _merge2[checkTreePrefix('all-uncheckable')] = isEveryFirstLevelNodeUncheckable(flattenNodes, uncheckableItemValues, valueKey), _merge2));
613
- var styles = inline ? _extends({
614
- height: height
615
- }, style) : {};
616
- return /*#__PURE__*/React.createElement("div", {
617
- id: id ? id + "-listbox" : undefined,
613
+ var treeNodesClass = merge(checkTreePrefix('root'), (_merge2 = {}, _merge2[checkTreePrefix('all-uncheckable')] = isEveryFirstLevelNodeUncheckable(flattenNodes, uncheckableItemValues, valueKey), _merge2));
614
+ return /*#__PURE__*/React.createElement(TreeView, {
618
615
  ref: inline ? root : treeView,
619
- role: "tree",
620
- "aria-multiselectable": true,
616
+ multiselectable: true,
617
+ treeRootClassName: treeNodesClass,
621
618
  className: classes,
622
- style: styles,
619
+ style: inline ? _extends({
620
+ height: height
621
+ }, style) : {},
623
622
  onScroll: onScroll,
624
623
  onKeyDown: inline ? handleTreeKeydown : undefined
625
- }, /*#__PURE__*/React.createElement("div", {
626
- className: treeNodesClass
627
624
  }, virtualized ? /*#__PURE__*/React.createElement(AutoSizer, {
628
625
  defaultHeight: inline ? height : menuMaxHeight,
629
626
  style: {
@@ -639,7 +636,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
639
636
  itemCount: formattedNodes.length,
640
637
  itemData: formattedNodes
641
638
  }, listProps), renderVirtualListNode);
642
- }) : formattedNodes));
639
+ }) : formattedNodes);
643
640
  };
644
641
  var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
645
642
  var left = positionProps.left,
@@ -650,7 +647,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
650
647
  left: left,
651
648
  top: top
652
649
  });
653
- return /*#__PURE__*/React.createElement(PickerOverlay, {
650
+ return /*#__PURE__*/React.createElement(PickerPopup, {
654
651
  autoWidth: menuAutoWidth,
655
652
  className: classes,
656
653
  style: mergedMenuStyle,
@@ -706,6 +703,9 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
706
703
  return renderCheckTree();
707
704
  }
708
705
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
706
+ id: id,
707
+ popupType: "tree",
708
+ multiple: true,
709
709
  pickerProps: _pick(props, pickTriggerPropKeys),
710
710
  ref: trigger,
711
711
  placement: placement,
@@ -718,7 +718,6 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
718
718
  style: style,
719
719
  ref: root
720
720
  }, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, _omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
721
- id: id,
722
721
  ref: target,
723
722
  appearance: appearance,
724
723
  onKeyDown: onPickerKeydown,
@@ -729,7 +728,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
729
728
  hasValue: hasValidValue,
730
729
  active: active,
731
730
  placement: placement,
732
- inputValue: value
731
+ inputValue: value,
732
+ focusItemValue: focusItemValue
733
733
  }), selectedElement || locale.placeholder)));
734
734
  });
735
735
  CheckTreePicker.displayName = 'CheckTreePicker';
@@ -19,8 +19,7 @@ import Stack from '../Stack';
19
19
  import PredefinedRanges from './PredefinedRanges';
20
20
  import { createChainedFunction, mergeRefs, useClassNames, useControlled, useCustom, useUniqueId, useEventCallback, partitionHTMLProps } from '../utils';
21
21
  import { shouldRenderMonth, shouldRenderDate, shouldRenderTime, shouldOnlyRenderTime, setHours, getHours, addMonths, addDays, isValid, disabledTime, copyTime, calendarOnlyProps } from '../utils/dateUtils';
22
- import { PickerOverlay, PickerLabel, PickerIndicator, PickerToggleTrigger, pickerPropTypes, pickTriggerPropKeys, omitTriggerPropKeys, usePickerClassName, onMenuKeyDown } from '../Picker';
23
- import usePickerRef from '../Picker/usePickerRef';
22
+ import { PickerPopup, PickerLabel, PickerIndicator, PickerToggleTrigger, pickerPropTypes, pickTriggerPropKeys, omitTriggerPropKeys, usePickerClassName, usePickerRef, onMenuKeyDown } from '../Picker';
24
23
  import DateInput from '../DateInput';
25
24
  import InputGroup from '../InputGroup';
26
25
  import { OverlayCloseCause } from '../Overlay/OverlayTrigger';
@@ -97,7 +96,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
97
96
  onToggleTimeDropdown = props.onToggleTimeDropdown,
98
97
  onShortcutClick = props.onShortcutClick,
99
98
  restProps = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "editable", "defaultValue", "disabled", "readOnly", "plaintext", "format", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "size", "caretAs", "disabledDate", "disabledHours", "disabledMinutes", "disabledSeconds", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "onChange", "onChangeCalendarDate", "onClean", "onClose", "onEntered", "onExited", "onNextMonth", "onOk", "onOpen", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown", "onShortcutClick"]);
100
- var id = useUniqueId(classPrefix + "-", idProp);
99
+ var id = useUniqueId('rs-', idProp);
101
100
  var _usePickerRef = usePickerRef(ref),
102
101
  trigger = _usePickerRef.trigger,
103
102
  root = _usePickerRef.root,
@@ -274,7 +273,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
274
273
  onClean === null || onClean === void 0 ? void 0 : onClean(event);
275
274
  event.stopPropagation();
276
275
  });
277
- var handlePickerOverlayKeyDown = useEventCallback(function (event) {
276
+ var handlePickerPopupKeyDown = useEventCallback(function (event) {
278
277
  var delta = 0;
279
278
  var step = showMonth ? 6 : 7;
280
279
  var changeDateFunc = showMonth ? addMonths : addDays;
@@ -418,7 +417,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
418
417
  left: left,
419
418
  top: top
420
419
  });
421
- return /*#__PURE__*/React.createElement(PickerOverlay, {
420
+ return /*#__PURE__*/React.createElement(PickerPopup, {
422
421
  role: "dialog",
423
422
  "aria-labelledby": label ? id + "-label" : undefined,
424
423
  tabIndex: -1,
@@ -426,7 +425,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
426
425
  ref: mergeRefs(overlay, speakerRef),
427
426
  style: styles,
428
427
  target: trigger,
429
- onKeyDown: handlePickerOverlayKeyDown
428
+ onKeyDown: handlePickerPopupKeyDown
430
429
  }, /*#__PURE__*/React.createElement(Stack, {
431
430
  alignItems: "flex-start"
432
431
  }, sideRanges.length > 0 && /*#__PURE__*/React.createElement(PredefinedRanges, {
@@ -15,7 +15,7 @@ import { FormattedDate } from '../CustomProvider';
15
15
  import Toolbar from '../DatePicker/Toolbar';
16
16
  import PredefinedRanges from '../DatePicker/PredefinedRanges';
17
17
  import Stack from '../Stack';
18
- import { omitTriggerPropKeys, PickerOverlay, pickerPropTypes, PickerToggleTrigger, PickerIndicator, PickerLabel, pickTriggerPropKeys, usePickerClassName, onMenuKeyDown } from '../Picker';
18
+ import { omitTriggerPropKeys, PickerPopup, pickerPropTypes, PickerToggleTrigger, PickerIndicator, PickerLabel, pickTriggerPropKeys, usePickerClassName, usePickerRef, onMenuKeyDown } from '../Picker';
19
19
  import { createChainedFunction, DATERANGE_DISABLED_TARGET, mergeRefs, useClassNames, useControlled, useCustom, useUniqueId, useEventCallback, partitionHTMLProps, getStringLength } from '../utils';
20
20
  import { addMonths, compareAsc, isValid, isBefore, isSameDay, addDays, startOfDay, endOfDay, shouldRenderTime, isAfter, copyTime, isSameMonth, shouldRenderMonth, shouldRenderDate, reverseDateRangeOmitTime, getReversedTimeMeridian, calendarOnlyProps, shouldOnlyRenderTime } from '../utils/dateUtils';
21
21
  import Calendar from './Calendar';
@@ -25,7 +25,6 @@ import { deprecatePropTypeNew } from '../utils/deprecatePropType';
25
25
  import DateRangePickerContext from './DateRangePickerContext';
26
26
  import DateRangeInput from '../DateRangeInput';
27
27
  import InputGroup from '../InputGroup';
28
- import usePickerRef from '../Picker/usePickerRef';
29
28
  /**
30
29
  * A date range picker allows you to select a date range from a calendar.
31
30
  *
@@ -93,7 +92,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
93
92
  onShortcutClick = props.onShortcutClick,
94
93
  renderTitle = props.renderTitle,
95
94
  restProps = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "plaintext", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "readOnly", "showOneCalendar", "showWeekNumbers", "showMeridian", "style", "size", "caretAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect", "onShortcutClick", "renderTitle"]);
96
- var id = useUniqueId(classPrefix + "-", idProp);
95
+ var id = useUniqueId('rs-', idProp);
97
96
  var _usePickerRef = usePickerRef(ref),
98
97
  trigger = _usePickerRef.trigger,
99
98
  root = _usePickerRef.root,
@@ -598,7 +597,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
598
597
  var bottomRanges = ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
599
598
  return (range === null || range === void 0 ? void 0 : range.placement) === 'bottom' || (range === null || range === void 0 ? void 0 : range.placement) === undefined;
600
599
  });
601
- return /*#__PURE__*/React.createElement(PickerOverlay, {
600
+ return /*#__PURE__*/React.createElement(PickerPopup, {
602
601
  role: "dialog",
603
602
  "aria-labelledby": label ? id + "-label" : undefined,
604
603
  tabIndex: -1,
@@ -32,6 +32,20 @@ export interface FormProps<T = Record<string, any>, errorMsgType = any, E = {
32
32
  disabled?: boolean;
33
33
  /** The error message comes from context */
34
34
  errorFromContext?: boolean;
35
+ /**
36
+ * The form data is nested.
37
+ * You may now nest fields with "dot syntax" (e.g. address.city).
38
+ *
39
+ * @default false
40
+ * @version v5.51.0
41
+ * @example
42
+ * ```jsx
43
+ * <Form formValue={{ address: { city: 'Shanghai' } }} nestedField>
44
+ * <FormControl name="address.city" />
45
+ * </Form>
46
+ * ```
47
+ */
48
+ nestedField?: boolean;
35
49
  /** Callback fired when data changing */
36
50
  onChange?: (formValue: T, event?: React.SyntheticEvent) => void;
37
51
  /** Callback fired when error checking */