@salutejs/plasma-new-hope 0.327.0-canary.1741.15743877104.0 → 0.327.0-canary.1741.15776056320.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 (356) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.js +3 -3
  2. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  4. package/cjs/components/Autocomplete/FloatingPopover.js.map +1 -1
  5. package/cjs/components/Calendar/CalendarBase/CalendarBase.js +12 -0
  6. package/cjs/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  7. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +12 -0
  8. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
  9. package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
  10. package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
  11. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
  12. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js.map +1 -1
  13. package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
  14. package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js.map +1 -1
  15. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
  16. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js.map +1 -1
  17. package/cjs/components/Checkbox/Checkbox.js +2 -1
  18. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  19. package/cjs/components/Combobox/ComboboxNew/Combobox.js +2 -1
  20. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  21. package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  22. package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
  23. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +2 -2
  24. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  25. package/cjs/components/Combobox/ComboboxOld/Combobox.js +2 -1
  26. package/cjs/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  27. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +3 -3
  28. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  29. package/cjs/components/Drawer/Drawer.js +4 -3
  30. package/cjs/components/Drawer/Drawer.js.map +1 -1
  31. package/cjs/components/Drawer/hooks/useDrawer.js +2 -2
  32. package/cjs/components/Drawer/hooks/useDrawer.js.map +1 -1
  33. package/cjs/components/Dropdown/Dropdown.js +2 -2
  34. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  35. package/cjs/components/Dropdown/FloatingPopover.js +2 -2
  36. package/cjs/components/Dropdown/FloatingPopover.js.map +1 -1
  37. package/cjs/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
  38. package/cjs/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
  39. package/cjs/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
  40. package/cjs/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
  41. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -2
  42. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  43. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -3
  44. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
  45. package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
  46. package/cjs/components/Mask/Mask.js +3 -3
  47. package/cjs/components/Mask/Mask.js.map +1 -1
  48. package/cjs/components/Modal/Modal.js +3 -2
  49. package/cjs/components/Modal/Modal.js.map +1 -1
  50. package/cjs/components/Modal/hooks/useModal.js +1 -1
  51. package/cjs/components/Modal/hooks/useModal.js.map +1 -1
  52. package/cjs/components/Popup/Popup.js +2 -1
  53. package/cjs/components/Popup/Popup.js.map +1 -1
  54. package/cjs/components/Popup/PopupContext.js +13 -13
  55. package/cjs/components/Popup/PopupContext.js.map +1 -1
  56. package/cjs/components/Radiobox/Radiobox.js +3 -2
  57. package/cjs/components/Radiobox/Radiobox.js.map +1 -1
  58. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -3
  59. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  60. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -2
  61. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  62. package/cjs/components/Select/FloatingPopover.js +2 -2
  63. package/cjs/components/Select/FloatingPopover.js.map +1 -1
  64. package/cjs/components/Select/Select.js +2 -2
  65. package/cjs/components/Select/Select.js.map +1 -1
  66. package/cjs/components/Select/ui/Inner/Inner.js +2 -2
  67. package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
  68. package/cjs/components/Spinner/Spinner.js +2 -2
  69. package/cjs/components/Spinner/Spinner.js.map +1 -1
  70. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -3
  71. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  72. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -3
  73. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  74. package/cjs/components/TextArea/ui/Hint/Hint.js.map +1 -1
  75. package/cjs/components/TextField/TextField.js +4 -3
  76. package/cjs/components/TextField/TextField.js.map +1 -1
  77. package/cjs/components/TextField/ui/Hint/Hint.js.map +1 -1
  78. package/emotion/cjs/components/Autocomplete/Autocomplete.js +3 -3
  79. package/emotion/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  80. package/emotion/cjs/components/Calendar/CalendarBase/CalendarBase.js +14 -0
  81. package/emotion/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +14 -0
  82. package/emotion/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
  83. package/emotion/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
  84. package/emotion/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
  85. package/emotion/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
  86. package/emotion/cjs/components/Checkbox/Checkbox.js +3 -2
  87. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +21 -20
  88. package/emotion/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  89. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +4 -4
  90. package/emotion/cjs/components/Combobox/ComboboxOld/Combobox.js +9 -8
  91. package/emotion/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -7
  92. package/emotion/cjs/components/Drawer/Drawer.js +8 -8
  93. package/emotion/cjs/components/Drawer/hooks/useDrawer.js +2 -2
  94. package/emotion/cjs/components/Dropdown/Dropdown.js +8 -8
  95. package/emotion/cjs/components/Dropdown/FloatingPopover.js +2 -2
  96. package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
  97. package/emotion/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -3
  98. package/emotion/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  99. package/emotion/cjs/components/Mask/Mask.js +4 -4
  100. package/emotion/cjs/components/Modal/Modal.js +6 -5
  101. package/emotion/cjs/components/Modal/hooks/useModal.js +1 -1
  102. package/emotion/cjs/components/Popup/Popup.js +1 -1
  103. package/emotion/cjs/components/Popup/PopupContext.js +14 -29
  104. package/emotion/cjs/components/Radiobox/Radiobox.js +2 -2
  105. package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -3
  106. package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
  107. package/emotion/cjs/components/Select/FloatingPopover.js +5 -5
  108. package/emotion/cjs/components/Select/Select.js +1 -2
  109. package/emotion/cjs/components/Select/ui/Inner/Inner.js +1 -2
  110. package/emotion/cjs/components/Spinner/Spinner.js +2 -2
  111. package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -3
  112. package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -3
  113. package/emotion/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
  114. package/emotion/cjs/components/TextField/TextField.js +4 -4
  115. package/emotion/cjs/components/TextField/ui/Hint/Hint.js +1 -1
  116. package/emotion/es/components/Autocomplete/Autocomplete.js +1 -1
  117. package/emotion/es/components/Autocomplete/FloatingPopover.js +1 -1
  118. package/emotion/es/components/Calendar/CalendarBase/CalendarBase.js +14 -0
  119. package/emotion/es/components/Calendar/CalendarDouble/CalendarDouble.js +14 -0
  120. package/emotion/es/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
  121. package/emotion/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
  122. package/emotion/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
  123. package/emotion/es/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
  124. package/emotion/es/components/Checkbox/Checkbox.js +2 -1
  125. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
  126. package/emotion/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  127. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  128. package/emotion/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
  129. package/emotion/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
  130. package/emotion/es/components/Drawer/Drawer.js +3 -3
  131. package/emotion/es/components/Drawer/hooks/useDrawer.js +2 -2
  132. package/emotion/es/components/Dropdown/Dropdown.js +1 -1
  133. package/emotion/es/components/Dropdown/FloatingPopover.js +1 -1
  134. package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  135. package/emotion/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +1 -2
  136. package/emotion/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  137. package/emotion/es/components/Mask/Mask.js +4 -4
  138. package/emotion/es/components/Modal/Modal.js +4 -3
  139. package/emotion/es/components/Modal/hooks/useModal.js +1 -1
  140. package/emotion/es/components/Popup/Popup.js +2 -2
  141. package/emotion/es/components/Popup/PopupContext.js +14 -29
  142. package/emotion/es/components/Radiobox/Radiobox.js +2 -2
  143. package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +1 -2
  144. package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
  145. package/emotion/es/components/Select/FloatingPopover.js +1 -1
  146. package/emotion/es/components/Select/Select.js +1 -2
  147. package/emotion/es/components/Select/ui/Inner/Inner.js +1 -2
  148. package/emotion/es/components/Spinner/Spinner.js +1 -1
  149. package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +1 -2
  150. package/emotion/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +1 -2
  151. package/emotion/es/components/TextArea/ui/Hint/Hint.js +1 -1
  152. package/emotion/es/components/TextField/TextField.js +3 -3
  153. package/emotion/es/components/TextField/ui/Hint/Hint.js +1 -1
  154. package/es/components/Autocomplete/Autocomplete.js +1 -1
  155. package/es/components/Autocomplete/Autocomplete.js.map +1 -1
  156. package/es/components/Autocomplete/FloatingPopover.js +1 -1
  157. package/es/components/Autocomplete/FloatingPopover.js.map +1 -1
  158. package/es/components/Calendar/CalendarBase/CalendarBase.js +12 -0
  159. package/es/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  160. package/es/components/Calendar/CalendarDouble/CalendarDouble.js +12 -0
  161. package/es/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
  162. package/es/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
  163. package/es/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
  164. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
  165. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js.map +1 -1
  166. package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
  167. package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js.map +1 -1
  168. package/es/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
  169. package/es/components/Calendar/ui/CalendarYears/CalendarYears.js.map +1 -1
  170. package/es/components/Checkbox/Checkbox.js +2 -1
  171. package/es/components/Checkbox/Checkbox.js.map +1 -1
  172. package/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
  173. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  174. package/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  175. package/es/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
  176. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  177. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  178. package/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
  179. package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  180. package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +2 -2
  181. package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  182. package/es/components/Drawer/Drawer.js +4 -3
  183. package/es/components/Drawer/Drawer.js.map +1 -1
  184. package/es/components/Drawer/hooks/useDrawer.js +2 -2
  185. package/es/components/Drawer/hooks/useDrawer.js.map +1 -1
  186. package/es/components/Dropdown/Dropdown.js +1 -1
  187. package/es/components/Dropdown/Dropdown.js.map +1 -1
  188. package/es/components/Dropdown/FloatingPopover.js +1 -1
  189. package/es/components/Dropdown/FloatingPopover.js.map +1 -1
  190. package/es/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
  191. package/es/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
  192. package/es/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
  193. package/es/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
  194. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  195. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  196. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -2
  197. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
  198. package/es/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
  199. package/es/components/Mask/Mask.js +3 -3
  200. package/es/components/Mask/Mask.js.map +1 -1
  201. package/es/components/Modal/Modal.js +3 -2
  202. package/es/components/Modal/Modal.js.map +1 -1
  203. package/es/components/Modal/hooks/useModal.js +1 -1
  204. package/es/components/Modal/hooks/useModal.js.map +1 -1
  205. package/es/components/Popup/Popup.js +2 -1
  206. package/es/components/Popup/Popup.js.map +1 -1
  207. package/es/components/Popup/PopupContext.js +13 -13
  208. package/es/components/Popup/PopupContext.js.map +1 -1
  209. package/es/components/Radiobox/Radiobox.js +3 -2
  210. package/es/components/Radiobox/Radiobox.js.map +1 -1
  211. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -2
  212. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  213. package/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -1
  214. package/es/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  215. package/es/components/Select/FloatingPopover.js +1 -1
  216. package/es/components/Select/FloatingPopover.js.map +1 -1
  217. package/es/components/Select/Select.js +1 -1
  218. package/es/components/Select/Select.js.map +1 -1
  219. package/es/components/Select/ui/Inner/Inner.js +1 -1
  220. package/es/components/Select/ui/Inner/Inner.js.map +1 -1
  221. package/es/components/Spinner/Spinner.js +1 -1
  222. package/es/components/Spinner/Spinner.js.map +1 -1
  223. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -2
  224. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  225. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -2
  226. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  227. package/es/components/TextArea/ui/Hint/Hint.js.map +1 -1
  228. package/es/components/TextField/TextField.js +2 -1
  229. package/es/components/TextField/TextField.js.map +1 -1
  230. package/es/components/TextField/ui/Hint/Hint.js.map +1 -1
  231. package/package.json +4 -4
  232. package/styled-components/cjs/components/Autocomplete/Autocomplete.js +3 -3
  233. package/styled-components/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  234. package/styled-components/cjs/components/Calendar/CalendarBase/CalendarBase.js +14 -0
  235. package/styled-components/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +14 -0
  236. package/styled-components/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
  237. package/styled-components/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
  238. package/styled-components/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
  239. package/styled-components/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
  240. package/styled-components/cjs/components/Checkbox/Checkbox.js +3 -2
  241. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +21 -20
  242. package/styled-components/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  243. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +4 -4
  244. package/styled-components/cjs/components/Combobox/ComboboxOld/Combobox.js +9 -8
  245. package/styled-components/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -7
  246. package/styled-components/cjs/components/Drawer/Drawer.js +8 -8
  247. package/styled-components/cjs/components/Drawer/hooks/useDrawer.js +2 -2
  248. package/styled-components/cjs/components/Dropdown/Dropdown.js +8 -8
  249. package/styled-components/cjs/components/Dropdown/FloatingPopover.js +2 -2
  250. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
  251. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -3
  252. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  253. package/styled-components/cjs/components/Mask/Mask.js +4 -4
  254. package/styled-components/cjs/components/Modal/Modal.js +6 -5
  255. package/styled-components/cjs/components/Modal/hooks/useModal.js +1 -1
  256. package/styled-components/cjs/components/Popup/Popup.js +1 -1
  257. package/styled-components/cjs/components/Popup/PopupContext.js +14 -29
  258. package/styled-components/cjs/components/Radiobox/Radiobox.js +2 -2
  259. package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -3
  260. package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
  261. package/styled-components/cjs/components/Select/FloatingPopover.js +5 -5
  262. package/styled-components/cjs/components/Select/Select.js +1 -2
  263. package/styled-components/cjs/components/Select/ui/Inner/Inner.js +1 -2
  264. package/styled-components/cjs/components/Spinner/Spinner.js +2 -2
  265. package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -3
  266. package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -3
  267. package/styled-components/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
  268. package/styled-components/cjs/components/TextField/TextField.js +3 -3
  269. package/styled-components/cjs/components/TextField/ui/Hint/Hint.js +1 -1
  270. package/styled-components/es/components/Autocomplete/Autocomplete.js +1 -1
  271. package/styled-components/es/components/Autocomplete/FloatingPopover.js +1 -1
  272. package/styled-components/es/components/Calendar/CalendarBase/CalendarBase.js +14 -0
  273. package/styled-components/es/components/Calendar/CalendarDouble/CalendarDouble.js +14 -0
  274. package/styled-components/es/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
  275. package/styled-components/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
  276. package/styled-components/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
  277. package/styled-components/es/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
  278. package/styled-components/es/components/Checkbox/Checkbox.js +2 -1
  279. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
  280. package/styled-components/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  281. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  282. package/styled-components/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
  283. package/styled-components/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
  284. package/styled-components/es/components/Drawer/Drawer.js +3 -3
  285. package/styled-components/es/components/Drawer/hooks/useDrawer.js +2 -2
  286. package/styled-components/es/components/Dropdown/Dropdown.js +1 -1
  287. package/styled-components/es/components/Dropdown/FloatingPopover.js +1 -1
  288. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  289. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +1 -2
  290. package/styled-components/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  291. package/styled-components/es/components/Mask/Mask.js +4 -4
  292. package/styled-components/es/components/Modal/Modal.js +4 -3
  293. package/styled-components/es/components/Modal/hooks/useModal.js +1 -1
  294. package/styled-components/es/components/Popup/Popup.js +2 -2
  295. package/styled-components/es/components/Popup/PopupContext.js +14 -29
  296. package/styled-components/es/components/Radiobox/Radiobox.js +2 -2
  297. package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +1 -2
  298. package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
  299. package/styled-components/es/components/Select/FloatingPopover.js +1 -1
  300. package/styled-components/es/components/Select/Select.js +1 -2
  301. package/styled-components/es/components/Select/ui/Inner/Inner.js +1 -2
  302. package/styled-components/es/components/Spinner/Spinner.js +1 -1
  303. package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +1 -2
  304. package/styled-components/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +1 -2
  305. package/styled-components/es/components/TextArea/ui/Hint/Hint.js +1 -1
  306. package/styled-components/es/components/TextField/TextField.js +2 -2
  307. package/styled-components/es/components/TextField/ui/Hint/Hint.js +1 -1
  308. package/types/components/Calendar/CalendarBase/CalendarBase.d.ts.map +1 -1
  309. package/types/components/Calendar/CalendarDouble/CalendarDouble.d.ts.map +1 -1
  310. package/types/components/Calendar/ui/CalendarDays/CalendarDays.d.ts.map +1 -1
  311. package/types/components/Calendar/ui/CalendarMonths/CalendarMonths.d.ts.map +1 -1
  312. package/types/components/Calendar/ui/CalendarQuarters/CalendarQuarters.d.ts.map +1 -1
  313. package/types/components/Calendar/ui/CalendarYears/CalendarYears.d.ts.map +1 -1
  314. package/types/components/Checkbox/Checkbox.d.ts.map +1 -1
  315. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  316. package/types/components/Combobox/ComboboxOld/Combobox.d.ts.map +1 -1
  317. package/types/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.d.ts.map +1 -1
  318. package/types/components/Drawer/Drawer.d.ts +1 -1
  319. package/types/components/Drawer/Drawer.d.ts.map +1 -1
  320. package/types/components/Drawer/hooks/useDrawer.d.ts.map +1 -1
  321. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  322. package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts +1 -1
  323. package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts.map +1 -1
  324. package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts +1 -1
  325. package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts.map +1 -1
  326. package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts +1 -1
  327. package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts.map +1 -1
  328. package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts +1 -1
  329. package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts.map +1 -1
  330. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts +1 -1
  331. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts.map +1 -1
  332. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts +1 -1
  333. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts.map +1 -1
  334. package/types/components/Modal/Modal.d.ts +1 -1
  335. package/types/components/Modal/Modal.d.ts.map +1 -1
  336. package/types/components/Popup/Popup.d.ts +1 -1
  337. package/types/components/Popup/Popup.d.ts.map +1 -1
  338. package/types/components/Popup/Popup.types.d.ts +1 -1
  339. package/types/components/Popup/Popup.types.d.ts.map +1 -1
  340. package/types/components/Popup/PopupContext.d.ts.map +1 -1
  341. package/types/components/Radiobox/Radiobox.d.ts +2 -2
  342. package/types/components/Radiobox/Radiobox.d.ts.map +1 -1
  343. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts +1 -1
  344. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts.map +1 -1
  345. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts +1 -1
  346. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts.map +1 -1
  347. package/types/components/Select/Select.d.ts.map +1 -1
  348. package/types/components/Select/ui/Inner/Inner.d.ts.map +1 -1
  349. package/types/components/Spinner/Spinner.d.ts +1 -1
  350. package/types/components/Spinner/Spinner.d.ts.map +1 -1
  351. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts +1 -1
  352. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts.map +1 -1
  353. package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts +1 -1
  354. package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts.map +1 -1
  355. package/types/components/TextField/TextField.d.ts +1 -1
  356. package/types/components/TextField/TextField.d.ts.map +1 -1
@@ -1,12 +1,13 @@
1
1
  import { extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { forwardRef, useState, useRef, useEffect, Children } from 'react';
3
- import { safeUseId, useForkRef } from '@salutejs/plasma-core';
3
+ import { useForkRef } from '@salutejs/plasma-core';
4
4
  import { cx } from '../../../utils/index.js';
5
5
  import { getChildren, getValues, getNewSelected } from './utils/index.js';
6
6
  import { base } from './variations/_view/base.js';
7
7
  import { base as base$1 } from './variations/_size/base.js';
8
8
  import { StyledRoot, StyledNativeSelect, StyledPopover, StyledCombobox, ComboboxItemNotFound } from './Combobox.styles.js';
9
9
  import { useForceUpdate } from '../../../hooks/useForceUpdate.js';
10
+ import { safeUseId } from '../../../utils/react.js';
10
11
  import { useDidMountEffect } from '../../../hooks/useDidMountEffect.js';
11
12
  import { useKeyNavigation } from './hooks/useKeyNavigation.js';
12
13
  import { ComboboxTarget } from './ui/ComboboxTarget/ComboboxTarget.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxOld/Combobox.tsx"],"sourcesContent":["import React, { Children, forwardRef, useEffect, useRef, useState } from 'react';\nimport { safeUseId, useForkRef } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../../engines';\nimport { cx, getPlacements } from '../../../utils';\nimport { useDidMountEffect, useForceUpdate } from '../../../hooks';\n\nimport { getChildren, getNewSelected, getValues } from './utils';\nimport { useKeyNavigation } from './hooks';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { ComboboxTarget } from './ui';\nimport { ComboboxItemNotFound, StyledPopover, StyledRoot, StyledCombobox, StyledNativeSelect } from './Combobox.styles';\nimport type { ComboboxPrimitiveValue, ComboboxProps } from './Combobox.types';\n\n/**\n * Выпадающий список без внешнего контроля видимости.\n */\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, ComboboxProps>) =>\n forwardRef<HTMLInputElement, ComboboxProps>(\n (\n {\n name,\n form,\n readOnly,\n disabled,\n label,\n placeholder,\n id,\n children,\n role,\n view,\n size,\n frame,\n usePortal,\n negativeResultContent = 'Элементы не найдены',\n enumerationType = 'comma',\n opened = false,\n alwaysOpened = false,\n placement = 'bottom',\n onToggle,\n onKeyDown,\n filterFunction,\n ...rest\n },\n outerRootRef,\n ) => {\n const forceUpdate = useForceUpdate();\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const { valueType = 'single', value } = rest;\n const offset = [0, 4] as [number, number];\n\n const [ref, setRef] = useState<HTMLInputElement | null>(null);\n\n const targetRef = useRef<HTMLInputElement>(null);\n const chipsRefs = useRef<Array<HTMLButtonElement>>([]);\n const comboboxRef = useRef<HTMLDivElement>(null);\n const itemsRefs = useRef<Array<HTMLDivElement>>([]);\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef<HTMLInputElement>(targetRef, outerRootRef);\n const controlledRefs = { targetRef, chipsRefs, selectRef: comboboxRef, itemsRefs, inputRef };\n\n const [isVisible, setIsVisible] = useState(alwaysOpened || opened);\n const [search, setSearch] = useState<string | undefined>('');\n const [filterValue, setFilterValue] = useState(search);\n\n // INFO: нужно высчитывать для корректной работы портала\n const dynamicTargetWidth = targetRef.current?.offsetWidth;\n\n // INFO: Из-за того, что классы передаются через ref,\n // состояние пропсов после изменения view, size\n // всегда предыдущее, поэтому нужно делать форс-ререндер\n useDidMountEffect(() => {\n forceUpdate();\n }, [view, size]);\n\n useEffect(() => {\n if (disabled || readOnly) {\n return;\n }\n\n setIsVisible(alwaysOpened || opened);\n }, [opened, alwaysOpened, disabled, readOnly]);\n\n useEffect(() => {\n // INFO: Для кейсов, когда значение выбрано и нужно вывести весь список\n if (alwaysOpened || opened) {\n setFilterValue('');\n }\n }, []);\n\n const onInnerToggle = (openValue: boolean, event: React.SyntheticEvent | Event) => {\n if (disabled || readOnly) {\n return;\n }\n\n // INFO: Для кейсов, когда значение выбрано и нужно вывести весь список\n if (!isVisible) {\n setFilterValue('');\n }\n\n if (onToggle) {\n onToggle(alwaysOpened || openValue, event);\n\n return;\n }\n\n setIsVisible(alwaysOpened || openValue);\n };\n\n const closedWithoutChanges = useRef(true);\n\n const updateValue = (item: HTMLElement, event: React.SyntheticEvent | Event) => {\n const {\n dataset: { value: newValue },\n } = item;\n\n if (rest.valueType === 'multiple') {\n const newSelected = getNewSelected(rest.value, newValue, rest.valueType);\n rest.onChangeValue?.(newSelected);\n\n return;\n }\n\n const newSelected = getNewSelected(rest.value, newValue, 'single');\n\n rest.onChangeValue?.(newSelected);\n\n onInnerToggle?.(alwaysOpened || false, event);\n\n closedWithoutChanges.current = false;\n };\n\n const onClickChildrenItem = (event: React.MouseEvent<HTMLDivElement>) => {\n // INFO: Для корректной работы компонента Popper\n event.stopPropagation();\n\n const item = event.currentTarget as HTMLElement;\n\n updateValue(item, event);\n };\n\n const onChangeChipValue = (newValue?: Array<ComboboxPrimitiveValue>) => {\n if (rest.valueType !== 'multiple') {\n return;\n }\n\n rest.onChangeValue?.(newValue);\n };\n\n const { onKeyDownTarget, onKeyDownSelect } = useKeyNavigation({\n controlledRefs,\n opened: isVisible,\n enumerationType,\n valueType,\n componentType: 'combobox',\n value,\n search: filterValue,\n updateOpened: onInnerToggle,\n updateValue,\n });\n\n const childrenArray = Children.toArray(children) as React.ReactElement[];\n\n const childrenMemo = getChildren(\n childrenArray,\n { onClick: onClickChildrenItem, childrenRefs: itemsRefs },\n value,\n filterValue,\n filterFunction,\n ).filter(Boolean);\n\n const values = getValues(childrenArray, value);\n\n const onSearch = (newSearch?: string, newOpened?: boolean) => {\n setSearch(newSearch);\n setFilterValue(newSearch);\n setIsVisible(newOpened ?? true);\n };\n\n const onKeyDownHandle = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n onKeyDownTarget(event);\n };\n\n useEffect(() => {\n if (alwaysOpened && rest.valueType === 'single') {\n setSearch(String(value));\n }\n }, [value, alwaysOpened]);\n\n return (\n <StyledRoot ref={comboboxRef}>\n <StyledNativeSelect\n aria-invalid=\"false\"\n aria-hidden=\"true\"\n aria-readonly={readOnly}\n tabIndex={-1}\n form={form}\n name={name}\n value={`${value}`}\n disabled={disabled || readOnly}\n />\n <StyledPopover\n role={role}\n opened={isVisible}\n onToggle={onInnerToggle}\n target={\n <ComboboxTarget\n opened={isVisible}\n values={values}\n label={label}\n placeholder={placeholder}\n search={search}\n enumerationType={enumerationType}\n valueType={valueType}\n readOnly={readOnly}\n disabled={disabled}\n size={size}\n closedWithoutChanges={closedWithoutChanges}\n ref={handleRef}\n chipsRefs={chipsRefs}\n inputRef={inputRef}\n id={innerId}\n onChange={onChangeChipValue}\n onSearch={onSearch}\n onKeyDown={onKeyDownHandle}\n {...rest}\n />\n }\n className={cx(ref?.classList.toString())} // INFO: Прокидываем стили для Popover\n id={innerId}\n offset={offset}\n placement={getPlacements(placement)}\n usePortal={usePortal}\n selectWidth={dynamicTargetWidth}\n frame={frame}\n trigger=\"click\"\n isFocusTrapped={false}\n preventOverflow={false}\n closeOnEsc={false}\n closeOnOverlayClick\n >\n <Root ref={setRef} view={view} size={size}>\n <StyledCombobox onKeyDown={onKeyDownSelect}>\n {childrenMemo.length ? (\n childrenMemo\n ) : (\n <ComboboxItemNotFound>{negativeResultContent}</ComboboxItemNotFound>\n )}\n </StyledCombobox>\n </Root>\n </StyledPopover>\n </StyledRoot>\n );\n },\n );\n\nexport const comboboxConfig = {\n name: 'Combobox',\n tag: 'div',\n layout: comboboxRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["comboboxRoot","Root","forwardRef","name","form","readOnly","disabled","label","placeholder","id","children","role","view","size","frame","usePortal","negativeResultContent","enumerationType","opened","alwaysOpened","placement","onToggle","onKeyDown","filterFunction","rest","outerRootRef","forceUpdate","useForceUpdate","uniqId","safeUseId","innerId","valueType","value","offset","ref","setRef","useState","targetRef","useRef","chipsRefs","comboboxRef","itemsRefs","inputRef","handleRef","useForkRef","controlledRefs","selectRef","isVisible","setIsVisible","search","setSearch","filterValue","setFilterValue","dynamicTargetWidth","current","offsetWidth","useDidMountEffect","useEffect","onInnerToggle","openValue","event","closedWithoutChanges","updateValue","item","dataset","newValue","newSelected","getNewSelected","onChangeValue","onClickChildrenItem","stopPropagation","currentTarget","onChangeChipValue","onKeyDownTarget","onKeyDownSelect","useKeyNavigation","componentType","updateOpened","childrenArray","Children","toArray","childrenMemo","getChildren","onClick","childrenRefs","filter","Boolean","values","getValues","onSearch","newSearch","newOpened","onKeyDownHandle","String","React","createElement","StyledRoot","StyledNativeSelect","tabIndex","StyledPopover","target","ComboboxTarget","_extends","onChange","className","cx","classList","toString","getPlacements","selectWidth","trigger","isFocusTrapped","preventOverflow","closeOnEsc","closeOnOverlayClick","StyledCombobox","length","ComboboxItemNotFound","comboboxConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;;;;;;;;AAeA;AACA;AACA;MACaA,YAAY,GAAIC,IAAgD,iBACzEC,UAAU,CACN,CACI;EACIC,IAAI;EACJC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,KAAK;EACLC,WAAW;EACXC,EAAE;EACFC,QAAQ;EACRC,IAAI;EACJC,IAAI;EACJC,IAAI;EACJC,KAAK;EACLC,SAAS;AACTC,EAAAA,qBAAqB,GAAG,qBAAqB;AAC7CC,EAAAA,eAAe,GAAG,OAAO;AACzBC,EAAAA,MAAM,GAAG,KAAK;AACdC,EAAAA,YAAY,GAAG,KAAK;AACpBC,EAAAA,SAAS,GAAG,QAAQ;EACpBC,QAAQ;EACRC,SAAS;EACTC,cAAc;EACd,GAAGC,IAAAA;AACP,CAAC,EACDC,YAAY,KACX;AACD,EAAA,MAAMC,WAAW,GAAGC,cAAc,EAAE,CAAA;AACpC,EAAA,MAAMC,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGrB,EAAE,IAAImB,MAAM,CAAA;EAC5B,MAAM;AAAEG,IAAAA,SAAS,GAAG,QAAQ;AAAEC,IAAAA,KAAAA;AAAM,GAAC,GAAGR,IAAI,CAAA;AAC5C,EAAA,MAAMS,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAqB,CAAA;EAEzC,MAAM,CAACC,GAAG,EAAEC,MAAM,CAAC,GAAGC,QAAQ,CAA0B,IAAI,CAAC,CAAA;AAE7D,EAAA,MAAMC,SAAS,GAAGC,MAAM,CAAmB,IAAI,CAAC,CAAA;AAChD,EAAA,MAAMC,SAAS,GAAGD,MAAM,CAA2B,EAAE,CAAC,CAAA;AACtD,EAAA,MAAME,WAAW,GAAGF,MAAM,CAAiB,IAAI,CAAC,CAAA;AAChD,EAAA,MAAMG,SAAS,GAAGH,MAAM,CAAwB,EAAE,CAAC,CAAA;AACnD,EAAA,MAAMI,QAAQ,GAAGJ,MAAM,CAAmB,IAAI,CAAC,CAAA;AAC/C,EAAA,MAAMK,SAAS,GAAGC,UAAU,CAAmBP,SAAS,EAAEZ,YAAY,CAAC,CAAA;AACvE,EAAA,MAAMoB,cAAc,GAAG;IAAER,SAAS;IAAEE,SAAS;AAAEO,IAAAA,SAAS,EAAEN,WAAW;IAAEC,SAAS;AAAEC,IAAAA,QAAAA;GAAU,CAAA;EAE5F,MAAM,CAACK,SAAS,EAAEC,YAAY,CAAC,GAAGZ,QAAQ,CAACjB,YAAY,IAAID,MAAM,CAAC,CAAA;EAClE,MAAM,CAAC+B,MAAM,EAAEC,SAAS,CAAC,GAAGd,QAAQ,CAAqB,EAAE,CAAC,CAAA;EAC5D,MAAM,CAACe,WAAW,EAAEC,cAAc,CAAC,GAAGhB,QAAQ,CAACa,MAAM,CAAC,CAAA;;AAEtD;AACA,EAAA,MAAMI,kBAAkB,GAAGhB,SAAS,CAACiB,OAAO,EAAEC,WAAW,CAAA;;AAEzD;AACA;AACA;AACAC,EAAAA,iBAAiB,CAAC,MAAM;AACpB9B,IAAAA,WAAW,EAAE,CAAA;AACjB,GAAC,EAAE,CAACd,IAAI,EAAEC,IAAI,CAAC,CAAC,CAAA;AAEhB4C,EAAAA,SAAS,CAAC,MAAM;IACZ,IAAInD,QAAQ,IAAID,QAAQ,EAAE;AACtB,MAAA,OAAA;AACJ,KAAA;AAEA2C,IAAAA,YAAY,CAAC7B,YAAY,IAAID,MAAM,CAAC,CAAA;GACvC,EAAE,CAACA,MAAM,EAAEC,YAAY,EAAEb,QAAQ,EAAED,QAAQ,CAAC,CAAC,CAAA;AAE9CoD,EAAAA,SAAS,CAAC,MAAM;AACZ;IACA,IAAItC,YAAY,IAAID,MAAM,EAAE;MACxBkC,cAAc,CAAC,EAAE,CAAC,CAAA;AACtB,KAAA;GACH,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMM,aAAa,GAAGA,CAACC,SAAkB,EAAEC,KAAmC,KAAK;IAC/E,IAAItD,QAAQ,IAAID,QAAQ,EAAE;AACtB,MAAA,OAAA;AACJ,KAAA;;AAEA;IACA,IAAI,CAAC0C,SAAS,EAAE;MACZK,cAAc,CAAC,EAAE,CAAC,CAAA;AACtB,KAAA;AAEA,IAAA,IAAI/B,QAAQ,EAAE;AACVA,MAAAA,QAAQ,CAACF,YAAY,IAAIwC,SAAS,EAAEC,KAAK,CAAC,CAAA;AAE1C,MAAA,OAAA;AACJ,KAAA;AAEAZ,IAAAA,YAAY,CAAC7B,YAAY,IAAIwC,SAAS,CAAC,CAAA;GAC1C,CAAA;AAED,EAAA,MAAME,oBAAoB,GAAGvB,MAAM,CAAC,IAAI,CAAC,CAAA;AAEzC,EAAA,MAAMwB,WAAW,GAAGA,CAACC,IAAiB,EAAEH,KAAmC,KAAK;IAC5E,MAAM;AACFI,MAAAA,OAAO,EAAE;AAAEhC,QAAAA,KAAK,EAAEiC,QAAAA;AAAS,OAAA;AAC/B,KAAC,GAAGF,IAAI,CAAA;AAER,IAAA,IAAIvC,IAAI,CAACO,SAAS,KAAK,UAAU,EAAE;AAC/B,MAAA,MAAMmC,WAAW,GAAGC,cAAc,CAAC3C,IAAI,CAACQ,KAAK,EAAEiC,QAAQ,EAAEzC,IAAI,CAACO,SAAS,CAAC,CAAA;AACxEP,MAAAA,IAAI,CAAC4C,aAAa,GAAGF,WAAW,CAAC,CAAA;AAEjC,MAAA,OAAA;AACJ,KAAA;IAEA,MAAMA,WAAW,GAAGC,cAAc,CAAC3C,IAAI,CAACQ,KAAK,EAAEiC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAElEzC,IAAAA,IAAI,CAAC4C,aAAa,GAAGF,WAAW,CAAC,CAAA;AAEjCR,IAAAA,aAAa,GAAGvC,YAAY,IAAI,KAAK,EAAEyC,KAAK,CAAC,CAAA;IAE7CC,oBAAoB,CAACP,OAAO,GAAG,KAAK,CAAA;GACvC,CAAA;EAED,MAAMe,mBAAmB,GAAIT,KAAuC,IAAK;AACrE;IACAA,KAAK,CAACU,eAAe,EAAE,CAAA;AAEvB,IAAA,MAAMP,IAAI,GAAGH,KAAK,CAACW,aAA4B,CAAA;AAE/CT,IAAAA,WAAW,CAACC,IAAI,EAAEH,KAAK,CAAC,CAAA;GAC3B,CAAA;EAED,MAAMY,iBAAiB,GAAIP,QAAwC,IAAK;AACpE,IAAA,IAAIzC,IAAI,CAACO,SAAS,KAAK,UAAU,EAAE;AAC/B,MAAA,OAAA;AACJ,KAAA;AAEAP,IAAAA,IAAI,CAAC4C,aAAa,GAAGH,QAAQ,CAAC,CAAA;GACjC,CAAA;EAED,MAAM;IAAEQ,eAAe;AAAEC,IAAAA,eAAAA;GAAiB,GAAGC,gBAAgB,CAAC;IAC1D9B,cAAc;AACd3B,IAAAA,MAAM,EAAE6B,SAAS;IACjB9B,eAAe;IACfc,SAAS;AACT6C,IAAAA,aAAa,EAAE,UAAU;IACzB5C,KAAK;AACLiB,IAAAA,MAAM,EAAEE,WAAW;AACnB0B,IAAAA,YAAY,EAAEnB,aAAa;AAC3BI,IAAAA,WAAAA;AACJ,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMgB,aAAa,GAAGC,QAAQ,CAACC,OAAO,CAACtE,QAAQ,CAAyB,CAAA;AAExE,EAAA,MAAMuE,YAAY,GAAGC,WAAW,CAC5BJ,aAAa,EACb;AAAEK,IAAAA,OAAO,EAAEd,mBAAmB;AAAEe,IAAAA,YAAY,EAAE3C,SAAAA;GAAW,EACzDT,KAAK,EACLmB,WAAW,EACX5B,cACJ,CAAC,CAAC8D,MAAM,CAACC,OAAO,CAAC,CAAA;AAEjB,EAAA,MAAMC,MAAM,GAAGC,SAAS,CAACV,aAAa,EAAE9C,KAAK,CAAC,CAAA;AAE9C,EAAA,MAAMyD,QAAQ,GAAGA,CAACC,SAAkB,EAAEC,SAAmB,KAAK;IAC1DzC,SAAS,CAACwC,SAAS,CAAC,CAAA;IACpBtC,cAAc,CAACsC,SAAS,CAAC,CAAA;AACzB1C,IAAAA,YAAY,CAAC2C,SAAS,IAAI,IAAI,CAAC,CAAA;GAClC,CAAA;EAED,MAAMC,eAAe,GAAIhC,KAA4C,IAAK;IACtEtC,SAAS,GAAGsC,KAAK,CAAC,CAAA;IAClBa,eAAe,CAACb,KAAK,CAAC,CAAA;GACzB,CAAA;AAEDH,EAAAA,SAAS,CAAC,MAAM;AACZ,IAAA,IAAItC,YAAY,IAAIK,IAAI,CAACO,SAAS,KAAK,QAAQ,EAAE;AAC7CmB,MAAAA,SAAS,CAAC2C,MAAM,CAAC7D,KAAK,CAAC,CAAC,CAAA;AAC5B,KAAA;AACJ,GAAC,EAAE,CAACA,KAAK,EAAEb,YAAY,CAAC,CAAC,CAAA;AAEzB,EAAA,oBACI2E,KAAA,CAAAC,aAAA,CAACC,UAAU,EAAA;AAAC9D,IAAAA,GAAG,EAAEM,WAAAA;AAAY,GAAA,eACzBsD,KAAA,CAAAC,aAAA,CAACE,kBAAkB,EAAA;AACf,IAAA,cAAA,EAAa,OAAO;AACpB,IAAA,aAAA,EAAY,MAAM;AAClB,IAAA,eAAA,EAAe5F,QAAS;IACxB6F,QAAQ,EAAE,CAAC,CAAE;AACb9F,IAAAA,IAAI,EAAEA,IAAK;AACXD,IAAAA,IAAI,EAAEA,IAAK;IACX6B,KAAK,EAAE,CAAGA,EAAAA,KAAK,CAAG,CAAA;IAClB1B,QAAQ,EAAEA,QAAQ,IAAID,QAAAA;AAAS,GAClC,CAAC,eACFyF,KAAA,CAAAC,aAAA,CAACI,aAAa,EAAA;AACVxF,IAAAA,IAAI,EAAEA,IAAK;AACXO,IAAAA,MAAM,EAAE6B,SAAU;AAClB1B,IAAAA,QAAQ,EAAEqC,aAAc;AACxB0C,IAAAA,MAAM,eACFN,KAAA,CAAAC,aAAA,CAACM,cAAc,EAAAC,QAAA,CAAA;AACXpF,MAAAA,MAAM,EAAE6B,SAAU;AAClBwC,MAAAA,MAAM,EAAEA,MAAO;AACfhF,MAAAA,KAAK,EAAEA,KAAM;AACbC,MAAAA,WAAW,EAAEA,WAAY;AACzByC,MAAAA,MAAM,EAAEA,MAAO;AACfhC,MAAAA,eAAe,EAAEA,eAAgB;AACjCc,MAAAA,SAAS,EAAEA,SAAU;AACrB1B,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,QAAQ,EAAEA,QAAS;AACnBO,MAAAA,IAAI,EAAEA,IAAK;AACXgD,MAAAA,oBAAoB,EAAEA,oBAAqB;AAC3C3B,MAAAA,GAAG,EAAES,SAAU;AACfJ,MAAAA,SAAS,EAAEA,SAAU;AACrBG,MAAAA,QAAQ,EAAEA,QAAS;AACnBjC,MAAAA,EAAE,EAAEqB,OAAQ;AACZyE,MAAAA,QAAQ,EAAE/B,iBAAkB;AAC5BiB,MAAAA,QAAQ,EAAEA,QAAS;AACnBnE,MAAAA,SAAS,EAAEsE,eAAAA;KACPpE,EAAAA,IAAI,CACX,CACJ;IACDgF,SAAS,EAAEC,EAAE,CAACvE,GAAG,EAAEwE,SAAS,CAACC,QAAQ,EAAE,CAAE;AAAC;AAC1ClG,IAAAA,EAAE,EAAEqB,OAAQ;AACZG,IAAAA,MAAM,EAAEA,MAAO;AACfb,IAAAA,SAAS,EAAEwF,aAAa,CAACxF,SAAS,CAAE;AACpCL,IAAAA,SAAS,EAAEA,SAAU;AACrB8F,IAAAA,WAAW,EAAExD,kBAAmB;AAChCvC,IAAAA,KAAK,EAAEA,KAAM;AACbgG,IAAAA,OAAO,EAAC,OAAO;AACfC,IAAAA,cAAc,EAAE,KAAM;AACtBC,IAAAA,eAAe,EAAE,KAAM;AACvBC,IAAAA,UAAU,EAAE,KAAM;IAClBC,mBAAmB,EAAA,IAAA;AAAA,GAAA,eAEnBpB,KAAA,CAAAC,aAAA,CAAC9F,IAAI,EAAA;AAACiC,IAAAA,GAAG,EAAEC,MAAO;AAACvB,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACtCiF,KAAA,CAAAC,aAAA,CAACoB,cAAc,EAAA;AAAC7F,IAAAA,SAAS,EAAEoD,eAAAA;AAAgB,GAAA,EACtCO,YAAY,CAACmC,MAAM,GAChBnC,YAAY,gBAEZa,KAAA,CAAAC,aAAA,CAACsB,oBAAoB,EAAErG,IAAAA,EAAAA,qBAA4C,CAE3D,CACd,CACK,CACP,CAAC,CAAA;AAErB,CACJ,EAAC;AAEE,MAAMsG,cAAc,GAAG;AAC1BnH,EAAAA,IAAI,EAAE,UAAU;AAChBoH,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAExH,YAAY;AACpByH,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACR9G,IAAAA,IAAI,EAAE;AACF+G,MAAAA,GAAG,EAAEC,IAAAA;KACR;AACD/G,IAAAA,IAAI,EAAE;AACF8G,MAAAA,GAAG,EAAEE,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNlH,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;"}
1
+ {"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxOld/Combobox.tsx"],"sourcesContent":["import React, { Children, forwardRef, useEffect, useRef, useState } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { safeUseId } from 'src/utils';\n\nimport { RootProps } from '../../../engines';\nimport { cx, getPlacements } from '../../../utils';\nimport { useDidMountEffect, useForceUpdate } from '../../../hooks';\n\nimport { getChildren, getNewSelected, getValues } from './utils';\nimport { useKeyNavigation } from './hooks';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { ComboboxTarget } from './ui';\nimport { ComboboxItemNotFound, StyledPopover, StyledRoot, StyledCombobox, StyledNativeSelect } from './Combobox.styles';\nimport type { ComboboxPrimitiveValue, ComboboxProps } from './Combobox.types';\n\n/**\n * Выпадающий список без внешнего контроля видимости.\n */\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, ComboboxProps>) =>\n forwardRef<HTMLInputElement, ComboboxProps>(\n (\n {\n name,\n form,\n readOnly,\n disabled,\n label,\n placeholder,\n id,\n children,\n role,\n view,\n size,\n frame,\n usePortal,\n negativeResultContent = 'Элементы не найдены',\n enumerationType = 'comma',\n opened = false,\n alwaysOpened = false,\n placement = 'bottom',\n onToggle,\n onKeyDown,\n filterFunction,\n ...rest\n },\n outerRootRef,\n ) => {\n const forceUpdate = useForceUpdate();\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const { valueType = 'single', value } = rest;\n const offset = [0, 4] as [number, number];\n\n const [ref, setRef] = useState<HTMLInputElement | null>(null);\n\n const targetRef = useRef<HTMLInputElement>(null);\n const chipsRefs = useRef<Array<HTMLButtonElement>>([]);\n const comboboxRef = useRef<HTMLDivElement>(null);\n const itemsRefs = useRef<Array<HTMLDivElement>>([]);\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef<HTMLInputElement>(targetRef, outerRootRef);\n const controlledRefs = { targetRef, chipsRefs, selectRef: comboboxRef, itemsRefs, inputRef };\n\n const [isVisible, setIsVisible] = useState(alwaysOpened || opened);\n const [search, setSearch] = useState<string | undefined>('');\n const [filterValue, setFilterValue] = useState(search);\n\n // INFO: нужно высчитывать для корректной работы портала\n const dynamicTargetWidth = targetRef.current?.offsetWidth;\n\n // INFO: Из-за того, что классы передаются через ref,\n // состояние пропсов после изменения view, size\n // всегда предыдущее, поэтому нужно делать форс-ререндер\n useDidMountEffect(() => {\n forceUpdate();\n }, [view, size]);\n\n useEffect(() => {\n if (disabled || readOnly) {\n return;\n }\n\n setIsVisible(alwaysOpened || opened);\n }, [opened, alwaysOpened, disabled, readOnly]);\n\n useEffect(() => {\n // INFO: Для кейсов, когда значение выбрано и нужно вывести весь список\n if (alwaysOpened || opened) {\n setFilterValue('');\n }\n }, []);\n\n const onInnerToggle = (openValue: boolean, event: React.SyntheticEvent | Event) => {\n if (disabled || readOnly) {\n return;\n }\n\n // INFO: Для кейсов, когда значение выбрано и нужно вывести весь список\n if (!isVisible) {\n setFilterValue('');\n }\n\n if (onToggle) {\n onToggle(alwaysOpened || openValue, event);\n\n return;\n }\n\n setIsVisible(alwaysOpened || openValue);\n };\n\n const closedWithoutChanges = useRef(true);\n\n const updateValue = (item: HTMLElement, event: React.SyntheticEvent | Event) => {\n const {\n dataset: { value: newValue },\n } = item;\n\n if (rest.valueType === 'multiple') {\n const newSelected = getNewSelected(rest.value, newValue, rest.valueType);\n rest.onChangeValue?.(newSelected);\n\n return;\n }\n\n const newSelected = getNewSelected(rest.value, newValue, 'single');\n\n rest.onChangeValue?.(newSelected);\n\n onInnerToggle?.(alwaysOpened || false, event);\n\n closedWithoutChanges.current = false;\n };\n\n const onClickChildrenItem = (event: React.MouseEvent<HTMLDivElement>) => {\n // INFO: Для корректной работы компонента Popper\n event.stopPropagation();\n\n const item = event.currentTarget as HTMLElement;\n\n updateValue(item, event);\n };\n\n const onChangeChipValue = (newValue?: Array<ComboboxPrimitiveValue>) => {\n if (rest.valueType !== 'multiple') {\n return;\n }\n\n rest.onChangeValue?.(newValue);\n };\n\n const { onKeyDownTarget, onKeyDownSelect } = useKeyNavigation({\n controlledRefs,\n opened: isVisible,\n enumerationType,\n valueType,\n componentType: 'combobox',\n value,\n search: filterValue,\n updateOpened: onInnerToggle,\n updateValue,\n });\n\n const childrenArray = Children.toArray(children) as React.ReactElement[];\n\n const childrenMemo = getChildren(\n childrenArray,\n { onClick: onClickChildrenItem, childrenRefs: itemsRefs },\n value,\n filterValue,\n filterFunction,\n ).filter(Boolean);\n\n const values = getValues(childrenArray, value);\n\n const onSearch = (newSearch?: string, newOpened?: boolean) => {\n setSearch(newSearch);\n setFilterValue(newSearch);\n setIsVisible(newOpened ?? true);\n };\n\n const onKeyDownHandle = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n onKeyDownTarget(event);\n };\n\n useEffect(() => {\n if (alwaysOpened && rest.valueType === 'single') {\n setSearch(String(value));\n }\n }, [value, alwaysOpened]);\n\n return (\n <StyledRoot ref={comboboxRef}>\n <StyledNativeSelect\n aria-invalid=\"false\"\n aria-hidden=\"true\"\n aria-readonly={readOnly}\n tabIndex={-1}\n form={form}\n name={name}\n value={`${value}`}\n disabled={disabled || readOnly}\n />\n <StyledPopover\n role={role}\n opened={isVisible}\n onToggle={onInnerToggle}\n target={\n <ComboboxTarget\n opened={isVisible}\n values={values}\n label={label}\n placeholder={placeholder}\n search={search}\n enumerationType={enumerationType}\n valueType={valueType}\n readOnly={readOnly}\n disabled={disabled}\n size={size}\n closedWithoutChanges={closedWithoutChanges}\n ref={handleRef}\n chipsRefs={chipsRefs}\n inputRef={inputRef}\n id={innerId}\n onChange={onChangeChipValue}\n onSearch={onSearch}\n onKeyDown={onKeyDownHandle}\n {...rest}\n />\n }\n className={cx(ref?.classList.toString())} // INFO: Прокидываем стили для Popover\n id={innerId}\n offset={offset}\n placement={getPlacements(placement)}\n usePortal={usePortal}\n selectWidth={dynamicTargetWidth}\n frame={frame}\n trigger=\"click\"\n isFocusTrapped={false}\n preventOverflow={false}\n closeOnEsc={false}\n closeOnOverlayClick\n >\n <Root ref={setRef} view={view} size={size}>\n <StyledCombobox onKeyDown={onKeyDownSelect}>\n {childrenMemo.length ? (\n childrenMemo\n ) : (\n <ComboboxItemNotFound>{negativeResultContent}</ComboboxItemNotFound>\n )}\n </StyledCombobox>\n </Root>\n </StyledPopover>\n </StyledRoot>\n );\n },\n );\n\nexport const comboboxConfig = {\n name: 'Combobox',\n tag: 'div',\n layout: comboboxRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["comboboxRoot","Root","forwardRef","name","form","readOnly","disabled","label","placeholder","id","children","role","view","size","frame","usePortal","negativeResultContent","enumerationType","opened","alwaysOpened","placement","onToggle","onKeyDown","filterFunction","rest","outerRootRef","forceUpdate","useForceUpdate","uniqId","safeUseId","innerId","valueType","value","offset","ref","setRef","useState","targetRef","useRef","chipsRefs","comboboxRef","itemsRefs","inputRef","handleRef","useForkRef","controlledRefs","selectRef","isVisible","setIsVisible","search","setSearch","filterValue","setFilterValue","dynamicTargetWidth","current","offsetWidth","useDidMountEffect","useEffect","onInnerToggle","openValue","event","closedWithoutChanges","updateValue","item","dataset","newValue","newSelected","getNewSelected","onChangeValue","onClickChildrenItem","stopPropagation","currentTarget","onChangeChipValue","onKeyDownTarget","onKeyDownSelect","useKeyNavigation","componentType","updateOpened","childrenArray","Children","toArray","childrenMemo","getChildren","onClick","childrenRefs","filter","Boolean","values","getValues","onSearch","newSearch","newOpened","onKeyDownHandle","String","React","createElement","StyledRoot","StyledNativeSelect","tabIndex","StyledPopover","target","ComboboxTarget","_extends","onChange","className","cx","classList","toString","getPlacements","selectWidth","trigger","isFocusTrapped","preventOverflow","closeOnEsc","closeOnOverlayClick","StyledCombobox","length","ComboboxItemNotFound","comboboxConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { extends as _extends } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { forwardRef, useCallback, useMemo } from 'react';
3
- import { safeUseId } from '@salutejs/plasma-core';
3
+ import { cx } from '../../../../../utils/index.js';
4
4
  import { classes } from '../../Combobox.tokens.js';
5
5
  import { getValidComponent } from '../../utils/index.js';
6
- import { cx } from '../../../../../utils/index.js';
7
6
  import { base as base$1 } from './variations/_view/base.js';
8
7
  import { base as base$2 } from './variations/_size/base.js';
9
8
  import { StyledContentLeft, StyledText, StyledContentRight, base } from './ComboboxItem.styles.js';
9
+ import { safeUseId } from '../../../../../utils/react.js';
10
10
 
11
11
  const comboboxItemRoot = Root => /*#__PURE__*/forwardRef(({
12
12
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxItem.js","sources":["../../../../../../src/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../../../../engines';\nimport { classes } from '../../Combobox.tokens';\nimport { getValidComponent } from '../../utils';\nimport { cx } from '../../../../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledContentLeft, StyledContentRight, StyledText, base } from './ComboboxItem.styles';\nimport { ComboboxItemProps } from './ComboboxItem.type';\n\nexport const comboboxItemRoot = (Root: RootProps<HTMLDivElement, ComboboxItemProps>) =>\n forwardRef<HTMLDivElement, ComboboxItemProps>(\n (\n {\n id,\n className,\n children,\n text,\n isSelected,\n name,\n checked,\n value,\n view,\n size,\n disabled,\n role = 'option',\n contentLeft: ContentLeftComponent,\n contentRight: ContentRightComponent,\n onSelect,\n onClick,\n onChange,\n ...rest\n },\n outerRootRef,\n ) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n const withComboboxItemIsSelected = checked || isSelected ? classes.comboboxItemIsSelected : undefined;\n const withComboboxItemIsDisabled = disabled ? classes.comboboxItemIsDisabled : undefined;\n\n const handleOnClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n\n onClick?.(event);\n\n if (onSelect && !ContentLeftComponent) {\n onSelect(value, text);\n }\n },\n [onSelect, disabled],\n );\n\n const handleOnChange = useCallback(\n (event: React.MouseEvent<HTMLInputElement>) => {\n if (disabled) {\n return;\n }\n\n onChange?.(event);\n\n if (onSelect && ContentLeftComponent) {\n onSelect(value, text);\n }\n },\n [onSelect, disabled],\n );\n\n const contentProps = {\n name,\n value,\n checked: checked || isSelected,\n disabled,\n tabIndex: -1,\n ...(!disabled && { onChange: handleOnChange }),\n };\n\n const ContentLeft = useMemo(() => getValidComponent(ContentLeftComponent, contentProps), [\n ContentRightComponent,\n contentProps,\n ]);\n\n const ContentRight = useMemo(() => getValidComponent(ContentRightComponent, contentProps), [\n ContentRightComponent,\n contentProps,\n ]);\n\n return (\n <Root\n className={cx(withComboboxItemIsSelected, withComboboxItemIsDisabled, className)}\n view={view}\n size={size}\n id={innerId}\n isSelected={isSelected}\n role={role}\n ref={outerRootRef}\n tabIndex={0}\n aria-disabled={disabled}\n aria-selected={isSelected}\n onClick={handleOnClick}\n data-value={value}\n {...rest}\n >\n {text ? (\n <>\n <StyledContentLeft>{ContentLeftComponent && ContentLeft}</StyledContentLeft>\n <StyledText>{text}</StyledText>\n <StyledContentRight>{ContentRightComponent && ContentRight}</StyledContentRight>\n </>\n ) : (\n children\n )}\n </Root>\n );\n },\n );\n\nexport const comboboxItemConfig = {\n name: 'ComboboxItem',\n tag: 'div',\n layout: comboboxItemRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["comboboxItemRoot","Root","forwardRef","id","className","children","text","isSelected","name","checked","value","view","size","disabled","role","contentLeft","ContentLeftComponent","contentRight","ContentRightComponent","onSelect","onClick","onChange","rest","outerRootRef","uniqId","safeUseId","innerId","withComboboxItemIsSelected","classes","comboboxItemIsSelected","undefined","withComboboxItemIsDisabled","comboboxItemIsDisabled","handleOnClick","useCallback","event","handleOnChange","contentProps","tabIndex","ContentLeft","useMemo","getValidComponent","ContentRight","React","createElement","_extends","cx","ref","Fragment","StyledContentLeft","StyledText","StyledContentRight","comboboxItemConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"ComboboxItem.js","sources":["../../../../../../src/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport type { RootProps } from '../../../../../engines';\nimport { classes } from '../../Combobox.tokens';\nimport { getValidComponent } from '../../utils';\nimport { cx } from '../../../../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledContentLeft, StyledContentRight, StyledText, base } from './ComboboxItem.styles';\nimport { ComboboxItemProps } from './ComboboxItem.type';\n\nexport const comboboxItemRoot = (Root: RootProps<HTMLDivElement, ComboboxItemProps>) =>\n forwardRef<HTMLDivElement, ComboboxItemProps>(\n (\n {\n id,\n className,\n children,\n text,\n isSelected,\n name,\n checked,\n value,\n view,\n size,\n disabled,\n role = 'option',\n contentLeft: ContentLeftComponent,\n contentRight: ContentRightComponent,\n onSelect,\n onClick,\n onChange,\n ...rest\n },\n outerRootRef,\n ) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n const withComboboxItemIsSelected = checked || isSelected ? classes.comboboxItemIsSelected : undefined;\n const withComboboxItemIsDisabled = disabled ? classes.comboboxItemIsDisabled : undefined;\n\n const handleOnClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n\n onClick?.(event);\n\n if (onSelect && !ContentLeftComponent) {\n onSelect(value, text);\n }\n },\n [onSelect, disabled],\n );\n\n const handleOnChange = useCallback(\n (event: React.MouseEvent<HTMLInputElement>) => {\n if (disabled) {\n return;\n }\n\n onChange?.(event);\n\n if (onSelect && ContentLeftComponent) {\n onSelect(value, text);\n }\n },\n [onSelect, disabled],\n );\n\n const contentProps = {\n name,\n value,\n checked: checked || isSelected,\n disabled,\n tabIndex: -1,\n ...(!disabled && { onChange: handleOnChange }),\n };\n\n const ContentLeft = useMemo(() => getValidComponent(ContentLeftComponent, contentProps), [\n ContentRightComponent,\n contentProps,\n ]);\n\n const ContentRight = useMemo(() => getValidComponent(ContentRightComponent, contentProps), [\n ContentRightComponent,\n contentProps,\n ]);\n\n return (\n <Root\n className={cx(withComboboxItemIsSelected, withComboboxItemIsDisabled, className)}\n view={view}\n size={size}\n id={innerId}\n isSelected={isSelected}\n role={role}\n ref={outerRootRef}\n tabIndex={0}\n aria-disabled={disabled}\n aria-selected={isSelected}\n onClick={handleOnClick}\n data-value={value}\n {...rest}\n >\n {text ? (\n <>\n <StyledContentLeft>{ContentLeftComponent && ContentLeft}</StyledContentLeft>\n <StyledText>{text}</StyledText>\n <StyledContentRight>{ContentRightComponent && ContentRight}</StyledContentRight>\n </>\n ) : (\n children\n )}\n </Root>\n );\n },\n );\n\nexport const comboboxItemConfig = {\n name: 'ComboboxItem',\n tag: 'div',\n layout: comboboxItemRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["comboboxItemRoot","Root","forwardRef","id","className","children","text","isSelected","name","checked","value","view","size","disabled","role","contentLeft","ContentLeftComponent","contentRight","ContentRightComponent","onSelect","onClick","onChange","rest","outerRootRef","uniqId","safeUseId","innerId","withComboboxItemIsSelected","classes","comboboxItemIsSelected","undefined","withComboboxItemIsDisabled","comboboxItemIsDisabled","handleOnClick","useCallback","event","handleOnChange","contentProps","tabIndex","ContentLeft","useMemo","getValidComponent","ContentRight","React","createElement","_extends","cx","ref","Fragment","StyledContentLeft","StyledText","StyledContentRight","comboboxItemConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { forwardRef, useMemo } from 'react';
3
- import { useForkRef, safeUseId } from '@salutejs/plasma-core';
4
- import { DEFAULT_Z_INDEX } from '../Popup/utils/index.js';
3
+ import { useForkRef } from '@salutejs/plasma-core';
5
4
  import { cx } from '../../utils/index.js';
5
+ import { DEFAULT_Z_INDEX } from '../Popup/utils/index.js';
6
6
  import { classes, tokens } from './Drawer.tokens.js';
7
7
  import { base } from './variations/_view/base.js';
8
8
  import { base as base$1 } from './variations/_size/base.js';
@@ -11,6 +11,7 @@ import { StyledPopup, StyledPanel } from './Drawer.styles.js';
11
11
  import { getIdLastDrawer } from './DrawerContext.js';
12
12
  import { useFocusTrap } from '../../hooks/useFocusTrap.js';
13
13
  import { usePopupContext } from '../Popup/PopupContext.js';
14
+ import { safeUseId } from '../../utils/react.js';
14
15
  import { useDrawer } from './hooks/useDrawer.js';
15
16
  import { Overlay } from '../Overlay/Overlay.js';
16
17
  import { getSizeValueFromProp } from '../../utils/getSizeValueFromProp.js';
@@ -67,7 +68,7 @@ const drawerRoot = Root => /*#__PURE__*/forwardRef(({
67
68
  popupInfo,
68
69
  disableScroll: asModal
69
70
  });
70
- const transparent = useMemo(() => getIdLastDrawer(popupController.items) !== innerId, [innerId, popupController.items]);
71
+ const transparent = useMemo(() => getIdLastDrawer(Array.from(popupController.items.values())) !== innerId, [innerId, popupController.items]);
71
72
  const onDrawerOverlayKeyDown = event => {
72
73
  if (onOverlayClick) {
73
74
  onOverlayClick(event);
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.js","sources":["../../../src/components/Drawer/Drawer.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from 'react';\nimport { useForkRef, safeUseId } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../engines';\nimport { usePopupContext } from '../Popup';\nimport { Overlay } from '../Overlay';\nimport { DEFAULT_Z_INDEX } from '../Popup/utils';\nimport { cx, getSizeValueFromProp } from '../../utils';\nimport { useFocusTrap } from '../../hooks';\n\nimport { classes, tokens } from './Drawer.tokens';\nimport type { DrawerProps } from './Drawer.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as borderRadiusCSS } from './variations/_borderRadius/base';\nimport { StyledPopup, StyledPanel } from './Drawer.styles';\nimport { getIdLastDrawer } from './DrawerContext';\nimport { useDrawer } from './hooks';\n\n// issue #823\n\nexport const drawerRoot = (Root: RootProps<HTMLDivElement, DrawerProps>) =>\n forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n id,\n zIndex,\n popupInfo,\n withBlur,\n children,\n view,\n size,\n width,\n height,\n isOpen,\n opened,\n initialFocusRef,\n focusAfterRef,\n className,\n customBackgroundColor,\n customContentBackgroundColor,\n onClose,\n onOverlayClick,\n onEscKeyDown,\n offset,\n frame,\n borderRadius = 'none',\n placement = 'right',\n closeOnEsc = true,\n closeOnOverlayClick = true,\n asModal = true,\n ...rest\n },\n outerRef,\n ) => {\n const innerIsOpen = Boolean(isOpen || opened);\n\n const trapRef = useFocusTrap(true, initialFocusRef, focusAfterRef);\n const popupController = usePopupContext();\n\n const innerRef = useForkRef<HTMLDivElement>(trapRef, outerRef);\n\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const overlayBackgroundToken = withBlur\n ? `var(${tokens.drawerOverlayWithBlurColor})`\n : `var(${tokens.drawerOverlayColor})`;\n const innerWidth = width ? getSizeValueFromProp(width) : '100%';\n const innerHeight = height ? getSizeValueFromProp(height) : '100%';\n\n const placementClass = placement ? classes[`${placement}Placement` as keyof typeof classes] : undefined;\n\n const { drawerInfo } = useDrawer({\n id: innerId,\n isOpen: innerIsOpen,\n closeOnEsc,\n onEscKeyDown,\n onClose,\n popupInfo,\n disableScroll: asModal,\n });\n const transparent = useMemo(() => getIdLastDrawer(popupController.items) !== innerId, [\n innerId,\n popupController.items,\n ]);\n\n const onDrawerOverlayKeyDown = (event: React.MouseEvent<HTMLDivElement>) => {\n if (onOverlayClick) {\n onOverlayClick(event);\n return;\n }\n\n if (onClose) {\n onClose();\n }\n };\n\n return (\n <StyledPopup\n id={innerId}\n ref={asModal ? innerRef : outerRef}\n className={cx(placementClass)}\n opened={innerIsOpen}\n zIndex={zIndex}\n placement={placement}\n popupInfo={drawerInfo}\n frame={frame}\n width={innerWidth}\n height={innerHeight}\n offset={offset}\n withAnimation\n overlay={\n asModal && (\n <Root view={view}>\n <Overlay\n className={classes.overlay}\n zIndex={zIndex || DEFAULT_Z_INDEX}\n backgroundColorProperty={overlayBackgroundToken}\n withBlur={withBlur}\n transparent={transparent}\n isClickable={closeOnOverlayClick}\n onOverlayClick={onDrawerOverlayKeyDown}\n />\n </Root>\n )\n }\n {...rest}\n >\n <Root\n view={view}\n size={size}\n style={{ width: innerWidth, height: innerHeight }}\n borderRadius={borderRadius}\n >\n <StyledPanel\n width={innerWidth}\n height={innerHeight}\n customBackgroundColor={customBackgroundColor}\n customContentBackgroundColor={customContentBackgroundColor}\n className={className}\n >\n {children}\n </StyledPanel>\n </Root>\n </StyledPopup>\n );\n },\n );\n\nexport const drawerConfig = {\n name: 'Drawer',\n tag: 'div',\n layout: drawerRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n borderRadius: {\n css: borderRadiusCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n borderRadius: 'none',\n },\n};\n"],"names":["drawerRoot","Root","forwardRef","id","zIndex","popupInfo","withBlur","children","view","size","width","height","isOpen","opened","initialFocusRef","focusAfterRef","className","customBackgroundColor","customContentBackgroundColor","onClose","onOverlayClick","onEscKeyDown","offset","frame","borderRadius","placement","closeOnEsc","closeOnOverlayClick","asModal","rest","outerRef","innerIsOpen","Boolean","trapRef","useFocusTrap","popupController","usePopupContext","innerRef","useForkRef","uniqId","safeUseId","innerId","overlayBackgroundToken","tokens","drawerOverlayWithBlurColor","drawerOverlayColor","innerWidth","getSizeValueFromProp","innerHeight","placementClass","classes","undefined","drawerInfo","useDrawer","disableScroll","transparent","useMemo","getIdLastDrawer","items","onDrawerOverlayKeyDown","event","React","createElement","StyledPopup","_extends","ref","cx","withAnimation","overlay","Overlay","DEFAULT_Z_INDEX","backgroundColorProperty","isClickable","style","StyledPanel","drawerConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","borderRadiusCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Drawer.js","sources":["../../../src/components/Drawer/Drawer.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { cx, getSizeValueFromProp, safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines';\n\nimport { usePopupContext } from '../Popup';\nimport { Overlay } from '../Overlay';\nimport { DEFAULT_Z_INDEX } from '../Popup/utils';\nimport { useFocusTrap } from '../../hooks';\n\nimport { classes, tokens } from './Drawer.tokens';\nimport type { DrawerProps } from './Drawer.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as borderRadiusCSS } from './variations/_borderRadius/base';\nimport { StyledPopup, StyledPanel } from './Drawer.styles';\nimport { getIdLastDrawer } from './DrawerContext';\nimport { useDrawer } from './hooks';\n\n// issue #823\n\nexport const drawerRoot = (Root: RootProps<HTMLDivElement, DrawerProps>) =>\n forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n id,\n zIndex,\n popupInfo,\n withBlur,\n children,\n view,\n size,\n width,\n height,\n isOpen,\n opened,\n initialFocusRef,\n focusAfterRef,\n className,\n customBackgroundColor,\n customContentBackgroundColor,\n onClose,\n onOverlayClick,\n onEscKeyDown,\n offset,\n frame,\n borderRadius = 'none',\n placement = 'right',\n closeOnEsc = true,\n closeOnOverlayClick = true,\n asModal = true,\n ...rest\n },\n outerRef,\n ) => {\n const innerIsOpen = Boolean(isOpen || opened);\n\n const trapRef = useFocusTrap(true, initialFocusRef, focusAfterRef);\n const popupController = usePopupContext();\n\n const innerRef = useForkRef<HTMLDivElement>(trapRef, outerRef);\n\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const overlayBackgroundToken = withBlur\n ? `var(${tokens.drawerOverlayWithBlurColor})`\n : `var(${tokens.drawerOverlayColor})`;\n const innerWidth = width ? getSizeValueFromProp(width) : '100%';\n const innerHeight = height ? getSizeValueFromProp(height) : '100%';\n\n const placementClass = placement ? classes[`${placement}Placement` as keyof typeof classes] : undefined;\n\n const { drawerInfo } = useDrawer({\n id: innerId,\n isOpen: innerIsOpen,\n closeOnEsc,\n onEscKeyDown,\n onClose,\n popupInfo,\n disableScroll: asModal,\n });\n const transparent = useMemo(() => getIdLastDrawer(Array.from(popupController.items.values())) !== innerId, [\n innerId,\n popupController.items,\n ]);\n\n const onDrawerOverlayKeyDown = (event: React.MouseEvent<HTMLDivElement>) => {\n if (onOverlayClick) {\n onOverlayClick(event);\n return;\n }\n\n if (onClose) {\n onClose();\n }\n };\n\n return (\n <StyledPopup\n id={innerId}\n ref={asModal ? innerRef : outerRef}\n className={cx(placementClass)}\n opened={innerIsOpen}\n zIndex={zIndex}\n placement={placement}\n popupInfo={drawerInfo}\n frame={frame}\n width={innerWidth}\n height={innerHeight}\n offset={offset}\n withAnimation\n overlay={\n asModal && (\n <Root view={view}>\n <Overlay\n className={classes.overlay}\n zIndex={zIndex || DEFAULT_Z_INDEX}\n backgroundColorProperty={overlayBackgroundToken}\n withBlur={withBlur}\n transparent={transparent}\n isClickable={closeOnOverlayClick}\n onOverlayClick={onDrawerOverlayKeyDown}\n />\n </Root>\n )\n }\n {...rest}\n >\n <Root\n view={view}\n size={size}\n style={{ width: innerWidth, height: innerHeight }}\n borderRadius={borderRadius}\n >\n <StyledPanel\n width={innerWidth}\n height={innerHeight}\n customBackgroundColor={customBackgroundColor}\n customContentBackgroundColor={customContentBackgroundColor}\n className={className}\n >\n {children}\n </StyledPanel>\n </Root>\n </StyledPopup>\n );\n },\n );\n\nexport const drawerConfig = {\n name: 'Drawer',\n tag: 'div',\n layout: drawerRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n borderRadius: {\n css: borderRadiusCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n borderRadius: 'none',\n },\n};\n"],"names":["drawerRoot","Root","forwardRef","id","zIndex","popupInfo","withBlur","children","view","size","width","height","isOpen","opened","initialFocusRef","focusAfterRef","className","customBackgroundColor","customContentBackgroundColor","onClose","onOverlayClick","onEscKeyDown","offset","frame","borderRadius","placement","closeOnEsc","closeOnOverlayClick","asModal","rest","outerRef","innerIsOpen","Boolean","trapRef","useFocusTrap","popupController","usePopupContext","innerRef","useForkRef","uniqId","safeUseId","innerId","overlayBackgroundToken","tokens","drawerOverlayWithBlurColor","drawerOverlayColor","innerWidth","getSizeValueFromProp","innerHeight","placementClass","classes","undefined","drawerInfo","useDrawer","disableScroll","transparent","useMemo","getIdLastDrawer","Array","from","items","values","onDrawerOverlayKeyDown","event","React","createElement","StyledPopup","_extends","ref","cx","withAnimation","overlay","Overlay","DEFAULT_Z_INDEX","backgroundColorProperty","isClickable","style","StyledPanel","drawerConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","borderRadiusCSS","defaults"],"mappings":"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"}
@@ -21,7 +21,7 @@ const useDrawer = ({
21
21
  if (!closeOnEsc) {
22
22
  return;
23
23
  }
24
- if (event.keyCode === ESCAPE_KEYCODE && getIdLastDrawer(popupController.items) === id) {
24
+ if (event.keyCode === ESCAPE_KEYCODE && getIdLastDrawer(Array.from(popupController.items.values())) === id) {
25
25
  if (onEscKeyDown) {
26
26
  onEscKeyDown(event);
27
27
  return;
@@ -52,7 +52,7 @@ const useDrawer = ({
52
52
  if (!canUseDOM) {
53
53
  return;
54
54
  }
55
- if (!isOpen && !hasDrawers(popupController.items)) {
55
+ if (!isOpen && !hasDrawers(Array.from(popupController.items.values()))) {
56
56
  document.body.style.overflow = overflow.current;
57
57
  }
58
58
  }, [isOpen, popupController.items]);
@@ -1 +1 @@
1
- {"version":3,"file":"useDrawer.js","sources":["../../../../src/components/Drawer/hooks/useDrawer.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nimport { DrawerInfo, getIdLastDrawer, hasDrawers } from '../DrawerContext';\nimport { DrawerHookArgs } from '../Drawer.types';\nimport { usePopupContext } from '../../Popup';\nimport { canUseDOM } from '../../../utils';\n\nconst ESCAPE_KEYCODE = 27;\n\nexport const useDrawer = ({\n id,\n isOpen,\n popupInfo,\n onEscKeyDown,\n onClose,\n closeOnEsc = true,\n disableScroll = true,\n}: DrawerHookArgs) => {\n const popupController = usePopupContext();\n const overflow = useRef<string>(canUseDOM ? document.body.style.overflow : 'initial');\n\n // При ESC закрывает текущее окно, если это возможно\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (!closeOnEsc) {\n return;\n }\n if (event.keyCode === ESCAPE_KEYCODE && getIdLastDrawer(popupController.items) === id) {\n if (onEscKeyDown) {\n onEscKeyDown(event);\n return;\n }\n\n if (onClose) {\n onClose();\n }\n }\n },\n [onClose, onEscKeyDown, popupController.items, closeOnEsc],\n );\n\n useEffect(() => {\n window.addEventListener('keydown', onKeyDown);\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [onKeyDown]);\n\n // linaria не поддерживает динамический global\n useEffect(() => {\n if (!canUseDOM) {\n return;\n }\n\n if (isOpen && disableScroll) {\n overflow.current = document.body.style.overflow;\n\n document.body.style.overflow = 'hidden';\n }\n }, [isOpen, disableScroll]);\n\n useEffect(() => {\n if (!canUseDOM) {\n return;\n }\n\n if (!isOpen && !hasDrawers(popupController.items)) {\n document.body.style.overflow = overflow.current;\n }\n }, [isOpen, popupController.items]);\n\n const drawerInfo: DrawerInfo = {\n id,\n info: {\n isDrawer: true,\n },\n ...popupInfo,\n };\n\n return { drawerInfo };\n};\n"],"names":["ESCAPE_KEYCODE","useDrawer","id","isOpen","popupInfo","onEscKeyDown","onClose","closeOnEsc","disableScroll","popupController","usePopupContext","overflow","useRef","canUseDOM","document","body","style","onKeyDown","useCallback","event","keyCode","getIdLastDrawer","items","useEffect","window","addEventListener","removeEventListener","current","hasDrawers","drawerInfo","info","isDrawer"],"mappings":";;;;;AAOA,MAAMA,cAAc,GAAG,EAAE,CAAA;AAElB,MAAMC,SAAS,GAAGA,CAAC;EACtBC,EAAE;EACFC,MAAM;EACNC,SAAS;EACTC,YAAY;EACZC,OAAO;AACPC,EAAAA,UAAU,GAAG,IAAI;AACjBC,EAAAA,aAAa,GAAG,IAAA;AACJ,CAAC,KAAK;AAClB,EAAA,MAAMC,eAAe,GAAGC,eAAe,EAAE,CAAA;AACzC,EAAA,MAAMC,QAAQ,GAAGC,MAAM,CAASC,SAAS,GAAGC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACL,QAAQ,GAAG,SAAS,CAAC,CAAA;;AAErF;AACA,EAAA,MAAMM,SAAS,GAAGC,WAAW,CACxBC,KAAoB,IAAK;IACtB,IAAI,CAACZ,UAAU,EAAE;AACb,MAAA,OAAA;AACJ,KAAA;AACA,IAAA,IAAIY,KAAK,CAACC,OAAO,KAAKpB,cAAc,IAAIqB,eAAe,CAACZ,eAAe,CAACa,KAAK,CAAC,KAAKpB,EAAE,EAAE;AACnF,MAAA,IAAIG,YAAY,EAAE;QACdA,YAAY,CAACc,KAAK,CAAC,CAAA;AACnB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIb,OAAO,EAAE;AACTA,QAAAA,OAAO,EAAE,CAAA;AACb,OAAA;AACJ,KAAA;AACJ,GAAC,EACD,CAACA,OAAO,EAAED,YAAY,EAAEI,eAAe,CAACa,KAAK,EAAEf,UAAU,CAC7D,CAAC,CAAA;AAEDgB,EAAAA,SAAS,CAAC,MAAM;AACZC,IAAAA,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAER,SAAS,CAAC,CAAA;AAC7C,IAAA,OAAO,MAAM;AACTO,MAAAA,MAAM,CAACE,mBAAmB,CAAC,SAAS,EAAET,SAAS,CAAC,CAAA;KACnD,CAAA;AACL,GAAC,EAAE,CAACA,SAAS,CAAC,CAAC,CAAA;;AAEf;AACAM,EAAAA,SAAS,CAAC,MAAM;IACZ,IAAI,CAACV,SAAS,EAAE;AACZ,MAAA,OAAA;AACJ,KAAA;IAEA,IAAIV,MAAM,IAAIK,aAAa,EAAE;MACzBG,QAAQ,CAACgB,OAAO,GAAGb,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACL,QAAQ,CAAA;AAE/CG,MAAAA,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACL,QAAQ,GAAG,QAAQ,CAAA;AAC3C,KAAA;AACJ,GAAC,EAAE,CAACR,MAAM,EAAEK,aAAa,CAAC,CAAC,CAAA;AAE3Be,EAAAA,SAAS,CAAC,MAAM;IACZ,IAAI,CAACV,SAAS,EAAE;AACZ,MAAA,OAAA;AACJ,KAAA;IAEA,IAAI,CAACV,MAAM,IAAI,CAACyB,UAAU,CAACnB,eAAe,CAACa,KAAK,CAAC,EAAE;MAC/CR,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACL,QAAQ,GAAGA,QAAQ,CAACgB,OAAO,CAAA;AACnD,KAAA;GACH,EAAE,CAACxB,MAAM,EAAEM,eAAe,CAACa,KAAK,CAAC,CAAC,CAAA;AAEnC,EAAA,MAAMO,UAAsB,GAAG;IAC3B3B,EAAE;AACF4B,IAAAA,IAAI,EAAE;AACFC,MAAAA,QAAQ,EAAE,IAAA;KACb;IACD,GAAG3B,SAAAA;GACN,CAAA;EAED,OAAO;AAAEyB,IAAAA,UAAAA;GAAY,CAAA;AACzB;;;;"}
1
+ {"version":3,"file":"useDrawer.js","sources":["../../../../src/components/Drawer/hooks/useDrawer.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nimport { DrawerInfo, getIdLastDrawer, hasDrawers } from '../DrawerContext';\nimport { DrawerHookArgs } from '../Drawer.types';\nimport { usePopupContext } from '../../Popup';\nimport { canUseDOM } from '../../../utils';\n\nconst ESCAPE_KEYCODE = 27;\n\nexport const useDrawer = ({\n id,\n isOpen,\n popupInfo,\n onEscKeyDown,\n onClose,\n closeOnEsc = true,\n disableScroll = true,\n}: DrawerHookArgs) => {\n const popupController = usePopupContext();\n const overflow = useRef<string>(canUseDOM ? document.body.style.overflow : 'initial');\n\n // При ESC закрывает текущее окно, если это возможно\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (!closeOnEsc) {\n return;\n }\n if (\n event.keyCode === ESCAPE_KEYCODE &&\n getIdLastDrawer(Array.from(popupController.items.values())) === id\n ) {\n if (onEscKeyDown) {\n onEscKeyDown(event);\n return;\n }\n\n if (onClose) {\n onClose();\n }\n }\n },\n [onClose, onEscKeyDown, popupController.items, closeOnEsc],\n );\n\n useEffect(() => {\n window.addEventListener('keydown', onKeyDown);\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [onKeyDown]);\n\n // linaria не поддерживает динамический global\n useEffect(() => {\n if (!canUseDOM) {\n return;\n }\n\n if (isOpen && disableScroll) {\n overflow.current = document.body.style.overflow;\n\n document.body.style.overflow = 'hidden';\n }\n }, [isOpen, disableScroll]);\n\n useEffect(() => {\n if (!canUseDOM) {\n return;\n }\n\n if (!isOpen && !hasDrawers(Array.from(popupController.items.values()))) {\n document.body.style.overflow = overflow.current;\n }\n }, [isOpen, popupController.items]);\n\n const drawerInfo: DrawerInfo = {\n id,\n info: {\n isDrawer: true,\n },\n ...popupInfo,\n };\n\n return { drawerInfo };\n};\n"],"names":["ESCAPE_KEYCODE","useDrawer","id","isOpen","popupInfo","onEscKeyDown","onClose","closeOnEsc","disableScroll","popupController","usePopupContext","overflow","useRef","canUseDOM","document","body","style","onKeyDown","useCallback","event","keyCode","getIdLastDrawer","Array","from","items","values","useEffect","window","addEventListener","removeEventListener","current","hasDrawers","drawerInfo","info","isDrawer"],"mappings":";;;;;AAOA,MAAMA,cAAc,GAAG,EAAE,CAAA;AAElB,MAAMC,SAAS,GAAGA,CAAC;EACtBC,EAAE;EACFC,MAAM;EACNC,SAAS;EACTC,YAAY;EACZC,OAAO;AACPC,EAAAA,UAAU,GAAG,IAAI;AACjBC,EAAAA,aAAa,GAAG,IAAA;AACJ,CAAC,KAAK;AAClB,EAAA,MAAMC,eAAe,GAAGC,eAAe,EAAE,CAAA;AACzC,EAAA,MAAMC,QAAQ,GAAGC,MAAM,CAASC,SAAS,GAAGC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACL,QAAQ,GAAG,SAAS,CAAC,CAAA;;AAErF;AACA,EAAA,MAAMM,SAAS,GAAGC,WAAW,CACxBC,KAAoB,IAAK;IACtB,IAAI,CAACZ,UAAU,EAAE;AACb,MAAA,OAAA;AACJ,KAAA;IACA,IACIY,KAAK,CAACC,OAAO,KAAKpB,cAAc,IAChCqB,eAAe,CAACC,KAAK,CAACC,IAAI,CAACd,eAAe,CAACe,KAAK,CAACC,MAAM,EAAE,CAAC,CAAC,KAAKvB,EAAE,EACpE;AACE,MAAA,IAAIG,YAAY,EAAE;QACdA,YAAY,CAACc,KAAK,CAAC,CAAA;AACnB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIb,OAAO,EAAE;AACTA,QAAAA,OAAO,EAAE,CAAA;AACb,OAAA;AACJ,KAAA;AACJ,GAAC,EACD,CAACA,OAAO,EAAED,YAAY,EAAEI,eAAe,CAACe,KAAK,EAAEjB,UAAU,CAC7D,CAAC,CAAA;AAEDmB,EAAAA,SAAS,CAAC,MAAM;AACZC,IAAAA,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAEX,SAAS,CAAC,CAAA;AAC7C,IAAA,OAAO,MAAM;AACTU,MAAAA,MAAM,CAACE,mBAAmB,CAAC,SAAS,EAAEZ,SAAS,CAAC,CAAA;KACnD,CAAA;AACL,GAAC,EAAE,CAACA,SAAS,CAAC,CAAC,CAAA;;AAEf;AACAS,EAAAA,SAAS,CAAC,MAAM;IACZ,IAAI,CAACb,SAAS,EAAE;AACZ,MAAA,OAAA;AACJ,KAAA;IAEA,IAAIV,MAAM,IAAIK,aAAa,EAAE;MACzBG,QAAQ,CAACmB,OAAO,GAAGhB,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACL,QAAQ,CAAA;AAE/CG,MAAAA,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACL,QAAQ,GAAG,QAAQ,CAAA;AAC3C,KAAA;AACJ,GAAC,EAAE,CAACR,MAAM,EAAEK,aAAa,CAAC,CAAC,CAAA;AAE3BkB,EAAAA,SAAS,CAAC,MAAM;IACZ,IAAI,CAACb,SAAS,EAAE;AACZ,MAAA,OAAA;AACJ,KAAA;AAEA,IAAA,IAAI,CAACV,MAAM,IAAI,CAAC4B,UAAU,CAACT,KAAK,CAACC,IAAI,CAACd,eAAe,CAACe,KAAK,CAACC,MAAM,EAAE,CAAC,CAAC,EAAE;MACpEX,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACL,QAAQ,GAAGA,QAAQ,CAACmB,OAAO,CAAA;AACnD,KAAA;GACH,EAAE,CAAC3B,MAAM,EAAEM,eAAe,CAACe,KAAK,CAAC,CAAC,CAAA;AAEnC,EAAA,MAAMQ,UAAsB,GAAG;IAC3B9B,EAAE;AACF+B,IAAAA,IAAI,EAAE;AACFC,MAAAA,QAAQ,EAAE,IAAA;KACb;IACD,GAAG9B,SAAAA;GACN,CAAA;EAED,OAAO;AAAE4B,IAAAA,UAAAA;GAAY,CAAA;AACzB;;;;"}
@@ -1,6 +1,5 @@
1
1
  import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { forwardRef, useReducer, useRef, useCallback } from 'react';
3
- import { safeUseId } from '@salutejs/plasma-core';
4
3
  import { cx } from '../../utils/index.js';
5
4
  import { pathReducer } from './reducers/pathReducer.js';
6
5
  import { focusedPathReducer } from './reducers/focusedPathReducer.js';
@@ -14,6 +13,7 @@ import { useHashMaps } from './hooks/useHashMaps.js';
14
13
  import { FloatingPopover } from './FloatingPopover.js';
15
14
  import { Context } from './Dropdown.context.js';
16
15
  import { getItemByFocused } from './utils/getItemByFocused.js';
16
+ import { safeUseId } from '../../utils/react.js';
17
17
  import { useOutsideClick } from '../../hooks/useOutsideClick.js';
18
18
  import { getPlacement } from './utils/getPlacement.js';
19
19
  import { getItemId } from './utils/getItemId.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useReducer, useRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../engines';\nimport { cx } from '../../utils';\nimport { useOutsideClick } from '../../hooks';\n\nimport { pathReducer } from './reducers/pathReducer';\nimport { focusedPathReducer } from './reducers/focusedPathReducer';\nimport { DropdownInner } from './ui';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { Ul, base, ListWrapper } from './Dropdown.styles';\nimport { childrenWithProps, getItemByFocused, getItemId, getPlacement } from './utils';\nimport type { DropdownProps, HandleGlobalToggleType } from './Dropdown.types';\nimport { classes } from './Dropdown.tokens';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\nimport { useHashMaps } from './hooks/useHashMaps';\nimport { FloatingPopover } from './FloatingPopover';\nimport { Context } from './Dropdown.context';\n\n/**\n * Выпадающий список.\n */\nexport const dropdownRoot = (Root: RootProps<HTMLDivElement, Omit<DropdownProps, 'items'>>) =>\n forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n items,\n children,\n placement,\n offset,\n closeOnOverlayClick = true,\n onToggle,\n size,\n view,\n itemRole = 'treeitem',\n className,\n listMaxHeight,\n listWidth,\n listHeight,\n listOverflow,\n closeOnSelect = true,\n onHover,\n onItemSelect,\n onItemClick,\n trigger = 'click',\n openByRightClick = false,\n variant = 'normal',\n hasArrow = true,\n alwaysOpened = false,\n portal,\n renderItem,\n zIndex,\n beforeList,\n afterList,\n ...rest\n },\n ref,\n ) => {\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n\n const isCurrentListOpen = alwaysOpened || Boolean(path[0]);\n\n const [pathMap, focusedToValueMap] = useHashMaps(items);\n\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const treeId = safeUseId();\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>((event) => {\n if (!isCurrentListOpen || !closeOnOverlayClick || alwaysOpened) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false, event);\n }\n }, floatingPopoverRef);\n\n const handleGlobalToggle: HandleGlobalToggleType = (opened, event) => {\n if (alwaysOpened || opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened, event);\n }\n };\n\n const onContextMenu = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n\n if (alwaysOpened) {\n return;\n }\n\n handleGlobalToggle(!isCurrentListOpen, e);\n },\n [handleGlobalToggle, isCurrentListOpen, alwaysOpened],\n );\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleGlobalToggle,\n closeOnSelect,\n onItemSelect,\n onItemClick,\n });\n\n return (\n <Context.Provider\n value={{\n focusedPath,\n size,\n variant,\n itemRole,\n handleGlobalToggle,\n closeOnSelect,\n onHover,\n onItemClick,\n onItemSelect,\n hasArrow,\n treeId,\n renderItem,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleGlobalToggle}\n placement={getPlacement(placement)}\n offset={offset}\n portal={portal}\n trigger={trigger}\n target={childrenWithProps(children, {\n role: 'combobox',\n 'aria-controls': `${treeId}_tree_level_1`,\n 'aria-expanded': isCurrentListOpen,\n 'aria-activedescendant': activeDescendantItemValue\n ? getItemId(treeId, activeDescendantItemValue.toString())\n : '',\n onKeyDown,\n onContextMenu: openByRightClick ? onContextMenu : undefined,\n })}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n className={cx(className, classes.dropdownRoot)}\n ref={ref}\n view={view}\n size={size}\n style={{ display: 'inline-block' }}\n {...rest}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n ref={targetRef}\n id={`${treeId}_tree_level_1`}\n role=\"tree\"\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n >\n {beforeList}\n\n {items.map((item, index) => (\n <DropdownInner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n trigger={trigger}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n listWidth={listWidth}\n />\n ))}\n\n {afterList}\n </Ul>\n </ListWrapper>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n );\n },\n );\n\nexport const dropdownConfig = {\n name: 'Dropdown',\n tag: 'div',\n layout: dropdownRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["dropdownRoot","Root","forwardRef","items","children","placement","offset","closeOnOverlayClick","onToggle","size","view","itemRole","className","listMaxHeight","listWidth","listHeight","listOverflow","closeOnSelect","onHover","onItemSelect","onItemClick","trigger","openByRightClick","variant","hasArrow","alwaysOpened","portal","renderItem","zIndex","beforeList","afterList","rest","ref","path","dispatchPath","useReducer","pathReducer","focusedPath","dispatchFocusedPath","focusedPathReducer","isCurrentListOpen","Boolean","pathMap","focusedToValueMap","useHashMaps","activeDescendantItemValue","getItemByFocused","value","floatingPopoverRef","useRef","treeId","safeUseId","targetRef","useOutsideClick","event","type","handleGlobalToggle","opened","onContextMenu","useCallback","e","preventDefault","onKeyDown","useKeyNavigation","React","createElement","Context","Provider","FloatingPopover","getPlacement","target","childrenWithProps","role","getItemId","toString","undefined","isInner","_extends","cx","classes","style","display","ListWrapper","Ul","id","map","item","index","DropdownInner","key","currentLevel","dropdownConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown.js","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useReducer, useRef } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport { RootProps } from '../../engines';\nimport { cx } from '../../utils';\nimport { useOutsideClick } from '../../hooks';\n\nimport { pathReducer } from './reducers/pathReducer';\nimport { focusedPathReducer } from './reducers/focusedPathReducer';\nimport { DropdownInner } from './ui';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { Ul, base, ListWrapper } from './Dropdown.styles';\nimport { childrenWithProps, getItemByFocused, getItemId, getPlacement } from './utils';\nimport type { DropdownProps, HandleGlobalToggleType } from './Dropdown.types';\nimport { classes } from './Dropdown.tokens';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\nimport { useHashMaps } from './hooks/useHashMaps';\nimport { FloatingPopover } from './FloatingPopover';\nimport { Context } from './Dropdown.context';\n\n/**\n * Выпадающий список.\n */\nexport const dropdownRoot = (Root: RootProps<HTMLDivElement, Omit<DropdownProps, 'items'>>) =>\n forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n items,\n children,\n placement,\n offset,\n closeOnOverlayClick = true,\n onToggle,\n size,\n view,\n itemRole = 'treeitem',\n className,\n listMaxHeight,\n listWidth,\n listHeight,\n listOverflow,\n closeOnSelect = true,\n onHover,\n onItemSelect,\n onItemClick,\n trigger = 'click',\n openByRightClick = false,\n variant = 'normal',\n hasArrow = true,\n alwaysOpened = false,\n portal,\n renderItem,\n zIndex,\n beforeList,\n afterList,\n ...rest\n },\n ref,\n ) => {\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n\n const isCurrentListOpen = alwaysOpened || Boolean(path[0]);\n\n const [pathMap, focusedToValueMap] = useHashMaps(items);\n\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const treeId = safeUseId();\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>((event) => {\n if (!isCurrentListOpen || !closeOnOverlayClick || alwaysOpened) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false, event);\n }\n }, floatingPopoverRef);\n\n const handleGlobalToggle: HandleGlobalToggleType = (opened, event) => {\n if (alwaysOpened || opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened, event);\n }\n };\n\n const onContextMenu = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n\n if (alwaysOpened) {\n return;\n }\n\n handleGlobalToggle(!isCurrentListOpen, e);\n },\n [handleGlobalToggle, isCurrentListOpen, alwaysOpened],\n );\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleGlobalToggle,\n closeOnSelect,\n onItemSelect,\n onItemClick,\n });\n\n return (\n <Context.Provider\n value={{\n focusedPath,\n size,\n variant,\n itemRole,\n handleGlobalToggle,\n closeOnSelect,\n onHover,\n onItemClick,\n onItemSelect,\n hasArrow,\n treeId,\n renderItem,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleGlobalToggle}\n placement={getPlacement(placement)}\n offset={offset}\n portal={portal}\n trigger={trigger}\n target={childrenWithProps(children, {\n role: 'combobox',\n 'aria-controls': `${treeId}_tree_level_1`,\n 'aria-expanded': isCurrentListOpen,\n 'aria-activedescendant': activeDescendantItemValue\n ? getItemId(treeId, activeDescendantItemValue.toString())\n : '',\n onKeyDown,\n onContextMenu: openByRightClick ? onContextMenu : undefined,\n })}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n className={cx(className, classes.dropdownRoot)}\n ref={ref}\n view={view}\n size={size}\n style={{ display: 'inline-block' }}\n {...rest}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n ref={targetRef}\n id={`${treeId}_tree_level_1`}\n role=\"tree\"\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n >\n {beforeList}\n\n {items.map((item, index) => (\n <DropdownInner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n trigger={trigger}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n listWidth={listWidth}\n />\n ))}\n\n {afterList}\n </Ul>\n </ListWrapper>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n );\n },\n );\n\nexport const dropdownConfig = {\n name: 'Dropdown',\n tag: 'div',\n layout: dropdownRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["dropdownRoot","Root","forwardRef","items","children","placement","offset","closeOnOverlayClick","onToggle","size","view","itemRole","className","listMaxHeight","listWidth","listHeight","listOverflow","closeOnSelect","onHover","onItemSelect","onItemClick","trigger","openByRightClick","variant","hasArrow","alwaysOpened","portal","renderItem","zIndex","beforeList","afterList","rest","ref","path","dispatchPath","useReducer","pathReducer","focusedPath","dispatchFocusedPath","focusedPathReducer","isCurrentListOpen","Boolean","pathMap","focusedToValueMap","useHashMaps","activeDescendantItemValue","getItemByFocused","value","floatingPopoverRef","useRef","treeId","safeUseId","targetRef","useOutsideClick","event","type","handleGlobalToggle","opened","onContextMenu","useCallback","e","preventDefault","onKeyDown","useKeyNavigation","React","createElement","Context","Provider","FloatingPopover","getPlacement","target","childrenWithProps","role","getItemId","toString","undefined","isInner","_extends","cx","classes","style","display","ListWrapper","Ul","id","map","item","index","DropdownInner","key","currentLevel","dropdownConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { useFloating, autoUpdate, autoPlacement, offset, flip, shift, FloatingPortal } from '@floating-ui/react';
2
2
  import React, { forwardRef } from 'react';
3
- import { safeUseId } from '@salutejs/plasma-core';
3
+ import { safeUseId } from '../../utils/react.js';
4
4
 
5
5
  // TODO: #2003
6
6
  const LIST_PADDING = 2;
@@ -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 '@salutejs/plasma-core';\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, 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: offset?.[1] || (isInner ? LIST_PADDING * 2 : 0),\n crossAxis: offset?.[0] || (isInner ? -LIST_PADDING : 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","target","children","opened","onToggle","placement","portal","offset","isInner","trigger","zIndex","ref","refs","floatingStyles","useFloating","whileElementsMounted","referenceEl","floatingEl","update","autoUpdate","ancestorScroll","ancestorResize","layoutShift","undefined","open","middleware","autoPlacement","offsetMiddleware","mainAxis","crossAxis","flip","fallbackAxisSideDirection","shift","wrappedId","safeUseId","handleTargetClick","event","handleTargetMouseEnter","handleTargetMouseLeave","relatedTarget","HTMLElement","floating","current","contains","handleFloatingMouseLeave","reference","React","createElement","id","style","position","display","setReference","onClick","onMouseEnter","onMouseLeave","FloatingPortal","getFloatingPortalProps","setFloating","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} 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, 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: offset?.[1] || (isInner ? LIST_PADDING * 2 : 0),\n crossAxis: offset?.[0] || (isInner ? -LIST_PADDING : 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","target","children","opened","onToggle","placement","portal","offset","isInner","trigger","zIndex","ref","refs","floatingStyles","useFloating","whileElementsMounted","referenceEl","floatingEl","update","autoUpdate","ancestorScroll","ancestorResize","layoutShift","undefined","open","middleware","autoPlacement","offsetMiddleware","mainAxis","crossAxis","flip","fallbackAxisSideDirection","shift","wrappedId","safeUseId","handleTargetClick","event","handleTargetMouseEnter","handleTargetMouseLeave","relatedTarget","HTMLElement","floating","current","contains","handleFloatingMouseLeave","reference","React","createElement","id","style","position","display","setReference","onClick","onMouseEnter","onMouseLeave","FloatingPortal","getFloatingPortalProps","setFloating","root"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownDivider.js","sources":["../../../../../src/components/Dropdown/ui/DropdownDivider/DropdownDivider.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { RootProps } from '../../../../engines';\nimport { safeUseId } from '../../../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledDropdownDivider } from './DropdownDivider.styles';\nimport type { DropdownDividerProps } from './DropdownDivider.types';\n\n/**\n * Элемент выпадающего списка\n */\nexport const dropdownDividerRoot = (Root: RootProps<HTMLDivElement, DropdownDividerProps>) =>\n forwardRef<HTMLDivElement, DropdownDividerProps>(({ id, className, view, size, ...rest }, outerRootRef) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n return (\n <Root id={innerId} ref={outerRootRef} view={view} size={size}>\n <StyledDropdownDivider className={className} {...rest} />\n </Root>\n );\n });\n\nexport const dropdownDividerConfig = {\n name: 'DropdownDivider',\n tag: 'div',\n layout: dropdownDividerRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["dropdownDividerRoot","Root","forwardRef","id","className","view","size","rest","outerRootRef","uniqId","safeUseId","innerId","React","createElement","ref","StyledDropdownDivider","_extends","dropdownDividerConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;AAUA;AACA;AACA;MACaA,mBAAmB,GAAIC,IAAqD,iBACrFC,UAAU,CAAuC,CAAC;EAAEC,EAAE;EAAEC,SAAS;EAAEC,IAAI;EAAEC,IAAI;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,KAAK;AACvG,EAAA,MAAMC,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGR,EAAE,IAAIM,MAAM,CAAA;AAE5B,EAAA,oBACIG,KAAA,CAAAC,aAAA,CAACZ,IAAI,EAAA;AAACE,IAAAA,EAAE,EAAEQ,OAAQ;AAACG,IAAAA,GAAG,EAAEN,YAAa;AAACH,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACzDM,KAAA,CAAAC,aAAA,CAACE,qBAAqB,EAAAC,QAAA,CAAA;AAACZ,IAAAA,SAAS,EAAEA,SAAAA;GAAeG,EAAAA,IAAI,CAAG,CACtD,CAAC,CAAA;AAEf,CAAC,EAAC;AAEC,MAAMU,qBAAqB,GAAG;AACjCC,EAAAA,IAAI,EAAE,iBAAiB;AACvBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAEpB,mBAAmB;AAC3BqB,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACRjB,IAAAA,IAAI,EAAE;AACFkB,MAAAA,GAAG,EAAEC,IAAAA;KACR;AACDlB,IAAAA,IAAI,EAAE;AACFiB,MAAAA,GAAG,EAAEE,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNrB,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;"}
1
+ {"version":3,"file":"DropdownDivider.js","sources":["../../../../../src/components/Dropdown/ui/DropdownDivider/DropdownDivider.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledDropdownDivider } from './DropdownDivider.styles';\nimport type { DropdownDividerProps } from './DropdownDivider.types';\n\n/**\n * Элемент выпадающего списка\n */\nexport const dropdownDividerRoot = (Root: RootProps<HTMLDivElement, DropdownDividerProps>) =>\n forwardRef<HTMLDivElement, DropdownDividerProps>(({ id, className, view, size, ...rest }, outerRootRef) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n return (\n <Root id={innerId} ref={outerRootRef} view={view} size={size}>\n <StyledDropdownDivider className={className} {...rest} />\n </Root>\n );\n });\n\nexport const dropdownDividerConfig = {\n name: 'DropdownDivider',\n tag: 'div',\n layout: dropdownDividerRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["dropdownDividerRoot","Root","forwardRef","id","className","view","size","rest","outerRootRef","uniqId","safeUseId","innerId","React","createElement","ref","StyledDropdownDivider","_extends","dropdownDividerConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;AASA;AACA;AACA;MACaA,mBAAmB,GAAIC,IAAqD,iBACrFC,UAAU,CAAuC,CAAC;EAAEC,EAAE;EAAEC,SAAS;EAAEC,IAAI;EAAEC,IAAI;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,KAAK;AACvG,EAAA,MAAMC,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGR,EAAE,IAAIM,MAAM,CAAA;AAE5B,EAAA,oBACIG,KAAA,CAAAC,aAAA,CAACZ,IAAI,EAAA;AAACE,IAAAA,EAAE,EAAEQ,OAAQ;AAACG,IAAAA,GAAG,EAAEN,YAAa;AAACH,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACzDM,KAAA,CAAAC,aAAA,CAACE,qBAAqB,EAAAC,QAAA,CAAA;AAACZ,IAAAA,SAAS,EAAEA,SAAAA;GAAeG,EAAAA,IAAI,CAAG,CACtD,CAAC,CAAA;AAEf,CAAC,EAAC;AAEC,MAAMU,qBAAqB,GAAG;AACjCC,EAAAA,IAAI,EAAE,iBAAiB;AACvBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAEpB,mBAAmB;AAC3BqB,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACRjB,IAAAA,IAAI,EAAE;AACFkB,MAAAA,GAAG,EAAEC,IAAAA;KACR;AACDlB,IAAAA,IAAI,EAAE;AACFiB,MAAAA,GAAG,EAAEE,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNrB,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownFooter.js","sources":["../../../../../src/components/Dropdown/ui/DropdownFooter/DropdownFooter.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { RootProps } from '../../../../engines';\nimport { safeUseId } from '../../../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledDropdownFooter } from './DropdownFooter.styles';\nimport type { DropdownFooterProps } from './DropdownFooter.type';\n\n/**\n * Элемент выпадающего списка\n */\nexport const dropdownFooterRoot = (Root: RootProps<HTMLDivElement, DropdownFooterProps>) =>\n forwardRef<HTMLDivElement, DropdownFooterProps>(\n ({ id, className, children, view, size, ...rest }, outerRootRef) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n return (\n <Root id={innerId} ref={outerRootRef} view={view} size={size}>\n <StyledDropdownFooter className={className} {...rest}>\n {children}\n </StyledDropdownFooter>\n </Root>\n );\n },\n );\n\nexport const dropdownFooterConfig = {\n name: 'DropdownFooter',\n tag: 'div',\n layout: dropdownFooterRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["dropdownFooterRoot","Root","forwardRef","id","className","children","view","size","rest","outerRootRef","uniqId","safeUseId","innerId","React","createElement","ref","StyledDropdownFooter","_extends","dropdownFooterConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;AAUA;AACA;AACA;MACaA,kBAAkB,GAAIC,IAAoD,iBACnFC,UAAU,CACN,CAAC;EAAEC,EAAE;EAAEC,SAAS;EAAEC,QAAQ;EAAEC,IAAI;EAAEC,IAAI;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,KAAK;AAChE,EAAA,MAAMC,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGT,EAAE,IAAIO,MAAM,CAAA;AAE5B,EAAA,oBACIG,KAAA,CAAAC,aAAA,CAACb,IAAI,EAAA;AAACE,IAAAA,EAAE,EAAES,OAAQ;AAACG,IAAAA,GAAG,EAAEN,YAAa;AAACH,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACzDM,KAAA,CAAAC,aAAA,CAACE,oBAAoB,EAAAC,QAAA,CAAA;AAACb,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAAKI,IAAI,CAAA,EAC/CH,QACiB,CACpB,CAAC,CAAA;AAEf,CACJ,EAAC;AAEE,MAAMa,oBAAoB,GAAG;AAChCC,EAAAA,IAAI,EAAE,gBAAgB;AACtBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAErB,kBAAkB;AAC1BsB,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACRjB,IAAAA,IAAI,EAAE;AACFkB,MAAAA,GAAG,EAAEC,IAAAA;KACR;AACDlB,IAAAA,IAAI,EAAE;AACFiB,MAAAA,GAAG,EAAEE,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNrB,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;"}
1
+ {"version":3,"file":"DropdownFooter.js","sources":["../../../../../src/components/Dropdown/ui/DropdownFooter/DropdownFooter.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledDropdownFooter } from './DropdownFooter.styles';\nimport type { DropdownFooterProps } from './DropdownFooter.type';\n\n/**\n * Элемент выпадающего списка\n */\nexport const dropdownFooterRoot = (Root: RootProps<HTMLDivElement, DropdownFooterProps>) =>\n forwardRef<HTMLDivElement, DropdownFooterProps>(\n ({ id, className, children, view, size, ...rest }, outerRootRef) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n return (\n <Root id={innerId} ref={outerRootRef} view={view} size={size}>\n <StyledDropdownFooter className={className} {...rest}>\n {children}\n </StyledDropdownFooter>\n </Root>\n );\n },\n );\n\nexport const dropdownFooterConfig = {\n name: 'DropdownFooter',\n tag: 'div',\n layout: dropdownFooterRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["dropdownFooterRoot","Root","forwardRef","id","className","children","view","size","rest","outerRootRef","uniqId","safeUseId","innerId","React","createElement","ref","StyledDropdownFooter","_extends","dropdownFooterConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;AASA;AACA;AACA;MACaA,kBAAkB,GAAIC,IAAoD,iBACnFC,UAAU,CACN,CAAC;EAAEC,EAAE;EAAEC,SAAS;EAAEC,QAAQ;EAAEC,IAAI;EAAEC,IAAI;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,KAAK;AAChE,EAAA,MAAMC,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGT,EAAE,IAAIO,MAAM,CAAA;AAE5B,EAAA,oBACIG,KAAA,CAAAC,aAAA,CAACb,IAAI,EAAA;AAACE,IAAAA,EAAE,EAAES,OAAQ;AAACG,IAAAA,GAAG,EAAEN,YAAa;AAACH,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACzDM,KAAA,CAAAC,aAAA,CAACE,oBAAoB,EAAAC,QAAA,CAAA;AAACb,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAAKI,IAAI,CAAA,EAC/CH,QACiB,CACpB,CAAC,CAAA;AAEf,CACJ,EAAC;AAEE,MAAMa,oBAAoB,GAAG;AAChCC,EAAAA,IAAI,EAAE,gBAAgB;AACtBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAErB,kBAAkB;AAC1BsB,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACRjB,IAAAA,IAAI,EAAE;AACFkB,MAAAA,GAAG,EAAEC,IAAAA;KACR;AACDlB,IAAAA,IAAI,EAAE;AACFiB,MAAAA,GAAG,EAAEE,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNrB,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownGroup.js","sources":["../../../../../src/components/Dropdown/ui/DropdownGroup/DropdownGroup.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { RootProps } from '../../../../engines';\nimport { safeUseId } from '../../../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledDropdownGroup, StyledDropdownLabel } from './DropdownGroup.styles';\nimport type { DropdownGroupProps } from './DropdownGroup.type';\n\n/**\n * Элемент группы выпадающего списка\n */\nexport const dropdownGroupRoot = (Root: RootProps<HTMLDivElement, DropdownGroupProps>) =>\n forwardRef<HTMLDivElement, DropdownGroupProps>(\n ({ id, labelClassName, groupClassName, label, children, role, view, size, ...rest }, outerRootRef) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n return (\n <Root id={innerId} ref={outerRootRef} view={view} size={size} role={role}>\n <StyledDropdownLabel className={labelClassName}>{label}</StyledDropdownLabel>\n <StyledDropdownGroup className={groupClassName} {...rest}>\n {children}\n </StyledDropdownGroup>\n </Root>\n );\n },\n );\n\nexport const dropdownGroupConfig = {\n name: 'DropdownGroup',\n tag: 'div',\n layout: dropdownGroupRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["dropdownGroupRoot","Root","forwardRef","id","labelClassName","groupClassName","label","children","role","view","size","rest","outerRootRef","uniqId","safeUseId","innerId","React","createElement","ref","StyledDropdownLabel","className","StyledDropdownGroup","_extends","dropdownGroupConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;AAUA;AACA;AACA;MACaA,iBAAiB,GAAIC,IAAmD,iBACjFC,UAAU,CACN,CAAC;EAAEC,EAAE;EAAEC,cAAc;EAAEC,cAAc;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,IAAI;EAAEC,IAAI;EAAEC,IAAI;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,KAAK;AAClG,EAAA,MAAMC,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGZ,EAAE,IAAIU,MAAM,CAAA;AAE5B,EAAA,oBACIG,KAAA,CAAAC,aAAA,CAAChB,IAAI,EAAA;AAACE,IAAAA,EAAE,EAAEY,OAAQ;AAACG,IAAAA,GAAG,EAAEN,YAAa;AAACH,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAK;AAACF,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACrEQ,KAAA,CAAAC,aAAA,CAACE,mBAAmB,EAAA;AAACC,IAAAA,SAAS,EAAEhB,cAAAA;GAAiBE,EAAAA,KAA2B,CAAC,eAC7EU,KAAA,CAAAC,aAAA,CAACI,mBAAmB,EAAAC,QAAA,CAAA;AAACF,IAAAA,SAAS,EAAEf,cAAAA;AAAe,GAAA,EAAKM,IAAI,CAAA,EACnDJ,QACgB,CACnB,CAAC,CAAA;AAEf,CACJ,EAAC;AAEE,MAAMgB,mBAAmB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,eAAe;AACrBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAE1B,iBAAiB;AACzB2B,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACRnB,IAAAA,IAAI,EAAE;AACFoB,MAAAA,GAAG,EAAEC,IAAAA;KACR;AACDpB,IAAAA,IAAI,EAAE;AACFmB,MAAAA,GAAG,EAAEE,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNvB,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;"}
1
+ {"version":3,"file":"DropdownGroup.js","sources":["../../../../../src/components/Dropdown/ui/DropdownGroup/DropdownGroup.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledDropdownGroup, StyledDropdownLabel } from './DropdownGroup.styles';\nimport type { DropdownGroupProps } from './DropdownGroup.type';\n\n/**\n * Элемент группы выпадающего списка\n */\nexport const dropdownGroupRoot = (Root: RootProps<HTMLDivElement, DropdownGroupProps>) =>\n forwardRef<HTMLDivElement, DropdownGroupProps>(\n ({ id, labelClassName, groupClassName, label, children, role, view, size, ...rest }, outerRootRef) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n return (\n <Root id={innerId} ref={outerRootRef} view={view} size={size} role={role}>\n <StyledDropdownLabel className={labelClassName}>{label}</StyledDropdownLabel>\n <StyledDropdownGroup className={groupClassName} {...rest}>\n {children}\n </StyledDropdownGroup>\n </Root>\n );\n },\n );\n\nexport const dropdownGroupConfig = {\n name: 'DropdownGroup',\n tag: 'div',\n layout: dropdownGroupRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["dropdownGroupRoot","Root","forwardRef","id","labelClassName","groupClassName","label","children","role","view","size","rest","outerRootRef","uniqId","safeUseId","innerId","React","createElement","ref","StyledDropdownLabel","className","StyledDropdownGroup","_extends","dropdownGroupConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;AASA;AACA;AACA;MACaA,iBAAiB,GAAIC,IAAmD,iBACjFC,UAAU,CACN,CAAC;EAAEC,EAAE;EAAEC,cAAc;EAAEC,cAAc;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,IAAI;EAAEC,IAAI;EAAEC,IAAI;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,KAAK;AAClG,EAAA,MAAMC,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGZ,EAAE,IAAIU,MAAM,CAAA;AAE5B,EAAA,oBACIG,KAAA,CAAAC,aAAA,CAAChB,IAAI,EAAA;AAACE,IAAAA,EAAE,EAAEY,OAAQ;AAACG,IAAAA,GAAG,EAAEN,YAAa;AAACH,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAK;AAACF,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACrEQ,KAAA,CAAAC,aAAA,CAACE,mBAAmB,EAAA;AAACC,IAAAA,SAAS,EAAEhB,cAAAA;GAAiBE,EAAAA,KAA2B,CAAC,eAC7EU,KAAA,CAAAC,aAAA,CAACI,mBAAmB,EAAAC,QAAA,CAAA;AAACF,IAAAA,SAAS,EAAEf,cAAAA;AAAe,GAAA,EAAKM,IAAI,CAAA,EACnDJ,QACgB,CACnB,CAAC,CAAA;AAEf,CACJ,EAAC;AAEE,MAAMgB,mBAAmB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,eAAe;AACrBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAE1B,iBAAiB;AACzB2B,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACRnB,IAAAA,IAAI,EAAE;AACFoB,MAAAA,GAAG,EAAEC,IAAAA;KACR;AACDpB,IAAAA,IAAI,EAAE;AACFmB,MAAAA,GAAG,EAAEE,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNvB,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownHeader.js","sources":["../../../../../src/components/Dropdown/ui/DropdownHeader/DropdownHeader.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { RootProps } from '../../../../engines';\nimport { safeUseId } from '../../../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledDropdownHeader } from './DropdownHeader.styles';\nimport type { DropdownHeaderProps } from './DropdownHeader.type';\n\n/**\n * Элемент выпадающего списка\n */\nexport const dropdownHeaderRoot = (Root: RootProps<HTMLDivElement, DropdownHeaderProps>) =>\n forwardRef<HTMLDivElement, DropdownHeaderProps>(\n ({ id, className, view, size, children, ...rest }, outerRootRef) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n return (\n <Root id={innerId} ref={outerRootRef} view={view} size={size}>\n <StyledDropdownHeader className={className} {...rest}>\n {children}\n </StyledDropdownHeader>\n </Root>\n );\n },\n );\n\nexport const dropdownHeaderConfig = {\n name: 'DropdownHeader',\n tag: 'div',\n layout: dropdownHeaderRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["dropdownHeaderRoot","Root","forwardRef","id","className","view","size","children","rest","outerRootRef","uniqId","safeUseId","innerId","React","createElement","ref","StyledDropdownHeader","_extends","dropdownHeaderConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;AAUA;AACA;AACA;MACaA,kBAAkB,GAAIC,IAAoD,iBACnFC,UAAU,CACN,CAAC;EAAEC,EAAE;EAAEC,SAAS;EAAEC,IAAI;EAAEC,IAAI;EAAEC,QAAQ;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,KAAK;AAChE,EAAA,MAAMC,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGT,EAAE,IAAIO,MAAM,CAAA;AAE5B,EAAA,oBACIG,KAAA,CAAAC,aAAA,CAACb,IAAI,EAAA;AAACE,IAAAA,EAAE,EAAES,OAAQ;AAACG,IAAAA,GAAG,EAAEN,YAAa;AAACJ,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACzDO,KAAA,CAAAC,aAAA,CAACE,oBAAoB,EAAAC,QAAA,CAAA;AAACb,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAAKI,IAAI,CAAA,EAC/CD,QACiB,CACpB,CAAC,CAAA;AAEf,CACJ,EAAC;AAEE,MAAMW,oBAAoB,GAAG;AAChCC,EAAAA,IAAI,EAAE,gBAAgB;AACtBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAErB,kBAAkB;AAC1BsB,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACRlB,IAAAA,IAAI,EAAE;AACFmB,MAAAA,GAAG,EAAEC,IAAAA;KACR;AACDnB,IAAAA,IAAI,EAAE;AACFkB,MAAAA,GAAG,EAAEE,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNtB,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;"}
1
+ {"version":3,"file":"DropdownHeader.js","sources":["../../../../../src/components/Dropdown/ui/DropdownHeader/DropdownHeader.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledDropdownHeader } from './DropdownHeader.styles';\nimport type { DropdownHeaderProps } from './DropdownHeader.type';\n\n/**\n * Элемент выпадающего списка\n */\nexport const dropdownHeaderRoot = (Root: RootProps<HTMLDivElement, DropdownHeaderProps>) =>\n forwardRef<HTMLDivElement, DropdownHeaderProps>(\n ({ id, className, view, size, children, ...rest }, outerRootRef) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n return (\n <Root id={innerId} ref={outerRootRef} view={view} size={size}>\n <StyledDropdownHeader className={className} {...rest}>\n {children}\n </StyledDropdownHeader>\n </Root>\n );\n },\n );\n\nexport const dropdownHeaderConfig = {\n name: 'DropdownHeader',\n tag: 'div',\n layout: dropdownHeaderRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["dropdownHeaderRoot","Root","forwardRef","id","className","view","size","children","rest","outerRootRef","uniqId","safeUseId","innerId","React","createElement","ref","StyledDropdownHeader","_extends","dropdownHeaderConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;AASA;AACA;AACA;MACaA,kBAAkB,GAAIC,IAAoD,iBACnFC,UAAU,CACN,CAAC;EAAEC,EAAE;EAAEC,SAAS;EAAEC,IAAI;EAAEC,IAAI;EAAEC,QAAQ;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,KAAK;AAChE,EAAA,MAAMC,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGT,EAAE,IAAIO,MAAM,CAAA;AAE5B,EAAA,oBACIG,KAAA,CAAAC,aAAA,CAACb,IAAI,EAAA;AAACE,IAAAA,EAAE,EAAES,OAAQ;AAACG,IAAAA,GAAG,EAAEN,YAAa;AAACJ,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACzDO,KAAA,CAAAC,aAAA,CAACE,oBAAoB,EAAAC,QAAA,CAAA;AAACb,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAAKI,IAAI,CAAA,EAC/CD,QACiB,CACpB,CAAC,CAAA;AAEf,CACJ,EAAC;AAEE,MAAMW,oBAAoB,GAAG;AAChCC,EAAAA,IAAI,EAAE,gBAAgB;AACtBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAErB,kBAAkB;AAC1BsB,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACRlB,IAAAA,IAAI,EAAE;AACFmB,MAAAA,GAAG,EAAEC,IAAAA;KACR;AACDnB,IAAAA,IAAI,EAAE;AACFkB,MAAAA,GAAG,EAAEE,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNtB,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;"}
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { safeUseId } from '@salutejs/plasma-core';
3
2
  import { DropdownItem } from '../DropdownItem/DropdownItem.js';
4
3
  import { ListWrapper, Ul } from '../../Dropdown.styles.js';
5
4
  import { FloatingPopover } from '../../FloatingPopover.js';
5
+ import { safeUseId } from '../../../../utils/react.js';
6
6
  import { getPlacement } from '../../utils/getPlacement.js';
7
7
 
8
8
  const DropdownInner = ({