@salutejs/plasma-new-hope 0.336.0-canary.2216.17549652479.0 → 0.336.0-canary.2218.17560383957.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 (223) hide show
  1. package/cjs/components/Combobox/ComboboxNew/Combobox.css +6 -6
  2. package/cjs/components/Combobox/ComboboxNew/Combobox.js +22 -23
  3. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  4. package/cjs/components/Combobox/ComboboxNew/Combobox.styles.js +3 -4
  5. package/cjs/components/Combobox/ComboboxNew/Combobox.styles.js.map +1 -1
  6. package/cjs/components/Combobox/ComboboxNew/{Combobox.styles_isfa46.css → Combobox.styles_261unw.css} +1 -1
  7. package/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js +1 -1
  8. package/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js.map +1 -1
  9. package/cjs/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +3 -7
  10. package/cjs/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js.map +1 -1
  11. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.css +6 -6
  12. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +11 -5
  13. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  14. package/cjs/components/Combobox/ComboboxOld/Combobox.css +2 -2
  15. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.css +2 -2
  16. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.css +2 -2
  17. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.css +2 -2
  18. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.css +2 -2
  19. package/cjs/components/DatePicker/RangeDate/RangeDate.js +10 -0
  20. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  21. package/cjs/components/Drawer/hooks/useDrawer.js +12 -0
  22. package/cjs/components/Drawer/hooks/useDrawer.js.map +1 -1
  23. package/cjs/components/Dropdown/Dropdown.css +2 -2
  24. package/cjs/components/Dropdown/Dropdown.js +6 -10
  25. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  26. package/cjs/components/Dropdown/Dropdown.styles.js +2 -9
  27. package/cjs/components/Dropdown/Dropdown.styles.js.map +1 -1
  28. package/{es/components/Dropdown/Dropdown.styles_zheit5.css → cjs/components/Dropdown/Dropdown.styles_kkvnr1.css} +1 -1
  29. package/cjs/components/Dropdown/FloatingPopover.js +20 -40
  30. package/cjs/components/Dropdown/FloatingPopover.js.map +1 -1
  31. package/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +3 -7
  32. package/cjs/components/Dropdown/hooks/useKeyboardNavigation.js.map +1 -1
  33. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.css +2 -2
  34. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +9 -9
  35. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  36. package/cjs/components/Pagination/Pagination.css +2 -2
  37. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +2 -2
  38. package/cjs/components/Select/Select.css +2 -2
  39. package/cjs/components/Select/Select.js +4 -3
  40. package/cjs/components/Select/Select.js.map +1 -1
  41. package/cjs/components/Select/Select.styles.js +3 -4
  42. package/cjs/components/Select/Select.styles.js.map +1 -1
  43. package/cjs/components/Select/{Select.styles_bjoo18.css → Select.styles_dta4dl.css} +1 -1
  44. package/cjs/components/Select/hooks/useKeyboardNavigation.js +3 -7
  45. package/cjs/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
  46. package/cjs/components/Select/ui/Inner/Inner.css +2 -2
  47. package/cjs/components/Select/ui/Inner/Inner.js +11 -5
  48. package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
  49. package/cjs/components/Table/Table.css +2 -2
  50. package/cjs/components/Table/ui/Cell/Cell.css +2 -2
  51. package/cjs/components/Table/ui/EditableCell/EditableCell.css +2 -2
  52. package/cjs/components/Table/ui/HeadCell/HeadCell.css +2 -2
  53. package/cjs/components/Table/ui/HeadCell/ui/Filter/Filter.css +2 -2
  54. package/cjs/index.css +10 -10
  55. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +20 -22
  56. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.styles.js +16 -16
  57. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js +1 -1
  58. package/emotion/cjs/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +3 -7
  59. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +50 -9
  60. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +10 -0
  61. package/emotion/cjs/components/Drawer/hooks/useDrawer.js +11 -0
  62. package/emotion/cjs/components/Dropdown/Dropdown.js +6 -10
  63. package/emotion/cjs/components/Dropdown/Dropdown.styles.js +5 -8
  64. package/emotion/cjs/components/Dropdown/FloatingPopover.js +21 -47
  65. package/emotion/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +3 -7
  66. package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +48 -11
  67. package/emotion/cjs/components/Select/Select.js +4 -2
  68. package/emotion/cjs/components/Select/Select.styles.js +8 -8
  69. package/emotion/cjs/components/Select/hooks/useKeyboardNavigation.js +3 -7
  70. package/emotion/cjs/components/Select/ui/Inner/Inner.js +50 -9
  71. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +20 -22
  72. package/emotion/es/components/Combobox/ComboboxNew/Combobox.styles.js +16 -16
  73. package/emotion/es/components/Combobox/ComboboxNew/Combobox.tokens.js +1 -1
  74. package/emotion/es/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +3 -7
  75. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +11 -6
  76. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +10 -0
  77. package/emotion/es/components/Drawer/hooks/useDrawer.js +11 -0
  78. package/emotion/es/components/Dropdown/Dropdown.js +6 -10
  79. package/emotion/es/components/Dropdown/Dropdown.styles.js +5 -8
  80. package/emotion/es/components/Dropdown/FloatingPopover.js +22 -48
  81. package/emotion/es/components/Dropdown/hooks/useKeyboardNavigation.js +3 -7
  82. package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +9 -8
  83. package/emotion/es/components/Select/Select.js +4 -2
  84. package/emotion/es/components/Select/Select.styles.js +8 -8
  85. package/emotion/es/components/Select/hooks/useKeyboardNavigation.js +3 -7
  86. package/emotion/es/components/Select/ui/Inner/Inner.js +11 -6
  87. package/es/components/Combobox/ComboboxNew/Combobox.css +6 -6
  88. package/es/components/Combobox/ComboboxNew/Combobox.js +22 -23
  89. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  90. package/es/components/Combobox/ComboboxNew/Combobox.styles.js +3 -4
  91. package/es/components/Combobox/ComboboxNew/Combobox.styles.js.map +1 -1
  92. package/es/components/Combobox/ComboboxNew/{Combobox.styles_isfa46.css → Combobox.styles_261unw.css} +1 -1
  93. package/es/components/Combobox/ComboboxNew/Combobox.tokens.js +1 -1
  94. package/es/components/Combobox/ComboboxNew/Combobox.tokens.js.map +1 -1
  95. package/es/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +3 -7
  96. package/es/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js.map +1 -1
  97. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.css +6 -6
  98. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +12 -6
  99. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  100. package/es/components/Combobox/ComboboxOld/Combobox.css +2 -2
  101. package/es/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.css +2 -2
  102. package/es/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.css +2 -2
  103. package/es/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.css +2 -2
  104. package/es/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.css +2 -2
  105. package/es/components/DatePicker/RangeDate/RangeDate.js +10 -0
  106. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  107. package/es/components/Drawer/hooks/useDrawer.js +12 -0
  108. package/es/components/Drawer/hooks/useDrawer.js.map +1 -1
  109. package/es/components/Dropdown/Dropdown.css +2 -2
  110. package/es/components/Dropdown/Dropdown.js +6 -10
  111. package/es/components/Dropdown/Dropdown.js.map +1 -1
  112. package/es/components/Dropdown/Dropdown.styles.js +2 -9
  113. package/es/components/Dropdown/Dropdown.styles.js.map +1 -1
  114. package/{cjs/components/Dropdown/Dropdown.styles_zheit5.css → es/components/Dropdown/Dropdown.styles_kkvnr1.css} +1 -1
  115. package/es/components/Dropdown/FloatingPopover.js +22 -42
  116. package/es/components/Dropdown/FloatingPopover.js.map +1 -1
  117. package/es/components/Dropdown/hooks/useKeyboardNavigation.js +3 -7
  118. package/es/components/Dropdown/hooks/useKeyboardNavigation.js.map +1 -1
  119. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.css +2 -2
  120. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +10 -10
  121. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  122. package/es/components/Pagination/Pagination.css +2 -2
  123. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +2 -2
  124. package/es/components/Select/Select.css +2 -2
  125. package/es/components/Select/Select.js +4 -3
  126. package/es/components/Select/Select.js.map +1 -1
  127. package/es/components/Select/Select.styles.js +3 -4
  128. package/es/components/Select/Select.styles.js.map +1 -1
  129. package/es/components/Select/{Select.styles_bjoo18.css → Select.styles_dta4dl.css} +1 -1
  130. package/es/components/Select/hooks/useKeyboardNavigation.js +3 -7
  131. package/es/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
  132. package/es/components/Select/ui/Inner/Inner.css +2 -2
  133. package/es/components/Select/ui/Inner/Inner.js +12 -6
  134. package/es/components/Select/ui/Inner/Inner.js.map +1 -1
  135. package/es/components/Table/Table.css +2 -2
  136. package/es/components/Table/ui/Cell/Cell.css +2 -2
  137. package/es/components/Table/ui/EditableCell/EditableCell.css +2 -2
  138. package/es/components/Table/ui/HeadCell/HeadCell.css +2 -2
  139. package/es/components/Table/ui/HeadCell/ui/Filter/Filter.css +2 -2
  140. package/es/index.css +10 -10
  141. package/package.json +5 -5
  142. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +20 -22
  143. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.styles.js +9 -9
  144. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js +1 -1
  145. package/styled-components/cjs/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +3 -7
  146. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +50 -9
  147. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +10 -0
  148. package/styled-components/cjs/components/Drawer/hooks/useDrawer.js +11 -0
  149. package/styled-components/cjs/components/Dropdown/Dropdown.js +6 -10
  150. package/styled-components/cjs/components/Dropdown/Dropdown.styles.js +3 -7
  151. package/styled-components/cjs/components/Dropdown/FloatingPopover.js +21 -47
  152. package/styled-components/cjs/components/Dropdown/hooks/useKeyboardNavigation.js +3 -7
  153. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +48 -11
  154. package/styled-components/cjs/components/Select/Select.js +4 -2
  155. package/styled-components/cjs/components/Select/Select.styles.js +5 -5
  156. package/styled-components/cjs/components/Select/hooks/useKeyboardNavigation.js +3 -7
  157. package/styled-components/cjs/components/Select/ui/Inner/Inner.js +50 -9
  158. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +20 -22
  159. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.styles.js +9 -9
  160. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.tokens.js +1 -1
  161. package/styled-components/es/components/Combobox/ComboboxNew/hooks/useKeyboardNavigation.js +3 -7
  162. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +11 -6
  163. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +10 -0
  164. package/styled-components/es/components/Drawer/hooks/useDrawer.js +11 -0
  165. package/styled-components/es/components/Dropdown/Dropdown.js +6 -10
  166. package/styled-components/es/components/Dropdown/Dropdown.styles.js +3 -7
  167. package/styled-components/es/components/Dropdown/FloatingPopover.js +22 -48
  168. package/styled-components/es/components/Dropdown/hooks/useKeyboardNavigation.js +3 -7
  169. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +9 -8
  170. package/styled-components/es/components/Select/Select.js +4 -2
  171. package/styled-components/es/components/Select/Select.styles.js +5 -5
  172. package/styled-components/es/components/Select/hooks/useKeyboardNavigation.js +3 -7
  173. package/styled-components/es/components/Select/ui/Inner/Inner.js +11 -6
  174. package/styled-components/es/examples/components/Combobox/Combobox.js +0 -7
  175. package/types/components/Autocomplete/Autocomplete.types.d.ts +6 -6
  176. package/types/components/Autocomplete/Autocomplete.types.d.ts.map +1 -1
  177. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  178. package/types/components/Combobox/ComboboxNew/Combobox.styles.d.ts +0 -1
  179. package/types/components/Combobox/ComboboxNew/Combobox.styles.d.ts.map +1 -1
  180. package/types/components/Combobox/ComboboxNew/Combobox.tokens.d.ts +1 -1
  181. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts +6 -6
  182. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts.map +1 -1
  183. package/types/components/Combobox/ComboboxNew/ui/Inner/Inner.d.ts.map +1 -1
  184. package/types/components/Combobox/ComboboxNew/ui/Inner/Inner.type.d.ts +2 -1
  185. package/types/components/Combobox/ComboboxNew/ui/Inner/Inner.type.d.ts.map +1 -1
  186. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.types.d.ts +6 -2
  187. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.types.d.ts.map +1 -1
  188. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  189. package/types/components/Drawer/hooks/useDrawer.d.ts.map +1 -1
  190. package/types/components/Dropdown/Dropdown.d.ts +4 -4
  191. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  192. package/types/components/Dropdown/Dropdown.styles.d.ts +0 -1
  193. package/types/components/Dropdown/Dropdown.styles.d.ts.map +1 -1
  194. package/types/components/Dropdown/Dropdown.types.d.ts +8 -8
  195. package/types/components/Dropdown/Dropdown.types.d.ts.map +1 -1
  196. package/types/components/Dropdown/FloatingPopover.d.ts.map +1 -1
  197. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts.map +1 -1
  198. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts +2 -3
  199. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.type.d.ts.map +1 -1
  200. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts +7 -3
  201. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts.map +1 -1
  202. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts +6 -6
  203. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts.map +1 -1
  204. package/types/components/Select/Select.d.ts.map +1 -1
  205. package/types/components/Select/Select.styles.d.ts +0 -1
  206. package/types/components/Select/Select.styles.d.ts.map +1 -1
  207. package/types/components/Select/Select.types.d.ts +10 -10
  208. package/types/components/Select/Select.types.d.ts.map +1 -1
  209. package/types/components/Select/ui/Inner/Inner.d.ts.map +1 -1
  210. package/types/components/Select/ui/Inner/Inner.type.d.ts +2 -1
  211. package/types/components/Select/ui/Inner/Inner.type.d.ts.map +1 -1
  212. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts +11 -3
  213. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts.map +1 -1
  214. package/types/components/Table/ui/HeadCell/ui/Filter/Filter.styles.d.ts +6 -6
  215. package/types/components/Table/ui/HeadCell/ui/Filter/Filter.styles.d.ts.map +1 -1
  216. package/types/examples/components/Autocomplete/Autocomplete.d.ts +40 -40
  217. package/types/examples/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  218. package/types/examples/components/Combobox/Combobox.d.ts +24 -24
  219. package/types/examples/components/Combobox/Combobox.d.ts.map +1 -1
  220. package/types/examples/components/Dropdown/Dropdown.d.ts +2 -2
  221. package/types/examples/components/Dropdown/Dropdown.d.ts.map +1 -1
  222. package/types/examples/components/Select/Select.d.ts +6 -6
  223. package/types/examples/components/Select/Select.d.ts.map +1 -1
@@ -35,6 +35,7 @@ var FloatingPopover = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
35
35
  },
36
36
  placement: placement === 'auto' ? undefined : placement,
37
37
  open: opened,
38
+ onOpenChange: onToggle,
38
39
  middleware: [placement === 'auto' && react.autoPlacement(), react.offset({
39
40
  mainAxis: isInner ? LIST_PADDING * 2 : offset[1],
40
41
  crossAxis: isInner ? -LIST_PADDING : offset[0]
@@ -43,40 +44,23 @@ var FloatingPopover = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
43
44
  }), react.shift()]
44
45
  }),
45
46
  refs = _useFloating.refs,
46
- floatingStyles = _useFloating.floatingStyles;
47
+ floatingStyles = _useFloating.floatingStyles,
48
+ context = _useFloating.context;
47
49
  var wrappedId = react$1.safeUseId();
48
- var handleTargetClick = function handleTargetClick(event) {
49
- if (trigger === 'hover') {
50
- return;
51
- }
52
- if (onToggle) {
53
- onToggle(!opened, event);
54
- }
55
- };
56
- var handleTargetMouseEnter = function handleTargetMouseEnter(event) {
57
- if (trigger === 'click' || opened) {
58
- return;
59
- }
60
- onToggle(true, event);
61
- };
62
- var handleTargetMouseLeave = function handleTargetMouseLeave(event) {
63
- if (event.relatedTarget instanceof HTMLElement && refs.floating.current instanceof HTMLElement) {
64
- var _refs$floating$curren;
65
- if (trigger === 'click' || !opened || event.relatedTarget && refs.floating && (_refs$floating$curren = refs.floating.current) !== null && _refs$floating$curren !== void 0 && _refs$floating$curren.contains(event.relatedTarget)) {
66
- return;
67
- }
68
- onToggle(false, event);
69
- }
70
- };
71
- var handleFloatingMouseLeave = function handleFloatingMouseLeave(event) {
72
- if (event.relatedTarget instanceof HTMLElement && refs.reference.current instanceof HTMLElement) {
73
- var _refs$reference$curre;
74
- if (trigger === 'click' || !opened || event.relatedTarget && refs.reference && (_refs$reference$curre = refs.reference.current) !== null && _refs$reference$curre !== void 0 && _refs$reference$curre.contains(event.relatedTarget)) {
75
- return;
76
- }
77
- onToggle(false, event);
78
- }
79
- };
50
+ var hover = react.useHover(context, {
51
+ enabled: trigger === 'hover',
52
+ delay: {
53
+ open: 0,
54
+ close: 50
55
+ },
56
+ handleClose: react.safePolygon()
57
+ });
58
+ var click = react.useClick(context, {
59
+ stickIfOpen: false,
60
+ ignoreMouse: trigger === 'hover'
61
+ });
62
+ var _useInteractions = react.useInteractions([hover, click]),
63
+ getReferenceProps = _useInteractions.getReferenceProps;
80
64
  return /*#__PURE__*/React__default.default.createElement("div", {
81
65
  ref: ref,
82
66
  id: wrappedId,
@@ -84,14 +68,10 @@ var FloatingPopover = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
84
68
  position: 'relative',
85
69
  display: isInner ? 'block' : 'inline-block'
86
70
  }
87
- }, /*#__PURE__*/React__default.default.createElement("div", {
88
- ref: refs.setReference,
89
- onClick: handleTargetClick,
90
- onMouseEnter: handleTargetMouseEnter,
91
- onMouseLeave: handleTargetMouseLeave
92
- }, target), opened && /*#__PURE__*/React__default.default.createElement(react.FloatingPortal, getFloatingPortalProps(portal, wrappedId), /*#__PURE__*/React__default.default.createElement("div", {
71
+ }, /*#__PURE__*/React__default.default.createElement("div", _rollupPluginBabelHelpers.extends({
72
+ ref: refs.setReference
73
+ }, getReferenceProps()), target), opened && /*#__PURE__*/React__default.default.createElement(react.FloatingPortal, getFloatingPortalProps(portal, wrappedId), /*#__PURE__*/React__default.default.createElement("div", {
93
74
  ref: refs.setFloating,
94
- onMouseLeave: handleFloatingMouseLeave,
95
75
  style: _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, floatingStyles), {}, {
96
76
  zIndex: zIndex || 1000
97
77
  })
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingPopover.js","sources":["../../../src/components/Dropdown/FloatingPopover.tsx"],"sourcesContent":["import {\n flip,\n shift,\n useFloating,\n FloatingPortal,\n offset as offsetMiddleware,\n autoPlacement,\n autoUpdate,\n} from '@floating-ui/react';\nimport React, { forwardRef, MouseEvent } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport { FloatingPopoverProps } from './Dropdown.types';\n\n// TODO: #2003\nconst LIST_PADDING = 2;\n\nconst FloatingPopover = forwardRef<HTMLDivElement, FloatingPopoverProps>(\n ({ target, children, opened, onToggle, placement, portal, offset = [0, 8], isInner, trigger, zIndex }, ref) => {\n const { refs, floatingStyles } = useFloating({\n whileElementsMounted(referenceEl, floatingEl, update) {\n return autoUpdate(referenceEl, floatingEl, update, {\n ancestorScroll: false,\n ancestorResize: false,\n layoutShift: false,\n });\n },\n placement: placement === 'auto' ? undefined : placement,\n open: opened,\n middleware: [\n placement === 'auto' && autoPlacement(),\n offsetMiddleware({\n mainAxis: isInner ? LIST_PADDING * 2 : offset[1],\n crossAxis: isInner ? -LIST_PADDING : offset[0],\n }),\n flip({ fallbackAxisSideDirection: 'end' }),\n shift(),\n ],\n });\n const wrappedId = safeUseId();\n\n const handleTargetClick = (event: MouseEvent<HTMLDivElement>) => {\n if (trigger === 'hover') {\n return;\n }\n\n if (onToggle) {\n onToggle(!opened, event);\n }\n };\n\n const handleTargetMouseEnter = (event: MouseEvent<HTMLDivElement>) => {\n if (trigger === 'click' || opened) {\n return;\n }\n\n onToggle(true, event);\n };\n\n const handleTargetMouseLeave = (event: MouseEvent<HTMLDivElement>) => {\n if (event.relatedTarget instanceof HTMLElement && refs.floating.current instanceof HTMLElement) {\n if (\n trigger === 'click' ||\n !opened ||\n (event.relatedTarget && refs.floating && refs.floating.current?.contains(event.relatedTarget))\n ) {\n return;\n }\n\n onToggle(false, event);\n }\n };\n\n const handleFloatingMouseLeave = (event: MouseEvent) => {\n if (event.relatedTarget instanceof HTMLElement && refs.reference.current instanceof HTMLElement) {\n if (\n trigger === 'click' ||\n !opened ||\n (event.relatedTarget && refs.reference && refs.reference.current?.contains(event.relatedTarget))\n ) {\n return;\n }\n\n onToggle(false, event);\n }\n };\n\n return (\n <div\n ref={ref}\n id={wrappedId}\n style={{\n position: 'relative',\n display: isInner ? 'block' : 'inline-block',\n }}\n >\n <div\n ref={refs.setReference}\n onClick={handleTargetClick}\n onMouseEnter={handleTargetMouseEnter}\n onMouseLeave={handleTargetMouseLeave}\n >\n {target}\n </div>\n\n {opened && (\n <FloatingPortal {...getFloatingPortalProps(portal, wrappedId)}>\n <div\n ref={refs.setFloating}\n onMouseLeave={handleFloatingMouseLeave}\n style={{\n ...floatingStyles,\n zIndex: zIndex || 1000,\n }}\n >\n {children}\n </div>\n </FloatingPortal>\n )}\n </div>\n );\n },\n);\n\ntype FloatingPortalReturnedProps = {\n root?: React.RefObject<HTMLElement>;\n id?: string;\n};\n\n// root - принимает ref контейнера портала.\n// id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\nconst getFloatingPortalProps = (\n portal: FloatingPopoverProps['portal'],\n wrappedId: string,\n): FloatingPortalReturnedProps => {\n if (!portal) {\n return { id: wrappedId };\n }\n\n if (typeof portal === 'string') {\n return { id: portal };\n }\n\n return { root: portal };\n};\n\nexport { FloatingPopover };\n"],"names":["LIST_PADDING","FloatingPopover","forwardRef","_ref","ref","target","children","opened","onToggle","placement","portal","_ref$offset","offset","isInner","trigger","zIndex","_useFloating","useFloating","whileElementsMounted","referenceEl","floatingEl","update","autoUpdate","ancestorScroll","ancestorResize","layoutShift","undefined","open","middleware","autoPlacement","offsetMiddleware","mainAxis","crossAxis","flip","fallbackAxisSideDirection","shift","refs","floatingStyles","wrappedId","safeUseId","handleTargetClick","event","handleTargetMouseEnter","handleTargetMouseLeave","relatedTarget","HTMLElement","floating","current","_refs$floating$curren","contains","handleFloatingMouseLeave","reference","_refs$reference$curre","React","createElement","id","style","position","display","setReference","onClick","onMouseEnter","onMouseLeave","FloatingPortal","getFloatingPortalProps","setFloating","_objectSpread","root"],"mappings":"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"}
1
+ {"version":3,"file":"FloatingPopover.js","sources":["../../../src/components/Dropdown/FloatingPopover.tsx"],"sourcesContent":["import {\n flip,\n shift,\n useFloating,\n FloatingPortal,\n offset as offsetMiddleware,\n autoPlacement,\n autoUpdate,\n useHover,\n useInteractions,\n safePolygon,\n useClick,\n} from '@floating-ui/react';\nimport React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport { FloatingPopoverProps } from './Dropdown.types';\n\n// TODO: #2003\nconst LIST_PADDING = 2;\n\nconst FloatingPopover = forwardRef<HTMLDivElement, FloatingPopoverProps>(\n ({ target, children, opened, onToggle, placement, portal, offset = [0, 8], isInner, trigger, zIndex }, ref) => {\n const { refs, floatingStyles, context } = useFloating({\n whileElementsMounted(referenceEl, floatingEl, update) {\n return autoUpdate(referenceEl, floatingEl, update, {\n ancestorScroll: false,\n ancestorResize: false,\n layoutShift: false,\n });\n },\n placement: placement === 'auto' ? undefined : placement,\n open: opened,\n onOpenChange: onToggle,\n middleware: [\n placement === 'auto' && autoPlacement(),\n offsetMiddleware({\n mainAxis: isInner ? LIST_PADDING * 2 : offset[1],\n crossAxis: isInner ? -LIST_PADDING : offset[0],\n }),\n flip({ fallbackAxisSideDirection: 'end' }),\n shift(),\n ],\n });\n const wrappedId = safeUseId();\n\n const hover = useHover(context, {\n enabled: trigger === 'hover',\n delay: {\n open: 0,\n close: 50,\n },\n handleClose: safePolygon(),\n });\n const click = useClick(context, {\n stickIfOpen: false,\n ignoreMouse: trigger === 'hover',\n });\n\n const { getReferenceProps } = useInteractions([hover, click]);\n\n return (\n <div\n ref={ref}\n id={wrappedId}\n style={{\n position: 'relative',\n display: isInner ? 'block' : 'inline-block',\n }}\n >\n <div ref={refs.setReference} {...getReferenceProps()}>\n {target}\n </div>\n\n {opened && (\n <FloatingPortal {...getFloatingPortalProps(portal, wrappedId)}>\n <div\n ref={refs.setFloating}\n style={{\n ...floatingStyles,\n zIndex: zIndex || 1000,\n }}\n >\n {children}\n </div>\n </FloatingPortal>\n )}\n </div>\n );\n },\n);\n\ntype FloatingPortalReturnedProps = {\n root?: React.RefObject<HTMLElement>;\n id?: string;\n};\n\n// root - принимает ref контейнера портала.\n// id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\nconst getFloatingPortalProps = (\n portal: FloatingPopoverProps['portal'],\n wrappedId: string,\n): FloatingPortalReturnedProps => {\n if (!portal) {\n return { id: wrappedId };\n }\n\n if (typeof portal === 'string') {\n return { id: portal };\n }\n\n return { root: portal };\n};\n\nexport { FloatingPopover };\n"],"names":["LIST_PADDING","FloatingPopover","forwardRef","_ref","ref","target","children","opened","onToggle","placement","portal","_ref$offset","offset","isInner","trigger","zIndex","_useFloating","useFloating","whileElementsMounted","referenceEl","floatingEl","update","autoUpdate","ancestorScroll","ancestorResize","layoutShift","undefined","open","onOpenChange","middleware","autoPlacement","offsetMiddleware","mainAxis","crossAxis","flip","fallbackAxisSideDirection","shift","refs","floatingStyles","context","wrappedId","safeUseId","hover","useHover","enabled","delay","close","handleClose","safePolygon","click","useClick","stickIfOpen","ignoreMouse","_useInteractions","useInteractions","getReferenceProps","React","createElement","id","style","position","display","_extends","setReference","FloatingPortal","getFloatingPortalProps","setFloating","_objectSpread","root"],"mappings":"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"}
@@ -175,13 +175,9 @@ var useKeyNavigation = function useKeyNavigation(_ref) {
175
175
  case keys.Tab:
176
176
  case keys.Escape:
177
177
  {
178
- dispatchFocusedPath({
179
- type: 'reset'
180
- });
181
- dispatchPath({
182
- type: 'reset'
183
- });
184
- handleGlobalToggle(false, event);
178
+ if (path[0]) {
179
+ handleGlobalToggle(false, event);
180
+ }
185
181
  break;
186
182
  }
187
183
  case keys.Home:
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboardNavigation.js","sources":["../../../../src/components/Dropdown/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import { KeyboardEvent } from 'react';\nimport type { Dispatch } from 'react';\n\nimport { PathAction, PathState } from '../reducers/pathReducer';\nimport { FocusedPathAction, FocusedPathState } from '../reducers/focusedPathReducer';\nimport { HandleGlobalToggleType, DropdownProps } from '../Dropdown.types';\n\nimport { PathMapType, FocusedToValueMapType } from './useHashMaps';\n\nconst JUMP_SIZE = 10;\n\nexport const keys = {\n Enter: 'Enter',\n Space: 'Space',\n Tab: 'Tab',\n Escape: 'Escape',\n ArrowLeft: 'ArrowLeft',\n ArrowRight: 'ArrowRight',\n ArrowUp: 'ArrowUp',\n ArrowDown: 'ArrowDown',\n Home: 'Home',\n End: 'End',\n PageUp: 'PageUp',\n PageDown: 'PageDown',\n};\n\nconst getFurtherPath = (focusedPath: FocusedPathState, focusedToValueMap: FocusedToValueMapType) => {\n const focusedPathAsString = focusedPath.reduce((acc, n) => `${acc}/${n}`, '').replace(/^(\\/)/, '');\n\n return focusedToValueMap.get(focusedPathAsString);\n};\n\ninterface Props {\n focusedPath: FocusedPathState;\n dispatchFocusedPath: Dispatch<FocusedPathAction>;\n path: PathState;\n dispatchPath: Dispatch<PathAction>;\n pathMap: PathMapType;\n focusedToValueMap: FocusedToValueMapType;\n handleGlobalToggle: HandleGlobalToggleType;\n closeOnSelect: DropdownProps['closeOnSelect'];\n onItemSelect: DropdownProps['onItemSelect'];\n onItemClick: DropdownProps['onItemClick'];\n}\n\ninterface ReturnedProps {\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;\n}\n\nexport const useKeyNavigation = ({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleGlobalToggle,\n closeOnSelect,\n onItemSelect,\n onItemClick,\n}: Props): ReturnedProps => {\n const currentIndex: number = focusedPath?.[focusedPath.length - 1] || 0;\n const currentLength: number = pathMap.get(path?.[focusedPath.length - 1]) || 0;\n\n const onKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n switch (event.code) {\n case keys.ArrowUp: {\n if (focusedPath.length) {\n if (currentIndex > 0) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex - 1 });\n }\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n handleGlobalToggle(true, event);\n }\n\n break;\n }\n\n case keys.ArrowDown: {\n if (focusedPath.length) {\n if (currentIndex + 1 < currentLength) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex + 1 });\n }\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n handleGlobalToggle(true, event);\n }\n\n break;\n }\n\n case keys.ArrowLeft: {\n if (focusedPath.length) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n } else {\n dispatchFocusedPath({ type: 'return_prev_focus' });\n }\n }\n\n if (path.length === 1) {\n handleGlobalToggle(false, event);\n }\n\n break;\n }\n\n case keys.ArrowRight: {\n if (!focusedPath.length) {\n break;\n }\n\n const currentItem = getFurtherPath(focusedPath, focusedToValueMap);\n\n if (currentItem?.disabled || currentItem?.isDisabled) {\n break;\n }\n\n if (currentItem?.items) {\n if (path.length > focusedPath.length) {\n dispatchFocusedPath({ type: 'add_focus', value: 0 });\n } else {\n dispatchPath({ type: 'added_next_level', value: currentItem.value.toString() });\n }\n }\n\n break;\n }\n\n case keys.Enter:\n case keys.Space: {\n event.preventDefault();\n\n if (!path[0]) {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n break;\n }\n\n const currentItem = getFurtherPath(focusedPath, focusedToValueMap);\n\n if (currentItem?.disabled || currentItem?.isDisabled) {\n break;\n }\n\n if (currentItem?.items) {\n if (path.length > focusedPath.length) {\n dispatchFocusedPath({ type: 'add_focus', value: 0 });\n } else {\n dispatchPath({ type: 'added_next_level', value: currentItem.value.toString() });\n }\n } else {\n if (closeOnSelect) {\n handleGlobalToggle(false, event);\n }\n\n if (onItemSelect && currentItem) {\n onItemSelect(currentItem, event);\n }\n\n if (onItemClick && currentItem) {\n onItemClick(currentItem, event);\n }\n }\n\n break;\n }\n\n case keys.Tab:\n case keys.Escape: {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n handleGlobalToggle(false, event);\n\n break;\n }\n\n case keys.Home: {\n if (path[0]) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: 0 });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n\n handleGlobalToggle(true, event);\n }\n\n break;\n }\n\n case keys.End: {\n if (path[0]) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: currentLength - 1 });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'change_last_focus', value: (pathMap.get('root') || 0) - 1 });\n\n handleGlobalToggle(true, event);\n }\n\n break;\n }\n\n case keys.PageUp: {\n if (!path[0]) {\n break;\n }\n\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n if (currentIndex <= JUMP_SIZE) {\n dispatchFocusedPath({ type: 'change_last_focus', value: 0 });\n } else {\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex - JUMP_SIZE });\n }\n\n break;\n }\n\n case keys.PageDown: {\n if (!path[0]) {\n break;\n }\n\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n if (currentLength - currentIndex <= JUMP_SIZE) {\n dispatchFocusedPath({ type: 'change_last_focus', value: currentLength - 1 });\n } else {\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex + JUMP_SIZE });\n }\n\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n return { onKeyDown };\n};\n"],"names":["JUMP_SIZE","keys","Enter","Space","Tab","Escape","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown","getFurtherPath","focusedPath","focusedToValueMap","focusedPathAsString","reduce","acc","n","concat","replace","get","useKeyNavigation","_ref","dispatchFocusedPath","path","dispatchPath","pathMap","handleGlobalToggle","closeOnSelect","onItemSelect","onItemClick","currentIndex","length","currentLength","onKeyDown","event","code","type","value","currentItem","disabled","isDisabled","items","toString","preventDefault"],"mappings":"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"}
1
+ {"version":3,"file":"useKeyboardNavigation.js","sources":["../../../../src/components/Dropdown/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import { KeyboardEvent } from 'react';\nimport type { Dispatch } from 'react';\n\nimport { PathAction, PathState } from '../reducers/pathReducer';\nimport { FocusedPathAction, FocusedPathState } from '../reducers/focusedPathReducer';\nimport { HandleGlobalToggleType, DropdownProps } from '../Dropdown.types';\n\nimport { PathMapType, FocusedToValueMapType } from './useHashMaps';\n\nconst JUMP_SIZE = 10;\n\nexport const keys = {\n Enter: 'Enter',\n Space: 'Space',\n Tab: 'Tab',\n Escape: 'Escape',\n ArrowLeft: 'ArrowLeft',\n ArrowRight: 'ArrowRight',\n ArrowUp: 'ArrowUp',\n ArrowDown: 'ArrowDown',\n Home: 'Home',\n End: 'End',\n PageUp: 'PageUp',\n PageDown: 'PageDown',\n};\n\nconst getFurtherPath = (focusedPath: FocusedPathState, focusedToValueMap: FocusedToValueMapType) => {\n const focusedPathAsString = focusedPath.reduce((acc, n) => `${acc}/${n}`, '').replace(/^(\\/)/, '');\n\n return focusedToValueMap.get(focusedPathAsString);\n};\n\ninterface Props {\n focusedPath: FocusedPathState;\n dispatchFocusedPath: Dispatch<FocusedPathAction>;\n path: PathState;\n dispatchPath: Dispatch<PathAction>;\n pathMap: PathMapType;\n focusedToValueMap: FocusedToValueMapType;\n handleGlobalToggle: HandleGlobalToggleType;\n closeOnSelect: DropdownProps['closeOnSelect'];\n onItemSelect: DropdownProps['onItemSelect'];\n onItemClick: DropdownProps['onItemClick'];\n}\n\ninterface ReturnedProps {\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;\n}\n\nexport const useKeyNavigation = ({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleGlobalToggle,\n closeOnSelect,\n onItemSelect,\n onItemClick,\n}: Props): ReturnedProps => {\n const currentIndex: number = focusedPath?.[focusedPath.length - 1] || 0;\n const currentLength: number = pathMap.get(path?.[focusedPath.length - 1]) || 0;\n\n const onKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n switch (event.code) {\n case keys.ArrowUp: {\n if (focusedPath.length) {\n if (currentIndex > 0) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex - 1 });\n }\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n handleGlobalToggle(true, event);\n }\n\n break;\n }\n\n case keys.ArrowDown: {\n if (focusedPath.length) {\n if (currentIndex + 1 < currentLength) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex + 1 });\n }\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n handleGlobalToggle(true, event);\n }\n\n break;\n }\n\n case keys.ArrowLeft: {\n if (focusedPath.length) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n } else {\n dispatchFocusedPath({ type: 'return_prev_focus' });\n }\n }\n\n if (path.length === 1) {\n handleGlobalToggle(false, event);\n }\n\n break;\n }\n\n case keys.ArrowRight: {\n if (!focusedPath.length) {\n break;\n }\n\n const currentItem = getFurtherPath(focusedPath, focusedToValueMap);\n\n if (currentItem?.disabled || currentItem?.isDisabled) {\n break;\n }\n\n if (currentItem?.items) {\n if (path.length > focusedPath.length) {\n dispatchFocusedPath({ type: 'add_focus', value: 0 });\n } else {\n dispatchPath({ type: 'added_next_level', value: currentItem.value.toString() });\n }\n }\n\n break;\n }\n\n case keys.Enter:\n case keys.Space: {\n event.preventDefault();\n\n if (!path[0]) {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n break;\n }\n\n const currentItem = getFurtherPath(focusedPath, focusedToValueMap);\n\n if (currentItem?.disabled || currentItem?.isDisabled) {\n break;\n }\n\n if (currentItem?.items) {\n if (path.length > focusedPath.length) {\n dispatchFocusedPath({ type: 'add_focus', value: 0 });\n } else {\n dispatchPath({ type: 'added_next_level', value: currentItem.value.toString() });\n }\n } else {\n if (closeOnSelect) {\n handleGlobalToggle(false, event);\n }\n\n if (onItemSelect && currentItem) {\n onItemSelect(currentItem, event);\n }\n\n if (onItemClick && currentItem) {\n onItemClick(currentItem, event);\n }\n }\n\n break;\n }\n\n case keys.Tab:\n case keys.Escape: {\n if (path[0]) {\n handleGlobalToggle(false, event);\n }\n\n break;\n }\n\n case keys.Home: {\n if (path[0]) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: 0 });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'set_initial_focus' });\n\n handleGlobalToggle(true, event);\n }\n\n break;\n }\n\n case keys.End: {\n if (path[0]) {\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n dispatchFocusedPath({ type: 'change_last_focus', value: currentLength - 1 });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'change_last_focus', value: (pathMap.get('root') || 0) - 1 });\n\n handleGlobalToggle(true, event);\n }\n\n break;\n }\n\n case keys.PageUp: {\n if (!path[0]) {\n break;\n }\n\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n if (currentIndex <= JUMP_SIZE) {\n dispatchFocusedPath({ type: 'change_last_focus', value: 0 });\n } else {\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex - JUMP_SIZE });\n }\n\n break;\n }\n\n case keys.PageDown: {\n if (!path[0]) {\n break;\n }\n\n if (path.length > focusedPath.length) {\n dispatchPath({ type: 'removed_last_level' });\n }\n\n if (currentLength - currentIndex <= JUMP_SIZE) {\n dispatchFocusedPath({ type: 'change_last_focus', value: currentLength - 1 });\n } else {\n dispatchFocusedPath({ type: 'change_last_focus', value: currentIndex + JUMP_SIZE });\n }\n\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n return { onKeyDown };\n};\n"],"names":["JUMP_SIZE","keys","Enter","Space","Tab","Escape","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown","getFurtherPath","focusedPath","focusedToValueMap","focusedPathAsString","reduce","acc","n","concat","replace","get","useKeyNavigation","_ref","dispatchFocusedPath","path","dispatchPath","pathMap","handleGlobalToggle","closeOnSelect","onItemSelect","onItemClick","currentIndex","length","currentLength","onKeyDown","event","code","type","value","currentItem","disabled","isDisabled","items","toString","preventDefault"],"mappings":"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"}
@@ -24,6 +24,6 @@
24
24
  .DropdownItem_styles_1algi32_w1jav4ek__367ba473{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--w1jav4ek-0);min-height:var(--plasma-dropdown-item-height);margin:var(--plasma-dropdown-item-margin,0);box-sizing:content-box;padding:var(--w1jav4ek-1);font-family:var(--plasma-dropdown-item-font-family);font-size:var(--plasma-dropdown-item-font-size);font-style:var(--plasma-dropdown-item-font-style);font-weight:var(--plasma-dropdown-item-letter-spacing);-webkit-letter-spacing:var(--plasma-dropdown-item-line-height);-moz-letter-spacing:var(--plasma-dropdown-item-line-height);-ms-letter-spacing:var(--plasma-dropdown-item-line-height);letter-spacing:var(--plasma-dropdown-item-line-height);line-height:var(--plasma-dropdown-item-font-weight);background-color:var(--surface-clear);border-radius:var( --plasma-dropdown-item-border-radius, calc(var(--plasma-dropdown-border-radius) - 0.125rem - var(--plasma-dropdown-border-width,0rem)) );-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-clip:padding-box;position:relative;}.DropdownItem_styles_1algi32_w1jav4ek__367ba473:hover:not(.DropdownItem_styles_1algi32_dropdownItemIsDisabled__367ba473){cursor:pointer;background-color:var(--plasma-dropdown-item-background-hover);}.DropdownItem_styles_1algi32_w1jav4ek__367ba473.DropdownItem_styles_1algi32_dropdownItemIsActive__367ba473{background-color:var(--plasma-dropdown-item-background-hover);}.DropdownItem_styles_1algi32_w1jav4ek__367ba473.DropdownItem_styles_1algi32_dropdownItemIsDisabled__367ba473{opacity:0.4;cursor:not-allowed;}.DropdownItem_styles_1algi32_w1jav4ek__367ba473:focus{outline:none;}.DropdownItem_styles_1algi32_w1jav4ek__367ba473::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;display:block;box-sizing:content-box;border:0 solid transparent;border-radius:calc(var(--plasma-dropdown-border-radius) - 0.125rem - var(--plasma-dropdown-border-width,0rem));-webkit-transition:none;transition:none;pointer-events:none;}.DropdownItem_styles_1algi32_w1jav4ek__367ba473.DropdownItem_styles_1algi32_dropdownItemIsFocused__367ba473:before{outline:none;box-shadow:inset 0 0 0 0.0625rem var(--surface-accent);}
25
25
  .DropdownItem_styles_1algi32_r1fqtjio__367ba473{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-flex:1;-ms-flex:1;flex:1;}
26
26
 
27
- .Dropdown_styles_zheit5_ln7uamp__21de70ca{width:var(--ln7uamp-0);padding:calc(var(--plasma-dropdown-padding) + var(--plasma-dropdown-border-width,0rem));border-radius:var(--plasma-dropdown-border-radius);box-sizing:border-box;background:var(--surface-solid-card-brightness);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-dropdown-border-width,0) var(--plasma-dropdown-border-color,transparent);}
28
- .Dropdown_styles_zheit5_ujr7fmv__21de70ca{max-height:var(--ujr7fmv-0);overflow-y:var(--ujr7fmv-1);border-radius:calc(var(--plasma-dropdown-border-radius) - 0.125rem - var(--plasma-dropdown-border-width,0rem));margin:0;padding:0;}
27
+ .Dropdown_styles_kkvnr1_ln7uamp__173ef985{width:var(--ln7uamp-0);padding:calc(var(--plasma-dropdown-padding) + var(--plasma-dropdown-border-width,0rem));border-radius:var(--plasma-dropdown-border-radius);box-sizing:border-box;background:var(--surface-solid-card-brightness);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-dropdown-border-width,0) var(--plasma-dropdown-border-color,transparent);}
28
+ .Dropdown_styles_kkvnr1_ujr7fmv__173ef985{max-height:var(--ujr7fmv-0);overflow-x:hidden;overflow-y:auto;border-radius:calc(var(--plasma-dropdown-border-radius) - 0.125rem - var(--plasma-dropdown-border-width,0rem));margin:0;padding:0;}
29
29
 
@@ -20,9 +20,8 @@ var DropdownInner = function DropdownInner(_ref) {
20
20
  dispatchPath = _ref.dispatchPath,
21
21
  index = _ref.index,
22
22
  trigger = _ref.trigger,
23
- listMaxHeight = _ref.listMaxHeight,
24
- listOverflow = _ref.listOverflow,
25
- listWidth = _ref.listWidth;
23
+ listWidth = _ref.listWidth,
24
+ portal = _ref.portal;
26
25
  var handleToggle = function handleToggle(opened) {
27
26
  if (opened) {
28
27
  dispatchPath({
@@ -37,6 +36,7 @@ var DropdownInner = function DropdownInner(_ref) {
37
36
  });
38
37
  }
39
38
  };
39
+ var listWrapperRef = React.useRef(null);
40
40
  var isCurrentListOpen = path[currentLevel + 1] === item.value.toString();
41
41
  var treeId = react.safeUseId();
42
42
  var listId = "".concat(treeId, "_tree_level_").concat(currentLevel + 2);
@@ -57,14 +57,15 @@ var DropdownInner = function DropdownInner(_ref) {
57
57
  ariaLevel: nextLevel,
58
58
  ariaLabel: item.label
59
59
  }),
60
- isInner: true
60
+ isInner: true,
61
+ portal: portal
61
62
  }, /*#__PURE__*/React__default.default.createElement(Dropdown_styles.ListWrapper, {
63
+ ref: listWrapperRef,
62
64
  listWidth: listWidth
63
65
  }, /*#__PURE__*/React__default.default.createElement(Dropdown_styles.Ul, {
64
66
  id: listId,
65
67
  role: "group",
66
- listMaxHeight: listMaxHeight,
67
- listOverflow: listOverflow
68
+ listMaxHeight: item.listMaxHeight
68
69
  }, item.items.map(function (innerItem, innerIndex) {
69
70
  return /*#__PURE__*/React__default.default.createElement(DropdownInner, {
70
71
  key: "".concat(innerIndex, "/").concat(currentLevel),
@@ -74,9 +75,8 @@ var DropdownInner = function DropdownInner(_ref) {
74
75
  dispatchPath: dispatchPath,
75
76
  index: innerIndex,
76
77
  trigger: trigger,
77
- listMaxHeight: listMaxHeight,
78
- listOverflow: listOverflow,
79
- listWidth: listWidth
78
+ listWidth: listWidth,
79
+ portal: listWrapperRef
80
80
  });
81
81
  }))));
82
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownInner.js","sources":["../../../../../src/components/Dropdown/ui/DropdownInner/DropdownInner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport { DropdownItem } from '../DropdownItem/DropdownItem';\nimport { Ul, ListWrapper } from '../../Dropdown.styles';\nimport { FloatingPopover } from '../../FloatingPopover';\nimport { getPlacement } from '../../utils';\n\nimport { DropdownInnerProps } from './DropdownInner.type';\n\nconst DropdownInner: FC<DropdownInnerProps> = ({\n item,\n currentLevel,\n path,\n dispatchPath,\n index,\n trigger,\n listMaxHeight,\n listOverflow,\n listWidth,\n}) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const treeId = safeUseId();\n const listId = `${treeId}_tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (item?.items) {\n return (\n <FloatingPopover\n placement={getPlacement(item?.placement || 'right')}\n opened={isCurrentListOpen}\n onToggle={handleToggle}\n trigger={item.trigger || trigger}\n target={\n <DropdownItem\n item={item}\n index={index}\n path={path}\n currentLevel={currentLevel}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n isInner\n >\n <ListWrapper listWidth={listWidth}>\n <Ul id={listId} role=\"group\" listMaxHeight={listMaxHeight} listOverflow={listOverflow}>\n {item.items.map((innerItem, innerIndex) => (\n <DropdownInner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n trigger={trigger}\n listMaxHeight={listMaxHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </ListWrapper>\n </FloatingPopover>\n );\n }\n\n return <DropdownItem item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n\nexport { DropdownInner };\n"],"names":["DropdownInner","_ref","item","currentLevel","path","dispatchPath","index","trigger","listMaxHeight","listOverflow","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","treeId","safeUseId","listId","concat","nextLevel","items","React","createElement","FloatingPopover","placement","getPlacement","onToggle","target","DropdownItem","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","isInner","ListWrapper","Ul","id","role","map","innerItem","innerIndex","key"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownInner.js","sources":["../../../../../src/components/Dropdown/ui/DropdownInner/DropdownInner.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport type { FC } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport { DropdownItem } from '../DropdownItem/DropdownItem';\nimport { Ul, ListWrapper } from '../../Dropdown.styles';\nimport { FloatingPopover } from '../../FloatingPopover';\nimport { getPlacement } from '../../utils';\n\nimport { DropdownInnerProps } from './DropdownInner.type';\n\nconst DropdownInner: FC<DropdownInnerProps> = ({\n item,\n currentLevel,\n path,\n dispatchPath,\n index,\n trigger,\n listWidth,\n portal,\n}) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const listWrapperRef = useRef<HTMLDivElement>(null);\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const treeId = safeUseId();\n const listId = `${treeId}_tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (item?.items) {\n return (\n <FloatingPopover\n placement={getPlacement(item?.placement || 'right')}\n opened={isCurrentListOpen}\n onToggle={handleToggle}\n trigger={item.trigger || trigger}\n target={\n <DropdownItem\n item={item}\n index={index}\n path={path}\n currentLevel={currentLevel}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n isInner\n portal={portal}\n >\n <ListWrapper ref={listWrapperRef} listWidth={listWidth}>\n <Ul id={listId} role=\"group\" listMaxHeight={item.listMaxHeight}>\n {item.items.map((innerItem, innerIndex) => (\n <DropdownInner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n trigger={trigger}\n listWidth={listWidth}\n portal={listWrapperRef}\n />\n ))}\n </Ul>\n </ListWrapper>\n </FloatingPopover>\n );\n }\n\n return <DropdownItem item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n\nexport { DropdownInner };\n"],"names":["DropdownInner","_ref","item","currentLevel","path","dispatchPath","index","trigger","listWidth","portal","handleToggle","opened","type","value","toString","level","listWrapperRef","useRef","isCurrentListOpen","treeId","safeUseId","listId","concat","nextLevel","items","React","createElement","FloatingPopover","placement","getPlacement","onToggle","target","DropdownItem","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","isInner","ListWrapper","ref","Ul","id","role","listMaxHeight","map","innerItem","innerIndex","key"],"mappings":"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"}
@@ -195,8 +195,8 @@
195
195
  .SelectAll_styles_ql2mqj_d19w91z6__b71a8639{background:var(--surface-solid-card);}
196
196
  .SelectAll_styles_ql2mqj_d1nbef5q__b71a8639{height:0.0625rem;margin-top:var(--d1nbef5q-0);margin-right:var(--plasma-select-divider-margin-right);margin-left:var(--plasma-select-divider-margin-left);background:var(--plasma-select-divider-color);}
197
197
 
198
- .Select_styles_bjoo18_lpxbau6__2367a782{width:var(--lpxbau6-0);padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
199
- .Select_styles_bjoo18_u1yey2x3__2367a782{max-height:var(--u1yey2x3-0);overflow-y:var(--u1yey2x3-1);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));margin:0;padding:0;}
198
+ .Select_styles_dta4dl_lpxbau6__559b5dde{width:var(--lpxbau6-0);padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
199
+ .Select_styles_dta4dl_u1yey2x3__559b5dde{max-height:var(--u1yey2x3-0);overflow-x:hidden;overflow-y:var(--u1yey2x3-1);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));margin:0;padding:0;}
200
200
 
201
201
 
202
202
  .SelectNative_styles_1r538h6_satm3n2__407ae55b{visibility:hidden;width:0;height:0;opacity:0;margin:0;padding:0;border:none;}
@@ -163,8 +163,8 @@
163
163
  .SelectAll_styles_ql2mqj_d19w91z6__b71a8639{background:var(--surface-solid-card);}
164
164
  .SelectAll_styles_ql2mqj_d1nbef5q__b71a8639{height:0.0625rem;margin-top:var(--d1nbef5q-0);margin-right:var(--plasma-select-divider-margin-right);margin-left:var(--plasma-select-divider-margin-left);background:var(--plasma-select-divider-color);}
165
165
 
166
- .Select_styles_bjoo18_lpxbau6__2367a782{width:var(--lpxbau6-0);padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
167
- .Select_styles_bjoo18_u1yey2x3__2367a782{max-height:var(--u1yey2x3-0);overflow-y:var(--u1yey2x3-1);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));margin:0;padding:0;}
166
+ .Select_styles_dta4dl_lpxbau6__559b5dde{width:var(--lpxbau6-0);padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
167
+ .Select_styles_dta4dl_u1yey2x3__559b5dde{max-height:var(--u1yey2x3-0);overflow-x:hidden;overflow-y:var(--u1yey2x3-1);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));margin:0;padding:0;}
168
168
 
169
169
 
170
170
  .SelectNative_styles_1r538h6_satm3n2__407ae55b{visibility:hidden;width:0;height:0;opacity:0;margin:0;padding:0;border:none;}
@@ -163,8 +163,8 @@
163
163
  .SelectAll_styles_ql2mqj_d19w91z6__b71a8639{background:var(--surface-solid-card);}
164
164
  .SelectAll_styles_ql2mqj_d1nbef5q__b71a8639{height:0.0625rem;margin-top:var(--d1nbef5q-0);margin-right:var(--plasma-select-divider-margin-right);margin-left:var(--plasma-select-divider-margin-left);background:var(--plasma-select-divider-color);}
165
165
 
166
- .Select_styles_bjoo18_lpxbau6__2367a782{width:var(--lpxbau6-0);padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
167
- .Select_styles_bjoo18_u1yey2x3__2367a782{max-height:var(--u1yey2x3-0);overflow-y:var(--u1yey2x3-1);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));margin:0;padding:0;}
166
+ .Select_styles_dta4dl_lpxbau6__559b5dde{width:var(--lpxbau6-0);padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
167
+ .Select_styles_dta4dl_u1yey2x3__559b5dde{max-height:var(--u1yey2x3-0);overflow-x:hidden;overflow-y:var(--u1yey2x3-1);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));margin:0;padding:0;}
168
168
 
169
169
 
170
170
  .SelectNative_styles_1r538h6_satm3n2__407ae55b{visibility:hidden;width:0;height:0;opacity:0;margin:0;padding:0;border:none;}
@@ -54,7 +54,6 @@ var selectRoot = function selectRoot(Root) {
54
54
  readOnly = _props$readOnly === void 0 ? false : _props$readOnly,
55
55
  outerView = props.view,
56
56
  size = props.size,
57
- listOverflow = props.listOverflow,
58
57
  listHeight = props.listHeight,
59
58
  listMaxHeight = props.listMaxHeight,
60
59
  listWidth = props.listWidth,
@@ -130,6 +129,7 @@ var selectRoot = function selectRoot(Root) {
130
129
  var activeDescendantItemValue = ((_getItemByFocused = useKeyboardNavigation.getItemByFocused(focusedPath, focusedToValueMap)) === null || _getItemByFocused === void 0 ? void 0 : _getItemByFocused.value.toString()) || '';
131
130
  var closeAfterSelect = outerCloseAfterSelect !== null && outerCloseAfterSelect !== void 0 ? outerCloseAfterSelect : !props.multiselect;
132
131
  var treeId = react.safeUseId();
132
+ var listWrapperRef = React.useRef(null);
133
133
  var view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView.getView(status, outerView);
134
134
 
135
135
  // Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.
@@ -418,12 +418,12 @@ var selectRoot = function selectRoot(Root) {
418
418
  disabled: disabled,
419
419
  readOnly: readOnly
420
420
  }, rest), /*#__PURE__*/React__default.default.createElement(Select_styles.ListWrapper, {
421
+ ref: listWrapperRef,
421
422
  listWidth: listWidth
422
423
  }, /*#__PURE__*/React__default.default.createElement(Select_styles.Ul, {
423
424
  role: "tree",
424
425
  id: "".concat(treeId, "_tree_level_1"),
425
426
  "aria-multiselectable": Boolean(props.multiselect),
426
- listOverflow: listOverflow,
427
427
  listMaxHeight: listMaxHeight || listHeight,
428
428
  onScroll: virtual ? undefined : handleScroll,
429
429
  ref: targetRef,
@@ -446,7 +446,8 @@ var selectRoot = function selectRoot(Root) {
446
446
  path: path,
447
447
  dispatchPath: dispatchPath,
448
448
  index: index,
449
- listWidth: listWidth
449
+ listWidth: listWidth,
450
+ portal: listWrapperRef
450
451
  });
451
452
  }), afterList))))));
452
453
  });