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
package/esm/Form/Form.js CHANGED
@@ -1,9 +1,10 @@
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, { useMemo, useCallback, useImperativeHandle, useRef } from 'react';
4
+ import React, { useMemo, useImperativeHandle, useRef } from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import omit from 'lodash/omit';
7
+ import set from 'lodash/set';
7
8
  import { SchemaModel } from 'schema-typed';
8
9
  import FormContext, { FormValueContext } from './FormContext';
9
10
  import FormControl from '../FormControl';
@@ -13,7 +14,7 @@ import FormGroup from '../FormGroup';
13
14
  import FormHelpText from '../FormHelpText';
14
15
  import { useFormClassNames } from './useFormClassNames';
15
16
  import useSchemaModel from './useSchemaModel';
16
- import { useControlled } from '../utils';
17
+ import { useControlled, useEventCallback } from '../utils';
17
18
  /**
18
19
  * The `Form` component is a form interface for collecting and validating user input.
19
20
  * @see https://rsuitejs.com/components/form
@@ -30,6 +31,8 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
30
31
  formValue = props.formValue,
31
32
  formError = props.formError,
32
33
  fluid = props.fluid,
34
+ _props$nestedField = props.nestedField,
35
+ nestedField = _props$nestedField === void 0 ? false : _props$nestedField,
33
36
  _props$layout = props.layout,
34
37
  layout = _props$layout === void 0 ? 'vertical' : _props$layout,
35
38
  _props$model = props.model,
@@ -43,7 +46,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
43
46
  onCheck = props.onCheck,
44
47
  onError = props.onError,
45
48
  onChange = props.onChange,
46
- rest = _objectWithoutPropertiesLoose(props, ["checkTrigger", "classPrefix", "errorFromContext", "formDefaultValue", "formValue", "formError", "fluid", "layout", "model", "readOnly", "plaintext", "className", "children", "disabled", "onSubmit", "onCheck", "onError", "onChange"]);
49
+ rest = _objectWithoutPropertiesLoose(props, ["checkTrigger", "classPrefix", "errorFromContext", "formDefaultValue", "formValue", "formError", "fluid", "nestedField", "layout", "model", "readOnly", "plaintext", "className", "children", "disabled", "onSubmit", "onCheck", "onError", "onChange"]);
47
50
  var _useSchemaModel = useSchemaModel(formModel),
48
51
  getCombinedModel = _useSchemaModel.getCombinedModel,
49
52
  pushFieldRule = _useSchemaModel.pushFieldRule,
@@ -73,7 +76,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
73
76
  * The error message after verification is returned in the callback.
74
77
  * @param callback
75
78
  */
76
- var check = useCallback(function (callback) {
79
+ var check = useEventCallback(function (callback) {
77
80
  var formValue = realFormValue || {};
78
81
  var formError = {};
79
82
  var errorCount = 0;
@@ -93,14 +96,14 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
93
96
  return false;
94
97
  }
95
98
  return true;
96
- }, [realFormValue, getCombinedModel, setFormError, onCheck, onError]);
99
+ });
97
100
 
98
101
  /**
99
102
  * Check the data field
100
103
  * @param fieldName
101
104
  * @param callback
102
105
  */
103
- var checkForField = useCallback(function (fieldName, callback) {
106
+ var checkForField = useEventCallback(function (fieldName, callback) {
104
107
  var _extends2;
105
108
  var formValue = realFormValue || {};
106
109
  var model = getCombinedModel();
@@ -113,12 +116,12 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
113
116
  onError === null || onError === void 0 ? void 0 : onError(formError);
114
117
  }
115
118
  return !checkResult.hasError;
116
- }, [realFormValue, getCombinedModel, realFormError, setFormError, onCheck, onError]);
119
+ });
117
120
 
118
121
  /**
119
122
  * Check form data asynchronously and return a Promise
120
123
  */
121
- var checkAsync = useCallback(function () {
124
+ var checkAsync = useEventCallback(function () {
122
125
  var formValue = realFormValue || {};
123
126
  var promises = [];
124
127
  var keys = [];
@@ -146,13 +149,13 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
146
149
  formError: formError
147
150
  };
148
151
  });
149
- }, [realFormValue, getCombinedModel, onCheck, setFormError, onError]);
152
+ });
150
153
 
151
154
  /**
152
155
  * Asynchronously check form fields and return Promise
153
156
  * @param fieldName
154
157
  */
155
- var checkForFieldAsync = useCallback(function (fieldName) {
158
+ var checkForFieldAsync = useEventCallback(function (fieldName) {
156
159
  var formValue = realFormValue || {};
157
160
  var model = getCombinedModel();
158
161
  return model.checkForFieldAsync(fieldName, formValue).then(function (checkResult) {
@@ -165,19 +168,19 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
165
168
  }
166
169
  return checkResult;
167
170
  });
168
- }, [realFormValue, getCombinedModel, realFormError, onCheck, setFormError, onError]);
169
- var cleanErrors = useCallback(function () {
171
+ });
172
+ var cleanErrors = useEventCallback(function () {
170
173
  setFormError({});
171
- }, [setFormError]);
172
- var cleanErrorForField = useCallback(function (fieldName) {
174
+ });
175
+ var cleanErrorForField = useEventCallback(function (fieldName) {
173
176
  setFormError(omit(realFormError, [fieldName]));
174
- }, [realFormError, setFormError]);
175
- var resetErrors = useCallback(function (formError) {
177
+ });
178
+ var resetErrors = useEventCallback(function (formError) {
176
179
  if (formError === void 0) {
177
180
  formError = {};
178
181
  }
179
182
  setFormError(formError);
180
- }, [setFormError]);
183
+ });
181
184
  useImperativeHandle(ref, function () {
182
185
  return {
183
186
  root: rootRef.current,
@@ -190,7 +193,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
190
193
  resetErrors: resetErrors
191
194
  };
192
195
  });
193
- var removeFieldError = useCallback(function (name) {
196
+ var removeFieldError = useEventCallback(function (name) {
194
197
  /**
195
198
  * when this function is called when the children component is unmount, it's an old render frame
196
199
  * so use Ref to get future error
@@ -199,8 +202,8 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
199
202
  realFormErrorRef.current = formError;
200
203
  setFormError(formError);
201
204
  onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
202
- }, [onCheck, setFormError]);
203
- var removeFieldValue = useCallback(function (name) {
205
+ });
206
+ var removeFieldValue = useEventCallback(function (name) {
204
207
  /**
205
208
  * when this function is called when the children component is unmount, it's an old render frame
206
209
  * so use Ref to get future value
@@ -209,8 +212,8 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
209
212
  realFormValueRef.current = formValue;
210
213
  setFormValue(formValue);
211
214
  onChange === null || onChange === void 0 ? void 0 : onChange(formValue);
212
- }, [onChange, setFormValue]);
213
- var handleSubmit = useCallback(function (event) {
215
+ });
216
+ var handleSubmit = useEventCallback(function (event) {
214
217
  if (disabled || readOnly || plaintext) {
215
218
  return;
216
219
  }
@@ -218,24 +221,29 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
218
221
  event.stopPropagation();
219
222
  var checkStatus = check();
220
223
  onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(checkStatus, event);
221
- }, [disabled, readOnly, plaintext, check, onSubmit]);
222
- var handleFieldError = useCallback(function (name, errorMessage) {
224
+ });
225
+ var handleFieldError = useEventCallback(function (name, errorMessage) {
223
226
  var _extends4;
224
227
  var formError = _extends({}, realFormError, (_extends4 = {}, _extends4[name] = errorMessage, _extends4));
225
228
  setFormError(formError);
226
229
  onError === null || onError === void 0 ? void 0 : onError(formError);
227
230
  onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
228
- }, [realFormError, setFormError, onError, onCheck]);
229
- var handleFieldSuccess = useCallback(function (name) {
231
+ });
232
+ var handleFieldSuccess = useEventCallback(function (name) {
230
233
  removeFieldError(name);
231
- }, [removeFieldError]);
232
- var handleFieldChange = useCallback(function (name, value, event) {
234
+ });
235
+ var setFieldValue = function setFieldValue(formValue, fieldName, fieldValue) {
233
236
  var _extends5;
234
- var formValue = realFormValue;
235
- var nextFormValue = _extends({}, formValue, (_extends5 = {}, _extends5[name] = value, _extends5));
237
+ if (nestedField) {
238
+ return set(_extends({}, formValue), fieldName, fieldValue);
239
+ }
240
+ return _extends({}, formValue, (_extends5 = {}, _extends5[fieldName] = fieldValue, _extends5));
241
+ };
242
+ var handleFieldChange = useEventCallback(function (name, value, event) {
243
+ var nextFormValue = setFieldValue(realFormValue, name, value);
236
244
  setFormValue(nextFormValue);
237
245
  onChange === null || onChange === void 0 ? void 0 : onChange(nextFormValue, event);
238
- }, [realFormValue, setFormValue, onChange]);
246
+ });
239
247
  var rootRef = useRef(null);
240
248
  var formContextValue = useMemo(function () {
241
249
  return {
@@ -246,6 +254,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
246
254
  plaintext: plaintext,
247
255
  disabled: disabled,
248
256
  formError: realFormError,
257
+ nestedField: nestedField,
249
258
  removeFieldValue: removeFieldValue,
250
259
  removeFieldError: removeFieldError,
251
260
  pushFieldRule: pushFieldRule,
@@ -254,7 +263,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
254
263
  onFieldError: handleFieldError,
255
264
  onFieldSuccess: handleFieldSuccess
256
265
  };
257
- }, [getCombinedModel, checkTrigger, errorFromContext, readOnly, plaintext, disabled, realFormError, removeFieldValue, removeFieldError, pushFieldRule, removeFieldRule, handleFieldChange, handleFieldError, handleFieldSuccess]);
266
+ }, [getCombinedModel, checkTrigger, errorFromContext, readOnly, plaintext, disabled, realFormError, nestedField, removeFieldValue, removeFieldError, pushFieldRule, removeFieldRule, handleFieldChange, handleFieldError, handleFieldSuccess]);
258
267
  return /*#__PURE__*/React.createElement("form", _extends({}, rest, {
259
268
  ref: rootRef,
260
269
  onSubmit: handleSubmit,
@@ -7,6 +7,7 @@ interface TrulyFormContextValue<T = Record<string, any>, errorMsgType = any, E =
7
7
  }> {
8
8
  getCombinedModel: () => Schema;
9
9
  formError: E;
10
+ nestedField: boolean;
10
11
  removeFieldValue: (name: string) => void;
11
12
  removeFieldError: (name: string) => void;
12
13
  pushFieldRule: (name: string, fieldRule: FieldRuleType) => void;
@@ -13,7 +13,7 @@ import FormErrorMessage from '../FormErrorMessage';
13
13
  import { useClassNames } from '../utils';
14
14
  import FormContext, { FormValueContext } from '../Form/FormContext';
15
15
  import { FormGroupContext } from '../FormGroup/FormGroup';
16
- import { useWillUnmount } from '../utils';
16
+ import { useWillUnmount, useEventCallback } from '../utils';
17
17
  import useRegisterModel from './useRegisterModel';
18
18
  import Toggle from '../Toggle';
19
19
 
@@ -33,6 +33,7 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
33
33
  disabledContext = _useContext.disabled,
34
34
  errorFromContext = _useContext.errorFromContext,
35
35
  formError = _useContext.formError,
36
+ nestedField = _useContext.nestedField,
36
37
  removeFieldValue = _useContext.removeFieldValue,
37
38
  removeFieldError = _useContext.removeFieldError,
38
39
  pushFieldRule = _useContext.pushFieldRule,
@@ -82,46 +83,67 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
82
83
  });
83
84
  var trigger = checkTrigger || contextCheckTrigger;
84
85
  var formValue = useContext(FormValueContext);
85
- var val = isUndefined(value) ? get(formValue, name) : value;
86
+ var getFieldValue = function getFieldValue(fieldName) {
87
+ if (!isUndefined(value)) {
88
+ return value;
89
+ }
90
+ return nestedField ? get(formValue, fieldName) : formValue === null || formValue === void 0 ? void 0 : formValue[name];
91
+ };
92
+ var setFieldValue = function setFieldValue(fieldName, fieldValue) {
93
+ var _extends2;
94
+ if (nestedField) {
95
+ return set(_extends({}, formValue), fieldName, fieldValue);
96
+ }
97
+ return _extends({}, formValue, (_extends2 = {}, _extends2[fieldName] = fieldValue, _extends2));
98
+ };
99
+ var getFieldError = function getFieldError(fieldName) {
100
+ if (nestedField) {
101
+ var _name = fieldName.includes('.') ? fieldName.replace('.', '.object.') + '.errorMessage' : fieldName;
102
+ return get(formError, _name);
103
+ }
104
+ return formError === null || formError === void 0 ? void 0 : formError[fieldName];
105
+ };
106
+ var fieldValue = getFieldValue(name);
86
107
  var _useClassNames = useClassNames(classPrefix),
87
108
  withClassPrefix = _useClassNames.withClassPrefix,
88
109
  prefix = _useClassNames.prefix;
89
110
  var classes = withClassPrefix('wrapper');
90
- var handleFieldChange = function handleFieldChange(value, event) {
111
+ var handleFieldChange = useEventCallback(function (value, event) {
91
112
  handleFieldCheck(value, trigger === 'change');
92
113
  onFieldChange === null || onFieldChange === void 0 ? void 0 : onFieldChange(name, value, event);
93
114
  onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
94
- };
95
- var handleFieldBlur = function handleFieldBlur(event) {
96
- handleFieldCheck(val, trigger === 'blur');
115
+ });
116
+ var handleFieldBlur = useEventCallback(function (event) {
117
+ handleFieldCheck(fieldValue, trigger === 'blur');
97
118
  onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
98
- };
99
- var handleFieldCheck = function handleFieldCheck(value, isCheckTrigger) {
119
+ });
120
+ var handleFieldCheck = useEventCallback(function (value, isCheckTrigger) {
121
+ var checkFieldName = nestedField ? name.split('.')[0] : name;
100
122
  var callbackEvents = function callbackEvents(checkResult) {
101
123
  // The relevant event is triggered only when the inspection is allowed.
102
124
  if (isCheckTrigger) {
103
125
  if (checkResult.hasError) {
104
- onFieldError === null || onFieldError === void 0 ? void 0 : onFieldError(name, (checkResult === null || checkResult === void 0 ? void 0 : checkResult.errorMessage) || checkResult);
126
+ onFieldError === null || onFieldError === void 0 ? void 0 : onFieldError(checkFieldName, (checkResult === null || checkResult === void 0 ? void 0 : checkResult.errorMessage) || checkResult);
105
127
  } else {
106
- onFieldSuccess === null || onFieldSuccess === void 0 ? void 0 : onFieldSuccess(name);
128
+ onFieldSuccess === null || onFieldSuccess === void 0 ? void 0 : onFieldSuccess(checkFieldName);
107
129
  }
108
130
  }
109
131
  return checkResult;
110
132
  };
111
- var nextFormValue = set(formValue || {}, name, value);
133
+ var nextFormValue = setFieldValue(name, value);
112
134
  var model = getCombinedModel();
113
135
  if (checkAsync) {
114
- return model === null || model === void 0 ? void 0 : model.checkForFieldAsync(name, nextFormValue).then(function (checkResult) {
136
+ return model === null || model === void 0 ? void 0 : model.checkForFieldAsync(checkFieldName, nextFormValue).then(function (checkResult) {
115
137
  return callbackEvents(checkResult);
116
138
  });
117
139
  }
118
- return Promise.resolve(callbackEvents(model === null || model === void 0 ? void 0 : model.checkForField(name, nextFormValue)));
119
- };
140
+ return Promise.resolve(callbackEvents(model === null || model === void 0 ? void 0 : model.checkForField(checkFieldName, nextFormValue)));
141
+ });
120
142
  var messageNode = null;
121
143
  if (!isUndefined(errorMessage)) {
122
144
  messageNode = errorMessage;
123
145
  } else if (errorFromContext) {
124
- var fieldError = formError === null || formError === void 0 ? void 0 : formError[name];
146
+ var fieldError = getFieldError(name);
125
147
  if (typeof fieldError === 'string' || !(fieldError !== null && fieldError !== void 0 && fieldError.array) && !(fieldError !== null && fieldError !== void 0 && fieldError.object) && fieldError !== null && fieldError !== void 0 && fieldError.hasError) {
126
148
  messageNode = fieldError;
127
149
  }
@@ -135,7 +157,7 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
135
157
  if (AccepterComponent === Toggle) {
136
158
  valueKey = 'checked';
137
159
  }
138
- var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] = val === undefined ? defaultValue : val, _accepterProps);
160
+ var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] = fieldValue === undefined ? defaultValue : fieldValue, _accepterProps);
139
161
  return /*#__PURE__*/React.createElement(Component, {
140
162
  className: classes,
141
163
  ref: ref,
@@ -154,7 +176,7 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
154
176
  onChange: handleFieldChange,
155
177
  onBlur: handleFieldBlur
156
178
  })), /*#__PURE__*/React.createElement(FormErrorMessage, {
157
- id: controlId + "-error-message",
179
+ id: controlId ? controlId + "-error-message" : undefined,
158
180
  role: "alert",
159
181
  "aria-relevant": "all",
160
182
  show: !!messageNode,
@@ -3,7 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
4
  import React, { useMemo } from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { useClassNames } from '../utils';
6
+ import { useClassNames, useUniqueId } from '../utils';
7
7
  export var FormGroupContext = /*#__PURE__*/React.createContext({});
8
8
 
9
9
  /**
@@ -15,13 +15,14 @@ var FormGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
15
15
  Component = _props$as === void 0 ? 'div' : _props$as,
16
16
  _props$classPrefix = props.classPrefix,
17
17
  classPrefix = _props$classPrefix === void 0 ? 'form-group' : _props$classPrefix,
18
- controlId = props.controlId,
18
+ controlIdProp = props.controlId,
19
19
  className = props.className,
20
20
  rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "controlId", "className"]);
21
21
  var _useClassNames = useClassNames(classPrefix),
22
22
  withClassPrefix = _useClassNames.withClassPrefix,
23
23
  merge = _useClassNames.merge;
24
24
  var classes = merge(className, withClassPrefix());
25
+ var controlId = useUniqueId('rs-', controlIdProp);
25
26
  var contextValue = useMemo(function () {
26
27
  return {
27
28
  controlId: controlId
@@ -2,7 +2,7 @@
2
2
  import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
5
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
6
6
  import React, { useState, useRef, useEffect, useCallback, useContext } from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import isUndefined from 'lodash/isUndefined';
@@ -19,11 +19,22 @@ import { filterNodesOfTree } from '../utils/treeUtils';
19
19
  import Plaintext from '../Plaintext';
20
20
  import { createChainedFunction, tplTransform, useClassNames, useCustom, useControlled, useEventCallback, mergeRefs, isOneOf, KEY_VALUES } from '../utils';
21
21
  import { getDataGroupBy } from '../utils/getDataGroupBy';
22
- import { DropdownMenu, DropdownMenuItem, DropdownMenuCheckItem, PickerToggle, PickerOverlay, PickerToggleTrigger, useFocusItemValue, usePickerClassName, useSearch, usePickerRef, useToggleKeyDownEvent, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
22
+ import { Listbox, ListItem, ListCheckItem, PickerToggle, PickerPopup, PickerToggleTrigger, useFocusItemValue, usePickerClassName, useSearch, usePickerRef, useToggleKeyDownEvent, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
23
23
  import Tag from '../Tag';
24
24
  import InputAutosize from './InputAutosize';
25
- import InputSearch from './InputSearch';
25
+ import TextBox from './TextBox';
26
26
  import InputPickerContext from './InputPickerContext';
27
+ var convertSize = function convertSize(size) {
28
+ switch (size) {
29
+ case 'lg':
30
+ return 'lg';
31
+ case 'sm':
32
+ case 'xs':
33
+ return 'sm';
34
+ default:
35
+ return 'md';
36
+ }
37
+ };
27
38
  /**
28
39
  * Single item selector with text box input.
29
40
  *
@@ -206,7 +217,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
206
217
  (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : (_triggerRef$current3$ = _triggerRef$current3.updatePosition) === null || _triggerRef$current3$ === void 0 ? void 0 : _triggerRef$current3$.call(_triggerRef$current3);
207
218
  // eslint-disable-next-line react-hooks/exhaustive-deps
208
219
  }, [searchKeyword, value]);
209
- var getDateItem = function getDateItem(value) {
220
+ var getDataItem = function getDataItem(value) {
210
221
  // Find active `MenuItem` by `value`
211
222
  var allData = getAllDataAndCache();
212
223
  var activeItem = allData.find(function (item) {
@@ -464,7 +475,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
464
475
  blurInput();
465
476
  setOpen(false);
466
477
  });
467
- var renderDropdownMenuItem = function renderDropdownMenuItem(label, item) {
478
+ var renderListItem = function renderListItem(label, item) {
468
479
  // 'Create option "{0}"' => Create option "xxxxx"
469
480
  var newLabel = item.create ? /*#__PURE__*/React.createElement("span", null, tplTransform(locale.createOption, label)) : label;
470
481
  return renderMenuItem ? renderMenuItem(newLabel, item) : newLabel;
@@ -476,7 +487,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
476
487
  itemNode: null
477
488
  };
478
489
  }
479
- var dataItem = getDateItem(value);
490
+ var dataItem = getDataItem(value);
480
491
  var itemNode = dataItem.itemNode;
481
492
  if (!isNil(value) && isFunction(renderValue)) {
482
493
  itemNode = renderValue(value, dataItem.activeItem, itemNode);
@@ -497,17 +508,19 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
497
508
  var tags = value || [];
498
509
  var items = [];
499
510
  var tagElements = tags.map(function (tag) {
500
- var _getDateItem = getDateItem(tag),
501
- isValid = _getDateItem.isValid,
502
- itemNode = _getDateItem.itemNode,
503
- activeItem = _getDateItem.activeItem;
511
+ var _getDataItem = getDataItem(tag),
512
+ isValid = _getDataItem.isValid,
513
+ itemNode = _getDataItem.itemNode,
514
+ activeItem = _getDataItem.activeItem;
504
515
  items.push(activeItem);
505
516
  if (!isValid) {
506
517
  return null;
507
518
  }
508
- return /*#__PURE__*/React.createElement(Tag, _extends({}, tagRest, {
519
+ return /*#__PURE__*/React.createElement(Tag, _extends({
520
+ role: "option"
521
+ }, tagRest, {
509
522
  key: tag,
510
- size: rest.size === 'lg' ? 'lg' : rest.size === 'xs' ? 'sm' : 'md',
523
+ size: convertSize(rest.size),
511
524
  closable: !disabled && closable && !readOnly && !plaintext,
512
525
  title: typeof itemNode === 'string' ? itemNode : undefined,
513
526
  onClose: createChainedFunction(handleRemoveItemByTag.bind(null, tag), onClose)
@@ -520,7 +533,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
520
533
  }
521
534
  return tagElements;
522
535
  };
523
- var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
536
+ var renderPopup = function renderPopup(positionProps, speakerRef) {
524
537
  var left = positionProps.left,
525
538
  top = positionProps.top,
526
539
  className = positionProps.className;
@@ -544,21 +557,20 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
544
557
  items = items.sort(sort(false));
545
558
  }
546
559
  if (disabledOptions) {
547
- return /*#__PURE__*/React.createElement(PickerOverlay, {
560
+ return /*#__PURE__*/React.createElement(PickerPopup, {
548
561
  ref: mergeRefs(overlay, speakerRef)
549
562
  });
550
563
  }
551
- var menu = items.length ? /*#__PURE__*/React.createElement(DropdownMenu, {
552
- id: id ? id + "-listbox" : undefined,
564
+ var menu = items.length ? /*#__PURE__*/React.createElement(Listbox, {
553
565
  listProps: listProps,
554
566
  listRef: list,
555
567
  disabledItemValues: disabledItemValues,
556
568
  valueKey: valueKey,
557
569
  labelKey: labelKey,
558
570
  classPrefix: menuClassPrefix,
559
- dropdownMenuItemClassPrefix: multi ? undefined : menuClassPrefix + "-item",
560
- dropdownMenuItemAs: multi ? DropdownMenuCheckItem : DropdownMenuItem,
561
- dropdownMenuItemProps: {
571
+ listItemClassPrefix: multi ? undefined : menuClassPrefix + "-item",
572
+ listItemAs: multi ? ListCheckItem : ListItem,
573
+ listItemProps: {
562
574
  renderMenuItemCheckbox: renderMenuItemCheckbox
563
575
  },
564
576
  activeItemValues: multi ? value : [value],
@@ -573,12 +585,12 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
573
585
  onSelect: multi ? handleCheckTag : handleSelectItem // fixme don't use any
574
586
  ,
575
587
  renderMenuGroup: renderMenuGroup,
576
- renderMenuItem: renderDropdownMenuItem,
588
+ renderMenuItem: renderListItem,
577
589
  virtualized: virtualized
578
590
  }) : /*#__PURE__*/React.createElement("div", {
579
591
  className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["none"])))
580
592
  }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
581
- return /*#__PURE__*/React.createElement(PickerOverlay, {
593
+ return /*#__PURE__*/React.createElement(PickerPopup, {
582
594
  ref: mergeRefs(overlay, speakerRef),
583
595
  autoWidth: menuAutoWidth,
584
596
  className: classes,
@@ -611,7 +623,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
611
623
  usedClassNamePropKeys = _usePickerClassName[1];
612
624
  var classes = merge(pickerClasses, (_merge = {}, _merge[prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["tag"])))] = multi, _merge[prefix(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["focused"])))] = open, _merge[prefix(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["disabled-options"])))] = disabledOptions, _merge));
613
625
  var searching = !!searchKeyword && open;
614
- var displaySearchInput = searchable && !disabled && !rest.loading;
626
+ var editable = searchable && !disabled && !rest.loading;
615
627
  var inputProps = multi ? {
616
628
  inputStyle: {
617
629
  maxWidth: maxWidth - 63
@@ -637,6 +649,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
637
649
  }
638
650
  var placeholderNode = placeholder || (disabledOptions ? null : locale === null || locale === void 0 ? void 0 : locale.placeholder);
639
651
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
652
+ id: id,
653
+ multiple: multi,
640
654
  pickerProps: pick(props, pickTriggerPropKeys),
641
655
  ref: triggerRef,
642
656
  trigger: "active",
@@ -644,7 +658,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
644
658
  onEntered: createChainedFunction(onEntered, onOpen),
645
659
  onExit: createChainedFunction(handleExit, onExit),
646
660
  onExited: createChainedFunction(handleExited, onExited),
647
- speaker: renderDropdownMenu,
661
+ speaker: renderPopup,
648
662
  placement: placement
649
663
  }, /*#__PURE__*/React.createElement(Component, {
650
664
  className: classes,
@@ -653,7 +667,6 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
653
667
  onKeyDown: onPickerKeyDown,
654
668
  ref: root
655
669
  }, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
656
- id: id,
657
670
  appearance: appearance,
658
671
  readOnly: readOnly,
659
672
  plaintext: plaintext,
@@ -667,18 +680,22 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
667
680
  disabled: disabled,
668
681
  placement: placement,
669
682
  inputValue: value,
683
+ focusItemValue: focusItemValue,
670
684
  caret: !disabledOptions
671
- }), searching || multi && hasValue ? null : itemNode || placeholderNode), !(!multi && disabled) && /*#__PURE__*/React.createElement("div", {
672
- className: prefix(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["tag-wrapper"])))
673
- }, tagElements, displaySearchInput && /*#__PURE__*/React.createElement(InputSearch, _extends({}, inputProps, {
674
- tabIndex: -1,
685
+ }), searching || multi && hasValue ? null : itemNode || placeholderNode), /*#__PURE__*/React.createElement(TextBox, {
686
+ showTagList: hasValue && multi,
687
+ tags: tagElements,
688
+ editable: editable,
675
689
  readOnly: readOnly,
690
+ disabled: disabled,
691
+ multiple: multi,
676
692
  onBlur: onBlur,
677
693
  onFocus: createChainedFunction(handleFocus, onFocus),
678
694
  inputRef: inputRef,
679
695
  onChange: handleSearch,
680
- value: open ? searchKeyword : ''
681
- })))));
696
+ inputValue: open ? searchKeyword : '',
697
+ inputProps: inputProps
698
+ })));
682
699
  });
683
700
  InputPicker.displayName = 'InputPicker';
684
701
  InputPicker.propTypes = _extends({}, listPickerPropTypes, {
@@ -3,9 +3,8 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
5
  var _templateObject;
6
- import React, { useCallback } from 'react';
7
- import PropTypes from 'prop-types';
8
- import { TypeChecker, useClassNames } from '../utils';
6
+ import React from 'react';
7
+ import { useClassNames, useEventCallback } from '../utils';
9
8
  var InputSearch = /*#__PURE__*/React.forwardRef(function (props, ref) {
10
9
  var _props$as = props.as,
11
10
  Component = _props$as === void 0 ? 'input' : _props$as,
@@ -19,10 +18,10 @@ var InputSearch = /*#__PURE__*/React.forwardRef(function (props, ref) {
19
18
  readOnly = props.readOnly,
20
19
  onChange = props.onChange,
21
20
  rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "children", "className", "value", "inputRef", "style", "readOnly", "onChange"]);
22
- var handleChange = useCallback(function (event) {
21
+ var handleChange = useEventCallback(function (event) {
23
22
  var _event$target;
24
23
  onChange === null || onChange === void 0 ? void 0 : onChange(event === null || event === void 0 ? void 0 : (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value, event);
25
- }, [onChange]);
24
+ });
26
25
  var _useClassNames = useClassNames(classPrefix),
27
26
  withClassPrefix = _useClassNames.withClassPrefix,
28
27
  merge = _useClassNames.merge,
@@ -41,14 +40,4 @@ var InputSearch = /*#__PURE__*/React.forwardRef(function (props, ref) {
41
40
  })), children);
42
41
  });
43
42
  InputSearch.displayName = 'InputSearch';
44
- InputSearch.propTypes = {
45
- classPrefix: PropTypes.string,
46
- value: PropTypes.string,
47
- className: PropTypes.string,
48
- children: PropTypes.node,
49
- style: PropTypes.object,
50
- inputRef: TypeChecker.refType,
51
- as: PropTypes.elementType,
52
- onChange: PropTypes.func
53
- };
54
43
  export default InputSearch;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const TagList: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3
+ export default TagList;
@@ -0,0 +1,23 @@
1
+ 'use client';
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
4
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
+ var _templateObject;
6
+ import React from 'react';
7
+ import { useClassNames } from '../utils';
8
+ import useCombobox from '../Picker/hooks/useCombobox';
9
+ var TagList = /*#__PURE__*/React.forwardRef(function (props, ref) {
10
+ var children = props.children,
11
+ rest = _objectWithoutPropertiesLoose(props, ["children"]);
12
+ var _useClassNames = useClassNames('picker'),
13
+ prefix = _useClassNames.prefix;
14
+ var _useCombobox = useCombobox(),
15
+ id = _useCombobox.id;
16
+ return /*#__PURE__*/React.createElement("div", _extends({
17
+ ref: ref,
18
+ role: "listbox",
19
+ id: id + "-describe",
20
+ className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["tag-list"])))
21
+ }, rest), children);
22
+ });
23
+ export default TagList;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { InputSearchProps } from './InputSearch';
3
+ interface TextBoxProps {
4
+ tags?: React.ReactNode;
5
+ inputProps?: InputSearchProps;
6
+ readOnly?: boolean;
7
+ disabled?: boolean;
8
+ onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
9
+ onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
10
+ onChange?: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
11
+ inputValue?: string;
12
+ inputRef?: React.Ref<HTMLInputElement>;
13
+ editable?: boolean;
14
+ multiple?: boolean;
15
+ showTagList?: boolean;
16
+ }
17
+ declare const TextBox: React.ForwardRefExoticComponent<TextBoxProps & React.RefAttributes<HTMLDivElement>>;
18
+ export default TextBox;