@salutejs/plasma-new-hope 0.336.0-canary.2210.17546691141.0 → 0.336.0-canary.2210.17574972381.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 (248) hide show
  1. package/cjs/components/CodeField/CodeField.css +7 -7
  2. package/cjs/components/CodeField/CodeField.js +9 -21
  3. package/cjs/components/CodeField/CodeField.js.map +1 -1
  4. package/cjs/components/CodeField/CodeField.styles.js +1 -1
  5. package/cjs/components/CodeField/CodeField.styles.js.map +1 -1
  6. package/cjs/components/CodeField/{CodeField.styles_7tebk.css → CodeField.styles_14p25hi.css} +1 -1
  7. package/cjs/components/CodeField/hooks/useWebOTP.js +95 -0
  8. package/cjs/components/CodeField/hooks/useWebOTP.js.map +1 -0
  9. package/cjs/components/Combobox/ComboboxNew/Combobox.css +6 -6
  10. package/cjs/components/Combobox/ComboboxNew/Combobox.js +22 -23
  11. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  12. package/cjs/components/Combobox/ComboboxNew/Combobox.styles.js +3 -4
  13. package/cjs/components/Combobox/ComboboxNew/Combobox.styles.js.map +1 -1
  14. package/cjs/components/Combobox/ComboboxNew/{Combobox.styles_isfa46.css → Combobox.styles_261unw.css} +1 -1
  15. package/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js +1 -1
  16. package/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js.map +1 -1
  17. package/cjs/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +3 -7
  18. package/cjs/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js.map +1 -1
  19. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.css +6 -6
  20. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +11 -5
  21. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  22. package/cjs/components/Combobox/ComboboxOld/Combobox.css +2 -2
  23. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.css +2 -2
  24. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.css +2 -2
  25. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.css +2 -2
  26. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.css +2 -2
  27. package/cjs/components/Drawer/hooks/useDrawer.js +12 -0
  28. package/cjs/components/Drawer/hooks/useDrawer.js.map +1 -1
  29. package/cjs/components/Dropdown/Dropdown.css +2 -2
  30. package/cjs/components/Dropdown/Dropdown.js +6 -10
  31. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  32. package/cjs/components/Dropdown/Dropdown.styles.js +2 -9
  33. package/cjs/components/Dropdown/Dropdown.styles.js.map +1 -1
  34. package/{es/components/Dropdown/Dropdown.styles_zheit5.css → cjs/components/Dropdown/Dropdown.styles_kkvnr1.css} +1 -1
  35. package/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +3 -7
  36. package/cjs/components/Dropdown/hooks/useKeyboardNavigation.js.map +1 -1
  37. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.css +2 -2
  38. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +9 -9
  39. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  40. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +1 -1
  41. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  42. package/cjs/components/Pagination/Pagination.css +2 -2
  43. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +2 -2
  44. package/cjs/components/Select/Select.css +2 -2
  45. package/cjs/components/Select/Select.js +4 -3
  46. package/cjs/components/Select/Select.js.map +1 -1
  47. package/cjs/components/Select/Select.styles.js +3 -4
  48. package/cjs/components/Select/Select.styles.js.map +1 -1
  49. package/{es/components/Select/Select.styles_bjoo18.css → cjs/components/Select/Select.styles_dta4dl.css} +1 -1
  50. package/cjs/components/Select/hooks/useKeyboardNavigation.js +3 -7
  51. package/cjs/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
  52. package/cjs/components/Select/ui/Inner/Inner.css +2 -2
  53. package/cjs/components/Select/ui/Inner/Inner.js +11 -5
  54. package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
  55. package/cjs/components/Table/Table.css +2 -2
  56. package/cjs/components/Table/ui/Cell/Cell.css +2 -2
  57. package/cjs/components/Table/ui/EditableCell/EditableCell.css +2 -2
  58. package/cjs/components/Table/ui/HeadCell/HeadCell.css +2 -2
  59. package/cjs/components/Table/ui/HeadCell/ui/Filter/Filter.css +2 -2
  60. package/cjs/index.css +17 -17
  61. package/emotion/cjs/components/CodeField/CodeField.js +9 -14
  62. package/emotion/cjs/components/CodeField/CodeField.styles.js +13 -13
  63. package/emotion/cjs/components/CodeField/hooks/useWebOTP.js +1 -11
  64. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +20 -22
  65. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.styles.js +16 -16
  66. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js +1 -1
  67. package/emotion/cjs/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +3 -7
  68. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +50 -9
  69. package/emotion/cjs/components/Drawer/hooks/useDrawer.js +11 -0
  70. package/emotion/cjs/components/Dropdown/Dropdown.js +6 -10
  71. package/emotion/cjs/components/Dropdown/Dropdown.styles.js +5 -8
  72. package/emotion/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +3 -7
  73. package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +48 -11
  74. package/emotion/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +1 -1
  75. package/emotion/cjs/components/Select/Select.js +4 -2
  76. package/emotion/cjs/components/Select/Select.styles.js +8 -8
  77. package/emotion/cjs/components/Select/hooks/useKeyboardNavigation.js +3 -7
  78. package/emotion/cjs/components/Select/ui/Inner/Inner.js +50 -9
  79. package/emotion/cjs/examples/components/Combobox/Combobox.js +0 -15
  80. package/emotion/es/components/CodeField/CodeField.js +9 -15
  81. package/emotion/es/components/CodeField/CodeField.styles.js +13 -13
  82. package/emotion/es/components/CodeField/hooks/useWebOTP.js +1 -11
  83. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +20 -22
  84. package/emotion/es/components/Combobox/ComboboxNew/Combobox.styles.js +16 -16
  85. package/emotion/es/components/Combobox/ComboboxNew/Combobox.tokens.js +1 -1
  86. package/emotion/es/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +3 -7
  87. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +11 -6
  88. package/emotion/es/components/Drawer/hooks/useDrawer.js +11 -0
  89. package/emotion/es/components/Dropdown/Dropdown.js +6 -10
  90. package/emotion/es/components/Dropdown/Dropdown.styles.js +5 -8
  91. package/emotion/es/components/Dropdown/hooks/useKeyboardNavigation.js +3 -7
  92. package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +9 -8
  93. package/emotion/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +1 -1
  94. package/emotion/es/components/Select/Select.js +4 -2
  95. package/emotion/es/components/Select/Select.styles.js +8 -8
  96. package/emotion/es/components/Select/hooks/useKeyboardNavigation.js +3 -7
  97. package/emotion/es/components/Select/ui/Inner/Inner.js +11 -6
  98. package/emotion/es/examples/components/Combobox/Combobox.js +7 -0
  99. package/es/components/CodeField/CodeField.css +7 -7
  100. package/es/components/CodeField/CodeField.js +9 -21
  101. package/es/components/CodeField/CodeField.js.map +1 -1
  102. package/es/components/CodeField/CodeField.styles.js +1 -1
  103. package/es/components/CodeField/CodeField.styles.js.map +1 -1
  104. package/es/components/CodeField/{CodeField.styles_7tebk.css → CodeField.styles_14p25hi.css} +1 -1
  105. package/es/components/CodeField/hooks/useWebOTP.js +91 -0
  106. package/es/components/CodeField/hooks/useWebOTP.js.map +1 -0
  107. package/es/components/Combobox/ComboboxNew/Combobox.css +6 -6
  108. package/es/components/Combobox/ComboboxNew/Combobox.js +22 -23
  109. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  110. package/es/components/Combobox/ComboboxNew/Combobox.styles.js +3 -4
  111. package/es/components/Combobox/ComboboxNew/Combobox.styles.js.map +1 -1
  112. package/es/components/Combobox/ComboboxNew/{Combobox.styles_isfa46.css → Combobox.styles_261unw.css} +1 -1
  113. package/es/components/Combobox/ComboboxNew/Combobox.tokens.js +1 -1
  114. package/es/components/Combobox/ComboboxNew/Combobox.tokens.js.map +1 -1
  115. package/es/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +3 -7
  116. package/es/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js.map +1 -1
  117. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.css +6 -6
  118. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +12 -6
  119. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  120. package/es/components/Combobox/ComboboxOld/Combobox.css +2 -2
  121. package/es/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.css +2 -2
  122. package/es/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.css +2 -2
  123. package/es/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.css +2 -2
  124. package/es/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.css +2 -2
  125. package/es/components/Drawer/hooks/useDrawer.js +12 -0
  126. package/es/components/Drawer/hooks/useDrawer.js.map +1 -1
  127. package/es/components/Dropdown/Dropdown.css +2 -2
  128. package/es/components/Dropdown/Dropdown.js +6 -10
  129. package/es/components/Dropdown/Dropdown.js.map +1 -1
  130. package/es/components/Dropdown/Dropdown.styles.js +2 -9
  131. package/es/components/Dropdown/Dropdown.styles.js.map +1 -1
  132. package/{cjs/components/Dropdown/Dropdown.styles_zheit5.css → es/components/Dropdown/Dropdown.styles_kkvnr1.css} +1 -1
  133. package/es/components/Dropdown/hooks/useKeyboardNavigation.js +3 -7
  134. package/es/components/Dropdown/hooks/useKeyboardNavigation.js.map +1 -1
  135. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.css +2 -2
  136. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +10 -10
  137. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  138. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +1 -1
  139. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  140. package/es/components/Pagination/Pagination.css +2 -2
  141. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +2 -2
  142. package/es/components/Select/Select.css +2 -2
  143. package/es/components/Select/Select.js +4 -3
  144. package/es/components/Select/Select.js.map +1 -1
  145. package/es/components/Select/Select.styles.js +3 -4
  146. package/es/components/Select/Select.styles.js.map +1 -1
  147. package/{cjs/components/Select/Select.styles_bjoo18.css → es/components/Select/Select.styles_dta4dl.css} +1 -1
  148. package/es/components/Select/hooks/useKeyboardNavigation.js +3 -7
  149. package/es/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
  150. package/es/components/Select/ui/Inner/Inner.css +2 -2
  151. package/es/components/Select/ui/Inner/Inner.js +12 -6
  152. package/es/components/Select/ui/Inner/Inner.js.map +1 -1
  153. package/es/components/Table/Table.css +2 -2
  154. package/es/components/Table/ui/Cell/Cell.css +2 -2
  155. package/es/components/Table/ui/EditableCell/EditableCell.css +2 -2
  156. package/es/components/Table/ui/HeadCell/HeadCell.css +2 -2
  157. package/es/components/Table/ui/HeadCell/ui/Filter/Filter.css +2 -2
  158. package/es/index.css +17 -17
  159. package/package.json +2 -2
  160. package/styled-components/cjs/components/CodeField/CodeField.js +9 -14
  161. package/styled-components/cjs/components/CodeField/CodeField.styles.js +7 -7
  162. package/styled-components/cjs/components/CodeField/hooks/useWebOTP.js +1 -11
  163. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +20 -22
  164. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.styles.js +9 -9
  165. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js +1 -1
  166. package/styled-components/cjs/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +3 -7
  167. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +50 -9
  168. package/styled-components/cjs/components/Drawer/hooks/useDrawer.js +11 -0
  169. package/styled-components/cjs/components/Dropdown/Dropdown.js +6 -10
  170. package/styled-components/cjs/components/Dropdown/Dropdown.styles.js +3 -7
  171. package/styled-components/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +3 -7
  172. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +48 -11
  173. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +1 -1
  174. package/styled-components/cjs/components/Select/Select.js +4 -2
  175. package/styled-components/cjs/components/Select/Select.styles.js +5 -5
  176. package/styled-components/cjs/components/Select/hooks/useKeyboardNavigation.js +3 -7
  177. package/styled-components/cjs/components/Select/ui/Inner/Inner.js +50 -9
  178. package/styled-components/cjs/examples/components/Combobox/Combobox.js +0 -15
  179. package/styled-components/es/components/CodeField/CodeField.js +9 -15
  180. package/styled-components/es/components/CodeField/CodeField.styles.js +7 -7
  181. package/styled-components/es/components/CodeField/hooks/useWebOTP.js +1 -11
  182. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +20 -22
  183. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.styles.js +9 -9
  184. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.tokens.js +1 -1
  185. package/styled-components/es/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +3 -7
  186. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +11 -6
  187. package/styled-components/es/components/Drawer/hooks/useDrawer.js +11 -0
  188. package/styled-components/es/components/Dropdown/Dropdown.js +6 -10
  189. package/styled-components/es/components/Dropdown/Dropdown.styles.js +3 -7
  190. package/styled-components/es/components/Dropdown/hooks/useKeyboardNavigation.js +3 -7
  191. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +9 -8
  192. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +1 -1
  193. package/styled-components/es/components/Select/Select.js +4 -2
  194. package/styled-components/es/components/Select/Select.styles.js +5 -5
  195. package/styled-components/es/components/Select/hooks/useKeyboardNavigation.js +3 -7
  196. package/styled-components/es/components/Select/ui/Inner/Inner.js +11 -6
  197. package/styled-components/es/examples/components/Combobox/Combobox.js +7 -0
  198. package/types/components/Autocomplete/Autocomplete.types.d.ts +6 -6
  199. package/types/components/Autocomplete/Autocomplete.types.d.ts.map +1 -1
  200. package/types/components/CodeField/CodeField.d.ts.map +1 -1
  201. package/types/components/CodeField/CodeField.styles.d.ts.map +1 -1
  202. package/types/components/CodeField/hooks/useWebOTP.d.ts +1 -5
  203. package/types/components/CodeField/hooks/useWebOTP.d.ts.map +1 -1
  204. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  205. package/types/components/Combobox/ComboboxNew/Combobox.styles.d.ts +0 -1
  206. package/types/components/Combobox/ComboboxNew/Combobox.styles.d.ts.map +1 -1
  207. package/types/components/Combobox/ComboboxNew/Combobox.tokens.d.ts +1 -1
  208. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts +6 -6
  209. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts.map +1 -1
  210. package/types/components/Combobox/ComboboxNew/ui/Inner/Inner.d.ts.map +1 -1
  211. package/types/components/Combobox/ComboboxNew/ui/Inner/Inner.type.d.ts +2 -1
  212. package/types/components/Combobox/ComboboxNew/ui/Inner/Inner.type.d.ts.map +1 -1
  213. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.types.d.ts +6 -2
  214. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.types.d.ts.map +1 -1
  215. package/types/components/Drawer/hooks/useDrawer.d.ts.map +1 -1
  216. package/types/components/Dropdown/Dropdown.d.ts +4 -4
  217. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  218. package/types/components/Dropdown/Dropdown.styles.d.ts +0 -1
  219. package/types/components/Dropdown/Dropdown.styles.d.ts.map +1 -1
  220. package/types/components/Dropdown/Dropdown.types.d.ts +6 -6
  221. package/types/components/Dropdown/Dropdown.types.d.ts.map +1 -1
  222. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts.map +1 -1
  223. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts +2 -3
  224. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts.map +1 -1
  225. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts +7 -3
  226. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts.map +1 -1
  227. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts +6 -6
  228. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts.map +1 -1
  229. package/types/components/Select/Select.d.ts.map +1 -1
  230. package/types/components/Select/Select.styles.d.ts +0 -1
  231. package/types/components/Select/Select.styles.d.ts.map +1 -1
  232. package/types/components/Select/Select.types.d.ts +10 -10
  233. package/types/components/Select/Select.types.d.ts.map +1 -1
  234. package/types/components/Select/ui/Inner/Inner.d.ts.map +1 -1
  235. package/types/components/Select/ui/Inner/Inner.type.d.ts +2 -1
  236. package/types/components/Select/ui/Inner/Inner.type.d.ts.map +1 -1
  237. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts +11 -3
  238. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts.map +1 -1
  239. package/types/components/Table/ui/HeadCell/ui/Filter/Filter.styles.d.ts +6 -6
  240. package/types/components/Table/ui/HeadCell/ui/Filter/Filter.styles.d.ts.map +1 -1
  241. package/types/examples/components/Autocomplete/Autocomplete.d.ts +40 -40
  242. package/types/examples/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  243. package/types/examples/components/Combobox/Combobox.d.ts +24 -24
  244. package/types/examples/components/Combobox/Combobox.d.ts.map +1 -1
  245. package/types/examples/components/Dropdown/Dropdown.d.ts +2 -2
  246. package/types/examples/components/Dropdown/Dropdown.d.ts.map +1 -1
  247. package/types/examples/components/Select/Select.d.ts +6 -6
  248. package/types/examples/components/Select/Select.d.ts.map +1 -1
@@ -225,6 +225,7 @@ import { Context } from "./Combobox.context";
225
225
  var floatingPopoverRef = useRef(null);
226
226
  var inputForkRef = useForkRef(inputRef, ref);
227
227
  var treeId = safeUseId();
228
+ var listWrapperRef = useRef(null);
228
229
  var filteredItems = useMemo(function() {
229
230
  return filterItems(transformedItems, textValue, getTextValue(multiple, value, valueToItemMap, renderValue), filter);
230
231
  }, [
@@ -285,22 +286,10 @@ import { Context } from "./Combobox.context";
285
286
  setInternalValue(newValue);
286
287
  }
287
288
  };
288
- var handleClickArrow = function() {
289
- if (disabled || readOnly) {
290
- return;
291
- }
292
- if (isCurrentListOpen) {
293
- dispatchPath({
294
- type: 'reset'
295
- });
296
- } else {
297
- dispatchPath({
298
- type: 'opened_first_level'
299
- });
300
- }
301
- dispatchFocusedPath({
302
- type: 'reset'
303
- });
289
+ var handleClickArrow = function(e) {
290
+ handleListToggle(!isCurrentListOpen);
291
+ // При клике на иконку закрытия фокус не должен становиться в инпут.
292
+ e.stopPropagation();
304
293
  };
305
294
  // Обработчик изменения значения в инпуте
306
295
  var handleTextValueChange = function(e) {
@@ -437,6 +426,12 @@ import { Context } from "./Combobox.context";
437
426
  onChange(isCurrentChecked ? '' : item.value, item);
438
427
  }
439
428
  };
429
+ // Обработчик клика на таргет
430
+ var handleTargetClick = function() {
431
+ if (!isCurrentListOpen) {
432
+ handleListToggle(true);
433
+ }
434
+ };
440
435
  var getChips = function() {
441
436
  if (multiple && Array.isArray(value)) {
442
437
  if (value.length === 0) return [];
@@ -569,13 +564,14 @@ import { Context } from "./Combobox.context";
569
564
  }, /*#__PURE__*/ React.createElement(FloatingPopover, {
570
565
  ref: floatingPopoverRef,
571
566
  opened: isCurrentListOpen,
572
- onToggle: handleListToggle,
573
567
  placement: placement,
574
568
  portal: portal,
575
569
  listWidth: listWidth,
576
570
  offset: _offset,
577
571
  target: function(referenceRef) {
578
- return /*#__PURE__*/ React.createElement(StyledTextField, _object_spread_props(_object_spread({
572
+ return /*#__PURE__*/ React.createElement("div", {
573
+ onClick: handleTargetClick
574
+ }, /*#__PURE__*/ React.createElement(StyledTextField, _object_spread_props(_object_spread({
579
575
  ref: name ? inputRef : inputForkRef,
580
576
  inputWrapperRef: referenceRef,
581
577
  value: textValue,
@@ -589,7 +585,8 @@ import { Context } from "./Combobox.context";
589
585
  contentLeft: contentLeft,
590
586
  contentRight: /*#__PURE__*/ React.createElement(IconArrowWrapper, {
591
587
  disabled: disabled,
592
- onClick: handleClickArrow
588
+ onClick: handleClickArrow,
589
+ className: classes.comboboxTargetArrow
593
590
  }, /*#__PURE__*/ React.createElement(StyledArrow, {
594
591
  color: "inherit",
595
592
  size: sizeToIconSize(size),
@@ -616,7 +613,7 @@ import { Context } from "./Combobox.context";
616
613
  enumerationType: 'plain'
617
614
  }, rest), {
618
615
  _onEnterDisabled: true // Пропс для отключения обработчика Enter внутри Textfield
619
- }));
616
+ })));
620
617
  },
621
618
  zIndex: zIndex,
622
619
  isInner: false
@@ -628,6 +625,7 @@ import { Context } from "./Combobox.context";
628
625
  readOnly: readOnly,
629
626
  name: name
630
627
  }, /*#__PURE__*/ React.createElement(ListWrapper, {
628
+ ref: listWrapperRef,
631
629
  listWidth: listWidth
632
630
  }, /*#__PURE__*/ React.createElement(Ul, {
633
631
  role: "tree",
@@ -636,7 +634,6 @@ import { Context } from "./Combobox.context";
636
634
  listMaxHeight: listMaxHeight || listHeight,
637
635
  ref: targetRef,
638
636
  virtual: virtual,
639
- listOverflow: listOverflow,
640
637
  onScroll: virtual ? undefined : onScroll
641
638
  }, beforeList, isEmpty(filteredItems) ? /*#__PURE__*/ React.createElement(StyledEmptyState, {
642
639
  className: classes.emptyStateWrapper,
@@ -658,7 +655,8 @@ import { Context } from "./Combobox.context";
658
655
  path: path,
659
656
  dispatchPath: dispatchPath,
660
657
  index: index,
661
- listWidth: listWidth
658
+ listWidth: listWidth,
659
+ portal: listWrapperRef
662
660
  });
663
661
  })), afterList)))))));
664
662
  });
@@ -8,7 +8,7 @@ var mergedConfig = mergeConfig(emptyStateConfig);
8
8
  var EmptyState = component(mergedConfig);
9
9
  export var ListWrapper = styled.div.withConfig({
10
10
  displayName: "Combobox.styles__ListWrapper",
11
- componentId: "sc-7fefedf8-0"
11
+ componentId: "sc-21c5f0bf-0"
12
12
  })([
13
13
  "width:",
14
14
  ";padding:calc(var(",
@@ -25,10 +25,10 @@ export var ListWrapper = styled.div.withConfig({
25
25
  }, tokens.padding, tokens.dropdownBorderWidth, tokens.borderRadius, constants.background, constants.boxShadow, tokens.dropdownBorderWidth, tokens.dropdownBorderColor);
26
26
  export var Ul = styled.ul.withConfig({
27
27
  displayName: "Combobox.styles__Ul",
28
- componentId: "sc-7fefedf8-1"
28
+ componentId: "sc-21c5f0bf-1"
29
29
  })([
30
30
  "max-height:",
31
- ";overflow-y:",
31
+ ";overflow-x:hidden;overflow-y:",
32
32
  ";border-radius:calc(var(",
33
33
  ") - 0.125rem - var(",
34
34
  ",0rem));margin:0;padding:0;.",
@@ -37,12 +37,12 @@ export var Ul = styled.ul.withConfig({
37
37
  var virtual = param.virtual, listMaxHeight = param.listMaxHeight;
38
38
  return virtual ? 'auto' : listMaxHeight || 'auto';
39
39
  }, function(param) {
40
- var virtual = param.virtual, listOverflow = param.listOverflow;
41
- return virtual ? 'visible' : listOverflow || 'visible';
40
+ var virtual = param.virtual;
41
+ return virtual ? 'visible' : 'auto';
42
42
  }, tokens.borderRadius, tokens.dropdownBorderWidth, classes.emptyStateWrapper);
43
43
  export var IconArrowWrapper = styled.div.withConfig({
44
44
  displayName: "Combobox.styles__IconArrowWrapper",
45
- componentId: "sc-7fefedf8-2"
45
+ componentId: "sc-21c5f0bf-2"
46
46
  })([
47
47
  "line-height:0;color:var(",
48
48
  ");cursor:",
@@ -63,7 +63,7 @@ export var sizeMap = {
63
63
  };
64
64
  export var StyledArrow = styled(IconDisclosureDownCentered).withConfig({
65
65
  displayName: "Combobox.styles__StyledArrow",
66
- componentId: "sc-7fefedf8-3"
66
+ componentId: "sc-21c5f0bf-3"
67
67
  })([
68
68
  "width:",
69
69
  ";height:",
@@ -80,7 +80,7 @@ export var base = css([
80
80
  ]);
81
81
  export var StyledEmptyState = styled(EmptyState).withConfig({
82
82
  displayName: "Combobox.styles__StyledEmptyState",
83
- componentId: "sc-7fefedf8-4"
83
+ componentId: "sc-21c5f0bf-4"
84
84
  })([
85
85
  "",
86
86
  ":var(",
@@ -102,7 +102,7 @@ export var StyledEmptyState = styled(EmptyState).withConfig({
102
102
  ], emptyStateTokens.borderRadius, tokens.textFieldBorderRadius, emptyStateTokens.padding, tokens.emptyStatePadding, emptyStateTokens.fontFamily, tokens.textFieldFontFamily, emptyStateTokens.fontSize, tokens.textFieldFontSize, emptyStateTokens.fontStyle, tokens.textFieldFontStyle, emptyStateTokens.fontWeight, tokens.textFieldFontWeight, emptyStateTokens.fontLetterSpacing, tokens.textFieldLetterSpacing, emptyStateTokens.fontLineHeight, tokens.textFieldLineHeight);
103
103
  export var StyledLeftHelper = styled.span.withConfig({
104
104
  displayName: "Combobox.styles__StyledLeftHelper",
105
- componentId: "sc-7fefedf8-5"
105
+ componentId: "sc-21c5f0bf-5"
106
106
  })([
107
107
  "margin:0;padding:0;"
108
108
  ]);
@@ -2,7 +2,7 @@ export var classes = {
2
2
  dropdownItemIsFocused: 'dropdown-item-is-focused',
3
3
  dropdownItemIsDisabled: 'dropdown-item-is-disabled',
4
4
  dropdownItemIsActive: 'dropdown-item-is-active',
5
- selectTargetArrow: 'combobox-target-arrow',
5
+ comboboxTargetArrow: 'combobox-target-arrow',
6
6
  arrowInverse: 'arrow-inverse',
7
7
  textfieldTarget: 'combobox-textfield-target',
8
8
  selectChipIsFocused: 'combobox-chip-is-focused',
@@ -159,13 +159,9 @@ export var useKeyNavigation = function(param) {
159
159
  case keys.Tab:
160
160
  case keys.Escape:
161
161
  {
162
- dispatchPath({
163
- type: 'reset'
164
- });
165
- dispatchFocusedPath({
166
- type: 'reset'
167
- });
168
- handleListToggle(false);
162
+ if (path[0]) {
163
+ handleListToggle(false);
164
+ }
169
165
  if (multiple) {
170
166
  setTextValue('');
171
167
  } else if (textValue !== value) {
@@ -1,11 +1,11 @@
1
- import React from "react";
1
+ import React, { useRef } from "react";
2
2
  import { safeUseId } from "../../../../../utils";
3
3
  import { FloatingPopover } from "../../FloatingPopover";
4
4
  import { isEmpty } from "../../../../../utils";
5
5
  import { Ul, ListWrapper } from "../../Combobox.styles";
6
6
  import { Item } from "./ui";
7
7
  export var Inner = function(param) {
8
- var item = param.item, currentLevel = param.currentLevel, path = param.path, dispatchPath = param.dispatchPath, index = param.index, listWidth = param.listWidth;
8
+ var item = param.item, currentLevel = param.currentLevel, path = param.path, dispatchPath = param.dispatchPath, index = param.index, listWidth = param.listWidth, portal = param.portal;
9
9
  var handleToggle = function(opened) {
10
10
  if (opened) {
11
11
  dispatchPath({
@@ -20,6 +20,7 @@ export var Inner = function(param) {
20
20
  });
21
21
  }
22
22
  };
23
+ var listWrapperRef = useRef(null);
23
24
  var isCurrentListOpen = path[currentLevel + 1] === item.value.toString();
24
25
  var treeId = safeUseId();
25
26
  var listId = "".concat(treeId, "_tree_level_").concat(currentLevel + 2);
@@ -40,13 +41,16 @@ export var Inner = function(param) {
40
41
  ariaLevel: nextLevel,
41
42
  ariaLabel: item.label
42
43
  }),
43
- isInner: true
44
+ isInner: true,
45
+ portal: portal
44
46
  }, /*#__PURE__*/ React.createElement(ListWrapper, {
45
- listWidth: listWidth
47
+ listWidth: listWidth,
48
+ ref: listWrapperRef
46
49
  }, /*#__PURE__*/ React.createElement(Ul, {
47
50
  role: "group",
48
51
  id: listId,
49
- virtual: false
52
+ virtual: false,
53
+ listMaxHeight: item === null || item === void 0 ? void 0 : item.listMaxHeight
50
54
  }, (_item_items = item.items) === null || _item_items === void 0 ? void 0 : _item_items.map(function(innerItem, innerIndex) {
51
55
  return /*#__PURE__*/ React.createElement(Inner, {
52
56
  key: "".concat(innerIndex, "/").concat(currentLevel),
@@ -55,7 +59,8 @@ export var Inner = function(param) {
55
59
  path: path,
56
60
  dispatchPath: dispatchPath,
57
61
  index: innerIndex,
58
- listWidth: listWidth
62
+ listWidth: listWidth,
63
+ portal: listWrapperRef
59
64
  });
60
65
  }))));
61
66
  }
@@ -87,6 +87,17 @@ export var useDrawer = function(param) {
87
87
  isOpen,
88
88
  popupController.items
89
89
  ]);
90
+ // При анмаунте компонента нужно обновлять overflow у body.
91
+ useEffect(function() {
92
+ return function() {
93
+ if (!canUseDOM) {
94
+ return;
95
+ }
96
+ if (!hasDrawers(Array.from(popupController.items.values()))) {
97
+ document.body.style.overflow = overflow.current;
98
+ }
99
+ };
100
+ }, []);
90
101
  var drawerInfo = _object_spread({
91
102
  id: id,
92
103
  info: {
@@ -119,7 +119,7 @@ import { Context } from "./Dropdown.context";
119
119
  * Выпадающий список.
120
120
  */ export var dropdownRoot = function(Root) {
121
121
  return /*#__PURE__*/ forwardRef(function(_param, ref) {
122
- var items = _param.items, children = _param.children, placement = _param.placement, offset = _param.offset, _param_closeOnOverlayClick = _param.closeOnOverlayClick, closeOnOverlayClick = _param_closeOnOverlayClick === void 0 ? true : _param_closeOnOverlayClick, onToggle = _param.onToggle, size = _param.size, view = _param.view, _param_itemRole = _param.itemRole, itemRole = _param_itemRole === void 0 ? 'treeitem' : _param_itemRole, className = _param.className, listMaxHeight = _param.listMaxHeight, listWidth = _param.listWidth, listHeight = _param.listHeight, listOverflow = _param.listOverflow, _param_closeOnSelect = _param.closeOnSelect, closeOnSelect = _param_closeOnSelect === void 0 ? true : _param_closeOnSelect, onHover = _param.onHover, onItemSelect = _param.onItemSelect, onItemClick = _param.onItemClick, _param_trigger = _param.trigger, trigger = _param_trigger === void 0 ? 'click' : _param_trigger, _param_openByRightClick = _param.openByRightClick, openByRightClick = _param_openByRightClick === void 0 ? false : _param_openByRightClick, _param_variant = _param.variant, variant = _param_variant === void 0 ? 'normal' : _param_variant, _param_hasArrow = _param.hasArrow, hasArrow = _param_hasArrow === void 0 ? true : _param_hasArrow, _param_alwaysOpened = _param.alwaysOpened, alwaysOpened = _param_alwaysOpened === void 0 ? false : _param_alwaysOpened, portal = _param.portal, renderItem = _param.renderItem, zIndex = _param.zIndex, beforeList = _param.beforeList, afterList = _param.afterList, rest = _object_without_properties(_param, [
122
+ var items = _param.items, children = _param.children, placement = _param.placement, offset = _param.offset, _param_closeOnOverlayClick = _param.closeOnOverlayClick, closeOnOverlayClick = _param_closeOnOverlayClick === void 0 ? true : _param_closeOnOverlayClick, onToggle = _param.onToggle, size = _param.size, view = _param.view, _param_itemRole = _param.itemRole, itemRole = _param_itemRole === void 0 ? 'treeitem' : _param_itemRole, className = _param.className, listMaxHeight = _param.listMaxHeight, listWidth = _param.listWidth, listHeight = _param.listHeight, _param_closeOnSelect = _param.closeOnSelect, closeOnSelect = _param_closeOnSelect === void 0 ? true : _param_closeOnSelect, onHover = _param.onHover, onItemSelect = _param.onItemSelect, onItemClick = _param.onItemClick, _param_trigger = _param.trigger, trigger = _param_trigger === void 0 ? 'click' : _param_trigger, _param_openByRightClick = _param.openByRightClick, openByRightClick = _param_openByRightClick === void 0 ? false : _param_openByRightClick, _param_variant = _param.variant, variant = _param_variant === void 0 ? 'normal' : _param_variant, _param_hasArrow = _param.hasArrow, hasArrow = _param_hasArrow === void 0 ? true : _param_hasArrow, _param_alwaysOpened = _param.alwaysOpened, alwaysOpened = _param_alwaysOpened === void 0 ? false : _param_alwaysOpened, portal = _param.portal, renderItem = _param.renderItem, zIndex = _param.zIndex, beforeList = _param.beforeList, afterList = _param.afterList, rest = _object_without_properties(_param, [
123
123
  "items",
124
124
  "children",
125
125
  "placement",
@@ -133,7 +133,6 @@ import { Context } from "./Dropdown.context";
133
133
  "listMaxHeight",
134
134
  "listWidth",
135
135
  "listHeight",
136
- "listOverflow",
137
136
  "closeOnSelect",
138
137
  "onHover",
139
138
  "onItemSelect",
@@ -159,6 +158,7 @@ import { Context } from "./Dropdown.context";
159
158
  var _useHashMaps = _sliced_to_array(useHashMaps(items), 2), pathMap = _useHashMaps[0], focusedToValueMap = _useHashMaps[1];
160
159
  var activeDescendantItemValue = ((_getItemByFocused = getItemByFocused(focusedPath, focusedToValueMap)) === null || _getItemByFocused === void 0 ? void 0 : _getItemByFocused.value) || '';
161
160
  var floatingPopoverRef = useRef(null);
161
+ var listWrapperRef = useRef(null);
162
162
  var treeId = safeUseId();
163
163
  // Логика работы при клике за пределами выпадающего списка
164
164
  var targetRef = useOutsideClick(function(event) {
@@ -252,17 +252,14 @@ import { Context } from "./Dropdown.context";
252
252
  className: cx(className, classes.dropdownRoot),
253
253
  ref: ref,
254
254
  view: view,
255
- size: size,
256
- style: {
257
- display: 'inline-block'
258
- }
255
+ size: size
259
256
  }, rest), /*#__PURE__*/ React.createElement(ListWrapper, {
257
+ ref: listWrapperRef,
260
258
  listWidth: listWidth
261
259
  }, /*#__PURE__*/ React.createElement(Ul, {
262
260
  ref: targetRef,
263
261
  id: "".concat(treeId, "_tree_level_1"),
264
262
  role: "tree",
265
- listOverflow: listOverflow,
266
263
  listMaxHeight: listMaxHeight || listHeight
267
264
  }, beforeList, items.map(function(item, index) {
268
265
  return /*#__PURE__*/ React.createElement(DropdownInner, {
@@ -273,9 +270,8 @@ import { Context } from "./Dropdown.context";
273
270
  path: path,
274
271
  dispatchPath: dispatchPath,
275
272
  index: index,
276
- listOverflow: listOverflow,
277
- listMaxHeight: listMaxHeight || listHeight,
278
- listWidth: listWidth
273
+ listWidth: listWidth,
274
+ portal: listWrapperRef
279
275
  });
280
276
  }), afterList)))));
281
277
  });
@@ -4,7 +4,7 @@ import { getCorrectHeight } from "./utils";
4
4
  import { tokens, constants } from "./Dropdown.tokens";
5
5
  export var ListWrapper = styled.div.withConfig({
6
6
  displayName: "Dropdown.styles__ListWrapper",
7
- componentId: "sc-eabc61b1-0"
7
+ componentId: "sc-768e302d-0"
8
8
  })([
9
9
  "width:",
10
10
  ";padding:calc(var(",
@@ -21,19 +21,15 @@ export var ListWrapper = styled.div.withConfig({
21
21
  }, tokens.padding, tokens.borderWidth, tokens.borderRadius, constants.background, constants.boxShadow, tokens.borderWidth, tokens.borderColor);
22
22
  export var Ul = styled.ul.withConfig({
23
23
  displayName: "Dropdown.styles__Ul",
24
- componentId: "sc-eabc61b1-1"
24
+ componentId: "sc-768e302d-1"
25
25
  })([
26
26
  "max-height:",
27
- ";overflow-y:",
28
- ";border-radius:calc(var(",
27
+ ";overflow-x:hidden;overflow-y:auto;border-radius:calc(var(",
29
28
  ") - 0.125rem - var(",
30
29
  ",0rem));margin:0;padding:0;"
31
30
  ], function(param) {
32
31
  var listMaxHeight = param.listMaxHeight;
33
32
  return listMaxHeight ? getCorrectHeight(listMaxHeight) : 'auto';
34
- }, function(param) {
35
- var listOverflow = param.listOverflow;
36
- return listOverflow || 'visible';
37
33
  }, tokens.borderRadius, tokens.borderWidth);
38
34
  export var base = css([
39
35
  ""
@@ -162,13 +162,9 @@ export var useKeyNavigation = function(param) {
162
162
  case keys.Tab:
163
163
  case keys.Escape:
164
164
  {
165
- dispatchFocusedPath({
166
- type: 'reset'
167
- });
168
- dispatchPath({
169
- type: 'reset'
170
- });
171
- handleGlobalToggle(false, event);
165
+ if (path[0]) {
166
+ handleGlobalToggle(false, event);
167
+ }
172
168
  break;
173
169
  }
174
170
  case keys.Home:
@@ -1,11 +1,11 @@
1
- import React from "react";
1
+ import React, { useRef } from "react";
2
2
  import { safeUseId } from "../../../../utils";
3
3
  import { DropdownItem } from "../DropdownItem/DropdownItem";
4
4
  import { Ul, ListWrapper } from "../../Dropdown.styles";
5
5
  import { FloatingPopover } from "../../FloatingPopover";
6
6
  import { getPlacement } from "../../utils";
7
7
  var DropdownInner = function(param) {
8
- var item = param.item, currentLevel = param.currentLevel, path = param.path, dispatchPath = param.dispatchPath, index = param.index, trigger = param.trigger, listMaxHeight = param.listMaxHeight, listOverflow = param.listOverflow, listWidth = param.listWidth;
8
+ var item = param.item, currentLevel = param.currentLevel, path = param.path, dispatchPath = param.dispatchPath, index = param.index, trigger = param.trigger, listWidth = param.listWidth, portal = param.portal;
9
9
  var handleToggle = function(opened) {
10
10
  if (opened) {
11
11
  dispatchPath({
@@ -20,6 +20,7 @@ var DropdownInner = function(param) {
20
20
  });
21
21
  }
22
22
  };
23
+ var listWrapperRef = useRef(null);
23
24
  var isCurrentListOpen = path[currentLevel + 1] === item.value.toString();
24
25
  var treeId = safeUseId();
25
26
  var listId = "".concat(treeId, "_tree_level_").concat(currentLevel + 2);
@@ -40,14 +41,15 @@ var DropdownInner = function(param) {
40
41
  ariaLevel: nextLevel,
41
42
  ariaLabel: item.label
42
43
  }),
43
- isInner: true
44
+ isInner: true,
45
+ portal: portal
44
46
  }, /*#__PURE__*/ React.createElement(ListWrapper, {
47
+ ref: listWrapperRef,
45
48
  listWidth: listWidth
46
49
  }, /*#__PURE__*/ React.createElement(Ul, {
47
50
  id: listId,
48
51
  role: "group",
49
- listMaxHeight: listMaxHeight,
50
- listOverflow: listOverflow
52
+ listMaxHeight: item.listMaxHeight
51
53
  }, item.items.map(function(innerItem, innerIndex) {
52
54
  return /*#__PURE__*/ React.createElement(DropdownInner, {
53
55
  key: "".concat(innerIndex, "/").concat(currentLevel),
@@ -57,9 +59,8 @@ var DropdownInner = function(param) {
57
59
  dispatchPath: dispatchPath,
58
60
  index: innerIndex,
59
61
  trigger: trigger,
60
- listMaxHeight: listMaxHeight,
61
- listOverflow: listOverflow,
62
- listWidth: listWidth
62
+ listWidth: listWidth,
63
+ portal: listWrapperRef
63
64
  });
64
65
  }))));
65
66
  }
@@ -133,7 +133,7 @@ export var DropdownItem = function(param) {
133
133
  };
134
134
  var handleHover = function() {
135
135
  if (onHover) {
136
- onHover(index);
136
+ onHover(index, item);
137
137
  }
138
138
  };
139
139
  return /*#__PURE__*/ React.createElement(React.Fragment, null, dividerBefore && /*#__PURE__*/ React.createElement(Divider, {
@@ -210,6 +210,7 @@ import { Context } from "./Select.context";
210
210
  var activeDescendantItemValue = ((_getItemByFocused = getItemByFocused(focusedPath, focusedToValueMap)) === null || _getItemByFocused === void 0 ? void 0 : _getItemByFocused.value.toString()) || '';
211
211
  var closeAfterSelect = outerCloseAfterSelect !== null && outerCloseAfterSelect !== void 0 ? outerCloseAfterSelect : !props.multiselect;
212
212
  var treeId = safeUseId();
213
+ var listWrapperRef = useRef(null);
213
214
  var view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView(status, outerView);
214
215
  // Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.
215
216
  var requiredProps = props.target === 'button-like' ? undefined : {
@@ -496,12 +497,12 @@ import { Context } from "./Select.context";
496
497
  disabled: disabled,
497
498
  readOnly: readOnly
498
499
  }, rest), /*#__PURE__*/ React.createElement(ListWrapper, {
500
+ ref: listWrapperRef,
499
501
  listWidth: listWidth
500
502
  }, /*#__PURE__*/ React.createElement(Ul, {
501
503
  role: "tree",
502
504
  id: "".concat(treeId, "_tree_level_1"),
503
505
  "aria-multiselectable": Boolean(props.multiselect),
504
- listOverflow: listOverflow,
505
506
  listMaxHeight: listMaxHeight || listHeight,
506
507
  onScroll: virtual ? undefined : handleScroll,
507
508
  ref: targetRef,
@@ -522,7 +523,8 @@ import { Context } from "./Select.context";
522
523
  path: path,
523
524
  dispatchPath: dispatchPath,
524
525
  index: index,
525
- listWidth: listWidth
526
+ listWidth: listWidth,
527
+ portal: listWrapperRef
526
528
  });
527
529
  }), afterList))))));
528
530
  });
@@ -4,7 +4,7 @@ import { getCorrectHeight } from "./utils";
4
4
  import { tokens, constants } from "./Select.tokens";
5
5
  export var ListWrapper = styled.div.withConfig({
6
6
  displayName: "Select.styles__ListWrapper",
7
- componentId: "sc-30266665-0"
7
+ componentId: "sc-3f8cf8d4-0"
8
8
  })([
9
9
  "width:",
10
10
  ";padding:calc(var(",
@@ -21,10 +21,10 @@ export var ListWrapper = styled.div.withConfig({
21
21
  }, tokens.padding, tokens.dropdownBorderWidth, tokens.borderRadius, constants.background, constants.boxShadow, tokens.dropdownBorderWidth, tokens.dropdownBorderColor);
22
22
  export var Ul = styled.ul.withConfig({
23
23
  displayName: "Select.styles__Ul",
24
- componentId: "sc-30266665-1"
24
+ componentId: "sc-3f8cf8d4-1"
25
25
  })([
26
26
  "max-height:",
27
- ";overflow-y:",
27
+ ";overflow-x:hidden;overflow-y:",
28
28
  ";border-radius:calc(var(",
29
29
  ") - 0.125rem - var(",
30
30
  ",0rem));margin:0;padding:0;"
@@ -33,8 +33,8 @@ export var Ul = styled.ul.withConfig({
33
33
  return(// eslint-disable-next-line no-nested-ternary
34
34
  virtual ? 'auto' : listMaxHeight ? getCorrectHeight(listMaxHeight) : 'auto');
35
35
  }, function(param) {
36
- var virtual = param.virtual, listOverflow = param.listOverflow;
37
- return virtual ? 'visible' : listOverflow || 'visible';
36
+ var virtual = param.virtual;
37
+ return virtual ? 'visible' : 'auto';
38
38
  }, tokens.borderRadius, tokens.dropdownBorderWidth);
39
39
  export var base = css([
40
40
  ""
@@ -177,13 +177,9 @@ export var useKeyNavigation = function(param) {
177
177
  case keys.Tab:
178
178
  case keys.Escape:
179
179
  {
180
- dispatchFocusedPath({
181
- type: 'reset'
182
- });
183
- dispatchPath({
184
- type: 'reset'
185
- });
186
- handleListToggle(false);
180
+ if (path[0]) {
181
+ handleListToggle(false);
182
+ }
187
183
  break;
188
184
  }
189
185
  case keys.Home:
@@ -1,10 +1,10 @@
1
- import React from "react";
1
+ import React, { useRef } from "react";
2
2
  import { isEmpty, safeUseId } from "../../../../utils";
3
3
  import { Ul, ListWrapper } from "../../Select.styles";
4
4
  import { FloatingPopover } from "../../FloatingPopover";
5
5
  import { Item } from "./ui/Item/Item";
6
6
  export var Inner = function(param) {
7
- var item = param.item, currentLevel = param.currentLevel, path = param.path, dispatchPath = param.dispatchPath, index = param.index, listWidth = param.listWidth;
7
+ var item = param.item, currentLevel = param.currentLevel, path = param.path, dispatchPath = param.dispatchPath, index = param.index, listWidth = param.listWidth, portal = param.portal;
8
8
  var handleToggle = function(opened) {
9
9
  if (opened) {
10
10
  dispatchPath({
@@ -19,6 +19,7 @@ export var Inner = function(param) {
19
19
  });
20
20
  }
21
21
  };
22
+ var listWrapperRef = useRef(null);
22
23
  var isCurrentListOpen = path[currentLevel + 1] === item.value.toString();
23
24
  var treeId = safeUseId();
24
25
  var listId = "".concat(treeId, "_tree_level_").concat(currentLevel + 2);
@@ -39,13 +40,16 @@ export var Inner = function(param) {
39
40
  ariaLevel: nextLevel,
40
41
  ariaLabel: item.label
41
42
  }),
42
- isInner: true
43
+ isInner: true,
44
+ portal: portal
43
45
  }, /*#__PURE__*/ React.createElement(ListWrapper, {
44
- listWidth: listWidth
46
+ listWidth: listWidth,
47
+ ref: listWrapperRef
45
48
  }, /*#__PURE__*/ React.createElement(Ul, {
46
49
  role: "group",
47
50
  id: listId,
48
- virtual: false
51
+ virtual: false,
52
+ listMaxHeight: item === null || item === void 0 ? void 0 : item.listMaxHeight
49
53
  }, (_item_items = item.items) === null || _item_items === void 0 ? void 0 : _item_items.map(function(innerItem, innerIndex) {
50
54
  return /*#__PURE__*/ React.createElement(Inner, {
51
55
  key: "".concat(innerIndex, "/").concat(currentLevel),
@@ -54,7 +58,8 @@ export var Inner = function(param) {
54
58
  path: path,
55
59
  dispatchPath: dispatchPath,
56
60
  index: innerIndex,
57
- listWidth: listWidth
61
+ listWidth: listWidth,
62
+ portal: listWrapperRef
58
63
  });
59
64
  }))));
60
65
  }
@@ -0,0 +1,7 @@
1
+ import { component, mergeConfig } from "../../../engines";
2
+ import { comboboxNewConfig } from "../../..";
3
+ import { config } from "./Combobox.config";
4
+ var mergedConfig = mergeConfig(comboboxNewConfig, config);
5
+ var ComboboxComponent = component(mergedConfig);
6
+ var Combobox = ComboboxComponent;
7
+ export { Combobox };
@@ -15,7 +15,7 @@ export type SuggestionItemType = {
15
15
  */
16
16
  contentRight?: ReactNode;
17
17
  };
18
- export type AutocompleteProps = {
18
+ export type AutocompleteProps<T extends SuggestionItemType = SuggestionItemType> = {
19
19
  /**
20
20
  * Расположение лейбла.
21
21
  * @default outer
@@ -48,7 +48,7 @@ export type AutocompleteProps = {
48
48
  /**
49
49
  * Массив подсказок.
50
50
  */
51
- suggestions?: SuggestionItemType[];
51
+ suggestions?: T[];
52
52
  /**
53
53
  * Минимальное число введенных символов, при котором открывается дропдаун.
54
54
  * @default 2
@@ -57,11 +57,11 @@ export type AutocompleteProps = {
57
57
  /**
58
58
  * Коллбэк фильтра подсказок.
59
59
  */
60
- filter?: (data: SuggestionItemType) => boolean;
60
+ filter?: (data: T) => boolean;
61
61
  /**
62
62
  * Коллбэк, который срабатывает при выборе подсказки.
63
63
  */
64
- onSuggestionSelect?: (data: SuggestionItemType) => void;
64
+ onSuggestionSelect?: (data: T) => void;
65
65
  /**
66
66
  * Коллбэк, срабатывающий при скролле.
67
67
  */
@@ -78,7 +78,7 @@ export type AutocompleteProps = {
78
78
  /**
79
79
  * Коллбэк для рендера кастомного списка подсказок.
80
80
  */
81
- renderList?: (data?: SuggestionItemType[]) => ReactNode;
81
+ renderList?: (data?: T[]) => ReactNode;
82
82
  /**
83
83
  * Коллбэк для рендера элемента в конце выпадающего списка.
84
84
  */
@@ -86,7 +86,7 @@ export type AutocompleteProps = {
86
86
  /**
87
87
  * Callback для кастомной настройки элемента в выпадающем списке.
88
88
  */
89
- renderItem?: (item: SuggestionItemType) => React.ReactNode;
89
+ renderItem?: (item: T) => React.ReactNode;
90
90
  /**
91
91
  * Ячейка для контента в начале выпадающего списка.
92
92
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.types.d.ts","sourceRoot":"","sources":["../../../src/components/Autocomplete/Autocomplete.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Autocomplete.types.d.ts","sourceRoot":"","sources":["../../../src/components/Autocomplete/Autocomplete.types.ts"],"names":[],"mappings":"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"}