@skbkontur/react-ui 0.0.0-95a1dbe516 → 0.0.0-9ab4f802f3

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 (647) hide show
  1. package/CHANGELOG.md +120 -0
  2. package/README.md +41 -13
  3. package/cjs/components/Autocomplete/Autocomplete.js +12 -6
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Autocomplete/Autocomplete.md +76 -3
  6. package/cjs/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
  7. package/cjs/components/Autocomplete/Autocomplete.styles.js +7 -1
  8. package/cjs/components/Autocomplete/Autocomplete.styles.js.map +1 -1
  9. package/cjs/components/Button/Button.js +2 -2
  10. package/cjs/components/Button/Button.js.map +1 -1
  11. package/cjs/components/Button/Button.md +38 -11
  12. package/cjs/components/Calendar/Calendar.d.ts +28 -5
  13. package/cjs/components/Calendar/Calendar.js +80 -36
  14. package/cjs/components/Calendar/Calendar.js.map +1 -1
  15. package/cjs/components/Calendar/Calendar.md +82 -1
  16. package/cjs/components/Calendar/Calendar.styles.js +1 -1
  17. package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
  18. package/cjs/components/Calendar/CalendarContext.d.ts +12 -0
  19. package/cjs/components/Calendar/CalendarContext.js +16 -0
  20. package/cjs/components/Calendar/CalendarContext.js.map +1 -0
  21. package/cjs/components/Calendar/CalendarDateShape.d.ts +4 -2
  22. package/cjs/components/Calendar/CalendarDateShape.js +13 -3
  23. package/cjs/components/Calendar/CalendarDateShape.js.map +1 -1
  24. package/cjs/components/Calendar/CalendarDay.d.ts +12 -0
  25. package/cjs/components/Calendar/CalendarDay.js +79 -0
  26. package/cjs/components/Calendar/CalendarDay.js.map +1 -0
  27. package/cjs/components/Calendar/CalendarDay.md +70 -0
  28. package/cjs/components/Calendar/CalendarUtils.d.ts +2 -1
  29. package/cjs/components/Calendar/CalendarUtils.js +4 -6
  30. package/cjs/components/Calendar/CalendarUtils.js.map +1 -1
  31. package/cjs/components/Calendar/DayCellView.d.ts +4 -12
  32. package/cjs/components/Calendar/DayCellView.js +20 -42
  33. package/cjs/components/Calendar/DayCellView.js.map +1 -1
  34. package/cjs/components/Calendar/DayCellView.styles.d.ts +2 -5
  35. package/cjs/components/Calendar/DayCellView.styles.js +37 -43
  36. package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
  37. package/cjs/components/Calendar/Month.d.ts +0 -10
  38. package/cjs/components/Calendar/Month.js +36 -88
  39. package/cjs/components/Calendar/Month.js.map +1 -1
  40. package/cjs/components/Calendar/MonthView.d.ts +3 -2
  41. package/cjs/components/Calendar/MonthView.js +47 -37
  42. package/cjs/components/Calendar/MonthView.js.map +1 -1
  43. package/cjs/components/Calendar/MonthView.styles.d.ts +3 -0
  44. package/cjs/components/Calendar/MonthView.styles.js +45 -7
  45. package/cjs/components/Calendar/MonthView.styles.js.map +1 -1
  46. package/cjs/components/Calendar/MonthViewModel.js +24 -6
  47. package/cjs/components/Calendar/MonthViewModel.js.map +1 -1
  48. package/cjs/components/Calendar/config.js +12 -6
  49. package/cjs/components/Calendar/config.js.map +1 -1
  50. package/cjs/components/Calendar/index.d.ts +1 -0
  51. package/cjs/components/Calendar/index.js +2 -1
  52. package/cjs/components/Calendar/index.js.map +1 -1
  53. package/cjs/components/Checkbox/Checkbox.js +1 -1
  54. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  55. package/cjs/components/DateInput/DateFragmentsView.js +1 -1
  56. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  57. package/cjs/components/DateInput/DateInput.js +1 -1
  58. package/cjs/components/DateInput/DateInput.js.map +1 -1
  59. package/cjs/components/DatePicker/DatePicker.d.ts +4 -1
  60. package/cjs/components/DatePicker/DatePicker.js +72 -45
  61. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  62. package/cjs/components/DatePicker/DatePicker.md +29 -1
  63. package/cjs/components/DatePicker/DatePickerHelpers.js +2 -1
  64. package/cjs/components/DatePicker/DatePickerHelpers.js.map +1 -1
  65. package/cjs/components/DatePicker/MobilePicker.d.ts +10 -0
  66. package/cjs/components/DatePicker/MobilePicker.js +118 -0
  67. package/cjs/components/DatePicker/MobilePicker.js.map +1 -0
  68. package/cjs/components/DatePicker/MobilePicker.styles.d.ts +3 -0
  69. package/cjs/components/DatePicker/MobilePicker.styles.js +8 -0
  70. package/cjs/components/DatePicker/MobilePicker.styles.js.map +1 -0
  71. package/cjs/components/DatePicker/Picker.js +1 -1
  72. package/cjs/components/DatePicker/Picker.js.map +1 -1
  73. package/cjs/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
  74. package/cjs/components/DatePicker/getMobilePickerTheme.js +19 -0
  75. package/cjs/components/DatePicker/getMobilePickerTheme.js.map +1 -0
  76. package/cjs/components/Dropdown/Dropdown.js +1 -1
  77. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  78. package/cjs/components/DropdownMenu/DropdownMenu.js +1 -1
  79. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  80. package/cjs/components/DropdownMenu/DropdownMenu.md +39 -0
  81. package/cjs/components/FileUploader/FileUploader.d.ts +2 -0
  82. package/cjs/components/FileUploader/FileUploader.js +32 -9
  83. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  84. package/cjs/components/FileUploader/FileUploader.md +29 -0
  85. package/cjs/components/FxInput/FxInput.js +1 -1
  86. package/cjs/components/FxInput/FxInput.js.map +1 -1
  87. package/cjs/components/Group/Group.js +1 -1
  88. package/cjs/components/Group/Group.js.map +1 -1
  89. package/cjs/components/Hint/Hint.d.ts +4 -3
  90. package/cjs/components/Hint/Hint.js +9 -8
  91. package/cjs/components/Hint/Hint.js.map +1 -1
  92. package/cjs/components/Input/Input.js +1 -1
  93. package/cjs/components/Input/Input.js.map +1 -1
  94. package/cjs/components/Input/Input.styles.d.ts +1 -1
  95. package/cjs/components/Input/Input.styles.js +3 -2
  96. package/cjs/components/Input/Input.styles.js.map +1 -1
  97. package/cjs/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
  98. package/cjs/components/Input/InputLayout/InputLayout.styles.js +3 -2
  99. package/cjs/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
  100. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -1
  101. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  102. package/cjs/components/Kebab/Kebab.js +6 -1
  103. package/cjs/components/Kebab/Kebab.js.map +1 -1
  104. package/cjs/components/Link/Link.js +3 -2
  105. package/cjs/components/Link/Link.js.map +1 -1
  106. package/cjs/components/Loader/Loader.js +1 -1
  107. package/cjs/components/Loader/Loader.js.map +1 -1
  108. package/cjs/components/MenuItem/MenuItem.js +2 -2
  109. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  110. package/cjs/components/MiniModal/MiniModal.js +1 -1
  111. package/cjs/components/MiniModal/MiniModal.js.map +1 -1
  112. package/cjs/components/Modal/Modal.js +1 -1
  113. package/cjs/components/Modal/Modal.js.map +1 -1
  114. package/cjs/components/Modal/ModalBody.js +1 -1
  115. package/cjs/components/Modal/ModalBody.js.map +1 -1
  116. package/cjs/components/Paging/Paging.js +8 -3
  117. package/cjs/components/Paging/Paging.js.map +1 -1
  118. package/cjs/components/PasswordInput/PasswordInput.js +1 -1
  119. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  120. package/cjs/components/Radio/Radio.js +1 -1
  121. package/cjs/components/Radio/Radio.js.map +1 -1
  122. package/cjs/components/RadioGroup/RadioGroup.js +10 -1
  123. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  124. package/cjs/components/ScrollContainer/ScrollBar.js +1 -1
  125. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  126. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  127. package/cjs/components/ScrollContainer/ScrollContainer.js +6 -0
  128. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  129. package/cjs/components/Select/Select.js +6 -3
  130. package/cjs/components/Select/Select.js.map +1 -1
  131. package/cjs/components/SidePage/SidePage.js +1 -1
  132. package/cjs/components/SidePage/SidePage.js.map +1 -1
  133. package/cjs/components/SidePage/SidePageBody.js +1 -1
  134. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  135. package/cjs/components/SidePage/SidePageContainer.js +1 -1
  136. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  137. package/cjs/components/SidePage/SidePageFooter.js +1 -1
  138. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  139. package/cjs/components/SidePage/SidePageHeader.js +1 -1
  140. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  141. package/cjs/components/Spinner/Spinner.js +1 -1
  142. package/cjs/components/Spinner/Spinner.js.map +1 -1
  143. package/cjs/components/Switcher/Switcher.js +1 -1
  144. package/cjs/components/Switcher/Switcher.js.map +1 -1
  145. package/cjs/components/Tabs/Indicator.js +1 -1
  146. package/cjs/components/Tabs/Indicator.js.map +1 -1
  147. package/cjs/components/Tabs/Tab.js +2 -2
  148. package/cjs/components/Tabs/Tab.js.map +1 -1
  149. package/cjs/components/Tabs/Tabs.js +1 -1
  150. package/cjs/components/Tabs/Tabs.js.map +1 -1
  151. package/cjs/components/Textarea/Textarea.js +1 -1
  152. package/cjs/components/Textarea/Textarea.js.map +1 -1
  153. package/cjs/components/Toast/Toast.js +1 -1
  154. package/cjs/components/Toast/Toast.js.map +1 -1
  155. package/cjs/components/Toast/ToastView.js +1 -1
  156. package/cjs/components/Toast/ToastView.js.map +1 -1
  157. package/cjs/components/Toggle/Toggle.js +1 -1
  158. package/cjs/components/Toggle/Toggle.js.map +1 -1
  159. package/cjs/components/Token/Token.js +2 -1
  160. package/cjs/components/Token/Token.js.map +1 -1
  161. package/cjs/components/TokenInput/TokenInput.js +1 -1
  162. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  163. package/cjs/components/TokenInput/TokenInputMenu.js +2 -2
  164. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  165. package/cjs/components/Tooltip/Tooltip.d.ts +10 -5
  166. package/cjs/components/Tooltip/Tooltip.js +59 -20
  167. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  168. package/cjs/components/TooltipMenu/TooltipMenu.js +4 -4
  169. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  170. package/cjs/hooks/useDrop.d.ts +1 -1
  171. package/cjs/hooks/useDrop.js.map +1 -1
  172. package/cjs/index.d.ts +2 -0
  173. package/cjs/index.js +2 -0
  174. package/cjs/index.js.map +1 -1
  175. package/cjs/internal/CommonWrapper/CommonWrapper.js +2 -2
  176. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  177. package/cjs/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
  178. package/cjs/internal/CommonWrapper/utils/extractCommonProps.js.map +1 -0
  179. package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.js → utils/getCommonVisualStateDataAttributes.js} +3 -4
  180. package/cjs/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes.js.map +1 -0
  181. package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
  182. package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.js → utils/getVisualStateDataAttributes.js} +3 -3
  183. package/cjs/internal/CommonWrapper/utils/getVisualStateDataAttributes.js.map +1 -0
  184. package/cjs/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
  185. package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js +1 -0
  186. package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js.map +1 -0
  187. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +2 -3
  188. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  189. package/cjs/internal/CustomComboBox/ComboBoxView.js +3 -1
  190. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  191. package/cjs/internal/DateSelect/DateSelect.d.ts +2 -0
  192. package/cjs/internal/DateSelect/DateSelect.js +51 -4
  193. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  194. package/cjs/internal/DateSelect/DateSelect.styles.d.ts +1 -0
  195. package/cjs/internal/DateSelect/DateSelect.styles.js +15 -1
  196. package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
  197. package/cjs/internal/DateSelect/locale/locales/en.js +2 -1
  198. package/cjs/internal/DateSelect/locale/locales/en.js.map +1 -1
  199. package/cjs/internal/DateSelect/locale/locales/ru.js +2 -1
  200. package/cjs/internal/DateSelect/locale/locales/ru.js.map +1 -1
  201. package/cjs/internal/DateSelect/locale/types.d.ts +1 -0
  202. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
  203. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +16 -3
  204. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  205. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
  206. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +4 -2
  207. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  208. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  209. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +3 -2
  210. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  211. package/cjs/internal/InputLikeText/InputLikeText.js +2 -2
  212. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  213. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +1 -1
  214. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  215. package/cjs/internal/InternalMenu/InternalMenu.js +2 -2
  216. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  217. package/cjs/internal/Menu/Menu.js +2 -2
  218. package/cjs/internal/Menu/Menu.js.map +1 -1
  219. package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
  220. package/cjs/internal/MobilePopup/MobilePopup.js +7 -1
  221. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  222. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
  223. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +32 -0
  224. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
  225. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
  226. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +15 -0
  227. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -0
  228. package/cjs/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
  229. package/cjs/internal/MobilePopup/MobilePopupFooter/index.js +1 -0
  230. package/cjs/internal/MobilePopup/MobilePopupFooter/index.js.map +1 -0
  231. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
  232. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  233. package/cjs/internal/NativeDateInput/utils.js +3 -2
  234. package/cjs/internal/NativeDateInput/utils.js.map +1 -1
  235. package/cjs/internal/Popup/Popup.d.ts +15 -4
  236. package/cjs/internal/Popup/Popup.js +67 -4
  237. package/cjs/internal/Popup/Popup.js.map +1 -1
  238. package/cjs/internal/PopupMenu/PopupMenu.js +1 -1
  239. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  240. package/cjs/internal/RenderContainer/RenderContainer.d.ts +3 -0
  241. package/cjs/internal/RenderContainer/RenderContainer.js +34 -24
  242. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  243. package/cjs/internal/RenderContainer/RenderInnerContainer.js +8 -4
  244. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  245. package/cjs/internal/RenderLayer/RenderLayer.js +5 -1
  246. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  247. package/cjs/internal/ThemePlayground/Playground.js +1 -1
  248. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  249. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +9 -6
  250. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  251. package/cjs/internal/ThemePlayground/constants.js +2 -1
  252. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  253. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +1 -1
  254. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  255. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  256. package/cjs/internal/ZIndex/ZIndex.d.ts +7 -3
  257. package/cjs/internal/ZIndex/ZIndex.js +41 -3
  258. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  259. package/cjs/internal/themes/DarkTheme.d.ts +2 -0
  260. package/cjs/internal/themes/DarkTheme.js +6 -1
  261. package/cjs/internal/themes/DarkTheme.js.map +1 -1
  262. package/cjs/internal/themes/DefaultTheme.d.ts +18 -0
  263. package/cjs/internal/themes/DefaultTheme.js +32 -4
  264. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  265. package/cjs/lib/date/InternalDate.d.ts +2 -0
  266. package/cjs/lib/date/InternalDate.js +8 -1
  267. package/cjs/lib/date/InternalDate.js.map +1 -1
  268. package/cjs/lib/date/InternalDateTransformer.d.ts +3 -0
  269. package/cjs/lib/date/InternalDateTransformer.js +23 -0
  270. package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
  271. package/cjs/lib/date/InternalDateValidator.js +2 -1
  272. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  273. package/cjs/lib/date/comparison.d.ts +6 -0
  274. package/cjs/lib/date/comparison.js +44 -0
  275. package/cjs/lib/date/comparison.js.map +1 -0
  276. package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
  277. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  278. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  279. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
  280. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  281. package/cjs/lib/listenFocusOutside.js +4 -2
  282. package/cjs/lib/listenFocusOutside.js.map +1 -1
  283. package/cjs/lib/locale/constants.d.ts +3 -0
  284. package/cjs/lib/locale/constants.js +6 -2
  285. package/cjs/lib/locale/constants.js.map +1 -1
  286. package/cjs/lib/taskWithDelayAndMinimalDuration.js +1 -0
  287. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  288. package/cjs/lib/theming/Emotion.d.ts +7 -1
  289. package/cjs/lib/theming/Emotion.js +6 -3
  290. package/cjs/lib/theming/Emotion.js.map +1 -1
  291. package/cjs/lib/theming/ThemeContext.d.ts +0 -2
  292. package/cjs/lib/theming/ThemeContext.js +1 -3
  293. package/cjs/lib/theming/ThemeContext.js.map +1 -1
  294. package/cjs/lib/theming/ThemeContext.md +3 -1
  295. package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
  296. package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js +50 -0
  297. package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js.map +1 -0
  298. package/cjs/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
  299. package/cjs/lib/theming/themes/Theme2022Update2024.js +75 -0
  300. package/cjs/lib/theming/themes/Theme2022Update2024.js.map +1 -0
  301. package/cjs/lib/widgets/StylesContainer.d.ts +13 -0
  302. package/cjs/lib/widgets/StylesContainer.js +70 -0
  303. package/cjs/lib/widgets/StylesContainer.js.map +1 -0
  304. package/cjs/lib/widgets/index.d.ts +1 -0
  305. package/cjs/lib/widgets/index.js +1 -0
  306. package/cjs/lib/widgets/index.js.map +1 -0
  307. package/components/Autocomplete/Autocomplete/Autocomplete.js +11 -5
  308. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  309. package/components/Autocomplete/Autocomplete.md +76 -3
  310. package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js +4 -1
  311. package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js.map +1 -1
  312. package/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
  313. package/components/Button/Button/Button.js +3 -3
  314. package/components/Button/Button/Button.js.map +1 -1
  315. package/components/Button/Button.md +38 -11
  316. package/components/Calendar/Calendar/Calendar.js +83 -66
  317. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  318. package/components/Calendar/Calendar.d.ts +28 -5
  319. package/components/Calendar/Calendar.md +82 -1
  320. package/components/Calendar/Calendar.styles/Calendar.styles.js +1 -1
  321. package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -1
  322. package/components/Calendar/CalendarContext/CalendarContext.js +2 -0
  323. package/components/Calendar/CalendarContext/CalendarContext.js.map +1 -0
  324. package/components/Calendar/CalendarContext/package.json +6 -0
  325. package/components/Calendar/CalendarContext.d.ts +12 -0
  326. package/components/Calendar/CalendarDateShape/CalendarDateShape.js +23 -1
  327. package/components/Calendar/CalendarDateShape/CalendarDateShape.js.map +1 -1
  328. package/components/Calendar/CalendarDateShape.d.ts +4 -2
  329. package/components/Calendar/CalendarDay/CalendarDay.js +64 -0
  330. package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -0
  331. package/components/Calendar/CalendarDay/package.json +6 -0
  332. package/components/Calendar/CalendarDay.d.ts +12 -0
  333. package/components/Calendar/CalendarDay.md +70 -0
  334. package/components/Calendar/CalendarUtils/CalendarUtils.js +5 -4
  335. package/components/Calendar/CalendarUtils/CalendarUtils.js.map +1 -1
  336. package/components/Calendar/CalendarUtils.d.ts +2 -1
  337. package/components/Calendar/DayCellView/DayCellView.js +33 -46
  338. package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
  339. package/components/Calendar/DayCellView.d.ts +4 -12
  340. package/components/Calendar/DayCellView.styles/DayCellView.styles.js +10 -14
  341. package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  342. package/components/Calendar/DayCellView.styles.d.ts +2 -5
  343. package/components/Calendar/Month/Month.js +50 -84
  344. package/components/Calendar/Month/Month.js.map +1 -1
  345. package/components/Calendar/Month.d.ts +0 -10
  346. package/components/Calendar/MonthView/MonthView.js +50 -45
  347. package/components/Calendar/MonthView/MonthView.js.map +1 -1
  348. package/components/Calendar/MonthView.d.ts +3 -2
  349. package/components/Calendar/MonthView.styles/MonthView.styles.js +20 -6
  350. package/components/Calendar/MonthView.styles/MonthView.styles.js.map +1 -1
  351. package/components/Calendar/MonthView.styles.d.ts +3 -0
  352. package/components/Calendar/MonthViewModel/MonthViewModel.js +9 -6
  353. package/components/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
  354. package/components/Calendar/config/config.js +6 -4
  355. package/components/Calendar/config/config.js.map +1 -1
  356. package/components/Calendar/index/index.js +2 -1
  357. package/components/Calendar/index/index.js.map +1 -1
  358. package/components/Calendar/index.d.ts +1 -0
  359. package/components/Checkbox/Checkbox/Checkbox.js +2 -2
  360. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  361. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +2 -2
  362. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  363. package/components/DateInput/DateInput/DateInput.js +2 -2
  364. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  365. package/components/DatePicker/DatePicker/DatePicker.js +62 -41
  366. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  367. package/components/DatePicker/DatePicker.d.ts +4 -1
  368. package/components/DatePicker/DatePicker.md +29 -1
  369. package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js +2 -1
  370. package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js.map +1 -1
  371. package/components/DatePicker/MobilePicker/MobilePicker.js +91 -0
  372. package/components/DatePicker/MobilePicker/MobilePicker.js.map +1 -0
  373. package/components/DatePicker/MobilePicker/package.json +6 -0
  374. package/components/DatePicker/MobilePicker.d.ts +10 -0
  375. package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js +10 -0
  376. package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js.map +1 -0
  377. package/components/DatePicker/MobilePicker.styles/package.json +6 -0
  378. package/components/DatePicker/MobilePicker.styles.d.ts +3 -0
  379. package/components/DatePicker/Picker/Picker.js +3 -3
  380. package/components/DatePicker/Picker/Picker.js.map +1 -1
  381. package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js +14 -0
  382. package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js.map +1 -0
  383. package/components/DatePicker/getMobilePickerTheme/package.json +6 -0
  384. package/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
  385. package/components/Dropdown/Dropdown/Dropdown.js +3 -3
  386. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  387. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -3
  388. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  389. package/components/DropdownMenu/DropdownMenu.md +39 -0
  390. package/components/FileUploader/FileUploader/FileUploader.js +30 -8
  391. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  392. package/components/FileUploader/FileUploader.d.ts +2 -0
  393. package/components/FileUploader/FileUploader.md +29 -0
  394. package/components/FxInput/FxInput/FxInput.js +2 -2
  395. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  396. package/components/Group/Group/Group.js +2 -2
  397. package/components/Group/Group/Group.js.map +1 -1
  398. package/components/Hint/Hint/Hint.js +53 -48
  399. package/components/Hint/Hint/Hint.js.map +1 -1
  400. package/components/Hint/Hint.d.ts +4 -3
  401. package/components/Input/Input/Input.js +3 -3
  402. package/components/Input/Input/Input.js.map +1 -1
  403. package/components/Input/Input.styles/Input.styles.js +2 -2
  404. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  405. package/components/Input/Input.styles.d.ts +1 -1
  406. package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js +2 -2
  407. package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js.map +1 -1
  408. package/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
  409. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +1 -1
  410. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
  411. package/components/Kebab/Kebab/Kebab.js +7 -4
  412. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  413. package/components/Link/Link/Link.js +6 -3
  414. package/components/Link/Link/Link.js.map +1 -1
  415. package/components/Loader/Loader/Loader.js +2 -2
  416. package/components/Loader/Loader/Loader.js.map +1 -1
  417. package/components/MenuItem/MenuItem/MenuItem.js +3 -3
  418. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  419. package/components/MiniModal/MiniModal/MiniModal.js +2 -2
  420. package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
  421. package/components/Modal/Modal/Modal.js +3 -3
  422. package/components/Modal/Modal/Modal.js.map +1 -1
  423. package/components/Modal/ModalBody/ModalBody.js +3 -3
  424. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  425. package/components/Paging/Paging/Paging.js +10 -6
  426. package/components/Paging/Paging/Paging.js.map +1 -1
  427. package/components/PasswordInput/PasswordInput/PasswordInput.js +2 -2
  428. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  429. package/components/Radio/Radio/Radio.js +2 -2
  430. package/components/Radio/Radio/Radio.js.map +1 -1
  431. package/components/RadioGroup/RadioGroup/RadioGroup.js +8 -4
  432. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  433. package/components/ScrollContainer/ScrollBar/ScrollBar.js +2 -2
  434. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  435. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +5 -0
  436. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  437. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  438. package/components/Select/Select/Select.js +6 -5
  439. package/components/Select/Select/Select.js.map +1 -1
  440. package/components/SidePage/SidePage/SidePage.js +2 -2
  441. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  442. package/components/SidePage/SidePageBody/SidePageBody.js +2 -2
  443. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  444. package/components/SidePage/SidePageContainer/SidePageContainer.js +2 -2
  445. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  446. package/components/SidePage/SidePageFooter/SidePageFooter.js +2 -2
  447. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  448. package/components/SidePage/SidePageHeader/SidePageHeader.js +2 -2
  449. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  450. package/components/Spinner/Spinner/Spinner.js +2 -2
  451. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  452. package/components/Switcher/Switcher/Switcher.js +3 -3
  453. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  454. package/components/Tabs/Indicator/Indicator.js +2 -2
  455. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  456. package/components/Tabs/Tab/Tab.js +3 -3
  457. package/components/Tabs/Tab/Tab.js.map +1 -1
  458. package/components/Tabs/Tabs/Tabs.js +2 -2
  459. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  460. package/components/Textarea/Textarea/Textarea.js +2 -2
  461. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  462. package/components/Toast/Toast/Toast.js +3 -3
  463. package/components/Toast/Toast/Toast.js.map +1 -1
  464. package/components/Toast/ToastView/ToastView.js +2 -2
  465. package/components/Toast/ToastView/ToastView.js.map +1 -1
  466. package/components/Toggle/Toggle/Toggle.js +2 -2
  467. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  468. package/components/Token/Token/Token.js +6 -3
  469. package/components/Token/Token/Token.js.map +1 -1
  470. package/components/TokenInput/TokenInput/TokenInput.js +2 -2
  471. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  472. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +3 -3
  473. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  474. package/components/Tooltip/Tooltip/Tooltip.js +67 -46
  475. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  476. package/components/Tooltip/Tooltip.d.ts +10 -5
  477. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +3 -3
  478. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  479. package/hooks/useDrop/useDrop.js.map +1 -1
  480. package/hooks/useDrop.d.ts +1 -1
  481. package/index.d.ts +2 -0
  482. package/index.js +2 -0
  483. package/index.js.map +1 -1
  484. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +2 -2
  485. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  486. package/internal/CommonWrapper/utils/extractCommonProps/extractCommonProps.js.map +1 -0
  487. package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/package.json +1 -1
  488. package/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
  489. package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/getCommonVisualStateDataAttributes.js +1 -5
  490. package/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +1 -0
  491. package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/package.json +1 -1
  492. package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/getVisualStateDataAttributes.js +3 -3
  493. package/internal/CommonWrapper/utils/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +1 -0
  494. package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/package.json +1 -1
  495. package/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
  496. package/internal/CommonWrapper/utils/tryGetBoolean/package.json +6 -0
  497. package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js +3 -0
  498. package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js.map +1 -0
  499. package/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
  500. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +3 -3
  501. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  502. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +5 -3
  503. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  504. package/internal/DateSelect/DateSelect/DateSelect.js +59 -6
  505. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  506. package/internal/DateSelect/DateSelect.d.ts +2 -0
  507. package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js +4 -1
  508. package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js.map +1 -1
  509. package/internal/DateSelect/DateSelect.styles.d.ts +1 -0
  510. package/internal/DateSelect/locale/locales/en/en.js +2 -1
  511. package/internal/DateSelect/locale/locales/en/en.js.map +1 -1
  512. package/internal/DateSelect/locale/locales/ru/ru.js +2 -1
  513. package/internal/DateSelect/locale/locales/ru/ru.js.map +1 -1
  514. package/internal/DateSelect/locale/types.d.ts +1 -0
  515. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +12 -3
  516. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  517. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
  518. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +4 -2
  519. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  520. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
  521. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -2
  522. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  523. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  524. package/internal/InputLikeText/InputLikeText/InputLikeText.js +3 -3
  525. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  526. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +2 -2
  527. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  528. package/internal/InternalMenu/InternalMenu/InternalMenu.js +3 -3
  529. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  530. package/internal/Menu/Menu/Menu.js +3 -3
  531. package/internal/Menu/Menu/Menu.js.map +1 -1
  532. package/internal/MobilePopup/MobilePopup/MobilePopup.js +4 -3
  533. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  534. package/internal/MobilePopup/MobilePopup.d.ts +4 -0
  535. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js +37 -0
  536. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
  537. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/package.json +6 -0
  538. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
  539. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js +11 -0
  540. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js.map +1 -0
  541. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/package.json +6 -0
  542. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
  543. package/internal/MobilePopup/MobilePopupFooter/index/index.js +1 -0
  544. package/internal/MobilePopup/MobilePopupFooter/index/index.js.map +1 -0
  545. package/internal/MobilePopup/MobilePopupFooter/index/package.json +6 -0
  546. package/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
  547. package/internal/MobilePopup/MobilePopupFooter/package.json +6 -0
  548. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -2
  549. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  550. package/internal/NativeDateInput/utils/utils.js +2 -1
  551. package/internal/NativeDateInput/utils/utils.js.map +1 -1
  552. package/internal/Popup/Popup/Popup.js +53 -10
  553. package/internal/Popup/Popup/Popup.js.map +1 -1
  554. package/internal/Popup/Popup.d.ts +15 -4
  555. package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
  556. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  557. package/internal/RenderContainer/RenderContainer/RenderContainer.js +19 -12
  558. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  559. package/internal/RenderContainer/RenderContainer.d.ts +3 -0
  560. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -5
  561. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  562. package/internal/RenderLayer/RenderLayer/RenderLayer.js +2 -2
  563. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  564. package/internal/ThemePlayground/Playground/Playground.js +2 -2
  565. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  566. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +10 -7
  567. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  568. package/internal/ThemePlayground/constants/constants.js +3 -0
  569. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  570. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +2 -2
  571. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  572. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  573. package/internal/ZIndex/ZIndex/ZIndex.js +55 -7
  574. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  575. package/internal/ZIndex/ZIndex.d.ts +7 -3
  576. package/internal/themes/DarkTheme/DarkTheme.js +2 -0
  577. package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
  578. package/internal/themes/DarkTheme.d.ts +2 -0
  579. package/internal/themes/DefaultTheme/DefaultTheme.js +32 -1
  580. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  581. package/internal/themes/DefaultTheme.d.ts +18 -0
  582. package/lib/date/InternalDate/InternalDate.js +7 -1
  583. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  584. package/lib/date/InternalDate.d.ts +2 -0
  585. package/lib/date/InternalDateTransformer/InternalDateTransformer.js +30 -0
  586. package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
  587. package/lib/date/InternalDateTransformer.d.ts +3 -0
  588. package/lib/date/InternalDateValidator/InternalDateValidator.js +6 -1
  589. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  590. package/lib/date/comparison/comparison.js +45 -0
  591. package/lib/date/comparison/comparison.js.map +1 -0
  592. package/lib/date/comparison/package.json +6 -0
  593. package/lib/date/comparison.d.ts +6 -0
  594. package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
  595. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  596. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
  597. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  598. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  599. package/lib/listenFocusOutside/listenFocusOutside.js +3 -2
  600. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  601. package/lib/locale/constants/constants.js +4 -1
  602. package/lib/locale/constants/constants.js.map +1 -1
  603. package/lib/locale/constants.d.ts +3 -0
  604. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +2 -0
  605. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  606. package/lib/theming/Emotion/Emotion.js +12 -3
  607. package/lib/theming/Emotion/Emotion.js.map +1 -1
  608. package/lib/theming/Emotion.d.ts +7 -1
  609. package/lib/theming/ThemeContext/ThemeContext.js +0 -2
  610. package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
  611. package/lib/theming/ThemeContext.d.ts +0 -2
  612. package/lib/theming/ThemeContext.md +3 -1
  613. package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js +33 -0
  614. package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js.map +1 -0
  615. package/lib/theming/themes/Theme2022DarkUpdate2024/package.json +6 -0
  616. package/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
  617. package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js +50 -0
  618. package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js.map +1 -0
  619. package/lib/theming/themes/Theme2022Update2024/package.json +6 -0
  620. package/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
  621. package/lib/widgets/StylesContainer/StylesContainer.js +65 -0
  622. package/lib/widgets/StylesContainer/StylesContainer.js.map +1 -0
  623. package/lib/widgets/StylesContainer/package.json +6 -0
  624. package/lib/widgets/StylesContainer.d.ts +13 -0
  625. package/lib/widgets/index/index.js +1 -0
  626. package/lib/widgets/index/index.js.map +1 -0
  627. package/lib/widgets/index/package.json +6 -0
  628. package/lib/widgets/index.d.ts +1 -0
  629. package/lib/widgets/package.json +6 -0
  630. package/package.json +3 -2
  631. package/cjs/internal/CommonWrapper/extractCommonProps.js.map +0 -1
  632. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js.map +0 -1
  633. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js.map +0 -1
  634. package/cjs/lib/theming/StyleContainer.d.ts +0 -4
  635. package/cjs/lib/theming/StyleContainer.js +0 -21
  636. package/cjs/lib/theming/StyleContainer.js.map +0 -1
  637. package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js.map +0 -1
  638. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +0 -1
  639. package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +0 -1
  640. package/lib/theming/StyleContainer/StyleContainer.js +0 -21
  641. package/lib/theming/StyleContainer/StyleContainer.js.map +0 -1
  642. package/lib/theming/StyleContainer/package.json +0 -6
  643. package/lib/theming/StyleContainer.d.ts +0 -4
  644. /package/cjs/internal/CommonWrapper/{extractCommonProps.js → utils/extractCommonProps.js} +0 -0
  645. /package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
  646. /package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/extractCommonProps.js +0 -0
  647. /package/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["Menu.tsx"],"names":["React","globalObject","isBrowser","isKeyArrowDown","isKeyArrowUp","isKeyEnter","MenuSeparator","ThemeFactory","getDOMRect","responsiveLayout","isNonNullable","isNullable","ScrollContainer","MenuItemDataTids","getRootNode","rootNode","addIconPaddingIfPartOfMenu","isIE11","createPropsGetter","isTheme2022","isIconPaddingEnabled","isInstanceOf","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","ThemeConsumer","ThemeProvider","EmotionConsumer","getStyles","isActiveElement","MenuNavigation","MenuContext","MenuDataTids","root","Menu","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","createRef","menuNavigation","content","focusOnRootElement","HTMLElement","focus","renderHeader","styles","emotion","cx","wrapper","headerWrapper","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","footerWrapper","footer","create","menuSeparatorMarginY","getChildList","menuItemsAtAnyLevel","children","preventIconsOffset","Children","map","child","index","modifiedChild","highlight","ref","refHighlighted","bind","cloneElement","onClick","select","onMouseEnter","onMouseLeave","unhighlight","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","count","calculateMaxHeight","parsedMaxHeight","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","highlighted","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","length","handleKeyDown","event","onKeyDown","defaultPrevented","preventDefault","up","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","componentWillUnmount","componentDidMount","componentDidUpdate","render","flags","renderMain","move","enter","navigate","reset","hasHighlightedItem","highlightItem","highlightByIndex","isEmpty","hasShadow","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","getAlignRightClass","mobileRoot","shadow","id","setRootNode","disableScrollContainer","scrollContainerMobile","navigation","onItemClick","originalRef","menuItem","shouldHandleHref","item","childrenToArray","href","target","open","location","step","cyclicSelection","activeElements","filter","indexOf","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","push","alignRight","alignRightIE11","alignRightIE11FixAutoWidth"],"mappings":"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","sourcesContent":["import React, { CSSProperties, HTMLAttributes } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { MenuItem, MenuItemDataTids, MenuItemProps } from '../../components/MenuItem';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { addIconPaddingIfPartOfMenu } from '../InternalMenu/addIconPaddingIfPartOfMenu';\nimport { isIE11 } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { isIconPaddingEnabled } from '../InternalMenu/isIconPaddingEnabled';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\nimport { ThemeConsumer, ThemeProvider } from '../../lib/theming/ThemeContext';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\n\nimport { getStyles } from './Menu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { MenuNavigation } from './MenuNavigation';\nimport { MenuContext } from './MenuContext';\n\nexport interface MenuProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasShadow?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'maxHeight'\n | 'hasShadow'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n public static displayName = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private highlighted: Nullable<MenuItem>;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n private menuItemsAtAnyLevel?: boolean;\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.menuItemsAtAnyLevel = getFullReactUIFlagsContext(flags).menuItemsAtAnyLevel;\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n return this.select(this.state.highlightedIndex, true, event);\n }\n\n /**\n * @public\n */\n public reset() {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.reset();\n } else {\n this.setState({ highlightedIndex: -1 });\n }\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n if (this.menuItemsAtAnyLevel) {\n return !!this.menuNavigation.highlightedItem;\n }\n return this.state.highlightedIndex !== -1;\n }\n\n public highlightItem(index: number) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.highlightByIndex(index);\n } else {\n this.highlight(index);\n }\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasShadow, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = isTheme2022(this.theme)\n ? {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n }\n : {};\n\n const isMobile = this.isMobileLayout;\n const styles = getStyles(this.emotion);\n return (\n <div\n data-tid={MenuDataTids.root}\n className={this.emotion.cx(getAlignRightClass(this.emotion)(this.props), {\n [styles.root(this.theme)]: true,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: hasShadow && !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={this.emotion.cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.getChildList()}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n );\n }\n\n private renderHeader = () => {\n const styles = getStyles(this.emotion);\n return (\n <div\n className={this.emotion.cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n const styles = getStyles(this.emotion);\n return (\n <div\n className={this.emotion.cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeProvider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeProvider>\n );\n };\n\n private getChildList = () => {\n if (this.menuItemsAtAnyLevel) {\n return this.props.children;\n }\n const enableIconPadding = isIconPaddingEnabled(this.props.children, this.props.preventIconsOffset);\n\n return React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\n return child;\n }\n\n const modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);\n\n if (isActiveElement(modifiedChild)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = modifiedChild.ref;\n if (highlight && typeof modifiedChild.ref !== 'string') {\n ref = this.refHighlighted.bind(this, modifiedChild.ref);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(modifiedChild, {\n ref,\n state: highlight ? 'hover' : modifiedChild.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: this.highlight.bind(this, index),\n onMouseLeave: this.unhighlight,\n });\n }\n\n return modifiedChild;\n });\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(globalObject) && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: ((menuItem: MenuItem | null) => any) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n }\n }\n\n private scrollToSelected = () => {\n const highlightedItem = this.menuItemsAtAnyLevel ? this.menuNavigation.highlightedItem : this.highlighted;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n if (isActiveElement(item) && isBrowser(globalObject)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n globalObject.open(item.props.href, item.props.target);\n } else {\n globalObject.location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick(event);\n }\n return true;\n }\n return false;\n }\n\n private highlight = (index: number) => {\n this.setState({ highlightedIndex: index });\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n if (this.menuItemsAtAnyLevel) {\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n } else {\n const children = childrenToArray(this.props.children);\n const activeElements = children.filter(isActiveElement);\n if (!activeElements.length) {\n return;\n }\n let index = this.state.highlightedIndex;\n do {\n index += step;\n\n if (!this.getProps().cyclicSelection && (index < 0 || index > children.length)) {\n return;\n }\n\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n this.setState({ highlightedIndex: index }, () => {\n switch (activeElements.indexOf(child)) {\n case 0:\n this.scrollToTop();\n break;\n case activeElements.length - 1:\n this.scrollToBottom();\n break;\n default:\n this.scrollToSelected();\n }\n });\n return;\n }\n } while (index !== this.state.highlightedIndex);\n }\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.select(event);\n } else if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(event);\n }\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getAlignRightClass = (emotion: Emotion) => (props: MenuProps) => {\n const styles = getStyles(emotion);\n\n if (props.align === 'right') {\n return emotion.cx({\n [styles.alignRight()]: !isIE11,\n [styles.alignRightIE11()]: isIE11,\n [styles.alignRightIE11FixAutoWidth()]: isIE11 && props.width === 'auto',\n });\n }\n\n return null;\n};\n"]}
1
+ {"version":3,"sources":["Menu.tsx"],"names":["React","globalObject","isBrowser","isKeyArrowDown","isKeyArrowUp","isKeyEnter","MenuSeparator","ThemeFactory","getDOMRect","responsiveLayout","isNonNullable","isNullable","ScrollContainer","MenuItemDataTids","getRootNode","rootNode","addIconPaddingIfPartOfMenu","isIE11","createPropsGetter","isTheme2022","isIconPaddingEnabled","isInstanceOf","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","ThemeContext","EmotionConsumer","getStyles","isActiveElement","MenuNavigation","MenuContext","MenuDataTids","root","Menu","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","createRef","menuNavigation","content","focusOnRootElement","HTMLElement","focus","renderHeader","styles","emotion","cx","wrapper","headerWrapper","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","footerWrapper","footer","create","menuSeparatorMarginY","getChildList","menuItemsAtAnyLevel","children","preventIconsOffset","Children","map","child","index","modifiedChild","highlight","ref","refHighlighted","bind","cloneElement","onClick","select","onMouseEnter","onMouseLeave","unhighlight","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","count","calculateMaxHeight","parsedMaxHeight","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","highlighted","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","length","handleKeyDown","event","onKeyDown","defaultPrevented","preventDefault","up","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","componentWillUnmount","componentDidMount","componentDidUpdate","render","flags","renderMain","move","enter","navigate","reset","hasHighlightedItem","highlightItem","highlightByIndex","isEmpty","hasShadow","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","getAlignRightClass","mobileRoot","shadow","id","setRootNode","disableScrollContainer","scrollContainerMobile","navigation","onItemClick","originalRef","menuItem","shouldHandleHref","item","childrenToArray","href","target","open","location","step","cyclicSelection","activeElements","filter","indexOf","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","push","alignRight","alignRightIE11","alignRightIE11FixAutoWidth"],"mappings":"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","sourcesContent":["import React, { CSSProperties, HTMLAttributes } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { MenuItem, MenuItemDataTids, MenuItemProps } from '../../components/MenuItem';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { addIconPaddingIfPartOfMenu } from '../InternalMenu/addIconPaddingIfPartOfMenu';\nimport { isIE11 } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { isIconPaddingEnabled } from '../InternalMenu/isIconPaddingEnabled';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\n\nimport { getStyles } from './Menu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { MenuNavigation } from './MenuNavigation';\nimport { MenuContext } from './MenuContext';\n\nexport interface MenuProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasShadow?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'maxHeight'\n | 'hasShadow'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n public static displayName = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private highlighted: Nullable<MenuItem>;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n private menuItemsAtAnyLevel?: boolean;\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.menuItemsAtAnyLevel = getFullReactUIFlagsContext(flags).menuItemsAtAnyLevel;\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n return this.select(this.state.highlightedIndex, true, event);\n }\n\n /**\n * @public\n */\n public reset() {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.reset();\n } else {\n this.setState({ highlightedIndex: -1 });\n }\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n if (this.menuItemsAtAnyLevel) {\n return !!this.menuNavigation.highlightedItem;\n }\n return this.state.highlightedIndex !== -1;\n }\n\n public highlightItem(index: number) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.highlightByIndex(index);\n } else {\n this.highlight(index);\n }\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasShadow, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = isTheme2022(this.theme)\n ? {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n }\n : {};\n\n const isMobile = this.isMobileLayout;\n const styles = getStyles(this.emotion);\n return (\n <div\n data-tid={MenuDataTids.root}\n className={this.emotion.cx(getAlignRightClass(this.emotion)(this.props), {\n [styles.root(this.theme)]: true,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: hasShadow && !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={this.emotion.cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.getChildList()}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n );\n }\n\n private renderHeader = () => {\n const styles = getStyles(this.emotion);\n return (\n <div\n className={this.emotion.cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n const styles = getStyles(this.emotion);\n return (\n <div\n className={this.emotion.cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private getChildList = () => {\n if (this.menuItemsAtAnyLevel) {\n return this.props.children;\n }\n const enableIconPadding = isIconPaddingEnabled(this.props.children, this.props.preventIconsOffset);\n\n return React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\n return child;\n }\n\n const modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);\n\n if (isActiveElement(modifiedChild)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = modifiedChild.ref;\n if (highlight && typeof modifiedChild.ref !== 'string') {\n ref = this.refHighlighted.bind(this, modifiedChild.ref);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(modifiedChild, {\n ref,\n state: highlight ? 'hover' : modifiedChild.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: this.highlight.bind(this, index),\n onMouseLeave: this.unhighlight,\n });\n }\n\n return modifiedChild;\n });\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(globalObject) && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: ((menuItem: MenuItem | null) => any) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n }\n }\n\n private scrollToSelected = () => {\n const highlightedItem = this.menuItemsAtAnyLevel ? this.menuNavigation.highlightedItem : this.highlighted;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n if (isActiveElement(item) && isBrowser(globalObject)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n globalObject.open(item.props.href, item.props.target);\n } else {\n globalObject.location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick(event);\n }\n return true;\n }\n return false;\n }\n\n private highlight = (index: number) => {\n this.setState({ highlightedIndex: index });\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n if (this.menuItemsAtAnyLevel) {\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n } else {\n const children = childrenToArray(this.props.children);\n const activeElements = children.filter(isActiveElement);\n if (!activeElements.length) {\n return;\n }\n let index = this.state.highlightedIndex;\n do {\n index += step;\n\n if (!this.getProps().cyclicSelection && (index < 0 || index > children.length)) {\n return;\n }\n\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n this.setState({ highlightedIndex: index }, () => {\n switch (activeElements.indexOf(child)) {\n case 0:\n this.scrollToTop();\n break;\n case activeElements.length - 1:\n this.scrollToBottom();\n break;\n default:\n this.scrollToSelected();\n }\n });\n return;\n }\n } while (index !== this.state.highlightedIndex);\n }\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.select(event);\n } else if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(event);\n }\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getAlignRightClass = (emotion: Emotion) => (props: MenuProps) => {\n const styles = getStyles(emotion);\n\n if (props.align === 'right') {\n return emotion.cx({\n [styles.alignRight()]: !isIE11,\n [styles.alignRightIE11()]: isIE11,\n [styles.alignRightIE11FixAutoWidth()]: isIE11 && props.width === 'auto',\n });\n }\n\n return null;\n};\n"]}
@@ -9,9 +9,10 @@ import { HideBodyVerticalScroll } from "../../HideBodyVerticalScroll";
9
9
  import { ZIndex } from "../../ZIndex";
10
10
  import { RenderLayer } from "../../RenderLayer";
11
11
  import { rootNode } from "../../../lib/rootNode";
12
- import { ThemeConsumer } from "../../../lib/theming/ThemeContext";
12
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
13
13
  import { EmotionConsumer } from "../../../lib/theming/Emotion";
14
14
  import { MobilePopupHeader } from "../MobilePopupHeader";
15
+ import { MobilePopupFooter } from "../MobilePopupFooter";
15
16
  import { getStyles } from "../MobilePopup.styles";
16
17
  export var MobilePopupDataTids = {
17
18
  root: 'MobilePopup__root',
@@ -45,7 +46,7 @@ export var MobilePopup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/funct
45
46
 
46
47
  return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
47
48
  _this2.emotion = emotion;
48
- return /*#__PURE__*/React.createElement(ThemeConsumer, null, function (theme) {
49
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
49
50
  _this2.theme = theme;
50
51
  return _this2.renderMain();
51
52
  });
@@ -79,7 +80,7 @@ export var MobilePopup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/funct
79
80
  caption: this.props.caption
80
81
  }, this.props.headerChildComponent), /*#__PURE__*/React.createElement("div", {
81
82
  className: styles.content(this.theme)
82
- }, this.props.children)), /*#__PURE__*/React.createElement("div", {
83
+ }, this.props.children), /*#__PURE__*/React.createElement(MobilePopupFooter, null, this.props.footerChildComponent)), /*#__PURE__*/React.createElement("div", {
83
84
  onClick: this.close,
84
85
  className: styles.bottomIndent()
85
86
  }))), /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["MobilePopup.tsx"],"names":["React","Transition","RenderContainer","HideBodyVerticalScroll","ZIndex","RenderLayer","rootNode","ThemeConsumer","EmotionConsumer","MobilePopupHeader","getStyles","MobilePopupDataTids","root","container","MobilePopup","close","props","onCloseRequest","render","emotion","theme","renderMain","styles","content","id","zIndex","opened","onClose","wrapper","setRootNode","caption","headerChildComponent","children","bottomIndent","bg","withoutRenderContainer","Component","__KONTUR_REACT_UI__","displayName","defaultRootNode"],"mappings":"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","sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport { Transition } from 'react-transition-group';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { Theme } from '../../lib/theming/Theme';\nimport { RenderContainer } from '../RenderContainer';\nimport { HideBodyVerticalScroll } from '../HideBodyVerticalScroll';\nimport { ZIndex } from '../ZIndex';\nimport { RenderLayer } from '../RenderLayer';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeConsumer } from '../../lib/theming/ThemeContext';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\n\nimport { MobilePopupHeader } from './MobilePopupHeader';\nimport { getStyles } from './MobilePopup.styles';\n\ninterface MobilePopupProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n /**\n * Функция, вызываемая при закрытии всплывающего окна\n */\n onClose?: () => void;\n /**\n * Заголовок всплывающего окна, располагается в шапке\n */\n caption?: string;\n /**\n * Шапка всплывающего окна\n */\n headerChildComponent?: React.ReactNode;\n /**\n * Позволяет получить контент всплывающего окна без обёртки в виде `RenderContainer`\n */\n withoutRenderContainer?: boolean;\n /**\n * Функция, вызываемая при клике по вуали\n */\n onCloseRequest?: () => void;\n /**\n * Позволяет контролировать текущее состояние всплывающего окна\n */\n opened: boolean;\n}\n\nexport const MobilePopupDataTids = {\n root: 'MobilePopup__root',\n container: 'MobilePopup__container',\n} as const;\n\n@rootNode\nexport class MobilePopup extends React.Component<MobilePopupProps> {\n public static __KONTUR_REACT_UI__ = 'MobileMenuHeader';\n public static displayName = 'MobileMenuHeader';\n\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n\n private theme!: Theme;\n private emotion!: Emotion;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n public renderMain() {\n const styles = getStyles(this.emotion);\n const content = (\n <ZIndex id={this.props.id} className={styles.zIndex()} priority={'MobilePopup'}>\n <Transition in={this.props.opened} onExited={this.props.onClose} mountOnEnter unmountOnExit timeout={0}>\n <div className={styles.wrapper()}>\n <RenderLayer onClickOutside={this.close}>\n <div\n ref={this.setRootNode}\n data-tid={MobilePopupDataTids.container}\n className={styles.container(this.theme)}\n >\n <div data-tid={MobilePopupDataTids.root} className={styles.root(this.theme)}>\n <MobilePopupHeader caption={this.props.caption}>{this.props.headerChildComponent}</MobilePopupHeader>\n <div className={styles.content(this.theme)}>{this.props.children}</div>\n </div>\n <div onClick={this.close} className={styles.bottomIndent()} />\n </div>\n </RenderLayer>\n <div className={styles.bg()} />\n <HideBodyVerticalScroll />\n </div>\n </Transition>\n </ZIndex>\n );\n\n if (this.props.withoutRenderContainer) {\n return content;\n }\n\n return <RenderContainer>{content}</RenderContainer>;\n }\n\n public close = () => {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest();\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["MobilePopup.tsx"],"names":["React","Transition","RenderContainer","HideBodyVerticalScroll","ZIndex","RenderLayer","rootNode","ThemeContext","EmotionConsumer","MobilePopupHeader","MobilePopupFooter","getStyles","MobilePopupDataTids","root","container","MobilePopup","close","props","onCloseRequest","render","emotion","theme","renderMain","styles","content","id","zIndex","opened","onClose","wrapper","setRootNode","caption","headerChildComponent","children","footerChildComponent","bottomIndent","bg","withoutRenderContainer","Component","__KONTUR_REACT_UI__","displayName","defaultRootNode"],"mappings":"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","sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport { Transition } from 'react-transition-group';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { Theme } from '../../lib/theming/Theme';\nimport { RenderContainer } from '../RenderContainer';\nimport { HideBodyVerticalScroll } from '../HideBodyVerticalScroll';\nimport { ZIndex } from '../ZIndex';\nimport { RenderLayer } from '../RenderLayer';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\n\nimport { MobilePopupHeader } from './MobilePopupHeader';\nimport { MobilePopupFooter } from './MobilePopupFooter';\nimport { getStyles } from './MobilePopup.styles';\n\ninterface MobilePopupProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n /**\n * Функция, вызываемая при закрытии всплывающего окна\n */\n onClose?: () => void;\n /**\n * Заголовок всплывающего окна, располагается в шапке\n */\n caption?: string;\n /**\n * Шапка всплывающего окна\n */\n headerChildComponent?: React.ReactNode;\n /**\n * Подвал всплывающего окна\n */\n footerChildComponent?: React.ReactNode;\n /**\n * Позволяет получить контент всплывающего окна без обёртки в виде `RenderContainer`\n */\n withoutRenderContainer?: boolean;\n /**\n * Функция, вызываемая при клике по вуали\n */\n onCloseRequest?: () => void;\n /**\n * Позволяет контролировать текущее состояние всплывающего окна\n */\n opened: boolean;\n}\n\nexport const MobilePopupDataTids = {\n root: 'MobilePopup__root',\n container: 'MobilePopup__container',\n} as const;\n\n@rootNode\nexport class MobilePopup extends React.Component<MobilePopupProps> {\n public static __KONTUR_REACT_UI__ = 'MobileMenuHeader';\n public static displayName = 'MobileMenuHeader';\n\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n\n private theme!: Theme;\n private emotion!: Emotion;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n public renderMain() {\n const styles = getStyles(this.emotion);\n const content = (\n <ZIndex id={this.props.id} className={styles.zIndex()} priority={'MobilePopup'}>\n <Transition in={this.props.opened} onExited={this.props.onClose} mountOnEnter unmountOnExit timeout={0}>\n <div className={styles.wrapper()}>\n <RenderLayer onClickOutside={this.close}>\n <div\n ref={this.setRootNode}\n data-tid={MobilePopupDataTids.container}\n className={styles.container(this.theme)}\n >\n <div data-tid={MobilePopupDataTids.root} className={styles.root(this.theme)}>\n <MobilePopupHeader caption={this.props.caption}>{this.props.headerChildComponent}</MobilePopupHeader>\n <div className={styles.content(this.theme)}>{this.props.children}</div>\n <MobilePopupFooter>{this.props.footerChildComponent}</MobilePopupFooter>\n </div>\n <div onClick={this.close} className={styles.bottomIndent()} />\n </div>\n </RenderLayer>\n <div className={styles.bg()} />\n <HideBodyVerticalScroll />\n </div>\n </Transition>\n </ZIndex>\n );\n\n if (this.props.withoutRenderContainer) {\n return content;\n }\n\n return <RenderContainer>{content}</RenderContainer>;\n }\n\n public close = () => {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest();\n }\n };\n}\n"]}
@@ -12,6 +12,10 @@ interface MobilePopupProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {
12
12
  * Шапка всплывающего окна
13
13
  */
14
14
  headerChildComponent?: React.ReactNode;
15
+ /**
16
+ * Подвал всплывающего окна
17
+ */
18
+ footerChildComponent?: React.ReactNode;
15
19
  /**
16
20
  * Позволяет получить контент всплывающего окна без обёртки в виде `RenderContainer`
17
21
  */
@@ -0,0 +1,37 @@
1
+ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
2
+ import React from 'react';
3
+ import { ThemeContext } from "../../../../lib/theming/ThemeContext";
4
+ import { jsStyles } from "../MobilePopupFooter.styles";
5
+ export var MobilePopupFooter = /*#__PURE__*/function (_React$Component) {
6
+ _inheritsLoose(MobilePopupFooter, _React$Component);
7
+
8
+ function MobilePopupFooter() {
9
+ return _React$Component.apply(this, arguments) || this;
10
+ }
11
+
12
+ var _proto = MobilePopupFooter.prototype;
13
+
14
+ _proto.render = function render() {
15
+ var _this = this;
16
+
17
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
18
+ _this.theme = theme;
19
+ return _this.renderMain();
20
+ });
21
+ };
22
+
23
+ _proto.renderMain = function renderMain() {
24
+ var children = this.props.children;
25
+
26
+ if (!children || ! /*#__PURE__*/React.isValidElement(children)) {
27
+ return null;
28
+ }
29
+
30
+ return /*#__PURE__*/React.createElement("div", {
31
+ className: jsStyles.root(this.theme)
32
+ }, children);
33
+ };
34
+
35
+ return MobilePopupFooter;
36
+ }(React.Component);
37
+ MobilePopupFooter.__KONTUR_REACT_UI__ = 'MobileMenuFooter';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MobilePopupFooter.tsx"],"names":["React","ThemeContext","jsStyles","MobilePopupFooter","render","theme","renderMain","children","props","isValidElement","root","Component","__KONTUR_REACT_UI__"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAGA,SAASC,YAAT,QAA6B,mCAA7B;;AAEA,SAASC,QAAT,QAAyB,4BAAzB;;AAEA,WAAaC,iBAAb;;;;;AAKSC,EAAAA,MALT,GAKE,kBAAgB;AACd;AACE,0BAAC,YAAD,CAAc,QAAd;AACG,gBAACC,KAAD,EAAW;AACV,QAAA,KAAI,CAACA,KAAL,GAAaA,KAAb;AACA,eAAO,KAAI,CAACC,UAAL,EAAP;AACD,OAJH,CADF;;;AAQD,GAdH;;AAgBUA,EAAAA,UAhBV,GAgBE,sBAAqB;AACnB,QAAQC,QAAR,GAAqB,KAAKC,KAA1B,CAAQD,QAAR;;AAEA,QAAI,CAACA,QAAD,IAAa,eAACP,KAAK,CAACS,cAAN,CAAqBF,QAArB,CAAlB,EAAkD;AAChD,aAAO,IAAP;AACD;;AAED,wBAAO,6BAAK,SAAS,EAAEL,QAAQ,CAACQ,IAAT,CAAc,KAAKL,KAAnB,CAAhB,IAA4CE,QAA5C,CAAP;AACD,GAxBH,4BAAuCP,KAAK,CAACW,SAA7C,EAAaR,iB,CACGS,mB,GAAsB,kB","sourcesContent":["import React from 'react';\n\nimport { Theme } from '../../../lib/theming/Theme';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\n\nimport { jsStyles } from './MobilePopupFooter.styles';\n\nexport class MobilePopupFooter extends React.Component {\n public static __KONTUR_REACT_UI__ = 'MobileMenuFooter';\n\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { children } = this.props;\n\n if (!children || !React.isValidElement(children)) {\n return null;\n }\n\n return <div className={jsStyles.root(this.theme)}>{children}</div>;\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../../cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js",
3
+ "module": "MobilePopupFooter",
4
+ "types": "../MobilePopupFooter.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export declare class MobilePopupFooter extends React.Component {
3
+ static __KONTUR_REACT_UI__: string;
4
+ private theme;
5
+ render(): JSX.Element;
6
+ private renderMain;
7
+ }
@@ -0,0 +1,11 @@
1
+ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
+
3
+ var _templateObject;
4
+
5
+ import { css, memoizeStyle } from "../../../../lib/theming/Emotion";
6
+ var styles = {
7
+ root: function root(t) {
8
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n position: relative;\n display: flex;\n flex-direction: column;\n padding: ", ";\n "])), t.mobilePopupHeaderPadding);
9
+ }
10
+ };
11
+ export var jsStyles = memoizeStyle(styles);
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MobilePopupFooter.styles.ts"],"names":["css","memoizeStyle","styles","root","t","mobilePopupHeaderPadding","jsStyles"],"mappings":"oHAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,8BAAlC;;;AAGA,IAAMC,MAAM,GAAG;AACbC,EAAAA,IADa,gBACRC,CADQ,EACE;AACb,WAAOJ,GAAP;;;;AAIaI,IAAAA,CAAC,CAACC,wBAJf;;AAMD,GARY,EAAf;;;AAWA,OAAO,IAAMC,QAAQ,GAAGL,YAAY,CAACC,MAAD,CAA7B","sourcesContent":["import { css, memoizeStyle } from '../../../lib/theming/Emotion';\nimport { Theme } from '../../../lib/theming/Theme';\n\nconst styles = {\n root(t: Theme) {\n return css`\n position: relative;\n display: flex;\n flex-direction: column;\n padding: ${t.mobilePopupHeaderPadding};\n `;\n },\n};\n\nexport const jsStyles = memoizeStyle(styles);\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../../cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js",
3
+ "module": "MobilePopupFooter.styles",
4
+ "types": "../MobilePopupFooter.styles.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,4 @@
1
+ import { Theme } from '../../../lib/theming/Theme';
2
+ export declare const jsStyles: {
3
+ root(t: Theme): string;
4
+ };
@@ -0,0 +1 @@
1
+ export * from "../MobilePopupFooter";
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAd","sourcesContent":["export * from './MobilePopupFooter';\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../../cjs/internal/MobilePopup/MobilePopupFooter/index.js",
3
+ "module": "index",
4
+ "types": "../index.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1 @@
1
+ export * from './MobilePopupFooter';
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../cjs/internal/MobilePopup/MobilePopupFooter/index.js",
3
+ "module": "index",
4
+ "types": "index.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -2,7 +2,7 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
2
2
  import React from 'react';
3
3
  import { isNonNullable } from "../../../../lib/utils";
4
4
  import { EmotionConsumer } from "../../../../lib/theming/Emotion";
5
- import { ThemeConsumer } from "../../../../lib/theming/ThemeContext";
5
+ import { ThemeContext } from "../../../../lib/theming/ThemeContext";
6
6
  import { getStyles } from "../MobilePopupHeader.styles";
7
7
  export var MobilePopupHeader = /*#__PURE__*/function (_React$Component) {
8
8
  _inheritsLoose(MobilePopupHeader, _React$Component);
@@ -18,7 +18,7 @@ export var MobilePopupHeader = /*#__PURE__*/function (_React$Component) {
18
18
 
19
19
  return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
20
20
  _this.emotion = emotion;
21
- return /*#__PURE__*/React.createElement(ThemeConsumer, null, function (theme) {
21
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
22
22
  _this.theme = theme;
23
23
  return _this.renderMain();
24
24
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["MobilePopupHeader.tsx"],"names":["React","isNonNullable","EmotionConsumer","ThemeConsumer","getStyles","MobilePopupHeader","render","emotion","theme","renderMain","props","caption","children","styles","cx","root","rootWithoutContent","container","captionWithChildren","isValidElement","Component","__KONTUR_REACT_UI__","displayName"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAGA,SAASC,aAAT,QAA8B,oBAA9B;;AAEA,SAASC,eAAT,QAAgC,8BAAhC;AACA,SAASC,aAAT,QAA8B,mCAA9B;;AAEA,SAASC,SAAT,QAA0B,4BAA1B;;;;;;;;;AASA,WAAaC,iBAAb;;;;;;;AAOSC,EAAAA,MAPT,GAOE,kBAAgB;AACd;AACE,0BAAC,eAAD;AACG,gBAACC,OAAD,EAAa;AACZ,QAAA,KAAI,CAACA,OAAL,GAAeA,OAAf;AACA;AACE,8BAAC,aAAD;AACG,oBAACC,KAAD,EAAW;AACV,YAAA,KAAI,CAACA,KAAL,GAAaA,KAAb;AACA,mBAAO,KAAI,CAACC,UAAL,EAAP;AACD,WAJH,CADF;;;AAQD,OAXH,CADF;;;AAeD,GAvBH;;AAyBUA,EAAAA,UAzBV,GAyBE,sBAAqB;AACnB,sBAA8B,KAAKC,KAAnC,CAAQC,OAAR,eAAQA,OAAR,CAAiBC,QAAjB,eAAiBA,QAAjB;AACA,QAAMC,MAAM,GAAGT,SAAS,CAAC,KAAKG,OAAN,CAAxB;;AAEA;AACE;AACE,QAAA,SAAS,EAAE,KAAKA,OAAL,CAAaO,EAAb;AACRD,QAAAA,MAAM,CAACE,IAAP,CAAY,KAAKP,KAAjB,CADQ,IACkB,IADlB;AAERK,QAAAA,MAAM,CAACG,kBAAP,EAFQ,IAEsB,CAACL,OAAD,IAAY,CAACC,QAFnC,oBADb;;;AAME,mCAAK,SAAS,EAAEC,MAAM,CAACI,SAAP,EAAhB;AACGN,MAAAA,OAAO;AACN;AACE,QAAA,SAAS,EAAE,KAAKJ,OAAL,CAAaO,EAAb;AACRD,QAAAA,MAAM,CAACF,OAAP,CAAe,KAAKH,KAApB,CADQ,IACqB,IADrB;AAERK,QAAAA,MAAM,CAACK,mBAAP,EAFQ,IAEuBjB,aAAa,CAACW,QAAD,CAFpC,qBADb;;;AAMGD,MAAAA,OANH,CAFJ;;;AAWG,mBAAAX,KAAK,CAACmB,cAAN,CAAqBP,QAArB,kBAAkC,iCAAMA,QAAN,CAXrC,CANF,CADF;;;;AAsBD,GAnDH,4BAAuCZ,KAAK,CAACoB,SAA7C,EAAaf,iB,CACGgB,mB,GAAsB,kB,CADzBhB,iB,CAEGiB,W,GAAc,kB","sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isNonNullable } from '../../../lib/utils';\nimport { Theme } from '../../../lib/theming/Theme';\nimport { EmotionConsumer } from '../../../lib/theming/Emotion';\nimport { ThemeConsumer } from '../../../lib/theming/ThemeContext';\n\nimport { getStyles } from './MobilePopupHeader.styles';\n\ninterface MobilePopupHeaderProps {\n /**\n * Заголовок шапки\n */\n caption?: string;\n}\n\nexport class MobilePopupHeader extends React.Component<MobilePopupHeaderProps> {\n public static __KONTUR_REACT_UI__ = 'MobileMenuHeader';\n public static displayName = 'MobileMenuHeader';\n\n private theme!: Theme;\n private emotion!: Emotion;\n\n public render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const { caption, children } = this.props;\n const styles = getStyles(this.emotion);\n\n return (\n <div\n className={this.emotion.cx({\n [styles.root(this.theme)]: true,\n [styles.rootWithoutContent()]: !caption && !children,\n })}\n >\n <div className={styles.container()}>\n {caption && (\n <div\n className={this.emotion.cx({\n [styles.caption(this.theme)]: true,\n [styles.captionWithChildren()]: isNonNullable(children),\n })}\n >\n {caption}\n </div>\n )}\n {React.isValidElement(children) && <div>{children}</div>}\n </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["MobilePopupHeader.tsx"],"names":["React","isNonNullable","EmotionConsumer","ThemeContext","getStyles","MobilePopupHeader","render","emotion","theme","renderMain","props","caption","children","styles","cx","root","rootWithoutContent","container","captionWithChildren","isValidElement","Component","__KONTUR_REACT_UI__","displayName"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAGA,SAASC,aAAT,QAA8B,oBAA9B;;AAEA,SAASC,eAAT,QAAgC,8BAAhC;AACA,SAASC,YAAT,QAA6B,mCAA7B;;AAEA,SAASC,SAAT,QAA0B,4BAA1B;;;;;;;;;AASA,WAAaC,iBAAb;;;;;;;AAOSC,EAAAA,MAPT,GAOE,kBAAgB;AACd;AACE,0BAAC,eAAD;AACG,gBAACC,OAAD,EAAa;AACZ,QAAA,KAAI,CAACA,OAAL,GAAeA,OAAf;AACA;AACE,8BAAC,YAAD,CAAc,QAAd;AACG,oBAACC,KAAD,EAAW;AACV,YAAA,KAAI,CAACA,KAAL,GAAaA,KAAb;AACA,mBAAO,KAAI,CAACC,UAAL,EAAP;AACD,WAJH,CADF;;;AAQD,OAXH,CADF;;;AAeD,GAvBH;;AAyBUA,EAAAA,UAzBV,GAyBE,sBAAqB;AACnB,sBAA8B,KAAKC,KAAnC,CAAQC,OAAR,eAAQA,OAAR,CAAiBC,QAAjB,eAAiBA,QAAjB;AACA,QAAMC,MAAM,GAAGT,SAAS,CAAC,KAAKG,OAAN,CAAxB;;AAEA;AACE;AACE,QAAA,SAAS,EAAE,KAAKA,OAAL,CAAaO,EAAb;AACRD,QAAAA,MAAM,CAACE,IAAP,CAAY,KAAKP,KAAjB,CADQ,IACkB,IADlB;AAERK,QAAAA,MAAM,CAACG,kBAAP,EAFQ,IAEsB,CAACL,OAAD,IAAY,CAACC,QAFnC,oBADb;;;AAME,mCAAK,SAAS,EAAEC,MAAM,CAACI,SAAP,EAAhB;AACGN,MAAAA,OAAO;AACN;AACE,QAAA,SAAS,EAAE,KAAKJ,OAAL,CAAaO,EAAb;AACRD,QAAAA,MAAM,CAACF,OAAP,CAAe,KAAKH,KAApB,CADQ,IACqB,IADrB;AAERK,QAAAA,MAAM,CAACK,mBAAP,EAFQ,IAEuBjB,aAAa,CAACW,QAAD,CAFpC,qBADb;;;AAMGD,MAAAA,OANH,CAFJ;;;AAWG,mBAAAX,KAAK,CAACmB,cAAN,CAAqBP,QAArB,kBAAkC,iCAAMA,QAAN,CAXrC,CANF,CADF;;;;AAsBD,GAnDH,4BAAuCZ,KAAK,CAACoB,SAA7C,EAAaf,iB,CACGgB,mB,GAAsB,kB,CADzBhB,iB,CAEGiB,W,GAAc,kB","sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isNonNullable } from '../../../lib/utils';\nimport { Theme } from '../../../lib/theming/Theme';\nimport { EmotionConsumer } from '../../../lib/theming/Emotion';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\n\nimport { getStyles } from './MobilePopupHeader.styles';\n\ninterface MobilePopupHeaderProps {\n /**\n * Заголовок шапки\n */\n caption?: string;\n}\n\nexport class MobilePopupHeader extends React.Component<MobilePopupHeaderProps> {\n public static __KONTUR_REACT_UI__ = 'MobileMenuHeader';\n public static displayName = 'MobileMenuHeader';\n\n private theme!: Theme;\n private emotion!: Emotion;\n\n public render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderMain() {\n const { caption, children } = this.props;\n const styles = getStyles(this.emotion);\n\n return (\n <div\n className={this.emotion.cx({\n [styles.root(this.theme)]: true,\n [styles.rootWithoutContent()]: !caption && !children,\n })}\n >\n <div className={styles.container()}>\n {caption && (\n <div\n className={this.emotion.cx({\n [styles.caption(this.theme)]: true,\n [styles.captionWithChildren()]: isNonNullable(children),\n })}\n >\n {caption}\n </div>\n )}\n {React.isValidElement(children) && <div>{children}</div>}\n </div>\n </div>\n );\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { getMonthInHumanFormat } from "../../../components/Calendar/CalendarUtils";
2
3
  export var getDateForNative = function getDateForNative(componentDate) {
3
4
  if (!componentDate) {
4
5
  return undefined;
@@ -35,7 +36,7 @@ export var upMonthOfShape = function upMonthOfShape(DateShape) {
35
36
  }
36
37
 
37
38
  return _extends({}, DateShape, {
38
- month: DateShape.month + 1
39
+ month: getMonthInHumanFormat(DateShape.month)
39
40
  });
40
41
  };
41
42
  export var getShapeFromNativeDate = function getShapeFromNativeDate(nativeDate) {
@@ -1 +1 @@
1
- {"version":3,"sources":["utils.ts"],"names":["getDateForNative","componentDate","undefined","splittedDate","split","getDateForComponent","nativeDate","getNativeDateFromShape","date","month","year","map","x","toString","padStart","upMonthOfShape","DateShape","getShapeFromNativeDate","Number"],"mappings":";;;AAGA,OAAO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,aAAD,EAAqC;AACnE,MAAI,CAACA,aAAL,EAAoB;AAClB,WAAOC,SAAP;AACD;;AAED,MAAMC,YAAY,GAAGF,aAAa,CAACG,KAAd,CAAoB,GAApB,CAArB;;AAEA,SAAUD,YAAY,CAAC,CAAD,CAAtB,SAA6BA,YAAY,CAAC,CAAD,CAAzC,SAAgDA,YAAY,CAAC,CAAD,CAA5D;AACD,CARM;;AAUP,OAAO,IAAME,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,UAAD,EAAkC;AACnE,MAAI,CAACA,UAAL,EAAiB;AACf,WAAO,EAAP;AACD;;AAED,MAAMH,YAAY,GAAGG,UAAU,CAACF,KAAX,CAAiB,GAAjB,CAArB;;AAEA,SAAUD,YAAY,CAAC,CAAD,CAAtB,SAA6BA,YAAY,CAAC,CAAD,CAAzC,SAAgDA,YAAY,CAAC,CAAD,CAA5D;AACD,CARM;;AAUP,OAAO,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACN,aAAD,EAAyD;AAC7F,MAAI,CAACA,aAAL,EAAoB;AAClB,WAAOC,SAAP;AACD;AACD,aAA4B,CAACD,aAAa,CAACO,IAAf,EAAqBP,aAAa,CAACQ,KAAnC,EAA0CR,aAAa,CAACS,IAAxD,EAA8DC,GAA9D,CAAkE,UAACC,CAAD,UAAOA,CAAC,CAACC,QAAF,EAAP,EAAlE,CAA5B,CAAOL,IAAP,WAAaC,KAAb,WAAoBC,IAApB;;AAEA,SAAUA,IAAI,CAACI,QAAL,CAAc,CAAd,EAAiB,GAAjB,CAAV,SAAmCL,KAAK,CAACK,QAAN,CAAe,CAAf,EAAkB,GAAlB,CAAnC,SAA6DN,IAAI,CAACM,QAAL,CAAc,CAAd,EAAiB,GAAjB,CAA7D;AACD,CAPM;;AASP,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,SAAD,EAA6E;AACzG,MAAI,CAACA,SAAL,EAAgB;AACd,WAAOd,SAAP;AACD;;AAED,sBAAYc,SAAZ,IAAuBP,KAAK,EAAEO,SAAS,CAACP,KAAV,GAAkB,CAAhD;AACD,CANM;;AAQP,OAAO,IAAMQ,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACX,UAAD,EAAiE;AACrG,MAAI,CAACA,UAAL,EAAiB;AACf,WAAOJ,SAAP;AACD;;AAED,MAAMC,YAAY,GAAGG,UAAU,CAACF,KAAX,CAAiB,GAAjB,EAAsBO,GAAtB,CAA0B,UAACH,IAAD,UAAUU,MAAM,CAACV,IAAD,CAAhB,EAA1B,CAArB;;AAEA,SAAO,EAAEE,IAAI,EAAEP,YAAY,CAAC,CAAD,CAApB,EAAyBM,KAAK,EAAEN,YAAY,CAAC,CAAD,CAA5C,EAAiDK,IAAI,EAAEL,YAAY,CAAC,CAAD,CAAnE,EAAP;AACD,CARM","sourcesContent":["import { Nullable } from '../../typings/utility-types';\nimport { CalendarDateShape } from '../../components/Calendar/CalendarDateShape';\n\nexport const getDateForNative = (componentDate: Nullable<string>) => {\n if (!componentDate) {\n return undefined;\n }\n\n const splittedDate = componentDate.split('.');\n\n return `${splittedDate[2]}-${splittedDate[1]}-${splittedDate[0]}`;\n};\n\nexport const getDateForComponent = (nativeDate: Nullable<string>) => {\n if (!nativeDate) {\n return '';\n }\n\n const splittedDate = nativeDate.split('-');\n\n return `${splittedDate[2]}.${splittedDate[1]}.${splittedDate[0]}`;\n};\n\nexport const getNativeDateFromShape = (componentDate: CalendarDateShape | undefined | null) => {\n if (!componentDate) {\n return undefined;\n }\n const [date, month, year] = [componentDate.date, componentDate.month, componentDate.year].map((x) => x.toString());\n\n return `${year.padStart(4, '0')}-${month.padStart(2, '0')}-${date.padStart(2, '0')}`;\n};\n\nexport const upMonthOfShape = (DateShape: CalendarDateShape | undefined): CalendarDateShape | undefined => {\n if (!DateShape) {\n return undefined;\n }\n\n return { ...DateShape, month: DateShape.month + 1 };\n};\n\nexport const getShapeFromNativeDate = (nativeDate: Nullable<string>): CalendarDateShape | undefined => {\n if (!nativeDate) {\n return undefined;\n }\n\n const splittedDate = nativeDate.split('-').map((date) => Number(date));\n\n return { year: splittedDate[0], month: splittedDate[1], date: splittedDate[2] };\n};\n"]}
1
+ {"version":3,"sources":["utils.ts"],"names":["getMonthInHumanFormat","getDateForNative","componentDate","undefined","splittedDate","split","getDateForComponent","nativeDate","getNativeDateFromShape","date","month","year","map","x","toString","padStart","upMonthOfShape","DateShape","getShapeFromNativeDate","Number"],"mappings":"0DAAA,SAASA,qBAAT,QAAsC,yCAAtC;;;;AAIA,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,aAAD,EAAqC;AACnE,MAAI,CAACA,aAAL,EAAoB;AAClB,WAAOC,SAAP;AACD;;AAED,MAAMC,YAAY,GAAGF,aAAa,CAACG,KAAd,CAAoB,GAApB,CAArB;;AAEA,SAAUD,YAAY,CAAC,CAAD,CAAtB,SAA6BA,YAAY,CAAC,CAAD,CAAzC,SAAgDA,YAAY,CAAC,CAAD,CAA5D;AACD,CARM;;AAUP,OAAO,IAAME,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,UAAD,EAAkC;AACnE,MAAI,CAACA,UAAL,EAAiB;AACf,WAAO,EAAP;AACD;;AAED,MAAMH,YAAY,GAAGG,UAAU,CAACF,KAAX,CAAiB,GAAjB,CAArB;;AAEA,SAAUD,YAAY,CAAC,CAAD,CAAtB,SAA6BA,YAAY,CAAC,CAAD,CAAzC,SAAgDA,YAAY,CAAC,CAAD,CAA5D;AACD,CARM;;AAUP,OAAO,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACN,aAAD,EAAyD;AAC7F,MAAI,CAACA,aAAL,EAAoB;AAClB,WAAOC,SAAP;AACD;AACD,aAA4B,CAACD,aAAa,CAACO,IAAf,EAAqBP,aAAa,CAACQ,KAAnC,EAA0CR,aAAa,CAACS,IAAxD,EAA8DC,GAA9D,CAAkE,UAACC,CAAD,UAAOA,CAAC,CAACC,QAAF,EAAP,EAAlE,CAA5B,CAAOL,IAAP,WAAaC,KAAb,WAAoBC,IAApB;;AAEA,SAAUA,IAAI,CAACI,QAAL,CAAc,CAAd,EAAiB,GAAjB,CAAV,SAAmCL,KAAK,CAACK,QAAN,CAAe,CAAf,EAAkB,GAAlB,CAAnC,SAA6DN,IAAI,CAACM,QAAL,CAAc,CAAd,EAAiB,GAAjB,CAA7D;AACD,CAPM;;AASP,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,SAAD,EAA6E;AACzG,MAAI,CAACA,SAAL,EAAgB;AACd,WAAOd,SAAP;AACD;;AAED,sBAAYc,SAAZ,IAAuBP,KAAK,EAAEV,qBAAqB,CAACiB,SAAS,CAACP,KAAX,CAAnD;AACD,CANM;;AAQP,OAAO,IAAMQ,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACX,UAAD,EAAiE;AACrG,MAAI,CAACA,UAAL,EAAiB;AACf,WAAOJ,SAAP;AACD;;AAED,MAAMC,YAAY,GAAGG,UAAU,CAACF,KAAX,CAAiB,GAAjB,EAAsBO,GAAtB,CAA0B,UAACH,IAAD,UAAUU,MAAM,CAACV,IAAD,CAAhB,EAA1B,CAArB;;AAEA,SAAO,EAAEE,IAAI,EAAEP,YAAY,CAAC,CAAD,CAApB,EAAyBM,KAAK,EAAEN,YAAY,CAAC,CAAD,CAA5C,EAAiDK,IAAI,EAAEL,YAAY,CAAC,CAAD,CAAnE,EAAP;AACD,CARM","sourcesContent":["import { getMonthInHumanFormat } from '../../components/Calendar/CalendarUtils';\nimport { Nullable } from '../../typings/utility-types';\nimport { CalendarDateShape } from '../../components/Calendar/CalendarDateShape';\n\nexport const getDateForNative = (componentDate: Nullable<string>) => {\n if (!componentDate) {\n return undefined;\n }\n\n const splittedDate = componentDate.split('.');\n\n return `${splittedDate[2]}-${splittedDate[1]}-${splittedDate[0]}`;\n};\n\nexport const getDateForComponent = (nativeDate: Nullable<string>) => {\n if (!nativeDate) {\n return '';\n }\n\n const splittedDate = nativeDate.split('-');\n\n return `${splittedDate[2]}.${splittedDate[1]}.${splittedDate[0]}`;\n};\n\nexport const getNativeDateFromShape = (componentDate: CalendarDateShape | undefined | null) => {\n if (!componentDate) {\n return undefined;\n }\n const [date, month, year] = [componentDate.date, componentDate.month, componentDate.year].map((x) => x.toString());\n\n return `${year.padStart(4, '0')}-${month.padStart(2, '0')}-${date.padStart(2, '0')}`;\n};\n\nexport const upMonthOfShape = (DateShape: CalendarDateShape | undefined): CalendarDateShape | undefined => {\n if (!DateShape) {\n return undefined;\n }\n\n return { ...DateShape, month: getMonthInHumanFormat(DateShape.month) };\n};\n\nexport const getShapeFromNativeDate = (nativeDate: Nullable<string>): CalendarDateShape | undefined => {\n if (!nativeDate) {\n return undefined;\n }\n\n const splittedDate = nativeDate.split('-').map((date) => Number(date));\n\n return { year: splittedDate[0], month: splittedDate[1], date: splittedDate[2] };\n};\n"]}
@@ -26,7 +26,8 @@ import { callChildRef } from "../../../lib/callChildRef/callChildRef";
26
26
  import { isInstanceWithAnchorElement } from "../../../lib/InstanceWithAnchorElement";
27
27
  import { createPropsGetter } from "../../../lib/createPropsGetter";
28
28
  import { isInstanceOf } from "../../../lib/isInstanceOf";
29
- import { ThemeConsumer } from "../../../lib/theming/ThemeContext";
29
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
30
+ import { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext";
30
31
  import { PopupPin } from "../PopupPin";
31
32
  import { PopupHelper } from "../PopupHelper";
32
33
  import { getStyles } from "../Popup.styles";
@@ -35,8 +36,10 @@ var TRANSITION_TIMEOUT = {
35
36
  enter: 0,
36
37
  exit: 200
37
38
  };
38
- export var PopupPositions = ['top left', 'top center', 'top right', 'right top', 'right middle', 'right bottom', 'bottom right', 'bottom center', 'bottom left', 'left bottom', 'left middle', 'left top'];
39
+ export var PopupPositions = ['top center', 'top left', 'top right', 'bottom center', 'bottom left', 'bottom right', 'left middle', 'left top', 'left bottom', 'right middle', 'right top', 'right bottom'];
40
+ export var OldPopupPositions = ['top left', 'top center', 'top right', 'right top', 'right middle', 'right bottom', 'bottom right', 'bottom center', 'bottom left', 'left bottom', 'left middle', 'left top'];
39
41
  export var DefaultPosition = PopupPositions[0];
42
+ export var OldDefaultPosition = OldPopupPositions[0];
40
43
  export var DUMMY_LOCATION = {
41
44
  position: DefaultPosition,
42
45
  coordinates: {
@@ -263,11 +266,14 @@ export var Popup = responsiveLayout(_class = rootNode(_class = (_temp = _class2
263
266
  _proto.render = function render() {
264
267
  var _this2 = this;
265
268
 
266
- return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
267
- _this2.emotion = emotion;
268
- return /*#__PURE__*/React.createElement(ThemeConsumer, null, function (theme) {
269
- _this2.theme = theme;
270
- return _this2.renderMain();
269
+ return /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Consumer, null, function (flags) {
270
+ _this2.featureFlags = getFullReactUIFlagsContext(flags);
271
+ return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
272
+ _this2.emotion = emotion;
273
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
274
+ _this2.theme = theme;
275
+ return _this2.renderMain();
276
+ });
271
277
  });
272
278
  });
273
279
  };
@@ -463,10 +469,42 @@ export var Popup = responsiveLayout(_class = rootNode(_class = (_temp = _class2
463
469
  return x.position === y.position && Math.abs(x.coordinates.top - y.coordinates.top) <= 1 && Math.abs(x.coordinates.left - y.coordinates.left) <= 1;
464
470
  };
465
471
 
472
+ _proto.reorderPropsPositionsWithPriorityPos = function reorderPropsPositionsWithPriorityPos() {
473
+ var positions = this.props.positions ? this.props.positions : PopupPositions;
474
+ var pos_ = '';
475
+
476
+ if (this.props.pos) {
477
+ pos_ = this.props.pos;
478
+ } else {
479
+ pos_ = positions[0];
480
+ }
481
+
482
+ var index = positions.findIndex(function (position) {
483
+ return position.startsWith(pos_);
484
+ });
485
+
486
+ if (index === -1) {
487
+ warning(false, 'Unexpected position ' + pos_ + ' passed to Popup. Expected one of: ' + positions.join(', '));
488
+ return positions;
489
+ }
490
+
491
+ return [].concat(positions.slice(index), positions.slice(0, index));
492
+ };
493
+
466
494
  _proto.getLocation = function getLocation(popupElement, location) {
467
- var _this$props3 = this.props,
468
- positions = _this$props3.positions,
469
- tryPreserveFirstRenderedPosition = _this$props3.tryPreserveFirstRenderedPosition;
495
+ var _this$getProps3 = this.getProps(),
496
+ tryPreserveFirstRenderedPosition = _this$getProps3.tryPreserveFirstRenderedPosition;
497
+
498
+ var positions;
499
+
500
+ if (this.featureFlags.popupUnifyPositioning) {
501
+ positions = this.reorderPropsPositionsWithPriorityPos();
502
+ } else if (this.props.positions) {
503
+ positions = this.props.positions;
504
+ } else {
505
+ positions = OldPopupPositions;
506
+ }
507
+
470
508
  var anchorElement = this.anchorElement;
471
509
  warning(anchorElement && isInstanceOf(anchorElement, globalObject.Element), 'Anchor element is not defined or not instance of Element');
472
510
 
@@ -673,6 +711,11 @@ export var Popup = responsiveLayout(_class = rootNode(_class = (_temp = _class2
673
711
  */
674
712
  positions: PropTypes.array,
675
713
 
714
+ /**
715
+ * Приоритетная позиция попапа
716
+ */
717
+ pos: PropTypes.string,
718
+
676
719
  /**
677
720
  * Игнорировать ли события hover/click
678
721
  */