@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
@@ -7,6 +7,13 @@ var _globalObject = require("@skbkontur/global-object");
7
7
  var _utils = require("../../lib/utils");
8
8
  var _ThemeFactory = require("../../lib/theming/ThemeFactory");
9
9
  var _Popup = require("../../internal/Popup");
10
+
11
+
12
+
13
+
14
+
15
+
16
+
10
17
  var _RenderLayer = require("../../internal/RenderLayer");
11
18
  var _CrossIcon = require("../../internal/icons/CrossIcon");
12
19
 
@@ -23,6 +30,11 @@ var _CloseButtonIcon = require("../../internal/CloseButtonIcon/CloseButtonIcon")
23
30
  var _isInstanceOf = require("../../lib/isInstanceOf");
24
31
  var _Emotion = require("../../lib/theming/Emotion");
25
32
  var _ThemeContext = require("../../lib/theming/ThemeContext");
33
+ var _featureFlagsContext = require("../../lib/featureFlagsContext");
34
+
35
+
36
+
37
+
26
38
 
27
39
  var _Tooltip = require("./Tooltip.styles");var _class, _class2, _temp;
28
40
 
@@ -139,6 +151,8 @@ var _Tooltip = require("./Tooltip.styles");var _class, _class2, _temp;
139
151
 
140
152
 
141
153
 
154
+
155
+
142
156
 
143
157
 
144
158
 
@@ -155,7 +169,7 @@ var TooltipDataTids = {
155
169
  crossIcon: 'Tooltip__crossIcon' };exports.TooltipDataTids = TooltipDataTids;
156
170
 
157
171
 
158
- var Positions = [
172
+ var OldPositions = [
159
173
  'right bottom',
160
174
  'right middle',
161
175
  'right top',
@@ -173,8 +187,6 @@ var Positions = [
173
187
 
174
188
 
175
189
 
176
-
177
-
178
190
  Tooltip = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(Tooltip, _React$PureComponent);function Tooltip() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
179
191
 
180
192
 
@@ -197,8 +209,6 @@ Tooltip = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/funct
197
209
 
198
210
 
199
211
 
200
-
201
-
202
212
 
203
213
 
204
214
 
@@ -211,6 +221,7 @@ Tooltip = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/funct
211
221
 
212
222
 
213
223
 
224
+
214
225
  contentElement = null;_this.
215
226
  positions = null;_this.
216
227
  clickedOutside = true;_this.
@@ -253,6 +264,22 @@ Tooltip = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/funct
253
264
 
254
265
 
255
266
 
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+
256
283
 
257
284
 
258
285
 
@@ -397,23 +424,35 @@ Tooltip = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/funct
397
424
 
398
425
 
399
426
 
400
- refContent = function (node) {
401
- _this.contentElement = node;
402
- };_this.
403
-
404
-
405
-
406
-
407
-
408
-
409
-
410
-
411
-
412
-
413
427
 
428
+ getPositions = function () {
429
+ if (_this.featureFlags.popupUnifyPositioning) {
430
+ return _this.props.allowedPositions;
431
+ }
432
+ if (!_this.positions) {
433
+ var pos;
434
+ if (_this.props.pos) {
435
+ pos = _this.props.pos;
436
+ } else if (_this.featureFlags.popupUnifyPositioning) {
437
+ pos = _Popup.DefaultPosition;
438
+ } else {
439
+ pos = _Popup.OldDefaultPosition;
440
+ }
441
+ var allowedPositions = _this.getAllowedPositions();
442
+ var index = allowedPositions.indexOf(pos);
443
+ if (index === -1) {
444
+ throw new Error('Unexpected position passed to Tooltip. Expected one of: ' + allowedPositions.join(', '));
445
+ }
414
446
 
447
+ _this.positions = [].concat(allowedPositions.slice(index), allowedPositions.slice(0, index));
448
+ }
415
449
 
450
+ return _this.positions;
451
+ };_this.
416
452
 
453
+ refContent = function (node) {
454
+ _this.contentElement = node;
455
+ };_this.
417
456
 
418
457
 
419
458
 
@@ -596,7 +635,7 @@ Tooltip = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/funct
596
635
  }
597
636
 
598
637
  _this.close();
599
- };return _this;}var _proto = Tooltip.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var _this$getProps = this.getProps(),trigger = _this$getProps.trigger,allowedPositions = _this$getProps.allowedPositions,pos = _this$getProps.pos;if (trigger === 'closed' && this.state.opened) {this.close();}var posChanged = prevProps.pos !== pos;var allowedChanged = !(0, _lodash.default)(prevProps.allowedPositions, allowedPositions);if (posChanged || allowedChanged) {this.positions = null;}};_proto.componentWillUnmount = function componentWillUnmount() {this.clearHoverTimeout();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_Emotion.EmotionConsumer, null, function (emotion) {_this2.emotion = emotion;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeConsumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeProvider, { value: _ThemeFactory.ThemeFactory.create({ popupPinOffset: theme.tooltipPinOffset, popupMargin: theme.tooltipMargin, popupBorder: theme.tooltipBorder, popupBorderRadius: theme.tooltipBorderRadius, popupPinSize: theme.tooltipPinSize, popupPinOffsetX: theme.tooltipPinOffsetX, popupPinOffsetY: theme.tooltipPinOffsetY, popupBackground: theme.tooltipBg }, theme) }, _this2.renderMain());});});};_proto.renderCloseButton = function renderCloseButton() {var hasCross = this.props.closeButton === undefined ? !Tooltip.triggersWithoutCloseButton.includes(this.getProps().trigger) : this.props.closeButton;if (!hasCross) {return null;}var icon = (0, _ThemeHelpers.isTheme2022)(this.theme) ? /*#__PURE__*/_react.default.createElement(_CloseButtonIcon.CloseButtonIcon, { tabbable: false, side: parseInt(this.theme.tooltipCloseBtnSide), color: this.theme.tooltipCloseBtnColor, colorHover: this.theme.tooltipCloseBtnHoverColor }) : /*#__PURE__*/_react.default.createElement(_CrossIcon.CrossIcon, null);var styles = (0, _Tooltip.getStyles)(this.emotion);return /*#__PURE__*/_react.default.createElement("div", { className: styles.cross(this.theme), onClick: this.handleCloseButtonClick, "data-tid": TooltipDataTids.crossIcon }, icon);}; /**
638
+ };return _this;}var _proto = Tooltip.prototype;_proto.getAllowedPositions = function getAllowedPositions() {return this.props.allowedPositions ? this.props.allowedPositions : OldPositions;};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var _this$getProps = this.getProps(),trigger = _this$getProps.trigger;if (trigger === 'closed' && this.state.opened) {this.close();}if (this.featureFlags.hintAddDynamicPositioning && !this.featureFlags.popupUnifyPositioning) {var pos = this.props.pos ? this.props.pos : _Popup.OldDefaultPosition;var allowedPositions = this.getAllowedPositions();var posChanged = prevProps.pos !== pos;var allowedChanged = !(0, _lodash.default)(prevProps.allowedPositions, allowedPositions);if (posChanged || allowedChanged) {this.positions = null;}}};_proto.componentWillUnmount = function componentWillUnmount() {this.clearHoverTimeout();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_featureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {_this2.featureFlags = (0, _featureFlagsContext.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_Emotion.EmotionConsumer, null, function (emotion) {_this2.emotion = emotion;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _ThemeFactory.ThemeFactory.create({ popupPinOffset: theme.tooltipPinOffset, popupMargin: theme.tooltipMargin, popupBorder: theme.tooltipBorder, popupBorderRadius: theme.tooltipBorderRadius, popupPinSize: theme.tooltipPinSize, popupPinOffsetX: theme.tooltipPinOffsetX, popupPinOffsetY: theme.tooltipPinOffsetY, popupBackground: theme.tooltipBg }, theme) }, _this2.renderMain());});});});};_proto.renderCloseButton = function renderCloseButton() {var hasCross = this.props.closeButton === undefined ? !Tooltip.triggersWithoutCloseButton.includes(this.getProps().trigger) : this.props.closeButton;if (!hasCross) {return null;}var icon = (0, _ThemeHelpers.isTheme2022)(this.theme) ? /*#__PURE__*/_react.default.createElement(_CloseButtonIcon.CloseButtonIcon, { tabbable: false, side: parseInt(this.theme.tooltipCloseBtnSide), color: this.theme.tooltipCloseBtnColor, colorHover: this.theme.tooltipCloseBtnHoverColor }) : /*#__PURE__*/_react.default.createElement(_CrossIcon.CrossIcon, null);var styles = (0, _Tooltip.getStyles)(this.emotion);return /*#__PURE__*/_react.default.createElement("div", { className: styles.cross(this.theme), onClick: this.handleCloseButtonClick, "data-tid": TooltipDataTids.crossIcon }, icon);}; /**
600
639
  * Программно открывает тултип.
601
640
  * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>
602
641
  * @public
@@ -604,4 +643,4 @@ Tooltip = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/funct
604
643
  * Программно закрывает тултип.
605
644
  * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>
606
645
  * @public
607
- */;_proto.hide = function hide() {var trigger = this.getProps().trigger;if (trigger === 'opened' || trigger === 'closed') {(0, _warning.default)(true, "Function 'hide' is not supported with trigger specified '" + trigger + "'");return;}this.close();};_proto.renderMain = function renderMain() {var props = this.props;var content = this.renderContent();var _this$getPopupAndLaye = this.getPopupAndLayerProps(),popupProps = _this$getPopupAndLaye.popupProps,_this$getPopupAndLaye2 = _this$getPopupAndLaye.layerProps,layerProps = _this$getPopupAndLaye2 === void 0 ? { active: false } : _this$getPopupAndLaye2;var anchorElement = props.children || props.anchorElement;var popup = this.renderPopup(anchorElement, popupProps, content);return /*#__PURE__*/_react.default.createElement(_RenderLayer.RenderLayer, (0, _extends2.default)({}, layerProps, { getAnchorElement: this.getAnchorElement }), popup);};_proto.renderPopup = function renderPopup(anchorElement, popupProps, content) {var _this$getProps2 = this.getProps(),disableAnimations = _this$getProps2.disableAnimations,trigger = _this$getProps2.trigger;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_Popup.Popup, (0, _extends2.default)({ "data-tid": TooltipDataTids.root, anchorElement: anchorElement, hasPin: true, hasShadow: true, maxWidth: "none", opened: this.state.opened, disableAnimations: disableAnimations, positions: this.getPositions(), ignoreHover: trigger === 'hoverAnchor', onOpen: this.props.onOpen, onClose: this.props.onClose, tryPreserveFirstRenderedPosition: true, ref: this.popupRef, withoutMobile: true }, popupProps), content));};_proto.getPositions = function getPositions() {if (!this.positions) {var _this$getProps3 = this.getProps(),allowedPositions = _this$getProps3.allowedPositions,pos = _this$getProps3.pos;var index = allowedPositions.indexOf(pos);if (index === -1) {throw new Error('Unexpected position passed to Tooltip. Expected one of: ' + allowedPositions.join(', '));}this.positions = [].concat(allowedPositions.slice(index), allowedPositions.slice(0, index));}return this.positions;};_proto.getPopupAndLayerProps = function getPopupAndLayerProps() {var props = this.props;var useWrapper = !!props.children && this.getProps().useWrapper;var trigger = this.getProps().trigger;switch (trigger) {case 'opened':return { layerProps: { active: true, onClickOutside: this.handleClickOutsideAnchor }, popupProps: { opened: true, useWrapper: useWrapper } };case 'closed':return { popupProps: { opened: false, useWrapper: useWrapper } };case 'hoverAnchor':case 'hover':return { popupProps: { onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, useWrapper: useWrapper } };case 'manual':return { popupProps: { useWrapper: useWrapper } };case 'click':return { layerProps: { active: this.state.opened, onClickOutside: this.handleClickOutsideAnchor }, popupProps: { onClick: this.handleClick, useWrapper: useWrapper } };case 'focus':return { popupProps: { onFocus: this.handleFocus, onBlur: this.handleBlur, useWrapper: useWrapper } };case 'hover&focus':return { layerProps: { active: this.state.opened, onClickOutside: this.handleClickOutsideAnchor }, popupProps: { onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, useWrapper: useWrapper } };default:throw new Error('Unknown trigger specified: ' + trigger);}};_proto.clearHoverTimeout = function clearHoverTimeout() {if (this.hoverTimeout) {_globalObject.globalObject.clearTimeout(this.hoverTimeout);this.hoverTimeout = null;}};_proto.isClickOutsideContent = function isClickOutsideContent(event) {if (this.contentElement && (0, _isInstanceOf.isInstanceOf)(event.target, _globalObject.globalObject.Element)) {return !(0, _listenFocusOutside.containsTargetOrRenderContainer)(event.target)(this.contentElement);}return true;};return Tooltip;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Tooltip', _class2.displayName = 'Tooltip', _class2.propTypes = { children: function children(props, propName, componentName) {var children = props[propName];(0, _warning.default)(children || props.anchorElement, "[" + componentName + "]: you must provide either 'children' or 'anchorElement' prop for " + componentName + " to work properly");(0, _warning.default)(!(Array.isArray(children) && props.useWrapper === false), "[" + componentName + "]: you provided multiple children, but useWrapper={false} - forcing wrapper <span/> for positioning to work correctly");} }, _class2.defaultProps = { pos: _Popup.DefaultPosition, trigger: 'hover', allowedPositions: Positions, disableAnimations: _currentEnvironment.isTestEnv, useWrapper: false, delayBeforeShow: DEFAULT_DELAY }, _class2.delay = DEFAULT_DELAY, _class2.triggersWithoutCloseButton = ['hover', 'hoverAnchor', 'focus', 'hover&focus'], _temp)) || _class;exports.Tooltip = Tooltip;
646
+ */;_proto.hide = function hide() {var trigger = this.getProps().trigger;if (trigger === 'opened' || trigger === 'closed') {(0, _warning.default)(true, "Function 'hide' is not supported with trigger specified '" + trigger + "'");return;}this.close();};_proto.renderMain = function renderMain() {var props = this.props;var content = this.renderContent();var _this$getPopupAndLaye = this.getPopupAndLayerProps(),popupProps = _this$getPopupAndLaye.popupProps,_this$getPopupAndLaye2 = _this$getPopupAndLaye.layerProps,layerProps = _this$getPopupAndLaye2 === void 0 ? { active: false } : _this$getPopupAndLaye2;var anchorElement = props.children || props.anchorElement;var popup = this.renderPopup(anchorElement, popupProps, content);return /*#__PURE__*/_react.default.createElement(_RenderLayer.RenderLayer, (0, _extends2.default)({}, layerProps, { getAnchorElement: this.getAnchorElement }), popup);};_proto.renderPopup = function renderPopup(anchorElement, popupProps, content) {var _this$getProps2 = this.getProps(),disableAnimations = _this$getProps2.disableAnimations,trigger = _this$getProps2.trigger;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_Popup.Popup, (0, _extends2.default)({ "data-tid": TooltipDataTids.root, anchorElement: anchorElement, hasPin: true, hasShadow: true, maxWidth: "none", opened: this.state.opened, disableAnimations: disableAnimations, positions: this.getPositions(), pos: this.props.pos, ignoreHover: trigger === 'hoverAnchor', onOpen: this.props.onOpen, onClose: this.props.onClose, tryPreserveFirstRenderedPosition: true, ref: this.popupRef, withoutMobile: true }, popupProps), content));};_proto.getPopupAndLayerProps = function getPopupAndLayerProps() {var props = this.props;var useWrapper = !!props.children && this.getProps().useWrapper;var trigger = this.getProps().trigger;switch (trigger) {case 'opened':return { layerProps: { active: true, onClickOutside: this.handleClickOutsideAnchor }, popupProps: { opened: true, useWrapper: useWrapper } };case 'closed':return { popupProps: { opened: false, useWrapper: useWrapper } };case 'hoverAnchor':case 'hover':return { popupProps: { onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, useWrapper: useWrapper } };case 'manual':return { popupProps: { useWrapper: useWrapper } };case 'click':return { layerProps: { active: this.state.opened, onClickOutside: this.handleClickOutsideAnchor }, popupProps: { onClick: this.handleClick, useWrapper: useWrapper } };case 'focus':return { popupProps: { onFocus: this.handleFocus, onBlur: this.handleBlur, useWrapper: useWrapper } };case 'hover&focus':return { layerProps: { active: this.state.opened, onClickOutside: this.handleClickOutsideAnchor }, popupProps: { onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, useWrapper: useWrapper } };default:throw new Error('Unknown trigger specified: ' + trigger);}};_proto.clearHoverTimeout = function clearHoverTimeout() {if (this.hoverTimeout) {_globalObject.globalObject.clearTimeout(this.hoverTimeout);this.hoverTimeout = null;}};_proto.isClickOutsideContent = function isClickOutsideContent(event) {if (this.contentElement && (0, _isInstanceOf.isInstanceOf)(event.target, _globalObject.globalObject.Element)) {return !(0, _listenFocusOutside.containsTargetOrRenderContainer)(event.target)(this.contentElement);}return true;};return Tooltip;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Tooltip', _class2.displayName = 'Tooltip', _class2.propTypes = { children: function children(props, propName, componentName) {var children = props[propName];(0, _warning.default)(children || props.anchorElement, "[" + componentName + "]: you must provide either 'children' or 'anchorElement' prop for " + componentName + " to work properly");(0, _warning.default)(!(Array.isArray(children) && props.useWrapper === false), "[" + componentName + "]: you provided multiple children, but useWrapper={false} - forcing wrapper <span/> for positioning to work correctly");} }, _class2.defaultProps = { trigger: 'hover', disableAnimations: _currentEnvironment.isTestEnv, useWrapper: false, delayBeforeShow: DEFAULT_DELAY }, _class2.delay = DEFAULT_DELAY, _class2.triggersWithoutCloseButton = ['hover', 'hoverAnchor', 'focus', 'hover&focus'], _temp)) || _class;exports.Tooltip = Tooltip;
@@ -1 +1 @@
1
- {"version":3,"sources":["Tooltip.tsx"],"names":["DEFAULT_DELAY","TooltipDataTids","root","content","crossIcon","Positions","Tooltip","rootNode","getProps","defaultProps","state","opened","focused","contentElement","positions","clickedOutside","popupRef","React","createRef","renderContent","props","render","styles","emotion","refContent","tooltipContent","theme","renderCloseButton","getAnchorElement","current","anchorElement","node","open","setState","close","handleMouseEnter","event","isHoverAnchor","trigger","target","clearHoverTimeout","hoverTimeout","globalObject","setTimeout","delayBeforeShow","handleMouseLeave","relatedTarget","delay","handleClick","handleClickOutsideAnchor","isClickOutsideContent","onCloseRequest","handleFocus","handleBlur","handleCloseButtonClick","stopPropagation","onCloseClick","defaultPrevented","componentDidUpdate","prevProps","allowedPositions","pos","posChanged","allowedChanged","componentWillUnmount","ThemeFactory","create","popupPinOffset","tooltipPinOffset","popupMargin","tooltipMargin","popupBorder","tooltipBorder","popupBorderRadius","tooltipBorderRadius","popupPinSize","tooltipPinSize","popupPinOffsetX","tooltipPinOffsetX","popupPinOffsetY","tooltipPinOffsetY","popupBackground","tooltipBg","renderMain","hasCross","closeButton","undefined","triggersWithoutCloseButton","includes","icon","parseInt","tooltipCloseBtnSide","tooltipCloseBtnColor","tooltipCloseBtnHoverColor","cross","show","hide","getPopupAndLayerProps","popupProps","layerProps","active","children","popup","renderPopup","disableAnimations","setRootNode","getPositions","onOpen","onClose","index","indexOf","Error","join","slice","useWrapper","onClickOutside","onMouseEnter","onMouseLeave","onClick","onFocus","onBlur","clearTimeout","Element","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","propName","componentName","Array","isArray","DefaultPosition","isTestEnv"],"mappings":"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","sourcesContent":["import React from 'react';\nimport warning from 'warning';\nimport isEqual from 'lodash.isequal';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isNullable } from '../../lib/utils';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { DefaultPosition, Popup, PopupPositionsType, PopupProps } from '../../internal/Popup';\nimport { RenderLayer, RenderLayerProps } from '../../internal/RenderLayer';\nimport { CrossIcon } from '../../internal/icons/CrossIcon';\nimport { Nullable } from '../../typings/utility-types';\nimport { MouseEventType } from '../../typings/event-types';\nimport { containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { InstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { CloseButtonIcon } from '../../internal/CloseButtonIcon/CloseButtonIcon';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { ThemeConsumer, ThemeProvider } from '../../lib/theming/ThemeContext';\n\nimport { getStyles } from './Tooltip.styles';\n\nexport type TooltipTrigger =\n /** Наведение на children и на тултип */\n | 'hover'\n /** Клик на children */\n | 'click'\n /** Фокус на children */\n | 'focus'\n /** Наведение на children и на тултип и фокус на children */\n | 'hover&focus'\n /** Просто открыт */\n | 'opened'\n /** Просто закрыт */\n | 'closed'\n /** Наведение ТОЛЬКО на children, а не на тултип */\n | 'hoverAnchor'\n /** Управление через публичные функции show и hide */\n | 'manual';\n\nexport interface TooltipProps extends CommonProps {\n /**\n * Относительно какого элемента позиционировать тултип\n */\n anchorElement?: HTMLElement;\n\n /**\n * Если не указан `anchorElement` то тултип будет позиционироваться\n * относительно дочерних элементов\n */\n children?: React.ReactNode;\n\n className?: string;\n\n /**\n * Показывать крестик для закрытия тултипа. По-умолчанию крестик\n * показывается если проп *trigger* не `hover` и не `focus`.\n */\n closeButton?: boolean;\n\n /**\n * Функция, которая возвращает содержимое тултипа.\n *\n * Если эта функция вернула `null`, то тултип не показывается.\n */\n render?: Nullable<() => React.ReactNode>;\n\n /**\n * Значение по умолчанию: `\"top left\"`.\n */\n pos?: PopupPositionsType;\n\n /**\n * Триггер открытия тултипа\n * ```ts\n * type TooltipTrigger =\n * | 'hover'\n * | 'click'\n * | 'focus'\n * | 'hover&focus'\n * | 'opened'\n * | 'closed'\n * | 'hoverAnchor'\n * | 'manual';\n * ```\n */\n trigger?: TooltipTrigger;\n\n /**\n * Хэндлер, вызываемый при клике по крестику\n */\n onCloseClick?: React.MouseEventHandler<HTMLElement>;\n\n /**\n * Хэндлер, вызываемый при клике по крестику или\n * снаружи тултипа\n */\n onCloseRequest?: (event?: Event | React.MouseEvent) => void;\n\n /**\n * Хэндлер, вызываемый при закрытии тултипа\n */\n onClose?: () => void;\n\n /**\n * Хэндлер, вызываемый при открытии тултипа\n */\n onOpen?: () => void;\n\n /**\n * Список позиций, которые тултип будет занимать.\n * Если положение тултипа в определенной позиции\n * будет выходить за край экрана, то будет выбрана\n * следующая позиция. Обязательно должен включать\n * позицию указанную в `pos`\n */\n allowedPositions?: PopupPositionsType[];\n\n /**\n * Флаг отключения анимации.\n * @default false\n */\n disableAnimations?: boolean;\n\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n\n /**\n * Задержка перед появлением тултипа в миллисекундах\n * Значение по умолчанию: `100`\n */\n delayBeforeShow?: number;\n}\n\nconst DEFAULT_DELAY = 100;\n\nexport interface TooltipState {\n opened: boolean;\n focused: boolean;\n}\n\nexport const TooltipDataTids = {\n root: 'Tooltip__root',\n content: 'Tooltip__content',\n crossIcon: 'Tooltip__crossIcon',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\n 'right bottom',\n 'right middle',\n 'right top',\n 'top right',\n 'top center',\n 'top left',\n 'left top',\n 'left middle',\n 'left bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n];\n\ntype DefaultProps = Required<\n Pick<TooltipProps, 'pos' | 'trigger' | 'allowedPositions' | 'disableAnimations' | 'useWrapper' | 'delayBeforeShow'>\n>;\n\n@rootNode\nexport class Tooltip extends React.PureComponent<TooltipProps, TooltipState> implements InstanceWithAnchorElement {\n public static __KONTUR_REACT_UI__ = 'Tooltip';\n public static displayName = 'Tooltip';\n\n public static propTypes = {\n children(props: TooltipProps, propName: keyof TooltipProps, componentName: string) {\n const children = props[propName];\n warning(\n children || props.anchorElement,\n `[${componentName}]: you must provide either 'children' or 'anchorElement' prop for ${componentName} to work properly`,\n );\n warning(\n !(Array.isArray(children) && props.useWrapper === false),\n `[${componentName}]: you provided multiple children, but useWrapper={false} - forcing wrapper <span/> for positioning to work correctly`,\n );\n },\n };\n\n public static defaultProps: DefaultProps = {\n pos: DefaultPosition,\n trigger: 'hover',\n allowedPositions: Positions,\n disableAnimations: isTestEnv,\n useWrapper: false,\n delayBeforeShow: DEFAULT_DELAY,\n };\n\n private getProps = createPropsGetter(Tooltip.defaultProps);\n\n public static delay = DEFAULT_DELAY;\n private static triggersWithoutCloseButton: TooltipTrigger[] = ['hover', 'hoverAnchor', 'focus', 'hover&focus'];\n\n public state: TooltipState = { opened: false, focused: false };\n private theme!: Theme;\n private emotion!: Emotion;\n private hoverTimeout: SafeTimer;\n private contentElement: Nullable<HTMLElement> = null;\n private positions: Nullable<PopupPositionsType[]> = null;\n private clickedOutside = true;\n private setRootNode!: TSetRootNode;\n\n private popupRef = React.createRef<Popup>();\n public componentDidUpdate(prevProps: TooltipProps) {\n const { trigger, allowedPositions, pos } = this.getProps();\n if (trigger === 'closed' && this.state.opened) {\n this.close();\n }\n const posChanged = prevProps.pos !== pos;\n const allowedChanged = !isEqual(prevProps.allowedPositions, allowedPositions);\n\n if (posChanged || allowedChanged) {\n this.positions = null;\n }\n }\n\n public componentWillUnmount() {\n this.clearHoverTimeout();\n }\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 (\n <ThemeProvider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipPinOffset,\n popupMargin: theme.tooltipMargin,\n popupBorder: theme.tooltipBorder,\n popupBorderRadius: theme.tooltipBorderRadius,\n popupPinSize: theme.tooltipPinSize,\n popupPinOffsetX: theme.tooltipPinOffsetX,\n popupPinOffsetY: theme.tooltipPinOffsetY,\n popupBackground: theme.tooltipBg,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeProvider>\n );\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n public renderContent = () => {\n const content = this.props.render ? this.props.render() : null;\n if (isNullable(content)) {\n return null;\n }\n const styles = getStyles(this.emotion);\n\n return (\n <div ref={this.refContent} className={styles.tooltipContent(this.theme)} data-tid={TooltipDataTids.content}>\n {content}\n {this.renderCloseButton()}\n </div>\n );\n };\n\n public renderCloseButton() {\n const hasCross =\n this.props.closeButton === undefined\n ? !Tooltip.triggersWithoutCloseButton.includes(this.getProps().trigger)\n : this.props.closeButton;\n\n if (!hasCross) {\n return null;\n }\n\n const icon = isTheme2022(this.theme) ? (\n <CloseButtonIcon\n tabbable={false}\n side={parseInt(this.theme.tooltipCloseBtnSide)}\n color={this.theme.tooltipCloseBtnColor}\n colorHover={this.theme.tooltipCloseBtnHoverColor}\n />\n ) : (\n <CrossIcon />\n );\n const styles = getStyles(this.emotion);\n return (\n <div\n className={styles.cross(this.theme)}\n onClick={this.handleCloseButtonClick}\n data-tid={TooltipDataTids.crossIcon}\n >\n {icon}\n </div>\n );\n }\n\n public getAnchorElement = (): Nullable<Element> => {\n return this.popupRef.current?.anchorElement;\n };\n\n /**\n * Программно открывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public show() {\n if (this.state.opened) {\n return;\n }\n const trigger = this.getProps().trigger;\n if (trigger === 'opened' || trigger === 'closed') {\n warning(true, `Function 'show' is not supported with trigger specified '${trigger}'`);\n return;\n }\n this.open();\n }\n\n /**\n * Программно закрывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public hide() {\n const trigger = this.getProps().trigger;\n if (trigger === 'opened' || trigger === 'closed') {\n warning(true, `Function 'hide' is not supported with trigger specified '${trigger}'`);\n return;\n }\n this.close();\n }\n\n private renderMain() {\n const props = this.props;\n const content = this.renderContent();\n const { popupProps, layerProps = { active: false } } = this.getPopupAndLayerProps();\n const anchorElement = props.children || props.anchorElement;\n const popup = this.renderPopup(anchorElement, popupProps, content);\n\n return (\n <RenderLayer {...layerProps} getAnchorElement={this.getAnchorElement}>\n {popup}\n </RenderLayer>\n );\n }\n\n private renderPopup(\n anchorElement: React.ReactNode | HTMLElement,\n popupProps: Partial<PopupProps>,\n content: JSX.Element | null,\n ) {\n const { disableAnimations, trigger } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Popup\n data-tid={TooltipDataTids.root}\n anchorElement={anchorElement}\n hasPin\n hasShadow\n maxWidth=\"none\"\n opened={this.state.opened}\n disableAnimations={disableAnimations}\n positions={this.getPositions()}\n ignoreHover={trigger === 'hoverAnchor'}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n tryPreserveFirstRenderedPosition\n ref={this.popupRef}\n withoutMobile\n {...popupProps}\n >\n {content}\n </Popup>\n </CommonWrapper>\n );\n }\n\n private refContent = (node: HTMLElement | null) => {\n this.contentElement = node;\n };\n\n private getPositions() {\n if (!this.positions) {\n const { allowedPositions, pos } = this.getProps();\n const index = allowedPositions.indexOf(pos);\n if (index === -1) {\n throw new Error('Unexpected position passed to Tooltip. Expected one of: ' + allowedPositions.join(', '));\n }\n\n this.positions = [...allowedPositions.slice(index), ...allowedPositions.slice(0, index)];\n }\n\n return this.positions;\n }\n\n private getPopupAndLayerProps(): {\n layerProps?: Partial<RenderLayerProps>;\n popupProps: Partial<PopupProps>;\n } {\n const props = this.props;\n const useWrapper = !!props.children && this.getProps().useWrapper;\n const trigger = this.getProps().trigger;\n\n switch (trigger) {\n case 'opened':\n return {\n layerProps: {\n active: true,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n opened: true,\n useWrapper,\n },\n };\n\n case 'closed':\n return {\n popupProps: {\n opened: false,\n useWrapper,\n },\n };\n\n case 'hoverAnchor':\n case 'hover':\n return {\n popupProps: {\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n case 'manual':\n return {\n popupProps: {\n useWrapper,\n },\n };\n case 'click':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onClick: this.handleClick,\n useWrapper,\n },\n };\n\n case 'focus':\n return {\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n useWrapper,\n },\n };\n\n case 'hover&focus':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n\n default:\n throw new Error('Unknown trigger specified: ' + trigger);\n }\n }\n\n private open = () => this.setState({ opened: true });\n\n private close = () => this.setState({ opened: false });\n\n private clearHoverTimeout() {\n if (this.hoverTimeout) {\n globalObject.clearTimeout(this.hoverTimeout);\n this.hoverTimeout = null;\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n const isHoverAnchor = this.getProps().trigger === 'hoverAnchor';\n if (isHoverAnchor && event.target === this.contentElement) {\n return;\n }\n\n this.clearHoverTimeout();\n this.hoverTimeout = globalObject.setTimeout(this.open, this.getProps().delayBeforeShow);\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n const trigger = this.getProps().trigger;\n if (\n (trigger === 'hover&focus' && this.state.focused) ||\n (trigger === 'hover' && event.relatedTarget === this.contentElement)\n ) {\n return;\n }\n\n this.clearHoverTimeout();\n\n if (trigger === 'hoverAnchor') {\n this.close();\n } else {\n this.hoverTimeout = globalObject.setTimeout(this.close, Tooltip.delay);\n }\n };\n\n private handleClick = () => {\n this.open();\n };\n\n private handleClickOutsideAnchor = (event: Event) => {\n this.clickedOutside = this.isClickOutsideContent(event);\n if (this.clickedOutside) {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest(event);\n }\n this.close();\n }\n };\n\n private isClickOutsideContent(event: Event) {\n if (this.contentElement && isInstanceOf(event.target, globalObject.Element)) {\n return !containsTargetOrRenderContainer(event.target)(this.contentElement);\n }\n\n return true;\n }\n\n private handleFocus = () => {\n this.setState({ focused: true });\n this.open();\n };\n\n private handleBlur = () => {\n const trigger = this.getProps().trigger;\n if (trigger === 'hover&focus' && this.clickedOutside) {\n this.close();\n }\n\n if (trigger === 'focus') {\n this.close();\n }\n\n this.clickedOutside = true;\n this.setState({ focused: false });\n };\n\n private handleCloseButtonClick = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n\n if (this.props.onCloseClick) {\n this.props.onCloseClick(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest(event);\n }\n\n this.close();\n };\n}\n"]}
1
+ {"version":3,"sources":["Tooltip.tsx"],"names":["DEFAULT_DELAY","TooltipDataTids","root","content","crossIcon","OldPositions","Tooltip","rootNode","getProps","defaultProps","state","opened","focused","contentElement","positions","clickedOutside","popupRef","React","createRef","renderContent","props","render","styles","emotion","refContent","tooltipContent","theme","renderCloseButton","getAnchorElement","current","anchorElement","getPositions","featureFlags","popupUnifyPositioning","allowedPositions","pos","DefaultPosition","OldDefaultPosition","getAllowedPositions","index","indexOf","Error","join","slice","node","open","setState","close","handleMouseEnter","event","isHoverAnchor","trigger","target","clearHoverTimeout","hoverTimeout","globalObject","setTimeout","delayBeforeShow","handleMouseLeave","relatedTarget","delay","handleClick","handleClickOutsideAnchor","isClickOutsideContent","onCloseRequest","handleFocus","handleBlur","handleCloseButtonClick","stopPropagation","onCloseClick","defaultPrevented","componentDidUpdate","prevProps","hintAddDynamicPositioning","posChanged","allowedChanged","componentWillUnmount","flags","ThemeFactory","create","popupPinOffset","tooltipPinOffset","popupMargin","tooltipMargin","popupBorder","tooltipBorder","popupBorderRadius","tooltipBorderRadius","popupPinSize","tooltipPinSize","popupPinOffsetX","tooltipPinOffsetX","popupPinOffsetY","tooltipPinOffsetY","popupBackground","tooltipBg","renderMain","hasCross","closeButton","undefined","triggersWithoutCloseButton","includes","icon","parseInt","tooltipCloseBtnSide","tooltipCloseBtnColor","tooltipCloseBtnHoverColor","cross","show","hide","getPopupAndLayerProps","popupProps","layerProps","active","children","popup","renderPopup","disableAnimations","setRootNode","onOpen","onClose","useWrapper","onClickOutside","onMouseEnter","onMouseLeave","onClick","onFocus","onBlur","clearTimeout","Element","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","propName","componentName","Array","isArray","isTestEnv"],"mappings":"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","sourcesContent":["import React from 'react';\nimport warning from 'warning';\nimport isEqual from 'lodash.isequal';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isNullable } from '../../lib/utils';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport {\n DefaultPosition,\n Popup,\n PopupProps,\n PopupPositionsType,\n ShortPopupPositionsType,\n OldDefaultPosition,\n} from '../../internal/Popup';\nimport { RenderLayer, RenderLayerProps } from '../../internal/RenderLayer';\nimport { CrossIcon } from '../../internal/icons/CrossIcon';\nimport { Nullable } from '../../typings/utility-types';\nimport { MouseEventType } from '../../typings/event-types';\nimport { containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { InstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { CloseButtonIcon } from '../../internal/CloseButtonIcon/CloseButtonIcon';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport {\n getFullReactUIFlagsContext,\n ReactUIFeatureFlags,\n ReactUIFeatureFlagsContext,\n} from '../../lib/featureFlagsContext';\n\nimport { getStyles } from './Tooltip.styles';\n\nexport type TooltipTrigger =\n /** Наведение на children и на тултип */\n | 'hover'\n /** Клик на children */\n | 'click'\n /** Фокус на children */\n | 'focus'\n /** Наведение на children и на тултип и фокус на children */\n | 'hover&focus'\n /** Просто открыт */\n | 'opened'\n /** Просто закрыт */\n | 'closed'\n /** Наведение ТОЛЬКО на children, а не на тултип */\n | 'hoverAnchor'\n /** Управление через публичные функции show и hide */\n | 'manual';\n\nexport interface TooltipProps extends CommonProps {\n /**\n * Относительно какого элемента позиционировать тултип\n */\n anchorElement?: HTMLElement;\n\n /**\n * Если не указан `anchorElement` то тултип будет позиционироваться\n * относительно дочерних элементов\n */\n children?: React.ReactNode;\n\n className?: string;\n\n /**\n * Показывать крестик для закрытия тултипа. По-умолчанию крестик\n * показывается если проп *trigger* не `hover` и не `focus`.\n */\n closeButton?: boolean;\n\n /**\n * Функция, которая возвращает содержимое тултипа.\n *\n * Если эта функция вернула `null`, то тултип не показывается.\n */\n render?: Nullable<() => React.ReactNode>;\n\n /**\n * Приоритетное расположение подсказки относительно текста.\n *\n * **Допустимые значения**: `\"top\"`, `\"right\"`, `\"bottom\"`, `\"left\"`, `\"top left\"`, `\"top center\"`, `\"top right\"`, `\"right top\"`, `\"right middle\"`, `\"right bottom\"`, `\"bottom left\"`, `\"bottom center\"`, `\"bottom right\"`, `\"left top\"`, `\"left middle\"`, `\"left bottom\"`.\n */\n pos?: ShortPopupPositionsType | PopupPositionsType;\n\n /**\n * Триггер открытия тултипа\n * ```ts\n * type TooltipTrigger =\n * | 'hover'\n * | 'click'\n * | 'focus'\n * | 'hover&focus'\n * | 'opened'\n * | 'closed'\n * | 'hoverAnchor'\n * | 'manual';\n * ```\n */\n trigger?: TooltipTrigger;\n\n /**\n * Хэндлер, вызываемый при клике по крестику\n */\n onCloseClick?: React.MouseEventHandler<HTMLElement>;\n\n /**\n * Хэндлер, вызываемый при клике по крестику или\n * снаружи тултипа\n */\n onCloseRequest?: (event?: Event | React.MouseEvent) => void;\n\n /**\n * Хэндлер, вызываемый при закрытии тултипа\n */\n onClose?: () => void;\n\n /**\n * Хэндлер, вызываемый при открытии тултипа\n */\n onOpen?: () => void;\n\n /**\n * Список позиций, которые тултип будет занимать.\n * Если положение тултипа в определенной позиции\n * будет выходить за край экрана, то будет выбрана\n * следующая позиция. Обязательно должен включать\n * позицию указанную в `pos`\n */\n allowedPositions?: PopupPositionsType[];\n\n /**\n * Флаг отключения анимации.\n * @default false\n */\n disableAnimations?: boolean;\n\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n\n /**\n * Задержка перед появлением тултипа в миллисекундах\n * Значение по умолчанию: `100`\n */\n delayBeforeShow?: number;\n}\n\nconst DEFAULT_DELAY = 100;\n\nexport interface TooltipState {\n opened: boolean;\n focused: boolean;\n}\n\nexport const TooltipDataTids = {\n root: 'Tooltip__root',\n content: 'Tooltip__content',\n crossIcon: 'Tooltip__crossIcon',\n} as const;\n\nconst OldPositions: PopupPositionsType[] = [\n 'right bottom',\n 'right middle',\n 'right top',\n 'top right',\n 'top center',\n 'top left',\n 'left top',\n 'left middle',\n 'left bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n];\n\ntype DefaultProps = Required<Pick<TooltipProps, 'trigger' | 'disableAnimations' | 'useWrapper' | 'delayBeforeShow'>>;\n\n@rootNode\nexport class Tooltip extends React.PureComponent<TooltipProps, TooltipState> implements InstanceWithAnchorElement {\n public static __KONTUR_REACT_UI__ = 'Tooltip';\n public static displayName = 'Tooltip';\n\n public static propTypes = {\n children(props: TooltipProps, propName: keyof TooltipProps, componentName: string) {\n const children = props[propName];\n warning(\n children || props.anchorElement,\n `[${componentName}]: you must provide either 'children' or 'anchorElement' prop for ${componentName} to work properly`,\n );\n warning(\n !(Array.isArray(children) && props.useWrapper === false),\n `[${componentName}]: you provided multiple children, but useWrapper={false} - forcing wrapper <span/> for positioning to work correctly`,\n );\n },\n };\n\n public static defaultProps: DefaultProps = {\n trigger: 'hover',\n disableAnimations: isTestEnv,\n useWrapper: false,\n delayBeforeShow: DEFAULT_DELAY,\n };\n\n private getProps = createPropsGetter(Tooltip.defaultProps);\n\n public static delay = DEFAULT_DELAY;\n private static triggersWithoutCloseButton: TooltipTrigger[] = ['hover', 'hoverAnchor', 'focus', 'hover&focus'];\n\n public state: TooltipState = { opened: false, focused: false };\n private theme!: Theme;\n private emotion!: Emotion;\n public featureFlags!: ReactUIFeatureFlags;\n private hoverTimeout: SafeTimer;\n private contentElement: Nullable<HTMLElement> = null;\n private positions: Nullable<PopupPositionsType[]> = null;\n private clickedOutside = true;\n private setRootNode!: TSetRootNode;\n\n private popupRef = React.createRef<Popup>();\n\n public getAllowedPositions() {\n return this.props.allowedPositions ? this.props.allowedPositions : OldPositions;\n }\n\n public componentDidUpdate(prevProps: TooltipProps) {\n const { trigger } = this.getProps();\n if (trigger === 'closed' && this.state.opened) {\n this.close();\n }\n if (this.featureFlags.hintAddDynamicPositioning && !this.featureFlags.popupUnifyPositioning) {\n const pos = this.props.pos ? this.props.pos : OldDefaultPosition;\n const allowedPositions = this.getAllowedPositions();\n const posChanged = prevProps.pos !== pos;\n const allowedChanged = !isEqual(prevProps.allowedPositions, allowedPositions);\n\n if (posChanged || allowedChanged) {\n this.positions = null;\n }\n }\n }\n\n public componentWillUnmount() {\n this.clearHoverTimeout();\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipPinOffset,\n popupMargin: theme.tooltipMargin,\n popupBorder: theme.tooltipBorder,\n popupBorderRadius: theme.tooltipBorderRadius,\n popupPinSize: theme.tooltipPinSize,\n popupPinOffsetX: theme.tooltipPinOffsetX,\n popupPinOffsetY: theme.tooltipPinOffsetY,\n popupBackground: theme.tooltipBg,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n public renderContent = () => {\n const content = this.props.render ? this.props.render() : null;\n if (isNullable(content)) {\n return null;\n }\n const styles = getStyles(this.emotion);\n\n return (\n <div ref={this.refContent} className={styles.tooltipContent(this.theme)} data-tid={TooltipDataTids.content}>\n {content}\n {this.renderCloseButton()}\n </div>\n );\n };\n\n public renderCloseButton() {\n const hasCross =\n this.props.closeButton === undefined\n ? !Tooltip.triggersWithoutCloseButton.includes(this.getProps().trigger)\n : this.props.closeButton;\n\n if (!hasCross) {\n return null;\n }\n\n const icon = isTheme2022(this.theme) ? (\n <CloseButtonIcon\n tabbable={false}\n side={parseInt(this.theme.tooltipCloseBtnSide)}\n color={this.theme.tooltipCloseBtnColor}\n colorHover={this.theme.tooltipCloseBtnHoverColor}\n />\n ) : (\n <CrossIcon />\n );\n const styles = getStyles(this.emotion);\n return (\n <div\n className={styles.cross(this.theme)}\n onClick={this.handleCloseButtonClick}\n data-tid={TooltipDataTids.crossIcon}\n >\n {icon}\n </div>\n );\n }\n\n public getAnchorElement = (): Nullable<Element> => {\n return this.popupRef.current?.anchorElement;\n };\n\n /**\n * Программно открывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public show() {\n if (this.state.opened) {\n return;\n }\n const trigger = this.getProps().trigger;\n if (trigger === 'opened' || trigger === 'closed') {\n warning(true, `Function 'show' is not supported with trigger specified '${trigger}'`);\n return;\n }\n this.open();\n }\n\n /**\n * Программно закрывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public hide() {\n const trigger = this.getProps().trigger;\n if (trigger === 'opened' || trigger === 'closed') {\n warning(true, `Function 'hide' is not supported with trigger specified '${trigger}'`);\n return;\n }\n this.close();\n }\n\n private renderMain() {\n const props = this.props;\n const content = this.renderContent();\n const { popupProps, layerProps = { active: false } } = this.getPopupAndLayerProps();\n const anchorElement = props.children || props.anchorElement;\n const popup = this.renderPopup(anchorElement, popupProps, content);\n\n return (\n <RenderLayer {...layerProps} getAnchorElement={this.getAnchorElement}>\n {popup}\n </RenderLayer>\n );\n }\n\n private renderPopup(\n anchorElement: React.ReactNode | HTMLElement,\n popupProps: Partial<PopupProps>,\n content: JSX.Element | null,\n ) {\n const { disableAnimations, trigger } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Popup\n data-tid={TooltipDataTids.root}\n anchorElement={anchorElement}\n hasPin\n hasShadow\n maxWidth=\"none\"\n opened={this.state.opened}\n disableAnimations={disableAnimations}\n positions={this.getPositions()}\n pos={this.props.pos}\n ignoreHover={trigger === 'hoverAnchor'}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n tryPreserveFirstRenderedPosition\n ref={this.popupRef}\n withoutMobile\n {...popupProps}\n >\n {content}\n </Popup>\n </CommonWrapper>\n );\n }\n\n private getPositions = (): PopupPositionsType[] | undefined => {\n if (this.featureFlags.popupUnifyPositioning) {\n return this.props.allowedPositions;\n }\n if (!this.positions) {\n let pos;\n if (this.props.pos) {\n pos = this.props.pos;\n } else if (this.featureFlags.popupUnifyPositioning) {\n pos = DefaultPosition;\n } else {\n pos = OldDefaultPosition;\n }\n const allowedPositions = this.getAllowedPositions();\n const index = allowedPositions.indexOf(pos as PopupPositionsType);\n if (index === -1) {\n throw new Error('Unexpected position passed to Tooltip. Expected one of: ' + allowedPositions.join(', '));\n }\n\n this.positions = [...allowedPositions.slice(index), ...allowedPositions.slice(0, index)];\n }\n\n return this.positions;\n };\n\n private refContent = (node: HTMLElement | null) => {\n this.contentElement = node;\n };\n\n private getPopupAndLayerProps(): {\n layerProps?: Partial<RenderLayerProps>;\n popupProps: Partial<PopupProps>;\n } {\n const props = this.props;\n const useWrapper = !!props.children && this.getProps().useWrapper;\n const trigger = this.getProps().trigger;\n\n switch (trigger) {\n case 'opened':\n return {\n layerProps: {\n active: true,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n opened: true,\n useWrapper,\n },\n };\n\n case 'closed':\n return {\n popupProps: {\n opened: false,\n useWrapper,\n },\n };\n\n case 'hoverAnchor':\n case 'hover':\n return {\n popupProps: {\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n case 'manual':\n return {\n popupProps: {\n useWrapper,\n },\n };\n case 'click':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onClick: this.handleClick,\n useWrapper,\n },\n };\n\n case 'focus':\n return {\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n useWrapper,\n },\n };\n\n case 'hover&focus':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n\n default:\n throw new Error('Unknown trigger specified: ' + trigger);\n }\n }\n\n private open = () => this.setState({ opened: true });\n\n private close = () => this.setState({ opened: false });\n\n private clearHoverTimeout() {\n if (this.hoverTimeout) {\n globalObject.clearTimeout(this.hoverTimeout);\n this.hoverTimeout = null;\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n const isHoverAnchor = this.getProps().trigger === 'hoverAnchor';\n if (isHoverAnchor && event.target === this.contentElement) {\n return;\n }\n\n this.clearHoverTimeout();\n this.hoverTimeout = globalObject.setTimeout(this.open, this.getProps().delayBeforeShow);\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n const trigger = this.getProps().trigger;\n if (\n (trigger === 'hover&focus' && this.state.focused) ||\n (trigger === 'hover' && event.relatedTarget === this.contentElement)\n ) {\n return;\n }\n\n this.clearHoverTimeout();\n\n if (trigger === 'hoverAnchor') {\n this.close();\n } else {\n this.hoverTimeout = globalObject.setTimeout(this.close, Tooltip.delay);\n }\n };\n\n private handleClick = () => {\n this.open();\n };\n\n private handleClickOutsideAnchor = (event: Event) => {\n this.clickedOutside = this.isClickOutsideContent(event);\n if (this.clickedOutside) {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest(event);\n }\n this.close();\n }\n };\n\n private isClickOutsideContent(event: Event) {\n if (this.contentElement && isInstanceOf(event.target, globalObject.Element)) {\n return !containsTargetOrRenderContainer(event.target)(this.contentElement);\n }\n\n return true;\n }\n\n private handleFocus = () => {\n this.setState({ focused: true });\n this.open();\n };\n\n private handleBlur = () => {\n const trigger = this.getProps().trigger;\n if (trigger === 'hover&focus' && this.clickedOutside) {\n this.close();\n }\n\n if (trigger === 'focus') {\n this.close();\n }\n\n this.clickedOutside = true;\n this.setState({ focused: false });\n };\n\n private handleCloseButtonClick = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n\n if (this.props.onCloseClick) {\n this.props.onCloseClick(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest(event);\n }\n\n this.close();\n };\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.TooltipMenuDataTids = exports.TooltipMenu = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
2
 
3
3
  var _ThemeFactory = require("../../lib/theming/ThemeFactory");
4
+ var _ThemeContext = require("../../lib/theming/ThemeContext");
4
5
  var _PopupMenu = require("../../internal/PopupMenu");
5
6
 
6
7
  var _currentEnvironment = require("../../lib/currentEnvironment");
@@ -8,8 +9,7 @@ var _currentEnvironment = require("../../lib/currentEnvironment");
8
9
 
9
10
  var _CommonWrapper = require("../../internal/CommonWrapper");
10
11
  var _rootNode = require("../../lib/rootNode");
11
- var _createPropsGetter = require("../../lib/createPropsGetter");
12
- var _ThemeContext = require("../../lib/theming/ThemeContext");var _class, _class2, _temp;
12
+ var _createPropsGetter = require("../../lib/createPropsGetter");var _class, _class2, _temp;
13
13
 
14
14
 
15
15
 
@@ -94,10 +94,10 @@ TooltipMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/f
94
94
 
95
95
  render = function render() {var _this2 = this;
96
96
  return /*#__PURE__*/(
97
- _react.default.createElement(_ThemeContext.ThemeConsumer, null,
97
+ _react.default.createElement(_ThemeContext.ThemeContext.Consumer, null,
98
98
  function (theme) {
99
99
  return /*#__PURE__*/(
100
- _react.default.createElement(_ThemeContext.ThemeProvider, {
100
+ _react.default.createElement(_ThemeContext.ThemeContext.Provider, {
101
101
  value: _ThemeFactory.ThemeFactory.create(
102
102
  {
103
103
  popupPinOffset: theme.tooltipMenuPinOffset,
@@ -1 +1 @@
1
- {"version":3,"sources":["TooltipMenu.tsx"],"names":["TooltipMenuDataTids","root","TooltipMenu","rootNode","props","getProps","defaultProps","caption","isProductionEnv","Error","render","theme","ThemeFactory","create","popupPinOffset","tooltipMenuPinOffset","popupMargin","tooltipMenuMargin","popupPinSize","tooltipMenuPinSize","menuScrollContainerContentWrapperPaddingY","menuLegacyPaddingY","renderMain","disableAnimations","setRootNode","menuMaxHeight","menuWidth","header","footer","preventIconsOffset","positions","onOpen","onClose","children","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"mappings":"+WAAA;;AAEA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,8D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CO,IAAMA,mBAAmB,GAAG;AACjCC,EAAAA,IAAI,EAAE,mBAD2B,EAA5B,C;;;;;AAMP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;AAEaC,W,OADZC,kB;;;;;;;;;;;;AAaC,uBAAYC,KAAZ,EAAqC;AACnC,wCAAMA,KAAN,UADmC,MAF7BC,QAE6B,GAFlB,0CAAkBH,WAAW,CAACI,YAA9B,CAEkB;;AAGnC,QAAI,CAACF,KAAK,CAACG,OAAP,IAAkB,CAACC,mCAAvB,EAAwC;AACtC,YAAM,IAAIC,KAAJ,CAAU,+BAAV,CAAN;AACD,KALkC;AAMpC,G;;AAEMC,EAAAA,M,GAAP,kBAAgB;AACd;AACE,mCAAC,2BAAD;AACG,gBAACC,KAAD,EAAW;AACV;AACE,uCAAC,2BAAD;AACE,YAAA,KAAK,EAAEC,2BAAaC,MAAb;AACL;AACEC,cAAAA,cAAc,EAAEH,KAAK,CAACI,oBADxB;AAEEC,cAAAA,WAAW,EAAEL,KAAK,CAACM,iBAFrB;AAGEC,cAAAA,YAAY,EAAEP,KAAK,CAACQ,kBAHtB;AAIEC,cAAAA,yCAAyC,EAAET,KAAK,CAACU,kBAJnD,EADK;;AAOLV,YAAAA,KAPK,CADT;;;AAWG,UAAA,MAAI,CAACW,UAAL,EAXH,CADF;;;AAeD,OAjBH,CADF;;;AAqBD,G;;AAEMA,EAAAA,U,GAAP,sBAAoB;AAClB,QAAI,CAAC,KAAKlB,KAAL,CAAWG,OAAhB,EAAyB;AACvB,aAAO,IAAP;AACD;;AAED,yBAA8B,KAAKF,QAAL,EAA9B,CAAQkB,iBAAR,kBAAQA,iBAAR;;AAEA;AACE,mCAAC,4BAAD,2BAAe,WAAW,EAAE,KAAKC,WAAjC,IAAkD,KAAKpB,KAAvD;AACE,mCAAC,oBAAD;AACE,sBAAY,KAAKA,KAAL,CAAW,YAAX,CADd;AAEE,oBAAUJ,mBAAmB,CAACC,IAFhC;AAGE,QAAA,aAAa,EAAE,KAAKG,KAAL,CAAWqB,aAH5B;AAIE,QAAA,SAAS,EAAE,KAAKrB,KAAL,CAAWsB,SAJxB;AAKE,QAAA,OAAO,EAAE,KAAKtB,KAAL,CAAWG,OALtB;AAME,QAAA,MAAM,EAAE,KAAKH,KAAL,CAAWuB,MANrB;AAOE,QAAA,MAAM,EAAE,KAAKvB,KAAL,CAAWwB,MAPrB;AAQE,QAAA,kBAAkB,EAAE,KAAKxB,KAAL,CAAWyB,kBARjC;AASE,QAAA,SAAS,EAAE,KAAKzB,KAAL,CAAW0B,SATxB;AAUE,QAAA,MAAM,EAAE,KAAK1B,KAAL,CAAW2B,MAVrB;AAWE,QAAA,OAAO,EAAE,KAAK3B,KAAL,CAAW4B,OAXtB;AAYE,QAAA,WAAW,MAZb;AAaE,QAAA,iBAAiB,EAAET,iBAbrB;;AAeG,WAAKnB,KAAL,CAAW6B,QAfd,CADF,CADF;;;;AAqBD,G,sBAxE8BC,eAAMC,S,WACvBC,mB,GAAsB,a,UACtBC,W,GAAc,a,UAId/B,Y,GAA6B,EACzCiB,iBAAiB,EAAEe,6BADsB,E","sourcesContent":["import React, { AriaAttributes } from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { MenuItemProps } from '../MenuItem';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { MenuHeaderProps } from '../MenuHeader';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeConsumer, ThemeProvider } from '../../lib/theming/ThemeContext';\n\nexport type TooltipMenuChildType = React.ReactElement<MenuItemProps | unknown | MenuHeaderProps>;\n\nexport interface TooltipMenuProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'preventIconsOffset'> {\n children?: TooltipMenuChildType | TooltipMenuChildType[];\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол [MenuHeader](#/Components/MenuHeader) передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен [MenuSeparator](#/Components/MenuSeparator).\n */\n footer?: React.ReactNode;\n /** Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n */\n positions?: PopupPositionsType[];\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n}\n\nexport const TooltipMenuDataTids = {\n root: 'TooltipMenu__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TooltipMenuProps, 'disableAnimations'>>;\n\n/**\n * Меню, раскрывающееся по клику на переданный в `caption` элемент.\n *\n * Положение меню задаётся с помощью массива `positions` и работает так:\n * первое значение в массиве - дефолтная позиция, меню раскроется на этой позиции, если оно не будет выходить за пределы `viewport`,\n * если раскрыться в дефолтной позиции не получится - будет использована следующая позиция, и так далее, пока не будет достигнут конец массива. Если все положения из списка будут выходить за пределы `viewport`, в качестве положения будет использовано первое значение в массиве.\n *\n * Если меню должно раскрываться только в одну сторону - массив `positions` должен содержать только один элемент: сторону, в которую должно открываться меню.\n *\n * Если массив `positions` не передан (или передан пустой массив), будут использованы всевозможные значения.\n */\n@rootNode\nexport class TooltipMenu extends React.Component<TooltipMenuProps> {\n public static __KONTUR_REACT_UI__ = 'TooltipMenu';\n public static displayName = 'TooltipMenu';\n\n private setRootNode!: TSetRootNode;\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(TooltipMenu.defaultProps);\n\n constructor(props: TooltipMenuProps) {\n super(props);\n\n if (!props.caption && !isProductionEnv) {\n throw new Error('Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeConsumer>\n {(theme) => {\n return (\n <ThemeProvider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipMenuPinOffset,\n popupMargin: theme.tooltipMenuMargin,\n popupPinSize: theme.tooltipMenuPinSize,\n menuScrollContainerContentWrapperPaddingY: theme.menuLegacyPaddingY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeProvider>\n );\n }}\n </ThemeConsumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n\n const { disableAnimations } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n aria-label={this.props['aria-label']}\n data-tid={TooltipMenuDataTids.root}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n caption={this.props.caption}\n header={this.props.header}\n footer={this.props.footer}\n preventIconsOffset={this.props.preventIconsOffset}\n positions={this.props.positions}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n popupHasPin\n disableAnimations={disableAnimations}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["TooltipMenu.tsx"],"names":["TooltipMenuDataTids","root","TooltipMenu","rootNode","props","getProps","defaultProps","caption","isProductionEnv","Error","render","theme","ThemeFactory","create","popupPinOffset","tooltipMenuPinOffset","popupMargin","tooltipMenuMargin","popupPinSize","tooltipMenuPinSize","menuScrollContainerContentWrapperPaddingY","menuLegacyPaddingY","renderMain","disableAnimations","setRootNode","menuMaxHeight","menuWidth","header","footer","preventIconsOffset","positions","onOpen","onClose","children","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"mappings":"+WAAA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,gE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CO,IAAMA,mBAAmB,GAAG;AACjCC,EAAAA,IAAI,EAAE,mBAD2B,EAA5B,C;;;;;AAMP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;AAEaC,W,OADZC,kB;;;;;;;;;;;;AAaC,uBAAYC,KAAZ,EAAqC;AACnC,wCAAMA,KAAN,UADmC,MAF7BC,QAE6B,GAFlB,0CAAkBH,WAAW,CAACI,YAA9B,CAEkB;;AAGnC,QAAI,CAACF,KAAK,CAACG,OAAP,IAAkB,CAACC,mCAAvB,EAAwC;AACtC,YAAM,IAAIC,KAAJ,CAAU,+BAAV,CAAN;AACD,KALkC;AAMpC,G;;AAEMC,EAAAA,M,GAAP,kBAAgB;AACd;AACE,mCAAC,0BAAD,CAAc,QAAd;AACG,gBAACC,KAAD,EAAW;AACV;AACE,uCAAC,0BAAD,CAAc,QAAd;AACE,YAAA,KAAK,EAAEC,2BAAaC,MAAb;AACL;AACEC,cAAAA,cAAc,EAAEH,KAAK,CAACI,oBADxB;AAEEC,cAAAA,WAAW,EAAEL,KAAK,CAACM,iBAFrB;AAGEC,cAAAA,YAAY,EAAEP,KAAK,CAACQ,kBAHtB;AAIEC,cAAAA,yCAAyC,EAAET,KAAK,CAACU,kBAJnD,EADK;;AAOLV,YAAAA,KAPK,CADT;;;AAWG,UAAA,MAAI,CAACW,UAAL,EAXH,CADF;;;AAeD,OAjBH,CADF;;;AAqBD,G;;AAEMA,EAAAA,U,GAAP,sBAAoB;AAClB,QAAI,CAAC,KAAKlB,KAAL,CAAWG,OAAhB,EAAyB;AACvB,aAAO,IAAP;AACD;;AAED,yBAA8B,KAAKF,QAAL,EAA9B,CAAQkB,iBAAR,kBAAQA,iBAAR;;AAEA;AACE,mCAAC,4BAAD,2BAAe,WAAW,EAAE,KAAKC,WAAjC,IAAkD,KAAKpB,KAAvD;AACE,mCAAC,oBAAD;AACE,sBAAY,KAAKA,KAAL,CAAW,YAAX,CADd;AAEE,oBAAUJ,mBAAmB,CAACC,IAFhC;AAGE,QAAA,aAAa,EAAE,KAAKG,KAAL,CAAWqB,aAH5B;AAIE,QAAA,SAAS,EAAE,KAAKrB,KAAL,CAAWsB,SAJxB;AAKE,QAAA,OAAO,EAAE,KAAKtB,KAAL,CAAWG,OALtB;AAME,QAAA,MAAM,EAAE,KAAKH,KAAL,CAAWuB,MANrB;AAOE,QAAA,MAAM,EAAE,KAAKvB,KAAL,CAAWwB,MAPrB;AAQE,QAAA,kBAAkB,EAAE,KAAKxB,KAAL,CAAWyB,kBARjC;AASE,QAAA,SAAS,EAAE,KAAKzB,KAAL,CAAW0B,SATxB;AAUE,QAAA,MAAM,EAAE,KAAK1B,KAAL,CAAW2B,MAVrB;AAWE,QAAA,OAAO,EAAE,KAAK3B,KAAL,CAAW4B,OAXtB;AAYE,QAAA,WAAW,MAZb;AAaE,QAAA,iBAAiB,EAAET,iBAbrB;;AAeG,WAAKnB,KAAL,CAAW6B,QAfd,CADF,CADF;;;;AAqBD,G,sBAxE8BC,eAAMC,S,WACvBC,mB,GAAsB,a,UACtBC,W,GAAc,a,UAId/B,Y,GAA6B,EACzCiB,iBAAiB,EAAEe,6BADsB,E","sourcesContent":["import React, { AriaAttributes } from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { MenuItemProps } from '../MenuItem';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { MenuHeaderProps } from '../MenuHeader';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nexport type TooltipMenuChildType = React.ReactElement<MenuItemProps | unknown | MenuHeaderProps>;\n\nexport interface TooltipMenuProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'preventIconsOffset'> {\n children?: TooltipMenuChildType | TooltipMenuChildType[];\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол [MenuHeader](#/Components/MenuHeader) передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен [MenuSeparator](#/Components/MenuSeparator).\n */\n footer?: React.ReactNode;\n /** Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n */\n positions?: PopupPositionsType[];\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n}\n\nexport const TooltipMenuDataTids = {\n root: 'TooltipMenu__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TooltipMenuProps, 'disableAnimations'>>;\n\n/**\n * Меню, раскрывающееся по клику на переданный в `caption` элемент.\n *\n * Положение меню задаётся с помощью массива `positions` и работает так:\n * первое значение в массиве - дефолтная позиция, меню раскроется на этой позиции, если оно не будет выходить за пределы `viewport`,\n * если раскрыться в дефолтной позиции не получится - будет использована следующая позиция, и так далее, пока не будет достигнут конец массива. Если все положения из списка будут выходить за пределы `viewport`, в качестве положения будет использовано первое значение в массиве.\n *\n * Если меню должно раскрываться только в одну сторону - массив `positions` должен содержать только один элемент: сторону, в которую должно открываться меню.\n *\n * Если массив `positions` не передан (или передан пустой массив), будут использованы всевозможные значения.\n */\n@rootNode\nexport class TooltipMenu extends React.Component<TooltipMenuProps> {\n public static __KONTUR_REACT_UI__ = 'TooltipMenu';\n public static displayName = 'TooltipMenu';\n\n private setRootNode!: TSetRootNode;\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(TooltipMenu.defaultProps);\n\n constructor(props: TooltipMenuProps) {\n super(props);\n\n if (!props.caption && !isProductionEnv) {\n throw new Error('Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipMenuPinOffset,\n popupMargin: theme.tooltipMenuMargin,\n popupPinSize: theme.tooltipMenuPinSize,\n menuScrollContainerContentWrapperPaddingY: theme.menuLegacyPaddingY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n\n const { disableAnimations } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n aria-label={this.props['aria-label']}\n data-tid={TooltipMenuDataTids.root}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n caption={this.props.caption}\n header={this.props.header}\n footer={this.props.footer}\n preventIconsOffset={this.props.preventIconsOffset}\n positions={this.props.positions}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n popupHasPin\n disableAnimations={disableAnimations}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { MutableRefObject } from 'react';
2
2
  interface IUseDropProps {
3
- onDrop?: (event: Event) => void;
3
+ onDrop?: (event: DragEvent) => void;
4
4
  }
5
5
  declare type IElementWithListener = Pick<HTMLElement, 'addEventListener' | 'removeEventListener'>;
6
6
  interface IUseDropResult<TElement extends IElementWithListener> {
@@ -1 +1 @@
1
- {"version":3,"sources":["useDrop.ts"],"names":["useDrop","props","onDrop","droppableRef","overRef","timerId","isDraggable","setIsDraggable","clearTimer","current","globalObject","clearTimeout","handleDragOver","event","preventDefault","setTimeout","stopPropagation","handleDrop","ref","addEventListener","removeEventListener"],"mappings":"gEAAA;AACA;;;;;;;;;;;;;AAaO,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAAwCC,KAAxC,EAAgG,KAAxDA,KAAwD,cAAxDA,KAAwD,GAAjC,EAAiC;AACrH,eAAmBA,KAAnB,CAAQC,MAAR,UAAQA,MAAR;;AAEA,MAAMC,YAAY,GAAG,mBAAiB,IAAjB,CAArB;AACA,MAAMC,OAAO,GAAG,mBAAgB,KAAhB,CAAhB;AACA,MAAMC,OAAO,GAAG,oBAAhB;AACA,kBAAsC,qBAAkB,KAAlB,CAAtC,CAAOC,WAAP,gBAAoBC,cAApB;;AAEA,MAAMC,UAAU,GAAG,wBAAY,YAAM;AACnCH,IAAAA,OAAO,CAACI,OAAR,IAAmBC,2BAAaC,YAAb,CAA0BN,OAAO,CAACI,OAAlC,CAAnB;AACD,GAFkB,EAEhB,EAFgB,CAAnB;;AAIA,MAAMG,cAAc,GAAG;AACrB,YAACC,KAAD,EAAW;AACTA,IAAAA,KAAK,CAACC,cAAN;AACAP,IAAAA,cAAc,CAAC,IAAD,CAAd;;AAEAC,IAAAA,UAAU;AACVH,IAAAA,OAAO,CAACI,OAAR,GAAkBC,2BAAaK,UAAb,CAAwB,YAAM;AAC9CX,MAAAA,OAAO,CAACK,OAAR,GAAkB,KAAlB;AACAF,MAAAA,cAAc,CAAC,KAAD,CAAd;AACD,KAHiB,EAGf,GAHe,CAAlB;AAID,GAVoB;AAWrB,GAACC,UAAD,CAXqB,CAAvB;;;AAcA,MAAMM,cAAc,GAAG,wBAAY,UAACD,KAAD,EAAW;AAC5CA,IAAAA,KAAK,CAACC,cAAN;AACAD,IAAAA,KAAK,CAACG,eAAN;AACD,GAHsB,EAGpB,EAHoB,CAAvB;;AAKA,MAAMC,UAAU,GAAG;AACjB,YAACJ,KAAD,EAAkB;AAChBC,IAAAA,cAAc,CAACD,KAAD,CAAd;AACAN,IAAAA,cAAc,CAAC,KAAD,CAAd;AACAH,IAAAA,OAAO,CAACK,OAAR,GAAkB,KAAlB;;AAEAP,IAAAA,MAAM,QAAN,YAAAA,MAAM,CAAGW,KAAH,CAAN;AACD,GAPgB;AAQjB,GAACC,cAAD,EAAiBZ,MAAjB,CARiB,CAAnB;;;AAWA,wBAAU,YAAM;AACd,QAAMgB,GAAG,GAAGf,YAAY,CAACM,OAAzB;;AAEA,QAAI,CAACS,GAAL,EAAU;AACR;AACD;;AAEDA,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,WAArB,EAAkCL,cAAlC;AACAI,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,WAArB,EAAkCL,cAAlC;AACAI,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,UAArB,EAAiCP,cAAjC;AACAM,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,MAArB,EAA6BF,UAA7B;;AAEA,WAAO,YAAM;AACXC,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,WAAxB,EAAqCN,cAArC;AACAI,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,WAAxB,EAAqCN,cAArC;AACAI,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,UAAxB,EAAoCR,cAApC;AACAM,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,MAAxB,EAAgCH,UAAhC;AACD,KALD;AAMD,GAlBD,EAkBG,CAACA,UAAD,EAAaL,cAAb,EAA6BE,cAA7B,CAlBH;;AAoBA,SAAO,EAAER,WAAW,EAAXA,WAAF,EAAeY,GAAG,EAAEf,YAApB,EAAP;AACD,CA/DM,C","sourcesContent":["import { MutableRefObject, useCallback, useEffect, useRef, useState } from 'react';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\n\ninterface IUseDropProps {\n onDrop?: (event: Event) => void;\n}\n\ntype IElementWithListener = Pick<HTMLElement, 'addEventListener' | 'removeEventListener'>;\n\ninterface IUseDropResult<TElement extends IElementWithListener> {\n isDraggable: boolean;\n ref: MutableRefObject<TElement | null>;\n}\n\nexport const useDrop = <TElement extends IElementWithListener>(props: IUseDropProps = {}): IUseDropResult<TElement> => {\n const { onDrop } = props;\n\n const droppableRef = useRef<TElement>(null);\n const overRef = useRef<boolean>(false);\n const timerId = useRef<SafeTimer>();\n const [isDraggable, setIsDraggable] = useState<boolean>(false);\n\n const clearTimer = useCallback(() => {\n timerId.current && globalObject.clearTimeout(timerId.current);\n }, []);\n\n const handleDragOver = useCallback(\n (event) => {\n event.preventDefault();\n setIsDraggable(true);\n\n clearTimer();\n timerId.current = globalObject.setTimeout(() => {\n overRef.current = false;\n setIsDraggable(false);\n }, 200);\n },\n [clearTimer],\n );\n\n const preventDefault = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDrop = useCallback(\n (event: Event) => {\n preventDefault(event);\n setIsDraggable(false);\n overRef.current = false;\n\n onDrop?.(event);\n },\n [preventDefault, onDrop],\n );\n\n useEffect(() => {\n const ref = droppableRef.current;\n\n if (!ref) {\n return;\n }\n\n ref.addEventListener('dragenter', preventDefault);\n ref.addEventListener('dragleave', preventDefault);\n ref.addEventListener('dragover', handleDragOver);\n ref.addEventListener('drop', handleDrop);\n\n return () => {\n ref.removeEventListener('dragenter', preventDefault);\n ref.removeEventListener('dragleave', preventDefault);\n ref.removeEventListener('dragover', handleDragOver);\n ref.removeEventListener('drop', handleDrop);\n };\n }, [handleDrop, handleDragOver, preventDefault]);\n\n return { isDraggable, ref: droppableRef };\n};\n"]}
1
+ {"version":3,"sources":["useDrop.ts"],"names":["useDrop","props","onDrop","droppableRef","overRef","timerId","isDraggable","setIsDraggable","clearTimer","current","globalObject","clearTimeout","handleDragOver","event","preventDefault","setTimeout","stopPropagation","handleDrop","ref","addEventListener","removeEventListener"],"mappings":"gEAAA;AACA;;;;;;;;;;;;;AAaO,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAAwCC,KAAxC,EAAgG,KAAxDA,KAAwD,cAAxDA,KAAwD,GAAjC,EAAiC;AACrH,eAAmBA,KAAnB,CAAQC,MAAR,UAAQA,MAAR;;AAEA,MAAMC,YAAY,GAAG,mBAAiB,IAAjB,CAArB;AACA,MAAMC,OAAO,GAAG,mBAAgB,KAAhB,CAAhB;AACA,MAAMC,OAAO,GAAG,oBAAhB;AACA,kBAAsC,qBAAkB,KAAlB,CAAtC,CAAOC,WAAP,gBAAoBC,cAApB;;AAEA,MAAMC,UAAU,GAAG,wBAAY,YAAM;AACnCH,IAAAA,OAAO,CAACI,OAAR,IAAmBC,2BAAaC,YAAb,CAA0BN,OAAO,CAACI,OAAlC,CAAnB;AACD,GAFkB,EAEhB,EAFgB,CAAnB;;AAIA,MAAMG,cAAc,GAAG;AACrB,YAACC,KAAD,EAAsB;AACpBA,IAAAA,KAAK,CAACC,cAAN;AACAP,IAAAA,cAAc,CAAC,IAAD,CAAd;;AAEAC,IAAAA,UAAU;AACVH,IAAAA,OAAO,CAACI,OAAR,GAAkBC,2BAAaK,UAAb,CAAwB,YAAM;AAC9CX,MAAAA,OAAO,CAACK,OAAR,GAAkB,KAAlB;AACAF,MAAAA,cAAc,CAAC,KAAD,CAAd;AACD,KAHiB,EAGf,GAHe,CAAlB;AAID,GAVoB;AAWrB,GAACC,UAAD,CAXqB,CAAvB;;;AAcA,MAAMM,cAAc,GAAG,wBAAY,UAACD,KAAD,EAAsB;AACvDA,IAAAA,KAAK,CAACC,cAAN;AACAD,IAAAA,KAAK,CAACG,eAAN;AACD,GAHsB,EAGpB,EAHoB,CAAvB;;AAKA,MAAMC,UAAU,GAAG;AACjB,YAACJ,KAAD,EAAsB;AACpBC,IAAAA,cAAc,CAACD,KAAD,CAAd;AACAN,IAAAA,cAAc,CAAC,KAAD,CAAd;AACAH,IAAAA,OAAO,CAACK,OAAR,GAAkB,KAAlB;;AAEAP,IAAAA,MAAM,QAAN,YAAAA,MAAM,CAAGW,KAAH,CAAN;AACD,GAPgB;AAQjB,GAACC,cAAD,EAAiBZ,MAAjB,CARiB,CAAnB;;;AAWA,wBAAU,YAAM;AACd,QAAMgB,GAAG,GAAGf,YAAY,CAACM,OAAzB;;AAEA,QAAI,CAACS,GAAL,EAAU;AACR;AACD;;AAEDA,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,WAArB,EAAkCL,cAAlC;AACAI,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,WAArB,EAAkCL,cAAlC;AACAI,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,UAArB,EAAiCP,cAAjC;AACAM,IAAAA,GAAG,CAACC,gBAAJ,CAAqB,MAArB,EAA6BF,UAA7B;;AAEA,WAAO,YAAM;AACXC,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,WAAxB,EAAqCN,cAArC;AACAI,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,WAAxB,EAAqCN,cAArC;AACAI,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,UAAxB,EAAoCR,cAApC;AACAM,MAAAA,GAAG,CAACE,mBAAJ,CAAwB,MAAxB,EAAgCH,UAAhC;AACD,KALD;AAMD,GAlBD,EAkBG,CAACA,UAAD,EAAaL,cAAb,EAA6BE,cAA7B,CAlBH;;AAoBA,SAAO,EAAER,WAAW,EAAXA,WAAF,EAAeY,GAAG,EAAEf,YAApB,EAAP;AACD,CA/DM,C","sourcesContent":["import { MutableRefObject, useCallback, useEffect, useRef, useState } from 'react';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\n\ninterface IUseDropProps {\n onDrop?: (event: DragEvent) => void;\n}\n\ntype IElementWithListener = Pick<HTMLElement, 'addEventListener' | 'removeEventListener'>;\n\ninterface IUseDropResult<TElement extends IElementWithListener> {\n isDraggable: boolean;\n ref: MutableRefObject<TElement | null>;\n}\n\nexport const useDrop = <TElement extends IElementWithListener>(props: IUseDropProps = {}): IUseDropResult<TElement> => {\n const { onDrop } = props;\n\n const droppableRef = useRef<TElement>(null);\n const overRef = useRef<boolean>(false);\n const timerId = useRef<SafeTimer>();\n const [isDraggable, setIsDraggable] = useState<boolean>(false);\n\n const clearTimer = useCallback(() => {\n timerId.current && globalObject.clearTimeout(timerId.current);\n }, []);\n\n const handleDragOver = useCallback(\n (event: DragEvent) => {\n event.preventDefault();\n setIsDraggable(true);\n\n clearTimer();\n timerId.current = globalObject.setTimeout(() => {\n overRef.current = false;\n setIsDraggable(false);\n }, 200);\n },\n [clearTimer],\n );\n\n const preventDefault = useCallback((event: DragEvent) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDrop = useCallback(\n (event: DragEvent) => {\n preventDefault(event);\n setIsDraggable(false);\n overRef.current = false;\n\n onDrop?.(event);\n },\n [preventDefault, onDrop],\n );\n\n useEffect(() => {\n const ref = droppableRef.current;\n\n if (!ref) {\n return;\n }\n\n ref.addEventListener('dragenter', preventDefault);\n ref.addEventListener('dragleave', preventDefault);\n ref.addEventListener('dragover', handleDragOver);\n ref.addEventListener('drop', handleDrop);\n\n return () => {\n ref.removeEventListener('dragenter', preventDefault);\n ref.removeEventListener('dragleave', preventDefault);\n ref.removeEventListener('dragover', handleDragOver);\n ref.removeEventListener('drop', handleDrop);\n };\n }, [handleDrop, handleDragOver, preventDefault]);\n\n return { isDraggable, ref: droppableRef };\n};\n"]}
package/cjs/index.d.ts CHANGED
@@ -55,6 +55,8 @@ export * from './lib/theming/themes/DefaultTheme8pxOld';
55
55
  export * from './lib/theming/themes/FlatTheme8pxOld';
56
56
  export * from './lib/theming/themes/Theme2022';
57
57
  export * from './lib/theming/themes/Theme2022Dark';
58
+ export * from './lib/theming/themes/Theme2022Update2024';
59
+ export * from './lib/theming/themes/Theme2022DarkUpdate2024';
58
60
  export * from './lib/types/props';
59
61
  export * from './internal/Popup/types';
60
62
  export * as ColorFunctions from './lib/styles/ColorFunctions';
package/cjs/index.js CHANGED
@@ -55,5 +55,7 @@ var _DefaultTheme8pxOld = require("./lib/theming/themes/DefaultTheme8pxOld");Obj
55
55
  var _FlatTheme8pxOld = require("./lib/theming/themes/FlatTheme8pxOld");Object.keys(_FlatTheme8pxOld).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _FlatTheme8pxOld[key]) return;exports[key] = _FlatTheme8pxOld[key];});
56
56
  var _Theme = require("./lib/theming/themes/Theme2022");Object.keys(_Theme).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Theme[key]) return;exports[key] = _Theme[key];});
57
57
  var _Theme2022Dark = require("./lib/theming/themes/Theme2022Dark");Object.keys(_Theme2022Dark).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Theme2022Dark[key]) return;exports[key] = _Theme2022Dark[key];});
58
+ var _Theme2022Update = require("./lib/theming/themes/Theme2022Update2024");Object.keys(_Theme2022Update).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Theme2022Update[key]) return;exports[key] = _Theme2022Update[key];});
59
+ var _Theme2022DarkUpdate = require("./lib/theming/themes/Theme2022DarkUpdate2024");Object.keys(_Theme2022DarkUpdate).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _Theme2022DarkUpdate[key]) return;exports[key] = _Theme2022DarkUpdate[key];});
58
60
  var _props = require("./lib/types/props");Object.keys(_props).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _props[key]) return;exports[key] = _props[key];});
59
61
  var _types = require("./internal/Popup/types");Object.keys(_types).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _types[key]) return;exports[key] = _types[key];});var _ColorFunctions = _interopRequireWildcard(require("./lib/styles/ColorFunctions"));exports.ColorFunctions = _ColorFunctions;var _DimensionFunctions = _interopRequireWildcard(require("./lib/styles/DimensionFunctions"));exports.DimensionFunctions = _DimensionFunctions;
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":"yQAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8S","sourcesContent":["export * from './components/Autocomplete';\nexport * from './components/Button';\nexport * from './components/Calendar';\nexport * from './components/Center';\nexport * from './components/Checkbox';\nexport * from './components/ComboBox';\nexport * from './components/CurrencyInput';\nexport * from './components/CurrencyLabel';\nexport * from './components/DateInput';\nexport * from './components/DatePicker';\nexport * from './components/Dropdown';\nexport * from './components/DropdownMenu';\nexport * from './components/FileUploader';\nexport * from './components/FxInput';\nexport * from './components/Gapped';\nexport * from './components/GlobalLoader';\nexport * from './components/Group';\nexport * from './components/Hint';\nexport * from './components/Input';\nexport * from './components/Kebab';\nexport * from './components/Link';\nexport * from './components/Loader';\nexport * from './components/MenuHeader';\nexport * from './components/MenuItem';\nexport * from './components/MenuSeparator';\nexport * from './components/MiniModal';\nexport * from './components/Modal';\nexport * from './components/Paging';\nexport * from './components/PasswordInput';\nexport * from './components/Radio';\nexport * from './components/RadioGroup';\nexport * from './components/ScrollContainer';\nexport * from './components/Select';\nexport * from './components/SidePage';\nexport * from './components/Spinner';\nexport * from './components/Sticky';\nexport * from './components/Switcher';\nexport * from './components/Tabs';\nexport * from './components/Textarea';\nexport * from './components/Toast';\nexport * from './components/SingleToast';\nexport * from './components/Toggle';\nexport * from './components/Token';\nexport * from './components/TokenInput';\nexport * from './components/Tooltip';\nexport * from './components/TooltipMenu';\nexport * from './components/ResponsiveLayout';\nexport * from './lib/featureFlagsContext';\nexport * from './lib/locale';\nexport * from './lib/theming/ThemeContext';\nexport * from './lib/theming/ThemeFactory';\nexport * from './lib/theming/themes/DefaultTheme';\nexport * from './lib/theming/themes/DarkTheme';\nexport * from './lib/theming/themes/DefaultTheme8pxOld';\nexport * from './lib/theming/themes/FlatTheme8pxOld';\nexport * from './lib/theming/themes/Theme2022';\nexport * from './lib/theming/themes/Theme2022Dark';\nexport * from './lib/types/props';\nexport * from './internal/Popup/types';\nexport * as ColorFunctions from './lib/styles/ColorFunctions';\nexport * as DimensionFunctions from './lib/styles/DimensionFunctions';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":"yQAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8S","sourcesContent":["export * from './components/Autocomplete';\nexport * from './components/Button';\nexport * from './components/Calendar';\nexport * from './components/Center';\nexport * from './components/Checkbox';\nexport * from './components/ComboBox';\nexport * from './components/CurrencyInput';\nexport * from './components/CurrencyLabel';\nexport * from './components/DateInput';\nexport * from './components/DatePicker';\nexport * from './components/Dropdown';\nexport * from './components/DropdownMenu';\nexport * from './components/FileUploader';\nexport * from './components/FxInput';\nexport * from './components/Gapped';\nexport * from './components/GlobalLoader';\nexport * from './components/Group';\nexport * from './components/Hint';\nexport * from './components/Input';\nexport * from './components/Kebab';\nexport * from './components/Link';\nexport * from './components/Loader';\nexport * from './components/MenuHeader';\nexport * from './components/MenuItem';\nexport * from './components/MenuSeparator';\nexport * from './components/MiniModal';\nexport * from './components/Modal';\nexport * from './components/Paging';\nexport * from './components/PasswordInput';\nexport * from './components/Radio';\nexport * from './components/RadioGroup';\nexport * from './components/ScrollContainer';\nexport * from './components/Select';\nexport * from './components/SidePage';\nexport * from './components/Spinner';\nexport * from './components/Sticky';\nexport * from './components/Switcher';\nexport * from './components/Tabs';\nexport * from './components/Textarea';\nexport * from './components/Toast';\nexport * from './components/SingleToast';\nexport * from './components/Toggle';\nexport * from './components/Token';\nexport * from './components/TokenInput';\nexport * from './components/Tooltip';\nexport * from './components/TooltipMenu';\nexport * from './components/ResponsiveLayout';\nexport * from './lib/featureFlagsContext';\nexport * from './lib/locale';\nexport * from './lib/theming/ThemeContext';\nexport * from './lib/theming/ThemeFactory';\nexport * from './lib/theming/themes/DefaultTheme';\nexport * from './lib/theming/themes/DarkTheme';\nexport * from './lib/theming/themes/DefaultTheme8pxOld';\nexport * from './lib/theming/themes/FlatTheme8pxOld';\nexport * from './lib/theming/themes/Theme2022';\nexport * from './lib/theming/themes/Theme2022Dark';\nexport * from './lib/theming/themes/Theme2022Update2024';\nexport * from './lib/theming/themes/Theme2022DarkUpdate2024';\nexport * from './lib/types/props';\nexport * from './internal/Popup/types';\nexport * as ColorFunctions from './lib/styles/ColorFunctions';\nexport * as DimensionFunctions from './lib/styles/DimensionFunctions';\n"]}
@@ -8,8 +8,8 @@ var _callChildRef = require("../../lib/callChildRef/callChildRef");
8
8
  var _Emotion = require("../../lib/theming/Emotion");
9
9
 
10
10
 
11
- var _extractCommonProps2 = require("./extractCommonProps");
12
- var _getCommonVisualStateDataAttributes = require("./getCommonVisualStateDataAttributes");var _excluded = ["className", "style", "children", "rootNodeRef"];var _class, _class2, _temp;var
11
+ var _extractCommonProps2 = require("./utils/extractCommonProps");
12
+ var _getCommonVisualStateDataAttributes = require("./utils/getCommonVisualStateDataAttributes");var _excluded = ["className", "style", "children", "rootNodeRef"];var _class, _class2, _temp;var
13
13
 
14
14
 
15
15
 
@@ -1 +1 @@
1
- {"version":3,"sources":["CommonWrapper.tsx"],"names":["CommonWrapper","rootNode","rootNodeSubscription","ref","instance","setRootNode","props","rootNodeRef","remove","addRootNodeChangeListener","node","originalRef","child","render","emotion","renderMain","className","style","children","dataProps","rest","getChildProps","childProps","classNames","cx","styles","Object","keys","length","isValidElement","React","cloneElement","Component","__KONTUR_REACT_UI__","displayName"],"mappings":"+cAAA;;;AAGA;;AAEA;AACA;AACA;;;AAGA;AACA,0F;;;;;AAKaA,a,OADZC,kB;;;;;;;;AASSC,IAAAA,oB,GAAwD,I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCxDC,IAAAA,G,GAAM,UAACC,QAAD,EAA6C;AACzD,YAAKC,WAAL,CAAiBD,QAAjB;AACA,YAAKE,KAAL,CAAWC,WAAX,0BAAKD,KAAL,CAAWC,WAAX,CAAyB,2BAAYH,QAAZ,CAAzB;;AAEA;AACA;AACA,qCAAKF,oBAAL,2CAA2BM,MAA3B;AACA,YAAKN,oBAAL,GAA4B,IAA5B;;AAEA,UAAIE,QAAQ,IAAI,sCAAuBA,QAAvB,CAAhB,EAAkD;AAChD,cAAKF,oBAAL,GAA4BE,QAAQ,CAACK,yBAArC,oBAA4BL,QAAQ,CAACK,yBAAT,CAAqC,UAACC,IAAD,EAAU;AACzE,gBAAKL,WAAL,CAAiBK,IAAjB;AACA,gBAAKJ,KAAL,CAAWC,WAAX,0BAAKD,KAAL,CAAWC,WAAX,CAAyBG,IAAzB;AACD,SAH2B,CAA5B;AAID;;AAED,UAAMC,WAAW,kBAAI,MAAKC,KAAT,qBAAG,YAA0CT,GAA9D;AACAQ,MAAAA,WAAW,IAAI,gCAAaA,WAAb,EAA0BP,QAA1B,CAAf;AACD,K,2DAvDDS,M,GAAA,kBAAS,mBACP,oBACE,6BAAC,wBAAD,QACG,UAACC,OAAD,EAAa,CACZ,MAAI,CAACA,OAAL,GAAeA,OAAf,CACA,OAAO,MAAI,CAACC,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,QAEDA,U,GAAA,sBAAa,mBACX,0BAAiF,6CAAmB,KAAKT,KAAxB,CAAjF,+CAASU,SAAT,wBAASA,SAAT,CAAoBC,KAApB,wBAAoBA,KAApB,CAA2BC,QAA3B,wBAA2BA,QAA3B,CAAqCX,WAArC,wBAAqCA,WAArC,CAAqDY,SAArD,gFAAuEC,IAAvE,sDACA,KAAKR,KAAL,GAAa,uBAAWM,QAAX,IAAuBA,QAAQ,CAACE,IAAD,CAA/B,GAAwCF,QAArD,CAEA,IAAMG,aAAa,GAAG,SAAhBA,aAAgB,CAACT,KAAD,EAAuE,CAC3F,IAAMU,UAAmC,8BACpC,4EAAmCF,IAAnC,CADoC,EAEpCD,SAFoC,CAAzC,CAKA,6BAAiBP,KAAjB,MAA4BU,UAAU,CAACnB,GAAX,GAAiB,MAAI,CAACA,GAAlD,EAEA,IAAMoB,UAAkB,GAAG,MAAI,CAACT,OAAL,CAAaU,EAAb,CAAgBZ,KAAK,CAACN,KAAN,CAAYU,SAA5B,EAAuCA,SAAvC,CAA3B,CACAO,UAAU,KAAKD,UAAU,CAACN,SAAX,GAAuBO,UAA5B,CAAV,CAEA,IAAME,MAA2B,8BAAQb,KAAK,CAACN,KAAN,CAAYW,KAApB,EAA8BA,KAA9B,CAAjC,CACAS,MAAM,CAACC,IAAP,CAAYF,MAAZ,EAAoBG,MAApB,KAA+BN,UAAU,CAACL,KAAX,GAAmBQ,MAAlD,EAEA,OAAOH,UAAP,CACD,CAfD,CAiBA,OAAO,4BAAMO,cAAN,CAA6D,KAAKjB,KAAlE,iBACHkB,eAAMC,YAAN,CAAmB,KAAKnB,KAAxB,EAA+BS,aAAa,CAAC,KAAKT,KAAN,CAA5C,CADG,GAEH,KAAKA,KAFT,CAGD,C,wBA9CsEkB,eAAME,S,WAG/DC,mB,GAAsB,e,UACtBC,W,GAAc,e","sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isFunction, isRefableElement } from '../../lib/utils';\nimport { Nullable } from '../../typings/utility-types';\nimport { getRootNode, isInstanceWithRootNode, rootNode, TRootNodeSubscription, TSetRootNode } from '../../lib/rootNode';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\n\nimport type { CommonProps, CommonPropsRootNodeRef, CommonWrapperProps } from './types';\nimport { extractCommonProps } from './extractCommonProps';\nimport { getCommonVisualStateDataAttributes } from './getCommonVisualStateDataAttributes';\n\nexport type CommonPropsWithRootNodeRef = CommonProps & CommonPropsRootNodeRef;\n\n@rootNode\nexport class CommonWrapper<P extends CommonPropsWithRootNodeRef> extends React.Component<\n CommonWrapperProps<P> & CommonPropsRootNodeRef\n> {\n public static __KONTUR_REACT_UI__ = 'CommonWrapper';\n public static displayName = 'CommonWrapper';\n\n private child: React.ReactNode;\n private setRootNode!: TSetRootNode;\n private rootNodeSubscription: Nullable<TRootNodeSubscription> = null;\n private emotion!: Emotion;\n\n render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return this.renderMain();\n }}\n </EmotionConsumer>\n );\n }\n\n renderMain() {\n const [{ className, style, children, rootNodeRef, ...dataProps }, { ...rest }] = extractCommonProps(this.props);\n this.child = isFunction(children) ? children(rest) : children;\n\n const getChildProps = (child: React.ReactElement<CommonProps & React.RefAttributes<any>>) => {\n const childProps: Record<string, unknown> = {\n ...getCommonVisualStateDataAttributes(rest),\n ...dataProps,\n };\n\n isRefableElement(child) && (childProps.ref = this.ref);\n\n const classNames: string = this.emotion.cx(child.props.className, className);\n classNames && (childProps.className = classNames);\n\n const styles: React.CSSProperties = { ...child.props.style, ...style };\n Object.keys(styles).length && (childProps.style = styles);\n\n return childProps;\n };\n\n return React.isValidElement<CommonProps & React.RefAttributes<any>>(this.child)\n ? React.cloneElement(this.child, getChildProps(this.child))\n : this.child;\n }\n\n private ref = (instance: Nullable<React.ReactInstance>) => {\n this.setRootNode(instance);\n this.props.rootNodeRef?.(getRootNode(instance));\n\n // refs are called when instances change,\n // so we have to renew or remove old subscription\n this.rootNodeSubscription?.remove();\n this.rootNodeSubscription = null;\n\n if (instance && isInstanceWithRootNode(instance)) {\n this.rootNodeSubscription = instance.addRootNodeChangeListener?.((node) => {\n this.setRootNode(node);\n this.props.rootNodeRef?.(node);\n });\n }\n\n const originalRef = (this.child as React.RefAttributes<any>)?.ref;\n originalRef && callChildRef(originalRef, instance);\n };\n}\n"]}
1
+ {"version":3,"sources":["CommonWrapper.tsx"],"names":["CommonWrapper","rootNode","rootNodeSubscription","ref","instance","setRootNode","props","rootNodeRef","remove","addRootNodeChangeListener","node","originalRef","child","render","emotion","renderMain","className","style","children","dataProps","rest","getChildProps","childProps","classNames","cx","styles","Object","keys","length","isValidElement","React","cloneElement","Component","__KONTUR_REACT_UI__","displayName"],"mappings":"+cAAA;;;AAGA;;AAEA;AACA;AACA;;;AAGA;AACA,gG;;;;;AAKaA,a,OADZC,kB;;;;;;;;AASSC,IAAAA,oB,GAAwD,I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCxDC,IAAAA,G,GAAM,UAACC,QAAD,EAA6C;AACzD,YAAKC,WAAL,CAAiBD,QAAjB;AACA,YAAKE,KAAL,CAAWC,WAAX,0BAAKD,KAAL,CAAWC,WAAX,CAAyB,2BAAYH,QAAZ,CAAzB;;AAEA;AACA;AACA,qCAAKF,oBAAL,2CAA2BM,MAA3B;AACA,YAAKN,oBAAL,GAA4B,IAA5B;;AAEA,UAAIE,QAAQ,IAAI,sCAAuBA,QAAvB,CAAhB,EAAkD;AAChD,cAAKF,oBAAL,GAA4BE,QAAQ,CAACK,yBAArC,oBAA4BL,QAAQ,CAACK,yBAAT,CAAqC,UAACC,IAAD,EAAU;AACzE,gBAAKL,WAAL,CAAiBK,IAAjB;AACA,gBAAKJ,KAAL,CAAWC,WAAX,0BAAKD,KAAL,CAAWC,WAAX,CAAyBG,IAAzB;AACD,SAH2B,CAA5B;AAID;;AAED,UAAMC,WAAW,kBAAI,MAAKC,KAAT,qBAAG,YAA0CT,GAA9D;AACAQ,MAAAA,WAAW,IAAI,gCAAaA,WAAb,EAA0BP,QAA1B,CAAf;AACD,K,2DAvDDS,M,GAAA,kBAAS,mBACP,oBACE,6BAAC,wBAAD,QACG,UAACC,OAAD,EAAa,CACZ,MAAI,CAACA,OAAL,GAAeA,OAAf,CACA,OAAO,MAAI,CAACC,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,QAEDA,U,GAAA,sBAAa,mBACX,0BAAiF,6CAAmB,KAAKT,KAAxB,CAAjF,+CAASU,SAAT,wBAASA,SAAT,CAAoBC,KAApB,wBAAoBA,KAApB,CAA2BC,QAA3B,wBAA2BA,QAA3B,CAAqCX,WAArC,wBAAqCA,WAArC,CAAqDY,SAArD,gFAAuEC,IAAvE,sDACA,KAAKR,KAAL,GAAa,uBAAWM,QAAX,IAAuBA,QAAQ,CAACE,IAAD,CAA/B,GAAwCF,QAArD,CAEA,IAAMG,aAAa,GAAG,SAAhBA,aAAgB,CAACT,KAAD,EAAuE,CAC3F,IAAMU,UAAmC,8BACpC,4EAAmCF,IAAnC,CADoC,EAEpCD,SAFoC,CAAzC,CAKA,6BAAiBP,KAAjB,MAA4BU,UAAU,CAACnB,GAAX,GAAiB,MAAI,CAACA,GAAlD,EAEA,IAAMoB,UAAkB,GAAG,MAAI,CAACT,OAAL,CAAaU,EAAb,CAAgBZ,KAAK,CAACN,KAAN,CAAYU,SAA5B,EAAuCA,SAAvC,CAA3B,CACAO,UAAU,KAAKD,UAAU,CAACN,SAAX,GAAuBO,UAA5B,CAAV,CAEA,IAAME,MAA2B,8BAAQb,KAAK,CAACN,KAAN,CAAYW,KAApB,EAA8BA,KAA9B,CAAjC,CACAS,MAAM,CAACC,IAAP,CAAYF,MAAZ,EAAoBG,MAApB,KAA+BN,UAAU,CAACL,KAAX,GAAmBQ,MAAlD,EAEA,OAAOH,UAAP,CACD,CAfD,CAiBA,OAAO,4BAAMO,cAAN,CAA6D,KAAKjB,KAAlE,iBACHkB,eAAMC,YAAN,CAAmB,KAAKnB,KAAxB,EAA+BS,aAAa,CAAC,KAAKT,KAAN,CAA5C,CADG,GAEH,KAAKA,KAFT,CAGD,C,wBA9CsEkB,eAAME,S,WAG/DC,mB,GAAsB,e,UACtBC,W,GAAc,e","sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isFunction, isRefableElement } from '../../lib/utils';\nimport { Nullable } from '../../typings/utility-types';\nimport { getRootNode, isInstanceWithRootNode, rootNode, TRootNodeSubscription, TSetRootNode } from '../../lib/rootNode';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\n\nimport type { CommonProps, CommonPropsRootNodeRef, CommonWrapperProps } from './types';\nimport { extractCommonProps } from './utils/extractCommonProps';\nimport { getCommonVisualStateDataAttributes } from './utils/getCommonVisualStateDataAttributes';\n\nexport type CommonPropsWithRootNodeRef = CommonProps & CommonPropsRootNodeRef;\n\n@rootNode\nexport class CommonWrapper<P extends CommonPropsWithRootNodeRef> extends React.Component<\n CommonWrapperProps<P> & CommonPropsRootNodeRef\n> {\n public static __KONTUR_REACT_UI__ = 'CommonWrapper';\n public static displayName = 'CommonWrapper';\n\n private child: React.ReactNode;\n private setRootNode!: TSetRootNode;\n private rootNodeSubscription: Nullable<TRootNodeSubscription> = null;\n private emotion!: Emotion;\n\n render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return this.renderMain();\n }}\n </EmotionConsumer>\n );\n }\n\n renderMain() {\n const [{ className, style, children, rootNodeRef, ...dataProps }, { ...rest }] = extractCommonProps(this.props);\n this.child = isFunction(children) ? children(rest) : children;\n\n const getChildProps = (child: React.ReactElement<CommonProps & React.RefAttributes<any>>) => {\n const childProps: Record<string, unknown> = {\n ...getCommonVisualStateDataAttributes(rest),\n ...dataProps,\n };\n\n isRefableElement(child) && (childProps.ref = this.ref);\n\n const classNames: string = this.emotion.cx(child.props.className, className);\n classNames && (childProps.className = classNames);\n\n const styles: React.CSSProperties = { ...child.props.style, ...style };\n Object.keys(styles).length && (childProps.style = styles);\n\n return childProps;\n };\n\n return React.isValidElement<CommonProps & React.RefAttributes<any>>(this.child)\n ? React.cloneElement(this.child, getChildProps(this.child))\n : this.child;\n }\n\n private ref = (instance: Nullable<React.ReactInstance>) => {\n this.setRootNode(instance);\n this.props.rootNodeRef?.(getRootNode(instance));\n\n // refs are called when instances change,\n // so we have to renew or remove old subscription\n this.rootNodeSubscription?.remove();\n this.rootNodeSubscription = null;\n\n if (instance && isInstanceWithRootNode(instance)) {\n this.rootNodeSubscription = instance.addRootNodeChangeListener?.((node) => {\n this.setRootNode(node);\n this.props.rootNodeRef?.(node);\n });\n }\n\n const originalRef = (this.child as React.RefAttributes<any>)?.ref;\n originalRef && callChildRef(originalRef, instance);\n };\n}\n"]}
@@ -1,3 +1,3 @@
1
- import type { NotCommonProps } from './types';
2
- import type { CommonPropsWithRootNodeRef } from './CommonWrapper';
1
+ import type { NotCommonProps } from '../types';
2
+ import type { CommonPropsWithRootNodeRef } from '../CommonWrapper';
3
3
  export declare const extractCommonProps: <P extends CommonPropsWithRootNodeRef>(props: P) => [CommonPropsWithRootNodeRef, NotCommonProps<P>];
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["extractCommonProps.ts"],"names":["extractCommonProps","props","common","rest","prop","isCommonProp","indexOf"],"mappings":";;;AAGO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB;AAChCC,KADgC;AAEoB;AACpD,MAAMC,MAAM,GAAG,EAAf;AACA,MAAMC,IAAI,GAAG,EAAb;;AAEA,OAAK,IAAMC,IAAX,IAAmBH,KAAnB,EAA0B;AACxB,QAAII,YAAY,CAACD,IAAD,CAAhB,EAA4D;AAC1D;AACAF,MAAAA,MAAM,CAACE,IAAD,CAAN,GAAeH,KAAK,CAACG,IAAD,CAApB;AACD,KAHD,MAGO;AACL;AACAD,MAAAA,IAAI,CAACC,IAAD,CAAJ,GAAaH,KAAK,CAACG,IAAD,CAAlB;AACD;AACF;;AAED,SAAO,CAACF,MAAD,EAASC,IAAT,CAAP;AACD,CAjBM,C;;AAmBP,IAAME,YAAY,GAAG,SAAfA,YAAe,CAACD,IAAD,EAA4C;AAC/D,UAAQ,IAAR;AACE,SAAKA,IAAI,KAAK,WAAd;AACA,SAAKA,IAAI,KAAK,OAAd;AACA,SAAKA,IAAI,KAAK,aAAd;AACA,SAAKA,IAAI,KAAK,UAAd;AACA,SAAKA,IAAI,CAACE,OAAL,CAAa,OAAb,MAA0B,CAA/B,EAAkC;AAChC,aAAO,IAAP;AACF;AACE,aAAO,KAAP,CARJ;;AAUD,CAXD","sourcesContent":["import type { NotCommonProps } from '../types';\nimport type { CommonPropsWithRootNodeRef } from '../CommonWrapper';\n\nexport const extractCommonProps = <P extends CommonPropsWithRootNodeRef>(\n props: P,\n): [CommonPropsWithRootNodeRef, NotCommonProps<P>] => {\n const common = {} as CommonPropsWithRootNodeRef;\n const rest = {} as NotCommonProps<P>;\n\n for (const prop in props) {\n if (isCommonProp(prop as keyof CommonPropsWithRootNodeRef)) {\n // @ts-expect-error: See: https://github.com/skbkontur/retail-ui/pull/2257#discussion_r565275843 and https://github.com/skbkontur/retail-ui/pull/2257#discussion_r569542736.\n common[prop] = props[prop];\n } else {\n // @ts-expect-error: Read the comment above.\n rest[prop] = props[prop];\n }\n }\n\n return [common, rest];\n};\n\nconst isCommonProp = (prop: keyof CommonPropsWithRootNodeRef) => {\n switch (true) {\n case prop === 'className':\n case prop === 'style':\n case prop === 'rootNodeRef':\n case prop === 'children':\n case prop.indexOf('data-') === 0: // все data-атрибуты\n return true;\n default:\n return false;\n }\n};\n"]}
@@ -1,12 +1,11 @@
1
1
  "use strict";exports.__esModule = true;exports.getCommonVisualStateDataAttributes = getCommonVisualStateDataAttributes;var _getVisualStateDataAttributes = require("./getVisualStateDataAttributes");
2
-
3
- var tryGetBoolean = function tryGetBoolean(value) {return typeof value === 'boolean' ? value : undefined;};
2
+ var _tryGetBoolean = require("./tryGetBoolean");
4
3
 
5
4
  function getCommonVisualStateDataAttributes(
6
5
  componentProps)
7
6
  {
8
7
  return (0, _getVisualStateDataAttributes.getVisualStateDataAttributes)({
9
- error: tryGetBoolean(componentProps['error']),
10
- warning: tryGetBoolean(componentProps['warning']) });
8
+ error: (0, _tryGetBoolean.tryGetBoolean)(componentProps['error']),
9
+ warning: (0, _tryGetBoolean.tryGetBoolean)(componentProps['warning']) });
11
10
 
12
11
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["getCommonVisualStateDataAttributes.ts"],"names":["getCommonVisualStateDataAttributes","componentProps","error","warning"],"mappings":"uHAAA;AACA;;AAEO,SAASA,kCAAT;AACLC,cADK;AAEgC;AACrC,SAAO,gEAA6B;AAClCC,IAAAA,KAAK,EAAE,kCAAcD,cAAc,CAAC,OAAD,CAA5B,CAD2B;AAElCE,IAAAA,OAAO,EAAE,kCAAcF,cAAc,CAAC,SAAD,CAA5B,CAFyB,EAA7B,CAAP;;AAID","sourcesContent":["import { getVisualStateDataAttributes, VisualStateDataAttributesResultType } from './getVisualStateDataAttributes';\nimport { tryGetBoolean } from './tryGetBoolean';\n\nexport function getCommonVisualStateDataAttributes(\n componentProps: Record<string, unknown>,\n): VisualStateDataAttributesResultType {\n return getVisualStateDataAttributes({\n error: tryGetBoolean(componentProps['error']),\n warning: tryGetBoolean(componentProps['warning']),\n });\n}\n"]}
@@ -1,3 +1,3 @@
1
- import type { Nullable } from '../../typings/utility-types';
1
+ import { Nullable } from '../../../typings/utility-types';
2
2
  export declare type VisualStateDataAttributesResultType = Record<string, string>;
3
3
  export declare function getVisualStateDataAttributes<T extends Record<string, Nullable<boolean>>>(attributes: T): VisualStateDataAttributesResultType;