rsuite 5.49.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 (233) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/Cascader/styles/index.less +4 -4
  3. package/CheckTreePicker/styles/index.less +3 -3
  4. package/DatePicker/styles/index.less +1 -1
  5. package/DateRangePicker/styles/index.less +15 -5
  6. package/Dropdown/styles/index.less +5 -4
  7. package/Dropdown/styles/mixin.less +0 -11
  8. package/Form/styles/mixin.less +1 -2
  9. package/InputGroup/styles/index.less +0 -14
  10. package/InputPicker/styles/index.less +1 -1
  11. package/Picker/styles/index.less +33 -26
  12. package/Picker/styles/mixin.less +20 -16
  13. package/README.md +4 -4
  14. package/TagInput/styles/index.less +2 -2
  15. package/TagPicker/styles/index.less +5 -1
  16. package/TreePicker/styles/index.less +2 -2
  17. package/cjs/@types/common.d.ts +8 -0
  18. package/cjs/AutoComplete/AutoComplete.js +39 -37
  19. package/cjs/AutoComplete/Combobox.d.ts +8 -0
  20. package/cjs/AutoComplete/Combobox.js +31 -0
  21. package/cjs/Calendar/Calendar.d.ts +5 -1
  22. package/cjs/Calendar/CalendarContainer.d.ts +5 -1
  23. package/cjs/Calendar/CalendarContainer.js +35 -37
  24. package/cjs/Cascader/Cascader.js +58 -59
  25. package/cjs/Cascader/DropdownMenu.d.ts +3 -20
  26. package/cjs/Cascader/DropdownMenu.js +48 -48
  27. package/cjs/Cascader/TreeView.d.ts +24 -0
  28. package/cjs/Cascader/TreeView.js +174 -0
  29. package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
  30. package/cjs/CheckPicker/CheckPicker.js +42 -44
  31. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
  32. package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
  33. package/cjs/CheckTreePicker/CheckTreePicker.js +81 -84
  34. package/cjs/DatePicker/DatePicker.d.ts +5 -1
  35. package/cjs/DatePicker/DatePicker.js +7 -10
  36. package/cjs/DatePicker/Toolbar.js +2 -1
  37. package/cjs/DateRangeInput/DateRangeInput.js +2 -2
  38. package/cjs/DateRangePicker/Calendar.js +24 -23
  39. package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
  40. package/cjs/DateRangePicker/DateRangePicker.js +239 -202
  41. package/cjs/DateRangePicker/types.d.ts +11 -3
  42. package/cjs/DateRangePicker/utils.d.ts +2 -1
  43. package/cjs/DateRangePicker/utils.js +7 -5
  44. package/cjs/Form/Form.d.ts +14 -0
  45. package/cjs/Form/Form.js +39 -30
  46. package/cjs/Form/FormContext.d.ts +1 -0
  47. package/cjs/FormControl/FormControl.d.ts +11 -1
  48. package/cjs/FormControl/FormControl.js +40 -17
  49. package/cjs/FormGroup/FormGroup.js +2 -1
  50. package/cjs/InputPicker/InputPicker.js +108 -92
  51. package/cjs/InputPicker/InputSearch.js +3 -15
  52. package/cjs/InputPicker/TagList.d.ts +3 -0
  53. package/cjs/InputPicker/TagList.js +29 -0
  54. package/cjs/InputPicker/TextBox.d.ts +18 -0
  55. package/cjs/InputPicker/TextBox.js +48 -0
  56. package/cjs/MultiCascader/MultiCascader.js +53 -52
  57. package/cjs/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
  58. package/cjs/MultiCascader/{DropdownMenu.js → TreeView.js} +77 -74
  59. package/{esm/Picker/DropdownMenuCheckItem.d.ts → cjs/Picker/ListCheckItem.d.ts} +3 -3
  60. package/cjs/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +14 -30
  61. package/cjs/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
  62. package/cjs/Picker/{DropdownMenuItem.js → ListItem.js} +15 -24
  63. package/cjs/Picker/ListItemGroup.d.ts +6 -0
  64. package/cjs/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
  65. package/cjs/Picker/Listbox.d.ts +35 -0
  66. package/cjs/Picker/{DropdownMenu.js → Listbox.js} +49 -64
  67. package/cjs/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
  68. package/cjs/{DatePicker → Picker}/PickerIndicator.js +2 -1
  69. package/cjs/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
  70. package/cjs/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
  71. package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
  72. package/cjs/Picker/PickerToggle.d.ts +17 -22
  73. package/cjs/Picker/PickerToggle.js +63 -181
  74. package/cjs/Picker/PickerToggleTrigger.d.ts +15 -0
  75. package/cjs/Picker/PickerToggleTrigger.js +21 -5
  76. package/cjs/Picker/SearchBar.js +7 -9
  77. package/cjs/Picker/TreeView.d.ts +7 -0
  78. package/cjs/Picker/TreeView.js +31 -0
  79. package/cjs/Picker/hooks/index.d.ts +6 -0
  80. package/cjs/Picker/hooks/index.js +18 -0
  81. package/cjs/Picker/hooks/useCombobox.d.ts +7 -0
  82. package/cjs/Picker/hooks/useCombobox.js +22 -0
  83. package/cjs/Picker/hooks/useFocusItemValue.d.ts +30 -0
  84. package/cjs/Picker/hooks/useFocusItemValue.js +246 -0
  85. package/cjs/Picker/hooks/usePickerClassName.d.ts +21 -0
  86. package/cjs/Picker/hooks/usePickerClassName.js +39 -0
  87. package/cjs/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
  88. package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -7
  89. package/cjs/Picker/hooks/useSearch.d.ts +18 -0
  90. package/cjs/Picker/hooks/useSearch.js +57 -0
  91. package/cjs/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
  92. package/cjs/Picker/hooks/useToggleKeyDownEvent.js +101 -0
  93. package/cjs/Picker/index.d.ts +9 -5
  94. package/cjs/Picker/index.js +32 -16
  95. package/cjs/Picker/propTypes.d.ts +0 -6
  96. package/cjs/Picker/propTypes.js +0 -5
  97. package/cjs/Picker/utils.d.ts +2 -100
  98. package/cjs/Picker/utils.js +1 -473
  99. package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
  100. package/cjs/SelectPicker/SelectPicker.js +47 -50
  101. package/cjs/TagInput/index.js +4 -0
  102. package/cjs/TreePicker/TreeNode.d.ts +2 -2
  103. package/cjs/TreePicker/TreeNode.js +22 -56
  104. package/cjs/TreePicker/TreePicker.js +91 -95
  105. package/cjs/utils/constants.d.ts +2 -1
  106. package/cjs/utils/constants.js +1 -0
  107. package/cjs/utils/dateUtils.d.ts +0 -1
  108. package/cjs/utils/dateUtils.js +0 -6
  109. package/cjs/utils/getStringLength.d.ts +2 -0
  110. package/cjs/utils/getStringLength.js +18 -0
  111. package/cjs/utils/index.d.ts +1 -0
  112. package/cjs/utils/index.js +4 -1
  113. package/dist/rsuite-no-reset-rtl.css +201 -186
  114. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  115. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  116. package/dist/rsuite-no-reset.css +201 -186
  117. package/dist/rsuite-no-reset.min.css +1 -1
  118. package/dist/rsuite-no-reset.min.css.map +1 -1
  119. package/dist/rsuite-rtl.css +201 -186
  120. package/dist/rsuite-rtl.min.css +1 -1
  121. package/dist/rsuite-rtl.min.css.map +1 -1
  122. package/dist/rsuite.css +201 -186
  123. package/dist/rsuite.js +235 -104
  124. package/dist/rsuite.js.map +1 -1
  125. package/dist/rsuite.min.css +1 -1
  126. package/dist/rsuite.min.css.map +1 -1
  127. package/dist/rsuite.min.js +1 -1
  128. package/dist/rsuite.min.js.map +1 -1
  129. package/esm/@types/common.d.ts +8 -0
  130. package/esm/AutoComplete/AutoComplete.js +42 -40
  131. package/esm/AutoComplete/Combobox.d.ts +8 -0
  132. package/esm/AutoComplete/Combobox.js +25 -0
  133. package/esm/Calendar/Calendar.d.ts +5 -1
  134. package/esm/Calendar/CalendarContainer.d.ts +5 -1
  135. package/esm/Calendar/CalendarContainer.js +37 -39
  136. package/esm/Cascader/Cascader.js +61 -62
  137. package/esm/Cascader/DropdownMenu.d.ts +3 -20
  138. package/esm/Cascader/DropdownMenu.js +50 -49
  139. package/esm/Cascader/TreeView.d.ts +24 -0
  140. package/esm/Cascader/TreeView.js +167 -0
  141. package/esm/CheckPicker/CheckPicker.d.ts +2 -2
  142. package/esm/CheckPicker/CheckPicker.js +45 -47
  143. package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
  144. package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
  145. package/esm/CheckTreePicker/CheckTreePicker.js +84 -87
  146. package/esm/DatePicker/DatePicker.d.ts +5 -1
  147. package/esm/DatePicker/DatePicker.js +5 -8
  148. package/esm/DatePicker/Toolbar.js +2 -1
  149. package/esm/DateRangeInput/DateRangeInput.js +2 -2
  150. package/esm/DateRangePicker/Calendar.js +25 -23
  151. package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
  152. package/esm/DateRangePicker/DateRangePicker.js +241 -204
  153. package/esm/DateRangePicker/types.d.ts +11 -3
  154. package/esm/DateRangePicker/utils.d.ts +2 -1
  155. package/esm/DateRangePicker/utils.js +7 -5
  156. package/esm/Form/Form.d.ts +14 -0
  157. package/esm/Form/Form.js +41 -32
  158. package/esm/Form/FormContext.d.ts +1 -0
  159. package/esm/FormControl/FormControl.d.ts +11 -1
  160. package/esm/FormControl/FormControl.js +41 -18
  161. package/esm/FormGroup/FormGroup.js +3 -2
  162. package/esm/InputPicker/InputPicker.js +110 -94
  163. package/esm/InputPicker/InputSearch.js +4 -15
  164. package/esm/InputPicker/TagList.d.ts +3 -0
  165. package/esm/InputPicker/TagList.js +23 -0
  166. package/esm/InputPicker/TextBox.d.ts +18 -0
  167. package/esm/InputPicker/TextBox.js +42 -0
  168. package/esm/MultiCascader/MultiCascader.js +56 -55
  169. package/esm/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
  170. package/esm/MultiCascader/{DropdownMenu.js → TreeView.js} +79 -75
  171. package/{cjs/Picker/DropdownMenuCheckItem.d.ts → esm/Picker/ListCheckItem.d.ts} +3 -3
  172. package/esm/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +15 -30
  173. package/esm/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
  174. package/esm/Picker/{DropdownMenuItem.js → ListItem.js} +16 -24
  175. package/esm/Picker/ListItemGroup.d.ts +6 -0
  176. package/esm/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
  177. package/esm/Picker/Listbox.d.ts +35 -0
  178. package/esm/Picker/{DropdownMenu.js → Listbox.js} +50 -64
  179. package/esm/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
  180. package/esm/{DatePicker → Picker}/PickerIndicator.js +2 -1
  181. package/esm/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
  182. package/esm/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
  183. package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
  184. package/esm/Picker/PickerToggle.d.ts +17 -22
  185. package/esm/Picker/PickerToggle.js +65 -183
  186. package/esm/Picker/PickerToggleTrigger.d.ts +15 -0
  187. package/esm/Picker/PickerToggleTrigger.js +20 -5
  188. package/esm/Picker/SearchBar.js +8 -9
  189. package/esm/Picker/TreeView.d.ts +7 -0
  190. package/esm/Picker/TreeView.js +25 -0
  191. package/esm/Picker/hooks/index.d.ts +6 -0
  192. package/esm/Picker/hooks/index.js +7 -0
  193. package/esm/Picker/hooks/useCombobox.d.ts +7 -0
  194. package/esm/Picker/hooks/useCombobox.js +17 -0
  195. package/esm/Picker/hooks/useFocusItemValue.d.ts +30 -0
  196. package/esm/Picker/hooks/useFocusItemValue.js +240 -0
  197. package/esm/Picker/hooks/usePickerClassName.d.ts +21 -0
  198. package/esm/Picker/hooks/usePickerClassName.js +33 -0
  199. package/esm/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
  200. package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -8
  201. package/esm/Picker/hooks/useSearch.d.ts +18 -0
  202. package/esm/Picker/hooks/useSearch.js +51 -0
  203. package/esm/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
  204. package/esm/Picker/hooks/useToggleKeyDownEvent.js +96 -0
  205. package/esm/Picker/index.d.ts +9 -5
  206. package/esm/Picker/index.js +9 -5
  207. package/esm/Picker/propTypes.d.ts +0 -6
  208. package/esm/Picker/propTypes.js +0 -5
  209. package/esm/Picker/utils.d.ts +2 -100
  210. package/esm/Picker/utils.js +2 -467
  211. package/esm/SelectPicker/SelectPicker.d.ts +2 -2
  212. package/esm/SelectPicker/SelectPicker.js +50 -53
  213. package/esm/TagInput/index.js +4 -0
  214. package/esm/TreePicker/TreeNode.d.ts +2 -2
  215. package/esm/TreePicker/TreeNode.js +24 -58
  216. package/esm/TreePicker/TreePicker.js +94 -98
  217. package/esm/utils/constants.d.ts +2 -1
  218. package/esm/utils/constants.js +1 -0
  219. package/esm/utils/dateUtils.d.ts +0 -1
  220. package/esm/utils/dateUtils.js +0 -5
  221. package/esm/utils/getStringLength.d.ts +2 -0
  222. package/esm/utils/getStringLength.js +13 -0
  223. package/esm/utils/index.d.ts +1 -0
  224. package/esm/utils/index.js +1 -0
  225. package/package.json +1 -1
  226. package/styles/mixins/combobox.less +10 -0
  227. package/styles/variables.less +1 -3
  228. package/cjs/Picker/DropdownMenu.d.ts +0 -59
  229. package/cjs/Picker/DropdownMenuGroup.d.ts +0 -6
  230. package/esm/Picker/DropdownMenu.d.ts +0 -59
  231. package/esm/Picker/DropdownMenuGroup.d.ts +0 -6
  232. /package/cjs/{DatePicker → Picker}/PickerLabel.js +0 -0
  233. /package/esm/{DatePicker → Picker}/PickerLabel.js +0 -0
@@ -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';
@@ -17,13 +17,24 @@ import getWidth from 'dom-lib/getWidth';
17
17
  import shallowEqual from '../utils/shallowEqual';
18
18
  import { filterNodesOfTree } from '../utils/treeUtils';
19
19
  import Plaintext from '../Plaintext';
20
- import { createChainedFunction, tplTransform, useClassNames, useCustom, useControlled, mergeRefs, isOneOf, KEY_VALUES } from '../utils';
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, usePublicMethods, 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
  *
@@ -109,11 +120,13 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
109
120
  if (groupBy === valueKey || groupBy === labelKey) {
110
121
  throw Error('`groupBy` can not be equal to `valueKey` and `labelKey`');
111
122
  }
112
- var overlayRef = useRef(null);
113
- var targetRef = useRef(null);
114
- var triggerRef = useRef(null);
115
123
  var inputRef = useRef();
116
- var listRef = useRef(null);
124
+ var _usePickerRef = usePickerRef(ref),
125
+ triggerRef = _usePickerRef.trigger,
126
+ root = _usePickerRef.root,
127
+ target = _usePickerRef.target,
128
+ overlay = _usePickerRef.overlay,
129
+ list = _usePickerRef.list;
117
130
  var _useCustom = useCustom(['Picker', 'InputPicker'], overrideLocale),
118
131
  locale = _useCustom.locale;
119
132
  var _useClassNames = useClassNames(classPrefix),
@@ -142,34 +155,34 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
142
155
  value = _useControlled[0],
143
156
  setValue = _useControlled[1],
144
157
  isControlled = _useControlled[2];
145
- var cloneValue = useCallback(function () {
158
+ var cloneValue = function cloneValue() {
146
159
  return multi ? clone(value) || [] : value;
147
- }, [multi, value]);
148
- var handleClose = useCallback(function () {
149
- var _triggerRef$current, _targetRef$current, _targetRef$current$fo;
160
+ };
161
+ var handleClose = useEventCallback(function () {
162
+ var _triggerRef$current, _target$current, _target$current$focus;
150
163
  triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.close();
151
164
 
152
165
  // The focus is on the trigger button after closing
153
- (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : (_targetRef$current$fo = _targetRef$current.focus) === null || _targetRef$current$fo === void 0 ? void 0 : _targetRef$current$fo.call(_targetRef$current);
154
- }, []);
166
+ (_target$current = target.current) === null || _target$current === void 0 ? void 0 : (_target$current$focus = _target$current.focus) === null || _target$current$focus === void 0 ? void 0 : _target$current$focus.call(_target$current);
167
+ });
155
168
 
156
169
  // Used to hover the focuse item when trigger `onKeydown`
157
170
  var _useFocusItemValue = useFocusItemValue(multi ? value === null || value === void 0 ? void 0 : value[0] : value, {
158
171
  data: getAllDataAndCache(),
159
172
  valueKey: valueKey,
160
173
  target: function target() {
161
- return overlayRef.current;
174
+ return overlay.current;
162
175
  }
163
176
  }),
164
177
  focusItemValue = _useFocusItemValue.focusItemValue,
165
178
  setFocusItemValue = _useFocusItemValue.setFocusItemValue,
166
179
  onKeyDown = _useFocusItemValue.onKeyDown;
167
- var handleSearchCallback = useCallback(function (searchKeyword, filteredData, event) {
180
+ var handleSearchCallback = useEventCallback(function (searchKeyword, filteredData, event) {
168
181
  var _filteredData$;
169
182
  // The first option after filtering is the focus.
170
183
  setFocusItemValue(disabledOptions ? searchKeyword : (filteredData === null || filteredData === void 0 ? void 0 : (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]) || searchKeyword);
171
184
  onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);
172
- }, [disabledOptions, setFocusItemValue, valueKey, onSearch]);
185
+ });
173
186
 
174
187
  // Use search keywords to filter options.
175
188
  var _useSearch = useSearch(getAllData(), {
@@ -195,14 +208,16 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
195
208
  if ((_triggerRef$current2 = triggerRef.current) !== null && _triggerRef$current2 !== void 0 && _triggerRef$current2.root) {
196
209
  setMaxWidth(getWidth(triggerRef.current.root));
197
210
  }
211
+ // eslint-disable-next-line react-hooks/exhaustive-deps
198
212
  }, []);
199
213
 
200
214
  // Update the position of the menu when the search keyword and value change
201
215
  useEffect(function () {
202
216
  var _triggerRef$current3, _triggerRef$current3$;
203
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);
218
+ // eslint-disable-next-line react-hooks/exhaustive-deps
204
219
  }, [searchKeyword, value]);
205
- var getDateItem = function getDateItem(value) {
220
+ var getDataItem = function getDataItem(value) {
206
221
  // Find active `MenuItem` by `value`
207
222
  var allData = getAllDataAndCache();
208
223
  var activeItem = allData.find(function (item) {
@@ -218,23 +233,23 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
218
233
  itemNode: itemNode
219
234
  };
220
235
  };
221
- var getInput = useCallback(function () {
236
+ var getInput = function getInput() {
222
237
  var _inputRef$current;
223
238
  return multi ? (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.input : inputRef.current;
224
- }, [inputRef, multi]);
225
- var focusInput = useCallback(function () {
239
+ };
240
+ var focusInput = function focusInput() {
226
241
  var _getInput;
227
242
  return (_getInput = getInput()) === null || _getInput === void 0 ? void 0 : _getInput.focus();
228
- }, [getInput]);
229
- var blurInput = useCallback(function () {
243
+ };
244
+ var blurInput = function blurInput() {
230
245
  var _getInput2;
231
246
  return (_getInput2 = getInput()) === null || _getInput2 === void 0 ? void 0 : _getInput2.blur();
232
- }, [getInput]);
247
+ };
233
248
 
234
249
  /**
235
250
  * Convert the string of the newly created option into an object.
236
251
  */
237
- var createOption = useCallback(function (value) {
252
+ var createOption = function createOption(value) {
238
253
  var _ref2;
239
254
  if (groupBy) {
240
255
  var _ref;
@@ -245,11 +260,11 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
245
260
  return _ref2 = {
246
261
  create: true
247
262
  }, _ref2[valueKey] = value, _ref2[labelKey] = value, _ref2;
248
- }, [groupBy, valueKey, labelKey, locale]);
249
- var handleChange = useCallback(function (value, event) {
263
+ };
264
+ var handleChange = useEventCallback(function (value, event) {
250
265
  onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
251
- }, [onChange]);
252
- var handleRemoveItemByTag = useCallback(function (tag, event) {
266
+ });
267
+ var handleRemoveItemByTag = useEventCallback(function (tag, event) {
253
268
  event.stopPropagation();
254
269
  var val = cloneValue();
255
270
  remove(val, function (itemVal) {
@@ -258,15 +273,15 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
258
273
  setValue(val);
259
274
  handleChange(val, event);
260
275
  onTagRemove === null || onTagRemove === void 0 ? void 0 : onTagRemove(tag, event);
261
- }, [cloneValue, setValue, handleChange, onTagRemove]);
262
- var handleSelect = useCallback(function (value, item, event) {
276
+ });
277
+ var handleSelect = useEventCallback(function (value, item, event) {
263
278
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event);
264
279
  if (creatable && item.create) {
265
280
  delete item.create;
266
281
  onCreate === null || onCreate === void 0 ? void 0 : onCreate(value, item, event);
267
282
  setNewData(newData.concat(item));
268
283
  }
269
- }, [creatable, newData, onSelect, onCreate]);
284
+ });
270
285
 
271
286
  /**
272
287
  * Callback triggered by single selection
@@ -274,14 +289,14 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
274
289
  * @param item
275
290
  * @param event
276
291
  */
277
- var handleSelectItem = function handleSelectItem(value, item, event) {
292
+ var handleSelectItem = useEventCallback(function (value, item, event) {
278
293
  setValue(value);
279
294
  setFocusItemValue(value);
280
295
  resetSearch();
281
296
  handleSelect(value, item, event);
282
297
  handleChange(value, event);
283
298
  handleClose();
284
- };
299
+ });
285
300
 
286
301
  /**
287
302
  * Callback triggered by multiple selection
@@ -290,7 +305,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
290
305
  * @param event
291
306
  * @param checked
292
307
  */
293
- var handleCheckTag = function handleCheckTag(nextItemValue, item, event, checked) {
308
+ var handleCheckTag = useEventCallback(function (nextItemValue, item, event, checked) {
294
309
  var val = cloneValue();
295
310
  if (checked) {
296
311
  val.push(nextItemValue);
@@ -305,8 +320,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
305
320
  handleSelect(val, item, event);
306
321
  handleChange(val, event);
307
322
  focusInput();
308
- };
309
- var handleTagKeyPress = useCallback(function (event) {
323
+ });
324
+ var handleTagKeyPress = useEventCallback(function (event) {
310
325
  // When composing, ignore the keypress event.
311
326
  if (event.nativeEvent.isComposing) {
312
327
  return;
@@ -342,8 +357,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
342
357
  resetSearch();
343
358
  handleSelect(val, focusItem, event);
344
359
  handleChange(val, event);
345
- }, [cloneValue, getAllData, focusItemValue, disabledItemValues, disabledOptions, setValue, resetSearch, handleSelect, handleChange, valueKey, createOption]);
346
- var handleMenuItemKeyPress = useCallback(function (event) {
360
+ });
361
+ var handleMenuItemKeyPress = useEventCallback(function (event) {
347
362
  if (!focusItemValue || !controlledData) {
348
363
  return;
349
364
  }
@@ -372,19 +387,13 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
372
387
  }
373
388
  handleChange(focusItemValue, event);
374
389
  handleClose();
375
- }, [setValue, disabledItemValues, controlledData, focusItemValue, valueKey, searchKeyword, handleClose, resetSearch, createOption, getAllData, handleChange, handleSelect]);
376
- usePublicMethods(ref, {
377
- triggerRef: triggerRef,
378
- overlayRef: overlayRef,
379
- targetRef: targetRef,
380
- listRef: listRef
381
390
  });
382
391
 
383
392
  /**
384
393
  * Remove the last item, after pressing the back key on the keyboard.
385
394
  * @param event
386
395
  */
387
- var removeLastItem = useCallback(function (event) {
396
+ var removeLastItem = useEventCallback(function (event) {
388
397
  var target = event === null || event === void 0 ? void 0 : event.target;
389
398
  if ((target === null || target === void 0 ? void 0 : target.tagName) !== 'INPUT') {
390
399
  focusInput();
@@ -397,8 +406,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
397
406
  val.pop();
398
407
  setValue(val);
399
408
  handleChange(val, event);
400
- }, [setValue, focusInput, handleChange, cloneValue]);
401
- var handleClean = useCallback(function (event) {
409
+ });
410
+ var handleClean = useEventCallback(function (event) {
402
411
  if (disabled || searchKeyword !== '') {
403
412
  return;
404
413
  }
@@ -411,14 +420,14 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
411
420
  handleChange(null, event);
412
421
  }
413
422
  onClean === null || onClean === void 0 ? void 0 : onClean(event);
414
- }, [disabled, searchKeyword, setValue, setFocusItemValue, resetSearch, multi, onClean, handleChange]);
423
+ });
415
424
  var events = {
416
425
  onMenuPressBackspace: multi ? removeLastItem : handleClean,
417
426
  onMenuKeyDown: onKeyDown,
418
427
  onMenuPressEnter: undefined,
419
428
  onKeyDown: undefined
420
429
  };
421
- var handleKeyPress = useCallback(function (event) {
430
+ var handleKeyPress = useEventCallback(function (event) {
422
431
  // When typing a space, create a tag.
423
432
  if (isOneOf('Space', trigger) && event.key === KEY_VALUES.SPACE) {
424
433
  handleTagKeyPress(event);
@@ -430,7 +439,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
430
439
  handleTagKeyPress(event);
431
440
  event.preventDefault();
432
441
  }
433
- }, [handleTagKeyPress, trigger]);
442
+ });
434
443
  if (multi) {
435
444
  if (isOneOf('Enter', trigger)) {
436
445
  events.onMenuPressEnter = handleTagKeyPress;
@@ -442,31 +451,31 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
442
451
  events.onMenuPressEnter = handleMenuItemKeyPress;
443
452
  }
444
453
  var onPickerKeyDown = useToggleKeyDownEvent(_extends({
445
- triggerRef: triggerRef,
446
- targetRef: targetRef,
447
- overlayRef: overlayRef
454
+ trigger: triggerRef,
455
+ target: target,
456
+ overlay: overlay
448
457
  }, events, rest));
449
- var handleExited = useCallback(function () {
458
+ var handleExited = useEventCallback(function () {
450
459
  setFocusItemValue(multi ? value === null || value === void 0 ? void 0 : value[0] : value);
451
460
  resetSearch();
452
461
  onClose === null || onClose === void 0 ? void 0 : onClose();
453
- }, [setFocusItemValue, resetSearch, onClose, value, multi]);
454
- var handleFocus = useCallback(function () {
462
+ });
463
+ var handleFocus = useEventCallback(function () {
455
464
  if (!readOnly) {
456
465
  var _triggerRef$current4;
457
466
  setOpen(true);
458
467
  (_triggerRef$current4 = triggerRef.current) === null || _triggerRef$current4 === void 0 ? void 0 : _triggerRef$current4.open();
459
468
  }
460
- }, [readOnly]);
461
- var handleEnter = useCallback(function () {
469
+ });
470
+ var handleEnter = useEventCallback(function () {
462
471
  focusInput();
463
472
  setOpen(true);
464
- }, [focusInput]);
465
- var handleExit = useCallback(function () {
473
+ });
474
+ var handleExit = useEventCallback(function () {
466
475
  blurInput();
467
476
  setOpen(false);
468
- }, [blurInput]);
469
- var renderDropdownMenuItem = function renderDropdownMenuItem(label, item) {
477
+ });
478
+ var renderListItem = function renderListItem(label, item) {
470
479
  // 'Create option "{0}"' => Create option "xxxxx"
471
480
  var newLabel = item.create ? /*#__PURE__*/React.createElement("span", null, tplTransform(locale.createOption, label)) : label;
472
481
  return renderMenuItem ? renderMenuItem(newLabel, item) : newLabel;
@@ -478,7 +487,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
478
487
  itemNode: null
479
488
  };
480
489
  }
481
- var dataItem = getDateItem(value);
490
+ var dataItem = getDataItem(value);
482
491
  var itemNode = dataItem.itemNode;
483
492
  if (!isNil(value) && isFunction(renderValue)) {
484
493
  itemNode = renderValue(value, dataItem.activeItem, itemNode);
@@ -499,17 +508,19 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
499
508
  var tags = value || [];
500
509
  var items = [];
501
510
  var tagElements = tags.map(function (tag) {
502
- var _getDateItem = getDateItem(tag),
503
- isValid = _getDateItem.isValid,
504
- itemNode = _getDateItem.itemNode,
505
- activeItem = _getDateItem.activeItem;
511
+ var _getDataItem = getDataItem(tag),
512
+ isValid = _getDataItem.isValid,
513
+ itemNode = _getDataItem.itemNode,
514
+ activeItem = _getDataItem.activeItem;
506
515
  items.push(activeItem);
507
516
  if (!isValid) {
508
517
  return null;
509
518
  }
510
- return /*#__PURE__*/React.createElement(Tag, _extends({}, tagRest, {
519
+ return /*#__PURE__*/React.createElement(Tag, _extends({
520
+ role: "option"
521
+ }, tagRest, {
511
522
  key: tag,
512
- size: rest.size === 'lg' ? 'lg' : rest.size === 'xs' ? 'sm' : 'md',
523
+ size: convertSize(rest.size),
513
524
  closable: !disabled && closable && !readOnly && !plaintext,
514
525
  title: typeof itemNode === 'string' ? itemNode : undefined,
515
526
  onClose: createChainedFunction(handleRemoveItemByTag.bind(null, tag), onClose)
@@ -522,7 +533,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
522
533
  }
523
534
  return tagElements;
524
535
  };
525
- var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
536
+ var renderPopup = function renderPopup(positionProps, speakerRef) {
526
537
  var left = positionProps.left,
527
538
  top = positionProps.top,
528
539
  className = positionProps.className;
@@ -546,21 +557,20 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
546
557
  items = items.sort(sort(false));
547
558
  }
548
559
  if (disabledOptions) {
549
- return /*#__PURE__*/React.createElement(PickerOverlay, {
550
- ref: mergeRefs(overlayRef, speakerRef)
560
+ return /*#__PURE__*/React.createElement(PickerPopup, {
561
+ ref: mergeRefs(overlay, speakerRef)
551
562
  });
552
563
  }
553
- var menu = items.length ? /*#__PURE__*/React.createElement(DropdownMenu, {
554
- id: id ? id + "-listbox" : undefined,
564
+ var menu = items.length ? /*#__PURE__*/React.createElement(Listbox, {
555
565
  listProps: listProps,
556
- listRef: listRef,
566
+ listRef: list,
557
567
  disabledItemValues: disabledItemValues,
558
568
  valueKey: valueKey,
559
569
  labelKey: labelKey,
560
570
  classPrefix: menuClassPrefix,
561
- dropdownMenuItemClassPrefix: multi ? undefined : menuClassPrefix + "-item",
562
- dropdownMenuItemAs: multi ? DropdownMenuCheckItem : DropdownMenuItem,
563
- dropdownMenuItemProps: {
571
+ listItemClassPrefix: multi ? undefined : menuClassPrefix + "-item",
572
+ listItemAs: multi ? ListCheckItem : ListItem,
573
+ listItemProps: {
564
574
  renderMenuItemCheckbox: renderMenuItemCheckbox
565
575
  },
566
576
  activeItemValues: multi ? value : [value],
@@ -575,13 +585,13 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
575
585
  onSelect: multi ? handleCheckTag : handleSelectItem // fixme don't use any
576
586
  ,
577
587
  renderMenuGroup: renderMenuGroup,
578
- renderMenuItem: renderDropdownMenuItem,
588
+ renderMenuItem: renderListItem,
579
589
  virtualized: virtualized
580
590
  }) : /*#__PURE__*/React.createElement("div", {
581
591
  className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["none"])))
582
592
  }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
583
- return /*#__PURE__*/React.createElement(PickerOverlay, {
584
- ref: mergeRefs(overlayRef, speakerRef),
593
+ return /*#__PURE__*/React.createElement(PickerPopup, {
594
+ ref: mergeRefs(overlay, speakerRef),
585
595
  autoWidth: menuAutoWidth,
586
596
  className: classes,
587
597
  style: styles,
@@ -613,7 +623,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
613
623
  usedClassNamePropKeys = _usePickerClassName[1];
614
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));
615
625
  var searching = !!searchKeyword && open;
616
- var displaySearchInput = searchable && !disabled && !rest.loading;
626
+ var editable = searchable && !disabled && !rest.loading;
617
627
  var inputProps = multi ? {
618
628
  inputStyle: {
619
629
  maxWidth: maxWidth - 63
@@ -634,11 +644,13 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
634
644
  }
635
645
  return /*#__PURE__*/React.createElement(Plaintext, _extends({
636
646
  localeKey: "notSelected",
637
- ref: targetRef
647
+ ref: target
638
648
  }, plaintextProps), itemNode || (tagElements !== null && tagElements !== void 0 && tagElements.length ? tagElements : null) || placeholder);
639
649
  }
640
650
  var placeholderNode = placeholder || (disabledOptions ? null : locale === null || locale === void 0 ? void 0 : locale.placeholder);
641
651
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
652
+ id: id,
653
+ multiple: multi,
642
654
  pickerProps: pick(props, pickTriggerPropKeys),
643
655
  ref: triggerRef,
644
656
  trigger: "active",
@@ -646,19 +658,19 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
646
658
  onEntered: createChainedFunction(onEntered, onOpen),
647
659
  onExit: createChainedFunction(handleExit, onExit),
648
660
  onExited: createChainedFunction(handleExited, onExited),
649
- speaker: renderDropdownMenu,
661
+ speaker: renderPopup,
650
662
  placement: placement
651
663
  }, /*#__PURE__*/React.createElement(Component, {
652
664
  className: classes,
653
665
  style: style,
654
666
  onClick: focusInput,
655
- onKeyDown: onPickerKeyDown
667
+ onKeyDown: onPickerKeyDown,
668
+ ref: root
656
669
  }, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
657
- id: id,
658
670
  appearance: appearance,
659
671
  readOnly: readOnly,
660
672
  plaintext: plaintext,
661
- ref: targetRef,
673
+ ref: target,
662
674
  as: toggleAs,
663
675
  tabIndex: tabIndex,
664
676
  onClean: handleClean,
@@ -668,18 +680,22 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
668
680
  disabled: disabled,
669
681
  placement: placement,
670
682
  inputValue: value,
683
+ focusItemValue: focusItemValue,
671
684
  caret: !disabledOptions
672
- }), searching || multi && hasValue ? null : itemNode || placeholderNode), !(!multi && disabled) && /*#__PURE__*/React.createElement("div", {
673
- className: prefix(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["tag-wrapper"])))
674
- }, tagElements, displaySearchInput && /*#__PURE__*/React.createElement(InputSearch, _extends({}, inputProps, {
675
- tabIndex: -1,
685
+ }), searching || multi && hasValue ? null : itemNode || placeholderNode), /*#__PURE__*/React.createElement(TextBox, {
686
+ showTagList: hasValue && multi,
687
+ tags: tagElements,
688
+ editable: editable,
676
689
  readOnly: readOnly,
690
+ disabled: disabled,
691
+ multiple: multi,
677
692
  onBlur: onBlur,
678
693
  onFocus: createChainedFunction(handleFocus, onFocus),
679
694
  inputRef: inputRef,
680
695
  onChange: handleSearch,
681
- value: open ? searchKeyword : ''
682
- })))));
696
+ inputValue: open ? searchKeyword : '',
697
+ inputProps: inputProps
698
+ })));
683
699
  });
684
700
  InputPicker.displayName = 'InputPicker';
685
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;
@@ -0,0 +1,42 @@
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 TagList from './TagList';
8
+ import { useClassNames } from '../utils';
9
+ import InputSearch from './InputSearch';
10
+ var TextBox = /*#__PURE__*/React.forwardRef(function (props, ref) {
11
+ var tags = props.tags,
12
+ inputProps = props.inputProps,
13
+ readOnly = props.readOnly,
14
+ disabled = props.disabled,
15
+ multiple = props.multiple,
16
+ onBlur = props.onBlur,
17
+ onFocus = props.onFocus,
18
+ onChange = props.onChange,
19
+ inputValue = props.inputValue,
20
+ inputRef = props.inputRef,
21
+ editable = props.editable,
22
+ showTagList = props.showTagList,
23
+ rest = _objectWithoutPropertiesLoose(props, ["tags", "inputProps", "readOnly", "disabled", "multiple", "onBlur", "onFocus", "onChange", "inputValue", "inputRef", "editable", "showTagList"]);
24
+ var _useClassNames = useClassNames('picker'),
25
+ prefix = _useClassNames.prefix;
26
+ if (!multiple && disabled) {
27
+ return null;
28
+ }
29
+ return /*#__PURE__*/React.createElement("div", _extends({
30
+ className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["textbox"]))),
31
+ ref: ref
32
+ }, rest), showTagList ? /*#__PURE__*/React.createElement(TagList, null, tags) : null, editable && /*#__PURE__*/React.createElement(InputSearch, _extends({}, inputProps, {
33
+ tabIndex: -1,
34
+ readOnly: readOnly,
35
+ onBlur: onBlur,
36
+ onFocus: onFocus,
37
+ inputRef: inputRef,
38
+ onChange: onChange,
39
+ value: inputValue
40
+ })));
41
+ });
42
+ export default TextBox;