@skbkontur/react-ui 4.21.2 → 4.21.3

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 (592) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
  3. package/cjs/components/Autocomplete/Autocomplete.js +2 -1
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +1 -0
  6. package/cjs/components/Button/Button.js +2 -1
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Calendar/Calendar.d.ts +1 -0
  9. package/cjs/components/Calendar/Calendar.js +2 -1
  10. package/cjs/components/Calendar/Calendar.js.map +1 -1
  11. package/cjs/components/Calendar/DayCellView.js +8 -5
  12. package/cjs/components/Calendar/DayCellView.js.map +1 -1
  13. package/cjs/components/Center/Center.d.ts +1 -0
  14. package/cjs/components/Center/Center.js +2 -1
  15. package/cjs/components/Center/Center.js.map +1 -1
  16. package/cjs/components/Checkbox/Checkbox.d.ts +1 -0
  17. package/cjs/components/Checkbox/Checkbox.js +2 -1
  18. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  19. package/cjs/components/ComboBox/ComboBox.d.ts +1 -0
  20. package/cjs/components/ComboBox/ComboBox.js +2 -1
  21. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  22. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -0
  23. package/cjs/components/CurrencyInput/CurrencyInput.js +2 -1
  24. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  25. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +1 -0
  26. package/cjs/components/CurrencyLabel/CurrencyLabel.js +1 -0
  27. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  28. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  29. package/cjs/components/DateInput/DateInput.js +2 -1
  30. package/cjs/components/DateInput/DateInput.js.map +1 -1
  31. package/cjs/components/DatePicker/DatePicker.d.ts +1 -0
  32. package/cjs/components/DatePicker/DatePicker.js +2 -1
  33. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  34. package/cjs/components/DatePicker/Picker.d.ts +1 -0
  35. package/cjs/components/DatePicker/Picker.js +2 -1
  36. package/cjs/components/DatePicker/Picker.js.map +1 -1
  37. package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
  38. package/cjs/components/Dropdown/Dropdown.js +2 -1
  39. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  40. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -0
  41. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -1
  42. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  43. package/cjs/components/FileUploader/FileUploader.js +2 -1
  44. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  45. package/cjs/components/FxInput/FxInput.d.ts +1 -0
  46. package/cjs/components/FxInput/FxInput.js +2 -1
  47. package/cjs/components/FxInput/FxInput.js.map +1 -1
  48. package/cjs/components/Gapped/Gapped.d.ts +1 -0
  49. package/cjs/components/Gapped/Gapped.js +2 -1
  50. package/cjs/components/Gapped/Gapped.js.map +1 -1
  51. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  52. package/cjs/components/GlobalLoader/GlobalLoader.js +4 -1
  53. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  54. package/cjs/components/Group/Group.d.ts +1 -0
  55. package/cjs/components/Group/Group.js +3 -1
  56. package/cjs/components/Group/Group.js.map +1 -1
  57. package/cjs/components/Hint/Hint.d.ts +1 -0
  58. package/cjs/components/Hint/Hint.js +2 -1
  59. package/cjs/components/Hint/Hint.js.map +1 -1
  60. package/cjs/components/Input/Input.d.ts +1 -0
  61. package/cjs/components/Input/Input.js +2 -1
  62. package/cjs/components/Input/Input.js.map +1 -1
  63. package/cjs/components/Kebab/Kebab.d.ts +1 -0
  64. package/cjs/components/Kebab/Kebab.js +2 -1
  65. package/cjs/components/Kebab/Kebab.js.map +1 -1
  66. package/cjs/components/Link/Link.d.ts +1 -0
  67. package/cjs/components/Link/Link.js +2 -1
  68. package/cjs/components/Link/Link.js.map +1 -1
  69. package/cjs/components/Loader/Loader.d.ts +1 -0
  70. package/cjs/components/Loader/Loader.js +2 -1
  71. package/cjs/components/Loader/Loader.js.map +1 -1
  72. package/cjs/components/MenuFooter/MenuFooter.d.ts +1 -0
  73. package/cjs/components/MenuFooter/MenuFooter.js +1 -0
  74. package/cjs/components/MenuFooter/MenuFooter.js.map +1 -1
  75. package/cjs/components/MenuHeader/MenuHeader.d.ts +1 -0
  76. package/cjs/components/MenuHeader/MenuHeader.js +1 -0
  77. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  78. package/cjs/components/MenuItem/MenuItem.d.ts +4 -0
  79. package/cjs/components/MenuItem/MenuItem.js +29 -10
  80. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  81. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +1 -0
  82. package/cjs/components/MenuSeparator/MenuSeparator.js +2 -1
  83. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  84. package/cjs/components/MiniModal/MiniModal.js +0 -2
  85. package/cjs/components/MiniModal/MiniModal.js.map +1 -1
  86. package/cjs/components/Modal/Modal.d.ts +1 -0
  87. package/cjs/components/Modal/Modal.js +2 -1
  88. package/cjs/components/Modal/Modal.js.map +1 -1
  89. package/cjs/components/Modal/ModalBody.d.ts +1 -0
  90. package/cjs/components/Modal/ModalBody.js +2 -1
  91. package/cjs/components/Modal/ModalBody.js.map +1 -1
  92. package/cjs/components/Modal/ModalClose.d.ts +4 -0
  93. package/cjs/components/Modal/ModalClose.js +4 -1
  94. package/cjs/components/Modal/ModalClose.js.map +1 -1
  95. package/cjs/components/Modal/ModalFooter.d.ts +1 -0
  96. package/cjs/components/Modal/ModalFooter.js +1 -0
  97. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  98. package/cjs/components/Modal/ModalHeader.d.ts +1 -0
  99. package/cjs/components/Modal/ModalHeader.js +1 -0
  100. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  101. package/cjs/components/Modal/ModalSeparator.d.ts +4 -0
  102. package/cjs/components/Modal/ModalSeparator.js +4 -1
  103. package/cjs/components/Modal/ModalSeparator.js.map +1 -1
  104. package/cjs/components/Paging/Paging.d.ts +1 -0
  105. package/cjs/components/Paging/Paging.js +10 -6
  106. package/cjs/components/Paging/Paging.js.map +1 -1
  107. package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -0
  108. package/cjs/components/PasswordInput/PasswordInput.js +2 -1
  109. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  110. package/cjs/components/Radio/Radio.d.ts +1 -0
  111. package/cjs/components/Radio/Radio.js +2 -1
  112. package/cjs/components/Radio/Radio.js.map +1 -1
  113. package/cjs/components/RadioGroup/RadioGroup.d.ts +1 -0
  114. package/cjs/components/RadioGroup/RadioGroup.js +2 -1
  115. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  116. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -0
  117. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +4 -1
  118. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  119. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  120. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
  121. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  122. package/cjs/components/Select/Item.d.ts +1 -0
  123. package/cjs/components/Select/Item.js +2 -1
  124. package/cjs/components/Select/Item.js.map +1 -1
  125. package/cjs/components/Select/Select.d.ts +2 -0
  126. package/cjs/components/Select/Select.js +5 -2
  127. package/cjs/components/Select/Select.js.map +1 -1
  128. package/cjs/components/SidePage/SidePage.d.ts +1 -0
  129. package/cjs/components/SidePage/SidePage.js +2 -1
  130. package/cjs/components/SidePage/SidePage.js.map +1 -1
  131. package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
  132. package/cjs/components/SidePage/SidePageBody.js +2 -1
  133. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  134. package/cjs/components/SidePage/SidePageCloseButton.d.ts +5 -1
  135. package/cjs/components/SidePage/SidePageCloseButton.js +4 -1
  136. package/cjs/components/SidePage/SidePageCloseButton.js.map +1 -1
  137. package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
  138. package/cjs/components/SidePage/SidePageContainer.js +2 -1
  139. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  140. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -0
  141. package/cjs/components/SidePage/SidePageFooter.js +2 -1
  142. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  143. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
  144. package/cjs/components/SidePage/SidePageHeader.js +2 -1
  145. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  146. package/cjs/components/SingleToast/SingleToast.d.ts +2 -0
  147. package/cjs/components/SingleToast/SingleToast.js +4 -1
  148. package/cjs/components/SingleToast/SingleToast.js.map +1 -1
  149. package/cjs/components/Spinner/Spinner.d.ts +1 -0
  150. package/cjs/components/Spinner/Spinner.js +2 -1
  151. package/cjs/components/Spinner/Spinner.js.map +1 -1
  152. package/cjs/components/Sticky/Sticky.d.ts +1 -0
  153. package/cjs/components/Sticky/Sticky.js +2 -1
  154. package/cjs/components/Sticky/Sticky.js.map +1 -1
  155. package/cjs/components/Switcher/Switcher.d.ts +1 -0
  156. package/cjs/components/Switcher/Switcher.js +2 -1
  157. package/cjs/components/Switcher/Switcher.js.map +1 -1
  158. package/cjs/components/Tabs/Tab.d.ts +1 -0
  159. package/cjs/components/Tabs/Tab.js +7 -1
  160. package/cjs/components/Tabs/Tab.js.map +1 -1
  161. package/cjs/components/Tabs/Tabs.d.ts +1 -0
  162. package/cjs/components/Tabs/Tabs.js +2 -1
  163. package/cjs/components/Tabs/Tabs.js.map +1 -1
  164. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  165. package/cjs/components/Textarea/Textarea.js +2 -1
  166. package/cjs/components/Textarea/Textarea.js.map +1 -1
  167. package/cjs/components/Toast/Toast.d.ts +1 -0
  168. package/cjs/components/Toast/Toast.js +3 -1
  169. package/cjs/components/Toast/Toast.js.map +1 -1
  170. package/cjs/components/Toggle/Toggle.d.ts +1 -0
  171. package/cjs/components/Toggle/Toggle.js +2 -1
  172. package/cjs/components/Toggle/Toggle.js.map +1 -1
  173. package/cjs/components/Token/Token.d.ts +1 -0
  174. package/cjs/components/Token/Token.js +8 -1
  175. package/cjs/components/Token/Token.js.map +1 -1
  176. package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
  177. package/cjs/components/TokenInput/TokenInput.js +2 -1
  178. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  179. package/cjs/components/TokenInput/TokenInputMenu.d.ts +1 -0
  180. package/cjs/components/TokenInput/TokenInputMenu.js +2 -1
  181. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  182. package/cjs/components/Tooltip/Tooltip.d.ts +1 -0
  183. package/cjs/components/Tooltip/Tooltip.js +2 -1
  184. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  185. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -0
  186. package/cjs/components/TooltipMenu/TooltipMenu.js +3 -1
  187. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  188. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js +4 -1
  189. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  190. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +5 -26
  191. package/cjs/internal/CommonWrapper/CommonWrapper.js +7 -56
  192. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  193. package/cjs/internal/CommonWrapper/extractCommonProps.d.ts +3 -0
  194. package/cjs/internal/CommonWrapper/extractCommonProps.js +34 -0
  195. package/cjs/internal/CommonWrapper/extractCommonProps.js.map +1 -0
  196. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.d.ts +2 -0
  197. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js +12 -0
  198. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js.map +1 -0
  199. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.d.ts +3 -0
  200. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js +23 -0
  201. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js.map +1 -0
  202. package/cjs/internal/CommonWrapper/index.d.ts +2 -0
  203. package/cjs/internal/CommonWrapper/index.js.map +1 -1
  204. package/cjs/internal/CommonWrapper/types.d.ts +25 -0
  205. package/cjs/internal/CommonWrapper/types.js +1 -0
  206. package/cjs/internal/CommonWrapper/types.js.map +1 -0
  207. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  208. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +2 -1
  209. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  210. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
  211. package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -1
  212. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  213. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  214. package/cjs/internal/CustomComboBox/CustomComboBox.js +2 -1
  215. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  216. package/cjs/internal/DateSelect/DateSelect.d.ts +1 -0
  217. package/cjs/internal/DateSelect/DateSelect.js +2 -1
  218. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  219. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +1 -0
  220. package/cjs/internal/DropdownContainer/DropdownContainer.js +2 -1
  221. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  222. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  223. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +1 -0
  224. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  225. package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
  226. package/cjs/internal/FocusTrap/FocusTrap.js +3 -1
  227. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  228. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
  229. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  230. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  231. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +2 -1
  232. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  233. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  234. package/cjs/internal/InputLikeText/InputLikeText.js +2 -1
  235. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  236. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.d.ts +1 -0
  237. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +2 -1
  238. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  239. package/cjs/internal/InternalMenu/InternalMenu.d.ts +1 -0
  240. package/cjs/internal/InternalMenu/InternalMenu.js +2 -1
  241. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  242. package/cjs/internal/Menu/Menu.d.ts +1 -0
  243. package/cjs/internal/Menu/Menu.js +2 -1
  244. package/cjs/internal/Menu/Menu.js.map +1 -1
  245. package/cjs/internal/MobilePopup/MobilePopup.d.ts +1 -0
  246. package/cjs/internal/MobilePopup/MobilePopup.js +2 -1
  247. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  248. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
  249. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +2 -1
  250. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  251. package/cjs/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
  252. package/cjs/internal/NativeDateInput/NativeDateInput.js +3 -1
  253. package/cjs/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  254. package/cjs/internal/Popup/Popup.d.ts +1 -0
  255. package/cjs/internal/Popup/Popup.js +2 -1
  256. package/cjs/internal/Popup/Popup.js.map +1 -1
  257. package/cjs/internal/Popup/PopupPin.d.ts +1 -0
  258. package/cjs/internal/Popup/PopupPin.js +2 -1
  259. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  260. package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -0
  261. package/cjs/internal/PopupMenu/PopupMenu.js +2 -1
  262. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  263. package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -0
  264. package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
  265. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  266. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +3 -0
  267. package/cjs/internal/RenderContainer/RenderInnerContainer.js +7 -2
  268. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  269. package/cjs/internal/RenderLayer/RenderLayer.d.ts +1 -0
  270. package/cjs/internal/RenderLayer/RenderLayer.js +2 -1
  271. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  272. package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  273. package/cjs/internal/ResizeDetector/ResizeDetector.js +2 -1
  274. package/cjs/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  275. package/cjs/internal/ZIndex/ZIndex.d.ts +1 -0
  276. package/cjs/internal/ZIndex/ZIndex.js +2 -1
  277. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  278. package/cjs/internal/icons/20px/Icon.d.ts +1 -0
  279. package/cjs/internal/icons/20px/Icon.js +2 -1
  280. package/cjs/internal/icons/20px/Icon.js.map +1 -1
  281. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
  282. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  283. package/cjs/lib/locale/LocaleContext.js +2 -1
  284. package/cjs/lib/locale/LocaleContext.js.map +1 -1
  285. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -0
  286. package/cjs/lib/rootNode/rootNodeDecorator.js +4 -1
  287. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  288. package/cjs/lib/theming/ThemeContext.js +2 -1
  289. package/cjs/lib/theming/ThemeContext.js.map +1 -1
  290. package/cjs/lib/toKebabCase.d.ts +1 -0
  291. package/cjs/lib/toKebabCase.js +10 -0
  292. package/cjs/lib/toKebabCase.js.map +1 -0
  293. package/cjs/typings/global-react.d.ts +12 -0
  294. package/components/Autocomplete/Autocomplete/Autocomplete.js +1 -1
  295. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  296. package/components/Autocomplete/Autocomplete.d.ts +1 -0
  297. package/components/Button/Button/Button.js +1 -1
  298. package/components/Button/Button/Button.js.map +1 -1
  299. package/components/Button/Button.d.ts +1 -0
  300. package/components/Calendar/Calendar/Calendar.js +1 -1
  301. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  302. package/components/Calendar/Calendar.d.ts +1 -0
  303. package/components/Calendar/DayCellView/DayCellView.js +9 -3
  304. package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
  305. package/components/Center/Center/Center.js +1 -1
  306. package/components/Center/Center/Center.js.map +1 -1
  307. package/components/Center/Center.d.ts +1 -0
  308. package/components/Checkbox/Checkbox/Checkbox.js +1 -1
  309. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  310. package/components/Checkbox/Checkbox.d.ts +1 -0
  311. package/components/ComboBox/ComboBox/ComboBox.js +1 -1
  312. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  313. package/components/ComboBox/ComboBox.d.ts +1 -0
  314. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +1 -1
  315. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  316. package/components/CurrencyInput/CurrencyInput.d.ts +1 -0
  317. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +1 -0
  318. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  319. package/components/CurrencyLabel/CurrencyLabel.d.ts +1 -0
  320. package/components/DateInput/DateInput/DateInput.js +1 -1
  321. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  322. package/components/DateInput/DateInput.d.ts +1 -0
  323. package/components/DatePicker/DatePicker/DatePicker.js +1 -1
  324. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  325. package/components/DatePicker/DatePicker.d.ts +1 -0
  326. package/components/DatePicker/Picker/Picker.js +1 -1
  327. package/components/DatePicker/Picker/Picker.js.map +1 -1
  328. package/components/DatePicker/Picker.d.ts +1 -0
  329. package/components/Dropdown/Dropdown/Dropdown.js +1 -1
  330. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  331. package/components/Dropdown/Dropdown.d.ts +1 -0
  332. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
  333. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  334. package/components/DropdownMenu/DropdownMenu.d.ts +1 -0
  335. package/components/FileUploader/FileUploader/FileUploader.js +2 -1
  336. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  337. package/components/FxInput/FxInput/FxInput.js +1 -1
  338. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  339. package/components/FxInput/FxInput.d.ts +1 -0
  340. package/components/Gapped/Gapped/Gapped.js +1 -1
  341. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  342. package/components/Gapped/Gapped.d.ts +1 -0
  343. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +1 -1
  344. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  345. package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  346. package/components/Group/Group/Group.js +1 -1
  347. package/components/Group/Group/Group.js.map +1 -1
  348. package/components/Group/Group.d.ts +1 -0
  349. package/components/Hint/Hint/Hint.js +1 -1
  350. package/components/Hint/Hint/Hint.js.map +1 -1
  351. package/components/Hint/Hint.d.ts +1 -0
  352. package/components/Input/Input/Input.js +1 -1
  353. package/components/Input/Input/Input.js.map +1 -1
  354. package/components/Input/Input.d.ts +1 -0
  355. package/components/Kebab/Kebab/Kebab.js +1 -1
  356. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  357. package/components/Kebab/Kebab.d.ts +1 -0
  358. package/components/Link/Link/Link.js +1 -1
  359. package/components/Link/Link/Link.js.map +1 -1
  360. package/components/Link/Link.d.ts +1 -0
  361. package/components/Loader/Loader/Loader.js +1 -1
  362. package/components/Loader/Loader/Loader.js.map +1 -1
  363. package/components/Loader/Loader.d.ts +1 -0
  364. package/components/MenuFooter/MenuFooter/MenuFooter.js +1 -0
  365. package/components/MenuFooter/MenuFooter/MenuFooter.js.map +1 -1
  366. package/components/MenuFooter/MenuFooter.d.ts +1 -0
  367. package/components/MenuHeader/MenuHeader/MenuHeader.js +1 -0
  368. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  369. package/components/MenuHeader/MenuHeader.d.ts +1 -0
  370. package/components/MenuItem/MenuItem/MenuItem.js +29 -6
  371. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  372. package/components/MenuItem/MenuItem.d.ts +4 -0
  373. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +1 -0
  374. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  375. package/components/MenuSeparator/MenuSeparator.d.ts +1 -0
  376. package/components/MiniModal/MiniModal/MiniModal.js +0 -1
  377. package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
  378. package/components/Modal/Modal/Modal.js +1 -0
  379. package/components/Modal/Modal/Modal.js.map +1 -1
  380. package/components/Modal/Modal.d.ts +1 -0
  381. package/components/Modal/ModalBody/ModalBody.js +1 -1
  382. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  383. package/components/Modal/ModalBody.d.ts +1 -0
  384. package/components/Modal/ModalClose/ModalClose.js +3 -1
  385. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  386. package/components/Modal/ModalClose.d.ts +4 -0
  387. package/components/Modal/ModalFooter/ModalFooter.js +1 -0
  388. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  389. package/components/Modal/ModalFooter.d.ts +1 -0
  390. package/components/Modal/ModalHeader/ModalHeader.js +1 -0
  391. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  392. package/components/Modal/ModalHeader.d.ts +1 -0
  393. package/components/Modal/ModalSeparator/ModalSeparator.js +3 -1
  394. package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
  395. package/components/Modal/ModalSeparator.d.ts +4 -0
  396. package/components/Paging/Paging/Paging.js +11 -5
  397. package/components/Paging/Paging/Paging.js.map +1 -1
  398. package/components/Paging/Paging.d.ts +1 -0
  399. package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -1
  400. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  401. package/components/PasswordInput/PasswordInput.d.ts +1 -0
  402. package/components/Radio/Radio/Radio.js +1 -1
  403. package/components/Radio/Radio/Radio.js.map +1 -1
  404. package/components/Radio/Radio.d.ts +1 -0
  405. package/components/RadioGroup/RadioGroup/RadioGroup.js +1 -1
  406. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  407. package/components/RadioGroup/RadioGroup.d.ts +1 -0
  408. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +3 -1
  409. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  410. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -0
  411. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
  412. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  413. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  414. package/components/Select/Item/Item.js +2 -1
  415. package/components/Select/Item/Item.js.map +1 -1
  416. package/components/Select/Item.d.ts +1 -0
  417. package/components/Select/Select/Select.js +4 -2
  418. package/components/Select/Select/Select.js.map +1 -1
  419. package/components/Select/Select.d.ts +2 -0
  420. package/components/SidePage/SidePage/SidePage.js +1 -0
  421. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  422. package/components/SidePage/SidePage.d.ts +1 -0
  423. package/components/SidePage/SidePageBody/SidePageBody.js +1 -1
  424. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  425. package/components/SidePage/SidePageBody.d.ts +1 -0
  426. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js +3 -1
  427. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js.map +1 -1
  428. package/components/SidePage/SidePageCloseButton.d.ts +5 -1
  429. package/components/SidePage/SidePageContainer/SidePageContainer.js +1 -1
  430. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  431. package/components/SidePage/SidePageContainer.d.ts +1 -0
  432. package/components/SidePage/SidePageFooter/SidePageFooter.js +1 -1
  433. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  434. package/components/SidePage/SidePageFooter.d.ts +1 -0
  435. package/components/SidePage/SidePageHeader/SidePageHeader.js +1 -1
  436. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  437. package/components/SidePage/SidePageHeader.d.ts +1 -0
  438. package/components/SingleToast/SingleToast/SingleToast.js +2 -0
  439. package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
  440. package/components/SingleToast/SingleToast.d.ts +2 -0
  441. package/components/Spinner/Spinner/Spinner.js +1 -1
  442. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  443. package/components/Spinner/Spinner.d.ts +1 -0
  444. package/components/Sticky/Sticky/Sticky.js +1 -1
  445. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  446. package/components/Sticky/Sticky.d.ts +1 -0
  447. package/components/Switcher/Switcher/Switcher.js +1 -1
  448. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  449. package/components/Switcher/Switcher.d.ts +1 -0
  450. package/components/Tabs/Tab/Tab.js +6 -2
  451. package/components/Tabs/Tab/Tab.js.map +1 -1
  452. package/components/Tabs/Tab.d.ts +1 -0
  453. package/components/Tabs/Tabs/Tabs.js +1 -1
  454. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  455. package/components/Tabs/Tabs.d.ts +1 -0
  456. package/components/Textarea/Textarea/Textarea.js +1 -1
  457. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  458. package/components/Textarea/Textarea.d.ts +1 -0
  459. package/components/Toast/Toast/Toast.js +1 -1
  460. package/components/Toast/Toast/Toast.js.map +1 -1
  461. package/components/Toast/Toast.d.ts +1 -0
  462. package/components/Toggle/Toggle/Toggle.js +1 -1
  463. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  464. package/components/Toggle/Toggle.d.ts +1 -0
  465. package/components/Token/Token/Token.js +2 -2
  466. package/components/Token/Token/Token.js.map +1 -1
  467. package/components/Token/Token.d.ts +1 -0
  468. package/components/TokenInput/TokenInput/TokenInput.js +1 -1
  469. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  470. package/components/TokenInput/TokenInput.d.ts +1 -0
  471. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -1
  472. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  473. package/components/TokenInput/TokenInputMenu.d.ts +1 -0
  474. package/components/Tooltip/Tooltip/Tooltip.js +1 -1
  475. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  476. package/components/Tooltip/Tooltip.d.ts +1 -0
  477. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +1 -1
  478. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  479. package/components/TooltipMenu/TooltipMenu.d.ts +1 -0
  480. package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js +3 -1
  481. package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  482. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +8 -38
  483. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  484. package/internal/CommonWrapper/CommonWrapper.d.ts +5 -26
  485. package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js +31 -0
  486. package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js.map +1 -0
  487. package/internal/CommonWrapper/extractCommonProps/package.json +6 -0
  488. package/internal/CommonWrapper/extractCommonProps.d.ts +3 -0
  489. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js +12 -0
  490. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +1 -0
  491. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/package.json +6 -0
  492. package/internal/CommonWrapper/getCommonVisualStateDataAttributes.d.ts +2 -0
  493. package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js +16 -0
  494. package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +1 -0
  495. package/internal/CommonWrapper/getVisualStateDataAttributes/package.json +6 -0
  496. package/internal/CommonWrapper/getVisualStateDataAttributes.d.ts +3 -0
  497. package/internal/CommonWrapper/index/index.js +2 -1
  498. package/internal/CommonWrapper/index/index.js.map +1 -1
  499. package/internal/CommonWrapper/index.d.ts +2 -0
  500. package/internal/CommonWrapper/types/package.json +6 -0
  501. package/internal/CommonWrapper/types/types.js +1 -0
  502. package/internal/CommonWrapper/types/types.js.map +1 -0
  503. package/internal/CommonWrapper/types.d.ts +25 -0
  504. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +1 -1
  505. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  506. package/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  507. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +1 -1
  508. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  509. package/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
  510. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +1 -1
  511. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  512. package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  513. package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
  514. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  515. package/internal/DateSelect/DateSelect.d.ts +1 -0
  516. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +1 -0
  517. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  518. package/internal/DropdownContainer/DropdownContainer.d.ts +1 -0
  519. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +1 -0
  520. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  521. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  522. package/internal/FocusTrap/FocusTrap/FocusTrap.js +1 -1
  523. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  524. package/internal/FocusTrap/FocusTrap.d.ts +1 -0
  525. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +1 -0
  526. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  527. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
  528. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +1 -1
  529. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  530. package/internal/InputLikeText/InputLikeText/InputLikeText.js +1 -1
  531. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  532. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  533. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +2 -1
  534. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  535. package/internal/InternalMaskedInput/InternalMaskedInput.d.ts +1 -0
  536. package/internal/InternalMenu/InternalMenu/InternalMenu.js +1 -1
  537. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  538. package/internal/InternalMenu/InternalMenu.d.ts +1 -0
  539. package/internal/Menu/Menu/Menu.js +1 -1
  540. package/internal/Menu/Menu/Menu.js.map +1 -1
  541. package/internal/Menu/Menu.d.ts +1 -0
  542. package/internal/MobilePopup/MobilePopup/MobilePopup.js +2 -1
  543. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  544. package/internal/MobilePopup/MobilePopup.d.ts +1 -0
  545. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -1
  546. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  547. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
  548. package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js +2 -1
  549. package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js.map +1 -1
  550. package/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
  551. package/internal/Popup/Popup/Popup.js +1 -1
  552. package/internal/Popup/Popup/Popup.js.map +1 -1
  553. package/internal/Popup/Popup.d.ts +1 -0
  554. package/internal/Popup/PopupPin/PopupPin.js +1 -0
  555. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  556. package/internal/Popup/PopupPin.d.ts +1 -0
  557. package/internal/PopupMenu/PopupMenu/PopupMenu.js +1 -1
  558. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  559. package/internal/PopupMenu/PopupMenu.d.ts +1 -0
  560. package/internal/RenderContainer/RenderContainer/RenderContainer.js +1 -0
  561. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  562. package/internal/RenderContainer/RenderContainer.d.ts +1 -0
  563. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +4 -1
  564. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  565. package/internal/RenderContainer/RenderInnerContainer.d.ts +3 -0
  566. package/internal/RenderLayer/RenderLayer/RenderLayer.js +1 -1
  567. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  568. package/internal/RenderLayer/RenderLayer.d.ts +1 -0
  569. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js +2 -1
  570. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js.map +1 -1
  571. package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  572. package/internal/ZIndex/ZIndex/ZIndex.js +1 -1
  573. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  574. package/internal/ZIndex/ZIndex.d.ts +1 -0
  575. package/internal/icons/20px/Icon/Icon.js +1 -0
  576. package/internal/icons/20px/Icon/Icon.js.map +1 -1
  577. package/internal/icons/20px/Icon.d.ts +1 -0
  578. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
  579. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  580. package/lib/locale/LocaleContext/LocaleContext.js +2 -1
  581. package/lib/locale/LocaleContext/LocaleContext.js.map +1 -1
  582. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +1 -1
  583. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  584. package/lib/rootNode/rootNodeDecorator.d.ts +2 -0
  585. package/lib/theming/ThemeContext/ThemeContext.js +2 -1
  586. package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
  587. package/lib/toKebabCase/package.json +6 -0
  588. package/lib/toKebabCase/toKebabCase.js +7 -0
  589. package/lib/toKebabCase/toKebabCase.js.map +1 -0
  590. package/lib/toKebabCase.d.ts +1 -0
  591. package/package.json +8 -8
  592. package/typings/global-react.d.ts +12 -0
@@ -67,6 +67,7 @@ function MenuFooter(_ref) {
67
67
  }
68
68
 
69
69
  MenuFooter.__KONTUR_REACT_UI__ = 'MenuFooter';
70
+ MenuFooter.displayName = 'MenuFooter';
70
71
  MenuFooter.__MENU_FOOTER__ = true;
71
72
  export { MenuFooter };
72
73
  export var isMenuFooter = function isMenuFooter(child) {
@@ -1 +1 @@
1
- {"version":3,"sources":["MenuFooter.tsx"],"names":["React","useContext","ThemeContext","CommonWrapper","cx","styles","MenuFooterDataTids","root","MenuFooter","_enableIconPadding","children","size","rest","theme","getRootSizeClassName","rootLarge","rootMedium","rootSmall","getWithLeftPaddingSizeClassName","withLeftPaddingSmall","withLeftPaddingMedium","__KONTUR_REACT_UI__","__MENU_FOOTER__","isMenuFooter","child","isValidElement","Object","prototype","hasOwnProperty","call","type"],"mappings":"+JAAA,OAAOA,KAAP,IAA2BC,UAA3B,QAA6C,OAA7C;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;;;AAGA,SAASC,MAAT,QAAuB,qBAAvB;;AAEA;AACA;AACA;;;;;;;;;;AAUA,OAAO,IAAMC,kBAAkB,GAAG;AAChCC,EAAAA,IAAI,EAAE,kBAD0B,EAA3B;;;AAIP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAT,OAAwG,0CAAlFC,kBAAkF,CAAlFA,kBAAkF,sCAA7D,KAA6D,yBAAtDC,QAAsD,QAAtDA,QAAsD,kBAA5CC,IAA4C,CAA5CA,IAA4C,0BAArC,OAAqC,aAAzBC,IAAyB;AACtG,MAAMC,KAAK,GAAGZ,UAAU,CAACC,YAAD,CAAxB;;AAEA,WAASY,oBAAT,GAAgC;AAC9B,YAAQH,IAAR;AACE,WAAK,OAAL;AACE,eAAON,MAAM,CAACU,SAAP,CAAiBF,KAAjB,CAAP;AACF,WAAK,QAAL;AACE,eAAOR,MAAM,CAACW,UAAP,CAAkBH,KAAlB,CAAP;AACF,WAAK,OAAL;AACA;AACE,eAAOR,MAAM,CAACY,SAAP,CAAiBJ,KAAjB,CAAP,CAPJ;;AASD;AACD,WAASK,+BAAT,GAA2C;AACzC,YAAQP,IAAR;AACE,WAAK,OAAL;AACE,eAAON,MAAM,CAACc,oBAAP,CAA4BN,KAA5B,CAAP;AACF,WAAK,QAAL;AACE,eAAOR,MAAM,CAACe,qBAAP,CAA6BP,KAA7B,CAAP;AACF,WAAK,OAAL;AACA;AACE,eAAOR,MAAM,CAACc,oBAAP,CAA4BN,KAA5B,CAAP,CAPJ;;AASD;;AAED;AACE,wBAAC,aAAD,EAAmBD,IAAnB;AACE;AACE,kBAAUN,kBAAkB,CAACC,IAD/B;AAEE,MAAA,SAAS,EAAEH,EAAE,CAACU,oBAAoB,EAArB;AACVT,MAAAA,MAAM,CAACE,IAAP,CAAYM,KAAZ,CADU,IACW,IADX;AAEVK,MAAAA,+BAA+B,EAFrB,IAE0BT,kBAF1B,OAFf;;;AAOGC,IAAAA,QAPH,CADF,CADF;;;;AAaD;;AAEDF,UAAU,CAACa,mBAAX,GAAiC,YAAjC;AACAb,UAAU,CAACc,eAAX,GAA6B,IAA7B;;AAEA,SAASd,UAAT;;AAEA,OAAO,IAAMe,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAA0E;AACpG,SAAO,aAAAxB,KAAK,CAACyB,cAAN,CAAsCD,KAAtC;AACHE,EAAAA,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCL,KAAK,CAACM,IAA3C,EAAiD,iBAAjD,CADG;AAEH,OAFJ;AAGD,CAJM","sourcesContent":["import React, { ReactNode, useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './MenuFooter.styles';\n\n/**\n * @deprecated use SizeProp\n */\nexport type MenuFooterSize = SizeProp;\n\nexport interface MenuFooterProps extends CommonProps {\n _enableIconPadding?: boolean;\n children: ReactNode;\n /** Размер */\n size?: SizeProp;\n}\n\nexport const MenuFooterDataTids = {\n root: 'MenuFooter__root',\n} as const;\n\n/**\n * Футер меню.\n *\n * _Примечание_: `футер меню`, в отличие от `элемента меню` нельзя затаргетить с клавиатуры.\n *\n * Сущности в которых может быть использован `MenuFooter`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\nfunction MenuFooter({ _enableIconPadding = false, children, size = 'small', ...rest }: MenuFooterProps) {\n const theme = useContext(ThemeContext);\n\n function getRootSizeClassName() {\n switch (size) {\n case 'large':\n return styles.rootLarge(theme);\n case 'medium':\n return styles.rootMedium(theme);\n case 'small':\n default:\n return styles.rootSmall(theme);\n }\n }\n function getWithLeftPaddingSizeClassName() {\n switch (size) {\n case 'large':\n return styles.withLeftPaddingSmall(theme);\n case 'medium':\n return styles.withLeftPaddingMedium(theme);\n case 'small':\n default:\n return styles.withLeftPaddingSmall(theme);\n }\n }\n\n return (\n <CommonWrapper {...rest}>\n <div\n data-tid={MenuFooterDataTids.root}\n className={cx(getRootSizeClassName(), {\n [styles.root(theme)]: true,\n [getWithLeftPaddingSizeClassName()]: _enableIconPadding,\n })}\n >\n {children}\n </div>\n </CommonWrapper>\n );\n}\n\nMenuFooter.__KONTUR_REACT_UI__ = 'MenuFooter';\nMenuFooter.__MENU_FOOTER__ = true;\n\nexport { MenuFooter };\n\nexport const isMenuFooter = (child: React.ReactNode): child is React.ReactElement<MenuFooterProps> => {\n return React.isValidElement<MenuFooterProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__MENU_FOOTER__')\n : false;\n};\n"]}
1
+ {"version":3,"sources":["MenuFooter.tsx"],"names":["React","useContext","ThemeContext","CommonWrapper","cx","styles","MenuFooterDataTids","root","MenuFooter","_enableIconPadding","children","size","rest","theme","getRootSizeClassName","rootLarge","rootMedium","rootSmall","getWithLeftPaddingSizeClassName","withLeftPaddingSmall","withLeftPaddingMedium","__KONTUR_REACT_UI__","displayName","__MENU_FOOTER__","isMenuFooter","child","isValidElement","Object","prototype","hasOwnProperty","call","type"],"mappings":"+JAAA,OAAOA,KAAP,IAA2BC,UAA3B,QAA6C,OAA7C;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;;;AAGA,SAASC,MAAT,QAAuB,qBAAvB;;AAEA;AACA;AACA;;;;;;;;;;AAUA,OAAO,IAAMC,kBAAkB,GAAG;AAChCC,EAAAA,IAAI,EAAE,kBAD0B,EAA3B;;;AAIP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAT,OAAwG,0CAAlFC,kBAAkF,CAAlFA,kBAAkF,sCAA7D,KAA6D,yBAAtDC,QAAsD,QAAtDA,QAAsD,kBAA5CC,IAA4C,CAA5CA,IAA4C,0BAArC,OAAqC,aAAzBC,IAAyB;AACtG,MAAMC,KAAK,GAAGZ,UAAU,CAACC,YAAD,CAAxB;;AAEA,WAASY,oBAAT,GAAgC;AAC9B,YAAQH,IAAR;AACE,WAAK,OAAL;AACE,eAAON,MAAM,CAACU,SAAP,CAAiBF,KAAjB,CAAP;AACF,WAAK,QAAL;AACE,eAAOR,MAAM,CAACW,UAAP,CAAkBH,KAAlB,CAAP;AACF,WAAK,OAAL;AACA;AACE,eAAOR,MAAM,CAACY,SAAP,CAAiBJ,KAAjB,CAAP,CAPJ;;AASD;AACD,WAASK,+BAAT,GAA2C;AACzC,YAAQP,IAAR;AACE,WAAK,OAAL;AACE,eAAON,MAAM,CAACc,oBAAP,CAA4BN,KAA5B,CAAP;AACF,WAAK,QAAL;AACE,eAAOR,MAAM,CAACe,qBAAP,CAA6BP,KAA7B,CAAP;AACF,WAAK,OAAL;AACA;AACE,eAAOR,MAAM,CAACc,oBAAP,CAA4BN,KAA5B,CAAP,CAPJ;;AASD;;AAED;AACE,wBAAC,aAAD,EAAmBD,IAAnB;AACE;AACE,kBAAUN,kBAAkB,CAACC,IAD/B;AAEE,MAAA,SAAS,EAAEH,EAAE,CAACU,oBAAoB,EAArB;AACVT,MAAAA,MAAM,CAACE,IAAP,CAAYM,KAAZ,CADU,IACW,IADX;AAEVK,MAAAA,+BAA+B,EAFrB,IAE0BT,kBAF1B,OAFf;;;AAOGC,IAAAA,QAPH,CADF,CADF;;;;AAaD;;AAEDF,UAAU,CAACa,mBAAX,GAAiC,YAAjC;AACAb,UAAU,CAACc,WAAX,GAAyB,YAAzB;AACAd,UAAU,CAACe,eAAX,GAA6B,IAA7B;;AAEA,SAASf,UAAT;;AAEA,OAAO,IAAMgB,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAA0E;AACpG,SAAO,aAAAzB,KAAK,CAAC0B,cAAN,CAAsCD,KAAtC;AACHE,EAAAA,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCL,KAAK,CAACM,IAA3C,EAAiD,iBAAjD,CADG;AAEH,OAFJ;AAGD,CAJM","sourcesContent":["import React, { ReactNode, useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './MenuFooter.styles';\n\n/**\n * @deprecated use SizeProp\n */\nexport type MenuFooterSize = SizeProp;\n\nexport interface MenuFooterProps extends CommonProps {\n _enableIconPadding?: boolean;\n children: ReactNode;\n /** Размер */\n size?: SizeProp;\n}\n\nexport const MenuFooterDataTids = {\n root: 'MenuFooter__root',\n} as const;\n\n/**\n * Футер меню.\n *\n * _Примечание_: `футер меню`, в отличие от `элемента меню` нельзя затаргетить с клавиатуры.\n *\n * Сущности в которых может быть использован `MenuFooter`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\nfunction MenuFooter({ _enableIconPadding = false, children, size = 'small', ...rest }: MenuFooterProps) {\n const theme = useContext(ThemeContext);\n\n function getRootSizeClassName() {\n switch (size) {\n case 'large':\n return styles.rootLarge(theme);\n case 'medium':\n return styles.rootMedium(theme);\n case 'small':\n default:\n return styles.rootSmall(theme);\n }\n }\n function getWithLeftPaddingSizeClassName() {\n switch (size) {\n case 'large':\n return styles.withLeftPaddingSmall(theme);\n case 'medium':\n return styles.withLeftPaddingMedium(theme);\n case 'small':\n default:\n return styles.withLeftPaddingSmall(theme);\n }\n }\n\n return (\n <CommonWrapper {...rest}>\n <div\n data-tid={MenuFooterDataTids.root}\n className={cx(getRootSizeClassName(), {\n [styles.root(theme)]: true,\n [getWithLeftPaddingSizeClassName()]: _enableIconPadding,\n })}\n >\n {children}\n </div>\n </CommonWrapper>\n );\n}\n\nMenuFooter.__KONTUR_REACT_UI__ = 'MenuFooter';\nMenuFooter.displayName = 'MenuFooter';\nMenuFooter.__MENU_FOOTER__ = true;\n\nexport { MenuFooter };\n\nexport const isMenuFooter = (child: React.ReactNode): child is React.ReactElement<MenuFooterProps> => {\n return React.isValidElement<MenuFooterProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__MENU_FOOTER__')\n : false;\n};\n"]}
@@ -24,6 +24,7 @@ export declare const MenuFooterDataTids: {
24
24
  declare function MenuFooter({ _enableIconPadding, children, size, ...rest }: MenuFooterProps): JSX.Element;
25
25
  declare namespace MenuFooter {
26
26
  var __KONTUR_REACT_UI__: string;
27
+ var displayName: string;
27
28
  var __MENU_FOOTER__: boolean;
28
29
  }
29
30
  export { MenuFooter };
@@ -69,6 +69,7 @@ function MenuHeader(_ref) {
69
69
  }
70
70
 
71
71
  MenuHeader.__KONTUR_REACT_UI__ = 'MenuHeader';
72
+ MenuHeader.displayName = 'MenuHeader';
72
73
  MenuHeader.__MENU_HEADER__ = true;
73
74
  export { MenuHeader };
74
75
  export var isMenuHeader = function isMenuHeader(child) {
@@ -1 +1 @@
1
- {"version":3,"sources":["MenuHeader.tsx"],"names":["React","useContext","ThemeContext","CommonWrapper","cx","MenuContext","styles","MenuHeaderDataTids","root","MenuHeader","_enableIconPadding","children","size","rest","theme","menuContext","getRootSizeClassName","rootLarge","rootMedium","rootSmall","getWithLeftPaddingSizeClassName","withLeftPaddingSmall","withLeftPaddingMedium","enableIconPadding","__KONTUR_REACT_UI__","__MENU_HEADER__","isMenuHeader","child","isValidElement","Object","prototype","hasOwnProperty","call","type"],"mappings":"+JAAA,OAAOA,KAAP,IAA2BC,UAA3B,QAA6C,OAA7C;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;;AAEA,SAASC,WAAT,QAA4B,iCAA5B;;AAEA,SAASC,MAAT,QAAuB,qBAAvB;;AAEA;AACA;AACA;;;;;;;;;;AAUA,OAAO,IAAMC,kBAAkB,GAAG;AAChCC,EAAAA,IAAI,EAAE,kBAD0B,EAA3B;;;AAIP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAT,OAAwG,0CAAlFC,kBAAkF,CAAlFA,kBAAkF,sCAA7D,KAA6D,yBAAtDC,QAAsD,QAAtDA,QAAsD,kBAA5CC,IAA4C,CAA5CA,IAA4C,0BAArC,OAAqC,aAAzBC,IAAyB;AACtG,MAAMC,KAAK,GAAGb,UAAU,CAACC,YAAD,CAAxB;AACA,MAAMa,WAAW,GAAGd,UAAU,CAACI,WAAD,CAA9B;;AAEA,WAASW,oBAAT,GAAgC;AAC9B,YAAQJ,IAAR;AACE,WAAK,OAAL;AACE,eAAON,MAAM,CAACW,SAAP,CAAiBH,KAAjB,CAAP;AACF,WAAK,QAAL;AACE,eAAOR,MAAM,CAACY,UAAP,CAAkBJ,KAAlB,CAAP;AACF,WAAK,OAAL;AACA;AACE,eAAOR,MAAM,CAACa,SAAP,CAAiBL,KAAjB,CAAP,CAPJ;;AASD;AACD,WAASM,+BAAT,GAA2C;AACzC,YAAQR,IAAR;AACE,WAAK,OAAL;AACE,eAAON,MAAM,CAACe,oBAAP,CAA4BP,KAA5B,CAAP;AACF,WAAK,QAAL;AACE,eAAOR,MAAM,CAACgB,qBAAP,CAA6BR,KAA7B,CAAP;AACF,WAAK,OAAL;AACA;AACE,eAAOR,MAAM,CAACe,oBAAP,CAA4BP,KAA5B,CAAP,CAPJ;;AASD;;AAED;AACE,wBAAC,aAAD,EAAmBD,IAAnB;AACE;AACE,kBAAUN,kBAAkB,CAACC,IAD/B;AAEE,MAAA,SAAS,EAAEJ,EAAE,CAACY,oBAAoB,EAArB;AACVV,MAAAA,MAAM,CAACE,IAAP,CAAYM,KAAZ,CADU,IACW,IADX;AAEVM,MAAAA,+BAA+B,EAFrB,IAE0BL,WAAW,CAACQ,iBAAZ,IAAiCb,kBAF3D,OAFf;;;AAOGC,IAAAA,QAPH,CADF,CADF;;;;AAaD;;AAEDF,UAAU,CAACe,mBAAX,GAAiC,YAAjC;AACAf,UAAU,CAACgB,eAAX,GAA6B,IAA7B;;AAEA,SAAShB,UAAT;;AAEA,OAAO,IAAMiB,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAA0E;AACpG,SAAO,aAAA3B,KAAK,CAAC4B,cAAN,CAAsCD,KAAtC;AACHE,EAAAA,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCL,KAAK,CAACM,IAA3C,EAAiD,iBAAjD,CADG;AAEH,OAFJ;AAGD,CAJM","sourcesContent":["import React, { ReactNode, useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { SizeProp } from '../../lib/types/props';\nimport { MenuContext } from '../../internal/Menu/MenuContext';\n\nimport { styles } from './MenuHeader.styles';\n\n/**\n * @deprecated use SizeProp\n */\nexport type MenuHeaderSize = SizeProp;\n\nexport interface MenuHeaderProps extends CommonProps {\n _enableIconPadding?: boolean;\n children: ReactNode;\n /** Размер */\n size?: SizeProp;\n}\n\nexport const MenuHeaderDataTids = {\n root: 'MenuHeader__root',\n} as const;\n\n/**\n * `Заголовок меню` используется для того, чтобы разделить `элементы меню` на категории в рамках одного меню.\n *\n * _Примечание_: `заголовок меню`, в отличие от `элемента меню` нельзя затаргетить с клавиатуры.\n *\n * Сущности в которых может быть использован `MenuHeader`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\nfunction MenuHeader({ _enableIconPadding = false, children, size = 'small', ...rest }: MenuHeaderProps) {\n const theme = useContext(ThemeContext);\n const menuContext = useContext(MenuContext);\n\n function getRootSizeClassName() {\n switch (size) {\n case 'large':\n return styles.rootLarge(theme);\n case 'medium':\n return styles.rootMedium(theme);\n case 'small':\n default:\n return styles.rootSmall(theme);\n }\n }\n function getWithLeftPaddingSizeClassName() {\n switch (size) {\n case 'large':\n return styles.withLeftPaddingSmall(theme);\n case 'medium':\n return styles.withLeftPaddingMedium(theme);\n case 'small':\n default:\n return styles.withLeftPaddingSmall(theme);\n }\n }\n\n return (\n <CommonWrapper {...rest}>\n <div\n data-tid={MenuHeaderDataTids.root}\n className={cx(getRootSizeClassName(), {\n [styles.root(theme)]: true,\n [getWithLeftPaddingSizeClassName()]: menuContext.enableIconPadding || _enableIconPadding,\n })}\n >\n {children}\n </div>\n </CommonWrapper>\n );\n}\n\nMenuHeader.__KONTUR_REACT_UI__ = 'MenuHeader';\nMenuHeader.__MENU_HEADER__ = true;\n\nexport { MenuHeader };\n\nexport const isMenuHeader = (child: React.ReactNode): child is React.ReactElement<MenuHeaderProps> => {\n return React.isValidElement<MenuHeaderProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__MENU_HEADER__')\n : false;\n};\n"]}
1
+ {"version":3,"sources":["MenuHeader.tsx"],"names":["React","useContext","ThemeContext","CommonWrapper","cx","MenuContext","styles","MenuHeaderDataTids","root","MenuHeader","_enableIconPadding","children","size","rest","theme","menuContext","getRootSizeClassName","rootLarge","rootMedium","rootSmall","getWithLeftPaddingSizeClassName","withLeftPaddingSmall","withLeftPaddingMedium","enableIconPadding","__KONTUR_REACT_UI__","displayName","__MENU_HEADER__","isMenuHeader","child","isValidElement","Object","prototype","hasOwnProperty","call","type"],"mappings":"+JAAA,OAAOA,KAAP,IAA2BC,UAA3B,QAA6C,OAA7C;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;;AAEA,SAASC,WAAT,QAA4B,iCAA5B;;AAEA,SAASC,MAAT,QAAuB,qBAAvB;;AAEA;AACA;AACA;;;;;;;;;;AAUA,OAAO,IAAMC,kBAAkB,GAAG;AAChCC,EAAAA,IAAI,EAAE,kBAD0B,EAA3B;;;AAIP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAT,OAAwG,0CAAlFC,kBAAkF,CAAlFA,kBAAkF,sCAA7D,KAA6D,yBAAtDC,QAAsD,QAAtDA,QAAsD,kBAA5CC,IAA4C,CAA5CA,IAA4C,0BAArC,OAAqC,aAAzBC,IAAyB;AACtG,MAAMC,KAAK,GAAGb,UAAU,CAACC,YAAD,CAAxB;AACA,MAAMa,WAAW,GAAGd,UAAU,CAACI,WAAD,CAA9B;;AAEA,WAASW,oBAAT,GAAgC;AAC9B,YAAQJ,IAAR;AACE,WAAK,OAAL;AACE,eAAON,MAAM,CAACW,SAAP,CAAiBH,KAAjB,CAAP;AACF,WAAK,QAAL;AACE,eAAOR,MAAM,CAACY,UAAP,CAAkBJ,KAAlB,CAAP;AACF,WAAK,OAAL;AACA;AACE,eAAOR,MAAM,CAACa,SAAP,CAAiBL,KAAjB,CAAP,CAPJ;;AASD;AACD,WAASM,+BAAT,GAA2C;AACzC,YAAQR,IAAR;AACE,WAAK,OAAL;AACE,eAAON,MAAM,CAACe,oBAAP,CAA4BP,KAA5B,CAAP;AACF,WAAK,QAAL;AACE,eAAOR,MAAM,CAACgB,qBAAP,CAA6BR,KAA7B,CAAP;AACF,WAAK,OAAL;AACA;AACE,eAAOR,MAAM,CAACe,oBAAP,CAA4BP,KAA5B,CAAP,CAPJ;;AASD;;AAED;AACE,wBAAC,aAAD,EAAmBD,IAAnB;AACE;AACE,kBAAUN,kBAAkB,CAACC,IAD/B;AAEE,MAAA,SAAS,EAAEJ,EAAE,CAACY,oBAAoB,EAArB;AACVV,MAAAA,MAAM,CAACE,IAAP,CAAYM,KAAZ,CADU,IACW,IADX;AAEVM,MAAAA,+BAA+B,EAFrB,IAE0BL,WAAW,CAACQ,iBAAZ,IAAiCb,kBAF3D,OAFf;;;AAOGC,IAAAA,QAPH,CADF,CADF;;;;AAaD;;AAEDF,UAAU,CAACe,mBAAX,GAAiC,YAAjC;AACAf,UAAU,CAACgB,WAAX,GAAyB,YAAzB;AACAhB,UAAU,CAACiB,eAAX,GAA6B,IAA7B;;AAEA,SAASjB,UAAT;;AAEA,OAAO,IAAMkB,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAA0E;AACpG,SAAO,aAAA5B,KAAK,CAAC6B,cAAN,CAAsCD,KAAtC;AACHE,EAAAA,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCL,KAAK,CAACM,IAA3C,EAAiD,iBAAjD,CADG;AAEH,OAFJ;AAGD,CAJM","sourcesContent":["import React, { ReactNode, useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { SizeProp } from '../../lib/types/props';\nimport { MenuContext } from '../../internal/Menu/MenuContext';\n\nimport { styles } from './MenuHeader.styles';\n\n/**\n * @deprecated use SizeProp\n */\nexport type MenuHeaderSize = SizeProp;\n\nexport interface MenuHeaderProps extends CommonProps {\n _enableIconPadding?: boolean;\n children: ReactNode;\n /** Размер */\n size?: SizeProp;\n}\n\nexport const MenuHeaderDataTids = {\n root: 'MenuHeader__root',\n} as const;\n\n/**\n * `Заголовок меню` используется для того, чтобы разделить `элементы меню` на категории в рамках одного меню.\n *\n * _Примечание_: `заголовок меню`, в отличие от `элемента меню` нельзя затаргетить с клавиатуры.\n *\n * Сущности в которых может быть использован `MenuHeader`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\nfunction MenuHeader({ _enableIconPadding = false, children, size = 'small', ...rest }: MenuHeaderProps) {\n const theme = useContext(ThemeContext);\n const menuContext = useContext(MenuContext);\n\n function getRootSizeClassName() {\n switch (size) {\n case 'large':\n return styles.rootLarge(theme);\n case 'medium':\n return styles.rootMedium(theme);\n case 'small':\n default:\n return styles.rootSmall(theme);\n }\n }\n function getWithLeftPaddingSizeClassName() {\n switch (size) {\n case 'large':\n return styles.withLeftPaddingSmall(theme);\n case 'medium':\n return styles.withLeftPaddingMedium(theme);\n case 'small':\n default:\n return styles.withLeftPaddingSmall(theme);\n }\n }\n\n return (\n <CommonWrapper {...rest}>\n <div\n data-tid={MenuHeaderDataTids.root}\n className={cx(getRootSizeClassName(), {\n [styles.root(theme)]: true,\n [getWithLeftPaddingSizeClassName()]: menuContext.enableIconPadding || _enableIconPadding,\n })}\n >\n {children}\n </div>\n </CommonWrapper>\n );\n}\n\nMenuHeader.__KONTUR_REACT_UI__ = 'MenuHeader';\nMenuHeader.displayName = 'MenuHeader';\nMenuHeader.__MENU_HEADER__ = true;\n\nexport { MenuHeader };\n\nexport const isMenuHeader = (child: React.ReactNode): child is React.ReactElement<MenuHeaderProps> => {\n return React.isValidElement<MenuHeaderProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__MENU_HEADER__')\n : false;\n};\n"]}
@@ -24,6 +24,7 @@ export declare const MenuHeaderDataTids: {
24
24
  declare function MenuHeader({ _enableIconPadding, children, size, ...rest }: MenuHeaderProps): JSX.Element;
25
25
  declare namespace MenuHeader {
26
26
  var __KONTUR_REACT_UI__: string;
27
+ var displayName: string;
27
28
  var __MENU_HEADER__: boolean;
28
29
  }
29
30
  export { MenuHeader };
@@ -1,5 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
4
  import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
4
5
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
5
6
  var _excluded = ["link", "comment", "icon", "loose", "state", "size", "_enableIconPadding", "component", "onMouseEnter", "onMouseLeave", "isMobile", "href", "disabled", "rel", "isNotSelectable"];
@@ -19,6 +20,7 @@ import { cx } from "../../../lib/theming/Emotion";
19
20
  import { rootNode } from "../../../lib/rootNode";
20
21
  import { MenuContext } from "../../../internal/Menu/MenuContext";
21
22
  import { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext";
23
+ import { getVisualStateDataAttributes } from "../../../internal/CommonWrapper/getVisualStateDataAttributes";
22
24
  import { styles } from "../MenuItem.styles";
23
25
  /**
24
26
  * @deprecated use SizeProp
@@ -108,7 +110,6 @@ export var MenuItem = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function
108
110
  isNotSelectable = props.isNotSelectable,
109
111
  rest = _objectWithoutPropertiesLoose(props, _excluded);
110
112
 
111
- var hover = (_this.state.highlighted || state === 'hover') && !disabled;
112
113
  var iconElement = null;
113
114
 
114
115
  if (icon) {
@@ -122,7 +123,7 @@ export var MenuItem = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function
122
123
  }, icon);
123
124
  }
124
125
 
125
- var className = cx((_cx2 = {}, _cx2[styles.root(_this.theme)] = true, _cx2[_this.getRootSizeClassName()] = true, _cx2[styles.rootMobile(_this.theme)] = isMobile, _cx2[styles.loose()] = !!loose, _cx2[styles.hover(_this.theme)] = hover, _cx2[styles.selected(_this.theme)] = state === 'selected' && !_this.state.highlighted, _cx2[styles.link(_this.theme)] = !!link, _cx2[_this.getWithIconSizeClassName()] = Boolean(iconElement) || !!_enableIconPadding || _this.context.enableIconPadding, _cx2[styles.disabled(_this.theme)] = !!_this.props.disabled, _cx2));
126
+ var className = cx((_cx2 = {}, _cx2[styles.root(_this.theme)] = true, _cx2[_this.getRootSizeClassName()] = true, _cx2[styles.rootMobile(_this.theme)] = isMobile, _cx2[styles.loose()] = !!loose, _cx2[styles.hover(_this.theme)] = _this.isHover, _cx2[styles.selected(_this.theme)] = _this.isSelected, _cx2[styles.link(_this.theme)] = !!link, _cx2[_this.getWithIconSizeClassName()] = Boolean(iconElement) || !!_enableIconPadding || _this.context.enableIconPadding, _cx2[styles.disabled(_this.theme)] = !!_this.props.disabled, _cx2));
126
127
  var children = _this.props.children;
127
128
  var content = children;
128
129
 
@@ -137,7 +138,7 @@ export var MenuItem = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function
137
138
  "data-tid": MenuItemDataTids.root
138
139
  }, rest, {
139
140
  disabled: disabled,
140
- state: _this.state.highlighted ? 'hover' : state,
141
+ state: _this.activeState,
141
142
  onMouseOver: _this.handleMouseEnterFix,
142
143
  onMouseLeave: _this.handleMouseLeave,
143
144
  onClick: _this.handleClick,
@@ -151,7 +152,7 @@ export var MenuItem = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function
151
152
  "data-tid": MenuItemDataTids.content
152
153
  }, content), _this.props.comment && /*#__PURE__*/React.createElement("div", {
153
154
  "data-tid": MenuItemDataTids.comment,
154
- className: cx((_cx4 = {}, _cx4[styles.comment(_this.theme)] = true, _cx4[styles.commentHover(_this.theme)] = hover, _cx4))
155
+ className: cx((_cx4 = {}, _cx4[styles.comment(_this.theme)] = true, _cx4[styles.commentHover(_this.theme)] = _this.isHover, _cx4))
155
156
  }, comment));
156
157
  };
157
158
 
@@ -232,7 +233,10 @@ export var MenuItem = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function
232
233
  _this2.theme = theme;
233
234
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
234
235
  rootNodeRef: _this2.setRootNode
235
- }, _this2.props), _this2.renderMain);
236
+ }, getVisualStateDataAttributes({
237
+ hover: _this2.isHover,
238
+ selected: _this2.isSelected
239
+ }), _this2.props), _this2.renderMain);
236
240
  });
237
241
  });
238
242
  };
@@ -329,8 +333,27 @@ export var MenuItem = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function
329
333
  }
330
334
  };
331
335
 
336
+ _createClass(MenuItem, [{
337
+ key: "activeState",
338
+ get: function get() {
339
+ return this.state.highlighted ? 'hover' : this.props.state;
340
+ }
341
+ }, {
342
+ key: "isHover",
343
+ get: function get() {
344
+ return (this.state.highlighted || this.props.state === 'hover') && !this.props.disabled;
345
+ }
346
+ }, {
347
+ key: "isSelected",
348
+ get: function get() {
349
+ return this.props.state === 'selected' && !this.state.highlighted;
350
+ } // https://github.com/facebook/react/issues/10109
351
+ // Mouseenter event not triggered when cursor moves from disabled button
352
+
353
+ }]);
354
+
332
355
  return MenuItem;
333
- }(React.Component), _class2.__KONTUR_REACT_UI__ = 'MenuItem', _class2.__MENU_ITEM__ = true, _class2.propTypes = {
356
+ }(React.Component), _class2.__KONTUR_REACT_UI__ = 'MenuItem', _class2.displayName = 'MenuItem', _class2.__MENU_ITEM__ = true, _class2.propTypes = {
334
357
  comment: PropTypes.node,
335
358
  disabled: PropTypes.bool,
336
359
  href: PropTypes.string,
@@ -1 +1 @@
1
- {"version":3,"sources":["MenuItem.tsx"],"names":["React","PropTypes","globalObject","isBrowser","isExternalLink","isFunction","isNonNullable","isReactUIComponent","ThemeContext","CommonWrapper","cx","rootNode","MenuContext","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","styles","MenuItemDataTids","root","content","comment","MenuItem","state","iconOffsetTop","highlighted","mouseEntered","rootRef","contentRef","createRef","highlight","setState","unhighlight","select","event","handleClick","isEnabled","props","disabled","navigate","href","target","window","open","location","renderMain","link","icon","loose","size","_enableIconPadding","component","onMouseEnter","onMouseLeave","isMobile","rel","isNotSelectable","rest","hover","iconElement","top","theme","getIconSizeClassName","className","getRootSizeClassName","rootMobile","selected","getWithIconSizeClassName","Boolean","context","enableIconPadding","children","Component","getComponent","setRootRef","handleMouseEnterFix","handleMouseLeave","undefined","mobileContentWithIcon","commentHover","e","menuItemsAtAnyLevel","navigation","onClick","onItemClick","element","hasIconAmongItems","items","some","item","render","flags","setRootNode","componentDidMount","getComputedStyle","getPropertyValue","current","add","setEnableIconPadding","componentWillUnmount","remove","componentDidUpdate","prevProps","rootLarge","rootMedium","rootSmall","iconLarge","iconMedium","iconSmall","withIconLarge","withIconMedium","withIconSmall","__KONTUR_REACT_UI__","__MENU_ITEM__","propTypes","node","bool","string","func","contextType","isMenuItem"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { isExternalLink, isFunction, isNonNullable, isReactUIComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { SizeProp } from '../../lib/types/props';\nimport { MenuContext, MenuContextType } from '../../internal/Menu/MenuContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './MenuItem.styles';\n\n/**\n * @deprecated use SizeProp\n */\nexport type MenuItemSize = SizeProp;\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Omit<CommonProps, 'children'> {\n /**\n * @ignore\n */\n _enableIconPadding?: boolean;\n /**\n * Добавляет описание для элемента меню.\n */\n comment?: React.ReactNode;\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет элементу меню иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Меняет цвет текста на синий.\n */\n link?: boolean;\n /**\n * Размер\n */\n size?: SizeProp;\n /**\n * @ignore\n */\n loose?: boolean;\n /**\n * @ignore\n */\n state?: MenuItemState;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler;\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n /**\n * HTML-атрибут `target`.\n */\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n /**\n * HTML-атрибут `title`.\n */\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n /**\n * HTML-атрибут `href`.\n */\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n /**\n * HTML-атрибут `rel`.\n *\n * Для внешних ссылок аттрибут rel по умолчанию равен \"noopener noreferrer\"\n */\n rel?: React.AnchorHTMLAttributes<HTMLAnchorElement>['rel'];\n /**\n * Заменяет корневой элемент, на компонент переданный в проп.\n *\n * По умолчанию корневой элемент рендерится как `button`. <br />Если передан `href`, то вместо `button` рендерится `a`.\n */\n component?: React.ComponentType<any>;\n /**\n * Запрещает выделение и выбор данного пункта меню\n *\n */\n isNotSelectable?: boolean;\n\n isMobile?: boolean;\n}\n\nexport const MenuItemDataTids = {\n root: 'MenuItem__root',\n content: 'MenuItem__content',\n comment: 'MenuItem__comment',\n} as const;\n\n/**\n *\n * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.\n *\n * Сущности в которых может быть использован `MenuItem`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\n@rootNode\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public static propTypes = {\n comment: PropTypes.node,\n\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n loose: PropTypes.bool,\n\n state: PropTypes.string,\n\n target: PropTypes.string,\n\n onClick: PropTypes.func,\n\n size: PropTypes.string,\n };\n\n public state = {\n iconOffsetTop: 0,\n highlighted: false,\n };\n\n private theme!: Theme;\n private mouseEntered = false;\n private setRootNode!: TSetRootNode;\n private rootRef: Nullable<HTMLElement> = null;\n private contentRef = React.createRef<HTMLElement>();\n private menuItemsAtAnyLevel?: boolean;\n static contextType = MenuContext;\n\n public context!: MenuContextType;\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.menuItemsAtAnyLevel = getFullReactUIFlagsContext(flags).menuItemsAtAnyLevel;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n public componentDidMount() {\n if (this.rootRef && isBrowser(globalObject)) {\n this.setState({ iconOffsetTop: globalObject.getComputedStyle(this.rootRef).getPropertyValue('padding-top') });\n }\n if (this.contentRef.current && this.menuItemsAtAnyLevel && !this.props.isNotSelectable) {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n if (this.props.icon && this.menuItemsAtAnyLevel) {\n this.context.setEnableIconPadding?.(true);\n }\n }\n\n public componentWillUnmount() {\n if (this.contentRef.current && this.menuItemsAtAnyLevel) {\n !this.props.isNotSelectable && this.context.navigation?.remove(this.contentRef.current);\n this.context.setEnableIconPadding?.(this.hasIconAmongItems());\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<MenuItemProps>) {\n if (prevProps.icon !== this.props.icon) {\n this.context.setEnableIconPadding?.(!!this.props.icon || this.hasIconAmongItems());\n }\n if (\n this.contentRef.current &&\n this.menuItemsAtAnyLevel &&\n prevProps.isNotSelectable !== this.props.isNotSelectable\n ) {\n if (this.props.isNotSelectable) {\n this.unhighlight();\n this.context.navigation?.remove(this.contentRef.current);\n } else {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n }\n }\n\n public highlight = () => {\n this.setState({ highlighted: true });\n };\n\n public unhighlight = () => {\n this.setState({ highlighted: false });\n };\n\n public select = (event: React.SyntheticEvent<HTMLElement>) => {\n this.handleClick(event as React.MouseEvent<HTMLElement>);\n };\n\n public isEnabled = () => {\n return !this.props.disabled;\n };\n\n public navigate = () => {\n if (!this.props.href) {\n return;\n }\n if (this.props.target) {\n window.open(this.props.href, this.props.target);\n } else {\n location.href = this.props.href;\n }\n };\n\n private getRootSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private getWithIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.withIconLarge(this.theme);\n case 'medium':\n return styles.withIconMedium(this.theme);\n case 'small':\n default:\n return styles.withIconSmall(this.theme);\n }\n }\n\n private renderMain = (props: CommonWrapperRestProps<MenuItemProps>) => {\n const {\n link,\n comment,\n icon,\n loose,\n state,\n size,\n _enableIconPadding,\n component,\n onMouseEnter,\n onMouseLeave,\n isMobile,\n href,\n disabled,\n rel = this.props.href && isExternalLink(this.props.href) ? 'noopener noreferrer' : this.props.rel,\n isNotSelectable,\n ...rest\n } = props;\n\n const hover = (this.state.highlighted || state === 'hover') && !disabled;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <div\n style={{ top: this.state.iconOffsetTop }}\n className={cx({\n [styles.icon(this.theme)]: true,\n [this.getIconSizeClassName()]: true,\n })}\n >\n {icon}\n </div>\n );\n }\n\n const className = cx({\n [styles.root(this.theme)]: true,\n [this.getRootSizeClassName()]: true,\n [styles.rootMobile(this.theme)]: isMobile,\n [styles.loose()]: !!loose,\n [styles.hover(this.theme)]: hover,\n [styles.selected(this.theme)]: state === 'selected' && !this.state.highlighted,\n [styles.link(this.theme)]: !!link,\n [this.getWithIconSizeClassName()]: Boolean(iconElement) || !!_enableIconPadding || this.context.enableIconPadding,\n [styles.disabled(this.theme)]: !!this.props.disabled,\n });\n\n const { children } = this.props;\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.props.state);\n }\n\n const Component = this.getComponent();\n\n return (\n <Component\n ref={this.setRootRef}\n data-tid={MenuItemDataTids.root}\n {...rest}\n disabled={disabled}\n state={this.state.highlighted ? 'hover' : state}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n onClick={this.handleClick}\n className={className}\n href={href}\n rel={href ? rel : undefined}\n tabIndex={-1}\n >\n {iconElement}\n <span\n className={cx({\n [styles.mobileContentWithIcon()]: isMobile && isNonNullable(icon),\n })}\n ref={this.contentRef}\n data-tid={MenuItemDataTids.content}\n >\n {content}\n </span>\n {this.props.comment && (\n <div\n data-tid={MenuItemDataTids.comment}\n className={cx({\n [styles.comment(this.theme)]: true,\n [styles.commentHover(this.theme)]: hover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n );\n };\n\n // https://github.com/facebook/react/issues/10109\n // Mouseenter event not triggered when cursor moves from disabled button\n private handleMouseEnterFix = (e: React.MouseEvent<HTMLElement>) => {\n if (!this.mouseEntered) {\n this.mouseEntered = true;\n this.props.onMouseEnter?.(e);\n this.menuItemsAtAnyLevel && !this.props.isNotSelectable && this.context.navigation?.highlight(this);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n this.props.onMouseLeave?.(e);\n this.menuItemsAtAnyLevel && !this.props.isNotSelectable && this.context.navigation?.unhighlight();\n };\n\n private handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (this.props.isNotSelectable) {\n return;\n }\n this.props.onClick?.(e);\n if (this.menuItemsAtAnyLevel) {\n this.context.onItemClick?.(e);\n }\n };\n\n private setRootRef = (element: HTMLElement) => {\n this.rootRef = element;\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (component) {\n return component;\n }\n\n if (disabled) {\n return 'button';\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n\n private hasIconAmongItems = () => {\n return Boolean(this.context.navigation?.items.some((item) => item.props.icon));\n };\n}\n\nexport const isMenuItem = isReactUIComponent('MenuItem');\n"]}
1
+ {"version":3,"sources":["MenuItem.tsx"],"names":["React","PropTypes","globalObject","isBrowser","isExternalLink","isFunction","isNonNullable","isReactUIComponent","ThemeContext","CommonWrapper","cx","rootNode","MenuContext","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","getVisualStateDataAttributes","styles","MenuItemDataTids","root","content","comment","MenuItem","state","iconOffsetTop","highlighted","mouseEntered","rootRef","contentRef","createRef","highlight","setState","unhighlight","select","event","handleClick","isEnabled","props","disabled","navigate","href","target","window","open","location","renderMain","link","icon","loose","size","_enableIconPadding","component","onMouseEnter","onMouseLeave","isMobile","rel","isNotSelectable","rest","iconElement","top","theme","getIconSizeClassName","className","getRootSizeClassName","rootMobile","hover","isHover","selected","isSelected","getWithIconSizeClassName","Boolean","context","enableIconPadding","children","Component","getComponent","setRootRef","activeState","handleMouseEnterFix","handleMouseLeave","undefined","mobileContentWithIcon","commentHover","e","menuItemsAtAnyLevel","navigation","onClick","onItemClick","element","hasIconAmongItems","items","some","item","render","flags","setRootNode","componentDidMount","getComputedStyle","getPropertyValue","current","add","setEnableIconPadding","componentWillUnmount","remove","componentDidUpdate","prevProps","rootLarge","rootMedium","rootSmall","iconLarge","iconMedium","iconSmall","withIconLarge","withIconMedium","withIconSmall","__KONTUR_REACT_UI__","displayName","__MENU_ITEM__","propTypes","node","bool","string","func","contextType","isMenuItem"],"mappings":"2lBAAA;AACA;AACA,OAAOA,KAAP,MAAsC,OAAtC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,YAAT,EAAuBC,SAAvB,QAAwC,0BAAxC;;;AAGA,SAASC,cAAT,EAAyBC,UAAzB,EAAqCC,aAArC,EAAoDC,kBAApD,QAA8E,iBAA9E;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAAsBC,aAAtB,QAAmE,8BAAnE;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,QAAT,QAAuC,oBAAvC;;AAEA,SAASC,WAAT,QAA6C,iCAA7C;AACA,SAASC,0BAAT,EAAqCC,0BAArC,QAAuE,+BAAvE;AACA,SAASC,4BAAT,QAA6C,2DAA7C;;AAEA,SAASC,MAAT,QAAuB,mBAAvB;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFA,OAAO,IAAMC,gBAAgB,GAAG;AAC9BC,EAAAA,IAAI,EAAE,gBADwB;AAE9BC,EAAAA,OAAO,EAAE,mBAFqB;AAG9BC,EAAAA,OAAO,EAAE,mBAHqB,EAAzB;;;AAMP;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAaC,QAAb,GADCV,QACD;;;;;;;;;;;;;;;;;;;;;;;;;AAyBSW,IAAAA,KAzBT,GAyBiB;AACbC,MAAAA,aAAa,EAAE,CADF;AAEbC,MAAAA,WAAW,EAAE,KAFA,EAzBjB;;;;AA+BUC,IAAAA,YA/BV,GA+ByB,KA/BzB;;AAiCUC,IAAAA,OAjCV,GAiC2C,IAjC3C;AAkCUC,IAAAA,UAlCV,gBAkCuB3B,KAAK,CAAC4B,SAAN,EAlCvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0GSC,IAAAA,SA1GT,GA0GqB,YAAM;AACvB,YAAKC,QAAL,CAAc,EAAEN,WAAW,EAAE,IAAf,EAAd;AACD,KA5GH;;AA8GSO,IAAAA,WA9GT,GA8GuB,YAAM;AACzB,YAAKD,QAAL,CAAc,EAAEN,WAAW,EAAE,KAAf,EAAd;AACD,KAhHH;;AAkHSQ,IAAAA,MAlHT,GAkHkB,UAACC,KAAD,EAA8C;AAC5D,YAAKC,WAAL,CAAiBD,KAAjB;AACD,KApHH;;AAsHSE,IAAAA,SAtHT,GAsHqB,YAAM;AACvB,aAAO,CAAC,MAAKC,KAAL,CAAWC,QAAnB;AACD,KAxHH;;AA0HSC,IAAAA,QA1HT,GA0HoB,YAAM;AACtB,UAAI,CAAC,MAAKF,KAAL,CAAWG,IAAhB,EAAsB;AACpB;AACD;AACD,UAAI,MAAKH,KAAL,CAAWI,MAAf,EAAuB;AACrBC,QAAAA,MAAM,CAACC,IAAP,CAAY,MAAKN,KAAL,CAAWG,IAAvB,EAA6B,MAAKH,KAAL,CAAWI,MAAxC;AACD,OAFD,MAEO;AACLG,QAAAA,QAAQ,CAACJ,IAAT,GAAgB,MAAKH,KAAL,CAAWG,IAA3B;AACD;AACF,KAnIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyKUK,IAAAA,UAzKV,GAyKuB,UAACR,KAAD,EAAkD;AACrE;AACES,MAAAA,IADF;;;;;;;;;;;;;;;;AAiBIT,MAAAA,KAjBJ,CACES,IADF,CAEEzB,OAFF,GAiBIgB,KAjBJ,CAEEhB,OAFF,CAGE0B,IAHF,GAiBIV,KAjBJ,CAGEU,IAHF,CAIEC,KAJF,GAiBIX,KAjBJ,CAIEW,KAJF,CAKEzB,KALF,GAiBIc,KAjBJ,CAKEd,KALF,CAME0B,IANF,GAiBIZ,KAjBJ,CAMEY,IANF,CAOEC,kBAPF,GAiBIb,KAjBJ,CAOEa,kBAPF,CAQEC,SARF,GAiBId,KAjBJ,CAQEc,SARF,CASEC,YATF,GAiBIf,KAjBJ,CASEe,YATF,CAUEC,YAVF,GAiBIhB,KAjBJ,CAUEgB,YAVF,CAWEC,QAXF,GAiBIjB,KAjBJ,CAWEiB,QAXF,CAYEd,IAZF,GAiBIH,KAjBJ,CAYEG,IAZF,CAaEF,QAbF,GAiBID,KAjBJ,CAaEC,QAbF,cAiBID,KAjBJ,CAcEkB,GAdF,CAcEA,GAdF,2BAcQ,MAAKlB,KAAL,CAAWG,IAAX,IAAmBnC,cAAc,CAAC,MAAKgC,KAAL,CAAWG,IAAZ,CAAjC,GAAqD,qBAArD,GAA6E,MAAKH,KAAL,CAAWkB,GAdhG,cAeEC,eAfF,GAiBInB,KAjBJ,CAeEmB,eAfF,CAgBKC,IAhBL,iCAiBIpB,KAjBJ;;AAmBA,UAAIqB,WAAW,GAAG,IAAlB;AACA,UAAIX,IAAJ,EAAU;AACRW,QAAAA,WAAW;AACT;AACE,UAAA,KAAK,EAAE,EAAEC,GAAG,EAAE,MAAKpC,KAAL,CAAWC,aAAlB,EADT;AAEE,UAAA,SAAS,EAAEb,EAAE;AACVM,UAAAA,MAAM,CAAC8B,IAAP,CAAY,MAAKa,KAAjB,CADU,IACgB,IADhB;AAEV,gBAAKC,oBAAL,EAFU,IAEoB,IAFpB,OAFf;;;AAOGd,QAAAA,IAPH,CADF;;;AAWD;;AAED,UAAMe,SAAS,GAAGnD,EAAE;AACjBM,MAAAA,MAAM,CAACE,IAAP,CAAY,MAAKyC,KAAjB,CADiB,IACS,IADT;AAEjB,YAAKG,oBAAL,EAFiB,IAEa,IAFb;AAGjB9C,MAAAA,MAAM,CAAC+C,UAAP,CAAkB,MAAKJ,KAAvB,CAHiB,IAGeN,QAHf;AAIjBrC,MAAAA,MAAM,CAAC+B,KAAP,EAJiB,IAIA,CAAC,CAACA,KAJF;AAKjB/B,MAAAA,MAAM,CAACgD,KAAP,CAAa,MAAKL,KAAlB,CALiB,IAKU,MAAKM,OALf;AAMjBjD,MAAAA,MAAM,CAACkD,QAAP,CAAgB,MAAKP,KAArB,CANiB,IAMa,MAAKQ,UANlB;AAOjBnD,MAAAA,MAAM,CAAC6B,IAAP,CAAY,MAAKc,KAAjB,CAPiB,IAOS,CAAC,CAACd,IAPX;AAQjB,YAAKuB,wBAAL,EARiB,IAQiBC,OAAO,CAACZ,WAAD,CAAP,IAAwB,CAAC,CAACR,kBAA1B,IAAgD,MAAKqB,OAAL,CAAaC,iBAR9E;AASjBvD,MAAAA,MAAM,CAACqB,QAAP,CAAgB,MAAKsB,KAArB,CATiB,IASa,CAAC,CAAC,MAAKvB,KAAL,CAAWC,QAT1B,QAApB;;;AAYA,UAAQmC,QAAR,GAAqB,MAAKpC,KAA1B,CAAQoC,QAAR;;AAEA,UAAIrD,OAAO,GAAGqD,QAAd;AACA,UAAInE,UAAU,CAACmE,QAAD,CAAd,EAA0B;AACxBrD,QAAAA,OAAO,GAAGqD,QAAQ,CAAC,MAAKpC,KAAL,CAAWd,KAAZ,CAAlB;AACD;;AAED,UAAMmD,SAAS,GAAG,MAAKC,YAAL,EAAlB;;AAEA;AACE,4BAAC,SAAD;AACE,UAAA,GAAG,EAAE,MAAKC,UADZ;AAEE,sBAAU1D,gBAAgB,CAACC,IAF7B;AAGMsC,QAAAA,IAHN;AAIE,UAAA,QAAQ,EAAEnB,QAJZ;AAKE,UAAA,KAAK,EAAE,MAAKuC,WALd;AAME,UAAA,WAAW,EAAE,MAAKC,mBANpB;AAOE,UAAA,YAAY,EAAE,MAAKC,gBAPrB;AAQE,UAAA,OAAO,EAAE,MAAK5C,WARhB;AASE,UAAA,SAAS,EAAE2B,SATb;AAUE,UAAA,IAAI,EAAEtB,IAVR;AAWE,UAAA,GAAG,EAAEA,IAAI,GAAGe,GAAH,GAASyB,SAXpB;AAYE,UAAA,QAAQ,EAAE,CAAC,CAZb;;AAcGtB,QAAAA,WAdH;AAeE;AACE,UAAA,SAAS,EAAE/C,EAAE;AACVM,UAAAA,MAAM,CAACgE,qBAAP,EADU,IACuB3B,QAAQ,IAAI/C,aAAa,CAACwC,IAAD,CADhD,QADf;;AAIE,UAAA,GAAG,EAAE,MAAKnB,UAJZ;AAKE,sBAAUV,gBAAgB,CAACE,OAL7B;;AAOGA,QAAAA,OAPH,CAfF;;AAwBG,cAAKiB,KAAL,CAAWhB,OAAX;AACC;AACE,sBAAUH,gBAAgB,CAACG,OAD7B;AAEE,UAAA,SAAS,EAAEV,EAAE;AACVM,UAAAA,MAAM,CAACI,OAAP,CAAe,MAAKuC,KAApB,CADU,IACmB,IADnB;AAEV3C,UAAAA,MAAM,CAACiE,YAAP,CAAoB,MAAKtB,KAAzB,CAFU,IAEwB,MAAKM,OAF7B,QAFf;;;AAOG7C,QAAAA,OAPH,CAzBJ,CADF;;;;;AAsCD,KAvQH;;;;;;;;;;;;;;;;AAuRUyD,IAAAA,mBAvRV,GAuRgC,UAACK,CAAD,EAAsC;AAClE,UAAI,CAAC,MAAKzD,YAAV,EAAwB;AACtB,cAAKA,YAAL,GAAoB,IAApB;AACA,cAAKW,KAAL,CAAWe,YAAX,0BAAKf,KAAL,CAAWe,YAAX,CAA0B+B,CAA1B;AACA,cAAKC,mBAAL,IAA4B,CAAC,MAAK/C,KAAL,CAAWmB,eAAxC,8BAA2D,MAAKe,OAAL,CAAac,UAAxE,qBAA2D,sBAAyBvD,SAAzB,+BAA3D;AACD;AACF,KA7RH;;AA+RUiD,IAAAA,gBA/RV,GA+R6B,UAACI,CAAD,EAAsC;AAC/D,YAAKzD,YAAL,GAAoB,KAApB;AACA,YAAKW,KAAL,CAAWgB,YAAX,0BAAKhB,KAAL,CAAWgB,YAAX,CAA0B8B,CAA1B;AACA,YAAKC,mBAAL,IAA4B,CAAC,MAAK/C,KAAL,CAAWmB,eAAxC,+BAA2D,MAAKe,OAAL,CAAac,UAAxE,qBAA2D,uBAAyBrD,WAAzB,EAA3D;AACD,KAnSH;;AAqSUG,IAAAA,WArSV,GAqSwB,UAACgD,CAAD,EAAsC;AAC1D,UAAI,MAAK9C,KAAL,CAAWmB,eAAf,EAAgC;AAC9B;AACD;AACD,YAAKnB,KAAL,CAAWiD,OAAX,0BAAKjD,KAAL,CAAWiD,OAAX,CAAqBH,CAArB;AACA,UAAI,MAAKC,mBAAT,EAA8B;AAC5B,cAAKb,OAAL,CAAagB,WAAb,0BAAKhB,OAAL,CAAagB,WAAb,CAA2BJ,CAA3B;AACD;AACF,KA7SH;;AA+SUP,IAAAA,UA/SV,GA+SuB,UAACY,OAAD,EAA0B;AAC7C,YAAK7D,OAAL,GAAe6D,OAAf;AACD,KAjTH;;AAmTUb,IAAAA,YAnTV,GAmTyB,YAAM;AAC3B,wBAAsC,MAAKtC,KAA3C,CAAQC,QAAR,eAAQA,QAAR,CAAkBa,SAAlB,eAAkBA,SAAlB,CAA6BX,IAA7B,eAA6BA,IAA7B;;AAEA,UAAIW,SAAJ,EAAe;AACb,eAAOA,SAAP;AACD;;AAED,UAAIb,QAAJ,EAAc;AACZ,eAAO,QAAP;AACD;;AAED,UAAIE,IAAJ,EAAU;AACR,eAAO,GAAP;AACD;;AAED,aAAO,QAAP;AACD,KAnUH;;AAqUUiD,IAAAA,iBArUV,GAqU8B,YAAM;AAChC,aAAOnB,OAAO,2BAAC,MAAKC,OAAL,CAAac,UAAd,qBAAC,uBAAyBK,KAAzB,CAA+BC,IAA/B,CAAoC,UAACC,IAAD,UAAUA,IAAI,CAACvD,KAAL,CAAWU,IAArB,EAApC,CAAD,CAAd;AACD,KAvUH,sDAwCS8C,MAxCT,GAwCE,kBAAgB,mBACd,oBACE,oBAAC,0BAAD,CAA4B,QAA5B,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACV,mBAAL,GAA2BtE,0BAA0B,CAACgF,KAAD,CAA1B,CAAkCV,mBAA7D,CACA,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACxB,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,oBAAC,aAAD,aACE,WAAW,EAAE,MAAI,CAACmC,WADpB,IAEM/E,4BAA4B,CAAC,EAC/BiD,KAAK,EAAE,MAAI,CAACC,OADmB,EAE/BC,QAAQ,EAAE,MAAI,CAACC,UAFgB,EAAD,CAFlC,EAMM,MAAI,CAAC/B,KANX,GAQG,MAAI,CAACQ,UARR,CADF,CAYD,CAfH,CADF,CAmBD,CAtBH,CADF,CA0BD,CAnEH,QAqESmD,iBArET,GAqEE,6BAA2B,CACzB,IAAI,KAAKrE,OAAL,IAAgBvB,SAAS,CAACD,YAAD,CAA7B,EAA6C,CAC3C,KAAK4B,QAAL,CAAc,EAAEP,aAAa,EAAErB,YAAY,CAAC8F,gBAAb,CAA8B,KAAKtE,OAAnC,EAA4CuE,gBAA5C,CAA6D,aAA7D,CAAjB,EAAd,EACD,CACD,IAAI,KAAKtE,UAAL,CAAgBuE,OAAhB,IAA2B,KAAKf,mBAAhC,IAAuD,CAAC,KAAK/C,KAAL,CAAWmB,eAAvE,EAAwF,4BACtF,+BAAKe,OAAL,CAAac,UAAb,4CAAyBe,GAAzB,CAA6B,KAAKxE,UAAL,CAAgBuE,OAA7C,EAAsD,IAAtD,EACD,CACD,IAAI,KAAK9D,KAAL,CAAWU,IAAX,IAAmB,KAAKqC,mBAA5B,EAAiD,0CAC/C,+CAAKb,OAAL,EAAa8B,oBAAb,+DAAoC,IAApC,EACD,CACF,CA/EH,QAiFSC,oBAjFT,GAiFE,gCAA8B,CAC5B,IAAI,KAAK1E,UAAL,CAAgBuE,OAAhB,IAA2B,KAAKf,mBAApC,EAAyD,oEACvD,CAAC,KAAK/C,KAAL,CAAWmB,eAAZ,+BAA+B,KAAKe,OAAL,CAAac,UAA5C,qBAA+B,uBAAyBkB,MAAzB,CAAgC,KAAK3E,UAAL,CAAgBuE,OAAhD,CAA/B,EACA,iDAAK5B,OAAL,EAAa8B,oBAAb,iEAAoC,KAAKZ,iBAAL,EAApC,EACD,CACF,CAtFH,QAwFSe,kBAxFT,GAwFE,4BAA0BC,SAA1B,EAA8D,CAC5D,IAAIA,SAAS,CAAC1D,IAAV,KAAmB,KAAKV,KAAL,CAAWU,IAAlC,EAAwC,4CACtC,iDAAKwB,OAAL,EAAa8B,oBAAb,iEAAoC,CAAC,CAAC,KAAKhE,KAAL,CAAWU,IAAb,IAAqB,KAAK0C,iBAAL,EAAzD,EACD,CACD,IACE,KAAK7D,UAAL,CAAgBuE,OAAhB,IACA,KAAKf,mBADL,IAEAqB,SAAS,CAACjD,eAAV,KAA8B,KAAKnB,KAAL,CAAWmB,eAH3C,EAIE,CACA,IAAI,KAAKnB,KAAL,CAAWmB,eAAf,EAAgC,4BAC9B,KAAKxB,WAAL,GACA,+BAAKuC,OAAL,CAAac,UAAb,4CAAyBkB,MAAzB,CAAgC,KAAK3E,UAAL,CAAgBuE,OAAhD,EACD,CAHD,MAGO,4BACL,+BAAK5B,OAAL,CAAac,UAAb,4CAAyBe,GAAzB,CAA6B,KAAKxE,UAAL,CAAgBuE,OAA7C,EAAsD,IAAtD,EACD,CACF,CACF,CAxGH,QAqIUpC,oBArIV,GAqIE,gCAA+B,CAC7B,QAAQ,KAAK1B,KAAL,CAAWY,IAAnB,GACE,KAAK,OAAL,CACE,OAAOhC,MAAM,CAACyF,SAAP,CAAiB,KAAK9C,KAAtB,CAAP,CACF,KAAK,QAAL,CACE,OAAO3C,MAAM,CAAC0F,UAAP,CAAkB,KAAK/C,KAAvB,CAAP,CACF,KAAK,OAAL,CACA,QACE,OAAO3C,MAAM,CAAC2F,SAAP,CAAiB,KAAKhD,KAAtB,CAAP,CAPJ,CASD,CA/IH,QAiJUC,oBAjJV,GAiJE,gCAA+B,CAC7B,QAAQ,KAAKxB,KAAL,CAAWY,IAAnB,GACE,KAAK,OAAL,CACE,OAAOhC,MAAM,CAAC4F,SAAP,CAAiB,KAAKjD,KAAtB,CAAP,CACF,KAAK,QAAL,CACE,OAAO3C,MAAM,CAAC6F,UAAP,CAAkB,KAAKlD,KAAvB,CAAP,CACF,KAAK,OAAL,CACA,QACE,OAAO3C,MAAM,CAAC8F,SAAP,CAAiB,KAAKnD,KAAtB,CAAP,CAPJ,CASD,CA3JH,QA6JUS,wBA7JV,GA6JE,oCAAmC,CACjC,QAAQ,KAAKhC,KAAL,CAAWY,IAAnB,GACE,KAAK,OAAL,CACE,OAAOhC,MAAM,CAAC+F,aAAP,CAAqB,KAAKpD,KAA1B,CAAP,CACF,KAAK,QAAL,CACE,OAAO3C,MAAM,CAACgG,cAAP,CAAsB,KAAKrD,KAA3B,CAAP,CACF,KAAK,OAAL,CACA,QACE,OAAO3C,MAAM,CAACiG,aAAP,CAAqB,KAAKtD,KAA1B,CAAP,CAPJ,CASD,CAvKH,oDAyQE,eAA0B,CACxB,OAAO,KAAKrC,KAAL,CAAWE,WAAX,GAAyB,OAAzB,GAAmC,KAAKY,KAAL,CAAWd,KAArD,CACD,CA3QH,2BA6QE,eAA+B,CAC7B,OAAO,CAAC,KAAKA,KAAL,CAAWE,WAAX,IAA0B,KAAKY,KAAL,CAAWd,KAAX,KAAqB,OAAhD,KAA4D,CAAC,KAAKc,KAAL,CAAWC,QAA/E,CACD,CA/QH,8BAiRE,eAAkC,CAChC,OAAO,KAAKD,KAAL,CAAWd,KAAX,KAAqB,UAArB,IAAmC,CAAC,KAAKA,KAAL,CAAWE,WAAtD,CACD,CAnRH,CAqRE;AACA;AAtRF,wBAA8BxB,KAAK,CAACyE,SAApC,WACgByC,mBADhB,GACsC,UADtC,UAEgBC,WAFhB,GAE8B,UAF9B,UAGgBC,aAHhB,GAGgC,IAHhC,UAKgBC,SALhB,GAK4B,EACxBjG,OAAO,EAAEnB,SAAS,CAACqH,IADK,EAGxBjF,QAAQ,EAAEpC,SAAS,CAACsH,IAHI,EAKxBhF,IAAI,EAAEtC,SAAS,CAACuH,MALQ,EAOxB1E,IAAI,EAAE7C,SAAS,CAACqH,IAPQ,EASxBvE,KAAK,EAAE9C,SAAS,CAACsH,IATO,EAWxBjG,KAAK,EAAErB,SAAS,CAACuH,MAXO,EAaxBhF,MAAM,EAAEvC,SAAS,CAACuH,MAbM,EAexBnC,OAAO,EAAEpF,SAAS,CAACwH,IAfK,EAiBxBzE,IAAI,EAAE/C,SAAS,CAACuH,MAjBQ,EAL5B,UAoCSE,WApCT,GAoCuB9G,WApCvB;AA0UA,OAAO,IAAM+G,UAAU,GAAGpH,kBAAkB,CAAC,UAAD,CAArC","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { isExternalLink, isFunction, isNonNullable, isReactUIComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { SizeProp } from '../../lib/types/props';\nimport { MenuContext, MenuContextType } from '../../internal/Menu/MenuContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/getVisualStateDataAttributes';\n\nimport { styles } from './MenuItem.styles';\n\n/**\n * @deprecated use SizeProp\n */\nexport type MenuItemSize = SizeProp;\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Omit<CommonProps, 'children'> {\n /**\n * @ignore\n */\n _enableIconPadding?: boolean;\n /**\n * Добавляет описание для элемента меню.\n */\n comment?: React.ReactNode;\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет элементу меню иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Меняет цвет текста на синий.\n */\n link?: boolean;\n /**\n * Размер\n */\n size?: SizeProp;\n /**\n * @ignore\n */\n loose?: boolean;\n /**\n * @ignore\n */\n state?: MenuItemState;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler;\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n /**\n * HTML-атрибут `target`.\n */\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n /**\n * HTML-атрибут `title`.\n */\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n /**\n * HTML-атрибут `href`.\n */\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n /**\n * HTML-атрибут `rel`.\n *\n * Для внешних ссылок аттрибут rel по умолчанию равен \"noopener noreferrer\"\n */\n rel?: React.AnchorHTMLAttributes<HTMLAnchorElement>['rel'];\n /**\n * Заменяет корневой элемент, на компонент переданный в проп.\n *\n * По умолчанию корневой элемент рендерится как `button`. <br />Если передан `href`, то вместо `button` рендерится `a`.\n */\n component?: React.ComponentType<any>;\n /**\n * Запрещает выделение и выбор данного пункта меню\n *\n */\n isNotSelectable?: boolean;\n\n isMobile?: boolean;\n}\n\nexport const MenuItemDataTids = {\n root: 'MenuItem__root',\n content: 'MenuItem__content',\n comment: 'MenuItem__comment',\n} as const;\n\n/**\n *\n * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.\n *\n * Сущности в которых может быть использован `MenuItem`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\n@rootNode\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static displayName = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public static propTypes = {\n comment: PropTypes.node,\n\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n loose: PropTypes.bool,\n\n state: PropTypes.string,\n\n target: PropTypes.string,\n\n onClick: PropTypes.func,\n\n size: PropTypes.string,\n };\n\n public state = {\n iconOffsetTop: 0,\n highlighted: false,\n };\n\n private theme!: Theme;\n private mouseEntered = false;\n private setRootNode!: TSetRootNode;\n private rootRef: Nullable<HTMLElement> = null;\n private contentRef = React.createRef<HTMLElement>();\n private menuItemsAtAnyLevel?: boolean;\n static contextType = MenuContext;\n\n public context!: MenuContextType;\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.menuItemsAtAnyLevel = getFullReactUIFlagsContext(flags).menuItemsAtAnyLevel;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({\n hover: this.isHover,\n selected: this.isSelected,\n })}\n {...this.props}\n >\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n public componentDidMount() {\n if (this.rootRef && isBrowser(globalObject)) {\n this.setState({ iconOffsetTop: globalObject.getComputedStyle(this.rootRef).getPropertyValue('padding-top') });\n }\n if (this.contentRef.current && this.menuItemsAtAnyLevel && !this.props.isNotSelectable) {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n if (this.props.icon && this.menuItemsAtAnyLevel) {\n this.context.setEnableIconPadding?.(true);\n }\n }\n\n public componentWillUnmount() {\n if (this.contentRef.current && this.menuItemsAtAnyLevel) {\n !this.props.isNotSelectable && this.context.navigation?.remove(this.contentRef.current);\n this.context.setEnableIconPadding?.(this.hasIconAmongItems());\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<MenuItemProps>) {\n if (prevProps.icon !== this.props.icon) {\n this.context.setEnableIconPadding?.(!!this.props.icon || this.hasIconAmongItems());\n }\n if (\n this.contentRef.current &&\n this.menuItemsAtAnyLevel &&\n prevProps.isNotSelectable !== this.props.isNotSelectable\n ) {\n if (this.props.isNotSelectable) {\n this.unhighlight();\n this.context.navigation?.remove(this.contentRef.current);\n } else {\n this.context.navigation?.add(this.contentRef.current, this);\n }\n }\n }\n\n public highlight = () => {\n this.setState({ highlighted: true });\n };\n\n public unhighlight = () => {\n this.setState({ highlighted: false });\n };\n\n public select = (event: React.SyntheticEvent<HTMLElement>) => {\n this.handleClick(event as React.MouseEvent<HTMLElement>);\n };\n\n public isEnabled = () => {\n return !this.props.disabled;\n };\n\n public navigate = () => {\n if (!this.props.href) {\n return;\n }\n if (this.props.target) {\n window.open(this.props.href, this.props.target);\n } else {\n location.href = this.props.href;\n }\n };\n\n private getRootSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private getWithIconSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.withIconLarge(this.theme);\n case 'medium':\n return styles.withIconMedium(this.theme);\n case 'small':\n default:\n return styles.withIconSmall(this.theme);\n }\n }\n\n private renderMain = (props: CommonWrapperRestProps<MenuItemProps>) => {\n const {\n link,\n comment,\n icon,\n loose,\n state,\n size,\n _enableIconPadding,\n component,\n onMouseEnter,\n onMouseLeave,\n isMobile,\n href,\n disabled,\n rel = this.props.href && isExternalLink(this.props.href) ? 'noopener noreferrer' : this.props.rel,\n isNotSelectable,\n ...rest\n } = props;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <div\n style={{ top: this.state.iconOffsetTop }}\n className={cx({\n [styles.icon(this.theme)]: true,\n [this.getIconSizeClassName()]: true,\n })}\n >\n {icon}\n </div>\n );\n }\n\n const className = cx({\n [styles.root(this.theme)]: true,\n [this.getRootSizeClassName()]: true,\n [styles.rootMobile(this.theme)]: isMobile,\n [styles.loose()]: !!loose,\n [styles.hover(this.theme)]: this.isHover,\n [styles.selected(this.theme)]: this.isSelected,\n [styles.link(this.theme)]: !!link,\n [this.getWithIconSizeClassName()]: Boolean(iconElement) || !!_enableIconPadding || this.context.enableIconPadding,\n [styles.disabled(this.theme)]: !!this.props.disabled,\n });\n\n const { children } = this.props;\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.props.state);\n }\n\n const Component = this.getComponent();\n\n return (\n <Component\n ref={this.setRootRef}\n data-tid={MenuItemDataTids.root}\n {...rest}\n disabled={disabled}\n state={this.activeState}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n onClick={this.handleClick}\n className={className}\n href={href}\n rel={href ? rel : undefined}\n tabIndex={-1}\n >\n {iconElement}\n <span\n className={cx({\n [styles.mobileContentWithIcon()]: isMobile && isNonNullable(icon),\n })}\n ref={this.contentRef}\n data-tid={MenuItemDataTids.content}\n >\n {content}\n </span>\n {this.props.comment && (\n <div\n data-tid={MenuItemDataTids.comment}\n className={cx({\n [styles.comment(this.theme)]: true,\n [styles.commentHover(this.theme)]: this.isHover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n );\n };\n\n private get activeState() {\n return this.state.highlighted ? 'hover' : this.props.state;\n }\n\n private get isHover(): boolean {\n return (this.state.highlighted || this.props.state === 'hover') && !this.props.disabled;\n }\n\n private get isSelected(): boolean {\n return this.props.state === 'selected' && !this.state.highlighted;\n }\n\n // https://github.com/facebook/react/issues/10109\n // Mouseenter event not triggered when cursor moves from disabled button\n private handleMouseEnterFix = (e: React.MouseEvent<HTMLElement>) => {\n if (!this.mouseEntered) {\n this.mouseEntered = true;\n this.props.onMouseEnter?.(e);\n this.menuItemsAtAnyLevel && !this.props.isNotSelectable && this.context.navigation?.highlight(this);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n this.props.onMouseLeave?.(e);\n this.menuItemsAtAnyLevel && !this.props.isNotSelectable && this.context.navigation?.unhighlight();\n };\n\n private handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (this.props.isNotSelectable) {\n return;\n }\n this.props.onClick?.(e);\n if (this.menuItemsAtAnyLevel) {\n this.context.onItemClick?.(e);\n }\n };\n\n private setRootRef = (element: HTMLElement) => {\n this.rootRef = element;\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (component) {\n return component;\n }\n\n if (disabled) {\n return 'button';\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n\n private hasIconAmongItems = () => {\n return Boolean(this.context.navigation?.items.some((item) => item.props.icon));\n };\n}\n\nexport const isMenuItem = isReactUIComponent('MenuItem');\n"]}
@@ -98,6 +98,7 @@ export declare const MenuItemDataTids: {
98
98
  */
99
99
  export declare class MenuItem extends React.Component<MenuItemProps> {
100
100
  static __KONTUR_REACT_UI__: string;
101
+ static displayName: string;
101
102
  static __MENU_ITEM__: boolean;
102
103
  static propTypes: {
103
104
  comment: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -135,6 +136,9 @@ export declare class MenuItem extends React.Component<MenuItemProps> {
135
136
  private getIconSizeClassName;
136
137
  private getWithIconSizeClassName;
137
138
  private renderMain;
139
+ private get activeState();
140
+ private get isHover();
141
+ private get isSelected();
138
142
  private handleMouseEnterFix;
139
143
  private handleMouseLeave;
140
144
  private handleClick;
@@ -27,4 +27,5 @@ function MenuSeparator(props) {
27
27
  }
28
28
 
29
29
  MenuSeparator.__KONTUR_REACT_UI__ = 'MenuSeparator';
30
+ MenuSeparator.displayName = 'MenuSeparator';
30
31
  export { MenuSeparator };
@@ -1 +1 @@
1
- {"version":3,"sources":["MenuSeparator.tsx"],"names":["React","useContext","cx","ThemeContext","CommonWrapper","ResponsiveLayout","styles","MenuSeparatorDataTids","root","MenuSeparator","props","theme","isMobile","rootMobile","__KONTUR_REACT_UI__"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,gBAAT,QAAiC,qBAAjC;;AAEA,SAASC,MAAT,QAAuB,wBAAvB;;;;AAIA,OAAO,IAAMC,qBAAqB,GAAG;AACnCC,EAAAA,IAAI,EAAE,qBAD6B,EAA9B;;AAGP;AACA;AACA;AACA;AACA;AACA,SAASC,aAAT,CAAuBC,KAAvB,EAAkD;AAChD,MAAMC,KAAK,GAAGV,UAAU,CAACE,YAAD,CAAxB;;AAEA;AACE,wBAAC,aAAD,EAAmBO,KAAnB;AACE,wBAAC,gBAAD;AACG,oBAAkB,aAAfE,QAAe,QAAfA,QAAe;AACjB;AACE;AACE,sBAAUL,qBAAqB,CAACC,IADlC;AAEE,UAAA,SAAS,EAAEN,EAAE,gBAAII,MAAM,CAACE,IAAP,CAAYG,KAAZ,CAAJ,IAAyB,IAAzB,MAAgCL,MAAM,CAACO,UAAP,CAAkBF,KAAlB,CAAhC,IAA2DC,QAA3D,OAFf,GADF;;;AAMD,KARH,CADF,CADF;;;;AAcD;;AAEDH,aAAa,CAACK,mBAAd,GAAoC,eAApC;;AAEA,SAASL,aAAT","sourcesContent":["import React, { useContext } from 'react';\n\nimport { cx } from '../../lib/theming/Emotion';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\n\nimport { styles } from './MenuSeparator.styles';\n\nexport type MenuSeparatorProps = CommonProps;\n\nexport const MenuSeparatorDataTids = {\n root: 'MenuSeparator__root',\n} as const;\n/**\n * Добавляет разделительную линию между элементами меню.\n *\n * Сущности в которых может быть использован `MenuSeparator`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\nfunction MenuSeparator(props: MenuSeparatorProps) {\n const theme = useContext(ThemeContext);\n\n return (\n <CommonWrapper {...props}>\n <ResponsiveLayout>\n {({ isMobile }) => {\n return (\n <div\n data-tid={MenuSeparatorDataTids.root}\n className={cx({ [styles.root(theme)]: true, [styles.rootMobile(theme)]: isMobile })}\n />\n );\n }}\n </ResponsiveLayout>\n </CommonWrapper>\n );\n}\n\nMenuSeparator.__KONTUR_REACT_UI__ = 'MenuSeparator';\n\nexport { MenuSeparator };\n"]}
1
+ {"version":3,"sources":["MenuSeparator.tsx"],"names":["React","useContext","cx","ThemeContext","CommonWrapper","ResponsiveLayout","styles","MenuSeparatorDataTids","root","MenuSeparator","props","theme","isMobile","rootMobile","__KONTUR_REACT_UI__","displayName"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,gBAAT,QAAiC,qBAAjC;;AAEA,SAASC,MAAT,QAAuB,wBAAvB;;;;AAIA,OAAO,IAAMC,qBAAqB,GAAG;AACnCC,EAAAA,IAAI,EAAE,qBAD6B,EAA9B;;AAGP;AACA;AACA;AACA;AACA;AACA,SAASC,aAAT,CAAuBC,KAAvB,EAAkD;AAChD,MAAMC,KAAK,GAAGV,UAAU,CAACE,YAAD,CAAxB;;AAEA;AACE,wBAAC,aAAD,EAAmBO,KAAnB;AACE,wBAAC,gBAAD;AACG,oBAAkB,aAAfE,QAAe,QAAfA,QAAe;AACjB;AACE;AACE,sBAAUL,qBAAqB,CAACC,IADlC;AAEE,UAAA,SAAS,EAAEN,EAAE,gBAAII,MAAM,CAACE,IAAP,CAAYG,KAAZ,CAAJ,IAAyB,IAAzB,MAAgCL,MAAM,CAACO,UAAP,CAAkBF,KAAlB,CAAhC,IAA2DC,QAA3D,OAFf,GADF;;;AAMD,KARH,CADF,CADF;;;;AAcD;;AAEDH,aAAa,CAACK,mBAAd,GAAoC,eAApC;AACAL,aAAa,CAACM,WAAd,GAA4B,eAA5B;;AAEA,SAASN,aAAT","sourcesContent":["import React, { useContext } from 'react';\n\nimport { cx } from '../../lib/theming/Emotion';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\n\nimport { styles } from './MenuSeparator.styles';\n\nexport type MenuSeparatorProps = CommonProps;\n\nexport const MenuSeparatorDataTids = {\n root: 'MenuSeparator__root',\n} as const;\n/**\n * Добавляет разделительную линию между элементами меню.\n *\n * Сущности в которых может быть использован `MenuSeparator`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\nfunction MenuSeparator(props: MenuSeparatorProps) {\n const theme = useContext(ThemeContext);\n\n return (\n <CommonWrapper {...props}>\n <ResponsiveLayout>\n {({ isMobile }) => {\n return (\n <div\n data-tid={MenuSeparatorDataTids.root}\n className={cx({ [styles.root(theme)]: true, [styles.rootMobile(theme)]: isMobile })}\n />\n );\n }}\n </ResponsiveLayout>\n </CommonWrapper>\n );\n}\n\nMenuSeparator.__KONTUR_REACT_UI__ = 'MenuSeparator';\nMenuSeparator.displayName = 'MenuSeparator';\n\nexport { MenuSeparator };\n"]}
@@ -11,5 +11,6 @@ export declare const MenuSeparatorDataTids: {
11
11
  declare function MenuSeparator(props: MenuSeparatorProps): JSX.Element;
12
12
  declare namespace MenuSeparator {
13
13
  var __KONTUR_REACT_UI__: string;
14
+ var displayName: string;
14
15
  }
15
16
  export { MenuSeparator };
@@ -31,7 +31,6 @@ export var MiniModal = forwardRefAndName('MiniModal', function (_ref, ref) {
31
31
  ref: ref
32
32
  }, rest), children));
33
33
  });
34
- MiniModal.__KONTUR_REACT_UI__ = 'MiniModal';
35
34
  MiniModal.Header = MiniModalHeader;
36
35
  MiniModal.Footer = MiniModalFooter;
37
36
  MiniModal.Indent = MiniModalIndent;
@@ -1 +1 @@
1
- {"version":3,"sources":["MiniModal.tsx"],"names":["React","useContext","Modal","ThemeContext","forwardRefAndName","getMiniModalTheme","MiniModalFooter","MiniModalHeader","MiniModalBody","MiniModalIndent","MiniModalDataTids","icon","title","description","actions","indent","MiniModal","ref","children","propsTheme","theme","rest","contextTheme","__KONTUR_REACT_UI__","Header","Footer","Indent","Body"],"mappings":"oMAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,KAAT,QAAkC,UAAlC;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,iBAAT,QAAkC,qBAAlC;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,aAAT,QAA8B,iBAA9B;AACA,SAASC,eAAT,QAAgC,mBAAhC;;AAEA,OAAO,IAAMC,iBAAiB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,iBADyB;AAE/BC,EAAAA,KAAK,EAAE,kBAFwB;AAG/BC,EAAAA,WAAW,EAAE,wBAHkB;AAI/BC,EAAAA,OAAO,EAAE,oBAJsB;AAK/BC,EAAAA,MAAM,EAAE,mBALuB,EAA1B;;;AAQP,OAAO,IAAMC,SAAS,GAAGZ,iBAAiB;;;;;;;;;AASxC,WATwC,EAS3B,gBAA2Ca,GAA3C,EAAmD,KAAhDC,QAAgD,QAAhDA,QAAgD,CAA/BC,UAA+B,QAAtCC,KAAsC,CAAhBC,IAAgB;AAChE,MAAMC,YAAY,GAAGrB,UAAU,CAACE,YAAD,CAA/B;;AAEA;AACE,wBAAC,YAAD,CAAc,QAAd,IAAuB,KAAK,EAAEE,iBAAiB,CAACiB,YAAD,EAAeH,UAAf,CAA/C;AACE,wBAAC,KAAD,aAAO,KAAK,EAAE,GAAd,EAAmB,OAAO,MAA1B,EAA2B,GAAG,EAAEF,GAAhC,IAAyCI,IAAzC;AACGH,IAAAA,QADH,CADF,CADF;;;;AAOD,CAnByC,CAAnC;;AAqBPF,SAAS,CAACO,mBAAV,GAAgC,WAAhC;;AAEAP,SAAS,CAACQ,MAAV,GAAmBjB,eAAnB;AACAS,SAAS,CAACS,MAAV,GAAmBnB,eAAnB;AACAU,SAAS,CAACU,MAAV,GAAmBjB,eAAnB;AACAO,SAAS,CAACW,IAAV,GAAiBnB,aAAjB","sourcesContent":["import React, { useContext } from 'react';\n\nimport { Modal, ModalProps } from '../Modal';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nimport { getMiniModalTheme } from './getMiniModalTheme';\nimport { MiniModalFooter } from './MiniModalFooter';\nimport { MiniModalHeader } from './MiniModalHeader';\nimport { MiniModalBody } from './MiniModalBody';\nimport { MiniModalIndent } from './MiniModalIndent';\n\nexport const MiniModalDataTids = {\n icon: 'MiniModal__icon',\n title: 'MiniModal__title',\n description: 'MiniModal__description',\n actions: 'MiniModal__actions',\n indent: 'MiniModal__indent',\n} as const;\n\nexport const MiniModal = forwardRefAndName<\n Modal,\n ModalProps,\n {\n Header: typeof MiniModalHeader;\n Indent: typeof MiniModalIndent;\n Footer: typeof MiniModalFooter;\n Body: typeof MiniModalBody;\n }\n>('MiniModal', ({ children, theme: propsTheme, ...rest }, ref) => {\n const contextTheme = useContext(ThemeContext);\n\n return (\n <ThemeContext.Provider value={getMiniModalTheme(contextTheme, propsTheme)}>\n <Modal width={400} noClose ref={ref} {...rest}>\n {children}\n </Modal>\n </ThemeContext.Provider>\n );\n});\n\nMiniModal.__KONTUR_REACT_UI__ = 'MiniModal';\n\nMiniModal.Header = MiniModalHeader;\nMiniModal.Footer = MiniModalFooter;\nMiniModal.Indent = MiniModalIndent;\nMiniModal.Body = MiniModalBody;\n"]}
1
+ {"version":3,"sources":["MiniModal.tsx"],"names":["React","useContext","Modal","ThemeContext","forwardRefAndName","getMiniModalTheme","MiniModalFooter","MiniModalHeader","MiniModalBody","MiniModalIndent","MiniModalDataTids","icon","title","description","actions","indent","MiniModal","ref","children","propsTheme","theme","rest","contextTheme","Header","Footer","Indent","Body"],"mappings":"oMAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,KAAT,QAAkC,UAAlC;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,iBAAT,QAAkC,qBAAlC;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,aAAT,QAA8B,iBAA9B;AACA,SAASC,eAAT,QAAgC,mBAAhC;;AAEA,OAAO,IAAMC,iBAAiB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,iBADyB;AAE/BC,EAAAA,KAAK,EAAE,kBAFwB;AAG/BC,EAAAA,WAAW,EAAE,wBAHkB;AAI/BC,EAAAA,OAAO,EAAE,oBAJsB;AAK/BC,EAAAA,MAAM,EAAE,mBALuB,EAA1B;;;AAQP,OAAO,IAAMC,SAAS,GAAGZ,iBAAiB;;;;;;;;;AASxC,WATwC,EAS3B,gBAA2Ca,GAA3C,EAAmD,KAAhDC,QAAgD,QAAhDA,QAAgD,CAA/BC,UAA+B,QAAtCC,KAAsC,CAAhBC,IAAgB;AAChE,MAAMC,YAAY,GAAGrB,UAAU,CAACE,YAAD,CAA/B;;AAEA;AACE,wBAAC,YAAD,CAAc,QAAd,IAAuB,KAAK,EAAEE,iBAAiB,CAACiB,YAAD,EAAeH,UAAf,CAA/C;AACE,wBAAC,KAAD,aAAO,KAAK,EAAE,GAAd,EAAmB,OAAO,MAA1B,EAA2B,GAAG,EAAEF,GAAhC,IAAyCI,IAAzC;AACGH,IAAAA,QADH,CADF,CADF;;;;AAOD,CAnByC,CAAnC;;AAqBPF,SAAS,CAACO,MAAV,GAAmBhB,eAAnB;AACAS,SAAS,CAACQ,MAAV,GAAmBlB,eAAnB;AACAU,SAAS,CAACS,MAAV,GAAmBhB,eAAnB;AACAO,SAAS,CAACU,IAAV,GAAiBlB,aAAjB","sourcesContent":["import React, { useContext } from 'react';\n\nimport { Modal, ModalProps } from '../Modal';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nimport { getMiniModalTheme } from './getMiniModalTheme';\nimport { MiniModalFooter } from './MiniModalFooter';\nimport { MiniModalHeader } from './MiniModalHeader';\nimport { MiniModalBody } from './MiniModalBody';\nimport { MiniModalIndent } from './MiniModalIndent';\n\nexport const MiniModalDataTids = {\n icon: 'MiniModal__icon',\n title: 'MiniModal__title',\n description: 'MiniModal__description',\n actions: 'MiniModal__actions',\n indent: 'MiniModal__indent',\n} as const;\n\nexport const MiniModal = forwardRefAndName<\n Modal,\n ModalProps,\n {\n Header: typeof MiniModalHeader;\n Indent: typeof MiniModalIndent;\n Footer: typeof MiniModalFooter;\n Body: typeof MiniModalBody;\n }\n>('MiniModal', ({ children, theme: propsTheme, ...rest }, ref) => {\n const contextTheme = useContext(ThemeContext);\n\n return (\n <ThemeContext.Provider value={getMiniModalTheme(contextTheme, propsTheme)}>\n <Modal width={400} noClose ref={ref} {...rest}>\n {children}\n </Modal>\n </ThemeContext.Provider>\n );\n});\n\nMiniModal.Header = MiniModalHeader;\nMiniModal.Footer = MiniModalFooter;\nMiniModal.Indent = MiniModalIndent;\nMiniModal.Body = MiniModalBody;\n"]}
@@ -335,6 +335,7 @@ export var Modal = /*#__PURE__*/function (_React$Component) {
335
335
  return Modal;
336
336
  }(React.Component);
337
337
  Modal.__KONTUR_REACT_UI__ = 'Modal';
338
+ Modal.displayName = 'Modal';
338
339
  Modal.Header = ModalHeader;
339
340
  Modal.Body = ModalBody;
340
341
  Modal.Footer = ModalFooter;
@@ -1 +1 @@
1
- {"version":3,"sources":["Modal.tsx"],"names":["React","FocusLock","throttle","globalObject","isNonNullable","isKeyEscape","LayoutEvents","RenderContainer","ZIndex","stopPropagation","HideBodyVerticalScroll","ModalStack","ResizeDetector","ThemeContext","isIE11","CommonWrapper","cx","createPropsGetter","ResponsiveLayout","ModalContext","ModalFooter","ModalHeader","ModalBody","ModalClose","styles","getModalTheme","mountedModalsCount","ModalDataTids","container","content","close","Modal","getProps","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","componentDidMount","add","addEventListener","componentWillUnmount","removeEventListener","remove","render","theme","renderMain","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","role","disableFocusLock","modalContextProps","additionalPadding","style","containerStyle","root","bg","isMobile","containerMobile","centerContainer","mobileCenterContainer","Boolean","undefined","window","mobileWindow","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","Component","__KONTUR_REACT_UI__","Header","Body","Footer"],"mappings":"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","sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role'>>;\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонент нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter) {\n modalContextProps.additionalPadding = true;\n }\n if (hasFooter && hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={cx(styles.container(), isMobile && styles.containerMobile(this.theme))}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={cx({\n [styles.centerContainer()]: true,\n [styles.mobileCenterContainer()]: isMobile,\n [styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={cx({ [styles.window(this.theme)]: true, [styles.mobileWindow()]: isMobile })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={cx({ [styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n className={cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
1
+ {"version":3,"sources":["Modal.tsx"],"names":["React","FocusLock","throttle","globalObject","isNonNullable","isKeyEscape","LayoutEvents","RenderContainer","ZIndex","stopPropagation","HideBodyVerticalScroll","ModalStack","ResizeDetector","ThemeContext","isIE11","CommonWrapper","cx","createPropsGetter","ResponsiveLayout","ModalContext","ModalFooter","ModalHeader","ModalBody","ModalClose","styles","getModalTheme","mountedModalsCount","ModalDataTids","container","content","close","Modal","getProps","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","componentDidMount","add","addEventListener","componentWillUnmount","removeEventListener","remove","render","theme","renderMain","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","role","disableFocusLock","modalContextProps","additionalPadding","style","containerStyle","root","bg","isMobile","containerMobile","centerContainer","mobileCenterContainer","Boolean","undefined","window","mobileWindow","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","Component","__KONTUR_REACT_UI__","displayName","Header","Body","Footer"],"mappings":"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","sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role'>>;\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонент нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n public static displayName = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter) {\n modalContextProps.additionalPadding = true;\n }\n if (hasFooter && hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={cx(styles.container(), isMobile && styles.containerMobile(this.theme))}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={cx({\n [styles.centerContainer()]: true,\n [styles.mobileCenterContainer()]: isMobile,\n [styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={cx({ [styles.window(this.theme)]: true, [styles.mobileWindow()]: isMobile })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={cx({ [styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n className={cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
@@ -68,6 +68,7 @@ declare type DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role
68
68
  */
69
69
  export declare class Modal extends React.Component<ModalProps, ModalState> {
70
70
  static __KONTUR_REACT_UI__: string;
71
+ static displayName: string;
71
72
  static Header: typeof ModalHeader;
72
73
  static Body: typeof ModalBody;
73
74
  static Footer: typeof ModalFooter;
@@ -73,4 +73,4 @@ var ModalBody = responsiveLayout(_class = rootNode(_class = (_temp = _class2 = /
73
73
  };
74
74
 
75
75
  return ModalBody;
76
- }(React.Component), _class2.__KONTUR_REACT_UI__ = 'ModalBody', _class2.__MODAL_BODY__ = true, _temp)) || _class) || _class;
76
+ }(React.Component), _class2.__KONTUR_REACT_UI__ = 'ModalBody', _class2.displayName = 'ModalBody', _class2.__MODAL_BODY__ = true, _temp)) || _class) || _class;
@@ -1 +1 @@
1
- {"version":3,"sources":["ModalBody.tsx"],"names":["React","ThemeContext","ZIndex","CommonWrapper","cx","responsiveLayout","LayoutEvents","ResizeDetector","rootNode","ModalContext","styles","getModalBodyTheme","ModalBody","handleResize","emit","render","theme","renderMain","noPadding","props","additionalPadding","hasHeader","setRootNode","body","mobileBody","isMobileLayout","bodyWithoutHeader","mobileBodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","bodyWithoutPadding","children","Component","__KONTUR_REACT_UI__","__MODAL_BODY__"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,aAAT,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,gBAAT,QAAiC,+BAAjC;AACA,OAAO,KAAKC,YAAZ,MAA8B,wBAA9B;AACA,SAASC,cAAT,QAA+B,+BAA/B;AACA,SAASC,QAAT,QAAuC,oBAAvC;;AAEA,SAASC,YAAT,QAA6B,gBAA7B;AACA,SAASC,MAAT,QAAuB,gBAAvB;AACA,SAASC,iBAAT,QAAkC,qBAAlC;;;;;;;;;;;;;;;;AAgBA,OAPA;AACA;AACA;AACA;AACA,GAGA,IAAaC,SAAb,GAFCP,gBAED,UADCG,QACD;;;;;;;;;;;;;;;AAmBUK,IAAAA,YAnBV,GAmByB,YAAM;AAC3BP,MAAAA,YAAY,CAACQ,IAAb;AACD,KArBH,uDAQSC,MART,GAQE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaL,iBAAiB,CAACK,KAAD,CAA9B,CACA,oBAAO,oBAAC,YAAD,CAAc,QAAd,IAAuB,KAAK,EAAE,MAAI,CAACA,KAAnC,IAA2C,MAAI,CAACC,UAAL,EAA3C,CAAP,CACD,CAJH,CADF,CAQD,CAjBH;;AAuBSA,EAAAA,UAvBT,GAuBE,sBAAiC;AAC/B,QAAQC,SAAR,GAAsB,KAAKC,KAA3B,CAAQD,SAAR;AACA;AACE,0BAAC,YAAD,CAAc,QAAd;AACG,mCAAGE,iBAAH,QAAGA,iBAAH,CAAsBC,SAAtB,QAAsBA,SAAtB;AACC,8BAAC,aAAD,aAAe,WAAW,EAAE,MAAI,CAACC,WAAjC,IAAkD,MAAI,CAACH,KAAvD;AACE,8BAAC,MAAD;AACE,YAAA,SAAS,EAAEf,EAAE;AACVM,YAAAA,MAAM,CAACa,IAAP,CAAY,MAAI,CAACP,KAAjB,CADU,IACgB,IADhB;AAEVN,YAAAA,MAAM,CAACc,UAAP,CAAkB,MAAI,CAACR,KAAvB,CAFU,IAEsB,MAAI,CAACS,cAF3B;AAGVf,YAAAA,MAAM,CAACgB,iBAAP,CAAyB,MAAI,CAACV,KAA9B,CAHU,IAG6B,CAACK,SAH9B;AAIVX,YAAAA,MAAM,CAACiB,uBAAP,EAJU,IAIyB,CAACN,SAAD,IAAc,MAAI,CAACI,cAJ5C;AAKVf,YAAAA,MAAM,CAACkB,sBAAP,CAA8B,MAAI,CAACZ,KAAnC,CALU,IAKkCI,iBALlC;AAMVV,YAAAA,MAAM,CAACmB,4BAAP,CAAoC,MAAI,CAACb,KAAzC,CANU,IAMwCI,iBAAiB,IAAI,MAAI,CAACK,cANlE;AAOVf,YAAAA,MAAM,CAACoB,kBAAP,EAPU,IAOoBZ,SAPpB,OADf;;;AAWG,UAAA,MAAI,CAACO,cAAL;AACC,8BAAC,cAAD,IAAgB,QAAQ,EAAE,MAAI,CAACZ,YAA/B,IAA8C,MAAI,CAACM,KAAL,CAAWY,QAAzD,CADD;;AAGC,UAAA,MAAI,CAACZ,KAAL,CAAWY,QAdf,CADF,CADD,GADH,CADF;;;;;;;AAyBD,GAlDH,oBAA+B/B,KAAK,CAACgC,SAArC,WACgBC,mBADhB,GACsC,WADtC,UAEgBC,cAFhB,GAEiC,IAFjC","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { ModalContext } from './ModalContext';\nimport { styles } from './Modal.styles';\nimport { getModalBodyTheme } from './getModalBodyTheme';\n\nexport interface ModalBodyProps extends CommonProps {\n /**\n * убирает отступы\n */\n noPadding?: boolean;\n}\n\n/**\n * Контейнер с отступами от края модалки\n *\n * @visibleName Modal.Body\n */\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalBodyTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n public renderMain(): JSX.Element {\n const { noPadding } = this.props;\n return (\n <ModalContext.Consumer>\n {({ additionalPadding, hasHeader }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n className={cx({\n [styles.body(this.theme)]: true,\n [styles.mobileBody(this.theme)]: this.isMobileLayout,\n [styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [styles.mobileBodyWithoutHeader()]: !hasHeader && this.isMobileLayout,\n [styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [styles.bodyWithoutPadding()]: noPadding,\n })}\n >\n {this.isMobileLayout ? (\n <ResizeDetector onResize={this.handleResize}>{this.props.children}</ResizeDetector>\n ) : (\n this.props.children\n )}\n </ZIndex>\n </CommonWrapper>\n )}\n </ModalContext.Consumer>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["ModalBody.tsx"],"names":["React","ThemeContext","ZIndex","CommonWrapper","cx","responsiveLayout","LayoutEvents","ResizeDetector","rootNode","ModalContext","styles","getModalBodyTheme","ModalBody","handleResize","emit","render","theme","renderMain","noPadding","props","additionalPadding","hasHeader","setRootNode","body","mobileBody","isMobileLayout","bodyWithoutHeader","mobileBodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","bodyWithoutPadding","children","Component","__KONTUR_REACT_UI__","displayName","__MODAL_BODY__"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,aAAT,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,gBAAT,QAAiC,+BAAjC;AACA,OAAO,KAAKC,YAAZ,MAA8B,wBAA9B;AACA,SAASC,cAAT,QAA+B,+BAA/B;AACA,SAASC,QAAT,QAAuC,oBAAvC;;AAEA,SAASC,YAAT,QAA6B,gBAA7B;AACA,SAASC,MAAT,QAAuB,gBAAvB;AACA,SAASC,iBAAT,QAAkC,qBAAlC;;;;;;;;;;;;;;;;AAgBA,OAPA;AACA;AACA;AACA;AACA,GAGA,IAAaC,SAAb,GAFCP,gBAED,UADCG,QACD;;;;;;;;;;;;;;;;AAoBUK,IAAAA,YApBV,GAoByB,YAAM;AAC3BP,MAAAA,YAAY,CAACQ,IAAb;AACD,KAtBH,uDASSC,MATT,GASE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaL,iBAAiB,CAACK,KAAD,CAA9B,CACA,oBAAO,oBAAC,YAAD,CAAc,QAAd,IAAuB,KAAK,EAAE,MAAI,CAACA,KAAnC,IAA2C,MAAI,CAACC,UAAL,EAA3C,CAAP,CACD,CAJH,CADF,CAQD,CAlBH;;AAwBSA,EAAAA,UAxBT,GAwBE,sBAAiC;AAC/B,QAAQC,SAAR,GAAsB,KAAKC,KAA3B,CAAQD,SAAR;AACA;AACE,0BAAC,YAAD,CAAc,QAAd;AACG,mCAAGE,iBAAH,QAAGA,iBAAH,CAAsBC,SAAtB,QAAsBA,SAAtB;AACC,8BAAC,aAAD,aAAe,WAAW,EAAE,MAAI,CAACC,WAAjC,IAAkD,MAAI,CAACH,KAAvD;AACE,8BAAC,MAAD;AACE,YAAA,SAAS,EAAEf,EAAE;AACVM,YAAAA,MAAM,CAACa,IAAP,CAAY,MAAI,CAACP,KAAjB,CADU,IACgB,IADhB;AAEVN,YAAAA,MAAM,CAACc,UAAP,CAAkB,MAAI,CAACR,KAAvB,CAFU,IAEsB,MAAI,CAACS,cAF3B;AAGVf,YAAAA,MAAM,CAACgB,iBAAP,CAAyB,MAAI,CAACV,KAA9B,CAHU,IAG6B,CAACK,SAH9B;AAIVX,YAAAA,MAAM,CAACiB,uBAAP,EAJU,IAIyB,CAACN,SAAD,IAAc,MAAI,CAACI,cAJ5C;AAKVf,YAAAA,MAAM,CAACkB,sBAAP,CAA8B,MAAI,CAACZ,KAAnC,CALU,IAKkCI,iBALlC;AAMVV,YAAAA,MAAM,CAACmB,4BAAP,CAAoC,MAAI,CAACb,KAAzC,CANU,IAMwCI,iBAAiB,IAAI,MAAI,CAACK,cANlE;AAOVf,YAAAA,MAAM,CAACoB,kBAAP,EAPU,IAOoBZ,SAPpB,OADf;;;AAWG,UAAA,MAAI,CAACO,cAAL;AACC,8BAAC,cAAD,IAAgB,QAAQ,EAAE,MAAI,CAACZ,YAA/B,IAA8C,MAAI,CAACM,KAAL,CAAWY,QAAzD,CADD;;AAGC,UAAA,MAAI,CAACZ,KAAL,CAAWY,QAdf,CADF,CADD,GADH,CADF;;;;;;;AAyBD,GAnDH,oBAA+B/B,KAAK,CAACgC,SAArC,WACgBC,mBADhB,GACsC,WADtC,UAEgBC,WAFhB,GAE8B,WAF9B,UAGgBC,cAHhB,GAGiC,IAHjC","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { ModalContext } from './ModalContext';\nimport { styles } from './Modal.styles';\nimport { getModalBodyTheme } from './getModalBodyTheme';\n\nexport interface ModalBodyProps extends CommonProps {\n /**\n * убирает отступы\n */\n noPadding?: boolean;\n}\n\n/**\n * Контейнер с отступами от края модалки\n *\n * @visibleName Modal.Body\n */\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static displayName = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalBodyTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n public renderMain(): JSX.Element {\n const { noPadding } = this.props;\n return (\n <ModalContext.Consumer>\n {({ additionalPadding, hasHeader }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n className={cx({\n [styles.body(this.theme)]: true,\n [styles.mobileBody(this.theme)]: this.isMobileLayout,\n [styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [styles.mobileBodyWithoutHeader()]: !hasHeader && this.isMobileLayout,\n [styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [styles.bodyWithoutPadding()]: noPadding,\n })}\n >\n {this.isMobileLayout ? (\n <ResizeDetector onResize={this.handleResize}>{this.props.children}</ResizeDetector>\n ) : (\n this.props.children\n )}\n </ZIndex>\n </CommonWrapper>\n )}\n </ModalContext.Consumer>\n );\n }\n}\n"]}
@@ -13,6 +13,7 @@ export interface ModalBodyProps extends CommonProps {
13
13
  */
14
14
  export declare class ModalBody extends React.Component<ModalBodyProps> {
15
15
  static __KONTUR_REACT_UI__: string;
16
+ static displayName: string;
16
17
  static __MODAL_BODY__: boolean;
17
18
  private theme;
18
19
  private isMobileLayout;
@@ -57,4 +57,6 @@ export function ModalClose(_ref) {
57
57
  tabIndex: disableClose ? -1 : 0
58
58
  }, icon);
59
59
  }));
60
- }
60
+ }
61
+ ModalClose.__KONTUR_REACT_UI__ = 'ModalClose';
62
+ ModalClose.displayName = 'ModalClose';