@skbkontur/react-ui 0.0.0-b4292e4d5b → 0.0.0-b821a2f064

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 (887) hide show
  1. package/CHANGELOG.md +130 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +2 -1
  3. package/cjs/components/Autocomplete/Autocomplete.js +1 -0
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +7 -2
  6. package/cjs/components/Button/Button.js +21 -4
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Button/Button.md +68 -0
  9. package/cjs/components/Button/Button.mixins.js +1 -1
  10. package/cjs/components/Button/Button.mixins.js.map +1 -1
  11. package/cjs/components/Button/Button.styles.d.ts +2 -1
  12. package/cjs/components/Button/Button.styles.js +11 -3
  13. package/cjs/components/Button/Button.styles.js.map +1 -1
  14. package/cjs/components/Button/ButtonArrow.js +1 -1
  15. package/cjs/components/Button/ButtonArrow.js.map +1 -1
  16. package/cjs/components/Button/ButtonIcon.d.ts +3 -2
  17. package/cjs/components/Button/ButtonIcon.js +2 -4
  18. package/cjs/components/Button/ButtonIcon.js.map +1 -1
  19. package/cjs/components/Button/getInnerLinkTheme.js +1 -0
  20. package/cjs/components/Button/getInnerLinkTheme.js.map +1 -1
  21. package/cjs/components/Calendar/Calendar.js +7 -6
  22. package/cjs/components/Calendar/Calendar.js.map +1 -1
  23. package/cjs/components/Checkbox/Checkbox.d.ts +6 -2
  24. package/cjs/components/Checkbox/Checkbox.js +12 -7
  25. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  26. package/cjs/components/ComboBox/ComboBox.d.ts +2 -1
  27. package/cjs/components/ComboBox/ComboBox.js +1 -0
  28. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  29. package/cjs/components/CurrencyInput/CurrencyInput.js +2 -1
  30. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  31. package/cjs/components/DateInput/DateFragmentsView.js +2 -1
  32. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  33. package/cjs/components/DateInput/DateInput.d.ts +2 -1
  34. package/cjs/components/DateInput/DateInput.js +15 -6
  35. package/cjs/components/DateInput/DateInput.js.map +1 -1
  36. package/cjs/components/DateInput/helpers/SelectionHelpers.js +11 -10
  37. package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
  38. package/cjs/components/DatePicker/DatePicker.d.ts +2 -1
  39. package/cjs/components/DatePicker/DatePicker.js +1 -0
  40. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  41. package/cjs/components/Dropdown/Dropdown.d.ts +3 -2
  42. package/cjs/components/Dropdown/Dropdown.js +1 -0
  43. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  44. package/cjs/components/Dropdown/getDropdownTheme.js +21 -22
  45. package/cjs/components/Dropdown/getDropdownTheme.js.map +1 -1
  46. package/cjs/components/FileUploader/FileUploader.d.ts +6 -2
  47. package/cjs/components/FileUploader/FileUploader.js +9 -5
  48. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  49. package/cjs/components/FileUploader/FileUploader.styles.d.ts +1 -1
  50. package/cjs/components/FileUploader/FileUploader.styles.js +10 -2
  51. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  52. package/cjs/components/FxInput/FxInput.js +1 -0
  53. package/cjs/components/FxInput/FxInput.js.map +1 -1
  54. package/cjs/components/FxInput/FxInputRestoreBtn.js +1 -0
  55. package/cjs/components/FxInput/FxInputRestoreBtn.js.map +1 -1
  56. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +1 -2
  57. package/cjs/components/GlobalLoader/GlobalLoader.js +10 -15
  58. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  59. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +1 -2
  60. package/cjs/components/GlobalLoader/GlobalLoaderView.js +3 -5
  61. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  62. package/cjs/components/Hint/Hint.js +5 -4
  63. package/cjs/components/Hint/Hint.js.map +1 -1
  64. package/cjs/components/Input/Input.d.ts +6 -2
  65. package/cjs/components/Input/Input.js +16 -10
  66. package/cjs/components/Input/Input.js.map +1 -1
  67. package/cjs/components/Input/InputLayout/InputLayout.d.ts +1 -1
  68. package/cjs/components/Input/InputLayout/InputLayout.styles.js +7 -2
  69. package/cjs/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
  70. package/cjs/components/Input/InputLayout/InputLayoutAside.js +1 -7
  71. package/cjs/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  72. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -0
  73. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  74. package/cjs/components/Input/InputLayout/InputLayoutContext.d.ts +2 -2
  75. package/cjs/components/Input/InputLayout/InputLayoutContext.js.map +1 -1
  76. package/cjs/components/Kebab/Kebab.d.ts +2 -1
  77. package/cjs/components/Kebab/Kebab.js +2 -1
  78. package/cjs/components/Kebab/Kebab.js.map +1 -1
  79. package/cjs/components/Link/Link.d.ts +6 -1
  80. package/cjs/components/Link/Link.js +19 -8
  81. package/cjs/components/Link/Link.js.map +1 -1
  82. package/cjs/components/Link/Link.md +69 -0
  83. package/cjs/components/Link/Link.styles.d.ts +1 -0
  84. package/cjs/components/Link/Link.styles.js +30 -22
  85. package/cjs/components/Link/Link.styles.js.map +1 -1
  86. package/cjs/components/Loader/Loader.js +8 -7
  87. package/cjs/components/Loader/Loader.js.map +1 -1
  88. package/cjs/components/MenuFooter/MenuFooter.d.ts +6 -2
  89. package/cjs/components/MenuFooter/MenuFooter.js +4 -0
  90. package/cjs/components/MenuFooter/MenuFooter.js.map +1 -1
  91. package/cjs/components/MenuHeader/MenuHeader.d.ts +6 -2
  92. package/cjs/components/MenuHeader/MenuHeader.js +4 -0
  93. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  94. package/cjs/components/MenuItem/MenuItem.d.ts +6 -2
  95. package/cjs/components/MenuItem/MenuItem.js +6 -1
  96. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  97. package/cjs/components/MiniModal/MiniModal.d.ts +18 -0
  98. package/cjs/components/MiniModal/MiniModal.js +47 -0
  99. package/cjs/components/MiniModal/MiniModal.js.map +1 -0
  100. package/cjs/components/MiniModal/MiniModal.md +233 -0
  101. package/cjs/components/MiniModal/MiniModal.styles.d.ts +14 -0
  102. package/cjs/components/MiniModal/MiniModal.styles.js +87 -0
  103. package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -0
  104. package/cjs/components/MiniModal/MiniModalBody.d.ts +7 -0
  105. package/cjs/components/MiniModal/MiniModalBody.js +24 -0
  106. package/cjs/components/MiniModal/MiniModalBody.js.map +1 -0
  107. package/cjs/components/MiniModal/MiniModalFooter.d.ts +18 -0
  108. package/cjs/components/MiniModal/MiniModalFooter.js +60 -0
  109. package/cjs/components/MiniModal/MiniModalFooter.js.map +1 -0
  110. package/cjs/components/MiniModal/MiniModalHeader.d.ts +17 -0
  111. package/cjs/components/MiniModal/MiniModalHeader.js +47 -0
  112. package/cjs/components/MiniModal/MiniModalHeader.js.map +1 -0
  113. package/cjs/components/MiniModal/MiniModalIndent.d.ts +6 -0
  114. package/cjs/components/MiniModal/MiniModalIndent.js +29 -0
  115. package/cjs/components/MiniModal/MiniModalIndent.js.map +1 -0
  116. package/cjs/components/MiniModal/getMiniModalTheme.d.ts +16 -0
  117. package/cjs/components/MiniModal/getMiniModalTheme.js +24 -0
  118. package/cjs/components/MiniModal/getMiniModalTheme.js.map +1 -0
  119. package/cjs/components/MiniModal/index.d.ts +5 -0
  120. package/cjs/components/MiniModal/index.js +5 -0
  121. package/cjs/components/MiniModal/index.js.map +1 -0
  122. package/cjs/components/Modal/Modal.d.ts +6 -0
  123. package/cjs/components/Modal/Modal.js +15 -1
  124. package/cjs/components/Modal/Modal.js.map +1 -1
  125. package/cjs/components/Modal/Modal.styles.d.ts +5 -0
  126. package/cjs/components/Modal/Modal.styles.js +56 -39
  127. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  128. package/cjs/components/Modal/ModalClose.js +2 -1
  129. package/cjs/components/Modal/ModalClose.js.map +1 -1
  130. package/cjs/components/Modal/ModalHeader.js +1 -1
  131. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  132. package/cjs/components/Modal/ModalSeparator.d.ts +5 -0
  133. package/cjs/components/Modal/ModalSeparator.js +5 -0
  134. package/cjs/components/Modal/ModalSeparator.js.map +1 -1
  135. package/cjs/components/Modal/getModalTheme.d.ts +2 -2
  136. package/cjs/components/Modal/getModalTheme.js +6 -2
  137. package/cjs/components/Modal/getModalTheme.js.map +1 -1
  138. package/cjs/components/Paging/NavigationHelper.js +2 -1
  139. package/cjs/components/Paging/NavigationHelper.js.map +1 -1
  140. package/cjs/components/Paging/Paging.js +16 -15
  141. package/cjs/components/Paging/Paging.js.map +1 -1
  142. package/cjs/components/Paging/Paging.styles.d.ts +0 -1
  143. package/cjs/components/Paging/Paging.styles.js +5 -10
  144. package/cjs/components/Paging/Paging.styles.js.map +1 -1
  145. package/cjs/components/PasswordInput/PasswordInput.js +4 -2
  146. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  147. package/cjs/components/Radio/Radio.d.ts +6 -2
  148. package/cjs/components/Radio/Radio.js +6 -1
  149. package/cjs/components/Radio/Radio.js.map +1 -1
  150. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +5 -6
  151. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  152. package/cjs/components/ScrollContainer/ScrollBar.d.ts +4 -7
  153. package/cjs/components/ScrollContainer/ScrollBar.js +14 -45
  154. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  155. package/cjs/components/ScrollContainer/ScrollContainer.constants.js +1 -2
  156. package/cjs/components/ScrollContainer/ScrollContainer.constants.js.map +1 -1
  157. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +19 -3
  158. package/cjs/components/ScrollContainer/ScrollContainer.js +94 -20
  159. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  160. package/cjs/components/ScrollContainer/ScrollContainer.md +29 -2
  161. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +0 -4
  162. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +8 -30
  163. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  164. package/cjs/components/Select/Select.d.ts +5 -3
  165. package/cjs/components/Select/Select.js +10 -7
  166. package/cjs/components/Select/Select.js.map +1 -1
  167. package/cjs/components/SidePage/SidePage.js +12 -3
  168. package/cjs/components/SidePage/SidePage.js.map +1 -1
  169. package/cjs/components/SidePage/SidePageCloseButton.js +2 -1
  170. package/cjs/components/SidePage/SidePageCloseButton.js.map +1 -1
  171. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
  172. package/cjs/components/SidePage/SidePageHeader.js +8 -6
  173. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  174. package/cjs/components/SingleToast/SingleToast.d.ts +11 -0
  175. package/cjs/components/SingleToast/SingleToast.js +20 -0
  176. package/cjs/components/SingleToast/SingleToast.js.map +1 -0
  177. package/cjs/components/SingleToast/SingleToast.md +35 -0
  178. package/cjs/components/SingleToast/index.d.ts +1 -0
  179. package/cjs/components/SingleToast/index.js +1 -0
  180. package/cjs/components/SingleToast/index.js.map +1 -0
  181. package/cjs/components/Spinner/SpinnerFallbackAnimation.js +6 -2
  182. package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
  183. package/cjs/components/Sticky/Sticky.js +7 -7
  184. package/cjs/components/Sticky/Sticky.js.map +1 -1
  185. package/cjs/components/Switcher/Switcher.d.ts +7 -3
  186. package/cjs/components/Switcher/Switcher.js +4 -0
  187. package/cjs/components/Switcher/Switcher.js.map +1 -1
  188. package/cjs/components/Tabs/Indicator.js +2 -1
  189. package/cjs/components/Tabs/Indicator.js.map +1 -1
  190. package/cjs/components/Tabs/Tab.d.ts +16 -32
  191. package/cjs/components/Tabs/Tab.js +8 -25
  192. package/cjs/components/Tabs/Tab.js.map +1 -1
  193. package/cjs/components/Tabs/Tab.md +71 -0
  194. package/cjs/components/Tabs/Tab.styles.js.map +1 -1
  195. package/cjs/components/Tabs/Tabs.d.ts +13 -18
  196. package/cjs/components/Tabs/Tabs.js +4 -9
  197. package/cjs/components/Tabs/Tabs.js.map +1 -1
  198. package/cjs/components/Tabs/Tabs.md +7 -22
  199. package/cjs/components/Tabs/Tabs.styles.js.map +1 -1
  200. package/cjs/components/Tabs/TabsContext.d.ts +3 -2
  201. package/cjs/components/Tabs/TabsContext.js +1 -0
  202. package/cjs/components/Tabs/TabsContext.js.map +1 -1
  203. package/cjs/components/Tabs/helpers.d.ts +5 -5
  204. package/cjs/components/Tabs/helpers.js +3 -2
  205. package/cjs/components/Tabs/helpers.js.map +1 -1
  206. package/cjs/components/Textarea/Textarea.d.ts +6 -2
  207. package/cjs/components/Textarea/Textarea.js +23 -9
  208. package/cjs/components/Textarea/Textarea.js.map +1 -1
  209. package/cjs/components/Textarea/TextareaCounter.d.ts +4 -3
  210. package/cjs/components/Textarea/TextareaCounter.js +3 -1
  211. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  212. package/cjs/components/Textarea/TextareaHelpers.d.ts +1 -1
  213. package/cjs/components/Textarea/TextareaHelpers.js +7 -2
  214. package/cjs/components/Textarea/TextareaHelpers.js.map +1 -1
  215. package/cjs/components/Toast/Toast.d.ts +10 -3
  216. package/cjs/components/Toast/Toast.js +26 -8
  217. package/cjs/components/Toast/Toast.js.map +1 -1
  218. package/cjs/components/Toast/Toast.md +0 -105
  219. package/cjs/components/Toast/ToastStatic.js +4 -3
  220. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  221. package/cjs/components/Toggle/Toggle.d.ts +6 -2
  222. package/cjs/components/Toggle/Toggle.js +4 -0
  223. package/cjs/components/Toggle/Toggle.js.map +1 -1
  224. package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
  225. package/cjs/components/TokenInput/TokenInput.js +42 -9
  226. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  227. package/cjs/components/Tooltip/Tooltip.js +5 -5
  228. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  229. package/cjs/hooks/useDrop.js +3 -2
  230. package/cjs/hooks/useDrop.js.map +1 -1
  231. package/cjs/index.d.ts +4 -0
  232. package/cjs/index.js +4 -0
  233. package/cjs/index.js.map +1 -1
  234. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js +2 -1
  235. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  236. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +2 -1
  237. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +1 -0
  238. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  239. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +6 -9
  240. package/cjs/internal/CustomComboBox/ComboBoxView.js +16 -34
  241. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  242. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +4 -2
  243. package/cjs/internal/CustomComboBox/CustomComboBox.js +13 -8
  244. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  245. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +6 -2
  246. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  247. package/cjs/internal/DateSelect/DateSelect.js +19 -16
  248. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  249. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +0 -1
  250. package/cjs/internal/DropdownContainer/DropdownContainer.js +13 -13
  251. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  252. package/cjs/internal/DropdownContainer/getManualPosition.js +6 -4
  253. package/cjs/internal/DropdownContainer/getManualPosition.js.map +1 -1
  254. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -3
  255. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +4 -3
  256. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  257. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.d.ts +2 -2
  258. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.js +1 -1
  259. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.js.map +1 -1
  260. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +2 -2
  261. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +1 -1
  262. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  263. package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -2
  264. package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.js.map +1 -1
  265. package/cjs/internal/FocusTrap/FocusTrap.js +6 -5
  266. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  267. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +19 -20
  268. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  269. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +2 -1
  270. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  271. package/cjs/internal/InputLikeText/InputLikeText.js +16 -16
  272. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  273. package/cjs/internal/InternalMenu/InternalMenu.js +7 -7
  274. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  275. package/cjs/internal/Menu/Menu.js +6 -6
  276. package/cjs/internal/Menu/Menu.js.map +1 -1
  277. package/cjs/internal/MenuMessage/MenuMessage.d.ts +3 -3
  278. package/cjs/internal/MenuMessage/MenuMessage.js.map +1 -1
  279. package/cjs/internal/Popup/Popup.js +11 -8
  280. package/cjs/internal/Popup/Popup.js.map +1 -1
  281. package/cjs/internal/Popup/PopupHelper.js +9 -7
  282. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  283. package/cjs/internal/PopupMenu/PopupMenu.js +3 -2
  284. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  285. package/cjs/internal/RenderContainer/RenderContainer.js +12 -12
  286. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  287. package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -1
  288. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  289. package/cjs/internal/RenderLayer/RenderLayer.js +3 -2
  290. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  291. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +2 -1
  292. package/cjs/internal/ThemePlayground/SizesGroup.js +1 -0
  293. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  294. package/cjs/internal/ThemePlayground/VariableValue.js +1 -0
  295. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  296. package/cjs/internal/ThemePlayground/constants.js +1 -0
  297. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  298. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  299. package/cjs/internal/ThemeShowcase/VariablesCollector.js +6 -4
  300. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  301. package/cjs/internal/ZIndex/ZIndex.js +2 -2
  302. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  303. package/cjs/internal/ZIndex/ZIndexStorage.js +2 -2
  304. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  305. package/cjs/internal/icons/16px/index.d.ts +19 -19
  306. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.d.ts +1 -1
  307. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.d.ts +1 -1
  308. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.d.ts +1 -1
  309. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.d.ts +1 -1
  310. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.d.ts +1 -1
  311. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.d.ts +1 -1
  312. package/cjs/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.d.ts +1 -1
  313. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.d.ts +1 -1
  314. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.d.ts +1 -1
  315. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.d.ts +1 -1
  316. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.d.ts +1 -1
  317. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.d.ts +1 -1
  318. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.d.ts +1 -1
  319. package/cjs/internal/icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular.d.ts +1 -1
  320. package/cjs/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.d.ts +1 -1
  321. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.d.ts +1 -1
  322. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.d.ts +1 -1
  323. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.d.ts +1 -1
  324. package/cjs/internal/icons2022/BaseIcon.d.ts +1 -1
  325. package/cjs/internal/icons2022/BaseIcon.js +3 -7
  326. package/cjs/internal/icons2022/BaseIcon.js.map +1 -1
  327. package/cjs/internal/icons2022/BaseIcon.styles.d.ts +3 -0
  328. package/cjs/internal/icons2022/BaseIcon.styles.js +14 -0
  329. package/cjs/internal/icons2022/BaseIcon.styles.js.map +1 -0
  330. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon16Light.d.ts +1 -1
  331. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon20Light.d.ts +1 -1
  332. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon24Regular.d.ts +1 -1
  333. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Light.d.ts +1 -1
  334. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Regular.d.ts +1 -1
  335. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Solid.d.ts +1 -1
  336. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Light.d.ts +1 -1
  337. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Solid.d.ts +1 -1
  338. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon24Regular.d.ts +1 -1
  339. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.d.ts +1 -1
  340. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.d.ts +1 -1
  341. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.d.ts +1 -1
  342. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.d.ts +1 -1
  343. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.d.ts +1 -1
  344. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.d.ts +1 -1
  345. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.d.ts +2 -0
  346. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js +20 -0
  347. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js.map +1 -0
  348. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.d.ts +1 -1
  349. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.d.ts +1 -1
  350. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.d.ts +1 -1
  351. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Light.d.ts +1 -1
  352. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Regular.d.ts +1 -1
  353. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon20Light.d.ts +1 -1
  354. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon24Regular.d.ts +1 -1
  355. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.d.ts +1 -1
  356. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon20Light.d.ts +1 -1
  357. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.d.ts +1 -1
  358. package/cjs/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.d.ts +1 -1
  359. package/cjs/internal/icons2022/SearchLoupeIcon/SearchLoupeIcon16Regular.d.ts +1 -1
  360. package/cjs/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.d.ts +1 -1
  361. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.d.ts +1 -1
  362. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.d.ts +1 -1
  363. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.d.ts +1 -1
  364. package/cjs/internal/icons2022/XIcon/XIcon16Light.d.ts +1 -1
  365. package/cjs/internal/icons2022/XIcon/XIcon16Regular.d.ts +1 -1
  366. package/cjs/internal/icons2022/XIcon/XIcon20Light.d.ts +1 -1
  367. package/cjs/internal/icons2022/XIcon/XIcon20Regular.d.ts +1 -1
  368. package/cjs/internal/icons2022/XIcon/XIcon24Regular.d.ts +1 -1
  369. package/cjs/internal/themes/DefaultTheme.d.ts +46 -2
  370. package/cjs/internal/themes/DefaultTheme.js +102 -6
  371. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  372. package/cjs/internal/themes/Theme2022.d.ts +4 -3
  373. package/cjs/internal/themes/Theme2022.js +14 -6
  374. package/cjs/internal/themes/Theme2022.js.map +1 -1
  375. package/cjs/internal/themes/Theme2022Dark.d.ts +5 -4
  376. package/cjs/internal/themes/Theme2022Dark.js +10 -5
  377. package/cjs/internal/themes/Theme2022Dark.js.map +1 -1
  378. package/cjs/lib/LayoutEvents.js +5 -4
  379. package/cjs/lib/LayoutEvents.js.map +1 -1
  380. package/cjs/lib/ModalStack.js +2 -3
  381. package/cjs/lib/ModalStack.js.map +1 -1
  382. package/cjs/lib/SSRSafe.d.ts +1 -6
  383. package/cjs/lib/SSRSafe.js +4 -48
  384. package/cjs/lib/SSRSafe.js.map +1 -1
  385. package/cjs/lib/Upgrades.d.ts +1 -0
  386. package/cjs/lib/Upgrades.js +3 -1
  387. package/cjs/lib/Upgrades.js.map +1 -1
  388. package/cjs/lib/animation/index.js +6 -4
  389. package/cjs/lib/animation/index.js.map +1 -1
  390. package/cjs/lib/chars.d.ts +1 -1
  391. package/cjs/lib/chars.js +2 -2
  392. package/cjs/lib/chars.js.map +1 -1
  393. package/cjs/lib/client.d.ts +1 -7
  394. package/cjs/lib/client.js +6 -6
  395. package/cjs/lib/client.js.map +1 -1
  396. package/cjs/lib/dom/getScrollWidth.js +4 -4
  397. package/cjs/lib/dom/getScrollWidth.js.map +1 -1
  398. package/cjs/lib/dom/tabbableHelpers.d.ts +2 -1
  399. package/cjs/lib/dom/tabbableHelpers.js +7 -2
  400. package/cjs/lib/dom/tabbableHelpers.js.map +1 -1
  401. package/cjs/lib/events/MouseDrag.js +11 -11
  402. package/cjs/lib/events/MouseDrag.js.map +1 -1
  403. package/cjs/lib/events/fixClickFocusIE.js +5 -3
  404. package/cjs/lib/events/fixClickFocusIE.js.map +1 -1
  405. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js +5 -2
  406. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  407. package/cjs/lib/events/keyListener.js +9 -11
  408. package/cjs/lib/events/keyListener.js.map +1 -1
  409. package/cjs/lib/events/keyboard/identifiers.js +4 -2
  410. package/cjs/lib/events/keyboard/identifiers.js.map +1 -1
  411. package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +50 -0
  412. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +4 -0
  413. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.js +5 -0
  414. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.js.map +1 -0
  415. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +6 -0
  416. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +12 -0
  417. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -0
  418. package/cjs/lib/featureFlagsContext/index.d.ts +2 -0
  419. package/cjs/lib/featureFlagsContext/index.js +3 -0
  420. package/cjs/lib/featureFlagsContext/index.js.map +1 -0
  421. package/cjs/lib/forwardRefAndName.d.ts +1 -1
  422. package/cjs/lib/forwardRefAndName.js +4 -1
  423. package/cjs/lib/forwardRefAndName.js.map +1 -1
  424. package/cjs/lib/listenFocusOutside.js +14 -15
  425. package/cjs/lib/listenFocusOutside.js.map +1 -1
  426. package/cjs/lib/needsPolyfillPlaceholder.js +5 -3
  427. package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -1
  428. package/cjs/lib/net/fetch.js +24 -18
  429. package/cjs/lib/net/fetch.js.map +1 -1
  430. package/cjs/lib/rootNode/getRootNode.js +5 -6
  431. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  432. package/cjs/lib/taskWithDelayAndMinimalDuration.js +5 -5
  433. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  434. package/cjs/lib/theming/Emotion.js +4 -2
  435. package/cjs/lib/theming/Emotion.js.map +1 -1
  436. package/cjs/lib/types/props.d.ts +1 -0
  437. package/cjs/lib/types/props.js +1 -0
  438. package/cjs/lib/types/props.js.map +1 -0
  439. package/cjs/lib/utils.js +4 -5
  440. package/cjs/lib/utils.js.map +1 -1
  441. package/cjs/typings/global.d.ts +3 -4
  442. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  443. package/components/Autocomplete/Autocomplete.d.ts +2 -1
  444. package/components/Button/Button/Button.js +11 -3
  445. package/components/Button/Button/Button.js.map +1 -1
  446. package/components/Button/Button.d.ts +7 -2
  447. package/components/Button/Button.md +68 -0
  448. package/components/Button/Button.mixins/Button.mixins.js +1 -1
  449. package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
  450. package/components/Button/Button.styles/Button.styles.js +6 -2
  451. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  452. package/components/Button/Button.styles.d.ts +2 -1
  453. package/components/Button/ButtonArrow/ButtonArrow.js +1 -1
  454. package/components/Button/ButtonArrow/ButtonArrow.js.map +1 -1
  455. package/components/Button/ButtonIcon/ButtonIcon.js +2 -4
  456. package/components/Button/ButtonIcon/ButtonIcon.js.map +1 -1
  457. package/components/Button/ButtonIcon.d.ts +3 -2
  458. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js +1 -0
  459. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js.map +1 -1
  460. package/components/Calendar/Calendar/Calendar.js +7 -6
  461. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  462. package/components/Checkbox/Checkbox/Checkbox.js +14 -5
  463. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  464. package/components/Checkbox/Checkbox.d.ts +6 -2
  465. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  466. package/components/ComboBox/ComboBox.d.ts +2 -1
  467. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +2 -1
  468. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  469. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +4 -1
  470. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  471. package/components/DateInput/DateInput/DateInput.js +23 -9
  472. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  473. package/components/DateInput/DateInput.d.ts +2 -1
  474. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +10 -10
  475. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
  476. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  477. package/components/DatePicker/DatePicker.d.ts +2 -1
  478. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  479. package/components/Dropdown/Dropdown.d.ts +3 -2
  480. package/components/Dropdown/getDropdownTheme/getDropdownTheme.js +21 -22
  481. package/components/Dropdown/getDropdownTheme/getDropdownTheme.js.map +1 -1
  482. package/components/FileUploader/FileUploader/FileUploader.js +9 -5
  483. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  484. package/components/FileUploader/FileUploader.d.ts +6 -2
  485. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +2 -2
  486. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  487. package/components/FileUploader/FileUploader.styles.d.ts +1 -1
  488. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  489. package/components/FxInput/FxInputRestoreBtn/FxInputRestoreBtn.js.map +1 -1
  490. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +25 -29
  491. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  492. package/components/GlobalLoader/GlobalLoader.d.ts +1 -2
  493. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +2 -3
  494. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  495. package/components/GlobalLoader/GlobalLoaderView.d.ts +1 -2
  496. package/components/Hint/Hint/Hint.js +5 -5
  497. package/components/Hint/Hint/Hint.js.map +1 -1
  498. package/components/Input/Input/Input.js +18 -11
  499. package/components/Input/Input/Input.js.map +1 -1
  500. package/components/Input/Input.d.ts +6 -2
  501. package/components/Input/InputLayout/InputLayout.d.ts +1 -1
  502. package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js +2 -1
  503. package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js.map +1 -1
  504. package/components/Input/InputLayout/InputLayoutAside/InputLayoutAside.js +1 -2
  505. package/components/Input/InputLayout/InputLayoutAside/InputLayoutAside.js.map +1 -1
  506. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
  507. package/components/Input/InputLayout/InputLayoutContext/InputLayoutContext.js.map +1 -1
  508. package/components/Input/InputLayout/InputLayoutContext.d.ts +2 -2
  509. package/components/Kebab/Kebab/Kebab.js +2 -1
  510. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  511. package/components/Kebab/Kebab.d.ts +2 -1
  512. package/components/Link/Link/Link.js +8 -6
  513. package/components/Link/Link/Link.js.map +1 -1
  514. package/components/Link/Link.d.ts +6 -1
  515. package/components/Link/Link.md +69 -0
  516. package/components/Link/Link.styles/Link.styles.js +25 -22
  517. package/components/Link/Link.styles/Link.styles.js.map +1 -1
  518. package/components/Link/Link.styles.d.ts +1 -0
  519. package/components/Loader/Loader/Loader.js +9 -6
  520. package/components/Loader/Loader/Loader.js.map +1 -1
  521. package/components/MenuFooter/MenuFooter/MenuFooter.js +4 -0
  522. package/components/MenuFooter/MenuFooter/MenuFooter.js.map +1 -1
  523. package/components/MenuFooter/MenuFooter.d.ts +6 -2
  524. package/components/MenuHeader/MenuHeader/MenuHeader.js +4 -0
  525. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  526. package/components/MenuHeader/MenuHeader.d.ts +6 -2
  527. package/components/MenuItem/MenuItem/MenuItem.js +7 -2
  528. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  529. package/components/MenuItem/MenuItem.d.ts +6 -2
  530. package/components/MiniModal/MiniModal/MiniModal.js +38 -0
  531. package/components/MiniModal/MiniModal/MiniModal.js.map +1 -0
  532. package/components/MiniModal/MiniModal/package.json +6 -0
  533. package/components/MiniModal/MiniModal.d.ts +18 -0
  534. package/components/MiniModal/MiniModal.md +233 -0
  535. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +41 -0
  536. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -0
  537. package/components/MiniModal/MiniModal.styles/package.json +6 -0
  538. package/components/MiniModal/MiniModal.styles.d.ts +14 -0
  539. package/components/MiniModal/MiniModalBody/MiniModalBody.js +23 -0
  540. package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -0
  541. package/components/MiniModal/MiniModalBody/package.json +6 -0
  542. package/components/MiniModal/MiniModalBody.d.ts +7 -0
  543. package/components/MiniModal/MiniModalFooter/MiniModalFooter.js +35 -0
  544. package/components/MiniModal/MiniModalFooter/MiniModalFooter.js.map +1 -0
  545. package/components/MiniModal/MiniModalFooter/package.json +6 -0
  546. package/components/MiniModal/MiniModalFooter.d.ts +18 -0
  547. package/components/MiniModal/MiniModalHeader/MiniModalHeader.js +33 -0
  548. package/components/MiniModal/MiniModalHeader/MiniModalHeader.js.map +1 -0
  549. package/components/MiniModal/MiniModalHeader/package.json +6 -0
  550. package/components/MiniModal/MiniModalHeader.d.ts +17 -0
  551. package/components/MiniModal/MiniModalIndent/MiniModalIndent.js +27 -0
  552. package/components/MiniModal/MiniModalIndent/MiniModalIndent.js.map +1 -0
  553. package/components/MiniModal/MiniModalIndent/package.json +6 -0
  554. package/components/MiniModal/MiniModalIndent.d.ts +6 -0
  555. package/components/MiniModal/getMiniModalTheme/getMiniModalTheme.js +23 -0
  556. package/components/MiniModal/getMiniModalTheme/getMiniModalTheme.js.map +1 -0
  557. package/components/MiniModal/getMiniModalTheme/package.json +6 -0
  558. package/components/MiniModal/getMiniModalTheme.d.ts +16 -0
  559. package/components/MiniModal/index/index.js +5 -0
  560. package/components/MiniModal/index/index.js.map +1 -0
  561. package/components/MiniModal/index/package.json +6 -0
  562. package/components/MiniModal/index.d.ts +5 -0
  563. package/components/MiniModal/package.json +6 -0
  564. package/components/Modal/Modal/Modal.js +18 -14
  565. package/components/Modal/Modal/Modal.js.map +1 -1
  566. package/components/Modal/Modal.d.ts +6 -0
  567. package/components/Modal/Modal.styles/Modal.styles.js +44 -37
  568. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  569. package/components/Modal/Modal.styles.d.ts +5 -0
  570. package/components/Modal/ModalClose/ModalClose.js +2 -1
  571. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  572. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  573. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  574. package/components/Modal/ModalSeparator/ModalSeparator.js +6 -0
  575. package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
  576. package/components/Modal/ModalSeparator.d.ts +5 -0
  577. package/components/Modal/getModalTheme/getModalTheme.js +8 -3
  578. package/components/Modal/getModalTheme/getModalTheme.js.map +1 -1
  579. package/components/Modal/getModalTheme.d.ts +2 -2
  580. package/components/Paging/NavigationHelper/NavigationHelper.js +2 -1
  581. package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
  582. package/components/Paging/Paging/Paging.js +16 -11
  583. package/components/Paging/Paging/Paging.js.map +1 -1
  584. package/components/Paging/Paging.styles/Paging.styles.js +3 -6
  585. package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
  586. package/components/Paging/Paging.styles.d.ts +0 -1
  587. package/components/PasswordInput/PasswordInput/PasswordInput.js +4 -2
  588. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  589. package/components/Radio/Radio/Radio.js +6 -1
  590. package/components/Radio/Radio/Radio.js.map +1 -1
  591. package/components/Radio/Radio.d.ts +6 -2
  592. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +5 -6
  593. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  594. package/components/ScrollContainer/ScrollBar/ScrollBar.js +16 -50
  595. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  596. package/components/ScrollContainer/ScrollBar.d.ts +4 -7
  597. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +98 -22
  598. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  599. package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js +1 -2
  600. package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js.map +1 -1
  601. package/components/ScrollContainer/ScrollContainer.d.ts +19 -3
  602. package/components/ScrollContainer/ScrollContainer.md +29 -2
  603. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +6 -18
  604. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  605. package/components/ScrollContainer/ScrollContainer.styles.d.ts +0 -4
  606. package/components/Select/Select/Select.js +9 -8
  607. package/components/Select/Select/Select.js.map +1 -1
  608. package/components/Select/Select.d.ts +5 -3
  609. package/components/SidePage/SidePage/SidePage.js +8 -7
  610. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  611. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js +2 -1
  612. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js.map +1 -1
  613. package/components/SidePage/SidePageHeader/SidePageHeader.js +6 -4
  614. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  615. package/components/SidePage/SidePageHeader.d.ts +1 -0
  616. package/components/SingleToast/SingleToast/SingleToast.js +53 -0
  617. package/components/SingleToast/SingleToast/SingleToast.js.map +1 -0
  618. package/components/SingleToast/SingleToast/package.json +6 -0
  619. package/components/SingleToast/SingleToast.d.ts +11 -0
  620. package/components/SingleToast/SingleToast.md +35 -0
  621. package/components/SingleToast/index/index.js +1 -0
  622. package/components/SingleToast/index/index.js.map +1 -0
  623. package/components/SingleToast/index/package.json +6 -0
  624. package/components/SingleToast/index.d.ts +1 -0
  625. package/components/SingleToast/package.json +6 -0
  626. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +5 -2
  627. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
  628. package/components/Sticky/Sticky/Sticky.js +10 -6
  629. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  630. package/components/Switcher/Switcher/Switcher.js +4 -0
  631. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  632. package/components/Switcher/Switcher.d.ts +7 -3
  633. package/components/Tabs/Indicator/Indicator.js +2 -1
  634. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  635. package/components/Tabs/Tab/Tab.js +7 -14
  636. package/components/Tabs/Tab/Tab.js.map +1 -1
  637. package/components/Tabs/Tab.d.ts +16 -32
  638. package/components/Tabs/Tab.md +71 -0
  639. package/components/Tabs/Tab.styles/Tab.styles.js.map +1 -1
  640. package/components/Tabs/Tabs/Tabs.js +3 -4
  641. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  642. package/components/Tabs/Tabs.d.ts +13 -18
  643. package/components/Tabs/Tabs.md +7 -22
  644. package/components/Tabs/Tabs.styles/Tabs.styles.js.map +1 -1
  645. package/components/Tabs/TabsContext/TabsContext.js.map +1 -1
  646. package/components/Tabs/TabsContext.d.ts +3 -2
  647. package/components/Tabs/helpers/helpers.js +3 -0
  648. package/components/Tabs/helpers/helpers.js.map +1 -1
  649. package/components/Tabs/helpers.d.ts +5 -5
  650. package/components/Textarea/Textarea/Textarea.js +25 -13
  651. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  652. package/components/Textarea/Textarea.d.ts +6 -2
  653. package/components/Textarea/TextareaCounter/TextareaCounter.js +2 -3
  654. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  655. package/components/Textarea/TextareaCounter.d.ts +4 -3
  656. package/components/Textarea/TextareaHelpers/TextareaHelpers.js +6 -1
  657. package/components/Textarea/TextareaHelpers/TextareaHelpers.js.map +1 -1
  658. package/components/Textarea/TextareaHelpers.d.ts +1 -1
  659. package/components/Toast/Toast/Toast.js +16 -7
  660. package/components/Toast/Toast/Toast.js.map +1 -1
  661. package/components/Toast/Toast.d.ts +10 -3
  662. package/components/Toast/Toast.md +0 -105
  663. package/components/Toast/ToastStatic/ToastStatic.js +4 -4
  664. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  665. package/components/Toggle/Toggle/Toggle.js +4 -0
  666. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  667. package/components/Toggle/Toggle.d.ts +6 -2
  668. package/components/TokenInput/TokenInput/TokenInput.js +51 -11
  669. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  670. package/components/TokenInput/TokenInput.d.ts +2 -0
  671. package/components/Tooltip/Tooltip/Tooltip.js +5 -5
  672. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  673. package/hooks/useDrop/useDrop.js +3 -2
  674. package/hooks/useDrop/useDrop.js.map +1 -1
  675. package/index.d.ts +4 -0
  676. package/index.js +4 -0
  677. package/index.js.map +1 -1
  678. package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js +2 -1
  679. package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  680. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  681. package/internal/CustomComboBox/ComboBoxMenu.d.ts +2 -1
  682. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +21 -32
  683. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  684. package/internal/CustomComboBox/ComboBoxView.d.ts +6 -9
  685. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +11 -6
  686. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  687. package/internal/CustomComboBox/CustomComboBox.d.ts +4 -2
  688. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +7 -2
  689. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  690. package/internal/DateSelect/DateSelect/DateSelect.js +19 -20
  691. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  692. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +18 -17
  693. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  694. package/internal/DropdownContainer/DropdownContainer.d.ts +0 -1
  695. package/internal/DropdownContainer/getManualPosition/getManualPosition.js +4 -3
  696. package/internal/DropdownContainer/getManualPosition/getManualPosition.js.map +1 -1
  697. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +3 -2
  698. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  699. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -3
  700. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon/FileUploaderFileStatusIcon.js.map +1 -1
  701. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.d.ts +2 -2
  702. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  703. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +2 -2
  704. package/internal/FileUploaderControl/hooks/useFileUploaderSize/useFileUploaderSize.js.map +1 -1
  705. package/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -2
  706. package/internal/FocusTrap/FocusTrap/FocusTrap.js +8 -3
  707. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  708. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +25 -26
  709. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  710. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +2 -1
  711. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  712. package/internal/InputLikeText/InputLikeText/InputLikeText.js +28 -19
  713. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  714. package/internal/InternalMenu/InternalMenu/InternalMenu.js +9 -9
  715. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  716. package/internal/Menu/Menu/Menu.js +8 -8
  717. package/internal/Menu/Menu/Menu.js.map +1 -1
  718. package/internal/MenuMessage/MenuMessage/MenuMessage.js.map +1 -1
  719. package/internal/MenuMessage/MenuMessage.d.ts +3 -3
  720. package/internal/Popup/Popup/Popup.js +11 -13
  721. package/internal/Popup/Popup/Popup.js.map +1 -1
  722. package/internal/Popup/PopupHelper/PopupHelper.js +8 -5
  723. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  724. package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -2
  725. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  726. package/internal/RenderContainer/RenderContainer/RenderContainer.js +17 -10
  727. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  728. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +2 -3
  729. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  730. package/internal/RenderLayer/RenderLayer/RenderLayer.js +10 -5
  731. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  732. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
  733. package/internal/ThemePlayground/SizesGroup.d.ts +2 -1
  734. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  735. package/internal/ThemePlayground/constants/constants.js +3 -0
  736. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  737. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +5 -2
  738. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  739. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  740. package/internal/ZIndex/ZIndex/ZIndex.js +2 -2
  741. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  742. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +2 -2
  743. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  744. package/internal/icons/16px/index.d.ts +19 -19
  745. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.d.ts +1 -1
  746. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.d.ts +1 -1
  747. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.d.ts +1 -1
  748. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.d.ts +1 -1
  749. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.d.ts +1 -1
  750. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.d.ts +1 -1
  751. package/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.d.ts +1 -1
  752. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.d.ts +1 -1
  753. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.d.ts +1 -1
  754. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.d.ts +1 -1
  755. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.d.ts +1 -1
  756. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.d.ts +1 -1
  757. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.d.ts +1 -1
  758. package/internal/icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular.d.ts +1 -1
  759. package/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.d.ts +1 -1
  760. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.d.ts +1 -1
  761. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.d.ts +1 -1
  762. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.d.ts +1 -1
  763. package/internal/icons2022/BaseIcon/BaseIcon.js +3 -6
  764. package/internal/icons2022/BaseIcon/BaseIcon.js.map +1 -1
  765. package/internal/icons2022/BaseIcon.d.ts +1 -1
  766. package/internal/icons2022/BaseIcon.styles/BaseIcon.styles.js +11 -0
  767. package/internal/icons2022/BaseIcon.styles/BaseIcon.styles.js.map +1 -0
  768. package/internal/icons2022/BaseIcon.styles/package.json +6 -0
  769. package/internal/icons2022/BaseIcon.styles.d.ts +3 -0
  770. package/internal/icons2022/CalendarIcon/CalendarIcon16Light.d.ts +1 -1
  771. package/internal/icons2022/CalendarIcon/CalendarIcon20Light.d.ts +1 -1
  772. package/internal/icons2022/CalendarIcon/CalendarIcon24Regular.d.ts +1 -1
  773. package/internal/icons2022/CheckAIcon/CheckAIcon16Light.d.ts +1 -1
  774. package/internal/icons2022/CheckAIcon/CheckAIcon16Regular.d.ts +1 -1
  775. package/internal/icons2022/CheckAIcon/CheckAIcon16Solid.d.ts +1 -1
  776. package/internal/icons2022/CheckAIcon/CheckAIcon20Light.d.ts +1 -1
  777. package/internal/icons2022/CheckAIcon/CheckAIcon20Solid.d.ts +1 -1
  778. package/internal/icons2022/CheckAIcon/CheckAIcon24Regular.d.ts +1 -1
  779. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.d.ts +1 -1
  780. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.d.ts +1 -1
  781. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.d.ts +1 -1
  782. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.d.ts +1 -1
  783. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.d.ts +1 -1
  784. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.d.ts +1 -1
  785. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/InfoCircleIcon64Regular.js +18 -0
  786. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/InfoCircleIcon64Regular.js.map +1 -0
  787. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/package.json +6 -0
  788. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.d.ts +2 -0
  789. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.d.ts +1 -1
  790. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.d.ts +1 -1
  791. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.d.ts +1 -1
  792. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Light.d.ts +1 -1
  793. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Regular.d.ts +1 -1
  794. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon20Light.d.ts +1 -1
  795. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon24Regular.d.ts +1 -1
  796. package/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.d.ts +1 -1
  797. package/internal/icons2022/NetUploadIcon/NetUploadIcon20Light.d.ts +1 -1
  798. package/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.d.ts +1 -1
  799. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.d.ts +1 -1
  800. package/internal/icons2022/SearchLoupeIcon/SearchLoupeIcon16Regular.d.ts +1 -1
  801. package/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.d.ts +1 -1
  802. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.d.ts +1 -1
  803. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.d.ts +1 -1
  804. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.d.ts +1 -1
  805. package/internal/icons2022/XIcon/XIcon16Light.d.ts +1 -1
  806. package/internal/icons2022/XIcon/XIcon16Regular.d.ts +1 -1
  807. package/internal/icons2022/XIcon/XIcon20Light.d.ts +1 -1
  808. package/internal/icons2022/XIcon/XIcon20Regular.d.ts +1 -1
  809. package/internal/icons2022/XIcon/XIcon24Regular.d.ts +1 -1
  810. package/internal/themes/DefaultTheme/DefaultTheme.js +146 -6
  811. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  812. package/internal/themes/DefaultTheme.d.ts +46 -2
  813. package/internal/themes/Theme2022/Theme2022.js +18 -4
  814. package/internal/themes/Theme2022/Theme2022.js.map +1 -1
  815. package/internal/themes/Theme2022.d.ts +4 -3
  816. package/internal/themes/Theme2022Dark/Theme2022Dark.js +14 -4
  817. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -1
  818. package/internal/themes/Theme2022Dark.d.ts +5 -4
  819. package/lib/LayoutEvents/LayoutEvents.js +5 -4
  820. package/lib/LayoutEvents/LayoutEvents.js.map +1 -1
  821. package/lib/ModalStack/ModalStack.js +2 -2
  822. package/lib/ModalStack/ModalStack.js.map +1 -1
  823. package/lib/SSRSafe/SSRSafe.js +3 -35
  824. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  825. package/lib/SSRSafe.d.ts +1 -6
  826. package/lib/Upgrades/Upgrades.js +3 -1
  827. package/lib/Upgrades/Upgrades.js.map +1 -1
  828. package/lib/Upgrades.d.ts +1 -0
  829. package/lib/animation/index/index.js +6 -3
  830. package/lib/animation/index/index.js.map +1 -1
  831. package/lib/chars/chars.js +1 -1
  832. package/lib/chars/chars.js.map +1 -1
  833. package/lib/chars.d.ts +1 -1
  834. package/lib/client/client.js +7 -6
  835. package/lib/client/client.js.map +1 -1
  836. package/lib/client.d.ts +1 -7
  837. package/lib/dom/getScrollWidth/getScrollWidth.js +4 -5
  838. package/lib/dom/getScrollWidth/getScrollWidth.js.map +1 -1
  839. package/lib/dom/tabbableHelpers/tabbableHelpers.js +3 -2
  840. package/lib/dom/tabbableHelpers/tabbableHelpers.js.map +1 -1
  841. package/lib/dom/tabbableHelpers.d.ts +2 -1
  842. package/lib/events/MouseDrag/MouseDrag.js +15 -11
  843. package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
  844. package/lib/events/fixClickFocusIE/fixClickFocusIE.js +3 -2
  845. package/lib/events/fixClickFocusIE/fixClickFocusIE.js.map +1 -1
  846. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js +7 -2
  847. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  848. package/lib/events/keyListener/keyListener.js +9 -12
  849. package/lib/events/keyListener/keyListener.js.map +1 -1
  850. package/lib/events/keyboard/identifiers/identifiers.js +2 -1
  851. package/lib/events/keyboard/identifiers/identifiers.js.map +1 -1
  852. package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +50 -0
  853. package/lib/featureFlagsContext/FeatureFlagsHelpers/FeatureFlagsHelpers.js +5 -0
  854. package/lib/featureFlagsContext/FeatureFlagsHelpers/FeatureFlagsHelpers.js.map +1 -0
  855. package/lib/featureFlagsContext/FeatureFlagsHelpers/package.json +6 -0
  856. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +4 -0
  857. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +6 -0
  858. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -0
  859. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/package.json +6 -0
  860. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +6 -0
  861. package/lib/featureFlagsContext/index/index.js +2 -0
  862. package/lib/featureFlagsContext/index/index.js.map +1 -0
  863. package/lib/featureFlagsContext/index/package.json +6 -0
  864. package/lib/featureFlagsContext/index.d.ts +2 -0
  865. package/lib/featureFlagsContext/package.json +6 -0
  866. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  867. package/lib/forwardRefAndName.d.ts +1 -1
  868. package/lib/listenFocusOutside/listenFocusOutside.js +18 -10
  869. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  870. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +4 -3
  871. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -1
  872. package/lib/net/fetch/fetch.js +29 -21
  873. package/lib/net/fetch/fetch.js.map +1 -1
  874. package/lib/rootNode/getRootNode/getRootNode.js +5 -6
  875. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  876. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +5 -4
  877. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  878. package/lib/theming/Emotion/Emotion.js +6 -1
  879. package/lib/theming/Emotion/Emotion.js.map +1 -1
  880. package/lib/types/props/package.json +6 -0
  881. package/lib/types/props/props.js +1 -0
  882. package/lib/types/props/props.js.map +1 -0
  883. package/lib/types/props.d.ts +1 -0
  884. package/lib/utils/utils.js +4 -5
  885. package/lib/utils/utils.js.map +1 -1
  886. package/package.json +4 -4
  887. package/typings/global.d.ts +3 -4
@@ -11,8 +11,8 @@ var _class, _class2, _temp; // TODO: Enable this rule in functional components.
11
11
 
12
12
  import invariant from 'invariant';
13
13
  import React from 'react';
14
- import raf from 'raf';
15
14
  import warning from 'warning';
15
+ import { globalObject } from '@skbkontur/global-object';
16
16
  import { isEdge, isIE11 } from "../../../lib/client";
17
17
  import { isKeyBackspace, isKeyDelete, someKeys } from "../../../lib/events/keyboard/identifiers";
18
18
  import { needsPolyfillPlaceholder } from "../../../lib/needsPolyfillPlaceholder";
@@ -23,10 +23,15 @@ import { cx } from "../../../lib/theming/Emotion";
23
23
  import { rootNode } from "../../../lib/rootNode";
24
24
  import { createPropsGetter } from "../../../lib/createPropsGetter";
25
25
  import { isTheme2022 } from "../../../lib/theming/ThemeHelpers";
26
+ import { isFunction } from "../../../lib/utils";
26
27
  import { styles } from "../Input.styles";
27
28
  import { InputLayout } from "../InputLayout/InputLayout";
28
29
  import { PolyfillPlaceholder } from "../InputLayout/PolyfillPlaceholder";
29
30
  export var inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'];
31
+ /**
32
+ * @deprecated use SizeProp
33
+ */
34
+
30
35
  export var selectionAllowedTypes = ['text', 'password', 'tel', 'search', 'url'];
31
36
  export var selectionErrorMessage = function selectionErrorMessage(type, allowedTypes) {
32
37
  if (allowedTypes === void 0) {
@@ -76,7 +81,6 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
76
81
  focused: false
77
82
  };
78
83
  _this.selectAllId = null;
79
- _this.blinkTimeout = 0;
80
84
  _this.input = null;
81
85
 
82
86
  _this.selectAll = function () {
@@ -86,19 +90,21 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
86
90
  };
87
91
 
88
92
  _this.delaySelectAll = function () {
89
- return _this.selectAllId = raf(_this.selectAll);
93
+ var _globalObject$request;
94
+
95
+ return _this.selectAllId = (_globalObject$request = globalObject.requestAnimationFrame == null ? void 0 : globalObject.requestAnimationFrame(_this.selectAll)) != null ? _globalObject$request : null;
90
96
  };
91
97
 
92
98
  _this.cancelDelayedSelectAll = function () {
93
99
  if (_this.selectAllId) {
94
- raf.cancel(_this.selectAllId);
100
+ globalObject.cancelAnimationFrame == null ? void 0 : globalObject.cancelAnimationFrame(_this.selectAllId);
95
101
  _this.selectAllId = null;
96
102
  }
97
103
  };
98
104
 
99
105
  _this.cancelBlink = function (callback) {
100
106
  if (_this.blinkTimeout) {
101
- clearTimeout(_this.blinkTimeout);
107
+ globalObject.clearTimeout(_this.blinkTimeout);
102
108
  _this.blinkTimeout = 0;
103
109
 
104
110
  if (_this.state.blinking) {
@@ -363,7 +369,7 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
363
369
 
364
370
  _proto.componentWillUnmount = function componentWillUnmount() {
365
371
  if (this.blinkTimeout) {
366
- clearTimeout(this.blinkTimeout);
372
+ globalObject.clearTimeout(this.blinkTimeout);
367
373
  }
368
374
 
369
375
  this.cancelDelayedSelectAll();
@@ -416,7 +422,7 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
416
422
  this.setState({
417
423
  blinking: true
418
424
  }, function () {
419
- _this2.blinkTimeout = window.setTimeout(_this2.cancelBlink, 150);
425
+ _this2.blinkTimeout = globalObject.setTimeout(_this2.cancelBlink, 150);
420
426
  });
421
427
  }
422
428
  /**
@@ -427,7 +433,8 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
427
433
  ;
428
434
 
429
435
  _proto.setSelectionRange = function setSelectionRange(start, end) {
430
- var _this$props$value,
436
+ var _globalObject$documen,
437
+ _this$props$value,
431
438
  _this3 = this; // https://github.com/facebook/react/issues/7769
432
439
  // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange
433
440
 
@@ -441,12 +448,12 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
441
448
  throw new Error('Cannot call "setSelectionRange" on unmounted Input');
442
449
  }
443
450
 
444
- if (document.activeElement !== this.input) {
451
+ if (((_globalObject$documen = globalObject.document) == null ? void 0 : _globalObject$documen.activeElement) !== this.input) {
445
452
  this.focus();
446
453
  }
447
454
 
448
455
  if (this.props.mask && this.props.value && ((_this$props$value = this.props.value) == null ? void 0 : _this$props$value.length) < this.props.mask.length) {
449
- setTimeout(function () {
456
+ globalObject.setTimeout(function () {
450
457
  var _this3$input;
451
458
 
452
459
  (_this3$input = _this3.input) == null ? void 0 : _this3$input.setSelectionRange(start, end);
@@ -515,7 +522,7 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
515
522
  }
516
523
 
517
524
  var disabled = this.props.disabled;
518
- var iconNode = icon instanceof Function ? icon() : icon;
525
+ var iconNode = isFunction(icon) ? icon() : icon;
519
526
  return /*#__PURE__*/React.createElement("span", {
520
527
  className: cx(styles.icon(), sizeClassName, styles.useDefaultColor(this.theme), (_cx5 = {}, _cx5[styles.iconFocus(this.theme)] = this.state.focused, _cx5[styles.iconDisabled()] = disabled, _cx5))
521
528
  }, iconNode);
@@ -1 +1 @@
1
- {"version":3,"sources":["Input.tsx"],"names":["invariant","React","raf","warning","isEdge","isIE11","isKeyBackspace","isKeyDelete","someKeys","needsPolyfillPlaceholder","MaskedInput","ThemeContext","CommonWrapper","cx","rootNode","createPropsGetter","isTheme2022","styles","InputLayout","PolyfillPlaceholder","inputTypes","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","maskForbiddenTypes","maskAllowedTypes","filter","includes","maskErrorMessage","InputDataTids","root","Input","getProps","defaultProps","state","blinking","focused","selectAllId","blinkTimeout","input","selectAll","setSelectionRange","value","length","delaySelectAll","cancelDelayedSelectAll","cancel","cancelBlink","callback","clearTimeout","setState","renderMain","props","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","leftIcon","rightIcon","borderless","align","mask","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","disabled","onUnexpectedInput","prefix","suffix","formatChars","corners","ariaDescribedby","ariaControls","ariaLabel","rest","labelProps","className","theme","getSizeClassName","focus","hovering","blink","focusFallback","warningFallback","errorFallback","style","inputProps","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","ref","refInput","isMaskVisible","undefined","canBeUsedWithMask","renderMaskedInput","createElement","Boolean","defaultValue","sideContainer","renderLeftIcon","renderPrefix","wrapper","renderPlaceholder","rightContainer","renderSuffix","renderRightIcon","element","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","prefixDisabled","suffixDisabled","outputMaskError","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","blur","getNode","offsetWidth","window","setTimeout","start","end","Error","document","activeElement","render","setRootNode","getIconSizeClassname","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","renderIcon","icon","sizeClassName","iconNode","Function","useDefaultColor","iconFocus","iconDisabled","placeholderDisabled","placeholderFocus","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport invariant from 'invariant';\nimport React, { AriaAttributes, HTMLAttributes } from 'react';\nimport raf from 'raf';\nimport warning from 'warning';\n\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { MaskedInput } from '../../internal/MaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\nimport { PolyfillPlaceholder } from './InputLayout/PolyfillPlaceholder';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\nexport type InputSize = 'small' | 'medium' | 'large';\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type InputType = typeof inputTypes[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const maskForbiddenTypes: InputType[] = ['number', 'date', 'time'];\nexport const maskAllowedTypes: InputType[] = inputTypes.filter((type) => {\n return !maskForbiddenTypes.includes(type);\n});\nexport const maskErrorMessage = (type: InputType, allowedTypes: InputType[] = maskAllowedTypes) => {\n return `<Input />. Prop \"mask\" does not support type \"${type}\". Supported types: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}.`;\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Иконка слева\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n leftIcon?: InputIconType;\n /**\n * Иконка справа\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n rightIcon?: InputIconType;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Режим прозрачной рамки */\n borderless?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n /** Паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url` */\n mask?: Nullable<string>;\n /** Символ маски */\n maskChar?: Nullable<string>;\n /**\n * Словарь символов-регулярок для задания маски\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }\n */\n formatChars?: Record<string, string>;\n /** Показывать символы маски */\n alwaysShowMask?: boolean;\n /** Размер */\n size?: InputSize;\n /** onValueChange */\n onValueChange?: (value: string) => void;\n /** Вызывается на label */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Тип. Возможные значения: 'password' | 'text' | 'number' | 'tel' | 'search' | 'time' | 'date' | 'url' | 'email'\n * */\n type?: InputType;\n /** Значение */\n value?: string;\n capture?: boolean;\n\n /**\n * Префикс\n * `ReactNode` перед значением, но после иконки\n */\n prefix?: React.ReactNode;\n /**\n * Суффикс\n * `ReactNode` после значения, но перед правой иконкой\n */\n suffix?: React.ReactNode;\n /** Выделять введенное значение при фокусе. Работает с типами `text`, `password`, `tel`, `search`, `url`. [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange) */\n selectAllOnFocus?: boolean;\n /**\n * Обработчик неправильного ввода.\n * По-умолчанию, инпут вспыхивает синим.\n * Если передан - вызывается переданный обработчик,\n * в таком случае вспыхивание можно вызвать\n * публичным методом инстанса `blink()`.\n *\n * @param value значение инпута.\n */\n onUnexpectedInput?: (value: string) => void;\n /** @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n }\n > {}\n\nexport interface InputState {\n blinking: boolean;\n focused: boolean;\n needsPolyfillPlaceholder: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'size' | 'type'>>;\n\n/**\n * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.\n * Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`\n */\n@rootNode\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n type: 'text',\n };\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n blinking: false,\n focused: false,\n };\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n private blinkTimeout = 0;\n private input: HTMLInputElement | null = null;\n private setRootNode!: TSetRootNode;\n\n private outputMaskError() {\n warning(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));\n }\n\n public componentDidMount() {\n this.outputMaskError();\n }\n\n public componentDidUpdate(prevProps: Readonly<InputProps>) {\n if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {\n this.outputMaskError();\n }\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n this.cancelDelayedSelectAll();\n }\n\n /**\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input.blur();\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.blinkTimeout) {\n this.cancelBlink(() => {\n // trigger reflow to restart animation\n // @see https://css-tricks.com/restart-css-animation/#article-header-id-0\n void (this.input && this.input.offsetWidth);\n this.blink();\n });\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(this.cancelBlink, 150);\n });\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n // https://github.com/facebook/react/issues/7769\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n if (!selectionAllowedTypes.includes(this.getProps().type)) {\n warning(false, selectionErrorMessage(this.getProps().type));\n\n return;\n }\n\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (document.activeElement !== this.input) {\n this.focus();\n }\n if (this.props.mask && this.props.value && this.props.value?.length < this.props.mask.length) {\n setTimeout(() => {\n this.input?.setSelectionRange(start, end);\n }, 150);\n } else {\n this.input?.setSelectionRange(start, end);\n }\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private get canBeUsedWithMask() {\n return maskForbiddenTypes.includes(this.getProps().type);\n }\n\n /**\n * Работает с типами `text`, `password`, `tel`, `search`, `url`\n * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)\n * @public\n */\n public selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private delaySelectAll = (): number => (this.selectAllId = raf(this.selectAll));\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n raf.cancel(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private cancelBlink = (callback?: () => void): void => {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n this.blinkTimeout = 0;\n if (this.state.blinking) {\n this.setState({ blinking: false }, callback);\n return;\n }\n }\n if (callback) {\n callback();\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n role,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n corners,\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n\n const { blinking, focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused && !warning && !error,\n [styles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [styles.blink(this.theme)]: blinking,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n 'aria-controls': ariaControls,\n style: { width, ...corners },\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n };\n\n const inputProps = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n role,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type,\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n };\n\n const input =\n mask && !this.canBeUsedWithMask\n ? this.renderMaskedInput(inputProps, mask)\n : React.createElement('input', inputProps);\n\n if (isTheme2022(this.theme)) {\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size }}\n >\n {input}\n {this.state.needsPolyfillPlaceholder && (\n <PolyfillPlaceholder\n isMaskVisible={this.isMaskVisible}\n value={value}\n defaultValue={this.props.defaultValue}\n align={align}\n >\n {placeholder}\n </PolyfillPlaceholder>\n )}\n </InputLayout>\n );\n }\n\n return (\n <label data-tid={InputDataTids.root} {...labelProps}>\n <span className={styles.sideContainer()}>\n {this.renderLeftIcon()}\n {this.renderPrefix()}\n </span>\n <span className={styles.wrapper()}>\n {input}\n {this.renderPlaceholder()}\n </span>\n <span className={cx(styles.sideContainer(), styles.rightContainer())}>\n {this.renderSuffix()}\n {this.renderRightIcon()}\n </span>\n </label>\n );\n };\n\n private renderMaskedInput(\n inputProps: React.InputHTMLAttributes<HTMLInputElement> & {\n capture?: boolean;\n },\n mask: string,\n ) {\n return (\n <MaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getIconSizeClassname(right = false) {\n switch (this.getProps().size) {\n case 'large':\n return right ? styles.rightIconLarge(this.theme) : styles.leftIconLarge(this.theme);\n case 'medium':\n return right ? styles.rightIconMedium(this.theme) : styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? styles.rightIconSmall(this.theme) : styles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon() {\n return this.renderIcon(this.props.leftIcon, this.getIconSizeClassname());\n }\n\n private renderRightIcon() {\n return this.renderIcon(this.props.rightIcon, this.getIconSizeClassname(true));\n }\n\n private renderIcon(icon: InputIconType, sizeClassName: string) {\n if (!icon) {\n return null;\n }\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(styles.icon(), sizeClassName, styles.useDefaultColor(this.theme), {\n [styles.iconFocus(this.theme)]: this.state.focused,\n [styles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n }\n\n private renderPlaceholder() {\n const { disabled } = this.props;\n const { focused } = this.state;\n let placeholder = null;\n\n if (\n this.state.needsPolyfillPlaceholder &&\n this.props.placeholder &&\n !this.isMaskVisible &&\n !this.props.value &&\n !this.props.defaultValue\n ) {\n placeholder = (\n <div\n className={cx(styles.placeholder(this.theme), {\n [styles.placeholderDisabled(this.theme)]: disabled,\n [styles.placeholderFocus(this.theme)]: focused,\n })}\n style={{ textAlign: this.props.align || 'inherit' }}\n >\n {this.props.placeholder}\n </div>\n );\n }\n\n return placeholder;\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | MaskedInput | null) => {\n if (element instanceof MaskedInput) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private renderPrefix = () => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(styles.prefix(this.theme), { [styles.prefixDisabled(this.theme)]: disabled })}>{prefix}</span>\n );\n };\n\n private renderSuffix = () => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(styles.suffix(this.theme), { [styles.suffixDisabled(this.theme)]: disabled })}>{suffix}</span>\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["Input.tsx"],"names":["invariant","React","warning","globalObject","isEdge","isIE11","isKeyBackspace","isKeyDelete","someKeys","needsPolyfillPlaceholder","MaskedInput","ThemeContext","CommonWrapper","cx","rootNode","createPropsGetter","isTheme2022","isFunction","styles","InputLayout","PolyfillPlaceholder","inputTypes","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","maskForbiddenTypes","maskAllowedTypes","filter","includes","maskErrorMessage","InputDataTids","root","Input","getProps","defaultProps","state","blinking","focused","selectAllId","input","selectAll","setSelectionRange","value","length","delaySelectAll","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","cancelBlink","callback","blinkTimeout","clearTimeout","setState","renderMain","props","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","leftIcon","rightIcon","borderless","align","mask","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","disabled","onUnexpectedInput","prefix","suffix","formatChars","corners","ariaDescribedby","ariaControls","ariaLabel","rest","labelProps","className","theme","getSizeClassName","focus","hovering","blink","focusFallback","warningFallback","errorFallback","style","inputProps","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","ref","refInput","isMaskVisible","undefined","canBeUsedWithMask","renderMaskedInput","createElement","Boolean","defaultValue","sideContainer","renderLeftIcon","renderPrefix","wrapper","renderPlaceholder","rightContainer","renderSuffix","renderRightIcon","element","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","prefixDisabled","suffixDisabled","outputMaskError","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","blur","getNode","offsetWidth","setTimeout","start","end","Error","document","activeElement","render","setRootNode","getIconSizeClassname","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","renderIcon","icon","sizeClassName","iconNode","useDefaultColor","iconFocus","iconDisabled","placeholderDisabled","placeholderFocus","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport invariant from 'invariant';\nimport React, { AriaAttributes, HTMLAttributes } from 'react';\nimport warning from 'warning';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\n\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { MaskedInput } from '../../internal/MaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { isFunction } from '../../lib/utils';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\nimport { PolyfillPlaceholder } from './InputLayout/PolyfillPlaceholder';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\n/**\n * @deprecated use SizeProp\n */\nexport type InputSize = SizeProp;\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type InputType = typeof inputTypes[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const maskForbiddenTypes: InputType[] = ['number', 'date', 'time'];\nexport const maskAllowedTypes: InputType[] = inputTypes.filter((type) => {\n return !maskForbiddenTypes.includes(type);\n});\nexport const maskErrorMessage = (type: InputType, allowedTypes: InputType[] = maskAllowedTypes) => {\n return `<Input />. Prop \"mask\" does not support type \"${type}\". Supported types: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}.`;\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Иконка слева\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n leftIcon?: InputIconType;\n /**\n * Иконка справа\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n rightIcon?: InputIconType;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Режим прозрачной рамки */\n borderless?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n /** Паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url` */\n mask?: Nullable<string>;\n /** Символ маски */\n maskChar?: Nullable<string>;\n /**\n * Словарь символов-регулярок для задания маски\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }\n */\n formatChars?: Record<string, string>;\n /** Показывать символы маски */\n alwaysShowMask?: boolean;\n /** Размер */\n size?: SizeProp;\n /** onValueChange */\n onValueChange?: (value: string) => void;\n /** Вызывается на label */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Тип. Возможные значения: 'password' | 'text' | 'number' | 'tel' | 'search' | 'time' | 'date' | 'url' | 'email'\n * */\n type?: InputType;\n /** Значение */\n value?: string;\n capture?: boolean;\n\n /**\n * Префикс\n * `ReactNode` перед значением, но после иконки\n */\n prefix?: React.ReactNode;\n /**\n * Суффикс\n * `ReactNode` после значения, но перед правой иконкой\n */\n suffix?: React.ReactNode;\n /** Выделять введенное значение при фокусе. Работает с типами `text`, `password`, `tel`, `search`, `url`. [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange) */\n selectAllOnFocus?: boolean;\n /**\n * Обработчик неправильного ввода.\n * По-умолчанию, инпут вспыхивает синим.\n * Если передан - вызывается переданный обработчик,\n * в таком случае вспыхивание можно вызвать\n * публичным методом инстанса `blink()`.\n *\n * @param value значение инпута.\n */\n onUnexpectedInput?: (value: string) => void;\n /** @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n }\n > {}\n\nexport interface InputState {\n blinking: boolean;\n focused: boolean;\n needsPolyfillPlaceholder: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'size' | 'type'>>;\n\n/**\n * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.\n * Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`\n */\n@rootNode\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n type: 'text',\n };\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n blinking: false,\n focused: false,\n };\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n private blinkTimeout: SafeTimer;\n private input: HTMLInputElement | null = null;\n private setRootNode!: TSetRootNode;\n\n private outputMaskError() {\n warning(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));\n }\n\n public componentDidMount() {\n this.outputMaskError();\n }\n\n public componentDidUpdate(prevProps: Readonly<InputProps>) {\n if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {\n this.outputMaskError();\n }\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n }\n this.cancelDelayedSelectAll();\n }\n\n /**\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input.blur();\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.blinkTimeout) {\n this.cancelBlink(() => {\n // trigger reflow to restart animation\n // @see https://css-tricks.com/restart-css-animation/#article-header-id-0\n void (this.input && this.input.offsetWidth);\n this.blink();\n });\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = globalObject.setTimeout(this.cancelBlink, 150);\n });\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n // https://github.com/facebook/react/issues/7769\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n if (!selectionAllowedTypes.includes(this.getProps().type)) {\n warning(false, selectionErrorMessage(this.getProps().type));\n\n return;\n }\n\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.input) {\n this.focus();\n }\n if (this.props.mask && this.props.value && this.props.value?.length < this.props.mask.length) {\n globalObject.setTimeout(() => {\n this.input?.setSelectionRange(start, end);\n }, 150);\n } else {\n this.input?.setSelectionRange(start, end);\n }\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private get canBeUsedWithMask() {\n return maskForbiddenTypes.includes(this.getProps().type);\n }\n\n /**\n * Работает с типами `text`, `password`, `tel`, `search`, `url`\n * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)\n * @public\n */\n public selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private cancelBlink = (callback?: () => void): void => {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n this.blinkTimeout = 0;\n if (this.state.blinking) {\n this.setState({ blinking: false }, callback);\n return;\n }\n }\n if (callback) {\n callback();\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n role,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n corners,\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n\n const { blinking, focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused && !warning && !error,\n [styles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [styles.blink(this.theme)]: blinking,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n 'aria-controls': ariaControls,\n style: { width, ...corners },\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n };\n\n const inputProps = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n role,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type,\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n };\n\n const input =\n mask && !this.canBeUsedWithMask\n ? this.renderMaskedInput(inputProps, mask)\n : React.createElement('input', inputProps);\n\n if (isTheme2022(this.theme)) {\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size }}\n >\n {input}\n {this.state.needsPolyfillPlaceholder && (\n <PolyfillPlaceholder\n isMaskVisible={this.isMaskVisible}\n value={value}\n defaultValue={this.props.defaultValue}\n align={align}\n >\n {placeholder}\n </PolyfillPlaceholder>\n )}\n </InputLayout>\n );\n }\n\n return (\n <label data-tid={InputDataTids.root} {...labelProps}>\n <span className={styles.sideContainer()}>\n {this.renderLeftIcon()}\n {this.renderPrefix()}\n </span>\n <span className={styles.wrapper()}>\n {input}\n {this.renderPlaceholder()}\n </span>\n <span className={cx(styles.sideContainer(), styles.rightContainer())}>\n {this.renderSuffix()}\n {this.renderRightIcon()}\n </span>\n </label>\n );\n };\n\n private renderMaskedInput(\n inputProps: React.InputHTMLAttributes<HTMLInputElement> & {\n capture?: boolean;\n },\n mask: string,\n ) {\n return (\n <MaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getIconSizeClassname(right = false) {\n switch (this.getProps().size) {\n case 'large':\n return right ? styles.rightIconLarge(this.theme) : styles.leftIconLarge(this.theme);\n case 'medium':\n return right ? styles.rightIconMedium(this.theme) : styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? styles.rightIconSmall(this.theme) : styles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon() {\n return this.renderIcon(this.props.leftIcon, this.getIconSizeClassname());\n }\n\n private renderRightIcon() {\n return this.renderIcon(this.props.rightIcon, this.getIconSizeClassname(true));\n }\n\n private renderIcon(icon: InputIconType, sizeClassName: string) {\n if (!icon) {\n return null;\n }\n const { disabled } = this.props;\n const iconNode = isFunction(icon) ? icon() : icon;\n\n return (\n <span\n className={cx(styles.icon(), sizeClassName, styles.useDefaultColor(this.theme), {\n [styles.iconFocus(this.theme)]: this.state.focused,\n [styles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n }\n\n private renderPlaceholder() {\n const { disabled } = this.props;\n const { focused } = this.state;\n let placeholder = null;\n\n if (\n this.state.needsPolyfillPlaceholder &&\n this.props.placeholder &&\n !this.isMaskVisible &&\n !this.props.value &&\n !this.props.defaultValue\n ) {\n placeholder = (\n <div\n className={cx(styles.placeholder(this.theme), {\n [styles.placeholderDisabled(this.theme)]: disabled,\n [styles.placeholderFocus(this.theme)]: focused,\n })}\n style={{ textAlign: this.props.align || 'inherit' }}\n >\n {this.props.placeholder}\n </div>\n );\n }\n\n return placeholder;\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | MaskedInput | null) => {\n if (element instanceof MaskedInput) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private renderPrefix = () => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(styles.prefix(this.theme), { [styles.prefixDisabled(this.theme)]: disabled })}>{prefix}</span>\n );\n };\n\n private renderSuffix = () => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(styles.suffix(this.theme), { [styles.suffixDisabled(this.theme)]: disabled })}>{suffix}</span>\n );\n };\n}\n"]}
@@ -1,8 +1,12 @@
1
1
  import React, { AriaAttributes, HTMLAttributes } from 'react';
2
2
  import { Nullable, Override } from '../../typings/utility-types';
3
3
  import { CommonProps } from '../../internal/CommonWrapper';
4
+ import { SizeProp } from '../../lib/types/props';
4
5
  export declare const inputTypes: readonly ["password", "text", "number", "tel", "search", "time", "date", "url", "email"];
5
- export declare type InputSize = 'small' | 'medium' | 'large';
6
+ /**
7
+ * @deprecated use SizeProp
8
+ */
9
+ export declare type InputSize = SizeProp;
6
10
  export declare type InputAlign = 'left' | 'center' | 'right';
7
11
  export declare type InputType = typeof inputTypes[number];
8
12
  export declare type InputIconType = React.ReactNode | (() => React.ReactNode);
@@ -48,7 +52,7 @@ export interface InputProps extends CommonProps, Pick<HTMLAttributes<unknown>, '
48
52
  /** Показывать символы маски */
49
53
  alwaysShowMask?: boolean;
50
54
  /** Размер */
51
- size?: InputSize;
55
+ size?: SizeProp;
52
56
  /** onValueChange */
53
57
  onValueChange?: (value: string) => void;
54
58
  /** Вызывается на label */
@@ -7,5 +7,5 @@ export interface InputLayoutRootProps extends InputLayoutRootFromInputProps, Com
7
7
  labelProps: React.LabelHTMLAttributes<HTMLLabelElement>;
8
8
  context: Partial<InputLayoutContextProps>;
9
9
  }
10
- export declare const InputLayout: import("../../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLLabelElement, InputLayoutRootProps>;
10
+ export declare const InputLayout: import("../../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLLabelElement, InputLayoutRootProps> & Record<never, never>;
11
11
  export {};
@@ -2,6 +2,7 @@ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTempla
2
2
 
3
3
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
4
4
 
5
+ import { ZERO_WIDTH_SPACE_CSS } from "../../../../lib/chars";
5
6
  import { css, memoizeStyle } from "../../../../lib/theming/Emotion";
6
7
  import { styles } from "../../Input.styles";
7
8
  export var stylesLayout = memoizeStyle({
@@ -12,7 +13,7 @@ export var stylesLayout = memoizeStyle({
12
13
  return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n min-width: 0;\n overflow: hidden;\n position: relative;\n width: 100%;\n display: flex;\n "])));
13
14
  },
14
15
  aside: function aside() {
15
- return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n "])));
16
+ return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n\n &::before {\n content: '", "';\n }\n "])), ZERO_WIDTH_SPACE_CSS);
16
17
  },
17
18
  icon: function icon(t) {
18
19
  return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.inputIconColor);
@@ -1 +1 @@
1
- {"version":3,"sources":["InputLayout.styles.ts"],"names":["css","memoizeStyle","styles","stylesLayout","root","t","input","aside","icon","inputIconColor","iconFocus","inputFocusedIconColor","iconDisabled","text","inputPlaceholderColor","textDisabled","inputPlaceholderColorDisabled"],"mappings":"gOAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,8BAAlC;;AAEA,SAASC,MAAT,QAAuB,iBAAvB;;AAEA,OAAO,IAAMC,YAAY,GAAGF,YAAY,CAAC;AACvCG,EAAAA,IADuC,gBAClCC,CADkC,EACxB;AACb,WAAOH,MAAM,CAACE,IAAP,CAAYC,CAAZ,CAAP;AACD,GAHsC;AAIvCC,EAAAA,KAJuC,mBAI/B;AACN,WAAON,GAAP;;;;;;;AAOD,GAZsC;AAavCO,EAAAA,KAbuC,mBAa/B;AACN,WAAOP,GAAP;;;;;AAKD,GAnBsC;AAoBvCQ,EAAAA,IApBuC,gBAoBlCH,CApBkC,EAoBxB;AACb,WAAOL,GAAP;AACWK,IAAAA,CAAC,CAACI,cADb;;AAGD,GAxBsC;AAyBvCC,EAAAA,SAzBuC,qBAyB7BL,CAzB6B,EAyBnB;AAClB,WAAOL,GAAP;AACWK,IAAAA,CAAC,CAACM,qBADb;;AAGD,GA7BsC;AA8BvCC,EAAAA,YA9BuC,0BA8BxB;AACb,WAAOZ,GAAP;;;AAGD,GAlCsC;AAmCvCa,EAAAA,IAnCuC,gBAmClCR,CAnCkC,EAmCxB;AACb,WAAOL,GAAP;AACWK,IAAAA,CAAC,CAACS,qBADb;;AAGD,GAvCsC;AAwCvCC,EAAAA,YAxCuC,wBAwC1BV,CAxC0B,EAwChB;AACrB,WAAOL,GAAP;AACWK,IAAAA,CAAC,CAACW,6BADb;;AAGD,GA5CsC,EAAD,CAAjC","sourcesContent":["import { css, memoizeStyle } from '../../../lib/theming/Emotion';\nimport { Theme } from '../../../lib/theming/Theme';\nimport { styles } from '../Input.styles';\n\nexport const stylesLayout = memoizeStyle({\n root(t: Theme) {\n return styles.root(t);\n },\n input() {\n return css`\n min-width: 0;\n overflow: hidden;\n position: relative;\n width: 100%;\n display: flex;\n `;\n },\n aside() {\n return css`\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n `;\n },\n icon(t: Theme) {\n return css`\n color: ${t.inputIconColor};\n `;\n },\n iconFocus(t: Theme) {\n return css`\n color: ${t.inputFocusedIconColor};\n `;\n },\n iconDisabled() {\n return css`\n cursor: default;\n `;\n },\n text(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n textDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["InputLayout.styles.ts"],"names":["ZERO_WIDTH_SPACE_CSS","css","memoizeStyle","styles","stylesLayout","root","t","input","aside","icon","inputIconColor","iconFocus","inputFocusedIconColor","iconDisabled","text","inputPlaceholderColor","textDisabled","inputPlaceholderColorDisabled"],"mappings":"gOAAA,SAASA,oBAAT,QAAqC,oBAArC;AACA,SAASC,GAAT,EAAcC,YAAd,QAAkC,8BAAlC;;AAEA,SAASC,MAAT,QAAuB,iBAAvB;;AAEA,OAAO,IAAMC,YAAY,GAAGF,YAAY,CAAC;AACvCG,EAAAA,IADuC,gBAClCC,CADkC,EACxB;AACb,WAAOH,MAAM,CAACE,IAAP,CAAYC,CAAZ,CAAP;AACD,GAHsC;AAIvCC,EAAAA,KAJuC,mBAI/B;AACN,WAAON,GAAP;;;;;;;AAOD,GAZsC;AAavCO,EAAAA,KAbuC,mBAa/B;AACN,WAAOP,GAAP;;;;;;AAMgBD,IAAAA,oBANhB;;;AASD,GAvBsC;AAwBvCS,EAAAA,IAxBuC,gBAwBlCH,CAxBkC,EAwBxB;AACb,WAAOL,GAAP;AACWK,IAAAA,CAAC,CAACI,cADb;;AAGD,GA5BsC;AA6BvCC,EAAAA,SA7BuC,qBA6B7BL,CA7B6B,EA6BnB;AAClB,WAAOL,GAAP;AACWK,IAAAA,CAAC,CAACM,qBADb;;AAGD,GAjCsC;AAkCvCC,EAAAA,YAlCuC,0BAkCxB;AACb,WAAOZ,GAAP;;;AAGD,GAtCsC;AAuCvCa,EAAAA,IAvCuC,gBAuClCR,CAvCkC,EAuCxB;AACb,WAAOL,GAAP;AACWK,IAAAA,CAAC,CAACS,qBADb;;AAGD,GA3CsC;AA4CvCC,EAAAA,YA5CuC,wBA4C1BV,CA5C0B,EA4ChB;AACrB,WAAOL,GAAP;AACWK,IAAAA,CAAC,CAACW,6BADb;;AAGD,GAhDsC,EAAD,CAAjC","sourcesContent":["import { ZERO_WIDTH_SPACE_CSS } from '../../../lib/chars';\nimport { css, memoizeStyle } from '../../../lib/theming/Emotion';\nimport { Theme } from '../../../lib/theming/Theme';\nimport { styles } from '../Input.styles';\n\nexport const stylesLayout = memoizeStyle({\n root(t: Theme) {\n return styles.root(t);\n },\n input() {\n return css`\n min-width: 0;\n overflow: hidden;\n position: relative;\n width: 100%;\n display: flex;\n `;\n },\n aside() {\n return css`\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n\n &::before {\n content: '${ZERO_WIDTH_SPACE_CSS}';\n }\n `;\n },\n icon(t: Theme) {\n return css`\n color: ${t.inputIconColor};\n `;\n },\n iconFocus(t: Theme) {\n return css`\n color: ${t.inputFocusedIconColor};\n `;\n },\n iconDisabled() {\n return css`\n cursor: default;\n `;\n },\n text(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n textDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n});\n"]}
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import { ZERO_WIDTH_SPACE } from "../../../../lib/chars";
3
2
  import { stylesLayout } from "../InputLayout.styles";
4
3
  import { InputLayoutAsideIcon } from "../InputLayoutAsideIcon";
5
4
  import { InputLayoutAsideText } from "../InputLayoutAsideText";
@@ -23,5 +22,5 @@ export var InputLayoutAside = function InputLayoutAside(_ref) {
23
22
  var child = side === 'left' ? [_icon, _text] : [_text, _icon];
24
23
  return /*#__PURE__*/React.createElement("span", {
25
24
  className: asideClassName
26
- }, ZERO_WIDTH_SPACE, child);
25
+ }, child);
27
26
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["InputLayoutAside.tsx"],"names":["React","ZERO_WIDTH_SPACE","stylesLayout","InputLayoutAsideIcon","InputLayoutAsideText","InputLayoutAside","icon","text","side","asideClassName","aside","_icon","_text","child"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAGA,SAASC,gBAAT,QAAiC,oBAAjC;;AAEA,SAASC,YAAT,QAA6B,sBAA7B;AACA,SAASC,oBAAT,QAAqC,wBAArC;AACA,SAASC,oBAAT,QAAqC,wBAArC;;;;;;;;AAQA,OAAO,IAAMC,gBAAgE,GAAG,SAAnEA,gBAAmE,OAA0B,KAAvBC,IAAuB,QAAvBA,IAAuB,CAAjBC,IAAiB,QAAjBA,IAAiB,CAAXC,IAAW,QAAXA,IAAW;AACxG,MAAMC,cAAc,GAAGP,YAAY,CAACQ,KAAb,EAAvB;;AAEA,MAAMC,KAAK,gBAAG,oBAAC,oBAAD,IAAsB,GAAG,EAAC,MAA1B,EAAiC,IAAI,EAAEL,IAAvC,EAA6C,IAAI,EAAEE,IAAnD,GAAd;AACA,MAAMI,KAAK,gBAAG,oBAAC,oBAAD,IAAsB,GAAG,EAAC,MAA1B,EAAiC,IAAI,EAAEL,IAAvC,GAAd;;AAEA,MAAMM,KAAK,GAAGL,IAAI,KAAK,MAAT,GAAkB,CAACG,KAAD,EAAQC,KAAR,CAAlB,GAAmC,CAACA,KAAD,EAAQD,KAAR,CAAjD;;AAEA;AACE,kCAAM,SAAS,EAAEF,cAAjB;AACGR,IAAAA,gBADH;AAEGY,IAAAA,KAFH,CADF;;;AAMD,CAdM","sourcesContent":["import React from 'react';\n\nimport { InputProps } from '../Input';\nimport { ZERO_WIDTH_SPACE } from '../../../lib/chars';\n\nimport { stylesLayout } from './InputLayout.styles';\nimport { InputLayoutAsideIcon } from './InputLayoutAsideIcon';\nimport { InputLayoutAsideText } from './InputLayoutAsideText';\n\nexport interface InputLayoutAsideProps {\n icon: InputProps['leftIcon'] | InputProps['rightIcon'];\n text: InputProps['prefix'] | InputProps['suffix'];\n side: 'left' | 'right';\n}\n\nexport const InputLayoutAside: React.FunctionComponent<InputLayoutAsideProps> = ({ icon, text, side }) => {\n const asideClassName = stylesLayout.aside();\n\n const _icon = <InputLayoutAsideIcon key=\"icon\" icon={icon} side={side} />;\n const _text = <InputLayoutAsideText key=\"text\" text={text} />;\n\n const child = side === 'left' ? [_icon, _text] : [_text, _icon];\n\n return (\n <span className={asideClassName}>\n {ZERO_WIDTH_SPACE}\n {child}\n </span>\n );\n};\n"]}
1
+ {"version":3,"sources":["InputLayoutAside.tsx"],"names":["React","stylesLayout","InputLayoutAsideIcon","InputLayoutAsideText","InputLayoutAside","icon","text","side","asideClassName","aside","_icon","_text","child"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;;;AAIA,SAASC,YAAT,QAA6B,sBAA7B;AACA,SAASC,oBAAT,QAAqC,wBAArC;AACA,SAASC,oBAAT,QAAqC,wBAArC;;;;;;;;AAQA,OAAO,IAAMC,gBAAgE,GAAG,SAAnEA,gBAAmE,OAA0B,KAAvBC,IAAuB,QAAvBA,IAAuB,CAAjBC,IAAiB,QAAjBA,IAAiB,CAAXC,IAAW,QAAXA,IAAW;AACxG,MAAMC,cAAc,GAAGP,YAAY,CAACQ,KAAb,EAAvB;;AAEA,MAAMC,KAAK,gBAAG,oBAAC,oBAAD,IAAsB,GAAG,EAAC,MAA1B,EAAiC,IAAI,EAAEL,IAAvC,EAA6C,IAAI,EAAEE,IAAnD,GAAd;AACA,MAAMI,KAAK,gBAAG,oBAAC,oBAAD,IAAsB,GAAG,EAAC,MAA1B,EAAiC,IAAI,EAAEL,IAAvC,GAAd;;AAEA,MAAMM,KAAK,GAAGL,IAAI,KAAK,MAAT,GAAkB,CAACG,KAAD,EAAQC,KAAR,CAAlB,GAAmC,CAACA,KAAD,EAAQD,KAAR,CAAjD;;AAEA,sBAAO,8BAAM,SAAS,EAAEF,cAAjB,IAAkCI,KAAlC,CAAP;AACD,CATM","sourcesContent":["import React from 'react';\n\nimport { InputProps } from '../Input';\n\nimport { stylesLayout } from './InputLayout.styles';\nimport { InputLayoutAsideIcon } from './InputLayoutAsideIcon';\nimport { InputLayoutAsideText } from './InputLayoutAsideText';\n\nexport interface InputLayoutAsideProps {\n icon: InputProps['leftIcon'] | InputProps['rightIcon'];\n text: InputProps['prefix'] | InputProps['suffix'];\n side: 'left' | 'right';\n}\n\nexport const InputLayoutAside: React.FunctionComponent<InputLayoutAsideProps> = ({ icon, text, side }) => {\n const asideClassName = stylesLayout.aside();\n\n const _icon = <InputLayoutAsideIcon key=\"icon\" icon={icon} side={side} />;\n const _text = <InputLayoutAsideText key=\"text\" text={text} />;\n\n const child = side === 'left' ? [_icon, _text] : [_text, _icon];\n\n return <span className={asideClassName}>{child}</span>;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["InputLayoutAsideIcon.tsx"],"names":["React","isElement","isKonturIcon","cx","ThemeContext","InputLayoutContext","stylesLayout","InputLayoutAsideIcon","icon","side","theme","useContext","focused","disabled","size","sizes","small","parseInt","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","gaps","inputIconGapSmall","inputIconGapMedium","inputIconGapLarge","_icon","Function","cloneElement","props","style","marginLeft","marginRight","aside","iconFocus","iconDisabled"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,QAA0B,UAA1B;;AAEA,SAASC,YAAT,QAA6B,oBAA7B;;AAEA,SAASC,EAAT,QAAmB,8BAAnB;AACA,SAASC,YAAT,QAA6B,mCAA7B;;AAEA,SAASC,kBAAT,QAAmC,sBAAnC;AACA,SAASC,YAAT,QAA6B,sBAA7B;;;;;;AAMA,OAAO,IAAMC,oBAAwE,GAAG,SAA3EA,oBAA2E,OAA2B,sBAAxBC,IAAwB,CAAxBA,IAAwB,0BAAjB,IAAiB,aAAXC,IAAW,QAAXA,IAAW;AACjH,MAAMC,KAAK,GAAGV,KAAK,CAACW,UAAN,CAAiBP,YAAjB,CAAd;AACA,0BAAoCJ,KAAK,CAACW,UAAN,CAAiBN,kBAAjB,CAApC,CAAQO,OAAR,qBAAQA,OAAR,CAAiBC,QAAjB,qBAAiBA,QAAjB,CAA2BC,IAA3B,qBAA2BA,IAA3B;;AAEA,MAAMC,KAAgC,GAAG;AACvCC,IAAAA,KAAK,EAAEC,QAAQ,CAACP,KAAK,CAACQ,kBAAP,CADwB;AAEvCC,IAAAA,MAAM,EAAEF,QAAQ,CAACP,KAAK,CAACU,mBAAP,CAFuB;AAGvCC,IAAAA,KAAK,EAAEJ,QAAQ,CAACP,KAAK,CAACY,kBAAP,CAHwB,EAAzC;;AAKA,MAAMC,IAA+B,GAAG;AACtCP,IAAAA,KAAK,EAAEC,QAAQ,CAACP,KAAK,CAACc,iBAAP,CADuB;AAEtCL,IAAAA,MAAM,EAAEF,QAAQ,CAACP,KAAK,CAACe,kBAAP,CAFsB;AAGtCJ,IAAAA,KAAK,EAAEJ,QAAQ,CAACP,KAAK,CAACgB,iBAAP,CAHuB,EAAxC;;;AAMA,MAAIC,KAAK,GAAGnB,IAAI,YAAYoB,QAAhB,GAA2BpB,IAAI,EAA/B,GAAoCA,IAAhD;AACA,MAAIP,SAAS,CAACO,IAAD,CAAT,IAAmBN,YAAY,CAACM,IAAD,CAAnC,EAA2C;AACzCmB,IAAAA,KAAK,gBAAG3B,KAAK,CAAC6B,YAAN,CAAmBrB,IAAnB,EAAyB,EAAEM,IAAI,sBAAEN,IAAI,CAACsB,KAAL,CAAWhB,IAAb,+BAAqBC,KAAK,CAACD,IAAD,CAAhC,EAAzB,CAAR;AACD;;AAED,MAAMiB,KAA0B,GAAG,EAAnC;AACA,MAAItB,IAAJ,EAAU;AACR,QAAIA,IAAI,KAAK,OAAb,EAAsB;AACpBsB,MAAAA,KAAK,CAACC,UAAN,GAAmBT,IAAI,CAACT,IAAD,CAAvB;AACD,KAFD,MAEO;AACLiB,MAAAA,KAAK,CAACE,WAAN,GAAoBV,IAAI,CAACT,IAAD,CAAxB;AACD;AACF;;AAED;AACEa,IAAAA,KAAK;AACH;AACE,MAAA,KAAK,EAAEI,KADT;AAEE,MAAA,SAAS,EAAE5B,EAAE;AACXG,MAAAA,YAAY,CAAC4B,KAAb,EADW;AAEX5B,MAAAA,YAAY,CAACE,IAAb,CAAkBE,KAAlB,CAFW;AAGXE,MAAAA,OAAO,IAAIN,YAAY,CAAC6B,SAAb,CAAuBzB,KAAvB,CAHA;AAIXG,MAAAA,QAAQ,IAAIP,YAAY,CAAC8B,YAAb,EAJD,CAFf;;;AASGT,IAAAA,KATH,CAFJ;;;;AAeD,CA5CM","sourcesContent":["import React from 'react';\nimport { isElement } from 'react-is';\n\nimport { isKonturIcon } from '../../../lib/utils';\nimport { InputProps, InputSize } from '../Input';\nimport { cx } from '../../../lib/theming/Emotion';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\n\nimport { InputLayoutContext } from './InputLayoutContext';\nimport { stylesLayout } from './InputLayout.styles';\nexport interface InputLayoutAsideIconProps {\n icon: InputProps['leftIcon'] | InputProps['rightIcon'];\n side: 'left' | 'right';\n}\n\nexport const InputLayoutAsideIcon: React.FunctionComponent<InputLayoutAsideIconProps> = ({ icon = null, side }) => {\n const theme = React.useContext(ThemeContext);\n const { focused, disabled, size } = React.useContext(InputLayoutContext);\n\n const sizes: Record<InputSize, number> = {\n small: parseInt(theme.inputIconSizeSmall),\n medium: parseInt(theme.inputIconSizeMedium),\n large: parseInt(theme.inputIconSizeLarge),\n };\n const gaps: Record<InputSize, number> = {\n small: parseInt(theme.inputIconGapSmall),\n medium: parseInt(theme.inputIconGapMedium),\n large: parseInt(theme.inputIconGapLarge),\n };\n\n let _icon = icon instanceof Function ? icon() : icon;\n if (isElement(icon) && isKonturIcon(icon)) {\n _icon = React.cloneElement(icon, { size: icon.props.size ?? sizes[size] });\n }\n\n const style: React.CSSProperties = {};\n if (side) {\n if (side === 'right') {\n style.marginLeft = gaps[size];\n } else {\n style.marginRight = gaps[size];\n }\n }\n\n return (\n _icon && (\n <span\n style={style}\n className={cx(\n stylesLayout.aside(),\n stylesLayout.icon(theme),\n focused && stylesLayout.iconFocus(theme),\n disabled && stylesLayout.iconDisabled(),\n )}\n >\n {_icon}\n </span>\n )\n );\n};\n"]}
1
+ {"version":3,"sources":["InputLayoutAsideIcon.tsx"],"names":["React","isElement","isKonturIcon","cx","ThemeContext","InputLayoutContext","stylesLayout","InputLayoutAsideIcon","icon","side","theme","useContext","focused","disabled","size","sizes","small","parseInt","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","gaps","inputIconGapSmall","inputIconGapMedium","inputIconGapLarge","_icon","Function","cloneElement","props","style","marginLeft","marginRight","aside","iconFocus","iconDisabled"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,QAA0B,UAA1B;;AAEA,SAASC,YAAT,QAA6B,oBAA7B;;AAEA,SAASC,EAAT,QAAmB,8BAAnB;AACA,SAASC,YAAT,QAA6B,mCAA7B;;;AAGA,SAASC,kBAAT,QAAmC,sBAAnC;AACA,SAASC,YAAT,QAA6B,sBAA7B;;;;;;AAMA,OAAO,IAAMC,oBAAwE,GAAG,SAA3EA,oBAA2E,OAA2B,sBAAxBC,IAAwB,CAAxBA,IAAwB,0BAAjB,IAAiB,aAAXC,IAAW,QAAXA,IAAW;AACjH,MAAMC,KAAK,GAAGV,KAAK,CAACW,UAAN,CAAiBP,YAAjB,CAAd;AACA,0BAAoCJ,KAAK,CAACW,UAAN,CAAiBN,kBAAjB,CAApC,CAAQO,OAAR,qBAAQA,OAAR,CAAiBC,QAAjB,qBAAiBA,QAAjB,CAA2BC,IAA3B,qBAA2BA,IAA3B;;AAEA,MAAMC,KAA+B,GAAG;AACtCC,IAAAA,KAAK,EAAEC,QAAQ,CAACP,KAAK,CAACQ,kBAAP,CADuB;AAEtCC,IAAAA,MAAM,EAAEF,QAAQ,CAACP,KAAK,CAACU,mBAAP,CAFsB;AAGtCC,IAAAA,KAAK,EAAEJ,QAAQ,CAACP,KAAK,CAACY,kBAAP,CAHuB,EAAxC;;AAKA,MAAMC,IAA8B,GAAG;AACrCP,IAAAA,KAAK,EAAEC,QAAQ,CAACP,KAAK,CAACc,iBAAP,CADsB;AAErCL,IAAAA,MAAM,EAAEF,QAAQ,CAACP,KAAK,CAACe,kBAAP,CAFqB;AAGrCJ,IAAAA,KAAK,EAAEJ,QAAQ,CAACP,KAAK,CAACgB,iBAAP,CAHsB,EAAvC;;;AAMA,MAAIC,KAAK,GAAGnB,IAAI,YAAYoB,QAAhB,GAA2BpB,IAAI,EAA/B,GAAoCA,IAAhD;AACA,MAAIP,SAAS,CAACO,IAAD,CAAT,IAAmBN,YAAY,CAACM,IAAD,CAAnC,EAA2C;AACzCmB,IAAAA,KAAK,gBAAG3B,KAAK,CAAC6B,YAAN,CAAmBrB,IAAnB,EAAyB,EAAEM,IAAI,sBAAEN,IAAI,CAACsB,KAAL,CAAWhB,IAAb,+BAAqBC,KAAK,CAACD,IAAD,CAAhC,EAAzB,CAAR;AACD;;AAED,MAAMiB,KAA0B,GAAG,EAAnC;AACA,MAAItB,IAAJ,EAAU;AACR,QAAIA,IAAI,KAAK,OAAb,EAAsB;AACpBsB,MAAAA,KAAK,CAACC,UAAN,GAAmBT,IAAI,CAACT,IAAD,CAAvB;AACD,KAFD,MAEO;AACLiB,MAAAA,KAAK,CAACE,WAAN,GAAoBV,IAAI,CAACT,IAAD,CAAxB;AACD;AACF;;AAED;AACEa,IAAAA,KAAK;AACH;AACE,MAAA,KAAK,EAAEI,KADT;AAEE,MAAA,SAAS,EAAE5B,EAAE;AACXG,MAAAA,YAAY,CAAC4B,KAAb,EADW;AAEX5B,MAAAA,YAAY,CAACE,IAAb,CAAkBE,KAAlB,CAFW;AAGXE,MAAAA,OAAO,IAAIN,YAAY,CAAC6B,SAAb,CAAuBzB,KAAvB,CAHA;AAIXG,MAAAA,QAAQ,IAAIP,YAAY,CAAC8B,YAAb,EAJD,CAFf;;;AASGT,IAAAA,KATH,CAFJ;;;;AAeD,CA5CM","sourcesContent":["import React from 'react';\nimport { isElement } from 'react-is';\n\nimport { isKonturIcon } from '../../../lib/utils';\nimport { InputProps } from '../Input';\nimport { cx } from '../../../lib/theming/Emotion';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\nimport { SizeProp } from '../../../lib/types/props';\n\nimport { InputLayoutContext } from './InputLayoutContext';\nimport { stylesLayout } from './InputLayout.styles';\nexport interface InputLayoutAsideIconProps {\n icon: InputProps['leftIcon'] | InputProps['rightIcon'];\n side: 'left' | 'right';\n}\n\nexport const InputLayoutAsideIcon: React.FunctionComponent<InputLayoutAsideIconProps> = ({ icon = null, side }) => {\n const theme = React.useContext(ThemeContext);\n const { focused, disabled, size } = React.useContext(InputLayoutContext);\n\n const sizes: Record<SizeProp, number> = {\n small: parseInt(theme.inputIconSizeSmall),\n medium: parseInt(theme.inputIconSizeMedium),\n large: parseInt(theme.inputIconSizeLarge),\n };\n const gaps: Record<SizeProp, number> = {\n small: parseInt(theme.inputIconGapSmall),\n medium: parseInt(theme.inputIconGapMedium),\n large: parseInt(theme.inputIconGapLarge),\n };\n\n let _icon = icon instanceof Function ? icon() : icon;\n if (isElement(icon) && isKonturIcon(icon)) {\n _icon = React.cloneElement(icon, { size: icon.props.size ?? sizes[size] });\n }\n\n const style: React.CSSProperties = {};\n if (side) {\n if (side === 'right') {\n style.marginLeft = gaps[size];\n } else {\n style.marginRight = gaps[size];\n }\n }\n\n return (\n _icon && (\n <span\n style={style}\n className={cx(\n stylesLayout.aside(),\n stylesLayout.icon(theme),\n focused && stylesLayout.iconFocus(theme),\n disabled && stylesLayout.iconDisabled(),\n )}\n >\n {_icon}\n </span>\n )\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["InputLayoutContext.tsx"],"names":["React","InputLayoutContextDefault","focused","disabled","size","InputLayoutContext","createContext"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;;;;;;;;;AAUA,OAAO,IAAMC,yBAAkD,GAAG;AAChEC,EAAAA,OAAO,EAAE,KADuD;AAEhEC,EAAAA,QAAQ,EAAE,KAFsD;AAGhEC,EAAAA,IAAI,EAAE,OAH0D,EAA3D;;;AAMP,OAAO,IAAMC,kBAAkB,gBAAGL,KAAK,CAACM,aAAN,CAA6CL,yBAA7C,CAA3B","sourcesContent":["import React from 'react';\n\nimport { InputSize } from '../Input';\n\nexport interface InputLayoutContextProps {\n focused: boolean;\n disabled: boolean;\n size: InputSize;\n}\n\nexport const InputLayoutContextDefault: InputLayoutContextProps = {\n focused: false,\n disabled: false,\n size: 'small',\n};\n\nexport const InputLayoutContext = React.createContext<InputLayoutContextProps>(InputLayoutContextDefault);\n"]}
1
+ {"version":3,"sources":["InputLayoutContext.tsx"],"names":["React","InputLayoutContextDefault","focused","disabled","size","InputLayoutContext","createContext"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;;;;;;;;;AAUA,OAAO,IAAMC,yBAAkD,GAAG;AAChEC,EAAAA,OAAO,EAAE,KADuD;AAEhEC,EAAAA,QAAQ,EAAE,KAFsD;AAGhEC,EAAAA,IAAI,EAAE,OAH0D,EAA3D;;;AAMP,OAAO,IAAMC,kBAAkB,gBAAGL,KAAK,CAACM,aAAN,CAA6CL,yBAA7C,CAA3B","sourcesContent":["import React from 'react';\n\nimport { SizeProp } from '../../../lib/types/props';\n\nexport interface InputLayoutContextProps {\n focused: boolean;\n disabled: boolean;\n size: SizeProp;\n}\n\nexport const InputLayoutContextDefault: InputLayoutContextProps = {\n focused: false,\n disabled: false,\n size: 'small',\n};\n\nexport const InputLayoutContext = React.createContext<InputLayoutContextProps>(InputLayoutContextDefault);\n"]}
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import { InputSize } from '../Input';
2
+ import { SizeProp } from '../../../lib/types/props';
3
3
  export interface InputLayoutContextProps {
4
4
  focused: boolean;
5
5
  disabled: boolean;
6
- size: InputSize;
6
+ size: SizeProp;
7
7
  }
8
8
  export declare const InputLayoutContextDefault: InputLayoutContextProps;
9
9
  export declare const InputLayoutContext: React.Context<InputLayoutContextProps>;
@@ -6,6 +6,7 @@ var _class, _class2, _temp;
6
6
  import React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import { isElement } from 'react-is';
9
+ import { globalObject } from '@skbkontur/global-object';
9
10
  import { isKonturIcon } from "../../../lib/utils";
10
11
  import { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from "../../../lib/events/keyboard/identifiers";
11
12
  import * as LayoutEvents from "../../../lib/LayoutEvents";
@@ -94,7 +95,7 @@ export var Kebab = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
94
95
  if (!_this.props.disabled) {
95
96
  // focus event fires before keyDown eventlistener
96
97
  // so we should check tabPressed in async way
97
- requestAnimationFrame(function () {
98
+ globalObject.requestAnimationFrame == null ? void 0 : globalObject.requestAnimationFrame(function () {
98
99
  if (keyListener.isTabPressed) {
99
100
  _this.setState({
100
101
  focusedByTab: true
@@ -1 +1 @@
1
- {"version":3,"sources":["Kebab.tsx"],"names":["React","PropTypes","isElement","isKonturIcon","isKeyArrowVertical","isKeyEnter","isKeySpace","someKeys","LayoutEvents","keyListener","PopupMenu","ThemeContext","MenuKebabIcon","isTestEnv","ThemeFactory","CommonWrapper","cx","rootNode","createPropsGetter","isTheme2022","styles","KebabIcon","KebabDataTids","caption","Kebab","getProps","defaultProps","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","disabled","size","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","handleFocus","handleBlur","kebab","theme","kebabSmall","kebabMedium","kebabLarge","kebab2022","opened","focused","props","renderIcon2022","renderIcon","e","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","requestAnimationFrame","isTabPressed","componentDidMount","addListener","componentWillUnmount","render","create","popupPinOffset","kebabPinOffset","popupMargin","kebabMargin","popupPinSize","kebabPinSize","menuScrollContainerContentWrapperPaddingY","menuLegacyPaddingY","renderMain","positions","disableAnimations","onOpen","onClose","setRootNode","preventIconsOffset","menuMaxHeight","popupMenuId","children","icon","iconsmall","iconmedium","iconlarge","sizes","small","parseInt","kebabIconSizeSmall","medium","kebabIconSizeMedium","large","kebabIconSizeLarge","cloneElement","color","kebabIconColor","Component","__KONTUR_REACT_UI__","propTypes","node","bool","oneOfType","string","number","func"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { isElement } from 'react-is';\n\nimport { isKonturIcon } from '../../lib/utils';\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { PopupMenu, PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MenuKebabIcon } from '../../internal/icons/16px';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { ButtonSize } from '../Button';\n\nimport { styles } from './Kebab.styles';\nimport { KebabIcon } from './KebabIcon';\n\nexport interface KebabProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n disabled?: boolean;\n size?: 'small' | 'medium' | 'large';\n /**\n * Список позиций доступных для расположения выпадашки.\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 menuMaxHeight?: number | string;\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n /**\n * Кастомная иконка\n */\n icon?: React.ReactNode;\n /**\n * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const KebabDataTids = {\n caption: 'Kebab__caption',\n} as const;\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'size' | 'disableAnimations'>>;\n\n@rootNode\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n\n public static propTypes = {};\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n size: 'small',\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state: KebabState = {\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.kebabPinOffset,\n popupMargin: theme.kebabMargin,\n popupPinSize: theme.kebabPinSize,\n menuScrollContainerContentWrapperPaddingY: theme.menuLegacyPaddingY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const { positions, disableAnimations, onOpen, onClose } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n popupHasPin\n preventIconsOffset={this.props.preventIconsOffset}\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={onOpen}\n onClose={onClose}\n popupMenuId={this.props.popupMenuId}\n aria-label={this.props['aria-label']}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled, size } = this.getProps();\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n role=\"button\"\n data-tid={KebabDataTids.caption}\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx(\n styles.kebab(this.theme),\n size === 'small' && styles.kebabSmall(this.theme),\n size === 'medium' && styles.kebabMedium(this.theme),\n size === 'large' && styles.kebabLarge(this.theme),\n isTheme2022(this.theme) && styles.kebab2022(),\n captionProps.opened && styles.opened(this.theme),\n disabled && styles.disabled(),\n this.state.focusedByTab && styles.focused(this.theme),\n )}\n aria-describedby={this.props['aria-describedby']}\n >\n {isTheme2022(this.theme) ? this.renderIcon2022() : this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n const { size, icon = <MenuKebabIcon /> } = this.getProps();\n return (\n <div\n className={cx({\n [styles.icon(this.theme)]: true,\n [styles.iconsmall(this.theme)]: size === 'small',\n [styles.iconmedium(this.theme)]: size === 'medium',\n [styles.iconlarge(this.theme)]: size === 'large',\n })}\n >\n {icon}\n </div>\n );\n }\n\n private renderIcon2022() {\n const { size, icon = <KebabIcon /> } = this.getProps();\n\n if (isElement(icon) && isKonturIcon(icon)) {\n const sizes: Record<ButtonSize, number> = {\n small: parseInt(this.theme.kebabIconSizeSmall),\n medium: parseInt(this.theme.kebabIconSizeMedium),\n large: parseInt(this.theme.kebabIconSizeLarge),\n };\n\n return React.cloneElement(icon, {\n size: icon.props.size ?? sizes[size],\n color: icon.props.color ?? this.theme.kebabIconColor,\n });\n }\n\n return icon;\n }\n}\n\nKebab.propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n menuMaxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * Размер кебаба small 14px | large 20px\n */\n size: PropTypes.string,\n\n /**\n * Коллбек, вызывающийся перед закрытием кебаба\n */\n onClose: PropTypes.func,\n\n /**\n * Коллбек, вызывающийся перед открытием кебаба\n */\n onOpen: PropTypes.func,\n};\n"]}
1
+ {"version":3,"sources":["Kebab.tsx"],"names":["React","PropTypes","isElement","globalObject","isKonturIcon","isKeyArrowVertical","isKeyEnter","isKeySpace","someKeys","LayoutEvents","keyListener","PopupMenu","ThemeContext","MenuKebabIcon","isTestEnv","ThemeFactory","CommonWrapper","cx","rootNode","createPropsGetter","isTheme2022","styles","KebabIcon","KebabDataTids","caption","Kebab","getProps","defaultProps","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","disabled","size","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","handleFocus","handleBlur","kebab","theme","kebabSmall","kebabMedium","kebabLarge","kebab2022","opened","focused","props","renderIcon2022","renderIcon","e","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","requestAnimationFrame","isTabPressed","componentDidMount","addListener","componentWillUnmount","render","create","popupPinOffset","kebabPinOffset","popupMargin","kebabMargin","popupPinSize","kebabPinSize","menuScrollContainerContentWrapperPaddingY","menuLegacyPaddingY","renderMain","positions","disableAnimations","onOpen","onClose","setRootNode","preventIconsOffset","menuMaxHeight","popupMenuId","children","icon","iconsmall","iconmedium","iconlarge","sizes","small","parseInt","kebabIconSizeSmall","medium","kebabIconSizeMedium","large","kebabIconSizeLarge","cloneElement","color","kebabIconColor","Component","__KONTUR_REACT_UI__","propTypes","node","bool","oneOfType","string","number","func"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { isElement } from 'react-is';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKonturIcon } from '../../lib/utils';\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { PopupMenu, PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MenuKebabIcon } from '../../internal/icons/16px';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './Kebab.styles';\nimport { KebabIcon } from './KebabIcon';\n\nexport interface KebabProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n disabled?: boolean;\n size?: SizeProp;\n /**\n * Список позиций доступных для расположения выпадашки.\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 menuMaxHeight?: number | string;\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n /**\n * Кастомная иконка\n */\n icon?: React.ReactNode;\n /**\n * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const KebabDataTids = {\n caption: 'Kebab__caption',\n} as const;\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'size' | 'disableAnimations'>>;\n\n@rootNode\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n\n public static propTypes = {};\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n size: 'small',\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state: KebabState = {\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.kebabPinOffset,\n popupMargin: theme.kebabMargin,\n popupPinSize: theme.kebabPinSize,\n menuScrollContainerContentWrapperPaddingY: theme.menuLegacyPaddingY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const { positions, disableAnimations, onOpen, onClose } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n popupHasPin\n preventIconsOffset={this.props.preventIconsOffset}\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={onOpen}\n onClose={onClose}\n popupMenuId={this.props.popupMenuId}\n aria-label={this.props['aria-label']}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled, size } = this.getProps();\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n role=\"button\"\n data-tid={KebabDataTids.caption}\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx(\n styles.kebab(this.theme),\n size === 'small' && styles.kebabSmall(this.theme),\n size === 'medium' && styles.kebabMedium(this.theme),\n size === 'large' && styles.kebabLarge(this.theme),\n isTheme2022(this.theme) && styles.kebab2022(),\n captionProps.opened && styles.opened(this.theme),\n disabled && styles.disabled(),\n this.state.focusedByTab && styles.focused(this.theme),\n )}\n aria-describedby={this.props['aria-describedby']}\n >\n {isTheme2022(this.theme) ? this.renderIcon2022() : this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.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 this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n const { size, icon = <MenuKebabIcon /> } = this.getProps();\n return (\n <div\n className={cx({\n [styles.icon(this.theme)]: true,\n [styles.iconsmall(this.theme)]: size === 'small',\n [styles.iconmedium(this.theme)]: size === 'medium',\n [styles.iconlarge(this.theme)]: size === 'large',\n })}\n >\n {icon}\n </div>\n );\n }\n\n private renderIcon2022() {\n const { size, icon = <KebabIcon /> } = this.getProps();\n\n if (isElement(icon) && isKonturIcon(icon)) {\n const sizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.kebabIconSizeSmall),\n medium: parseInt(this.theme.kebabIconSizeMedium),\n large: parseInt(this.theme.kebabIconSizeLarge),\n };\n\n return React.cloneElement(icon, {\n size: icon.props.size ?? sizes[size],\n color: icon.props.color ?? this.theme.kebabIconColor,\n });\n }\n\n return icon;\n }\n}\n\nKebab.propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n menuMaxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * Размер кебаба small 14px | large 20px\n */\n size: PropTypes.string,\n\n /**\n * Коллбек, вызывающийся перед закрытием кебаба\n */\n onClose: PropTypes.func,\n\n /**\n * Коллбек, вызывающийся перед открытием кебаба\n */\n onOpen: PropTypes.func,\n};\n"]}
@@ -3,9 +3,10 @@ import { PopupMenuProps } from '../../internal/PopupMenu';
3
3
  import { Nullable } from '../../typings/utility-types';
4
4
  import { PopupPositionsType } from '../../internal/Popup';
5
5
  import { CommonProps } from '../../internal/CommonWrapper';
6
+ import { SizeProp } from '../../lib/types/props';
6
7
  export interface KebabProps extends Pick<AriaAttributes, 'aria-label'>, Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>, CommonProps {
7
8
  disabled?: boolean;
8
- size?: 'small' | 'medium' | 'large';
9
+ size?: SizeProp;
9
10
  /**
10
11
  * Список позиций доступных для расположения выпадашки.
11
12
  *