@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 +1 @@
1
- {"version":3,"file":"CalendarQuarters.js","sources":["../../../../../src/components/Calendar/ui/CalendarQuarters/CalendarQuarters.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useRef } from 'react';\n\nimport { useQuarters } from '../../hooks';\nimport { innerTokens, tokens } from '../../Calendar.tokens';\nimport { ROW_QUARTER_STEP, canSelectDate, getInRange, getSideInRange, isSameDay, isSelectProcess } from '../../utils';\nimport { DateStructureItem } from '../DateStructureItem/DateStructureItem';\n\nimport type { CalendarQuartersProps } from './CalendarQuarters.types';\nimport { StyledCalendarQuarters } from './CalendarQuarters.styles';\n\n/**\n * Компонент кварталов в календаре.\n */\nexport const CalendarQuarters: React.FC<CalendarQuartersProps> = ({\n date: currentDate,\n value,\n selectIndexes,\n eventList,\n disabledList,\n min,\n max,\n outerRefs,\n isDouble,\n isSecond,\n hoveredQuarter,\n onChangeQuarter,\n onHoverQuarter,\n onSetSelected,\n onKeyDown,\n}) => {\n const minDate = min ? new Date(min.getFullYear(), min.getMonth(), 1) : undefined;\n const maxDate = max ? new Date(max.getFullYear(), max.getMonth() + 1, 0) : undefined;\n\n const [quarters, selected] = useQuarters({\n date: currentDate,\n value,\n eventList,\n disabledList,\n min: minDate,\n max: maxDate,\n });\n const selectedRef = useRef(selected);\n const onSetSelectedRef = useRef(onSetSelected);\n\n const offset = isSecond ? ROW_QUARTER_STEP : 0;\n\n const quarterItemTokens = {\n [`${innerTokens.dateStructureFontFamily}`]: `var(${tokens.calendarQuarterFontFamily})`,\n [`${innerTokens.dateStructureFontSize}`]: `var(${tokens.calendarQuarterFontSize})`,\n [`${innerTokens.dateStructureFontWeight}`]: `var(${tokens.calendarQuarterFontWeight})`,\n [`${innerTokens.dateStructureFontLineHeight}`]: `var(${tokens.calendarQuarterFontLineHeight})`,\n [`${innerTokens.dateStructureFontLetterSpacing}`]: `var(${tokens.calendarQuarterFontLetterSpacing})`,\n [`${innerTokens.dateStructureFontStyle}`]: `var(${tokens.calendarQuarterFontStyle})`,\n [`${innerTokens.dateStructureSelectedFontWeight}`]: `var(${tokens.calendarQuarterSelectedFontWeight})`,\n [`${innerTokens.dateStructureBorderRadius}`]: `var(${tokens.calendarQuarterItemBorderRadius})`,\n };\n\n const getSelectedDate = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const { day, monthIndex, year } = event.currentTarget.dataset;\n\n const selectedDate = {\n day: Number(day),\n monthIndex: Number(monthIndex),\n year: Number(year),\n };\n\n if (!canSelectDate(selectedDate, value, disabledList)) {\n return;\n }\n\n return selectedDate;\n },\n [disabledList, value],\n );\n\n const handleOnChangeQuarter = useCallback(\n (i: number, j: number, quarterName: string) => (event: React.MouseEvent<HTMLDivElement>) => {\n /**\n * нужно вызвать stopImmediatePropagation для случаев, когда\n * обработчик события onClick навешивается снаружи.\n * Как, например, в компоненте Popup\n */\n event.nativeEvent.stopImmediatePropagation();\n\n const selectedDate = getSelectedDate(event);\n\n if (!selectedDate) {\n return;\n }\n\n onChangeQuarter(selectedDate, [i + offset, j], quarterName);\n\n if (isSelectProcess(value)) {\n onHoverQuarter?.(undefined);\n }\n },\n [getSelectedDate, onChangeQuarter, offset, value, onHoverQuarter],\n );\n\n const handleOnHoverQuarter = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedDate = getSelectedDate(event);\n const isSelectedDone = Array.isArray(value) && value[0] && value[1];\n\n if (!selectedDate || !Array.isArray(value) || isSelectedDone) {\n return;\n }\n\n onHoverQuarter?.(selectedDate);\n },\n [getSelectedDate, onHoverQuarter, value],\n );\n\n const handleMouseOutGrid = () => onHoverQuarter?.(undefined);\n\n const getRefs = useCallback(\n (element: HTMLDivElement, i: number, j: number) => {\n outerRefs.current[i + offset][j] = element;\n },\n [offset, outerRefs],\n );\n\n useEffect(() => {\n if (selectedRef.current) {\n onSetSelectedRef.current?.(selectedRef.current);\n }\n }, []);\n\n return (\n <StyledCalendarQuarters\n role=\"grid\"\n aria-labelledby=\"id-grid-label\"\n onKeyDown={onKeyDown}\n onMouseLeave={handleMouseOutGrid}\n >\n {quarters.map((quarter, i) => (\n <Fragment key={i}>\n {quarter.map(\n (\n {\n quarterName,\n isSelected,\n isCurrent,\n date,\n events,\n isOutOfMinMaxRange,\n inRange,\n disabled,\n disabledArrowKey,\n disabledDates,\n },\n j,\n ) => {\n return (\n <DateStructureItem\n ref={(element: HTMLDivElement) => getRefs(element, i, j)}\n style={quarterItemTokens}\n eventList={events}\n disabled={disabled}\n day={date.day}\n year={date.year}\n monthIndex={date.monthIndex}\n isFocused={\n i + offset === selectIndexes?.[0] &&\n j === selectIndexes?.[1] &&\n !isOutOfMinMaxRange\n }\n isSelected={isSelected}\n isCurrent={isCurrent}\n isDouble={isDouble}\n isHovered={isSameDay(date, hoveredQuarter)}\n inRange={getInRange(value, date, hoveredQuarter, inRange)}\n sideInRange={getSideInRange(value, date, hoveredQuarter, isSelected)}\n onClick={disabled ? undefined : handleOnChangeQuarter(i, j, String(quarterName))}\n onMouseOver={disabled ? undefined : handleOnHoverQuarter}\n key={`StyledQuarter-${i}-${j}`}\n role=\"gridcell\"\n aria-label={quarterName}\n disabledArrowKey={disabledArrowKey}\n disabledMonths={disabledDates}\n isDayInCurrentMonth\n >\n {quarterName}\n </DateStructureItem>\n );\n },\n )}\n </Fragment>\n ))}\n </StyledCalendarQuarters>\n );\n};\n"],"names":["CalendarQuarters","date","currentDate","value","selectIndexes","eventList","disabledList","min","max","outerRefs","isDouble","isSecond","hoveredQuarter","onChangeQuarter","onHoverQuarter","onSetSelected","onKeyDown","minDate","Date","getFullYear","getMonth","undefined","maxDate","quarters","selected","useQuarters","selectedRef","useRef","onSetSelectedRef","offset","ROW_QUARTER_STEP","quarterItemTokens","innerTokens","dateStructureFontFamily","tokens","calendarQuarterFontFamily","dateStructureFontSize","calendarQuarterFontSize","dateStructureFontWeight","calendarQuarterFontWeight","dateStructureFontLineHeight","calendarQuarterFontLineHeight","dateStructureFontLetterSpacing","calendarQuarterFontLetterSpacing","dateStructureFontStyle","calendarQuarterFontStyle","dateStructureSelectedFontWeight","calendarQuarterSelectedFontWeight","dateStructureBorderRadius","calendarQuarterItemBorderRadius","getSelectedDate","useCallback","event","day","monthIndex","year","currentTarget","dataset","selectedDate","Number","canSelectDate","handleOnChangeQuarter","i","j","quarterName","nativeEvent","stopImmediatePropagation","isSelectProcess","handleOnHoverQuarter","isSelectedDone","Array","isArray","handleMouseOutGrid","getRefs","element","current","useEffect","React","createElement","StyledCalendarQuarters","role","onMouseLeave","map","quarter","Fragment","key","isSelected","isCurrent","events","isOutOfMinMaxRange","inRange","disabled","disabledArrowKey","disabledDates","DateStructureItem","ref","style","isFocused","isHovered","isSameDay","getInRange","sideInRange","getSideInRange","onClick","String","onMouseOver","disabledMonths","isDayInCurrentMonth"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarQuarters.js","sources":["../../../../../src/components/Calendar/ui/CalendarQuarters/CalendarQuarters.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useRef } from 'react';\n\nimport { useQuarters } from '../../hooks';\nimport { innerTokens, tokens } from '../../Calendar.tokens';\nimport { ROW_QUARTER_STEP, canSelectDate, getInRange, getSideInRange, isSameDay, isSelectProcess } from '../../utils';\nimport { DateStructureItem } from '../DateStructureItem/DateStructureItem';\n\nimport type { CalendarQuartersProps } from './CalendarQuarters.types';\nimport { StyledCalendarQuarters } from './CalendarQuarters.styles';\n\n/**\n * Компонент кварталов в календаре.\n */\nexport const CalendarQuarters: React.FC<CalendarQuartersProps> = ({\n date: currentDate,\n value,\n selectIndexes,\n eventList,\n disabledList,\n min,\n max,\n outerRefs,\n isDouble,\n isSecond,\n hoveredQuarter,\n onChangeQuarter,\n onHoverQuarter,\n onSetSelected,\n onKeyDown,\n}) => {\n const minDate = min ? new Date(min.getFullYear(), min.getMonth(), 1) : undefined;\n const maxDate = max ? new Date(max.getFullYear(), max.getMonth() + 1, 0) : undefined;\n\n const [quarters, selected] = useQuarters({\n date: currentDate,\n value,\n eventList,\n disabledList,\n min: minDate,\n max: maxDate,\n });\n const selectedRef = useRef(selected);\n const onSetSelectedRef = useRef(onSetSelected);\n\n const offset = isSecond ? ROW_QUARTER_STEP : 0;\n\n const quarterItemTokens = {\n [`${innerTokens.dateStructureFontFamily}`]: `var(${tokens.calendarQuarterFontFamily})`,\n [`${innerTokens.dateStructureFontSize}`]: `var(${tokens.calendarQuarterFontSize})`,\n [`${innerTokens.dateStructureFontWeight}`]: `var(${tokens.calendarQuarterFontWeight})`,\n [`${innerTokens.dateStructureFontLineHeight}`]: `var(${tokens.calendarQuarterFontLineHeight})`,\n [`${innerTokens.dateStructureFontLetterSpacing}`]: `var(${tokens.calendarQuarterFontLetterSpacing})`,\n [`${innerTokens.dateStructureFontStyle}`]: `var(${tokens.calendarQuarterFontStyle})`,\n [`${innerTokens.dateStructureSelectedFontWeight}`]: `var(${tokens.calendarQuarterSelectedFontWeight})`,\n [`${innerTokens.dateStructureBorderRadius}`]: `var(${tokens.calendarQuarterItemBorderRadius})`,\n };\n\n const getSelectedDate = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const { day, monthIndex, year } = event.currentTarget.dataset;\n\n const selectedDate = {\n day: Number(day),\n monthIndex: Number(monthIndex),\n year: Number(year),\n };\n\n if (!canSelectDate(selectedDate, value, disabledList)) {\n return;\n }\n\n return selectedDate;\n },\n [disabledList, value],\n );\n\n const handleOnChangeQuarter = useCallback(\n (i: number, j: number, quarterName: string) => (event: React.MouseEvent<HTMLDivElement>) => {\n /**\n * нужно вызвать stopImmediatePropagation для случаев, когда\n * обработчик события onClick навешивается снаружи.\n * Как, например, в компоненте Popup\n */\n event.nativeEvent.stopImmediatePropagation();\n\n const selectedDate = getSelectedDate(event);\n\n if (!selectedDate) {\n return;\n }\n\n onChangeQuarter(selectedDate, [i + offset, j], quarterName);\n\n if (isSelectProcess(value)) {\n onHoverQuarter?.(undefined);\n }\n },\n [getSelectedDate, onChangeQuarter, offset, value, onHoverQuarter],\n );\n\n const handleOnHoverQuarter = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedDate = getSelectedDate(event);\n const isSelectedDone = Array.isArray(value) && value[0] && value[1];\n\n if (!selectedDate || !Array.isArray(value) || isSelectedDone) {\n return;\n }\n\n onHoverQuarter?.(selectedDate);\n },\n [getSelectedDate, onHoverQuarter, value],\n );\n\n const handleMouseOutGrid = () => onHoverQuarter?.(undefined);\n\n const getRefs = useCallback(\n (element: HTMLDivElement, i: number, j: number) => {\n if (!outerRefs.current[i + offset]) {\n outerRefs.current[i + offset] = [];\n }\n\n outerRefs.current[i + offset][j] = element;\n },\n [offset, outerRefs],\n );\n\n useEffect(() => {\n if (selectedRef.current) {\n onSetSelectedRef.current?.(selectedRef.current);\n }\n }, []);\n\n return (\n <StyledCalendarQuarters\n role=\"grid\"\n aria-labelledby=\"id-grid-label\"\n onKeyDown={onKeyDown}\n onMouseLeave={handleMouseOutGrid}\n >\n {quarters.map((quarter, i) => (\n <Fragment key={i}>\n {quarter.map(\n (\n {\n quarterName,\n isSelected,\n isCurrent,\n date,\n events,\n isOutOfMinMaxRange,\n inRange,\n disabled,\n disabledArrowKey,\n disabledDates,\n },\n j,\n ) => {\n return (\n <DateStructureItem\n ref={(element: HTMLDivElement) => getRefs(element, i, j)}\n style={quarterItemTokens}\n eventList={events}\n disabled={disabled}\n day={date.day}\n year={date.year}\n monthIndex={date.monthIndex}\n isFocused={\n i + offset === selectIndexes?.[0] &&\n j === selectIndexes?.[1] &&\n !isOutOfMinMaxRange\n }\n isSelected={isSelected}\n isCurrent={isCurrent}\n isDouble={isDouble}\n isHovered={isSameDay(date, hoveredQuarter)}\n inRange={getInRange(value, date, hoveredQuarter, inRange)}\n sideInRange={getSideInRange(value, date, hoveredQuarter, isSelected)}\n onClick={disabled ? undefined : handleOnChangeQuarter(i, j, String(quarterName))}\n onMouseOver={disabled ? undefined : handleOnHoverQuarter}\n key={`StyledQuarter-${i}-${j}`}\n role=\"gridcell\"\n aria-label={quarterName}\n disabledArrowKey={disabledArrowKey}\n disabledMonths={disabledDates}\n isDayInCurrentMonth\n >\n {quarterName}\n </DateStructureItem>\n );\n },\n )}\n </Fragment>\n ))}\n </StyledCalendarQuarters>\n );\n};\n"],"names":["CalendarQuarters","date","currentDate","value","selectIndexes","eventList","disabledList","min","max","outerRefs","isDouble","isSecond","hoveredQuarter","onChangeQuarter","onHoverQuarter","onSetSelected","onKeyDown","minDate","Date","getFullYear","getMonth","undefined","maxDate","quarters","selected","useQuarters","selectedRef","useRef","onSetSelectedRef","offset","ROW_QUARTER_STEP","quarterItemTokens","innerTokens","dateStructureFontFamily","tokens","calendarQuarterFontFamily","dateStructureFontSize","calendarQuarterFontSize","dateStructureFontWeight","calendarQuarterFontWeight","dateStructureFontLineHeight","calendarQuarterFontLineHeight","dateStructureFontLetterSpacing","calendarQuarterFontLetterSpacing","dateStructureFontStyle","calendarQuarterFontStyle","dateStructureSelectedFontWeight","calendarQuarterSelectedFontWeight","dateStructureBorderRadius","calendarQuarterItemBorderRadius","getSelectedDate","useCallback","event","day","monthIndex","year","currentTarget","dataset","selectedDate","Number","canSelectDate","handleOnChangeQuarter","i","j","quarterName","nativeEvent","stopImmediatePropagation","isSelectProcess","handleOnHoverQuarter","isSelectedDone","Array","isArray","handleMouseOutGrid","getRefs","element","current","useEffect","React","createElement","StyledCalendarQuarters","role","onMouseLeave","map","quarter","Fragment","key","isSelected","isCurrent","events","isOutOfMinMaxRange","inRange","disabled","disabledArrowKey","disabledDates","DateStructureItem","ref","style","isFocused","isHovered","isSameDay","getInRange","sideInRange","getSideInRange","onClick","String","onMouseOver","disabledMonths","isDayInCurrentMonth"],"mappings":"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"}
@@ -94,6 +94,9 @@ const CalendarYears = ({
94
94
  }, [getSelectedDate, onHoverYear, value]);
95
95
  const handleMouseOutGrid = () => onHoverYear?.(undefined);
96
96
  const getRefs = useCallback((element, i, j) => {
97
+ if (!outerRefs.current[i + offset]) {
98
+ outerRefs.current[i + offset] = [];
99
+ }
97
100
  outerRefs.current[i + offset][j] = element;
98
101
  }, [outerRefs]);
99
102
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarYears.js","sources":["../../../../../src/components/Calendar/ui/CalendarYears/CalendarYears.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useRef } from 'react';\n\nimport { useYears } from '../../hooks';\nimport { innerTokens, tokens } from '../../Calendar.tokens';\nimport { ROW_YEAR_STEP, canSelectDate, getInRange, getSideInRange, isSameDay, isSelectProcess } from '../../utils';\nimport { DateStructureItem } from '../DateStructureItem/DateStructureItem';\n\nimport type { CalendarYearsProps } from './CalendarYears.types';\nimport { StyledCalendarYears } from './CalendarYears.styles';\n\n/**\n * Компонент годов в календаре.\n */\nexport const CalendarYears: React.FC<CalendarYearsProps> = ({\n date: currentDate,\n value,\n startYear,\n selectIndexes,\n eventList,\n disabledList,\n min,\n max,\n outerRefs,\n isDouble,\n isSecond,\n hoveredYear,\n onChangeYear,\n onHoverYear,\n onSetSelected,\n onKeyDown,\n}) => {\n const minDate = min ? new Date(min.getFullYear(), 0, 1) : undefined;\n const maxDate = max ? new Date(max.getFullYear(), 11, 31) : undefined;\n\n const [years, selected] = useYears({\n date: currentDate,\n value,\n startYear,\n eventList,\n disabledList,\n min: minDate,\n max: maxDate,\n });\n const selectedRef = useRef(selected);\n const onSetSelectedRef = useRef(onSetSelected);\n\n const offset = isSecond ? ROW_YEAR_STEP : 0;\n\n const yearItemTokens = {\n [`${innerTokens.dateStructureFontFamily}`]: `var(${tokens.calendarYearFontFamily})`,\n [`${innerTokens.dateStructureFontSize}`]: `var(${tokens.calendarYearFontSize})`,\n [`${innerTokens.dateStructureFontWeight}`]: `var(${tokens.calendarYearFontWeight})`,\n [`${innerTokens.dateStructureFontLineHeight}`]: `var(${tokens.calendarYearFontLineHeight})`,\n [`${innerTokens.dateStructureFontLetterSpacing}`]: `var(${tokens.calendarYearFontLetterSpacing})`,\n [`${innerTokens.dateStructureFontStyle}`]: `var(${tokens.calendarYearFontStyle})`,\n [`${innerTokens.dateStructureSelectedFontWeight}`]: `var(${tokens.calendarYearSelectedFontWeight})`,\n [`${innerTokens.dateStructureBorderRadius}`]: `var(${tokens.calendarYearItemBorderRadius})`,\n };\n\n const getSelectedDate = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const { day, monthIndex, year } = event.currentTarget.dataset;\n\n const selectedDate = {\n day: Number(day),\n monthIndex: Number(monthIndex),\n year: Number(year),\n };\n\n if (!canSelectDate(selectedDate, value, disabledList)) {\n return;\n }\n\n return selectedDate;\n },\n [disabledList, value],\n );\n\n const handleOnChangeYear = useCallback(\n (i: number, j: number) => (event: React.MouseEvent<HTMLDivElement>) => {\n /**\n * нужно вызвать stopImmediatePropagation для случаев, когда\n * обработчик события onClick навешивается снаружи.\n * Как, например, в компоненте Popup\n */\n event.nativeEvent.stopImmediatePropagation();\n\n const selectedDate = getSelectedDate(event);\n\n if (!selectedDate) {\n return;\n }\n\n onChangeYear(selectedDate, [i + offset, j]);\n\n if (isSelectProcess(value)) {\n onHoverYear?.(undefined);\n }\n },\n [getSelectedDate, onChangeYear, offset, value, onHoverYear],\n );\n\n const handleOnHoverYear = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedDate = getSelectedDate(event);\n const isSelectedDone = Array.isArray(value) && value[0] && value[1];\n\n if (!selectedDate || !Array.isArray(value) || isSelectedDone) {\n return;\n }\n\n onHoverYear?.(selectedDate);\n },\n [getSelectedDate, onHoverYear, value],\n );\n\n const handleMouseOutGrid = () => onHoverYear?.(undefined);\n\n const getRefs = useCallback(\n (element: HTMLDivElement, i: number, j: number) => {\n outerRefs.current[i + offset][j] = element;\n },\n [outerRefs],\n );\n\n useEffect(() => {\n if (selectedRef.current) {\n onSetSelectedRef.current?.(selectedRef.current);\n }\n }, []);\n\n return (\n <StyledCalendarYears\n role=\"grid\"\n aria-labelledby=\"id-grid-label\"\n onKeyDown={onKeyDown}\n onMouseLeave={handleMouseOutGrid}\n >\n {years.map((year, i) => (\n <Fragment key={i}>\n {year.map(\n (\n {\n yearValue,\n isSelected,\n isCurrent,\n date,\n events,\n isOutOfMinMaxRange,\n inRange,\n disabled,\n disabledArrowKey,\n disabledDates,\n },\n j,\n ) => {\n return (\n <DateStructureItem\n ref={(element: HTMLDivElement) => getRefs(element, i, j)}\n style={yearItemTokens}\n eventList={events}\n disabled={disabled}\n day={date.day}\n year={yearValue}\n monthIndex={date.monthIndex}\n isFocused={\n i + offset === selectIndexes?.[0] &&\n j === selectIndexes?.[1] &&\n !isOutOfMinMaxRange\n }\n isSelected={isSelected}\n isCurrent={isCurrent}\n isDouble={isDouble}\n isHovered={isSameDay(date, hoveredYear)}\n inRange={getInRange(value, date, hoveredYear, inRange)}\n sideInRange={getSideInRange(value, date, hoveredYear, isSelected)}\n onClick={disabled ? undefined : handleOnChangeYear(i, j)}\n onMouseOver={disabled ? undefined : handleOnHoverYear}\n key={`StyledYear-${i}-${j}`}\n role=\"gridcell\"\n data-year={yearValue}\n data-month-index={date.monthIndex}\n data-day={date.day}\n aria-label={String(yearValue)}\n disabledArrowKey={disabledArrowKey}\n disabledMonths={disabledDates}\n isDayInCurrentMonth\n >\n {yearValue}\n </DateStructureItem>\n );\n },\n )}\n </Fragment>\n ))}\n </StyledCalendarYears>\n );\n};\n"],"names":["CalendarYears","date","currentDate","value","startYear","selectIndexes","eventList","disabledList","min","max","outerRefs","isDouble","isSecond","hoveredYear","onChangeYear","onHoverYear","onSetSelected","onKeyDown","minDate","Date","getFullYear","undefined","maxDate","years","selected","useYears","selectedRef","useRef","onSetSelectedRef","offset","ROW_YEAR_STEP","yearItemTokens","innerTokens","dateStructureFontFamily","tokens","calendarYearFontFamily","dateStructureFontSize","calendarYearFontSize","dateStructureFontWeight","calendarYearFontWeight","dateStructureFontLineHeight","calendarYearFontLineHeight","dateStructureFontLetterSpacing","calendarYearFontLetterSpacing","dateStructureFontStyle","calendarYearFontStyle","dateStructureSelectedFontWeight","calendarYearSelectedFontWeight","dateStructureBorderRadius","calendarYearItemBorderRadius","getSelectedDate","useCallback","event","day","monthIndex","year","currentTarget","dataset","selectedDate","Number","canSelectDate","handleOnChangeYear","i","j","nativeEvent","stopImmediatePropagation","isSelectProcess","handleOnHoverYear","isSelectedDone","Array","isArray","handleMouseOutGrid","getRefs","element","current","useEffect","React","createElement","StyledCalendarYears","role","onMouseLeave","map","Fragment","key","yearValue","isSelected","isCurrent","events","isOutOfMinMaxRange","inRange","disabled","disabledArrowKey","disabledDates","DateStructureItem","ref","style","isFocused","isHovered","isSameDay","getInRange","sideInRange","getSideInRange","onClick","onMouseOver","String","disabledMonths","isDayInCurrentMonth"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarYears.js","sources":["../../../../../src/components/Calendar/ui/CalendarYears/CalendarYears.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useRef } from 'react';\n\nimport { useYears } from '../../hooks';\nimport { innerTokens, tokens } from '../../Calendar.tokens';\nimport { ROW_YEAR_STEP, canSelectDate, getInRange, getSideInRange, isSameDay, isSelectProcess } from '../../utils';\nimport { DateStructureItem } from '../DateStructureItem/DateStructureItem';\n\nimport type { CalendarYearsProps } from './CalendarYears.types';\nimport { StyledCalendarYears } from './CalendarYears.styles';\n\n/**\n * Компонент годов в календаре.\n */\nexport const CalendarYears: React.FC<CalendarYearsProps> = ({\n date: currentDate,\n value,\n startYear,\n selectIndexes,\n eventList,\n disabledList,\n min,\n max,\n outerRefs,\n isDouble,\n isSecond,\n hoveredYear,\n onChangeYear,\n onHoverYear,\n onSetSelected,\n onKeyDown,\n}) => {\n const minDate = min ? new Date(min.getFullYear(), 0, 1) : undefined;\n const maxDate = max ? new Date(max.getFullYear(), 11, 31) : undefined;\n\n const [years, selected] = useYears({\n date: currentDate,\n value,\n startYear,\n eventList,\n disabledList,\n min: minDate,\n max: maxDate,\n });\n const selectedRef = useRef(selected);\n const onSetSelectedRef = useRef(onSetSelected);\n\n const offset = isSecond ? ROW_YEAR_STEP : 0;\n\n const yearItemTokens = {\n [`${innerTokens.dateStructureFontFamily}`]: `var(${tokens.calendarYearFontFamily})`,\n [`${innerTokens.dateStructureFontSize}`]: `var(${tokens.calendarYearFontSize})`,\n [`${innerTokens.dateStructureFontWeight}`]: `var(${tokens.calendarYearFontWeight})`,\n [`${innerTokens.dateStructureFontLineHeight}`]: `var(${tokens.calendarYearFontLineHeight})`,\n [`${innerTokens.dateStructureFontLetterSpacing}`]: `var(${tokens.calendarYearFontLetterSpacing})`,\n [`${innerTokens.dateStructureFontStyle}`]: `var(${tokens.calendarYearFontStyle})`,\n [`${innerTokens.dateStructureSelectedFontWeight}`]: `var(${tokens.calendarYearSelectedFontWeight})`,\n [`${innerTokens.dateStructureBorderRadius}`]: `var(${tokens.calendarYearItemBorderRadius})`,\n };\n\n const getSelectedDate = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const { day, monthIndex, year } = event.currentTarget.dataset;\n\n const selectedDate = {\n day: Number(day),\n monthIndex: Number(monthIndex),\n year: Number(year),\n };\n\n if (!canSelectDate(selectedDate, value, disabledList)) {\n return;\n }\n\n return selectedDate;\n },\n [disabledList, value],\n );\n\n const handleOnChangeYear = useCallback(\n (i: number, j: number) => (event: React.MouseEvent<HTMLDivElement>) => {\n /**\n * нужно вызвать stopImmediatePropagation для случаев, когда\n * обработчик события onClick навешивается снаружи.\n * Как, например, в компоненте Popup\n */\n event.nativeEvent.stopImmediatePropagation();\n\n const selectedDate = getSelectedDate(event);\n\n if (!selectedDate) {\n return;\n }\n\n onChangeYear(selectedDate, [i + offset, j]);\n\n if (isSelectProcess(value)) {\n onHoverYear?.(undefined);\n }\n },\n [getSelectedDate, onChangeYear, offset, value, onHoverYear],\n );\n\n const handleOnHoverYear = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedDate = getSelectedDate(event);\n const isSelectedDone = Array.isArray(value) && value[0] && value[1];\n\n if (!selectedDate || !Array.isArray(value) || isSelectedDone) {\n return;\n }\n\n onHoverYear?.(selectedDate);\n },\n [getSelectedDate, onHoverYear, value],\n );\n\n const handleMouseOutGrid = () => onHoverYear?.(undefined);\n\n const getRefs = useCallback(\n (element: HTMLDivElement, i: number, j: number) => {\n if (!outerRefs.current[i + offset]) {\n outerRefs.current[i + offset] = [];\n }\n\n outerRefs.current[i + offset][j] = element;\n },\n [outerRefs],\n );\n\n useEffect(() => {\n if (selectedRef.current) {\n onSetSelectedRef.current?.(selectedRef.current);\n }\n }, []);\n\n return (\n <StyledCalendarYears\n role=\"grid\"\n aria-labelledby=\"id-grid-label\"\n onKeyDown={onKeyDown}\n onMouseLeave={handleMouseOutGrid}\n >\n {years.map((year, i) => (\n <Fragment key={i}>\n {year.map(\n (\n {\n yearValue,\n isSelected,\n isCurrent,\n date,\n events,\n isOutOfMinMaxRange,\n inRange,\n disabled,\n disabledArrowKey,\n disabledDates,\n },\n j,\n ) => {\n return (\n <DateStructureItem\n ref={(element: HTMLDivElement) => getRefs(element, i, j)}\n style={yearItemTokens}\n eventList={events}\n disabled={disabled}\n day={date.day}\n year={yearValue}\n monthIndex={date.monthIndex}\n isFocused={\n i + offset === selectIndexes?.[0] &&\n j === selectIndexes?.[1] &&\n !isOutOfMinMaxRange\n }\n isSelected={isSelected}\n isCurrent={isCurrent}\n isDouble={isDouble}\n isHovered={isSameDay(date, hoveredYear)}\n inRange={getInRange(value, date, hoveredYear, inRange)}\n sideInRange={getSideInRange(value, date, hoveredYear, isSelected)}\n onClick={disabled ? undefined : handleOnChangeYear(i, j)}\n onMouseOver={disabled ? undefined : handleOnHoverYear}\n key={`StyledYear-${i}-${j}`}\n role=\"gridcell\"\n data-year={yearValue}\n data-month-index={date.monthIndex}\n data-day={date.day}\n aria-label={String(yearValue)}\n disabledArrowKey={disabledArrowKey}\n disabledMonths={disabledDates}\n isDayInCurrentMonth\n >\n {yearValue}\n </DateStructureItem>\n );\n },\n )}\n </Fragment>\n ))}\n </StyledCalendarYears>\n );\n};\n"],"names":["CalendarYears","date","currentDate","value","startYear","selectIndexes","eventList","disabledList","min","max","outerRefs","isDouble","isSecond","hoveredYear","onChangeYear","onHoverYear","onSetSelected","onKeyDown","minDate","Date","getFullYear","undefined","maxDate","years","selected","useYears","selectedRef","useRef","onSetSelectedRef","offset","ROW_YEAR_STEP","yearItemTokens","innerTokens","dateStructureFontFamily","tokens","calendarYearFontFamily","dateStructureFontSize","calendarYearFontSize","dateStructureFontWeight","calendarYearFontWeight","dateStructureFontLineHeight","calendarYearFontLineHeight","dateStructureFontLetterSpacing","calendarYearFontLetterSpacing","dateStructureFontStyle","calendarYearFontStyle","dateStructureSelectedFontWeight","calendarYearSelectedFontWeight","dateStructureBorderRadius","calendarYearItemBorderRadius","getSelectedDate","useCallback","event","day","monthIndex","year","currentTarget","dataset","selectedDate","Number","canSelectDate","handleOnChangeYear","i","j","nativeEvent","stopImmediatePropagation","isSelectProcess","handleOnHoverYear","isSelectedDone","Array","isArray","handleMouseOutGrid","getRefs","element","current","useEffect","React","createElement","StyledCalendarYears","role","onMouseLeave","map","Fragment","key","yearValue","isSelected","isCurrent","events","isOutOfMinMaxRange","inRange","disabled","disabledArrowKey","disabledDates","DateStructureItem","ref","style","isFocused","isHovered","isSameDay","getInRange","sideInRange","getSideInRange","onClick","onMouseOver","String","disabledMonths","isDayInCurrentMonth"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { forwardRef, useRef, useEffect, useMemo } from 'react';
3
- import { useForkRef, safeUseId, extractTextFrom } from '@salutejs/plasma-core';
3
+ import { useForkRef, extractTextFrom } from '@salutejs/plasma-core';
4
4
  import { cx } from '../../utils/index.js';
5
5
  import { base as base$2 } from './variations/_view/base.js';
6
6
  import { base as base$1 } from './variations/_size/base.js';
@@ -9,6 +9,7 @@ import { base as base$4 } from './variations/_focused/base.js';
9
9
  import { DoneThin, Done, IndeterminateThin, Indeterminate } from './IconsSvg.js';
10
10
  import { StyledInput, StyledContentWrapper, StyledTriggerWrapper, StyledTrigger, StyledContent, StyledLabel, StyledDescription, base } from './Checkbox.styles.js';
11
11
  import { classes } from './Checkbox.tokens.js';
12
+ import { safeUseId } from '../../utils/react.js';
12
13
 
13
14
  const checkboxRoot = Root => /*#__PURE__*/forwardRef((props, ref) => {
14
15
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useMemo, useRef } from 'react';\nimport { safeUseId, useForkRef, extractTextFrom } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../engines/types';\nimport { cx } from '../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as focusedCSS } from './variations/_focused/base';\nimport { Done, Indeterminate, DoneThin, IndeterminateThin } from './IconsSvg';\nimport {\n StyledContent,\n StyledContentWrapper,\n StyledDescription,\n StyledInput,\n StyledLabel,\n StyledTrigger,\n base,\n StyledTriggerWrapper,\n} from './Checkbox.styles';\nimport type { CheckboxProps } from './Checkbox.types';\nimport { classes } from './Checkbox.tokens';\n\nexport const checkboxRoot = (Root: RootProps<HTMLInputElement, CheckboxProps>) =>\n forwardRef<HTMLInputElement, CheckboxProps>((props, ref) => {\n const {\n size,\n view,\n focused,\n disabled,\n id,\n label,\n description,\n indeterminate,\n appearance,\n style,\n className,\n singleLine = false,\n 'aria-label': ariaLabelExternal,\n ...rest\n } = props;\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const forkRef = useForkRef(inputRef, ref);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = Boolean(indeterminate);\n }\n }, [inputRef, indeterminate]);\n\n const uniqId = safeUseId();\n const uniqLabelId = `label-${uniqId}`;\n const uniqDescriptionId = `description-${uniqId}`;\n const checkboxId = id || `input-${uniqId}`;\n\n const ariaLabel = useMemo(() => ariaLabelExternal || extractTextFrom(label), [ariaLabelExternal, label]);\n const isLabelAriaHidden = typeof label === 'string';\n const canFocused = focused ? 0 : -1;\n const hasContent = label || description;\n const singleLineClass = singleLine ? classes.singleLine : undefined;\n const onlyDescriptionClass = !label && description ? classes.onlyDescription : undefined;\n\n // Временное решение\n const getIcon = () => {\n if (appearance === 'outline') {\n return <DoneThin />;\n }\n\n return <Done />;\n };\n\n const getIndeterminate = () => {\n if (appearance === 'outline') {\n return <IndeterminateThin />;\n }\n\n return <Indeterminate />;\n };\n\n return (\n <Root\n view={view}\n size={size}\n disabled={disabled}\n focused={focused}\n style={style}\n className={className}\n tabIndex={-1}\n >\n <StyledInput\n {...rest}\n id={checkboxId}\n ref={forkRef}\n type=\"checkbox\"\n disabled={disabled}\n aria-label={ariaLabel}\n aria-describedby={uniqDescriptionId}\n tabIndex={canFocused}\n />\n <StyledContentWrapper htmlFor={checkboxId} className={singleLineClass}>\n <StyledTriggerWrapper>\n <StyledTrigger className={classes.checkboxTrigger}>\n {indeterminate ? getIndeterminate() : getIcon()}\n </StyledTrigger>\n </StyledTriggerWrapper>\n {hasContent && (\n <StyledContent className={singleLineClass}>\n {label && (\n <StyledLabel\n className={singleLineClass}\n id={uniqLabelId}\n aria-hidden={isLabelAriaHidden}\n >\n {label}\n </StyledLabel>\n )}\n {description && (\n <StyledDescription\n className={cx(singleLineClass, onlyDescriptionClass)}\n id={uniqDescriptionId}\n >\n {description}\n </StyledDescription>\n )}\n </StyledContent>\n )}\n </StyledContentWrapper>\n </Root>\n );\n });\n\nexport const checkboxConfig = {\n name: 'Checkbox',\n tag: 'div',\n layout: checkboxRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n },\n focused: {\n css: focusedCSS,\n },\n },\n defaults: {\n size: 'm',\n view: 'accent',\n },\n};\n"],"names":["checkboxRoot","Root","forwardRef","props","ref","size","view","focused","disabled","id","label","description","indeterminate","appearance","style","className","singleLine","ariaLabelExternal","rest","inputRef","useRef","forkRef","useForkRef","useEffect","current","Boolean","uniqId","safeUseId","uniqLabelId","uniqDescriptionId","checkboxId","ariaLabel","useMemo","extractTextFrom","isLabelAriaHidden","canFocused","hasContent","singleLineClass","classes","undefined","onlyDescriptionClass","onlyDescription","getIcon","React","createElement","DoneThin","Done","getIndeterminate","IndeterminateThin","Indeterminate","tabIndex","StyledInput","_extends","type","StyledContentWrapper","htmlFor","StyledTriggerWrapper","StyledTrigger","checkboxTrigger","StyledContent","StyledLabel","StyledDescription","cx","checkboxConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","focusedCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Checkbox.js","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useMemo, useRef } from 'react';\nimport { useForkRef, extractTextFrom } from '@salutejs/plasma-core';\nimport { safeUseId } from 'src/utils';\n\nimport type { RootProps } from '../../engines/types';\nimport { cx } from '../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as focusedCSS } from './variations/_focused/base';\nimport { Done, Indeterminate, DoneThin, IndeterminateThin } from './IconsSvg';\nimport {\n StyledContent,\n StyledContentWrapper,\n StyledDescription,\n StyledInput,\n StyledLabel,\n StyledTrigger,\n base,\n StyledTriggerWrapper,\n} from './Checkbox.styles';\nimport type { CheckboxProps } from './Checkbox.types';\nimport { classes } from './Checkbox.tokens';\n\nexport const checkboxRoot = (Root: RootProps<HTMLInputElement, CheckboxProps>) =>\n forwardRef<HTMLInputElement, CheckboxProps>((props, ref) => {\n const {\n size,\n view,\n focused,\n disabled,\n id,\n label,\n description,\n indeterminate,\n appearance,\n style,\n className,\n singleLine = false,\n 'aria-label': ariaLabelExternal,\n ...rest\n } = props;\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const forkRef = useForkRef(inputRef, ref);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = Boolean(indeterminate);\n }\n }, [inputRef, indeterminate]);\n\n const uniqId = safeUseId();\n const uniqLabelId = `label-${uniqId}`;\n const uniqDescriptionId = `description-${uniqId}`;\n const checkboxId = id || `input-${uniqId}`;\n\n const ariaLabel = useMemo(() => ariaLabelExternal || extractTextFrom(label), [ariaLabelExternal, label]);\n const isLabelAriaHidden = typeof label === 'string';\n const canFocused = focused ? 0 : -1;\n const hasContent = label || description;\n const singleLineClass = singleLine ? classes.singleLine : undefined;\n const onlyDescriptionClass = !label && description ? classes.onlyDescription : undefined;\n\n // Временное решение\n const getIcon = () => {\n if (appearance === 'outline') {\n return <DoneThin />;\n }\n\n return <Done />;\n };\n\n const getIndeterminate = () => {\n if (appearance === 'outline') {\n return <IndeterminateThin />;\n }\n\n return <Indeterminate />;\n };\n\n return (\n <Root\n view={view}\n size={size}\n disabled={disabled}\n focused={focused}\n style={style}\n className={className}\n tabIndex={-1}\n >\n <StyledInput\n {...rest}\n id={checkboxId}\n ref={forkRef}\n type=\"checkbox\"\n disabled={disabled}\n aria-label={ariaLabel}\n aria-describedby={uniqDescriptionId}\n tabIndex={canFocused}\n />\n <StyledContentWrapper htmlFor={checkboxId} className={singleLineClass}>\n <StyledTriggerWrapper>\n <StyledTrigger className={classes.checkboxTrigger}>\n {indeterminate ? getIndeterminate() : getIcon()}\n </StyledTrigger>\n </StyledTriggerWrapper>\n {hasContent && (\n <StyledContent className={singleLineClass}>\n {label && (\n <StyledLabel\n className={singleLineClass}\n id={uniqLabelId}\n aria-hidden={isLabelAriaHidden}\n >\n {label}\n </StyledLabel>\n )}\n {description && (\n <StyledDescription\n className={cx(singleLineClass, onlyDescriptionClass)}\n id={uniqDescriptionId}\n >\n {description}\n </StyledDescription>\n )}\n </StyledContent>\n )}\n </StyledContentWrapper>\n </Root>\n );\n });\n\nexport const checkboxConfig = {\n name: 'Checkbox',\n tag: 'div',\n layout: checkboxRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n },\n focused: {\n css: focusedCSS,\n },\n },\n defaults: {\n size: 'm',\n view: 'accent',\n },\n};\n"],"names":["checkboxRoot","Root","forwardRef","props","ref","size","view","focused","disabled","id","label","description","indeterminate","appearance","style","className","singleLine","ariaLabelExternal","rest","inputRef","useRef","forkRef","useForkRef","useEffect","current","Boolean","uniqId","safeUseId","uniqLabelId","uniqDescriptionId","checkboxId","ariaLabel","useMemo","extractTextFrom","isLabelAriaHidden","canFocused","hasContent","singleLineClass","classes","undefined","onlyDescriptionClass","onlyDescription","getIcon","React","createElement","DoneThin","Done","getIndeterminate","IndeterminateThin","Indeterminate","tabIndex","StyledInput","_extends","type","StyledContentWrapper","htmlFor","StyledTriggerWrapper","StyledTrigger","checkboxTrigger","StyledContent","StyledLabel","StyledDescription","cx","checkboxConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","focusedCSS","defaults"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { forwardRef, useMemo, useState, useRef, useReducer, useLayoutEffect } from 'react';
3
- import { useForkRef, safeUseId } from '@salutejs/plasma-core';
3
+ import { useForkRef } from '@salutejs/plasma-core';
4
4
  import { classes } from './Combobox.tokens.js';
5
5
  import { FloatingPopover } from './FloatingPopover.js';
6
6
  import { getItemByFocused, useKeyNavigation } from './hooks/useKeyboardNavigation.js';
@@ -11,6 +11,7 @@ import { base as base$2 } from './variations/_size/base.js';
11
11
  import { SelectNative } from './ui/SelectNative/SelectNative.js';
12
12
  import { Context } from './Combobox.context.js';
13
13
  import { initialItemsTransform } from './utils/initialItemsTransform.js';
14
+ import { safeUseId } from '../../../utils/react.js';
14
15
  import { filterItems } from './utils/filterItems.js';
15
16
  import { pathReducer } from './reducers/pathReducer.js';
16
17
  import { focusedPathReducer } from './reducers/focusedPathReducer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxNew/Combobox.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useMemo, useLayoutEffect, useRef } from 'react';\nimport type { ChangeEvent, ForwardedRef } from 'react';\nimport { safeUseId, useForkRef } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../../engines';\nimport { isEmpty } from '../../../utils';\nimport { useOutsideClick } from '../../../hooks';\nimport { sizeToIconSize } from '../../Select/utils';\n\nimport { classes } from './Combobox.tokens';\nimport { FloatingPopover } from './FloatingPopover';\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport {\n initialItemsTransform,\n updateAncestors,\n updateDescendants,\n updateSingleAncestors,\n filterItems,\n getItemId,\n getRemovedElement,\n} from './utils';\nimport { Inner, StyledTextField, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport {\n Ul,\n base,\n StyledArrow,\n IconArrowWrapper,\n StyledEmptyState,\n StyledLeftHelper,\n ListWrapper,\n} from './Combobox.styles';\nimport type { ComboboxProps } from './Combobox.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { ItemOptionTransformed, ItemOption } from './ui/Inner/ui/Item/Item.types';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Combobox.context';\n\n/**\n * Поле ввода с выпадающим списком и возможностью фильтрации и выбора элементов.\n */\n\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, Omit<ComboboxProps, 'items'>>) =>\n forwardRef<HTMLInputElement, ComboboxProps>((props, ref) => {\n const {\n name,\n multiple,\n value: outerValue,\n onChange: outerOnChange,\n defaultValue,\n isTargetAmount,\n targetAmount,\n items,\n placement = 'bottom-start',\n label,\n placeholder,\n helperText,\n contentLeft,\n textBefore,\n textAfter,\n variant = 'normal',\n listOverflow,\n listHeight,\n listMaxHeight,\n listWidth,\n portal,\n renderItem,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n readOnly = false,\n disabled = false,\n alwaysOpened = false,\n filter,\n closeAfterSelect: outerCloseAfterSelect,\n renderValue,\n zIndex,\n beforeList,\n afterList,\n virtual = false,\n hintView,\n hintSize,\n emptyStateDescription,\n onChangeValue,\n onScroll,\n onToggle,\n ...rest\n } = props;\n\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [valueToCheckedMap, valueToItemMap, labelToItemMap] = useMemo(() => getTreeMaps(transformedItems), [\n items,\n ]);\n\n const [textValue, setTextValue] = useState(\n multiple || Array.isArray(outerValue)\n ? ''\n : valueToItemMap.get(outerValue as string)?.label || outerValue?.toString() || '',\n );\n const [internalValue, setInternalValue] = useState<string | string[]>(multiple ? [] : '');\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n const inputForkRef = useForkRef(inputRef, ref);\n const treeId = safeUseId();\n\n const filteredItems = useMemo(\n () =>\n filterItems(\n transformedItems,\n textValue,\n (valueToItemMap.get(value as string)?.label as string) || (value as string),\n filter,\n ),\n [transformedItems, textValue, filter],\n );\n\n const [pathMap, focusedToValueMap] = useMemo(() => getPathMap(filteredItems), [filteredItems, textValue]);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = alwaysOpened || Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n const withArrowInverse = isCurrentListOpen ? classes.arrowInverse : undefined;\n const closeAfterSelect = outerCloseAfterSelect ?? !multiple;\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false);\n }\n\n // Проверяем, отличается ли значение в инпуте от выбранного value после закрытия дропдауна.\n // Если изменилось, то возвращаем label выбранного айтема.\n // Если нет выбранного элемента, то стираем значение инпута.\n if (textValue !== value) {\n if (isEmpty(value)) {\n setTextValue('');\n } else if (multiple) {\n setTextValue('');\n } else {\n setTextValue(valueToItemMap.get(value as string)?.label || (value as string) || '');\n }\n }\n }, floatingPopoverRef);\n\n // Эта функция срабатывает при изменении Combobox и\n // при изменении нативного Select для формы (срабатывает только после изменения internalValue и рендера).\n const onChange = (\n newValue: string | Array<string> | ChangeEvent<HTMLSelectElement> | null,\n item?: ItemOption | null,\n ) => {\n // Условие для отправки изменений наружу\n if (props.onChange) {\n // Условие для отправки если комбобокс используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если комбобокс используется с формой.\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleClickArrow = () => {\n if (disabled || readOnly) {\n return;\n }\n\n if (isCurrentListOpen) {\n dispatchPath({ type: 'reset' });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n }\n\n dispatchFocusedPath({ type: 'reset' });\n };\n\n // Обработчик изменения значения в инпуте\n const handleTextValueChange = (e: ChangeEvent<HTMLInputElement>) => {\n setTextValue(e.target.value);\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onChangeValue) {\n onChangeValue(e.target.value);\n }\n };\n\n // Обработчик чипов\n const handleChipsChange = (chipLabels: any[]) => {\n if (!Array.isArray(value)) return;\n\n // TODO: #1564\n // Из лейблов чипов получаем value у item и далее прокидываем его в onChange.\n if (renderValue && !isTargetAmount) {\n const resultValues = [...value];\n\n value.forEach((_, index) => {\n const stringValue = value[index];\n const label = valueToItemMap.get(stringValue)?.label;\n\n const labelAfterRenderValue = renderValue(\n label\n ? labelToItemMap.get(label)!\n : {\n value: stringValue,\n label: stringValue.toString(),\n },\n );\n\n if (!chipLabels.includes(labelAfterRenderValue)) {\n resultValues.splice(index, 1);\n }\n });\n\n const removedItemValue = getRemovedElement(value, resultValues, isTargetAmount);\n\n onChange(\n resultValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n } else {\n const newValues = chipLabels.map((chipLabel) => labelToItemMap.get(chipLabel)?.value || chipLabel);\n const removedItemValue = getRemovedElement(value, newValues, isTargetAmount);\n\n onChange(\n newValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n }\n };\n\n // Обработчик открытия/закрытия выпадающего списка\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (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);\n }\n };\n\n // Обработчик выбора чекбоксов (только при multiple)\n const handleCheckboxChange = (item: ItemOptionTransformed) => {\n if (!multiple) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\n };\n\n // Обработчик клика по айтему выпадающего списка\n const handleItemClick = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (multiple) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n };\n\n const getChips = (): string[] => {\n if (multiple && Array.isArray(value)) {\n if (value.length === 0) return [];\n\n if (isTargetAmount) {\n return [`Выбрано ${targetAmount || value.length}`];\n }\n\n const renderValueMapper =\n renderValue &&\n ((stringValue: string) =>\n renderValue(\n valueToItemMap.get(stringValue) || { value: stringValue, label: stringValue.toString() },\n ));\n const valueToItemMapper = (stringValue: string) =>\n valueToItemMap.get(stringValue)?.label || stringValue.toString();\n\n return value.map(renderValueMapper || valueToItemMapper);\n }\n\n return [];\n };\n\n const handlePressDown = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (multiple) {\n handleCheckboxChange(item);\n }\n };\n\n const helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n setTextValue,\n multiple,\n value,\n textValue,\n valueToItemMap,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value)) {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n setTextValue(multiple ? '' : valueToItemMap.get(value as string)?.label || value?.toString() || '');\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n hintView={hintView}\n hintSize={hintSize}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiple={multiple}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLInputElement>}\n />\n )}\n <div>\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiple,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={name ? inputRef : (inputForkRef as ForwardedRef<HTMLInputElement>)}\n inputWrapperRef={referenceRef}\n value={textValue}\n onChange={handleTextValueChange}\n size={size}\n view={view}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={\n <IconArrowWrapper disabled={disabled} onClick={handleClickArrow}>\n <StyledArrow\n color=\"inherit\"\n size={sizeToIconSize(size)}\n className={withArrowInverse}\n />\n </IconArrowWrapper>\n }\n textBefore={textBefore}\n textAfter={textAfter}\n onKeyDown={onKeyDown}\n leftHelper={\n helperText && (\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {helperText}\n </StyledLeftHelper>\n )\n }\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={`${treeId}_tree_level_1`}\n aria-expanded={isCurrentListOpen}\n aria-activedescendant={\n activeDescendantItemValue ? getItemId(treeId, activeDescendantItemValue) : ''\n }\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n {...(multiple\n ? {\n enumerationType: 'chip',\n chips: getChips(),\n onChangeChips: handleChipsChange,\n }\n : { enumerationType: 'plain' })}\n {...rest}\n _onEnterDisabled // Пропс для отключения обработчика Enter внутри Textfield\n />\n )}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listMaxHeight={listMaxHeight || listHeight}\n ref={targetRef}\n virtual={virtual}\n listOverflow={listOverflow}\n onScroll={virtual ? undefined : onScroll}\n >\n {beforeList}\n\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description={emptyStateDescription || 'Ничего не найдено'}\n />\n ) : (\n <>\n {props.multiple && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll\n selectAllOptions={props.selectAllOptions}\n variant={variant}\n />\n )}\n\n {virtual ? (\n <VirtualList\n items={filteredItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\n />\n ) : (\n filteredItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n </>\n )}\n\n {afterList}\n </Ul>\n </ListWrapper>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </div>\n </Root>\n );\n });\n\nexport const comboboxConfig = {\n name: 'Select',\n tag: 'div',\n layout: comboboxRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n readOnly: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n },\n};\n"],"names":["comboboxRoot","Root","forwardRef","props","ref","name","multiple","value","outerValue","onChange","outerOnChange","defaultValue","isTargetAmount","targetAmount","items","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","variant","listOverflow","listHeight","listMaxHeight","listWidth","portal","renderItem","view","size","labelPlacement","keepPlaceholder","readOnly","disabled","alwaysOpened","filter","closeAfterSelect","outerCloseAfterSelect","renderValue","zIndex","beforeList","afterList","virtual","hintView","hintSize","emptyStateDescription","onChangeValue","onScroll","onToggle","rest","transformedItems","useMemo","initialItemsTransform","valueToCheckedMap","valueToItemMap","labelToItemMap","getTreeMaps","textValue","setTextValue","useState","Array","isArray","get","toString","internalValue","setInternalValue","undefined","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","filteredItems","filterItems","pathMap","focusedToValueMap","getPathMap","path","dispatchPath","useReducer","pathReducer","focusedPath","dispatchFocusedPath","focusedPathReducer","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","withArrowInverse","classes","arrowInverse","targetRef","useOutsideClick","type","isEmpty","newValue","item","handleClickArrow","handleTextValueChange","e","target","handleChipsChange","chipLabels","resultValues","forEach","_","index","stringValue","labelAfterRenderValue","includes","splice","removedItemValue","getRemovedElement","newValues","map","chipLabel","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","set","updateDescendants","updateAncestors","key","push","val","has","handleItemClick","stopPropagation","isCurrentChecked","getChips","length","renderValueMapper","valueToItemMapper","handlePressDown","helperTextStopPropagation","event","onKeyDown","useKeyNavigation","useLayoutEffect","updateSingleAncestors","React","createElement","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","referenceRef","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","onClick","StyledArrow","color","sizeToIconSize","className","leftHelper","StyledLeftHelper","role","getItemId","enumerationType","chips","onChangeChips","_onEnterDisabled","isInner","ListWrapper","Ul","id","StyledEmptyState","emptyStateWrapper","description","Fragment","selectAllOptions","SelectAll","VirtualList","Inner","currentLevel","comboboxConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxNew/Combobox.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useMemo, useLayoutEffect, useRef } from 'react';\nimport type { ChangeEvent, ForwardedRef } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { safeUseId } from 'src/utils';\n\nimport { RootProps } from '../../../engines';\nimport { isEmpty } from '../../../utils';\nimport { useOutsideClick } from '../../../hooks';\nimport { sizeToIconSize } from '../../Select/utils';\n\nimport { classes } from './Combobox.tokens';\nimport { FloatingPopover } from './FloatingPopover';\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport {\n initialItemsTransform,\n updateAncestors,\n updateDescendants,\n updateSingleAncestors,\n filterItems,\n getItemId,\n getRemovedElement,\n} from './utils';\nimport { Inner, StyledTextField, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport {\n Ul,\n base,\n StyledArrow,\n IconArrowWrapper,\n StyledEmptyState,\n StyledLeftHelper,\n ListWrapper,\n} from './Combobox.styles';\nimport type { ComboboxProps } from './Combobox.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { ItemOptionTransformed, ItemOption } from './ui/Inner/ui/Item/Item.types';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Combobox.context';\n\n/**\n * Поле ввода с выпадающим списком и возможностью фильтрации и выбора элементов.\n */\n\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, Omit<ComboboxProps, 'items'>>) =>\n forwardRef<HTMLInputElement, ComboboxProps>((props, ref) => {\n const {\n name,\n multiple,\n value: outerValue,\n onChange: outerOnChange,\n defaultValue,\n isTargetAmount,\n targetAmount,\n items,\n placement = 'bottom-start',\n label,\n placeholder,\n helperText,\n contentLeft,\n textBefore,\n textAfter,\n variant = 'normal',\n listOverflow,\n listHeight,\n listMaxHeight,\n listWidth,\n portal,\n renderItem,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n readOnly = false,\n disabled = false,\n alwaysOpened = false,\n filter,\n closeAfterSelect: outerCloseAfterSelect,\n renderValue,\n zIndex,\n beforeList,\n afterList,\n virtual = false,\n hintView,\n hintSize,\n emptyStateDescription,\n onChangeValue,\n onScroll,\n onToggle,\n ...rest\n } = props;\n\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [valueToCheckedMap, valueToItemMap, labelToItemMap] = useMemo(() => getTreeMaps(transformedItems), [\n items,\n ]);\n\n const [textValue, setTextValue] = useState(\n multiple || Array.isArray(outerValue)\n ? ''\n : valueToItemMap.get(outerValue as string)?.label || outerValue?.toString() || '',\n );\n const [internalValue, setInternalValue] = useState<string | string[]>(multiple ? [] : '');\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n const inputForkRef = useForkRef(inputRef, ref);\n const treeId = safeUseId();\n\n const filteredItems = useMemo(\n () =>\n filterItems(\n transformedItems,\n textValue,\n (valueToItemMap.get(value as string)?.label as string) || (value as string),\n filter,\n ),\n [transformedItems, textValue, filter],\n );\n\n const [pathMap, focusedToValueMap] = useMemo(() => getPathMap(filteredItems), [filteredItems, textValue]);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = alwaysOpened || Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n const withArrowInverse = isCurrentListOpen ? classes.arrowInverse : undefined;\n const closeAfterSelect = outerCloseAfterSelect ?? !multiple;\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false);\n }\n\n // Проверяем, отличается ли значение в инпуте от выбранного value после закрытия дропдауна.\n // Если изменилось, то возвращаем label выбранного айтема.\n // Если нет выбранного элемента, то стираем значение инпута.\n if (textValue !== value) {\n if (isEmpty(value)) {\n setTextValue('');\n } else if (multiple) {\n setTextValue('');\n } else {\n setTextValue(valueToItemMap.get(value as string)?.label || (value as string) || '');\n }\n }\n }, floatingPopoverRef);\n\n // Эта функция срабатывает при изменении Combobox и\n // при изменении нативного Select для формы (срабатывает только после изменения internalValue и рендера).\n const onChange = (\n newValue: string | Array<string> | ChangeEvent<HTMLSelectElement> | null,\n item?: ItemOption | null,\n ) => {\n // Условие для отправки изменений наружу\n if (props.onChange) {\n // Условие для отправки если комбобокс используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если комбобокс используется с формой.\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleClickArrow = () => {\n if (disabled || readOnly) {\n return;\n }\n\n if (isCurrentListOpen) {\n dispatchPath({ type: 'reset' });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n }\n\n dispatchFocusedPath({ type: 'reset' });\n };\n\n // Обработчик изменения значения в инпуте\n const handleTextValueChange = (e: ChangeEvent<HTMLInputElement>) => {\n setTextValue(e.target.value);\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onChangeValue) {\n onChangeValue(e.target.value);\n }\n };\n\n // Обработчик чипов\n const handleChipsChange = (chipLabels: any[]) => {\n if (!Array.isArray(value)) return;\n\n // TODO: #1564\n // Из лейблов чипов получаем value у item и далее прокидываем его в onChange.\n if (renderValue && !isTargetAmount) {\n const resultValues = [...value];\n\n value.forEach((_, index) => {\n const stringValue = value[index];\n const label = valueToItemMap.get(stringValue)?.label;\n\n const labelAfterRenderValue = renderValue(\n label\n ? labelToItemMap.get(label)!\n : {\n value: stringValue,\n label: stringValue.toString(),\n },\n );\n\n if (!chipLabels.includes(labelAfterRenderValue)) {\n resultValues.splice(index, 1);\n }\n });\n\n const removedItemValue = getRemovedElement(value, resultValues, isTargetAmount);\n\n onChange(\n resultValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n } else {\n const newValues = chipLabels.map((chipLabel) => labelToItemMap.get(chipLabel)?.value || chipLabel);\n const removedItemValue = getRemovedElement(value, newValues, isTargetAmount);\n\n onChange(\n newValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n }\n };\n\n // Обработчик открытия/закрытия выпадающего списка\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (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);\n }\n };\n\n // Обработчик выбора чекбоксов (только при multiple)\n const handleCheckboxChange = (item: ItemOptionTransformed) => {\n if (!multiple) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\n };\n\n // Обработчик клика по айтему выпадающего списка\n const handleItemClick = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (multiple) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n };\n\n const getChips = (): string[] => {\n if (multiple && Array.isArray(value)) {\n if (value.length === 0) return [];\n\n if (isTargetAmount) {\n return [`Выбрано ${targetAmount || value.length}`];\n }\n\n const renderValueMapper =\n renderValue &&\n ((stringValue: string) =>\n renderValue(\n valueToItemMap.get(stringValue) || { value: stringValue, label: stringValue.toString() },\n ));\n const valueToItemMapper = (stringValue: string) =>\n valueToItemMap.get(stringValue)?.label || stringValue.toString();\n\n return value.map(renderValueMapper || valueToItemMapper);\n }\n\n return [];\n };\n\n const handlePressDown = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (multiple) {\n handleCheckboxChange(item);\n }\n };\n\n const helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n setTextValue,\n multiple,\n value,\n textValue,\n valueToItemMap,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value)) {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n setTextValue(multiple ? '' : valueToItemMap.get(value as string)?.label || value?.toString() || '');\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n hintView={hintView}\n hintSize={hintSize}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiple={multiple}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLInputElement>}\n />\n )}\n <div>\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiple,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={name ? inputRef : (inputForkRef as ForwardedRef<HTMLInputElement>)}\n inputWrapperRef={referenceRef}\n value={textValue}\n onChange={handleTextValueChange}\n size={size}\n view={view}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={\n <IconArrowWrapper disabled={disabled} onClick={handleClickArrow}>\n <StyledArrow\n color=\"inherit\"\n size={sizeToIconSize(size)}\n className={withArrowInverse}\n />\n </IconArrowWrapper>\n }\n textBefore={textBefore}\n textAfter={textAfter}\n onKeyDown={onKeyDown}\n leftHelper={\n helperText && (\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {helperText}\n </StyledLeftHelper>\n )\n }\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={`${treeId}_tree_level_1`}\n aria-expanded={isCurrentListOpen}\n aria-activedescendant={\n activeDescendantItemValue ? getItemId(treeId, activeDescendantItemValue) : ''\n }\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n {...(multiple\n ? {\n enumerationType: 'chip',\n chips: getChips(),\n onChangeChips: handleChipsChange,\n }\n : { enumerationType: 'plain' })}\n {...rest}\n _onEnterDisabled // Пропс для отключения обработчика Enter внутри Textfield\n />\n )}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listMaxHeight={listMaxHeight || listHeight}\n ref={targetRef}\n virtual={virtual}\n listOverflow={listOverflow}\n onScroll={virtual ? undefined : onScroll}\n >\n {beforeList}\n\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description={emptyStateDescription || 'Ничего не найдено'}\n />\n ) : (\n <>\n {props.multiple && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll\n selectAllOptions={props.selectAllOptions}\n variant={variant}\n />\n )}\n\n {virtual ? (\n <VirtualList\n items={filteredItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\n />\n ) : (\n filteredItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n </>\n )}\n\n {afterList}\n </Ul>\n </ListWrapper>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </div>\n </Root>\n );\n });\n\nexport const comboboxConfig = {\n name: 'Select',\n tag: 'div',\n layout: comboboxRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n readOnly: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n },\n};\n"],"names":["comboboxRoot","Root","forwardRef","props","ref","name","multiple","value","outerValue","onChange","outerOnChange","defaultValue","isTargetAmount","targetAmount","items","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","variant","listOverflow","listHeight","listMaxHeight","listWidth","portal","renderItem","view","size","labelPlacement","keepPlaceholder","readOnly","disabled","alwaysOpened","filter","closeAfterSelect","outerCloseAfterSelect","renderValue","zIndex","beforeList","afterList","virtual","hintView","hintSize","emptyStateDescription","onChangeValue","onScroll","onToggle","rest","transformedItems","useMemo","initialItemsTransform","valueToCheckedMap","valueToItemMap","labelToItemMap","getTreeMaps","textValue","setTextValue","useState","Array","isArray","get","toString","internalValue","setInternalValue","undefined","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","filteredItems","filterItems","pathMap","focusedToValueMap","getPathMap","path","dispatchPath","useReducer","pathReducer","focusedPath","dispatchFocusedPath","focusedPathReducer","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","withArrowInverse","classes","arrowInverse","targetRef","useOutsideClick","type","isEmpty","newValue","item","handleClickArrow","handleTextValueChange","e","target","handleChipsChange","chipLabels","resultValues","forEach","_","index","stringValue","labelAfterRenderValue","includes","splice","removedItemValue","getRemovedElement","newValues","map","chipLabel","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","set","updateDescendants","updateAncestors","key","push","val","has","handleItemClick","stopPropagation","isCurrentChecked","getChips","length","renderValueMapper","valueToItemMapper","handlePressDown","helperTextStopPropagation","event","onKeyDown","useKeyNavigation","useLayoutEffect","updateSingleAncestors","React","createElement","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","referenceRef","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","onClick","StyledArrow","color","sizeToIconSize","className","leftHelper","StyledLeftHelper","role","getItemId","enumerationType","chips","onChangeChips","_onEnterDisabled","isInner","ListWrapper","Ul","id","StyledEmptyState","emptyStateWrapper","description","Fragment","selectAllOptions","SelectAll","VirtualList","Inner","currentLevel","comboboxConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { useFloating, autoUpdate, offset, flip, shift, size, 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/Combobox/ComboboxNew/FloatingPopover.tsx"],"sourcesContent":["import {\n flip,\n shift,\n size,\n useFloating,\n FloatingPortal,\n offset as offsetMiddleware,\n autoUpdate,\n} from '@floating-ui/react';\nimport React, { forwardRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { FloatingPopoverProps } from './Combobox.types';\n\n// TODO: #2003\nconst LIST_PADDING = 2;\n\nconst FloatingPopover = forwardRef<HTMLDivElement, FloatingPopoverProps>(\n ({ target, children, opened, onToggle, placement, portal, listWidth, zIndex, isInner }, 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,\n open: opened,\n middleware: [\n offsetMiddleware({\n mainAxis: isInner ? LIST_PADDING * 2 : 0,\n alignmentAxis: isInner ? -LIST_PADDING : 0,\n }),\n flip({ fallbackAxisSideDirection: 'end' }),\n shift(),\n size({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width:\n listWidth ||\n `${isInner ? rects.reference.width + LIST_PADDING * 2 : rects.reference.width}px`,\n });\n },\n }),\n ],\n });\n\n const wrappedId = safeUseId();\n\n const handleClick = () => {\n if (onToggle) {\n onToggle(!opened);\n }\n };\n\n // Проверка на target. Это может быть как ReactNode, так и функция, в которую пробрасывается ref.\n // Это нужно для более тонкой настройки reference-элемента, вокруг которого и будет позиционироваться выпадашка.\n // Пример: когда в Textfield под инпутом находится helperText (или еще что-либо),\n // но выпадающий список должен позиционироваться непосредственно возле самого инпута.\n const isTargetAsFunction = typeof target === 'function';\n\n return (\n <div ref={ref} id={wrappedId} style={{ position: 'relative' }}>\n <div ref={isTargetAsFunction ? undefined : refs.setReference} onClick={handleClick}>\n {typeof target === 'function' ? target(refs.setReference as any) : target}\n </div>\n\n {opened && (\n // root - принимает ref контейнера портала.\n // id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\n <FloatingPortal {...getFloatingPortalProps(portal, wrappedId)}>\n <div ref={refs.setFloating} style={{ ...floatingStyles, zIndex: zIndex || 1000 }}>\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","listWidth","zIndex","isInner","ref","refs","floatingStyles","useFloating","whileElementsMounted","referenceEl","floatingEl","update","autoUpdate","ancestorScroll","ancestorResize","layoutShift","open","middleware","offsetMiddleware","mainAxis","alignmentAxis","flip","fallbackAxisSideDirection","shift","size","apply","rects","elements","Object","assign","floating","style","width","reference","wrappedId","safeUseId","handleClick","isTargetAsFunction","React","createElement","id","position","undefined","setReference","onClick","FloatingPortal","getFloatingPortalProps","setFloating","root"],"mappings":"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"}
1
+ {"version":3,"file":"FloatingPopover.js","sources":["../../../../src/components/Combobox/ComboboxNew/FloatingPopover.tsx"],"sourcesContent":["import {\n flip,\n shift,\n size,\n useFloating,\n FloatingPortal,\n offset as offsetMiddleware,\n autoUpdate,\n} from '@floating-ui/react';\nimport React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport type { FloatingPopoverProps } from './Combobox.types';\n\n// TODO: #2003\nconst LIST_PADDING = 2;\n\nconst FloatingPopover = forwardRef<HTMLDivElement, FloatingPopoverProps>(\n ({ target, children, opened, onToggle, placement, portal, listWidth, zIndex, isInner }, 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,\n open: opened,\n middleware: [\n offsetMiddleware({\n mainAxis: isInner ? LIST_PADDING * 2 : 0,\n alignmentAxis: isInner ? -LIST_PADDING : 0,\n }),\n flip({ fallbackAxisSideDirection: 'end' }),\n shift(),\n size({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width:\n listWidth ||\n `${isInner ? rects.reference.width + LIST_PADDING * 2 : rects.reference.width}px`,\n });\n },\n }),\n ],\n });\n\n const wrappedId = safeUseId();\n\n const handleClick = () => {\n if (onToggle) {\n onToggle(!opened);\n }\n };\n\n // Проверка на target. Это может быть как ReactNode, так и функция, в которую пробрасывается ref.\n // Это нужно для более тонкой настройки reference-элемента, вокруг которого и будет позиционироваться выпадашка.\n // Пример: когда в Textfield под инпутом находится helperText (или еще что-либо),\n // но выпадающий список должен позиционироваться непосредственно возле самого инпута.\n const isTargetAsFunction = typeof target === 'function';\n\n return (\n <div ref={ref} id={wrappedId} style={{ position: 'relative' }}>\n <div ref={isTargetAsFunction ? undefined : refs.setReference} onClick={handleClick}>\n {typeof target === 'function' ? target(refs.setReference as any) : target}\n </div>\n\n {opened && (\n // root - принимает ref контейнера портала.\n // id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\n <FloatingPortal {...getFloatingPortalProps(portal, wrappedId)}>\n <div ref={refs.setFloating} style={{ ...floatingStyles, zIndex: zIndex || 1000 }}>\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","listWidth","zIndex","isInner","ref","refs","floatingStyles","useFloating","whileElementsMounted","referenceEl","floatingEl","update","autoUpdate","ancestorScroll","ancestorResize","layoutShift","open","middleware","offsetMiddleware","mainAxis","alignmentAxis","flip","fallbackAxisSideDirection","shift","size","apply","rects","elements","Object","assign","floating","style","width","reference","wrappedId","safeUseId","handleClick","isTargetAsFunction","React","createElement","id","position","undefined","setReference","onClick","FloatingPortal","getFloatingPortalProps","setFloating","root"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { safeUseId } from '@salutejs/plasma-core';
3
2
  import { FloatingPopover } from '../../FloatingPopover.js';
4
3
  import { ListWrapper, Ul } from '../../Combobox.styles.js';
4
+ import { safeUseId } from '../../../../../utils/react.js';
5
5
  import { isEmpty } from '../../../../../utils/isEmpty.js';
6
6
  import { Item } from './ui/Item/Item.js';
7
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"Inner.js","sources":["../../../../../../src/components/Combobox/ComboboxNew/ui/Inner/Inner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { FloatingPopover } from '../../FloatingPopover';\nimport { isEmpty } from '../../../../../utils';\nimport { Ul, ListWrapper } from '../../Combobox.styles';\n\nimport type { ItemOptionTransformed } from './ui/Item/Item.types';\nimport { Item } from './ui';\nimport { InnerProps } from './Inner.type';\n\nexport const Inner: FC<InnerProps> = ({ item, currentLevel, path, dispatchPath, index, listWidth }) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const treeId = safeUseId();\n const listId = `${treeId}_tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (!isEmpty(item?.items)) {\n return (\n <FloatingPopover\n placement={item?.placement || 'right-start'}\n opened={isCurrentListOpen}\n onToggle={handleToggle}\n target={\n <Item\n item={item}\n path={path}\n currentLevel={currentLevel}\n index={index}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n isInner\n >\n <ListWrapper listWidth={listWidth}>\n <Ul role=\"group\" id={listId} virtual={false}>\n {item.items?.map((innerItem: ItemOptionTransformed, innerIndex: number) => (\n <Inner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </ListWrapper>\n </FloatingPopover>\n );\n }\n\n return <Item item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n"],"names":["Inner","item","currentLevel","path","dispatchPath","index","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","treeId","safeUseId","listId","nextLevel","isEmpty","items","React","createElement","FloatingPopover","placement","onToggle","target","Item","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","isInner","ListWrapper","Ul","role","id","virtual","map","innerItem","innerIndex","key"],"mappings":"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"}
1
+ {"version":3,"file":"Inner.js","sources":["../../../../../../src/components/Combobox/ComboboxNew/ui/Inner/Inner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport { FloatingPopover } from '../../FloatingPopover';\nimport { isEmpty } from '../../../../../utils';\nimport { Ul, ListWrapper } from '../../Combobox.styles';\n\nimport type { ItemOptionTransformed } from './ui/Item/Item.types';\nimport { Item } from './ui';\nimport { InnerProps } from './Inner.type';\n\nexport const Inner: FC<InnerProps> = ({ item, currentLevel, path, dispatchPath, index, listWidth }) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const treeId = safeUseId();\n const listId = `${treeId}_tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (!isEmpty(item?.items)) {\n return (\n <FloatingPopover\n placement={item?.placement || 'right-start'}\n opened={isCurrentListOpen}\n onToggle={handleToggle}\n target={\n <Item\n item={item}\n path={path}\n currentLevel={currentLevel}\n index={index}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n isInner\n >\n <ListWrapper listWidth={listWidth}>\n <Ul role=\"group\" id={listId} virtual={false}>\n {item.items?.map((innerItem: ItemOptionTransformed, innerIndex: number) => (\n <Inner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </ListWrapper>\n </FloatingPopover>\n );\n }\n\n return <Item item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n"],"names":["Inner","item","currentLevel","path","dispatchPath","index","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","treeId","safeUseId","listId","nextLevel","isEmpty","items","React","createElement","FloatingPopover","placement","onToggle","target","Item","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","isInner","ListWrapper","Ul","role","id","virtual","map","innerItem","innerIndex","key"],"mappings":"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"}