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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (647) hide show
  1. package/CHANGELOG.md +120 -0
  2. package/README.md +41 -13
  3. package/cjs/components/Autocomplete/Autocomplete.js +12 -6
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Autocomplete/Autocomplete.md +76 -3
  6. package/cjs/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
  7. package/cjs/components/Autocomplete/Autocomplete.styles.js +7 -1
  8. package/cjs/components/Autocomplete/Autocomplete.styles.js.map +1 -1
  9. package/cjs/components/Button/Button.js +2 -2
  10. package/cjs/components/Button/Button.js.map +1 -1
  11. package/cjs/components/Button/Button.md +38 -11
  12. package/cjs/components/Calendar/Calendar.d.ts +28 -5
  13. package/cjs/components/Calendar/Calendar.js +80 -36
  14. package/cjs/components/Calendar/Calendar.js.map +1 -1
  15. package/cjs/components/Calendar/Calendar.md +82 -1
  16. package/cjs/components/Calendar/Calendar.styles.js +1 -1
  17. package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
  18. package/cjs/components/Calendar/CalendarContext.d.ts +12 -0
  19. package/cjs/components/Calendar/CalendarContext.js +16 -0
  20. package/cjs/components/Calendar/CalendarContext.js.map +1 -0
  21. package/cjs/components/Calendar/CalendarDateShape.d.ts +4 -2
  22. package/cjs/components/Calendar/CalendarDateShape.js +13 -3
  23. package/cjs/components/Calendar/CalendarDateShape.js.map +1 -1
  24. package/cjs/components/Calendar/CalendarDay.d.ts +12 -0
  25. package/cjs/components/Calendar/CalendarDay.js +79 -0
  26. package/cjs/components/Calendar/CalendarDay.js.map +1 -0
  27. package/cjs/components/Calendar/CalendarDay.md +70 -0
  28. package/cjs/components/Calendar/CalendarUtils.d.ts +2 -1
  29. package/cjs/components/Calendar/CalendarUtils.js +4 -6
  30. package/cjs/components/Calendar/CalendarUtils.js.map +1 -1
  31. package/cjs/components/Calendar/DayCellView.d.ts +4 -12
  32. package/cjs/components/Calendar/DayCellView.js +20 -42
  33. package/cjs/components/Calendar/DayCellView.js.map +1 -1
  34. package/cjs/components/Calendar/DayCellView.styles.d.ts +2 -5
  35. package/cjs/components/Calendar/DayCellView.styles.js +37 -43
  36. package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
  37. package/cjs/components/Calendar/Month.d.ts +0 -10
  38. package/cjs/components/Calendar/Month.js +36 -88
  39. package/cjs/components/Calendar/Month.js.map +1 -1
  40. package/cjs/components/Calendar/MonthView.d.ts +3 -2
  41. package/cjs/components/Calendar/MonthView.js +47 -37
  42. package/cjs/components/Calendar/MonthView.js.map +1 -1
  43. package/cjs/components/Calendar/MonthView.styles.d.ts +3 -0
  44. package/cjs/components/Calendar/MonthView.styles.js +45 -7
  45. package/cjs/components/Calendar/MonthView.styles.js.map +1 -1
  46. package/cjs/components/Calendar/MonthViewModel.js +24 -6
  47. package/cjs/components/Calendar/MonthViewModel.js.map +1 -1
  48. package/cjs/components/Calendar/config.js +12 -6
  49. package/cjs/components/Calendar/config.js.map +1 -1
  50. package/cjs/components/Calendar/index.d.ts +1 -0
  51. package/cjs/components/Calendar/index.js +2 -1
  52. package/cjs/components/Calendar/index.js.map +1 -1
  53. package/cjs/components/Checkbox/Checkbox.js +1 -1
  54. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  55. package/cjs/components/DateInput/DateFragmentsView.js +1 -1
  56. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  57. package/cjs/components/DateInput/DateInput.js +1 -1
  58. package/cjs/components/DateInput/DateInput.js.map +1 -1
  59. package/cjs/components/DatePicker/DatePicker.d.ts +4 -1
  60. package/cjs/components/DatePicker/DatePicker.js +72 -45
  61. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  62. package/cjs/components/DatePicker/DatePicker.md +29 -1
  63. package/cjs/components/DatePicker/DatePickerHelpers.js +2 -1
  64. package/cjs/components/DatePicker/DatePickerHelpers.js.map +1 -1
  65. package/cjs/components/DatePicker/MobilePicker.d.ts +10 -0
  66. package/cjs/components/DatePicker/MobilePicker.js +118 -0
  67. package/cjs/components/DatePicker/MobilePicker.js.map +1 -0
  68. package/cjs/components/DatePicker/MobilePicker.styles.d.ts +3 -0
  69. package/cjs/components/DatePicker/MobilePicker.styles.js +8 -0
  70. package/cjs/components/DatePicker/MobilePicker.styles.js.map +1 -0
  71. package/cjs/components/DatePicker/Picker.js +1 -1
  72. package/cjs/components/DatePicker/Picker.js.map +1 -1
  73. package/cjs/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
  74. package/cjs/components/DatePicker/getMobilePickerTheme.js +19 -0
  75. package/cjs/components/DatePicker/getMobilePickerTheme.js.map +1 -0
  76. package/cjs/components/Dropdown/Dropdown.js +1 -1
  77. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  78. package/cjs/components/DropdownMenu/DropdownMenu.js +1 -1
  79. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  80. package/cjs/components/DropdownMenu/DropdownMenu.md +39 -0
  81. package/cjs/components/FileUploader/FileUploader.d.ts +2 -0
  82. package/cjs/components/FileUploader/FileUploader.js +32 -9
  83. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  84. package/cjs/components/FileUploader/FileUploader.md +29 -0
  85. package/cjs/components/FxInput/FxInput.js +1 -1
  86. package/cjs/components/FxInput/FxInput.js.map +1 -1
  87. package/cjs/components/Group/Group.js +1 -1
  88. package/cjs/components/Group/Group.js.map +1 -1
  89. package/cjs/components/Hint/Hint.d.ts +4 -3
  90. package/cjs/components/Hint/Hint.js +9 -8
  91. package/cjs/components/Hint/Hint.js.map +1 -1
  92. package/cjs/components/Input/Input.js +1 -1
  93. package/cjs/components/Input/Input.js.map +1 -1
  94. package/cjs/components/Input/Input.styles.d.ts +1 -1
  95. package/cjs/components/Input/Input.styles.js +3 -2
  96. package/cjs/components/Input/Input.styles.js.map +1 -1
  97. package/cjs/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
  98. package/cjs/components/Input/InputLayout/InputLayout.styles.js +3 -2
  99. package/cjs/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
  100. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -1
  101. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  102. package/cjs/components/Kebab/Kebab.js +6 -1
  103. package/cjs/components/Kebab/Kebab.js.map +1 -1
  104. package/cjs/components/Link/Link.js +3 -2
  105. package/cjs/components/Link/Link.js.map +1 -1
  106. package/cjs/components/Loader/Loader.js +1 -1
  107. package/cjs/components/Loader/Loader.js.map +1 -1
  108. package/cjs/components/MenuItem/MenuItem.js +2 -2
  109. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  110. package/cjs/components/MiniModal/MiniModal.js +1 -1
  111. package/cjs/components/MiniModal/MiniModal.js.map +1 -1
  112. package/cjs/components/Modal/Modal.js +1 -1
  113. package/cjs/components/Modal/Modal.js.map +1 -1
  114. package/cjs/components/Modal/ModalBody.js +1 -1
  115. package/cjs/components/Modal/ModalBody.js.map +1 -1
  116. package/cjs/components/Paging/Paging.js +8 -3
  117. package/cjs/components/Paging/Paging.js.map +1 -1
  118. package/cjs/components/PasswordInput/PasswordInput.js +1 -1
  119. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  120. package/cjs/components/Radio/Radio.js +1 -1
  121. package/cjs/components/Radio/Radio.js.map +1 -1
  122. package/cjs/components/RadioGroup/RadioGroup.js +10 -1
  123. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  124. package/cjs/components/ScrollContainer/ScrollBar.js +1 -1
  125. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  126. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  127. package/cjs/components/ScrollContainer/ScrollContainer.js +6 -0
  128. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  129. package/cjs/components/Select/Select.js +6 -3
  130. package/cjs/components/Select/Select.js.map +1 -1
  131. package/cjs/components/SidePage/SidePage.js +1 -1
  132. package/cjs/components/SidePage/SidePage.js.map +1 -1
  133. package/cjs/components/SidePage/SidePageBody.js +1 -1
  134. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  135. package/cjs/components/SidePage/SidePageContainer.js +1 -1
  136. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  137. package/cjs/components/SidePage/SidePageFooter.js +1 -1
  138. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  139. package/cjs/components/SidePage/SidePageHeader.js +1 -1
  140. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  141. package/cjs/components/Spinner/Spinner.js +1 -1
  142. package/cjs/components/Spinner/Spinner.js.map +1 -1
  143. package/cjs/components/Switcher/Switcher.js +1 -1
  144. package/cjs/components/Switcher/Switcher.js.map +1 -1
  145. package/cjs/components/Tabs/Indicator.js +1 -1
  146. package/cjs/components/Tabs/Indicator.js.map +1 -1
  147. package/cjs/components/Tabs/Tab.js +2 -2
  148. package/cjs/components/Tabs/Tab.js.map +1 -1
  149. package/cjs/components/Tabs/Tabs.js +1 -1
  150. package/cjs/components/Tabs/Tabs.js.map +1 -1
  151. package/cjs/components/Textarea/Textarea.js +1 -1
  152. package/cjs/components/Textarea/Textarea.js.map +1 -1
  153. package/cjs/components/Toast/Toast.js +1 -1
  154. package/cjs/components/Toast/Toast.js.map +1 -1
  155. package/cjs/components/Toast/ToastView.js +1 -1
  156. package/cjs/components/Toast/ToastView.js.map +1 -1
  157. package/cjs/components/Toggle/Toggle.js +1 -1
  158. package/cjs/components/Toggle/Toggle.js.map +1 -1
  159. package/cjs/components/Token/Token.js +2 -1
  160. package/cjs/components/Token/Token.js.map +1 -1
  161. package/cjs/components/TokenInput/TokenInput.js +1 -1
  162. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  163. package/cjs/components/TokenInput/TokenInputMenu.js +2 -2
  164. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  165. package/cjs/components/Tooltip/Tooltip.d.ts +10 -5
  166. package/cjs/components/Tooltip/Tooltip.js +59 -20
  167. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  168. package/cjs/components/TooltipMenu/TooltipMenu.js +4 -4
  169. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  170. package/cjs/hooks/useDrop.d.ts +1 -1
  171. package/cjs/hooks/useDrop.js.map +1 -1
  172. package/cjs/index.d.ts +2 -0
  173. package/cjs/index.js +2 -0
  174. package/cjs/index.js.map +1 -1
  175. package/cjs/internal/CommonWrapper/CommonWrapper.js +2 -2
  176. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  177. package/cjs/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
  178. package/cjs/internal/CommonWrapper/utils/extractCommonProps.js.map +1 -0
  179. package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.js → utils/getCommonVisualStateDataAttributes.js} +3 -4
  180. package/cjs/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes.js.map +1 -0
  181. package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
  182. package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.js → utils/getVisualStateDataAttributes.js} +3 -3
  183. package/cjs/internal/CommonWrapper/utils/getVisualStateDataAttributes.js.map +1 -0
  184. package/cjs/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
  185. package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js +1 -0
  186. package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js.map +1 -0
  187. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +2 -3
  188. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  189. package/cjs/internal/CustomComboBox/ComboBoxView.js +3 -1
  190. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  191. package/cjs/internal/DateSelect/DateSelect.d.ts +2 -0
  192. package/cjs/internal/DateSelect/DateSelect.js +51 -4
  193. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  194. package/cjs/internal/DateSelect/DateSelect.styles.d.ts +1 -0
  195. package/cjs/internal/DateSelect/DateSelect.styles.js +15 -1
  196. package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
  197. package/cjs/internal/DateSelect/locale/locales/en.js +2 -1
  198. package/cjs/internal/DateSelect/locale/locales/en.js.map +1 -1
  199. package/cjs/internal/DateSelect/locale/locales/ru.js +2 -1
  200. package/cjs/internal/DateSelect/locale/locales/ru.js.map +1 -1
  201. package/cjs/internal/DateSelect/locale/types.d.ts +1 -0
  202. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
  203. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +16 -3
  204. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  205. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
  206. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +4 -2
  207. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  208. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  209. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +3 -2
  210. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  211. package/cjs/internal/InputLikeText/InputLikeText.js +2 -2
  212. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  213. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +1 -1
  214. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  215. package/cjs/internal/InternalMenu/InternalMenu.js +2 -2
  216. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  217. package/cjs/internal/Menu/Menu.js +2 -2
  218. package/cjs/internal/Menu/Menu.js.map +1 -1
  219. package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
  220. package/cjs/internal/MobilePopup/MobilePopup.js +7 -1
  221. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  222. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
  223. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +32 -0
  224. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
  225. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
  226. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +15 -0
  227. package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -0
  228. package/cjs/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
  229. package/cjs/internal/MobilePopup/MobilePopupFooter/index.js +1 -0
  230. package/cjs/internal/MobilePopup/MobilePopupFooter/index.js.map +1 -0
  231. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
  232. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  233. package/cjs/internal/NativeDateInput/utils.js +3 -2
  234. package/cjs/internal/NativeDateInput/utils.js.map +1 -1
  235. package/cjs/internal/Popup/Popup.d.ts +15 -4
  236. package/cjs/internal/Popup/Popup.js +67 -4
  237. package/cjs/internal/Popup/Popup.js.map +1 -1
  238. package/cjs/internal/PopupMenu/PopupMenu.js +1 -1
  239. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  240. package/cjs/internal/RenderContainer/RenderContainer.d.ts +3 -0
  241. package/cjs/internal/RenderContainer/RenderContainer.js +34 -24
  242. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  243. package/cjs/internal/RenderContainer/RenderInnerContainer.js +8 -4
  244. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  245. package/cjs/internal/RenderLayer/RenderLayer.js +5 -1
  246. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  247. package/cjs/internal/ThemePlayground/Playground.js +1 -1
  248. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  249. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +9 -6
  250. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  251. package/cjs/internal/ThemePlayground/constants.js +2 -1
  252. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  253. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +1 -1
  254. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  255. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  256. package/cjs/internal/ZIndex/ZIndex.d.ts +7 -3
  257. package/cjs/internal/ZIndex/ZIndex.js +41 -3
  258. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  259. package/cjs/internal/themes/DarkTheme.d.ts +2 -0
  260. package/cjs/internal/themes/DarkTheme.js +6 -1
  261. package/cjs/internal/themes/DarkTheme.js.map +1 -1
  262. package/cjs/internal/themes/DefaultTheme.d.ts +18 -0
  263. package/cjs/internal/themes/DefaultTheme.js +32 -4
  264. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  265. package/cjs/lib/date/InternalDate.d.ts +2 -0
  266. package/cjs/lib/date/InternalDate.js +8 -1
  267. package/cjs/lib/date/InternalDate.js.map +1 -1
  268. package/cjs/lib/date/InternalDateTransformer.d.ts +3 -0
  269. package/cjs/lib/date/InternalDateTransformer.js +23 -0
  270. package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
  271. package/cjs/lib/date/InternalDateValidator.js +2 -1
  272. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  273. package/cjs/lib/date/comparison.d.ts +6 -0
  274. package/cjs/lib/date/comparison.js +44 -0
  275. package/cjs/lib/date/comparison.js.map +1 -0
  276. package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
  277. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  278. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  279. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
  280. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  281. package/cjs/lib/listenFocusOutside.js +4 -2
  282. package/cjs/lib/listenFocusOutside.js.map +1 -1
  283. package/cjs/lib/locale/constants.d.ts +3 -0
  284. package/cjs/lib/locale/constants.js +6 -2
  285. package/cjs/lib/locale/constants.js.map +1 -1
  286. package/cjs/lib/taskWithDelayAndMinimalDuration.js +1 -0
  287. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  288. package/cjs/lib/theming/Emotion.d.ts +7 -1
  289. package/cjs/lib/theming/Emotion.js +6 -3
  290. package/cjs/lib/theming/Emotion.js.map +1 -1
  291. package/cjs/lib/theming/ThemeContext.d.ts +0 -2
  292. package/cjs/lib/theming/ThemeContext.js +1 -3
  293. package/cjs/lib/theming/ThemeContext.js.map +1 -1
  294. package/cjs/lib/theming/ThemeContext.md +3 -1
  295. package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
  296. package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js +50 -0
  297. package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js.map +1 -0
  298. package/cjs/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
  299. package/cjs/lib/theming/themes/Theme2022Update2024.js +75 -0
  300. package/cjs/lib/theming/themes/Theme2022Update2024.js.map +1 -0
  301. package/cjs/lib/widgets/StylesContainer.d.ts +13 -0
  302. package/cjs/lib/widgets/StylesContainer.js +70 -0
  303. package/cjs/lib/widgets/StylesContainer.js.map +1 -0
  304. package/cjs/lib/widgets/index.d.ts +1 -0
  305. package/cjs/lib/widgets/index.js +1 -0
  306. package/cjs/lib/widgets/index.js.map +1 -0
  307. package/components/Autocomplete/Autocomplete/Autocomplete.js +11 -5
  308. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  309. package/components/Autocomplete/Autocomplete.md +76 -3
  310. package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js +4 -1
  311. package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js.map +1 -1
  312. package/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
  313. package/components/Button/Button/Button.js +3 -3
  314. package/components/Button/Button/Button.js.map +1 -1
  315. package/components/Button/Button.md +38 -11
  316. package/components/Calendar/Calendar/Calendar.js +83 -66
  317. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  318. package/components/Calendar/Calendar.d.ts +28 -5
  319. package/components/Calendar/Calendar.md +82 -1
  320. package/components/Calendar/Calendar.styles/Calendar.styles.js +1 -1
  321. package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -1
  322. package/components/Calendar/CalendarContext/CalendarContext.js +2 -0
  323. package/components/Calendar/CalendarContext/CalendarContext.js.map +1 -0
  324. package/components/Calendar/CalendarContext/package.json +6 -0
  325. package/components/Calendar/CalendarContext.d.ts +12 -0
  326. package/components/Calendar/CalendarDateShape/CalendarDateShape.js +23 -1
  327. package/components/Calendar/CalendarDateShape/CalendarDateShape.js.map +1 -1
  328. package/components/Calendar/CalendarDateShape.d.ts +4 -2
  329. package/components/Calendar/CalendarDay/CalendarDay.js +64 -0
  330. package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -0
  331. package/components/Calendar/CalendarDay/package.json +6 -0
  332. package/components/Calendar/CalendarDay.d.ts +12 -0
  333. package/components/Calendar/CalendarDay.md +70 -0
  334. package/components/Calendar/CalendarUtils/CalendarUtils.js +5 -4
  335. package/components/Calendar/CalendarUtils/CalendarUtils.js.map +1 -1
  336. package/components/Calendar/CalendarUtils.d.ts +2 -1
  337. package/components/Calendar/DayCellView/DayCellView.js +33 -46
  338. package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
  339. package/components/Calendar/DayCellView.d.ts +4 -12
  340. package/components/Calendar/DayCellView.styles/DayCellView.styles.js +10 -14
  341. package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  342. package/components/Calendar/DayCellView.styles.d.ts +2 -5
  343. package/components/Calendar/Month/Month.js +50 -84
  344. package/components/Calendar/Month/Month.js.map +1 -1
  345. package/components/Calendar/Month.d.ts +0 -10
  346. package/components/Calendar/MonthView/MonthView.js +50 -45
  347. package/components/Calendar/MonthView/MonthView.js.map +1 -1
  348. package/components/Calendar/MonthView.d.ts +3 -2
  349. package/components/Calendar/MonthView.styles/MonthView.styles.js +20 -6
  350. package/components/Calendar/MonthView.styles/MonthView.styles.js.map +1 -1
  351. package/components/Calendar/MonthView.styles.d.ts +3 -0
  352. package/components/Calendar/MonthViewModel/MonthViewModel.js +9 -6
  353. package/components/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
  354. package/components/Calendar/config/config.js +6 -4
  355. package/components/Calendar/config/config.js.map +1 -1
  356. package/components/Calendar/index/index.js +2 -1
  357. package/components/Calendar/index/index.js.map +1 -1
  358. package/components/Calendar/index.d.ts +1 -0
  359. package/components/Checkbox/Checkbox/Checkbox.js +2 -2
  360. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  361. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +2 -2
  362. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  363. package/components/DateInput/DateInput/DateInput.js +2 -2
  364. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  365. package/components/DatePicker/DatePicker/DatePicker.js +62 -41
  366. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  367. package/components/DatePicker/DatePicker.d.ts +4 -1
  368. package/components/DatePicker/DatePicker.md +29 -1
  369. package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js +2 -1
  370. package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js.map +1 -1
  371. package/components/DatePicker/MobilePicker/MobilePicker.js +91 -0
  372. package/components/DatePicker/MobilePicker/MobilePicker.js.map +1 -0
  373. package/components/DatePicker/MobilePicker/package.json +6 -0
  374. package/components/DatePicker/MobilePicker.d.ts +10 -0
  375. package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js +10 -0
  376. package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js.map +1 -0
  377. package/components/DatePicker/MobilePicker.styles/package.json +6 -0
  378. package/components/DatePicker/MobilePicker.styles.d.ts +3 -0
  379. package/components/DatePicker/Picker/Picker.js +3 -3
  380. package/components/DatePicker/Picker/Picker.js.map +1 -1
  381. package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js +14 -0
  382. package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js.map +1 -0
  383. package/components/DatePicker/getMobilePickerTheme/package.json +6 -0
  384. package/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
  385. package/components/Dropdown/Dropdown/Dropdown.js +3 -3
  386. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  387. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -3
  388. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  389. package/components/DropdownMenu/DropdownMenu.md +39 -0
  390. package/components/FileUploader/FileUploader/FileUploader.js +30 -8
  391. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  392. package/components/FileUploader/FileUploader.d.ts +2 -0
  393. package/components/FileUploader/FileUploader.md +29 -0
  394. package/components/FxInput/FxInput/FxInput.js +2 -2
  395. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  396. package/components/Group/Group/Group.js +2 -2
  397. package/components/Group/Group/Group.js.map +1 -1
  398. package/components/Hint/Hint/Hint.js +53 -48
  399. package/components/Hint/Hint/Hint.js.map +1 -1
  400. package/components/Hint/Hint.d.ts +4 -3
  401. package/components/Input/Input/Input.js +3 -3
  402. package/components/Input/Input/Input.js.map +1 -1
  403. package/components/Input/Input.styles/Input.styles.js +2 -2
  404. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  405. package/components/Input/Input.styles.d.ts +1 -1
  406. package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js +2 -2
  407. package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js.map +1 -1
  408. package/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
  409. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +1 -1
  410. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
  411. package/components/Kebab/Kebab/Kebab.js +7 -4
  412. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  413. package/components/Link/Link/Link.js +6 -3
  414. package/components/Link/Link/Link.js.map +1 -1
  415. package/components/Loader/Loader/Loader.js +2 -2
  416. package/components/Loader/Loader/Loader.js.map +1 -1
  417. package/components/MenuItem/MenuItem/MenuItem.js +3 -3
  418. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  419. package/components/MiniModal/MiniModal/MiniModal.js +2 -2
  420. package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
  421. package/components/Modal/Modal/Modal.js +3 -3
  422. package/components/Modal/Modal/Modal.js.map +1 -1
  423. package/components/Modal/ModalBody/ModalBody.js +3 -3
  424. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  425. package/components/Paging/Paging/Paging.js +10 -6
  426. package/components/Paging/Paging/Paging.js.map +1 -1
  427. package/components/PasswordInput/PasswordInput/PasswordInput.js +2 -2
  428. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  429. package/components/Radio/Radio/Radio.js +2 -2
  430. package/components/Radio/Radio/Radio.js.map +1 -1
  431. package/components/RadioGroup/RadioGroup/RadioGroup.js +8 -4
  432. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  433. package/components/ScrollContainer/ScrollBar/ScrollBar.js +2 -2
  434. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  435. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +5 -0
  436. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  437. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  438. package/components/Select/Select/Select.js +6 -5
  439. package/components/Select/Select/Select.js.map +1 -1
  440. package/components/SidePage/SidePage/SidePage.js +2 -2
  441. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  442. package/components/SidePage/SidePageBody/SidePageBody.js +2 -2
  443. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  444. package/components/SidePage/SidePageContainer/SidePageContainer.js +2 -2
  445. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  446. package/components/SidePage/SidePageFooter/SidePageFooter.js +2 -2
  447. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  448. package/components/SidePage/SidePageHeader/SidePageHeader.js +2 -2
  449. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  450. package/components/Spinner/Spinner/Spinner.js +2 -2
  451. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  452. package/components/Switcher/Switcher/Switcher.js +3 -3
  453. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  454. package/components/Tabs/Indicator/Indicator.js +2 -2
  455. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  456. package/components/Tabs/Tab/Tab.js +3 -3
  457. package/components/Tabs/Tab/Tab.js.map +1 -1
  458. package/components/Tabs/Tabs/Tabs.js +2 -2
  459. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  460. package/components/Textarea/Textarea/Textarea.js +2 -2
  461. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  462. package/components/Toast/Toast/Toast.js +3 -3
  463. package/components/Toast/Toast/Toast.js.map +1 -1
  464. package/components/Toast/ToastView/ToastView.js +2 -2
  465. package/components/Toast/ToastView/ToastView.js.map +1 -1
  466. package/components/Toggle/Toggle/Toggle.js +2 -2
  467. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  468. package/components/Token/Token/Token.js +6 -3
  469. package/components/Token/Token/Token.js.map +1 -1
  470. package/components/TokenInput/TokenInput/TokenInput.js +2 -2
  471. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  472. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +3 -3
  473. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  474. package/components/Tooltip/Tooltip/Tooltip.js +67 -46
  475. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  476. package/components/Tooltip/Tooltip.d.ts +10 -5
  477. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +3 -3
  478. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  479. package/hooks/useDrop/useDrop.js.map +1 -1
  480. package/hooks/useDrop.d.ts +1 -1
  481. package/index.d.ts +2 -0
  482. package/index.js +2 -0
  483. package/index.js.map +1 -1
  484. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +2 -2
  485. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  486. package/internal/CommonWrapper/utils/extractCommonProps/extractCommonProps.js.map +1 -0
  487. package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/package.json +1 -1
  488. package/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
  489. package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/getCommonVisualStateDataAttributes.js +1 -5
  490. package/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +1 -0
  491. package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/package.json +1 -1
  492. package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/getVisualStateDataAttributes.js +3 -3
  493. package/internal/CommonWrapper/utils/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +1 -0
  494. package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/package.json +1 -1
  495. package/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
  496. package/internal/CommonWrapper/utils/tryGetBoolean/package.json +6 -0
  497. package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js +3 -0
  498. package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js.map +1 -0
  499. package/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
  500. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +3 -3
  501. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  502. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +5 -3
  503. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  504. package/internal/DateSelect/DateSelect/DateSelect.js +59 -6
  505. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  506. package/internal/DateSelect/DateSelect.d.ts +2 -0
  507. package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js +4 -1
  508. package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js.map +1 -1
  509. package/internal/DateSelect/DateSelect.styles.d.ts +1 -0
  510. package/internal/DateSelect/locale/locales/en/en.js +2 -1
  511. package/internal/DateSelect/locale/locales/en/en.js.map +1 -1
  512. package/internal/DateSelect/locale/locales/ru/ru.js +2 -1
  513. package/internal/DateSelect/locale/locales/ru/ru.js.map +1 -1
  514. package/internal/DateSelect/locale/types.d.ts +1 -0
  515. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +12 -3
  516. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  517. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
  518. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +4 -2
  519. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  520. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
  521. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -2
  522. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  523. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  524. package/internal/InputLikeText/InputLikeText/InputLikeText.js +3 -3
  525. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  526. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +2 -2
  527. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  528. package/internal/InternalMenu/InternalMenu/InternalMenu.js +3 -3
  529. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  530. package/internal/Menu/Menu/Menu.js +3 -3
  531. package/internal/Menu/Menu/Menu.js.map +1 -1
  532. package/internal/MobilePopup/MobilePopup/MobilePopup.js +4 -3
  533. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  534. package/internal/MobilePopup/MobilePopup.d.ts +4 -0
  535. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js +37 -0
  536. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
  537. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/package.json +6 -0
  538. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
  539. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js +11 -0
  540. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js.map +1 -0
  541. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/package.json +6 -0
  542. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
  543. package/internal/MobilePopup/MobilePopupFooter/index/index.js +1 -0
  544. package/internal/MobilePopup/MobilePopupFooter/index/index.js.map +1 -0
  545. package/internal/MobilePopup/MobilePopupFooter/index/package.json +6 -0
  546. package/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
  547. package/internal/MobilePopup/MobilePopupFooter/package.json +6 -0
  548. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -2
  549. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  550. package/internal/NativeDateInput/utils/utils.js +2 -1
  551. package/internal/NativeDateInput/utils/utils.js.map +1 -1
  552. package/internal/Popup/Popup/Popup.js +53 -10
  553. package/internal/Popup/Popup/Popup.js.map +1 -1
  554. package/internal/Popup/Popup.d.ts +15 -4
  555. package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
  556. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  557. package/internal/RenderContainer/RenderContainer/RenderContainer.js +19 -12
  558. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  559. package/internal/RenderContainer/RenderContainer.d.ts +3 -0
  560. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -5
  561. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  562. package/internal/RenderLayer/RenderLayer/RenderLayer.js +2 -2
  563. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  564. package/internal/ThemePlayground/Playground/Playground.js +2 -2
  565. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  566. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +10 -7
  567. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  568. package/internal/ThemePlayground/constants/constants.js +3 -0
  569. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  570. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +2 -2
  571. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  572. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  573. package/internal/ZIndex/ZIndex/ZIndex.js +55 -7
  574. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  575. package/internal/ZIndex/ZIndex.d.ts +7 -3
  576. package/internal/themes/DarkTheme/DarkTheme.js +2 -0
  577. package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
  578. package/internal/themes/DarkTheme.d.ts +2 -0
  579. package/internal/themes/DefaultTheme/DefaultTheme.js +32 -1
  580. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  581. package/internal/themes/DefaultTheme.d.ts +18 -0
  582. package/lib/date/InternalDate/InternalDate.js +7 -1
  583. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  584. package/lib/date/InternalDate.d.ts +2 -0
  585. package/lib/date/InternalDateTransformer/InternalDateTransformer.js +30 -0
  586. package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
  587. package/lib/date/InternalDateTransformer.d.ts +3 -0
  588. package/lib/date/InternalDateValidator/InternalDateValidator.js +6 -1
  589. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  590. package/lib/date/comparison/comparison.js +45 -0
  591. package/lib/date/comparison/comparison.js.map +1 -0
  592. package/lib/date/comparison/package.json +6 -0
  593. package/lib/date/comparison.d.ts +6 -0
  594. package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
  595. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  596. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
  597. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  598. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  599. package/lib/listenFocusOutside/listenFocusOutside.js +3 -2
  600. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  601. package/lib/locale/constants/constants.js +4 -1
  602. package/lib/locale/constants/constants.js.map +1 -1
  603. package/lib/locale/constants.d.ts +3 -0
  604. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +2 -0
  605. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  606. package/lib/theming/Emotion/Emotion.js +12 -3
  607. package/lib/theming/Emotion/Emotion.js.map +1 -1
  608. package/lib/theming/Emotion.d.ts +7 -1
  609. package/lib/theming/ThemeContext/ThemeContext.js +0 -2
  610. package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
  611. package/lib/theming/ThemeContext.d.ts +0 -2
  612. package/lib/theming/ThemeContext.md +3 -1
  613. package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js +33 -0
  614. package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js.map +1 -0
  615. package/lib/theming/themes/Theme2022DarkUpdate2024/package.json +6 -0
  616. package/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
  617. package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js +50 -0
  618. package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js.map +1 -0
  619. package/lib/theming/themes/Theme2022Update2024/package.json +6 -0
  620. package/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
  621. package/lib/widgets/StylesContainer/StylesContainer.js +65 -0
  622. package/lib/widgets/StylesContainer/StylesContainer.js.map +1 -0
  623. package/lib/widgets/StylesContainer/package.json +6 -0
  624. package/lib/widgets/StylesContainer.d.ts +13 -0
  625. package/lib/widgets/index/index.js +1 -0
  626. package/lib/widgets/index/index.js.map +1 -0
  627. package/lib/widgets/index/package.json +6 -0
  628. package/lib/widgets/index.d.ts +1 -0
  629. package/lib/widgets/package.json +6 -0
  630. package/package.json +3 -2
  631. package/cjs/internal/CommonWrapper/extractCommonProps.js.map +0 -1
  632. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js.map +0 -1
  633. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js.map +0 -1
  634. package/cjs/lib/theming/StyleContainer.d.ts +0 -4
  635. package/cjs/lib/theming/StyleContainer.js +0 -21
  636. package/cjs/lib/theming/StyleContainer.js.map +0 -1
  637. package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js.map +0 -1
  638. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +0 -1
  639. package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +0 -1
  640. package/lib/theming/StyleContainer/StyleContainer.js +0 -21
  641. package/lib/theming/StyleContainer/StyleContainer.js.map +0 -1
  642. package/lib/theming/StyleContainer/package.json +0 -6
  643. package/lib/theming/StyleContainer.d.ts +0 -4
  644. /package/cjs/internal/CommonWrapper/{extractCommonProps.js → utils/extractCommonProps.js} +0 -0
  645. /package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
  646. /package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/extractCommonProps.js +0 -0
  647. /package/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["FxInput.tsx"],"names":["React","PropTypes","Group","Input","CurrencyInput","createPropsGetter","FunctionIcon","CommonWrapper","rootNode","isTheme2022","ThemeConsumer","MathFunctionIcon","FxInputRestoreBtn","FxInputDataTids","root","FxInput","input","getProps","defaultProps","renderMain","props","type","onRestore","auto","refInput","value","width","rest","inputProps","align","button","inputCorners","IconFunction","theme","borderBottomLeftRadius","borderTopLeftRadius","iconSizes","small","parseInt","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","size","leftIcon","disabled","borderless","buttonAriaLabel","onValueChange","focus","blur","element","render","setRootNode","Component","__KONTUR_REACT_UI__","displayName","propTypes","bool","string"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Group } from '../Group';\nimport { Input, InputProps } from '../Input';\nimport { CurrencyInput, CurrencyInputProps } from '../CurrencyInput';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { Override } from '../../typings/utility-types';\nimport { FunctionIcon } from '../../internal/icons/16px';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { Theme } from '../../lib/theming/Theme';\nimport { SizeProp } from '../../lib/types/props';\nimport { ThemeConsumer } from '../../lib/theming/ThemeContext';\n\nimport { MathFunctionIcon } from './MathFunctionIcon';\nimport { FxInputRestoreBtn } from './FxInputRestoreBtn';\n\nexport interface FxInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n CurrencyInputProps,\n {\n /** Авто-режим */\n auto?: boolean;\n /** Тип инпута */\n type?: 'currency' | InputProps['type'];\n /** onRestore */\n onRestore?: () => void;\n /** onValueChange */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n /** Значение */\n value?: React.ReactText;\n /** ref Input'а */\n refInput?: (element: CurrencyInput | Input | null) => void;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros?: boolean;\n /** Позвоялет задать атрибут aria-label кнопке восстановления (restore button) */\n buttonAriaLabel?: AriaAttributes['aria-label'];\n }\n > {}\n\nexport const FxInputDataTids = {\n root: 'FxInput__root',\n} as const;\n\ntype DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value'>>;\ntype DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;\n\n/** Принимает все свойства `Input`'a */\n@rootNode\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n public static displayName = 'FxInput';\n\n public static propTypes = {\n auto: PropTypes.bool,\n type: PropTypes.string,\n };\n\n public static defaultProps: DefaultProps = {\n width: 250,\n type: 'text',\n value: '',\n };\n\n private theme!: Theme;\n private input: Input | CurrencyInput | null = null;\n\n private getProps = createPropsGetter(FxInput.defaultProps);\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeConsumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => {\n const { type, onRestore, auto, refInput, value, width, ...rest } = props;\n const inputProps: Partial<CurrencyInputProps> = {\n align: 'right',\n };\n\n let button = null;\n let inputCorners: InputProps['corners'];\n let IconFunction = <FunctionIcon />;\n\n if (isTheme2022(this.theme)) {\n inputCorners = auto ? {} : { borderBottomLeftRadius: 0, borderTopLeftRadius: 0 };\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.inputIconSizeSmall),\n medium: parseInt(this.theme.inputIconSizeMedium),\n large: parseInt(this.theme.inputIconSizeLarge),\n };\n const size = this.props.size || Input.defaultProps.size;\n IconFunction = <MathFunctionIcon size={iconSizes[size]} />;\n }\n\n if (auto) {\n inputProps.leftIcon = IconFunction;\n } else {\n button = (\n <FxInputRestoreBtn\n size={rest.size}\n onRestore={onRestore}\n disabled={rest.disabled}\n borderless={rest.borderless}\n aria-label={props.buttonAriaLabel}\n />\n );\n }\n\n return (\n <Group data-tid={FxInputDataTids.root} width={width}>\n {button}\n {type === 'currency' ? (\n <CurrencyInput\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.props.size}\n width={'100%'}\n ref={this.refInput}\n value={value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n ) : (\n <Input\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.props.size}\n width={'100%'}\n ref={this.refInput}\n type={type}\n value={value as InputProps['value']}\n onValueChange={this.props.onValueChange as InputProps['onValueChange']}\n />\n )}\n </Group>\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private refInput = (element: Input | CurrencyInput | null) => {\n this.input = element;\n\n if (this.props.refInput) {\n this.props.refInput(this.input);\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["FxInput.tsx"],"names":["React","PropTypes","Group","Input","CurrencyInput","createPropsGetter","FunctionIcon","CommonWrapper","rootNode","isTheme2022","ThemeContext","MathFunctionIcon","FxInputRestoreBtn","FxInputDataTids","root","FxInput","input","getProps","defaultProps","renderMain","props","type","onRestore","auto","refInput","value","width","rest","inputProps","align","button","inputCorners","IconFunction","theme","borderBottomLeftRadius","borderTopLeftRadius","iconSizes","small","parseInt","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","size","leftIcon","disabled","borderless","buttonAriaLabel","onValueChange","focus","blur","element","render","setRootNode","Component","__KONTUR_REACT_UI__","displayName","propTypes","bool","string"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Group } from '../Group';\nimport { Input, InputProps } from '../Input';\nimport { CurrencyInput, CurrencyInputProps } from '../CurrencyInput';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { Override } from '../../typings/utility-types';\nimport { FunctionIcon } from '../../internal/icons/16px';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { Theme } from '../../lib/theming/Theme';\nimport { SizeProp } from '../../lib/types/props';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { MathFunctionIcon } from './MathFunctionIcon';\nimport { FxInputRestoreBtn } from './FxInputRestoreBtn';\n\nexport interface FxInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n CurrencyInputProps,\n {\n /** Авто-режим */\n auto?: boolean;\n /** Тип инпута */\n type?: 'currency' | InputProps['type'];\n /** onRestore */\n onRestore?: () => void;\n /** onValueChange */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n /** Значение */\n value?: React.ReactText;\n /** ref Input'а */\n refInput?: (element: CurrencyInput | Input | null) => void;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros?: boolean;\n /** Позвоялет задать атрибут aria-label кнопке восстановления (restore button) */\n buttonAriaLabel?: AriaAttributes['aria-label'];\n }\n > {}\n\nexport const FxInputDataTids = {\n root: 'FxInput__root',\n} as const;\n\ntype DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value'>>;\ntype DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;\n\n/** Принимает все свойства `Input`'a */\n@rootNode\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n public static displayName = 'FxInput';\n\n public static propTypes = {\n auto: PropTypes.bool,\n type: PropTypes.string,\n };\n\n public static defaultProps: DefaultProps = {\n width: 250,\n type: 'text',\n value: '',\n };\n\n private theme!: Theme;\n private input: Input | CurrencyInput | null = null;\n\n private getProps = createPropsGetter(FxInput.defaultProps);\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => {\n const { type, onRestore, auto, refInput, value, width, ...rest } = props;\n const inputProps: Partial<CurrencyInputProps> = {\n align: 'right',\n };\n\n let button = null;\n let inputCorners: InputProps['corners'];\n let IconFunction = <FunctionIcon />;\n\n if (isTheme2022(this.theme)) {\n inputCorners = auto ? {} : { borderBottomLeftRadius: 0, borderTopLeftRadius: 0 };\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.inputIconSizeSmall),\n medium: parseInt(this.theme.inputIconSizeMedium),\n large: parseInt(this.theme.inputIconSizeLarge),\n };\n const size = this.props.size || Input.defaultProps.size;\n IconFunction = <MathFunctionIcon size={iconSizes[size]} />;\n }\n\n if (auto) {\n inputProps.leftIcon = IconFunction;\n } else {\n button = (\n <FxInputRestoreBtn\n size={rest.size}\n onRestore={onRestore}\n disabled={rest.disabled}\n borderless={rest.borderless}\n aria-label={props.buttonAriaLabel}\n />\n );\n }\n\n return (\n <Group data-tid={FxInputDataTids.root} width={width}>\n {button}\n {type === 'currency' ? (\n <CurrencyInput\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.props.size}\n width={'100%'}\n ref={this.refInput}\n value={value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n ) : (\n <Input\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.props.size}\n width={'100%'}\n ref={this.refInput}\n type={type}\n value={value as InputProps['value']}\n onValueChange={this.props.onValueChange as InputProps['onValueChange']}\n />\n )}\n </Group>\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private refInput = (element: Input | CurrencyInput | null) => {\n this.input = element;\n\n if (this.props.refInput) {\n this.props.refInput(this.input);\n }\n };\n}\n"]}
@@ -12,7 +12,7 @@ import { EmotionConsumer } from "../../../lib/theming/Emotion";
12
12
  import { rootNode } from "../../../lib/rootNode";
13
13
  import { isInputLike } from "../../../lib/utils";
14
14
  import { isTheme2022 } from "../../../lib/theming/ThemeHelpers";
15
- import { ThemeConsumer } from "../../../lib/theming/ThemeContext";
15
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
16
16
  import { getStyles } from "../Group.styles";
17
17
 
18
18
  var getFirstChild = function getFirstChild(children) {
@@ -95,7 +95,7 @@ export var Group = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
95
95
 
96
96
  return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
97
97
  _this.emotion = emotion;
98
- return /*#__PURE__*/React.createElement(ThemeConsumer, null, function (theme) {
98
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
99
99
  _this.theme = theme;
100
100
  return _this.renderMain();
101
101
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["Group.tsx"],"names":["React","PropTypes","isEdge","isIE11","isButton","CommonWrapper","EmotionConsumer","rootNode","isInputLike","isTheme2022","ThemeConsumer","getStyles","getFirstChild","children","Array","isArray","getLastChild","numberOfChildren","Children","count","getButtonCorners","isFirstChild","isLastChild","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","borderRadius","passCornersIfButton","child","firstChild","lastChild","isInputLikeToo","corners","cloneElement","props","GroupDataTids","root","Group","render","emotion","theme","renderMain","style","width","childrenArray","toArray","styles","setRootNode","map","isValidElement","isWidthInPercent","Boolean","toString","includes","modifiedChild","cx","fixed","stretch","stretchFallback","item","itemFirst","Component","__KONTUR_REACT_UI__","displayName","propTypes","oneOfType","number","string"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { isButton } from '../Button';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isInputLike } from '../../lib/utils';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { ThemeConsumer } from '../../lib/theming/ThemeContext';\n\nimport { getStyles } from './Group.styles';\n\nexport interface GroupProps extends CommonProps {\n width?: React.CSSProperties['width'];\n}\n\ninterface GroupChildProps {\n width?: React.CSSProperties['width'];\n corners?: number;\n}\n\nconst getFirstChild = (children: React.ReactNode) => {\n if (!Array.isArray(children)) {\n return children;\n }\n\n return children?.[0] as React.ReactNode;\n};\n\nconst getLastChild = (children: React.ReactNode) => {\n if (!Array.isArray(children)) {\n return children;\n }\n\n const numberOfChildren = React.Children.count(children);\n\n return children?.[numberOfChildren - 1] as React.ReactNode;\n};\n\nexport const getButtonCorners = (isFirstChild: boolean, isLastChild: boolean): React.CSSProperties => {\n if (isFirstChild && isLastChild) {\n return {};\n }\n\n if (isFirstChild) {\n return {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n };\n }\n\n if (isLastChild) {\n return {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n };\n }\n\n return {\n borderRadius: 0,\n };\n};\n\nconst passCornersIfButton = (\n child: React.ReactNode,\n firstChild: React.ReactNode,\n lastChild: React.ReactNode,\n isInputLikeToo = false,\n) => {\n const corners = getButtonCorners(child === firstChild, child === lastChild);\n if (isButton(child)) {\n return React.cloneElement(child, { corners: { ...corners, ...child.props.corners } });\n }\n if (isInputLikeToo && isInputLike(child)) {\n return React.cloneElement(child, { corners: { ...corners, ...child.props.corners } });\n }\n\n return child;\n};\n\nexport const GroupDataTids = {\n root: 'Group__root',\n} as const;\n\n@rootNode\nexport class Group extends React.Component<GroupProps> {\n public static __KONTUR_REACT_UI__ = 'Group';\n public static displayName = 'Group';\n\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n private emotion!: Emotion;\n\n public static propTypes = {\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\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 this.renderMain();\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n public renderMain() {\n const style: React.CSSProperties = {\n width: this.props.width,\n };\n\n const childrenArray = React.Children.toArray(this.props.children);\n const firstChild = getFirstChild(childrenArray);\n const lastChild = getLastChild(childrenArray);\n const styles = getStyles(this.emotion);\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span data-tid={GroupDataTids.root} className={styles.root()} style={style}>\n {React.Children.map(childrenArray, (child) => {\n if (!child || !React.isValidElement<GroupChildProps>(child)) {\n return null;\n }\n\n const isWidthInPercent = Boolean(child.props.width && child.props.width.toString().includes('%'));\n\n const modifiedChild = passCornersIfButton(child, firstChild, lastChild, isTheme2022(this.theme));\n\n const isFirstChild = child === firstChild;\n\n return (\n <div\n className={this.emotion.cx({\n [styles.fixed()]: !isWidthInPercent,\n [styles.stretch()]: isWidthInPercent,\n [styles.stretchFallback()]: Boolean(isWidthInPercent && this.props.width && (isIE11 || isEdge)),\n })}\n >\n <div\n className={this.emotion.cx({\n [styles.item()]: true,\n [styles.itemFirst()]: isFirstChild,\n })}\n >\n {modifiedChild}\n </div>\n </div>\n );\n })}\n </span>\n </CommonWrapper>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["Group.tsx"],"names":["React","PropTypes","isEdge","isIE11","isButton","CommonWrapper","EmotionConsumer","rootNode","isInputLike","isTheme2022","ThemeContext","getStyles","getFirstChild","children","Array","isArray","getLastChild","numberOfChildren","Children","count","getButtonCorners","isFirstChild","isLastChild","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","borderRadius","passCornersIfButton","child","firstChild","lastChild","isInputLikeToo","corners","cloneElement","props","GroupDataTids","root","Group","render","emotion","theme","renderMain","style","width","childrenArray","toArray","styles","setRootNode","map","isValidElement","isWidthInPercent","Boolean","toString","includes","modifiedChild","cx","fixed","stretch","stretchFallback","item","itemFirst","Component","__KONTUR_REACT_UI__","displayName","propTypes","oneOfType","number","string"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { isButton } from '../Button';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isInputLike } from '../../lib/utils';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { getStyles } from './Group.styles';\n\nexport interface GroupProps extends CommonProps {\n width?: React.CSSProperties['width'];\n}\n\ninterface GroupChildProps {\n width?: React.CSSProperties['width'];\n corners?: number;\n}\n\nconst getFirstChild = (children: React.ReactNode) => {\n if (!Array.isArray(children)) {\n return children;\n }\n\n return children?.[0] as React.ReactNode;\n};\n\nconst getLastChild = (children: React.ReactNode) => {\n if (!Array.isArray(children)) {\n return children;\n }\n\n const numberOfChildren = React.Children.count(children);\n\n return children?.[numberOfChildren - 1] as React.ReactNode;\n};\n\nexport const getButtonCorners = (isFirstChild: boolean, isLastChild: boolean): React.CSSProperties => {\n if (isFirstChild && isLastChild) {\n return {};\n }\n\n if (isFirstChild) {\n return {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n };\n }\n\n if (isLastChild) {\n return {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n };\n }\n\n return {\n borderRadius: 0,\n };\n};\n\nconst passCornersIfButton = (\n child: React.ReactNode,\n firstChild: React.ReactNode,\n lastChild: React.ReactNode,\n isInputLikeToo = false,\n) => {\n const corners = getButtonCorners(child === firstChild, child === lastChild);\n if (isButton(child)) {\n return React.cloneElement(child, { corners: { ...corners, ...child.props.corners } });\n }\n if (isInputLikeToo && isInputLike(child)) {\n return React.cloneElement(child, { corners: { ...corners, ...child.props.corners } });\n }\n\n return child;\n};\n\nexport const GroupDataTids = {\n root: 'Group__root',\n} as const;\n\n@rootNode\nexport class Group extends React.Component<GroupProps> {\n public static __KONTUR_REACT_UI__ = 'Group';\n public static displayName = 'Group';\n\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n private emotion!: Emotion;\n\n public static propTypes = {\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n };\n\n public render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n public renderMain() {\n const style: React.CSSProperties = {\n width: this.props.width,\n };\n\n const childrenArray = React.Children.toArray(this.props.children);\n const firstChild = getFirstChild(childrenArray);\n const lastChild = getLastChild(childrenArray);\n const styles = getStyles(this.emotion);\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span data-tid={GroupDataTids.root} className={styles.root()} style={style}>\n {React.Children.map(childrenArray, (child) => {\n if (!child || !React.isValidElement<GroupChildProps>(child)) {\n return null;\n }\n\n const isWidthInPercent = Boolean(child.props.width && child.props.width.toString().includes('%'));\n\n const modifiedChild = passCornersIfButton(child, firstChild, lastChild, isTheme2022(this.theme));\n\n const isFirstChild = child === firstChild;\n\n return (\n <div\n className={this.emotion.cx({\n [styles.fixed()]: !isWidthInPercent,\n [styles.stretch()]: isWidthInPercent,\n [styles.stretchFallback()]: Boolean(isWidthInPercent && this.props.width && (isIE11 || isEdge)),\n })}\n >\n <div\n className={this.emotion.cx({\n [styles.item()]: true,\n [styles.itemFirst()]: isFirstChild,\n })}\n >\n {modifiedChild}\n </div>\n </div>\n );\n })}\n </span>\n </CommonWrapper>\n );\n }\n}\n"]}
@@ -15,10 +15,10 @@ import { EmotionConsumer } from "../../../lib/theming/Emotion";
15
15
  import { rootNode } from "../../../lib/rootNode";
16
16
  import { createPropsGetter } from "../../../lib/createPropsGetter";
17
17
  import { isTheme2022 } from "../../../lib/theming/ThemeHelpers";
18
- import { ThemeConsumer, ThemeProvider } from "../../../lib/theming/ThemeContext";
18
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
19
19
  import { getStyles } from "../Hint.styles";
20
20
  var HINT_BORDER_COLOR = 'transparent';
21
- var Positions = ['top center', 'top left', 'top right', 'bottom center', 'bottom left', 'bottom right', 'left middle', 'left top', 'left bottom', 'right middle', 'right top', 'right bottom'];
21
+ var OldPositions = ['top center', 'top left', 'top right', 'bottom center', 'bottom left', 'bottom right', 'left middle', 'left top', 'left bottom', 'right middle', 'right top', 'right bottom'];
22
22
  export
23
23
  /**
24
24
  * Всплывающая подсказка, которая по умолчанию отображается при наведении на элемент. <br/> Можно задать другие условия отображения.
@@ -49,12 +49,16 @@ var Hint = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Pu
49
49
  };
50
50
 
51
51
  _this.getPositions = function () {
52
+ if (_this.featureFlags.popupUnifyPositioning) {
53
+ return _this.props.allowedPositions;
54
+ }
55
+
56
+ var pos = _this.props.pos ? _this.props.pos : 'top';
57
+
58
+ var allowedPositions = _this.getAllowedPositions();
59
+
52
60
  if (_this.featureFlags.hintAddDynamicPositioning) {
53
61
  if (!_this.positions) {
54
- var _this$getProps = _this.getProps(),
55
- allowedPositions = _this$getProps.allowedPositions,
56
- pos = _this$getProps.pos;
57
-
58
62
  var priorityPosition;
59
63
 
60
64
  switch (pos) {
@@ -90,8 +94,8 @@ var Hint = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Pu
90
94
  return _this.positions;
91
95
  }
92
96
 
93
- return Positions.filter(function (x) {
94
- return x.startsWith(_this.getProps().pos);
97
+ return OldPositions.filter(function (x) {
98
+ return x.startsWith(pos);
95
99
  });
96
100
  };
97
101
 
@@ -131,12 +135,14 @@ var Hint = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Pu
131
135
 
132
136
  var _proto = Hint.prototype;
133
137
 
138
+ _proto.getAllowedPositions = function getAllowedPositions() {
139
+ return this.props.allowedPositions ? this.props.allowedPositions : OldPositions;
140
+ };
141
+
134
142
  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
135
- var _this$getProps2 = this.getProps(),
136
- opened = _this$getProps2.opened,
137
- manual = _this$getProps2.manual,
138
- pos = _this$getProps2.pos,
139
- allowedPositions = _this$getProps2.allowedPositions;
143
+ var _this$getProps = this.getProps(),
144
+ opened = _this$getProps.opened,
145
+ manual = _this$getProps.manual;
140
146
 
141
147
  if (!manual) {
142
148
  return;
@@ -153,7 +159,9 @@ var Hint = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Pu
153
159
  });
154
160
  }
155
161
 
156
- if (this.featureFlags.hintAddDynamicPositioning) {
162
+ if (this.featureFlags.hintAddDynamicPositioning && !this.featureFlags.popupUnifyPositioning) {
163
+ var pos = this.props.pos ? this.props.pos : 'top';
164
+ var allowedPositions = this.props.allowedPositions ? this.props.allowedPositions : OldPositions;
157
165
  var posChanged = prevProps.pos !== pos;
158
166
  var allowedChanged = !isEqual(prevProps.allowedPositions, allowedPositions);
159
167
 
@@ -177,9 +185,9 @@ var Hint = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Pu
177
185
  _this2.featureFlags = getFullReactUIFlagsContext(flags);
178
186
  return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
179
187
  _this2.emotion = emotion;
180
- return /*#__PURE__*/React.createElement(ThemeConsumer, null, function (theme) {
188
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
181
189
  _this2.theme = theme;
182
- return /*#__PURE__*/React.createElement(ThemeProvider, {
190
+ return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
183
191
  value: ThemeFactory.create({
184
192
  popupPinOffset: theme.hintPinOffset,
185
193
  popupMargin: theme.hintMargin,
@@ -195,34 +203,33 @@ var Hint = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Pu
195
203
  _proto.renderMain = function renderMain() {
196
204
  var _this3 = this;
197
205
 
198
- var _this$getProps3 = this.getProps(),
199
- disableAnimations = _this$getProps3.disableAnimations,
200
- useWrapper = _this$getProps3.useWrapper;
201
-
202
- return /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Consumer, null, function (flags) {
203
- var hasPin = !getFullReactUIFlagsContext(flags).kebabHintRemovePin || !isTheme2022(_this3.theme);
204
- return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
205
- rootNodeRef: _this3.setRootNode
206
- }, _this3.props), /*#__PURE__*/React.createElement(Popup, {
207
- hasPin: hasPin,
208
- opened: _this3.state.opened,
209
- anchorElement: _this3.props.children,
210
- positions: _this3.getPositions(),
211
- backgroundColor: _this3.theme.hintBgColor,
212
- borderColor: HINT_BORDER_COLOR,
213
- onPositionChange: function onPositionChange(position) {
214
- return _this3.setState({
215
- position: position
216
- });
217
- },
218
- disableAnimations: disableAnimations,
219
- onMouseEnter: _this3.handleMouseEnter,
220
- onMouseLeave: _this3.handleMouseLeave,
221
- useWrapper: useWrapper,
222
- ref: _this3.popupRef,
223
- withoutMobile: true
224
- }, _this3.renderContent()));
225
- });
206
+ var _this$getProps2 = this.getProps(),
207
+ disableAnimations = _this$getProps2.disableAnimations,
208
+ useWrapper = _this$getProps2.useWrapper;
209
+
210
+ var hasPin = !this.featureFlags.kebabHintRemovePin || !isTheme2022(this.theme);
211
+ return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
212
+ rootNodeRef: this.setRootNode
213
+ }, this.props), /*#__PURE__*/React.createElement(Popup, {
214
+ hasPin: hasPin,
215
+ opened: this.state.opened,
216
+ anchorElement: this.props.children,
217
+ positions: this.getPositions(),
218
+ pos: this.props.pos,
219
+ backgroundColor: this.theme.hintBgColor,
220
+ borderColor: HINT_BORDER_COLOR,
221
+ onPositionChange: function onPositionChange(position) {
222
+ return _this3.setState({
223
+ position: position
224
+ });
225
+ },
226
+ disableAnimations: disableAnimations,
227
+ onMouseEnter: this.handleMouseEnter,
228
+ onMouseLeave: this.handleMouseLeave,
229
+ useWrapper: useWrapper,
230
+ ref: this.popupRef,
231
+ withoutMobile: true
232
+ }, this.renderContent()));
226
233
  };
227
234
 
228
235
  _proto.renderContent = function renderContent() {
@@ -232,8 +239,8 @@ var Hint = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Pu
232
239
  return null;
233
240
  }
234
241
 
235
- var _this$getProps4 = this.getProps(),
236
- maxWidth = _this$getProps4.maxWidth;
242
+ var _this$getProps3 = this.getProps(),
243
+ maxWidth = _this$getProps3.maxWidth;
237
244
 
238
245
  var centerAlignPositions = ['top', 'top center', 'bottom', 'bottom center'];
239
246
  var styles = getStyles(this.emotion);
@@ -248,11 +255,9 @@ var Hint = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Pu
248
255
 
249
256
  return Hint;
250
257
  }(React.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Hint', _class2.displayName = 'Hint', _class2.defaultProps = {
251
- pos: 'top',
252
258
  manual: false,
253
259
  opened: false,
254
260
  maxWidth: 200,
255
- allowedPositions: Positions,
256
261
  disableAnimations: isTestEnv,
257
262
  useWrapper: false
258
263
  }, _temp)) || _class;
@@ -1 +1 @@
1
- {"version":3,"sources":["Hint.tsx"],"names":["React","globalObject","isEqual","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","ThemeFactory","DUMMY_LOCATION","Popup","isTestEnv","CommonWrapper","EmotionConsumer","rootNode","createPropsGetter","isTheme2022","ThemeConsumer","ThemeProvider","getStyles","HINT_BORDER_COLOR","Positions","Hint","getProps","defaultProps","state","opened","manual","position","positions","popupRef","createRef","getAnchorElement","current","anchorElement","getPositions","featureFlags","hintAddDynamicPositioning","allowedPositions","pos","priorityPosition","index","indexOf","Error","join","slice","filter","x","startsWith","handleMouseEnter","e","timer","setTimeout","open","props","onMouseEnter","handleMouseLeave","clearTimeout","setState","onMouseLeave","componentDidUpdate","prevProps","posChanged","allowedChanged","componentWillUnmount","render","flags","emotion","theme","create","popupPinOffset","hintPinOffset","popupMargin","hintMargin","popupBorder","hintBorder","popupBorderRadius","hintBorderRadius","renderMain","disableAnimations","useWrapper","hasPin","kebabHintRemovePin","setRootNode","children","hintBgColor","renderContent","text","maxWidth","centerAlignPositions","styles","className","cx","content","contentCenter","includes","PureComponent","__KONTUR_REACT_UI__","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\nimport isEqual from 'lodash.isequal';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport {\n getFullReactUIFlagsContext,\n ReactUIFeatureFlags,\n ReactUIFeatureFlagsContext,\n} from '../../lib/featureFlagsContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DUMMY_LOCATION, Popup, PopupPositionsType } from '../../internal/Popup';\nimport { Nullable } from '../../typings/utility-types';\nimport { MouseEventType } from '../../typings/event-types';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { InstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { ThemeConsumer, ThemeProvider } from '../../lib/theming/ThemeContext';\n\nimport { getStyles } from './Hint.styles';\n\nconst HINT_BORDER_COLOR = 'transparent';\n\nexport interface HintProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Переводит отображение подсказки в _\"ручной режим\"_.\n *\n * В _\"ручном режиме\"_ подсказку можно активировать только задав значение пропу `opened`.\n */\n manual?: boolean;\n /**\n * Задаёт максимальную ширину подсказки.\n */\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: (event: MouseEventType) => void;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: (event: MouseEventType) => void;\n /**\n * Если `true` - подсказка будет открыта.\n *\n * _Примечание_: работает только при `manual=true`.\n */\n opened?: boolean;\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?: 'top' | 'right' | 'bottom' | 'left' | PopupPositionsType;\n /**\n * Текст подсказки.\n */\n text: React.ReactNode;\n /**\n * Список позиций, которые хинт будет занимать. Если положение хинт в определенной позиции будет выходить\n * за край экрана, то будет выбрана следующая позиция. Обязательно должен включать позицию указанную в `pos`.\n * Для применения этого пропа необходимо включить фиче-флаг hintAddDynamicPositioning.\n */\n allowedPositions?: PopupPositionsType[];\n /**\n * Отключает анимацию.\n */\n disableAnimations?: boolean;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования хинта при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n}\n\nexport interface HintState {\n opened: boolean;\n position: PopupPositionsType;\n}\n\nconst Positions: PopupPositionsType[] = [\n 'top center',\n 'top left',\n 'top right',\n 'bottom center',\n 'bottom left',\n 'bottom right',\n 'left middle',\n 'left top',\n 'left bottom',\n 'right middle',\n 'right top',\n 'right bottom',\n];\n\ntype DefaultProps = Required<\n Pick<HintProps, 'pos' | 'allowedPositions' | 'manual' | 'opened' | 'maxWidth' | 'disableAnimations' | 'useWrapper'>\n>;\n\n/**\n * Всплывающая подсказка, которая по умолчанию отображается при наведении на элемент. <br/> Можно задать другие условия отображения.\n */\n@rootNode\nexport class Hint extends React.PureComponent<HintProps, HintState> implements InstanceWithAnchorElement {\n public static __KONTUR_REACT_UI__ = 'Hint';\n public static displayName = 'Hint';\n\n public static defaultProps: DefaultProps = {\n pos: 'top',\n manual: false,\n opened: false,\n maxWidth: 200,\n allowedPositions: Positions,\n disableAnimations: isTestEnv,\n useWrapper: false,\n };\n\n private getProps = createPropsGetter(Hint.defaultProps);\n\n public state: HintState = {\n opened: this.getProps().manual ? !!this.getProps().opened : false,\n position: DUMMY_LOCATION.position,\n };\n\n private timer: SafeTimer;\n private theme!: Theme;\n private emotion!: Emotion;\n private featureFlags!: ReactUIFeatureFlags;\n private setRootNode!: TSetRootNode;\n private positions: Nullable<PopupPositionsType[]> = null;\n\n private popupRef = React.createRef<Popup>();\n\n public componentDidUpdate(prevProps: HintProps) {\n const { opened, manual, pos, allowedPositions } = this.getProps();\n if (!manual) {\n return;\n }\n if (this.timer) {\n globalObject.clearTimeout(this.timer);\n this.timer = null;\n }\n if (opened !== prevProps.opened) {\n this.setState({ opened: !!opened });\n }\n\n if (this.featureFlags.hintAddDynamicPositioning) {\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 if (this.timer) {\n globalObject.clearTimeout(this.timer);\n this.timer = null;\n }\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 <ThemeConsumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeProvider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.hintPinOffset,\n popupMargin: theme.hintMargin,\n popupBorder: theme.hintBorder,\n popupBorderRadius: theme.hintBorderRadius,\n },\n this.theme,\n )}\n >\n {this.renderMain()}\n </ThemeProvider>\n );\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n public renderMain() {\n const { disableAnimations, useWrapper } = this.getProps();\n\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n const hasPin = !getFullReactUIFlagsContext(flags).kebabHintRemovePin || !isTheme2022(this.theme);\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Popup\n hasPin={hasPin}\n opened={this.state.opened}\n anchorElement={this.props.children}\n positions={this.getPositions()}\n backgroundColor={this.theme.hintBgColor}\n borderColor={HINT_BORDER_COLOR}\n onPositionChange={(position) => this.setState({ position })}\n disableAnimations={disableAnimations}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n useWrapper={useWrapper}\n ref={this.popupRef}\n withoutMobile\n >\n {this.renderContent()}\n </Popup>\n </CommonWrapper>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n public getAnchorElement = (): Nullable<Element> => {\n return this.popupRef.current?.anchorElement;\n };\n\n private renderContent() {\n if (!this.props.text) {\n return null;\n }\n\n const { maxWidth } = this.getProps();\n const centerAlignPositions = ['top', 'top center', 'bottom', 'bottom center'];\n const styles = getStyles(this.emotion);\n const className = this.emotion.cx({\n [styles.content(this.theme)]: true,\n [styles.contentCenter(this.theme)]: centerAlignPositions.includes(this.state.position),\n });\n return (\n <div className={className} style={{ maxWidth }}>\n {this.props.text}\n </div>\n );\n }\n\n private getPositions = (): PopupPositionsType[] => {\n if (this.featureFlags.hintAddDynamicPositioning) {\n if (!this.positions) {\n const { allowedPositions, pos } = this.getProps();\n let priorityPosition: PopupPositionsType;\n switch (pos) {\n case 'top':\n priorityPosition = 'top center';\n break;\n case 'bottom':\n priorityPosition = 'bottom center';\n break;\n case 'left':\n priorityPosition = 'left middle';\n break;\n case 'right':\n priorityPosition = 'right middle';\n break;\n default:\n priorityPosition = pos;\n }\n const index = allowedPositions.indexOf(priorityPosition);\n if (index === -1) {\n throw new Error('Unexpected position passed to Hint. Expected one of: ' + allowedPositions.join(', '));\n }\n this.positions = [...allowedPositions.slice(index), ...allowedPositions.slice(0, index)];\n }\n return this.positions;\n }\n return Positions.filter((x) => x.startsWith(this.getProps().pos));\n };\n\n private handleMouseEnter = (e: MouseEventType) => {\n if (!this.getProps().manual && !this.timer) {\n this.timer = globalObject.setTimeout(this.open, 400);\n }\n\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n\n private handleMouseLeave = (e: MouseEventType) => {\n if (!this.getProps().manual && this.timer) {\n globalObject.clearTimeout(this.timer);\n this.timer = null;\n this.setState({ opened: false });\n }\n\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private open = () => {\n this.setState({ opened: true });\n };\n}\n"]}
1
+ {"version":3,"sources":["Hint.tsx"],"names":["React","globalObject","isEqual","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","ThemeFactory","DUMMY_LOCATION","Popup","isTestEnv","CommonWrapper","EmotionConsumer","rootNode","createPropsGetter","isTheme2022","ThemeContext","getStyles","HINT_BORDER_COLOR","OldPositions","Hint","getProps","defaultProps","state","opened","manual","position","positions","popupRef","createRef","getAnchorElement","current","anchorElement","getPositions","featureFlags","popupUnifyPositioning","props","allowedPositions","pos","getAllowedPositions","hintAddDynamicPositioning","priorityPosition","index","indexOf","Error","join","slice","filter","x","startsWith","handleMouseEnter","e","timer","setTimeout","open","onMouseEnter","handleMouseLeave","clearTimeout","setState","onMouseLeave","componentDidUpdate","prevProps","posChanged","allowedChanged","componentWillUnmount","render","flags","emotion","theme","create","popupPinOffset","hintPinOffset","popupMargin","hintMargin","popupBorder","hintBorder","popupBorderRadius","hintBorderRadius","renderMain","disableAnimations","useWrapper","hasPin","kebabHintRemovePin","setRootNode","children","hintBgColor","renderContent","text","maxWidth","centerAlignPositions","styles","className","cx","content","contentCenter","includes","PureComponent","__KONTUR_REACT_UI__","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\nimport isEqual from 'lodash.isequal';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport {\n getFullReactUIFlagsContext,\n ReactUIFeatureFlags,\n ReactUIFeatureFlagsContext,\n} from '../../lib/featureFlagsContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DUMMY_LOCATION, Popup, PopupPositionsType, ShortPopupPositionsType } from '../../internal/Popup';\nimport { Nullable } from '../../typings/utility-types';\nimport { MouseEventType } from '../../typings/event-types';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { InstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { getStyles } from './Hint.styles';\n\nconst HINT_BORDER_COLOR = 'transparent';\n\nexport interface HintProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Переводит отображение подсказки в _\"ручной режим\"_.\n *\n * В _\"ручном режиме\"_ подсказку можно активировать только задав значение пропу `opened`.\n */\n manual?: boolean;\n /**\n * Задаёт максимальную ширину подсказки.\n */\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: (event: MouseEventType) => void;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: (event: MouseEventType) => void;\n /**\n * Если `true` - подсказка будет открыта.\n *\n * _Примечание_: работает только при `manual=true`.\n */\n opened?: boolean;\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 text: React.ReactNode;\n /**\n * Список позиций, которые хинт будет занимать. Если положение хинт в определенной позиции будет выходить\n * за край экрана, то будет выбрана следующая позиция. Обязательно должен включать позицию указанную в `pos`.\n * Для применения этого пропа необходимо включить фиче-флаг hintAddDynamicPositioning.\n */\n allowedPositions?: PopupPositionsType[];\n /**\n * Отключает анимацию.\n */\n disableAnimations?: boolean;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования хинта при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n}\n\nexport interface HintState {\n opened: boolean;\n position: PopupPositionsType;\n}\n\nconst OldPositions: PopupPositionsType[] = [\n 'top center',\n 'top left',\n 'top right',\n 'bottom center',\n 'bottom left',\n 'bottom right',\n 'left middle',\n 'left top',\n 'left bottom',\n 'right middle',\n 'right top',\n 'right bottom',\n];\n\ntype DefaultProps = Required<Pick<HintProps, 'manual' | 'opened' | 'maxWidth' | 'disableAnimations' | 'useWrapper'>>;\n\n/**\n * Всплывающая подсказка, которая по умолчанию отображается при наведении на элемент. <br/> Можно задать другие условия отображения.\n */\n@rootNode\nexport class Hint extends React.PureComponent<HintProps, HintState> implements InstanceWithAnchorElement {\n public static __KONTUR_REACT_UI__ = 'Hint';\n public static displayName = 'Hint';\n\n public static defaultProps: DefaultProps = {\n manual: false,\n opened: false,\n maxWidth: 200,\n disableAnimations: isTestEnv,\n useWrapper: false,\n };\n\n private getProps = createPropsGetter(Hint.defaultProps);\n\n public state: HintState = {\n opened: this.getProps().manual ? !!this.getProps().opened : false,\n position: DUMMY_LOCATION.position,\n };\n\n private timer: SafeTimer;\n private theme!: Theme;\n private emotion!: Emotion;\n private featureFlags!: ReactUIFeatureFlags;\n private setRootNode!: TSetRootNode;\n private positions: Nullable<PopupPositionsType[]> = null;\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: HintProps) {\n const { opened, manual } = this.getProps();\n if (!manual) {\n return;\n }\n if (this.timer) {\n globalObject.clearTimeout(this.timer);\n this.timer = null;\n }\n if (opened !== prevProps.opened) {\n this.setState({ opened: !!opened });\n }\n\n if (this.featureFlags.hintAddDynamicPositioning && !this.featureFlags.popupUnifyPositioning) {\n const pos = this.props.pos ? this.props.pos : 'top';\n const allowedPositions = this.props.allowedPositions ? this.props.allowedPositions : OldPositions;\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 if (this.timer) {\n globalObject.clearTimeout(this.timer);\n this.timer = null;\n }\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.hintPinOffset,\n popupMargin: theme.hintMargin,\n popupBorder: theme.hintBorder,\n popupBorderRadius: theme.hintBorderRadius,\n },\n this.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 renderMain() {\n const { disableAnimations, useWrapper } = this.getProps();\n const hasPin = !this.featureFlags.kebabHintRemovePin || !isTheme2022(this.theme);\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Popup\n hasPin={hasPin}\n opened={this.state.opened}\n anchorElement={this.props.children}\n positions={this.getPositions()}\n pos={this.props.pos}\n backgroundColor={this.theme.hintBgColor}\n borderColor={HINT_BORDER_COLOR}\n onPositionChange={(position) => this.setState({ position })}\n disableAnimations={disableAnimations}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n useWrapper={useWrapper}\n ref={this.popupRef}\n withoutMobile\n >\n {this.renderContent()}\n </Popup>\n </CommonWrapper>\n );\n }\n\n public getAnchorElement = (): Nullable<Element> => {\n return this.popupRef.current?.anchorElement;\n };\n\n private renderContent() {\n if (!this.props.text) {\n return null;\n }\n\n const { maxWidth } = this.getProps();\n const centerAlignPositions = ['top', 'top center', 'bottom', 'bottom center'];\n const styles = getStyles(this.emotion);\n const className = this.emotion.cx({\n [styles.content(this.theme)]: true,\n [styles.contentCenter(this.theme)]: centerAlignPositions.includes(this.state.position),\n });\n return (\n <div className={className} style={{ maxWidth }}>\n {this.props.text}\n </div>\n );\n }\n\n private getPositions = (): PopupPositionsType[] | undefined => {\n if (this.featureFlags.popupUnifyPositioning) {\n return this.props.allowedPositions;\n }\n const pos = this.props.pos ? this.props.pos : 'top';\n const allowedPositions = this.getAllowedPositions();\n if (this.featureFlags.hintAddDynamicPositioning) {\n if (!this.positions) {\n let priorityPosition: PopupPositionsType;\n switch (pos) {\n case 'top':\n priorityPosition = 'top center';\n break;\n case 'bottom':\n priorityPosition = 'bottom center';\n break;\n case 'left':\n priorityPosition = 'left middle';\n break;\n case 'right':\n priorityPosition = 'right middle';\n break;\n default:\n priorityPosition = pos;\n }\n const index = allowedPositions.indexOf(priorityPosition);\n if (index === -1) {\n throw new Error('Unexpected position passed to Hint. Expected one of: ' + allowedPositions.join(', '));\n }\n this.positions = [...allowedPositions.slice(index), ...allowedPositions.slice(0, index)];\n }\n return this.positions;\n }\n return OldPositions.filter((x) => x.startsWith(pos));\n };\n\n private handleMouseEnter = (e: MouseEventType) => {\n if (!this.getProps().manual && !this.timer) {\n this.timer = globalObject.setTimeout(this.open, 400);\n }\n\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n\n private handleMouseLeave = (e: MouseEventType) => {\n if (!this.getProps().manual && this.timer) {\n globalObject.clearTimeout(this.timer);\n this.timer = null;\n this.setState({ opened: false });\n }\n\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private open = () => {\n this.setState({ opened: true });\n };\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { PopupPositionsType } from '../../internal/Popup';
2
+ import { PopupPositionsType, ShortPopupPositionsType } from '../../internal/Popup';
3
3
  import { Nullable } from '../../typings/utility-types';
4
4
  import { MouseEventType } from '../../typings/event-types';
5
5
  import { CommonProps } from '../../internal/CommonWrapper';
@@ -35,7 +35,7 @@ export interface HintProps extends CommonProps {
35
35
  *
36
36
  * **Допустимые значения**: `"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"`.
37
37
  */
38
- pos?: 'top' | 'right' | 'bottom' | 'left' | PopupPositionsType;
38
+ pos?: ShortPopupPositionsType | PopupPositionsType;
39
39
  /**
40
40
  * Текст подсказки.
41
41
  */
@@ -61,7 +61,7 @@ export interface HintState {
61
61
  opened: boolean;
62
62
  position: PopupPositionsType;
63
63
  }
64
- declare type DefaultProps = Required<Pick<HintProps, 'pos' | 'allowedPositions' | 'manual' | 'opened' | 'maxWidth' | 'disableAnimations' | 'useWrapper'>>;
64
+ declare type DefaultProps = Required<Pick<HintProps, 'manual' | 'opened' | 'maxWidth' | 'disableAnimations' | 'useWrapper'>>;
65
65
  /**
66
66
  * Всплывающая подсказка, которая по умолчанию отображается при наведении на элемент. <br/> Можно задать другие условия отображения.
67
67
  */
@@ -78,6 +78,7 @@ export declare class Hint extends React.PureComponent<HintProps, HintState> impl
78
78
  private setRootNode;
79
79
  private positions;
80
80
  private popupRef;
81
+ getAllowedPositions(): ("top center" | "top left" | "top right" | "bottom center" | "bottom left" | "bottom right" | "left middle" | "left top" | "left bottom" | "right middle" | "right top" | "right bottom")[];
81
82
  componentDidUpdate(prevProps: HintProps): void;
82
83
  componentWillUnmount(): void;
83
84
  render(): JSX.Element;
@@ -24,7 +24,7 @@ import { isTheme2022 } from "../../../lib/theming/ThemeHelpers";
24
24
  import { isFunction } from "../../../lib/utils";
25
25
  import { FocusControlWrapper } from "../../../internal/FocusControlWrapper";
26
26
  import { EmotionConsumer } from "../../../lib/theming/Emotion";
27
- import { ThemeConsumer } from "../../../lib/theming/ThemeContext";
27
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
28
28
  import { InputLayout } from "../InputLayout/InputLayout";
29
29
  import { PolyfillPlaceholder } from "../InputLayout/PolyfillPlaceholder";
30
30
  import { getStyles } from "../Input.styles";
@@ -487,7 +487,7 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
487
487
 
488
488
  return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
489
489
  _this4.emotion = emotion;
490
- return /*#__PURE__*/React.createElement(ThemeConsumer, null, function (theme) {
490
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
491
491
  _this4.theme = theme;
492
492
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
493
493
  rootNodeRef: _this4.setRootNode
@@ -547,7 +547,7 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
547
547
  var iconNode = isFunction(icon) ? icon() : icon;
548
548
  var styles = getStyles(this.emotion);
549
549
  return /*#__PURE__*/React.createElement("span", {
550
- className: this.emotion.cx(styles.icon(), sizeClassName, styles.useDefaultColor(this.theme), (_this$emotion$cx5 = {}, _this$emotion$cx5[styles.iconFocus(this.theme)] = this.state.focused, _this$emotion$cx5[styles.iconDisabled()] = disabled, _this$emotion$cx5))
550
+ className: this.emotion.cx(styles.icon(), sizeClassName, styles.useDefaultColor(this.theme), (_this$emotion$cx5 = {}, _this$emotion$cx5[styles.iconFocus(this.theme)] = this.state.focused, _this$emotion$cx5[styles.iconDisabled(this.theme)] = disabled, _this$emotion$cx5))
551
551
  }, iconNode);
552
552
  };
553
553