@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":["Picker.tsx"],"names":["React","warning","InternalDateTransformer","ThemeFactory","EmotionConsumer","InternalDateGetter","InternalDate","locale","Calendar","getTodayDate","isTheme2022","Button","ArrowAUpIcon16Light","ThemeConsumer","ThemeProvider","getStyles","DatePickerDataTids","DatePickerLocaleHelper","Picker","props","calendar","isHoliday","day","isWeekend","dateShape","parseValue","getComponentsLikeNumber","onValueChange","date","onPick","getDateFromShape","undefined","dateToInternalString","handleSelectToday","today","onSelect","todayInNativeFormat","toNativeFormat","state","month","year","scrollToMonth","render","emotion","theme","create","calendarBottomSeparatorBorder","renderMain","styles","pickerRoot","calendarWrapper","e","preventDefault","c","maxDate","minDate","value","enableTodayLink","renderTodayLink","order","separator","setComponents","getTodayComponents","toString","withPad","withSeparator","margin","pickerTodayWrapper","cx","todayLinkWrapper","Component","__KONTUR_REACT_UI__","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport warning from 'warning';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Nullable } from '../../typings/utility-types';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { locale } from '../../lib/locale/decorators';\nimport { Calendar } from '../Calendar';\nimport { CalendarDateShape } from '../Calendar/CalendarDateShape';\nimport { Theme } from '../../lib/theming/Theme';\nimport { getTodayDate } from '../Calendar/CalendarUtils';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { Button } from '../Button';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { ThemeConsumer, ThemeProvider } from '../../lib/theming/ThemeContext';\n\nimport { getStyles } from './DatePicker.styles';\nimport { DatePickerDataTids } from './DatePicker';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\n\ninterface PickerProps {\n maxDate?: CalendarDateShape;\n minDate?: CalendarDateShape;\n value: Nullable<CalendarDateShape>;\n onPick: (date: CalendarDateShape) => void;\n onSelect?: (date: CalendarDateShape) => void;\n enableTodayLink?: boolean;\n isHoliday?: (day: CalendarDateShape & { isWeekend: boolean }) => boolean;\n}\n\ninterface PickerState {\n today: CalendarDateShape;\n}\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class Picker extends React.Component<PickerProps, PickerState> {\n public static __KONTUR_REACT_UI__ = 'Picker';\n public static displayName = 'Picker';\n\n private theme!: Theme;\n private emotion!: Emotion;\n private calendar: Calendar | null = null;\n private readonly locale!: DatePickerLocale;\n\n constructor(props: PickerProps) {\n super(props);\n this.state = {\n today: getTodayDate(),\n };\n warning(\n false,\n `<Picker /> has been deprecated. It will be removed in the next major version of the library. If you wish to have a similar component make use of public component <Calendar />.`,\n );\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\n return (\n <ThemeProvider value={ThemeFactory.create({ calendarBottomSeparatorBorder: 'none' }, theme)}>\n {this.renderMain()}\n </ThemeProvider>\n );\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private isHoliday = (day: string, isWeekend: boolean) => {\n const dateShape = new InternalDate().parseValue(day).getComponentsLikeNumber();\n\n return !!this.props.isHoliday?.({ ...dateShape, isWeekend });\n };\n\n private onValueChange = (date: string) => {\n const dateShape = new InternalDate().parseValue(date).getComponentsLikeNumber();\n\n return this.props.onPick(dateShape);\n };\n\n private renderMain() {\n const styles = getStyles(this.emotion);\n return (\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n ref={(c) => (this.calendar = c)}\n maxDate={this.getDateFromShape(this.props.maxDate)}\n minDate={this.getDateFromShape(this.props.minDate)}\n onValueChange={this.onValueChange}\n isHoliday={this.isHoliday}\n value={this.getDateFromShape(this.props.value)}\n />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n );\n }\n\n private getDateFromShape = (dateShape: CalendarDateShape | undefined | null) => {\n if (!dateShape) {\n return undefined;\n }\n\n return InternalDateTransformer.dateToInternalString(dateShape);\n };\n\n private renderTodayLink() {\n const { order, separator } = this.locale;\n const today = new InternalDate({ order, separator })\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n if (isTheme2022(this.theme)) {\n return (\n <div style={{ margin: 8 }}>\n <Button\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n width=\"100%\"\n onClick={this.handleSelectToday(today)}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n const styles = getStyles(this.emotion);\n\n return (\n <button\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n className={this.emotion.cx({\n [styles.todayLinkWrapper(this.theme)]: true,\n })}\n onClick={this.handleSelectToday(today)}\n tabIndex={-1}\n >\n {`${this.locale.today} ${today}`}\n </button>\n );\n }\n\n private handleSelectToday = (today: string) => () => {\n if (this.props.onSelect) {\n const todayInNativeFormat = new InternalDate().parseValue(today).toNativeFormat() as CalendarDateShape;\n this.props.onSelect(todayInNativeFormat);\n }\n\n if (this.calendar) {\n const { month, year } = this.state.today;\n this.calendar.scrollToMonth(month, year);\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["Picker.tsx"],"names":["React","warning","InternalDateTransformer","ThemeFactory","EmotionConsumer","InternalDateGetter","InternalDate","locale","Calendar","getTodayDate","isTheme2022","Button","ArrowAUpIcon16Light","ThemeContext","getStyles","DatePickerDataTids","DatePickerLocaleHelper","Picker","props","calendar","isHoliday","day","isWeekend","dateShape","parseValue","getComponentsLikeNumber","onValueChange","date","onPick","getDateFromShape","undefined","dateToInternalString","handleSelectToday","today","onSelect","todayInNativeFormat","toNativeFormat","state","month","year","scrollToMonth","render","emotion","theme","create","calendarBottomSeparatorBorder","renderMain","styles","pickerRoot","calendarWrapper","e","preventDefault","c","maxDate","minDate","value","enableTodayLink","renderTodayLink","order","separator","setComponents","getTodayComponents","toString","withPad","withSeparator","margin","pickerTodayWrapper","cx","todayLinkWrapper","Component","__KONTUR_REACT_UI__","displayName"],"mappings":"iKAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,OAAP,MAAoB,SAApB;;;AAGA,SAASC,uBAAT,QAAwC,wCAAxC;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,eAAT,QAAgC,2BAAhC;AACA,SAASC,kBAAT,QAAmC,mCAAnC;AACA,SAASC,YAAT,QAA6B,6BAA7B;AACA,SAASC,MAAT,QAAuB,6BAAvB;AACA,SAASC,QAAT,QAAyB,aAAzB;;;AAGA,SAASC,YAAT,QAA6B,2BAA7B;AACA,SAASC,WAAT,QAA4B,gCAA5B;AACA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,mBAAT,QAAoC,uDAApC;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,SAAT,QAA0B,qBAA1B;AACA,SAASC,kBAAT,QAAmC,cAAnC;AACA,SAA2BC,sBAA3B,QAAyD,UAAzD;;;;;;;;;;;;;;;;;AAiBA,WAAaC,MAAb,WADCV,MAAM,CAAC,YAAD,EAAeS,sBAAf,CACP;;;;;;;;;AASE,kBAAYE,KAAZ,EAAgC;AAC9B,wCAAMA,KAAN,UAD8B,MAHxBC,QAGwB,GAHI,IAGJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCxBC,IAAAA,SAlCwB,GAkCZ,UAACC,GAAD,EAAcC,SAAd,EAAqC;AACvD,UAAMC,SAAS,GAAG,IAAIjB,YAAJ,GAAmBkB,UAAnB,CAA8BH,GAA9B,EAAmCI,uBAAnC,EAAlB;;AAEA,aAAO,CAAC,EAAC,MAAKP,KAAL,CAAWE,SAAZ,YAAC,MAAKF,KAAL,CAAWE,SAAX,cAA4BG,SAA5B,IAAuCD,SAAS,EAATA,SAAvC,IAAD,CAAR;AACD,KAtC+B;;AAwCxBI,IAAAA,aAxCwB,GAwCR,UAACC,IAAD,EAAkB;AACxC,UAAMJ,SAAS,GAAG,IAAIjB,YAAJ,GAAmBkB,UAAnB,CAA8BG,IAA9B,EAAoCF,uBAApC,EAAlB;;AAEA,aAAO,MAAKP,KAAL,CAAWU,MAAX,CAAkBL,SAAlB,CAAP;AACD,KA5C+B;;;;;;;;;;;;;;;;;;;;;;;AAmExBM,IAAAA,gBAnEwB,GAmEL,UAACN,SAAD,EAAqD;AAC9E,UAAI,CAACA,SAAL,EAAgB;AACd,eAAOO,SAAP;AACD;;AAED,aAAO5B,uBAAuB,CAAC6B,oBAAxB,CAA6CR,SAA7C,CAAP;AACD,KAzE+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+GxBS,IAAAA,iBA/GwB,GA+GJ,UAACC,KAAD,UAAmB,YAAM;AACnD,YAAI,MAAKf,KAAL,CAAWgB,QAAf,EAAyB;AACvB,cAAMC,mBAAmB,GAAG,IAAI7B,YAAJ,GAAmBkB,UAAnB,CAA8BS,KAA9B,EAAqCG,cAArC,EAA5B;AACA,gBAAKlB,KAAL,CAAWgB,QAAX,CAAoBC,mBAApB;AACD;;AAED,YAAI,MAAKhB,QAAT,EAAmB;AACjB,kCAAwB,MAAKkB,KAAL,CAAWJ,KAAnC,CAAQK,KAAR,qBAAQA,KAAR,CAAeC,IAAf,qBAAeA,IAAf;AACA,gBAAKpB,QAAL,CAAcqB,aAAd,CAA4BF,KAA5B,EAAmCC,IAAnC;AACD;AACF,OAV2B,EA/GI,CAE9B,MAAKF,KAAL,GAAa,EACXJ,KAAK,EAAExB,YAAY,EADR,EAAb,CAGAR,OAAO,CACL,KADK,oLAAP,CAL8B,aAS/B,CAlBH,qCAoBSwC,MApBT,GAoBE,kBAAgB,mBACd,oBACE,oBAAC,eAAD,QACG,UAACC,OAAD,EAAa,CACZ,MAAI,CAACA,OAAL,GAAeA,OAAf,CACA,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CAEA,oBACE,oBAAC,YAAD,CAAc,QAAd,IAAuB,KAAK,EAAExC,YAAY,CAACyC,MAAb,CAAoB,EAAEC,6BAA6B,EAAE,MAAjC,EAApB,EAA+DF,KAA/D,CAA9B,IACG,MAAI,CAACG,UAAL,EADH,CADF,CAKD,CATH,CADF,CAaD,CAhBH,CADF,CAoBD,CAzCH,QAuDUA,UAvDV,GAuDE,sBAAqB,mBACnB,IAAMC,MAAM,GAAGjC,SAAS,CAAC,KAAK4B,OAAN,CAAxB,CACA,oBACE,6BACE,YAAU3B,kBAAkB,CAACiC,UAD/B,EAEE,SAAS,EAAED,MAAM,CAACE,eAAP,CAAuB,KAAKN,KAA5B,CAFb,EAGE,WAAW,EAAE,qBAACO,CAAD,UAAOA,CAAC,CAACC,cAAF,EAAP,EAHf,iBAKE,oBAAC,QAAD,IACE,GAAG,EAAE,aAACC,CAAD,UAAQ,MAAI,CAACjC,QAAL,GAAgBiC,CAAxB,EADP,EAEE,OAAO,EAAE,KAAKvB,gBAAL,CAAsB,KAAKX,KAAL,CAAWmC,OAAjC,CAFX,EAGE,OAAO,EAAE,KAAKxB,gBAAL,CAAsB,KAAKX,KAAL,CAAWoC,OAAjC,CAHX,EAIE,aAAa,EAAE,KAAK5B,aAJtB,EAKE,SAAS,EAAE,KAAKN,SALlB,EAME,KAAK,EAAE,KAAKS,gBAAL,CAAsB,KAAKX,KAAL,CAAWqC,KAAjC,CANT,GALF,EAaG,KAAKrC,KAAL,CAAWsC,eAAX,IAA8B,KAAKC,eAAL,EAbjC,EAayD,GAbzD,CADF,CAiBD,CA1EH,QAoFUA,eApFV,GAoFE,2BAA0B,sBACxB,mBAA6B,KAAKlD,MAAlC,CAAQmD,KAAR,gBAAQA,KAAR,CAAeC,SAAf,gBAAeA,SAAf,CACA,IAAM1B,KAAK,GAAG,IAAI3B,YAAJ,CAAiB,EAAEoD,KAAK,EAALA,KAAF,EAASC,SAAS,EAATA,SAAT,EAAjB,EACXC,aADW,CACGvD,kBAAkB,CAACwD,kBAAnB,EADH,EAEXC,QAFW,CAEF,EAAEC,OAAO,EAAE,IAAX,EAAiBC,aAAa,EAAE,IAAhC,EAFE,CAAd,CAIA,IAAItD,WAAW,CAAC,KAAKiC,KAAN,CAAf,EAA6B,CAC3B,oBACE,6BAAK,KAAK,EAAE,EAAEsB,MAAM,EAAE,CAAV,EAAZ,iBACE,oBAAC,MAAD,IACE,YAAUlD,kBAAkB,CAACmD,kBAD/B,EAEE,KAAK,EAAC,MAFR,EAGE,OAAO,EAAE,KAAKlC,iBAAL,CAAuBC,KAAvB,CAHX,EAIE,IAAI,eAAE,oBAAC,mBAAD,OAJR,IAMG,KAAK1B,MAAL,CAAY0B,KANf,CADF,CADF,CAYD,CACD,IAAMc,MAAM,GAAGjC,SAAS,CAAC,KAAK4B,OAAN,CAAxB,CAEA,oBACE,gCACE,YAAU3B,kBAAkB,CAACmD,kBAD/B,EAEE,SAAS,EAAE,KAAKxB,OAAL,CAAayB,EAAb,0CACRpB,MAAM,CAACqB,gBAAP,CAAwB,KAAKzB,KAA7B,CADQ,IAC8B,IAD9B,oBAFb,EAKE,OAAO,EAAE,KAAKX,iBAAL,CAAuBC,KAAvB,CALX,EAME,QAAQ,EAAE,CAAC,CANb,IAQM,KAAK1B,MAAL,CAAY0B,KARlB,SAQ2BA,KAR3B,CADF,CAYD,CAtHH,iBAA4BjC,KAAK,CAACqE,SAAlC,WACgBC,mBADhB,GACsC,QADtC,UAEgBC,WAFhB,GAE8B,QAF9B","sourcesContent":["import React from 'react';\nimport warning from 'warning';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Nullable } from '../../typings/utility-types';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { locale } from '../../lib/locale/decorators';\nimport { Calendar } from '../Calendar';\nimport { CalendarDateShape } from '../Calendar/CalendarDateShape';\nimport { Theme } from '../../lib/theming/Theme';\nimport { getTodayDate } from '../Calendar/CalendarUtils';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { Button } from '../Button';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { getStyles } from './DatePicker.styles';\nimport { DatePickerDataTids } from './DatePicker';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\n\ninterface PickerProps {\n maxDate?: CalendarDateShape;\n minDate?: CalendarDateShape;\n value: Nullable<CalendarDateShape>;\n onPick: (date: CalendarDateShape) => void;\n onSelect?: (date: CalendarDateShape) => void;\n enableTodayLink?: boolean;\n isHoliday?: (day: CalendarDateShape & { isWeekend: boolean }) => boolean;\n}\n\ninterface PickerState {\n today: CalendarDateShape;\n}\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class Picker extends React.Component<PickerProps, PickerState> {\n public static __KONTUR_REACT_UI__ = 'Picker';\n public static displayName = 'Picker';\n\n private theme!: Theme;\n private emotion!: Emotion;\n private calendar: Calendar | null = null;\n private readonly locale!: DatePickerLocale;\n\n constructor(props: PickerProps) {\n super(props);\n this.state = {\n today: getTodayDate(),\n };\n warning(\n false,\n `<Picker /> has been deprecated. It will be removed in the next major version of the library. If you wish to have a similar component make use of public component <Calendar />.`,\n );\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\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ calendarBottomSeparatorBorder: 'none' }, theme)}>\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private isHoliday = (day: string, isWeekend: boolean) => {\n const dateShape = new InternalDate().parseValue(day).getComponentsLikeNumber();\n\n return !!this.props.isHoliday?.({ ...dateShape, isWeekend });\n };\n\n private onValueChange = (date: string) => {\n const dateShape = new InternalDate().parseValue(date).getComponentsLikeNumber();\n\n return this.props.onPick(dateShape);\n };\n\n private renderMain() {\n const styles = getStyles(this.emotion);\n return (\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n ref={(c) => (this.calendar = c)}\n maxDate={this.getDateFromShape(this.props.maxDate)}\n minDate={this.getDateFromShape(this.props.minDate)}\n onValueChange={this.onValueChange}\n isHoliday={this.isHoliday}\n value={this.getDateFromShape(this.props.value)}\n />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n );\n }\n\n private getDateFromShape = (dateShape: CalendarDateShape | undefined | null) => {\n if (!dateShape) {\n return undefined;\n }\n\n return InternalDateTransformer.dateToInternalString(dateShape);\n };\n\n private renderTodayLink() {\n const { order, separator } = this.locale;\n const today = new InternalDate({ order, separator })\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n if (isTheme2022(this.theme)) {\n return (\n <div style={{ margin: 8 }}>\n <Button\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n width=\"100%\"\n onClick={this.handleSelectToday(today)}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n const styles = getStyles(this.emotion);\n\n return (\n <button\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n className={this.emotion.cx({\n [styles.todayLinkWrapper(this.theme)]: true,\n })}\n onClick={this.handleSelectToday(today)}\n tabIndex={-1}\n >\n {`${this.locale.today} ${today}`}\n </button>\n );\n }\n\n private handleSelectToday = (today: string) => () => {\n if (this.props.onSelect) {\n const todayInNativeFormat = new InternalDate().parseValue(today).toNativeFormat() as CalendarDateShape;\n this.props.onSelect(todayInNativeFormat);\n }\n\n if (this.calendar) {\n const { month, year } = this.state.today;\n this.calendar.scrollToMonth(month, year);\n }\n };\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { ThemeFactory } from "../../../lib/theming/ThemeFactory";
2
+ export var getMobilePickerTheme = function getMobilePickerTheme(theme) {
3
+ return ThemeFactory.create({
4
+ calendarPaddingX: theme.mobileCalendarPaddingX,
5
+ calendarCellWidth: theme.mobileCalendarCellWidth,
6
+ calendarCellHeight: theme.mobileCalendarCellHeight,
7
+ calendarCellBorderRadius: theme.mobileCalendarCellBorderRadius,
8
+ calendarCellFontSize: theme.mobileCalendarCellFontSize,
9
+ calendarGridRowSpacing: theme.mobileCalendarGridRowSpacing,
10
+ dateSelectFontSize: theme.mobileDateSelectFontSize,
11
+ dateSelectLineHeight: theme.mobileDateSelectLineHeight,
12
+ calendarWrapperHeight: theme.mobileCalendarWrapperHeight
13
+ }, theme);
14
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["getMobilePickerTheme.ts"],"names":["ThemeFactory","getMobilePickerTheme","theme","create","calendarPaddingX","mobileCalendarPaddingX","calendarCellWidth","mobileCalendarCellWidth","calendarCellHeight","mobileCalendarCellHeight","calendarCellBorderRadius","mobileCalendarCellBorderRadius","calendarCellFontSize","mobileCalendarCellFontSize","calendarGridRowSpacing","mobileCalendarGridRowSpacing","dateSelectFontSize","mobileDateSelectFontSize","dateSelectLineHeight","mobileDateSelectLineHeight","calendarWrapperHeight","mobileCalendarWrapperHeight"],"mappings":"AAAA,SAASA,YAAT,QAA6B,gCAA7B;;;AAGA,OAAO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,KAAD,EAAyB;AAC3D,SAAOF,YAAY,CAACG,MAAb;AACL;AACEC,IAAAA,gBAAgB,EAAEF,KAAK,CAACG,sBAD1B;AAEEC,IAAAA,iBAAiB,EAAEJ,KAAK,CAACK,uBAF3B;AAGEC,IAAAA,kBAAkB,EAAEN,KAAK,CAACO,wBAH5B;AAIEC,IAAAA,wBAAwB,EAAER,KAAK,CAACS,8BAJlC;AAKEC,IAAAA,oBAAoB,EAAEV,KAAK,CAACW,0BAL9B;AAMEC,IAAAA,sBAAsB,EAAEZ,KAAK,CAACa,4BANhC;AAOEC,IAAAA,kBAAkB,EAAEd,KAAK,CAACe,wBAP5B;AAQEC,IAAAA,oBAAoB,EAAEhB,KAAK,CAACiB,0BAR9B;AASEC,IAAAA,qBAAqB,EAAElB,KAAK,CAACmB,2BAT/B,EADK;;AAYLnB,EAAAA,KAZK,CAAP;;AAcD,CAfM","sourcesContent":["import { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const getMobilePickerTheme = (theme: Theme): Theme => {\n return ThemeFactory.create(\n {\n calendarPaddingX: theme.mobileCalendarPaddingX,\n calendarCellWidth: theme.mobileCalendarCellWidth,\n calendarCellHeight: theme.mobileCalendarCellHeight,\n calendarCellBorderRadius: theme.mobileCalendarCellBorderRadius,\n calendarCellFontSize: theme.mobileCalendarCellFontSize,\n calendarGridRowSpacing: theme.mobileCalendarGridRowSpacing,\n dateSelectFontSize: theme.mobileDateSelectFontSize,\n dateSelectLineHeight: theme.mobileDateSelectLineHeight,\n calendarWrapperHeight: theme.mobileCalendarWrapperHeight,\n },\n theme,\n );\n};\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../cjs/components/DatePicker/getMobilePickerTheme.js",
3
+ "module": "getMobilePickerTheme",
4
+ "types": "../getMobilePickerTheme.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,2 @@
1
+ import { Theme } from '../../lib/theming/Theme';
2
+ export declare const getMobilePickerTheme: (theme: Theme) => Theme;
@@ -14,7 +14,7 @@ import { MenuSeparator } from "../../MenuSeparator";
14
14
  import { Select } from "../../Select";
15
15
  import { CommonWrapper } from "../../../internal/CommonWrapper";
16
16
  import { rootNode } from "../../../lib/rootNode";
17
- import { ThemeConsumer, ThemeProvider } from "../../../lib/theming/ThemeContext";
17
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
18
18
  import { getDropdownTheme } from "../getDropdownTheme";
19
19
  var PASS_PROPS = {
20
20
  _renderButton: true,
@@ -91,9 +91,9 @@ export var Dropdown = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function
91
91
  _proto.render = function render() {
92
92
  var _this2 = this;
93
93
 
94
- return /*#__PURE__*/React.createElement(ThemeConsumer, null, function (theme) {
94
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
95
95
  _this2.theme = getDropdownTheme(theme);
96
- return /*#__PURE__*/React.createElement(ThemeProvider, {
96
+ return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
97
97
  value: _this2.theme
98
98
  }, _this2.renderMain(_this2.props));
99
99
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["Dropdown.tsx"],"names":["React","PropTypes","filterProps","MenuHeader","MenuItem","MenuSeparator","Select","CommonWrapper","rootNode","ThemeConsumer","ThemeProvider","getDropdownTheme","PASS_PROPS","_renderButton","error","disabled","disablePortal","menuAlign","menuWidth","maxMenuHeight","use","size","warning","width","onOpen","onClose","onMouseEnter","onMouseLeave","onMouseOver","menuPos","DropdownDataTids","root","Dropdown","renderMain","caption","icon","props","items","Children","map","children","item","setRootNode","_refSelect","renderValue","element","_select","render","theme","open","close","Component","__KONTUR_REACT_UI__","displayName","Header","Separator","propTypes","node","isRequired","bool","number","oneOf","oneOfType","string","any","func","value"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { filterProps } from '../../lib/filterProps';\nimport { MenuHeader } from '../MenuHeader';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { Select } from '../Select';\nimport { Nullable } from '../../typings/utility-types';\nimport { ButtonUse } from '../Button';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DropdownContainerProps } from '../../internal/DropdownContainer';\nimport { SizeProp } from '../../lib/types/props';\nimport { ThemeConsumer, ThemeProvider } from '../../lib/theming/ThemeContext';\n\nimport { getDropdownTheme } from './getDropdownTheme';\n\nconst PASS_PROPS = {\n _renderButton: true,\n error: true,\n disabled: true,\n disablePortal: true,\n menuAlign: true,\n menuWidth: true,\n maxMenuHeight: true,\n use: true,\n size: true,\n warning: true,\n width: true,\n onOpen: true,\n onClose: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n menuPos: true,\n 'aria-describedby': true,\n};\n\nexport interface DropdownProps\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n CommonProps,\n Pick<DropdownContainerProps, 'menuPos'> {\n /**\n * Подпись на кнопке.\n */\n caption: React.ReactNode;\n /**\n * Иконка слева от текста кнопки\n */\n icon?: React.ReactElement<any>;\n width?: React.CSSProperties['width'];\n\n /** @ignore */\n _renderButton?: (params: any) => JSX.Element;\n\n /**\n * Отключает использование портала\n */\n disablePortal?: boolean;\n\n /**\n * Визуально отключает Dropdown\n */\n disabled?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n maxMenuHeight?: number;\n menuAlign?: 'left' | 'right';\n menuWidth?: number | string;\n size?: SizeProp;\n\n /**\n * Смотри Button.\n */\n use?: ButtonUse;\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose?: () => void;\n /**\n * Вызывается при открытии меню.\n */\n onOpen?: () => void;\n onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\ntype DropdownSelectType = Select<React.ReactNode, React.ReactNode>;\n\nexport const DropdownDataTids = {\n root: 'Dropdown__root',\n} as const;\n\n/**\n * Выпадающее меню.\n *\n */\n@rootNode\nexport class Dropdown extends React.Component<DropdownProps> {\n public static __KONTUR_REACT_UI__ = 'Dropdown';\n public static displayName = 'Dropdown';\n\n public static Header = MenuHeader;\n public static MenuItem = MenuItem;\n public static Separator = MenuSeparator;\n\n public static propTypes = {\n /**\n * Подпись на кнопке.\n */\n caption: PropTypes.node.isRequired,\n\n /**\n * Отключает использование портала\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Визуально отключает Dropdown\n */\n disabled: PropTypes.bool,\n\n /**\n * Визуально показать наличие ошибки.\n */\n error: PropTypes.bool,\n\n /**\n * Иконка слева от текста кнопки\n */\n icon: PropTypes.node,\n\n maxMenuHeight: PropTypes.number,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n menuWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n\n /**\n * Смотри Button.\n */\n use: PropTypes.any,\n\n /**\n * Визуально показать наличие предупреждения.\n */\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n /**\n * Вызывается при открытии меню.\n */\n onOpen: PropTypes.func,\n };\n\n private _select: Nullable<DropdownSelectType>;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = getDropdownTheme(theme);\n return <ThemeProvider value={this.theme}>{this.renderMain(this.props)}</ThemeProvider>;\n }}\n </ThemeConsumer>\n );\n }\n\n public renderMain = ({ caption, icon, ...props }: CommonWrapperRestProps<DropdownProps>) => {\n const items = React.Children.map(this.props.children, (item) => item) || [];\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Select<React.ReactNode, React.ReactNode>\n data-tid={DropdownDataTids.root}\n ref={this._refSelect}\n {...filterProps(props, PASS_PROPS)}\n value={caption}\n items={items}\n _icon={icon}\n renderValue={renderValue}\n size={this.props.size}\n aria-label={this.props['aria-label']}\n />\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n */\n public open() {\n if (this._select) {\n this._select.open();\n }\n }\n\n /**\n * @public\n */\n public close() {\n if (this._select) {\n this._select.close();\n }\n }\n\n private _refSelect = (element: DropdownSelectType): void => {\n this._select = element;\n };\n}\n\nfunction renderValue(value: any) {\n return value;\n}\n"]}
1
+ {"version":3,"sources":["Dropdown.tsx"],"names":["React","PropTypes","filterProps","MenuHeader","MenuItem","MenuSeparator","Select","CommonWrapper","rootNode","ThemeContext","getDropdownTheme","PASS_PROPS","_renderButton","error","disabled","disablePortal","menuAlign","menuWidth","maxMenuHeight","use","size","warning","width","onOpen","onClose","onMouseEnter","onMouseLeave","onMouseOver","menuPos","DropdownDataTids","root","Dropdown","renderMain","caption","icon","props","items","Children","map","children","item","setRootNode","_refSelect","renderValue","element","_select","render","theme","open","close","Component","__KONTUR_REACT_UI__","displayName","Header","Separator","propTypes","node","isRequired","bool","number","oneOf","oneOfType","string","any","func","value"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { filterProps } from '../../lib/filterProps';\nimport { MenuHeader } from '../MenuHeader';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { Select } from '../Select';\nimport { Nullable } from '../../typings/utility-types';\nimport { ButtonUse } from '../Button';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DropdownContainerProps } from '../../internal/DropdownContainer';\nimport { SizeProp } from '../../lib/types/props';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { getDropdownTheme } from './getDropdownTheme';\n\nconst PASS_PROPS = {\n _renderButton: true,\n error: true,\n disabled: true,\n disablePortal: true,\n menuAlign: true,\n menuWidth: true,\n maxMenuHeight: true,\n use: true,\n size: true,\n warning: true,\n width: true,\n onOpen: true,\n onClose: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n menuPos: true,\n 'aria-describedby': true,\n};\n\nexport interface DropdownProps\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n CommonProps,\n Pick<DropdownContainerProps, 'menuPos'> {\n /**\n * Подпись на кнопке.\n */\n caption: React.ReactNode;\n /**\n * Иконка слева от текста кнопки\n */\n icon?: React.ReactElement<any>;\n width?: React.CSSProperties['width'];\n\n /** @ignore */\n _renderButton?: (params: any) => JSX.Element;\n\n /**\n * Отключает использование портала\n */\n disablePortal?: boolean;\n\n /**\n * Визуально отключает Dropdown\n */\n disabled?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n maxMenuHeight?: number;\n menuAlign?: 'left' | 'right';\n menuWidth?: number | string;\n size?: SizeProp;\n\n /**\n * Смотри Button.\n */\n use?: ButtonUse;\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose?: () => void;\n /**\n * Вызывается при открытии меню.\n */\n onOpen?: () => void;\n onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\ntype DropdownSelectType = Select<React.ReactNode, React.ReactNode>;\n\nexport const DropdownDataTids = {\n root: 'Dropdown__root',\n} as const;\n\n/**\n * Выпадающее меню.\n *\n */\n@rootNode\nexport class Dropdown extends React.Component<DropdownProps> {\n public static __KONTUR_REACT_UI__ = 'Dropdown';\n public static displayName = 'Dropdown';\n\n public static Header = MenuHeader;\n public static MenuItem = MenuItem;\n public static Separator = MenuSeparator;\n\n public static propTypes = {\n /**\n * Подпись на кнопке.\n */\n caption: PropTypes.node.isRequired,\n\n /**\n * Отключает использование портала\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Визуально отключает Dropdown\n */\n disabled: PropTypes.bool,\n\n /**\n * Визуально показать наличие ошибки.\n */\n error: PropTypes.bool,\n\n /**\n * Иконка слева от текста кнопки\n */\n icon: PropTypes.node,\n\n maxMenuHeight: PropTypes.number,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n menuWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n\n /**\n * Смотри Button.\n */\n use: PropTypes.any,\n\n /**\n * Визуально показать наличие предупреждения.\n */\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n /**\n * Вызывается при открытии меню.\n */\n onOpen: PropTypes.func,\n };\n\n private _select: Nullable<DropdownSelectType>;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getDropdownTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain(this.props)}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = ({ caption, icon, ...props }: CommonWrapperRestProps<DropdownProps>) => {\n const items = React.Children.map(this.props.children, (item) => item) || [];\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Select<React.ReactNode, React.ReactNode>\n data-tid={DropdownDataTids.root}\n ref={this._refSelect}\n {...filterProps(props, PASS_PROPS)}\n value={caption}\n items={items}\n _icon={icon}\n renderValue={renderValue}\n size={this.props.size}\n aria-label={this.props['aria-label']}\n />\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n */\n public open() {\n if (this._select) {\n this._select.open();\n }\n }\n\n /**\n * @public\n */\n public close() {\n if (this._select) {\n this._select.close();\n }\n }\n\n private _refSelect = (element: DropdownSelectType): void => {\n this._select = element;\n };\n}\n\nfunction renderValue(value: any) {\n return value;\n}\n"]}
@@ -9,7 +9,7 @@ import { isProductionEnv, isTestEnv } from "../../../lib/currentEnvironment";
9
9
  import { CommonWrapper } from "../../../internal/CommonWrapper";
10
10
  import { rootNode } from "../../../lib/rootNode";
11
11
  import { createPropsGetter } from "../../../lib/createPropsGetter";
12
- import { ThemeConsumer, ThemeProvider } from "../../../lib/theming/ThemeContext";
12
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
13
13
  import { getDropdownMenuTheme } from "../getDropdownMenuTheme";
14
14
  export
15
15
  /**
@@ -53,8 +53,8 @@ var DropdownMenu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
53
53
  _proto.render = function render() {
54
54
  var _this2 = this;
55
55
 
56
- return /*#__PURE__*/React.createElement(ThemeConsumer, null, function (theme) {
57
- return /*#__PURE__*/React.createElement(ThemeProvider, {
56
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
57
+ return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
58
58
  value: getDropdownMenuTheme(theme)
59
59
  }, _this2.renderMain());
60
60
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["DropdownMenu.tsx"],"names":["React","PopupMenu","isProductionEnv","isTestEnv","CommonWrapper","rootNode","createPropsGetter","ThemeConsumer","ThemeProvider","getDropdownMenuTheme","DropdownMenu","props","getProps","defaultProps","popupMenu","open","close","refPopupMenu","ref","caption","Error","render","theme","renderMain","positions","disableAnimations","setRootNode","menuMaxHeight","menuWidth","preventIconsOffset","header","footer","width","onClose","onOpen","popupMenuId","children","Component","__KONTUR_REACT_UI__","displayName"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeConsumer, ThemeProvider } from '../../lib/theming/ThemeContext';\n\nimport { getDropdownMenuTheme } from './getDropdownMenuTheme';\n\nexport interface DropdownMenuProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Максимальная высота меню */\n menuMaxHeight?: React.CSSProperties['maxWidth'];\n /** Ширина меню */\n menuWidth?: React.CSSProperties['width'];\n /** Ширина caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол [MenuHeader](#/Components/MenuHeader) передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен [MenuSeparator](#/Components/MenuSeparator).\n */\n footer?: React.ReactNode;\n /**\n * Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions?: PopupPositionsType[];\n\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n}\n\ntype DefaultProps = Required<Pick<DropdownMenuProps, 'disableAnimations' | 'positions'>>;\n\n/**\n * Меню, раскрывающееся по клику на переданный в `caption` элемент\n */\n@rootNode\nexport class DropdownMenu extends React.Component<DropdownMenuProps> {\n public static __KONTUR_REACT_UI__ = 'DropdownMenu';\n public static displayName = 'DropdownMenu';\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n };\n\n private getProps = createPropsGetter(DropdownMenu.defaultProps);\n\n private popupMenu: Nullable<PopupMenu> = null;\n private setRootNode!: TSetRootNode;\n\n constructor(props: DropdownMenuProps) {\n super(props);\n\n if (!props.caption && !isProductionEnv) {\n throw new Error('Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeConsumer>\n {(theme) => {\n return <ThemeProvider value={getDropdownMenuTheme(theme)}>{this.renderMain()}</ThemeProvider>;\n }}\n </ThemeConsumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n const { positions, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n aria-label={this.props['aria-label']}\n ref={this.refPopupMenu}\n caption={this.props.caption}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n preventIconsOffset={this.props.preventIconsOffset}\n popupHasPin={false}\n positions={positions}\n disableAnimations={disableAnimations}\n header={this.props.header}\n footer={this.props.footer}\n width={this.props.width}\n onClose={this.props.onClose}\n onOpen={this.props.onOpen}\n popupMenuId={this.props.popupMenuId}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n public open = (): void => {\n if (this.popupMenu) {\n this.popupMenu.open();\n }\n };\n\n public close = (): void => {\n if (this.popupMenu) {\n this.popupMenu.close();\n }\n };\n\n private refPopupMenu = (ref: Nullable<PopupMenu>) => (this.popupMenu = ref);\n}\n"]}
1
+ {"version":3,"sources":["DropdownMenu.tsx"],"names":["React","PopupMenu","isProductionEnv","isTestEnv","CommonWrapper","rootNode","createPropsGetter","ThemeContext","getDropdownMenuTheme","DropdownMenu","props","getProps","defaultProps","popupMenu","open","close","refPopupMenu","ref","caption","Error","render","theme","renderMain","positions","disableAnimations","setRootNode","menuMaxHeight","menuWidth","preventIconsOffset","header","footer","width","onClose","onOpen","popupMenuId","children","Component","__KONTUR_REACT_UI__","displayName"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { getDropdownMenuTheme } from './getDropdownMenuTheme';\n\nexport interface DropdownMenuProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Максимальная высота меню */\n menuMaxHeight?: React.CSSProperties['maxWidth'];\n /** Ширина меню */\n menuWidth?: React.CSSProperties['width'];\n /** Ширина caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол [MenuHeader](#/Components/MenuHeader) передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен [MenuSeparator](#/Components/MenuSeparator).\n */\n footer?: React.ReactNode;\n /**\n * Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions?: PopupPositionsType[];\n\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n}\n\ntype DefaultProps = Required<Pick<DropdownMenuProps, 'disableAnimations' | 'positions'>>;\n\n/**\n * Меню, раскрывающееся по клику на переданный в `caption` элемент\n */\n@rootNode\nexport class DropdownMenu extends React.Component<DropdownMenuProps> {\n public static __KONTUR_REACT_UI__ = 'DropdownMenu';\n public static displayName = 'DropdownMenu';\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n };\n\n private getProps = createPropsGetter(DropdownMenu.defaultProps);\n\n private popupMenu: Nullable<PopupMenu> = null;\n private setRootNode!: TSetRootNode;\n\n constructor(props: DropdownMenuProps) {\n super(props);\n\n if (!props.caption && !isProductionEnv) {\n throw new Error('Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return <ThemeContext.Provider value={getDropdownMenuTheme(theme)}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n const { positions, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n aria-label={this.props['aria-label']}\n ref={this.refPopupMenu}\n caption={this.props.caption}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n preventIconsOffset={this.props.preventIconsOffset}\n popupHasPin={false}\n positions={positions}\n disableAnimations={disableAnimations}\n header={this.props.header}\n footer={this.props.footer}\n width={this.props.width}\n onClose={this.props.onClose}\n onOpen={this.props.onOpen}\n popupMenuId={this.props.popupMenuId}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n public open = (): void => {\n if (this.popupMenu) {\n this.popupMenu.open();\n }\n };\n\n public close = (): void => {\n if (this.popupMenu) {\n this.popupMenu.close();\n }\n };\n\n private refPopupMenu = (ref: Nullable<PopupMenu>) => (this.popupMenu = ref);\n}\n"]}
@@ -247,3 +247,42 @@ const hiddenItems = [
247
247
  </DropdownMenu>
248
248
  </Gapped>
249
249
  ```
250
+
251
+ С использованием фиче-флага menuItemsAtAnyLevel. Mожно использовать различные обертки для пунктов меню.
252
+
253
+ ```jsx harmony
254
+ import {
255
+ DropdownMenu,
256
+ Button,
257
+ MenuHeader,
258
+ MenuItem,
259
+ MenuSeparator,
260
+ ReactUIFeatureFlagsContext,
261
+ Gapped
262
+ } from '@skbkontur/react-ui';
263
+
264
+ const groupedMenuItems = (
265
+ <div>
266
+ <MenuItem>MenuItem1</MenuItem>
267
+ <MenuItem>MenuItem2</MenuItem>
268
+ <MenuItem isNotSelectable>Not Selectable</MenuItem>
269
+ </div>
270
+ );
271
+
272
+ <Gapped>
273
+ <ReactUIFeatureFlagsContext.Provider value={{ menuItemsAtAnyLevel: true }}>
274
+ <DropdownMenu caption={<Button use="primary">Открыть меню</Button>}>
275
+ <>
276
+ <MenuHeader>Заголовок меню</MenuHeader>
277
+ <MenuSeparator />
278
+ <div>
279
+ {groupedMenuItems}
280
+ </div>
281
+ </>
282
+ <MenuItem>MenuItem3</MenuItem>
283
+ </DropdownMenu>
284
+ </ReactUIFeatureFlagsContext.Provider>
285
+ </Gapped>;
286
+ ```
287
+
288
+
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- var _excluded = ["disabled", "error", "warning", "multiple", "width", "hideFiles", "onBlur", "onFocus", "onChange", "request", "validateBeforeUpload", "onRequestSuccess", "onRequestError", "size", "renderFile"];
4
+ var _excluded = ["initialFiles", "disabled", "error", "warning", "multiple", "width", "hideFiles", "onBlur", "onFocus", "onChange", "request", "validateBeforeUpload", "onRequestSuccess", "onRequestError", "size", "renderFile"];
5
5
  import _regeneratorRuntime from "@babel/runtime/regenerator";
6
6
  import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';
7
7
  import { globalObject, isBrowser } from '@skbkontur/global-object';
@@ -54,7 +54,8 @@ var _FileUploader = forwardRefAndName('FileUploader', function (props, ref) {
54
54
 
55
55
  var _isTheme2022 = isTheme2022(theme);
56
56
 
57
- var disabled = props.disabled,
57
+ var initialFiles = props.initialFiles,
58
+ disabled = props.disabled,
58
59
  error = props.error,
59
60
  warning = props.warning,
60
61
  _props$multiple = props.multiple,
@@ -157,7 +158,7 @@ var _FileUploader = forwardRefAndName('FileUploader', function (props, ref) {
157
158
  /** common part **/
158
159
 
159
160
  var handleChange = useCallback(function (newFiles) {
160
- if (!newFiles) {
161
+ if (!newFiles || !newFiles.length) {
161
162
  return;
162
163
  }
163
164
 
@@ -258,6 +259,16 @@ var _FileUploader = forwardRefAndName('FileUploader', function (props, ref) {
258
259
  }
259
260
  };
260
261
 
262
+ var handleRemoveFile = useCallback(function (fileId) {
263
+ var dataTransfer = new DataTransfer();
264
+ files.filter(function (f) {
265
+ return f.id !== fileId;
266
+ }).forEach(function (file) {
267
+ dataTransfer.items.add(file.originalFile);
268
+ });
269
+ inputRef.current && (inputRef.current.files = dataTransfer.files);
270
+ }, []);
271
+
261
272
  var _useState3 = useState(false),
262
273
  hovered = _useState3[0],
263
274
  setHovered = _useState3[1];
@@ -273,6 +284,17 @@ var _FileUploader = forwardRefAndName('FileUploader', function (props, ref) {
273
284
  useEffect(function () {
274
285
  setIsLinkVisible(hasOneFileForSingle ? !isMinLengthReached : true);
275
286
  }, [isMinLengthReached, hasOneFileForSingle]);
287
+ useEffect(function () {
288
+ if (!files || !files.length || !inputRef.current) {
289
+ return;
290
+ }
291
+
292
+ var dataTransfer = new DataTransfer();
293
+ files.forEach(function (file) {
294
+ return dataTransfer.items.add(file.originalFile);
295
+ });
296
+ inputRef.current.files = dataTransfer.files;
297
+ }, []);
276
298
  var rootNodeRef = useRef(null);
277
299
  var iconSizes = {
278
300
  small: parseInt(theme.btnIconSizeSmall),
@@ -291,7 +313,8 @@ var _FileUploader = forwardRefAndName('FileUploader', function (props, ref) {
291
313
  ref: rootNodeRef
292
314
  }, !hideFiles && !isSingleMode && !!files.length && /*#__PURE__*/React.createElement(FileUploaderFileList, {
293
315
  renderFile: renderFile,
294
- size: size
316
+ size: size,
317
+ onRemove: handleRemoveFile
295
318
  }), /*#__PURE__*/React.createElement("div", {
296
319
  className: uploadButtonWrapperClassNames
297
320
  }, /*#__PURE__*/React.createElement("label", {
@@ -318,7 +341,8 @@ var _FileUploader = forwardRefAndName('FileUploader', function (props, ref) {
318
341
  className: styles.singleFile()
319
342
  }, renderFile(files[0], /*#__PURE__*/React.createElement(FileUploaderFile, {
320
343
  file: files[0],
321
- size: size
344
+ size: size,
345
+ onRemove: handleRemoveFile
322
346
  }))) : /*#__PURE__*/React.createElement(React.Fragment, null, locale.orDragHere, "\xA0", /*#__PURE__*/React.createElement("div", {
323
347
  className: uploadButtonIconClassNames
324
348
  }, icon)))), /*#__PURE__*/React.createElement(FocusControlWrapper, {
@@ -336,9 +360,7 @@ var _FileUploader = forwardRefAndName('FileUploader', function (props, ref) {
336
360
  onClick: stopPropagation,
337
361
  onChange: handleInputChange,
338
362
  onFocus: handleFocus,
339
- onBlur: handleBlur // для того, чтобы срабатывало событие change при выборе одного и того же файла подряд
340
- ,
341
- value: ''
363
+ onBlur: handleBlur
342
364
  })))))));
343
365
  });
344
366
 
@@ -1 +1 @@
1
- {"version":3,"sources":["FileUploader.tsx"],"names":["React","useCallback","useContext","useEffect","useImperativeHandle","useRef","useState","globalObject","isBrowser","getAttachedFile","useEmotion","useMemoObject","FileUploaderControlContext","useControlLocale","useUpload","useDrop","UploadIcon","withFileUploaderControlProvider","keyListener","FileUploaderFile","FileUploaderFileList","CommonWrapper","FileUploaderFileValidationResult","useFileUploaderSize","isTheme2022","forwardRefAndName","FocusControlWrapper","useTheme","UploadIcon2022","getStyles","globalClasses","stopPropagation","e","FileUploaderDataTids","root","content","link","input","defaultRenderFile","file","fileNode","_FileUploader","props","ref","theme","emotion","_isTheme2022","disabled","error","warning","multiple","width","fileUploaderWidth","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","size","renderFile","inputProps","files","setFiles","removeFile","reset","setFileValidationResult","isMinLengthReached","locale","inputRef","fileDivRef","isAsync","isSingleMode","isLinkVisible","setIsLinkVisible","upload","tryValidateAndUpload","forEach","validationMessage","id","styles","sizeClassName","small","sizeSmall","medium","sizeMedium","large","sizeLarge","sizeIconClass","iconSmall","iconMedium","iconLarge","contentInnerClass","contentInnerSmall","contentInnerMedium","contentInnerLarge","handleChange","newFiles","filesArray","Array","from","attachedFiles","map","length","handleDrop","event","dataTransfer","clearData","onDrop","isDraggable","labelRef","isWindowDraggable","windowRef","current","document","focus","isTabPressed","blur","getRootNode","rootNodeRef","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","hovered","setHovered","uploadButtonClassNames","cx","uploadButton","uploadButtonFocus","dragOver","canDrop","uploadButtonWrapperClassNames","windowDragOver","windowDragOver2022","uploadButtonIconClassNames","icon","iconDisabled","hasOneFile","hasOneFileForSingle","contentClassNames","contentWithFiles","linkClassNames","linkHovered","linkDisabled","iconSizes","parseInt","btnIconSizeSmall","btnIconSizeMedium","btnIconSizeLarge","choosedFile","chooseFile","String","fromCharCode","afterLinkText","afterLinkText_HasFiles","singleFile","orDragHere","visuallyHidden","FileUploader","memo","displayName"],"mappings":"0fAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,UAA7B,EAAyCC,SAAzC,EAAoDC,mBAApD,EAAyEC,MAAzE,EAAiFC,QAAjF,QAAiG,OAAjG;AACA,SAASC,YAAT,EAAuBC,SAAvB,QAAwC,0BAAxC;;AAEA,SAAmCC,eAAnC,QAA0D,8CAA1D;AACA,SAASC,UAAT,QAA2B,2BAA3B;;AAEA,SAASC,aAAT,QAA8B,2BAA9B;AACA,SAASC,0BAAT,QAA2C,+DAA3C;AACA,SAASC,gBAAT,QAAiC,2DAAjC;AACA,SAASC,SAAT,QAA0B,oDAA1B;AACA,SAASC,OAAT,QAAwB,qBAAxB;AACA,SAASC,UAAT,QAA2B,2BAA3B;;AAEA,SAASC,+BAAT,QAAgD,oEAAhD;AACA,SAASC,WAAT,QAA4B,8BAA5B;AACA,SAASC,gBAAT,QAAiC,sEAAjC;AACA,SAASC,oBAAT,QAAqC,8EAArC;AACA,SAAsBC,aAAtB,QAA2C,8BAA3C;;AAEA,SAASC,gCAAT,QAAiD,qEAAjD;AACA,SAASC,mBAAT,QAAoC,8DAApC;AACA,SAASC,WAAT,QAA4B,gCAA5B;;AAEA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,SAASC,mBAAT,QAAoC,oCAApC;AACA,SAASC,QAAT,QAAyB,4BAAzB;;AAEA,SAASX,UAAU,IAAIY,cAAvB,QAA6C,cAA7C;AACA,SAASC,SAAT,EAAoBC,aAApB,QAAyC,uBAAzC;;AAEA,IAAMC,eAAwC,GAAG,SAA3CA,eAA2C,CAACC,CAAD,UAAOA,CAAC,CAACD,eAAF,EAAP,EAAjD;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,OAAO,IAAME,oBAAoB,GAAG;AAClCC,EAAAA,IAAI,EAAE,oBAD4B;AAElCC,EAAAA,OAAO,EAAE,uBAFyB;AAGlCC,EAAAA,IAAI,EAAE,oBAH4B;AAIlCC,EAAAA,KAAK,EAAE,qBAJ2B,EAA7B;;;AAOP,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,IAAD,EAAiCC,QAAjC,UAAkEA,QAAlE,EAA1B;;AAEA,IAAMC,aAAa,GAAGhB,iBAAiB,CAAsC,cAAtC,EAAsD,UAACiB,KAAD,EAAQC,GAAR,EAAgB;AAC3G,MAAMC,KAAK,GAAGjB,QAAQ,EAAtB;AACA,MAAMkB,OAAO,GAAGnC,UAAU,EAA1B;AACA,MAAMoC,YAAY,GAAGtB,WAAW,CAACoB,KAAD,CAAhC;;AAEA;AACEG,EAAAA,QADF;;;;;;;;;;;;;;;;AAiBIL,EAAAA,KAjBJ,CACEK,QADF,CAEEC,KAFF,GAiBIN,KAjBJ,CAEEM,KAFF,CAGEC,OAHF,GAiBIP,KAjBJ,CAGEO,OAHF,mBAiBIP,KAjBJ,CAIEQ,QAJF,CAIEA,QAJF,gCAIa,KAJb,kCAiBIR,KAjBJ,CAKES,KALF,CAKEA,KALF,6BAKUP,KAAK,CAACQ,iBALhB,mCAiBIV,KAjBJ,CAMEW,SANF,CAMEA,SANF,iCAMc,KANd,oBAOEC,MAPF,GAiBIZ,KAjBJ,CAOEY,MAPF,CAQEC,OARF,GAiBIb,KAjBJ,CAQEa,OARF,CASEC,QATF,GAiBId,KAjBJ,CASEc,QATF,CAUEC,OAVF,GAiBIf,KAjBJ,CAUEe,OAVF,CAWEC,oBAXF,GAiBIhB,KAjBJ,CAWEgB,oBAXF,CAYEC,gBAZF,GAiBIjB,KAjBJ,CAYEiB,gBAZF,CAaEC,cAbF,GAiBIlB,KAjBJ,CAaEkB,cAbF,eAiBIlB,KAjBJ,CAcEmB,IAdF,CAcEA,IAdF,4BAcS,OAdT,mCAiBInB,KAjBJ,CAeEoB,UAfF,CAeEA,UAfF,kCAeexB,iBAff,qBAgBKyB,UAhBL,iCAiBIrB,KAjBJ;;AAmBA;AACExC,EAAAA,UAAU,CAACU,0BAAD,CADZ,CAAQoD,KAAR,eAAQA,KAAR,CAAeC,QAAf,eAAeA,QAAf,CAAyBC,UAAzB,eAAyBA,UAAzB,CAAqCC,KAArC,eAAqCA,KAArC,CAA4CC,uBAA5C,eAA4CA,uBAA5C,CAAqEC,kBAArE,eAAqEA,kBAArE;;AAGA,MAAMC,MAAM,GAAGzD,gBAAgB,EAA/B;;AAEA,MAAM0D,QAAQ,GAAGlE,MAAM,CAAmB,IAAnB,CAAvB;AACA,MAAMmE,UAAU,GAAGnE,MAAM,CAAiB,IAAjB,CAAzB;;AAEA,MAAMoE,OAAO,GAAG,CAAC,CAAChB,OAAlB;AACA,MAAMiB,YAAY,GAAG,CAACxB,QAAtB;;AAEA,kBAA0C5C,QAAQ,CAAC,IAAD,CAAlD,CAAOqE,aAAP,gBAAsBC,gBAAtB;AACA,MAAMC,MAAM,GAAG/D,SAAS,CAAC2C,OAAD,EAAUE,gBAAV,EAA4BC,cAA5B,CAAxB;;AAEA,MAAMkB,oBAAoB,GAAG7E,WAAW;AACtC,YAAC+D,KAAD,EAAuC;AACrCA,IAAAA,KAAK,CAACe,OAAN,gGAAc,iBAAOxC,IAAP;AACcmB,gBAAAA,oBADd,sEAC6CA,oBAAoB,CAACnB,IAAD,CADjE,2CACNyC,iBADM;;AAGZ,oBAAI,CAACA,iBAAL,EAAwB;AACtBP,kBAAAA,OAAO,IAAII,MAAM,CAACtC,IAAD,CAAjB;AACD,iBAFD,MAEO;AACL6B,kBAAAA,uBAAuB,CAAC7B,IAAI,CAAC0C,EAAN,EAAU3D,gCAAgC,CAAC0B,KAAjC,CAAuCgC,iBAAvC,CAAV,CAAvB;AACD,iBAPW,wDAAd;;AASD,GAXqC;AAYtC,GAACtB,oBAAD,EAAuBe,OAAvB,EAAgCI,MAAhC,EAAwCT,uBAAxC,CAZsC,CAAxC;;AAcA,MAAMc,MAAM,GAAGrD,SAAS,CAACgB,OAAD,CAAxB;AACA,MAAMsC,aAAa,GAAG5D,mBAAmB,CAACsC,IAAD,EAAO;AAC9CuB,IAAAA,KAAK,EAAEF,MAAM,CAACG,SAAP,CAAiBzC,KAAjB,CADuC;AAE9C0C,IAAAA,MAAM,EAAEJ,MAAM,CAACK,UAAP,CAAkB3C,KAAlB,CAFsC;AAG9C4C,IAAAA,KAAK,EAAEN,MAAM,CAACO,SAAP,CAAiB7C,KAAjB,CAHuC,EAAP,CAAzC;;;AAMA,MAAM8C,aAAa,GAAGnE,mBAAmB,CAACsC,IAAD,EAAO;AAC9CuB,IAAAA,KAAK,EAAEF,MAAM,CAACS,SAAP,CAAiB/C,KAAjB,CADuC;AAE9C0C,IAAAA,MAAM,EAAEJ,MAAM,CAACU,UAAP,CAAkBhD,KAAlB,CAFsC;AAG9C4C,IAAAA,KAAK,EAAEN,MAAM,CAACW,SAAP,CAAiBjD,KAAjB,CAHuC,EAAP,CAAzC;;;AAMA,MAAMkD,iBAAiB,GAAGvE,mBAAmB,CAACsC,IAAD,EAAO;AAClDuB,IAAAA,KAAK,EAAEF,MAAM,CAACa,iBAAP,CAAyBnD,KAAzB,CAD2C;AAElD0C,IAAAA,MAAM,EAAEJ,MAAM,CAACc,kBAAP,CAA0BpD,KAA1B,CAF0C;AAGlD4C,IAAAA,KAAK,EAAEN,MAAM,CAACe,iBAAP,CAAyBrD,KAAzB,CAH2C,EAAP,CAA7C;;;AAMA;AACA,MAAMsD,YAAY,GAAGjG,WAAW;AAC9B,YAACkG,QAAD,EAA+B;AAC7B,QAAI,CAACA,QAAL,EAAe;AACb;AACD;;AAED,QAAIC,UAAU,GAAGC,KAAK,CAACC,IAAN,CAAWH,QAAX,CAAjB;;AAEA,QAAIzB,YAAJ,EAAkB;AAChB0B,MAAAA,UAAU,GAAG,CAACA,UAAU,CAAC,CAAD,CAAX,CAAb;AACD;;AAED,QAAMG,aAAa,GAAGH,UAAU,CAACI,GAAX,CAAe/F,eAAf,CAAtB;;AAEA,QAAIiE,YAAY,IAAI6B,aAAa,CAACE,MAA9B,IAAwCzC,KAAK,CAACyC,MAAlD,EAA0D;AACxDvC,MAAAA,UAAU,CAACF,KAAK,CAAC,CAAD,CAAL,CAASiB,EAAV,CAAV;AACD;;AAED,QAAIsB,aAAa,CAACE,MAAlB,EAA0B;AACxBxC,MAAAA,QAAQ,CAACsC,aAAD,CAAR;AACAzB,MAAAA,oBAAoB,CAACyB,aAAD,CAApB;AACD;AACF,GAtB6B;AAuB9B,GAACzB,oBAAD,EAAuBb,QAAvB,EAAiCS,YAAjC,EAA+CV,KAA/C,EAAsDE,UAAtD,CAvB8B,CAAhC;;;AA0BA,MAAMwC,UAAU,GAAGzG,WAAW;AAC5B,YAAC0G,KAAD,EAAW;AACT,QAAI5D,QAAJ,EAAc;AACZ;AACD;;AAED,QAAQ6D,YAAR,GAAyBD,KAAzB,CAAQC,YAAR;AACA,QAAQ5C,KAAR,GAAkB4C,YAAlB,CAAQ5C,KAAR;;AAEA,QAAI,CAAAA,KAAK,QAAL,YAAAA,KAAK,CAAEyC,MAAP,IAAgB,CAApB,EAAuB;AACrBP,MAAAA,YAAY,CAAClC,KAAD,CAAZ;AACA4C,MAAAA,YAAY,CAACC,SAAb;AACD;AACF,GAb2B;AAc5B,GAACX,YAAD,EAAenD,QAAf,CAd4B,CAA9B;;;AAiBA,iBAAuChC,OAAO,CAAmB,EAAE+F,MAAM,EAAEJ,UAAV,EAAnB,CAA9C,CAAQK,WAAR,YAAQA,WAAR,CAA0BC,QAA1B,YAAqBrE,GAArB;AACA,kBAA2D5B,OAAO,EAAlE,CAAqBkG,iBAArB,aAAQF,WAAR,CAA6CG,SAA7C,aAAwCvE,GAAxC;;AAEA,MAAInC,SAAS,CAACD,YAAD,CAAb,EAA6B;AAC3B2G,IAAAA,SAAS,CAACC,OAAV,GAAoB5G,YAAY,CAAC6G,QAAjC;AACD;;AAED,MAAMC,KAAK,GAAGpH,WAAW,CAAC,YAAM;AAC9BiB,IAAAA,WAAW,CAACoG,YAAZ,GAA2B,IAA3B;AACA,yBAAA/C,QAAQ,CAAC4C,OAAT,uCAAkBE,KAAlB;AACD,GAHwB,EAGtB,EAHsB,CAAzB;;AAKA,MAAME,IAAI,GAAGtH,WAAW,CAAC,YAAM;AAC7B,0BAAAsE,QAAQ,CAAC4C,OAAT,wCAAkBI,IAAlB;AACD,GAFuB,EAErB,EAFqB,CAAxB;;AAIAnH,EAAAA,mBAAmB,CAACuC,GAAD,EAAM,oBAAO,EAAE0E,KAAK,EAALA,KAAF,EAASE,IAAI,EAAJA,IAAT,EAAepD,KAAK,EAALA,KAAf,EAAsBqD,WAAW,EAAE,+BAAMC,WAAW,CAACN,OAAlB,EAAnC,EAAP,EAAN,EAA8E;AAC/FxE,EAAAA,GAD+F;AAE/F4E,EAAAA,IAF+F;AAG/FF,EAAAA,KAH+F;AAI/FlD,EAAAA,KAJ+F,CAA9E,CAAnB;;;AAOA,mBAAwC7D,QAAQ,CAAC,KAAD,CAAhD,CAAOoH,YAAP,iBAAqBC,eAArB;AACA,MAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACjB,KAAD,EAAgD;AACxEnD,IAAAA,QAAQ,QAAR,YAAAA,QAAQ,CAAGmD,KAAH,CAAR;AACAT,IAAAA,YAAY,CAACS,KAAK,CAACkB,MAAN,CAAa7D,KAAd,CAAZ;AACD,GAHD;;AAKA,MAAM8D,WAAW,GAAG,SAAdA,WAAc,CAAC9F,CAAD,EAA2C;AAC7D,QAAI,CAACe,QAAL,EAAe;AACb;AACA;AACAxC,MAAAA,YAAY,CAACwH,qBAAb,oBAAAxH,YAAY,CAACwH,qBAAb,CAAqC,YAAM;AACzC,YAAI7G,WAAW,CAACoG,YAAhB,EAA8B;AAC5BK,UAAAA,eAAe,CAAC,IAAD,CAAf;AACD;AACF,OAJD;AAKApE,MAAAA,OAAO,QAAP,YAAAA,OAAO,CAAGvB,CAAH,CAAP;AACD;AACF,GAXD;;AAaA,MAAMgG,UAAU,GAAG,SAAbA,UAAa,CAAChG,CAAD,EAA2C;AAC5D2F,IAAAA,eAAe,CAAC,KAAD,CAAf;AACA,QAAI,CAAC5E,QAAL,EAAe;AACbO,MAAAA,MAAM,QAAN,YAAAA,MAAM,CAAGtB,CAAH,CAAN;AACD;AACF,GALD;;AAOA,mBAA8B1B,QAAQ,CAAC,KAAD,CAAtC,CAAO2H,OAAP,iBAAgBC,UAAhB;;AAEA,MAAMC,sBAAsB,GAAGtF,OAAO,CAACuF,EAAR;AAC7BlD,EAAAA,MAAM,CAACmD,YAAP,CAAoBzF,KAApB,CAD6B;AAE7BuC,EAAAA,aAF6B;AAG7BuC,EAAAA,YAAY,IAAIxC,MAAM,CAACoD,iBAAP,CAAyB1F,KAAzB,CAHa;AAI7BG,EAAAA,QAAQ,IAAImC,MAAM,CAACnC,QAAP,CAAgBH,KAAhB,CAJiB;AAK7B,GAACG,QAAD,IAAakF,OAAb,IAAwB/C,MAAM,CAAC+C,OAAP,CAAerF,KAAf,CALK;AAM7B,GAAC,CAACK,OAAF,IAAaiC,MAAM,CAACjC,OAAP,CAAeL,KAAf,CANgB;AAO7B,GAAC,CAACI,KAAF,IAAWkC,MAAM,CAAClC,KAAP,CAAaJ,KAAb,CAPkB;AAQ7BmE,EAAAA,WAAW,IAAI,CAAChE,QAAhB,IAA4BmC,MAAM,CAACqD,QAAP,CAAgB3F,KAAhB,CARC,CAA/B;;;AAWA,MAAM4F,OAAO,GAAGvB,iBAAiB,IAAI,CAAClE,QAAtC;AACA,MAAM0F,6BAA6B,GAAG5F,OAAO,CAACuF,EAAR;AACpC,GAACtF,YAAD,IAAiB0F,OAAjB,IAA4BtD,MAAM,CAACwD,cAAP,CAAsB9F,KAAtB,CADQ;AAEpCE,EAAAA,YAAY,IAAI0F,OAAhB,IAA2BtD,MAAM,CAACyD,kBAAP,CAA0B/F,KAA1B,CAFS,CAAtC;;;AAKA,MAAMgG,0BAA0B,GAAG/F,OAAO,CAACuF,EAAR;AACjClD,EAAAA,MAAM,CAAC2D,IAAP,CAAYjG,KAAZ,CADiC;AAEjC8C,EAAAA,aAFiC;AAGjC3C,EAAAA,QAAQ,IAAImC,MAAM,CAAC4D,YAAP,CAAoBlG,KAApB,CAHqB,CAAnC;;;AAMA,MAAMmG,UAAU,GAAG/E,KAAK,CAACyC,MAAN,KAAiB,CAApC;AACA,MAAMuC,mBAAmB,GAAGtE,YAAY,IAAIqE,UAAhB,IAA8B,CAAC1F,SAA3D;;AAEA,MAAM4F,iBAAiB,GAAGpG,OAAO,CAACuF,EAAR,CAAWlD,MAAM,CAAC/C,OAAP,EAAX,EAA6B6G,mBAAmB,IAAI9D,MAAM,CAACgE,gBAAP,EAApD,CAA1B;;AAEA,MAAMC,cAAc,GAAGtG,OAAO,CAACuF,EAAR;AACrBlD,EAAAA,MAAM,CAAC9C,IAAP,CAAYQ,KAAZ,CADqB;AAErB,GAACG,QAAD,IAAakF,OAAb,IAAwB/C,MAAM,CAACkE,WAAP,CAAmBxG,KAAnB,CAFH;AAGrBG,EAAAA,QAAQ,IAAImC,MAAM,CAACmE,YAAP,CAAoBzG,KAApB,CAHS,CAAvB;;;AAMAzC,EAAAA,SAAS,CAAC,YAAM;AACdyE,IAAAA,gBAAgB,CAACoE,mBAAmB,GAAG,CAAC3E,kBAAJ,GAAyB,IAA7C,CAAhB;AACD,GAFQ,EAEN,CAACA,kBAAD,EAAqB2E,mBAArB,CAFM,CAAT;;AAIA,MAAMvB,WAAW,GAAGpH,MAAM,CAAC,IAAD,CAA1B;;AAEA,MAAMiJ,SAAmC,GAAG;AAC1ClE,IAAAA,KAAK,EAAEmE,QAAQ,CAAC3G,KAAK,CAAC4G,gBAAP,CAD2B;AAE1ClE,IAAAA,MAAM,EAAEiE,QAAQ,CAAC3G,KAAK,CAAC6G,iBAAP,CAF0B;AAG1CjE,IAAAA,KAAK,EAAE+D,QAAQ,CAAC3G,KAAK,CAAC8G,gBAAP,CAH2B,EAA5C;;AAKA,MAAMb,IAAI,GAAG/F,YAAY,gBAAG,oBAAC,cAAD,IAAgB,IAAI,EAAEwG,SAAS,CAACzF,IAAD,CAA/B,GAAH,gBAA+C,oBAAC,UAAD,OAAxE;;AAEA;AACE,wBAAC,aAAD,EAAmBnB,KAAnB;AACE;AACE,kBAAUT,oBAAoB,CAACC,IADjC;AAEE,MAAA,SAAS,EAAEgD,MAAM,CAAChD,IAAP,CAAYU,KAAZ,CAFb;AAGE,MAAA,KAAK,EAAEjC,aAAa,CAAC,EAAEwC,KAAK,EAALA,KAAF,EAAD,CAHtB;AAIE,MAAA,GAAG,EAAEsE,WAJP;;AAMG,KAACpE,SAAD,IAAc,CAACqB,YAAf,IAA+B,CAAC,CAACV,KAAK,CAACyC,MAAvC,iBAAiD,oBAAC,oBAAD,IAAsB,UAAU,EAAE3C,UAAlC,EAA8C,IAAI,EAAED,IAApD,GANpD;AAOE,iCAAK,SAAS,EAAE4E,6BAAhB;AACE;AACE,MAAA,YAAY,EAAE,gCAAMP,UAAU,CAAC,IAAD,CAAhB,EADhB;AAEE,MAAA,YAAY,EAAE,gCAAMA,UAAU,CAAC,KAAD,CAAhB,EAFhB;AAGE,MAAA,GAAG,EAAElB,QAHP;AAIE,MAAA,SAAS,EAAEmB,sBAJb;;AAME;AACE,kBAAUlG,oBAAoB,CAACE,OADjC;AAEE,MAAA,SAAS,EAAEU,OAAO,CAACuF,EAAR,CAAWa,iBAAX,iCAAiCnD,iBAAjC,IAAqD,CAAC9B,KAAK,CAACyC,MAAP,IAAiB,CAAC/B,YAAvE,eAFb;;AAIGC,IAAAA,aAAa;AACZ,kCAAM,YAAU1C,oBAAoB,CAACG,IAArC,EAA2C,SAAS,EAAE+G,cAAtD;AACGH,IAAAA,mBAAmB,GAAG1E,MAAM,CAACqF,WAAV,GAAwBrF,MAAM,CAACsF,UADrD,CALJ;;;AASGjF,IAAAA,aAAa,IAAIkF,MAAM,CAACC,YAAP,CAAoB,IAApB,CATpB,CAS8C,YAT9C;AAUE;AACE,MAAA,SAAS,EAAEjH,OAAO,CAACuF,EAAR;AACTtG,MAAAA,aAAa,CAACiI,aADL;AAETf,MAAAA,mBAAmB,GAAG9D,MAAM,CAAC8E,sBAAP,CAA8BpH,KAA9B,CAAH,GAA0CsC,MAAM,CAAC6E,aAAP,CAAqBnH,KAArB,CAFpD,CADb;;;AAMGoG,IAAAA,mBAAmB;AAClB,iCAAK,GAAG,EAAExE,UAAV,EAAsB,SAAS,EAAEU,MAAM,CAAC+E,UAAP,EAAjC;AACGnG,IAAAA,UAAU,CAACE,KAAK,CAAC,CAAD,CAAN,eAAW,oBAAC,gBAAD,IAAkB,IAAI,EAAEA,KAAK,CAAC,CAAD,CAA7B,EAAkC,IAAI,EAAEH,IAAxC,GAAX,CADb,CADkB;;;AAKlB;AACGS,IAAAA,MAAM,CAAC4F,UADV;AAEE,iCAAK,SAAS,EAAEtB,0BAAhB,IAA6CC,IAA7C,CAFF,CAXJ,CAVF,CANF;;;;;AAkCE,wBAAC,mBAAD,IAAqB,kBAAkB,EAAE,sCAAMlB,eAAe,CAAC,KAAD,CAArB,EAAzC;AACE;AACM5D,IAAAA,UADN;AAEE,kBAAU9B,oBAAoB,CAACI,KAFjC;AAGE,MAAA,GAAG,EAAEkC,QAHP;AAIE,MAAA,QAAQ,EAAExB,QAAQ,GAAG,CAAC,CAAJ,GAAQ,CAJ5B;AAKE,MAAA,IAAI,EAAC,MALP;AAME,MAAA,QAAQ,EAAEA,QANZ;AAOE,MAAA,QAAQ,EAAEG,QAPZ;AAQE,MAAA,SAAS,EAAEgC,MAAM,CAACiF,cAAP,EARb;AASE,MAAA,OAAO,EAAEpI,eATX;AAUE,MAAA,QAAQ,EAAE6F,iBAVZ;AAWE,MAAA,OAAO,EAAEE,WAXX;AAYE,MAAA,MAAM,EAAEE;AACR;AAbF,QAcE,KAAK,EAAE,EAdT,IADF,CAlCF,CADF,CAPF,CADF,CADF;;;;;;;;AAmED,CAxRsC,CAAvC;;;;AA4RA,OAAO,IAAMoC,YAAY,GAAGnJ,+BAA+B;AACzDjB,KAAK,CAACqK,IAAN,CAAW5H,aAAX,CADyD,CAApD;;AAGP2H,YAAY,CAACE,WAAb,GAA2B,cAA3B","sourcesContent":["import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { FileUploaderAttachedFile, getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { useEmotion } from '../../lib/theming/Emotion';\nimport { InstanceWithRootNode } from '../../lib/rootNode';\nimport { useMemoObject } from '../../hooks/useMemoObject';\nimport { FileUploaderControlContext } from '../../internal/FileUploaderControl/FileUploaderControlContext';\nimport { useControlLocale } from '../../internal/FileUploaderControl/hooks/useControlLocale';\nimport { useUpload } from '../../internal/FileUploaderControl/hooks/useUpload';\nimport { useDrop } from '../../hooks/useDrop';\nimport { UploadIcon } from '../../internal/icons/16px';\nimport { FileUploaderControlProviderProps } from '../../internal/FileUploaderControl/FileUploaderControlProvider';\nimport { withFileUploaderControlProvider } from '../../internal/FileUploaderControl/withFileUploaderControlProvider';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { FileUploaderFile } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFileList } from '../../internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\nimport { useFileUploaderSize } from '../../internal/FileUploaderControl/hooks/useFileUploaderSize';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { SizeProp } from '../../lib/types/props';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { useTheme } from '../../lib/theming/useTheme';\n\nimport { UploadIcon as UploadIcon2022 } from './UploadIcon';\nimport { getStyles, globalClasses } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\n/**\n * @deprecated use SizeProp\n */\nexport type FileUploaderSize = SizeProp;\n\ntype FileUploaderOverriddenProps = 'size';\n\ninterface _FileUploaderProps\n extends CommonProps,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {\n /** Состояние ошибки всего контрола */\n error?: boolean;\n /** Состояние предупреждения всего контрола */\n warning?: boolean;\n /** Свойство ширины. */\n width?: React.CSSProperties['width'];\n /**\n * Задаёт размер контрола.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n /** Свойство, скрывающее отображение файлов. */\n hideFiles?: boolean;\n\n /** Функция, через которую отправляем файлы. Используется для отслеживания статуса загрузки файла. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n /** Срабатывает при удачной попытке отправки через request */\n onRequestSuccess?: (fileId: string) => void;\n /** Срабатывает при неудачной попытке отправки через request */\n onRequestError?: (fileId: string) => void;\n\n /**\n * Функция валидации каждого файла.\n * Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку.\n * */\n validateBeforeUpload?: (file: FileUploaderAttachedFile) => Promise<Nullable<string>>;\n\n /**\n * Функция, позволяющая кастомизировать файлы.\n * Через нее можно вешать кастомные валидации на каждый файл.\n * */\n renderFile?: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n}\n\nexport interface FileUploaderRef extends InstanceWithRootNode {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n}\n\nexport const FileUploaderDataTids = {\n root: 'FileUploader__root',\n content: 'FileUploader__content',\n link: 'FileUploader__link',\n input: 'FileUploader__input',\n} as const;\n\nconst defaultRenderFile = (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => fileNode;\n\nconst _FileUploader = forwardRefAndName<FileUploaderRef, _FileUploaderProps>('FileUploader', (props, ref) => {\n const theme = useTheme();\n const emotion = useEmotion();\n const _isTheme2022 = isTheme2022(theme);\n\n const {\n disabled,\n error,\n warning,\n multiple = false,\n width = theme.fileUploaderWidth,\n hideFiles = false,\n onBlur,\n onFocus,\n onChange,\n request,\n validateBeforeUpload,\n onRequestSuccess,\n onRequestError,\n size = 'small',\n renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult, isMinLengthReached } =\n useContext(FileUploaderControlContext);\n\n const locale = useControlLocale();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const fileDivRef = useRef<HTMLDivElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\n const [isLinkVisible, setIsLinkVisible] = useState(true);\n const upload = useUpload(request, onRequestSuccess, onRequestError);\n\n const tryValidateAndUpload = useCallback(\n (files: FileUploaderAttachedFile[]) => {\n files.forEach(async (file) => {\n const validationMessage = validateBeforeUpload && (await validateBeforeUpload(file));\n\n if (!validationMessage) {\n isAsync && upload(file);\n } else {\n setFileValidationResult(file.id, FileUploaderFileValidationResult.error(validationMessage));\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n const styles = getStyles(emotion);\n const sizeClassName = useFileUploaderSize(size, {\n small: styles.sizeSmall(theme),\n medium: styles.sizeMedium(theme),\n large: styles.sizeLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: styles.iconSmall(theme),\n medium: styles.iconMedium(theme),\n large: styles.iconLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: styles.contentInnerSmall(theme),\n medium: styles.contentInnerMedium(theme),\n large: styles.contentInnerLarge(theme),\n });\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles) {\n return;\n }\n\n let filesArray = Array.from(newFiles);\n\n if (isSingleMode) {\n filesArray = [filesArray[0]];\n }\n\n const attachedFiles = filesArray.map(getAttachedFile);\n\n if (isSingleMode && attachedFiles.length && files.length) {\n removeFile(files[0].id);\n }\n\n if (attachedFiles.length) {\n setFiles(attachedFiles);\n tryValidateAndUpload(attachedFiles);\n }\n },\n [tryValidateAndUpload, setFiles, isSingleMode, files, removeFile],\n );\n\n const handleDrop = useCallback(\n (event) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n const { files } = dataTransfer;\n\n if (files?.length > 0) {\n handleChange(files);\n dataTransfer.clearData();\n }\n },\n [handleChange, disabled],\n );\n\n const { isDraggable, ref: labelRef } = useDrop<HTMLLabelElement>({ onDrop: handleDrop });\n const { isDraggable: isWindowDraggable, ref: windowRef } = useDrop<Document>();\n\n if (isBrowser(globalObject)) {\n windowRef.current = globalObject.document;\n }\n\n const focus = useCallback(() => {\n keyListener.isTabPressed = true;\n inputRef.current?.focus();\n }, []);\n\n const blur = useCallback(() => {\n inputRef.current?.blur();\n }, []);\n\n useImperativeHandle(ref, () => ({ focus, blur, reset, getRootNode: () => rootNodeRef.current }), [\n ref,\n blur,\n focus,\n reset,\n ]);\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n onFocus?.(e);\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedByTab(false);\n if (!disabled) {\n onBlur?.(e);\n }\n };\n\n const [hovered, setHovered] = useState(false);\n\n const uploadButtonClassNames = emotion.cx(\n styles.uploadButton(theme),\n sizeClassName,\n focusedByTab && styles.uploadButtonFocus(theme),\n disabled && styles.disabled(theme),\n !disabled && hovered && styles.hovered(theme),\n !!warning && styles.warning(theme),\n !!error && styles.error(theme),\n isDraggable && !disabled && styles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = emotion.cx(\n !_isTheme2022 && canDrop && styles.windowDragOver(theme),\n _isTheme2022 && canDrop && styles.windowDragOver2022(theme),\n );\n\n const uploadButtonIconClassNames = emotion.cx(\n styles.icon(theme),\n sizeIconClass,\n disabled && styles.iconDisabled(theme),\n );\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const contentClassNames = emotion.cx(styles.content(), hasOneFileForSingle && styles.contentWithFiles());\n\n const linkClassNames = emotion.cx(\n styles.link(theme),\n !disabled && hovered && styles.linkHovered(theme),\n disabled && styles.linkDisabled(theme),\n );\n\n useEffect(() => {\n setIsLinkVisible(hasOneFileForSingle ? !isMinLengthReached : true);\n }, [isMinLengthReached, hasOneFileForSingle]);\n\n const rootNodeRef = useRef(null);\n\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(theme.btnIconSizeSmall),\n medium: parseInt(theme.btnIconSizeMedium),\n large: parseInt(theme.btnIconSizeLarge),\n };\n const icon = _isTheme2022 ? <UploadIcon2022 size={iconSizes[size]} /> : <UploadIcon />;\n\n return (\n <CommonWrapper {...props}>\n <div\n data-tid={FileUploaderDataTids.root}\n className={styles.root(theme)}\n style={useMemoObject({ width })}\n ref={rootNodeRef}\n >\n {!hideFiles && !isSingleMode && !!files.length && <FileUploaderFileList renderFile={renderFile} size={size} />}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n <div\n data-tid={FileUploaderDataTids.content}\n className={emotion.cx(contentClassNames, { [contentInnerClass]: !files.length || !isSingleMode })}\n >\n {isLinkVisible && (\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {hasOneFileForSingle ? locale.choosedFile : locale.chooseFile}\n </span>\n )}\n {isLinkVisible && String.fromCharCode(0xa0) /* &nbsp; */}\n <div\n className={emotion.cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? styles.afterLinkText_HasFiles(theme) : styles.afterLinkText(theme),\n )}\n >\n {hasOneFileForSingle ? (\n <div ref={fileDivRef} className={styles.singleFile()}>\n {renderFile(files[0], <FileUploaderFile file={files[0]} size={size} />)}\n </div>\n ) : (\n <>\n {locale.orDragHere}&nbsp;\n <div className={uploadButtonIconClassNames}>{icon}</div>\n </>\n )}\n </div>\n </div>\n <FocusControlWrapper onBlurWhenDisabled={() => setFocusedByTab(false)}>\n <input\n {...inputProps}\n data-tid={FileUploaderDataTids.input}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={styles.visuallyHidden()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n // для того, чтобы срабатывало событие change при выборе одного и того же файла подряд\n value={''}\n />\n </FocusControlWrapper>\n </label>\n </div>\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\nFileUploader.displayName = 'FileUploader';\n"]}
1
+ {"version":3,"sources":["FileUploader.tsx"],"names":["React","useCallback","useContext","useEffect","useImperativeHandle","useRef","useState","globalObject","isBrowser","getAttachedFile","useEmotion","useMemoObject","FileUploaderControlContext","useControlLocale","useUpload","useDrop","UploadIcon","withFileUploaderControlProvider","keyListener","FileUploaderFile","FileUploaderFileList","CommonWrapper","FileUploaderFileValidationResult","useFileUploaderSize","isTheme2022","forwardRefAndName","FocusControlWrapper","useTheme","UploadIcon2022","getStyles","globalClasses","stopPropagation","e","FileUploaderDataTids","root","content","link","input","defaultRenderFile","file","fileNode","_FileUploader","props","ref","theme","emotion","_isTheme2022","initialFiles","disabled","error","warning","multiple","width","fileUploaderWidth","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","size","renderFile","inputProps","files","setFiles","removeFile","reset","setFileValidationResult","isMinLengthReached","locale","inputRef","fileDivRef","isAsync","isSingleMode","isLinkVisible","setIsLinkVisible","upload","tryValidateAndUpload","forEach","validationMessage","id","styles","sizeClassName","small","sizeSmall","medium","sizeMedium","large","sizeLarge","sizeIconClass","iconSmall","iconMedium","iconLarge","contentInnerClass","contentInnerSmall","contentInnerMedium","contentInnerLarge","handleChange","newFiles","length","filesArray","Array","from","attachedFiles","map","handleDrop","event","dataTransfer","clearData","onDrop","isDraggable","labelRef","isWindowDraggable","windowRef","current","document","focus","isTabPressed","blur","getRootNode","rootNodeRef","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","handleRemoveFile","fileId","DataTransfer","filter","f","items","add","originalFile","hovered","setHovered","uploadButtonClassNames","cx","uploadButton","uploadButtonFocus","dragOver","canDrop","uploadButtonWrapperClassNames","windowDragOver","windowDragOver2022","uploadButtonIconClassNames","icon","iconDisabled","hasOneFile","hasOneFileForSingle","contentClassNames","contentWithFiles","linkClassNames","linkHovered","linkDisabled","iconSizes","parseInt","btnIconSizeSmall","btnIconSizeMedium","btnIconSizeLarge","choosedFile","chooseFile","String","fromCharCode","afterLinkText","afterLinkText_HasFiles","singleFile","orDragHere","visuallyHidden","FileUploader","memo","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { FileUploaderAttachedFile, getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { useEmotion } from '../../lib/theming/Emotion';\nimport { InstanceWithRootNode } from '../../lib/rootNode';\nimport { useMemoObject } from '../../hooks/useMemoObject';\nimport { FileUploaderControlContext } from '../../internal/FileUploaderControl/FileUploaderControlContext';\nimport { useControlLocale } from '../../internal/FileUploaderControl/hooks/useControlLocale';\nimport { useUpload } from '../../internal/FileUploaderControl/hooks/useUpload';\nimport { useDrop } from '../../hooks/useDrop';\nimport { UploadIcon } from '../../internal/icons/16px';\nimport { FileUploaderControlProviderProps } from '../../internal/FileUploaderControl/FileUploaderControlProvider';\nimport { withFileUploaderControlProvider } from '../../internal/FileUploaderControl/withFileUploaderControlProvider';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { FileUploaderFile } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFileList } from '../../internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\nimport { useFileUploaderSize } from '../../internal/FileUploaderControl/hooks/useFileUploaderSize';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { SizeProp } from '../../lib/types/props';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { useTheme } from '../../lib/theming/useTheme';\n\nimport { UploadIcon as UploadIcon2022 } from './UploadIcon';\nimport { getStyles, globalClasses } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\n/**\n * @deprecated use SizeProp\n */\nexport type FileUploaderSize = SizeProp;\n\ntype FileUploaderOverriddenProps = 'size';\n\ninterface _FileUploaderProps\n extends CommonProps,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {\n /** Начальное состояние загруженных файлов */\n initialFiles?: File[];\n /** Состояние ошибки всего контрола */\n error?: boolean;\n /** Состояние предупреждения всего контрола */\n warning?: boolean;\n /** Свойство ширины. */\n width?: React.CSSProperties['width'];\n /**\n * Задаёт размер контрола.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n /** Свойство, скрывающее отображение файлов. */\n hideFiles?: boolean;\n\n /** Функция, через которую отправляем файлы. Используется для отслеживания статуса загрузки файла. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n /** Срабатывает при удачной попытке отправки через request */\n onRequestSuccess?: (fileId: string) => void;\n /** Срабатывает при неудачной попытке отправки через request */\n onRequestError?: (fileId: string) => void;\n\n /**\n * Функция валидации каждого файла.\n * Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку.\n * */\n validateBeforeUpload?: (file: FileUploaderAttachedFile) => Promise<Nullable<string>>;\n\n /**\n * Функция, позволяющая кастомизировать файлы.\n * Через нее можно вешать кастомные валидации на каждый файл.\n * */\n renderFile?: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n}\n\nexport interface FileUploaderRef extends InstanceWithRootNode {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n}\n\nexport const FileUploaderDataTids = {\n root: 'FileUploader__root',\n content: 'FileUploader__content',\n link: 'FileUploader__link',\n input: 'FileUploader__input',\n} as const;\n\nconst defaultRenderFile = (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => fileNode;\n\nconst _FileUploader = forwardRefAndName<FileUploaderRef, _FileUploaderProps>('FileUploader', (props, ref) => {\n const theme = useTheme();\n const emotion = useEmotion();\n const _isTheme2022 = isTheme2022(theme);\n\n const {\n initialFiles,\n disabled,\n error,\n warning,\n multiple = false,\n width = theme.fileUploaderWidth,\n hideFiles = false,\n onBlur,\n onFocus,\n onChange,\n request,\n validateBeforeUpload,\n onRequestSuccess,\n onRequestError,\n size = 'small',\n renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult, isMinLengthReached } =\n useContext(FileUploaderControlContext);\n\n const locale = useControlLocale();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const fileDivRef = useRef<HTMLDivElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\n const [isLinkVisible, setIsLinkVisible] = useState(true);\n const upload = useUpload(request, onRequestSuccess, onRequestError);\n\n const tryValidateAndUpload = useCallback(\n (files: FileUploaderAttachedFile[]) => {\n files.forEach(async (file) => {\n const validationMessage = validateBeforeUpload && (await validateBeforeUpload(file));\n\n if (!validationMessage) {\n isAsync && upload(file);\n } else {\n setFileValidationResult(file.id, FileUploaderFileValidationResult.error(validationMessage));\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n const styles = getStyles(emotion);\n const sizeClassName = useFileUploaderSize(size, {\n small: styles.sizeSmall(theme),\n medium: styles.sizeMedium(theme),\n large: styles.sizeLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: styles.iconSmall(theme),\n medium: styles.iconMedium(theme),\n large: styles.iconLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: styles.contentInnerSmall(theme),\n medium: styles.contentInnerMedium(theme),\n large: styles.contentInnerLarge(theme),\n });\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles || !newFiles.length) {\n return;\n }\n\n let filesArray = Array.from(newFiles);\n\n if (isSingleMode) {\n filesArray = [filesArray[0]];\n }\n\n const attachedFiles = filesArray.map(getAttachedFile);\n\n if (isSingleMode && attachedFiles.length && files.length) {\n removeFile(files[0].id);\n }\n\n if (attachedFiles.length) {\n setFiles(attachedFiles);\n tryValidateAndUpload(attachedFiles);\n }\n },\n [tryValidateAndUpload, setFiles, isSingleMode, files, removeFile],\n );\n\n const handleDrop = useCallback(\n (event) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n const { files } = dataTransfer;\n\n if (files?.length > 0) {\n handleChange(files);\n dataTransfer.clearData();\n }\n },\n [handleChange, disabled],\n );\n\n const { isDraggable, ref: labelRef } = useDrop<HTMLLabelElement>({ onDrop: handleDrop });\n const { isDraggable: isWindowDraggable, ref: windowRef } = useDrop<Document>();\n\n if (isBrowser(globalObject)) {\n windowRef.current = globalObject.document;\n }\n\n const focus = useCallback(() => {\n keyListener.isTabPressed = true;\n inputRef.current?.focus();\n }, []);\n\n const blur = useCallback(() => {\n inputRef.current?.blur();\n }, []);\n\n useImperativeHandle(ref, () => ({ focus, blur, reset, getRootNode: () => rootNodeRef.current }), [\n ref,\n blur,\n focus,\n reset,\n ]);\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n onFocus?.(e);\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedByTab(false);\n if (!disabled) {\n onBlur?.(e);\n }\n };\n\n const handleRemoveFile = useCallback((fileId: string) => {\n const dataTransfer = new DataTransfer();\n files\n .filter((f) => f.id !== fileId)\n .forEach((file) => {\n dataTransfer.items.add(file.originalFile);\n });\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n }, []);\n\n const [hovered, setHovered] = useState(false);\n\n const uploadButtonClassNames = emotion.cx(\n styles.uploadButton(theme),\n sizeClassName,\n focusedByTab && styles.uploadButtonFocus(theme),\n disabled && styles.disabled(theme),\n !disabled && hovered && styles.hovered(theme),\n !!warning && styles.warning(theme),\n !!error && styles.error(theme),\n isDraggable && !disabled && styles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = emotion.cx(\n !_isTheme2022 && canDrop && styles.windowDragOver(theme),\n _isTheme2022 && canDrop && styles.windowDragOver2022(theme),\n );\n\n const uploadButtonIconClassNames = emotion.cx(\n styles.icon(theme),\n sizeIconClass,\n disabled && styles.iconDisabled(theme),\n );\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const contentClassNames = emotion.cx(styles.content(), hasOneFileForSingle && styles.contentWithFiles());\n\n const linkClassNames = emotion.cx(\n styles.link(theme),\n !disabled && hovered && styles.linkHovered(theme),\n disabled && styles.linkDisabled(theme),\n );\n\n useEffect(() => {\n setIsLinkVisible(hasOneFileForSingle ? !isMinLengthReached : true);\n }, [isMinLengthReached, hasOneFileForSingle]);\n\n useEffect(() => {\n if (!files || !files.length || !inputRef.current) {\n return;\n }\n\n const dataTransfer = new DataTransfer();\n files.forEach((file) => dataTransfer.items.add(file.originalFile));\n inputRef.current.files = dataTransfer.files;\n }, []);\n\n const rootNodeRef = useRef(null);\n\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(theme.btnIconSizeSmall),\n medium: parseInt(theme.btnIconSizeMedium),\n large: parseInt(theme.btnIconSizeLarge),\n };\n const icon = _isTheme2022 ? <UploadIcon2022 size={iconSizes[size]} /> : <UploadIcon />;\n\n return (\n <CommonWrapper {...props}>\n <div\n data-tid={FileUploaderDataTids.root}\n className={styles.root(theme)}\n style={useMemoObject({ width })}\n ref={rootNodeRef}\n >\n {!hideFiles && !isSingleMode && !!files.length && (\n <FileUploaderFileList renderFile={renderFile} size={size} onRemove={handleRemoveFile} />\n )}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n <div\n data-tid={FileUploaderDataTids.content}\n className={emotion.cx(contentClassNames, { [contentInnerClass]: !files.length || !isSingleMode })}\n >\n {isLinkVisible && (\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {hasOneFileForSingle ? locale.choosedFile : locale.chooseFile}\n </span>\n )}\n {isLinkVisible && String.fromCharCode(0xa0) /* &nbsp; */}\n <div\n className={emotion.cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? styles.afterLinkText_HasFiles(theme) : styles.afterLinkText(theme),\n )}\n >\n {hasOneFileForSingle ? (\n <div ref={fileDivRef} className={styles.singleFile()}>\n {renderFile(files[0], <FileUploaderFile file={files[0]} size={size} onRemove={handleRemoveFile} />)}\n </div>\n ) : (\n <>\n {locale.orDragHere}&nbsp;\n <div className={uploadButtonIconClassNames}>{icon}</div>\n </>\n )}\n </div>\n </div>\n <FocusControlWrapper onBlurWhenDisabled={() => setFocusedByTab(false)}>\n <input\n {...inputProps}\n data-tid={FileUploaderDataTids.input}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={styles.visuallyHidden()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </FocusControlWrapper>\n </label>\n </div>\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\nFileUploader.displayName = 'FileUploader';\n"]}
@@ -11,6 +11,8 @@ import { SizeProp } from '../../lib/types/props';
11
11
  export declare type FileUploaderSize = SizeProp;
12
12
  declare type FileUploaderOverriddenProps = 'size';
13
13
  interface _FileUploaderProps extends CommonProps, Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {
14
+ /** Начальное состояние загруженных файлов */
15
+ initialFiles?: File[];
14
16
  /** Состояние ошибки всего контрола */
15
17
  error?: boolean;
16
18
  /** Состояние предупреждения всего контрола */
@@ -27,6 +27,35 @@ const request = () => Promise.reject();
27
27
  <FileUploader request={request} multiple />
28
28
  ```
29
29
 
30
+ Файлы по умолчанию
31
+ ```jsx harmony
32
+ import { FileUploader } from '@skbkontur/react-ui';
33
+
34
+ function createFile(filename, content) {
35
+ return new File(['content'], filename, { type: 'text/plain' });
36
+ };
37
+
38
+ const initialFiles = [createFile('test1.txt'), createFile('test2.txt')];
39
+ <FileUploader multiple initialFiles={initialFiles} />
40
+ ```
41
+
42
+ Файлы по умолчанию с кастомизацией рендеринга
43
+ ```jsx harmony
44
+ import { cloneElement } from 'react';
45
+ import { FileUploader } from '@skbkontur/react-ui';
46
+
47
+ function createFile(filename, content) {
48
+ return new File(['content'], filename, { type: 'text/plain' });
49
+ };
50
+
51
+ const initialFiles = [createFile('test1.txt'), createFile('test2.txt')];
52
+ <FileUploader
53
+ multiple
54
+ initialFiles={initialFiles}
55
+ renderFile={(file, fileNode) => cloneElement(fileNode, { showSize: false })}
56
+ />
57
+ ```
58
+
30
59
  Использование `accept`
31
60
  ```jsx harmony
32
61
  import { FileUploader } from '@skbkontur/react-ui';
@@ -18,7 +18,7 @@ import { FunctionIcon } from "../../../internal/icons/16px";
18
18
  import { CommonWrapper } from "../../../internal/CommonWrapper";
19
19
  import { rootNode } from "../../../lib/rootNode";
20
20
  import { isTheme2022 } from "../../../lib/theming/ThemeHelpers";
21
- import { ThemeConsumer } from "../../../lib/theming/ThemeContext";
21
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
22
22
  import { MathFunctionIcon } from "../MathFunctionIcon";
23
23
  import { FxInputRestoreBtn } from "../FxInputRestoreBtn";
24
24
  export var FxInputDataTids = {
@@ -133,7 +133,7 @@ var FxInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React
133
133
  _proto.render = function render() {
134
134
  var _this2 = this;
135
135
 
136
- return /*#__PURE__*/React.createElement(ThemeConsumer, null, function (theme) {
136
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
137
137
  _this2.theme = theme;
138
138
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
139
139
  rootNodeRef: _this2.setRootNode