@skbkontur/react-ui 0.0.0-7feb61cdde → 0.0.0-80c5917afc

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 (379) hide show
  1. package/CHANGELOG.md +94 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +5 -0
  3. package/cjs/components/Autocomplete/Autocomplete.js +18 -4
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +1 -1
  6. package/cjs/components/Button/Button.js +7 -2
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Button/Button.styles.js +6 -4
  9. package/cjs/components/Button/Button.styles.js.map +1 -1
  10. package/cjs/components/Button/getInnerLinkTheme.js +2 -3
  11. package/cjs/components/Button/getInnerLinkTheme.js.map +1 -1
  12. package/cjs/components/Calendar/Calendar.styles.js +1 -2
  13. package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
  14. package/cjs/components/Calendar/DayCellView.js +1 -1
  15. package/cjs/components/Calendar/DayCellView.js.map +1 -1
  16. package/cjs/components/Calendar/DayCellView.styles.d.ts +1 -1
  17. package/cjs/components/Calendar/DayCellView.styles.js +4 -4
  18. package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
  19. package/cjs/components/Checkbox/Checkbox.d.ts +10 -0
  20. package/cjs/components/Checkbox/Checkbox.js +70 -15
  21. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  22. package/cjs/components/Checkbox/Checkbox.md +18 -0
  23. package/cjs/components/Checkbox/Checkbox.mixins.d.ts +2 -0
  24. package/cjs/components/Checkbox/Checkbox.mixins.js +35 -0
  25. package/cjs/components/Checkbox/Checkbox.mixins.js.map +1 -0
  26. package/cjs/components/Checkbox/Checkbox.styles.d.ts +6 -0
  27. package/cjs/components/Checkbox/Checkbox.styles.js +95 -34
  28. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  29. package/cjs/components/ComboBox/ComboBox.md +5 -3
  30. package/cjs/components/CurrencyInput/CurrencyHelper.d.ts +2 -0
  31. package/cjs/components/CurrencyInput/CurrencyHelper.js +21 -6
  32. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  33. package/cjs/components/DateInput/DateInput.d.ts +3 -0
  34. package/cjs/components/DateInput/DateInput.js +11 -3
  35. package/cjs/components/DateInput/DateInput.js.map +1 -1
  36. package/cjs/components/Dropdown/getDropdownTheme.js +3 -1
  37. package/cjs/components/Dropdown/getDropdownTheme.js.map +1 -1
  38. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  39. package/cjs/components/DropdownMenu/DropdownMenu.js +4 -1
  40. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  41. package/cjs/components/DropdownMenu/DropdownMenu.md +28 -0
  42. package/cjs/components/DropdownMenu/getDropdownMenuTheme.js +5 -1
  43. package/cjs/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
  44. package/cjs/components/FileUploader/FileUploader.styles.js +3 -2
  45. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  46. package/cjs/components/GlobalLoader/GlobalLoader.js +6 -2
  47. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  48. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -1
  49. package/cjs/components/GlobalLoader/GlobalLoaderView.js +6 -4
  50. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  51. package/cjs/components/Input/Input.d.ts +1 -5
  52. package/cjs/components/Input/Input.js +4 -5
  53. package/cjs/components/Input/Input.js.map +1 -1
  54. package/cjs/components/Input/Input.styles.js +3 -2
  55. package/cjs/components/Input/Input.styles.js.map +1 -1
  56. package/cjs/components/Kebab/Kebab.d.ts +1 -1
  57. package/cjs/components/Kebab/Kebab.js +6 -1
  58. package/cjs/components/Kebab/Kebab.js.map +1 -1
  59. package/cjs/components/Kebab/Kebab.md +28 -0
  60. package/cjs/components/Link/Link.js +4 -2
  61. package/cjs/components/Link/Link.js.map +1 -1
  62. package/cjs/components/Link/Link.mixins.d.ts +1 -2
  63. package/cjs/components/Link/Link.mixins.js +5 -16
  64. package/cjs/components/Link/Link.mixins.js.map +1 -1
  65. package/cjs/components/Link/Link.styles.d.ts +2 -0
  66. package/cjs/components/Link/Link.styles.js +58 -38
  67. package/cjs/components/Link/Link.styles.js.map +1 -1
  68. package/cjs/components/Modal/ModalFooter.js +1 -1
  69. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  70. package/cjs/components/Modal/ModalHeader.js +1 -1
  71. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  72. package/cjs/components/Radio/Radio.styles.js +6 -2
  73. package/cjs/components/Radio/Radio.styles.js.map +1 -1
  74. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +3 -2
  75. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
  76. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  77. package/cjs/components/Select/Select.d.ts +7 -5
  78. package/cjs/components/Select/Select.js +15 -6
  79. package/cjs/components/Select/Select.js.map +1 -1
  80. package/cjs/components/Select/Select.styles.js +3 -2
  81. package/cjs/components/Select/Select.styles.js.map +1 -1
  82. package/cjs/components/Select/selectTheme.js +4 -1
  83. package/cjs/components/Select/selectTheme.js.map +1 -1
  84. package/cjs/components/Tabs/Tab.d.ts +1 -0
  85. package/cjs/components/Tabs/Tab.js +15 -1
  86. package/cjs/components/Tabs/Tab.js.map +1 -1
  87. package/cjs/components/Tabs/Tab.styles.d.ts +9 -3
  88. package/cjs/components/Tabs/Tab.styles.js +106 -68
  89. package/cjs/components/Tabs/Tab.styles.js.map +1 -1
  90. package/cjs/components/Tabs/Tabs.d.ts +8 -2
  91. package/cjs/components/Tabs/Tabs.js +15 -1
  92. package/cjs/components/Tabs/Tabs.js.map +1 -1
  93. package/cjs/components/Tabs/Tabs.md +32 -0
  94. package/cjs/components/Tabs/Tabs.styles.d.ts +3 -1
  95. package/cjs/components/Tabs/Tabs.styles.js +23 -7
  96. package/cjs/components/Tabs/Tabs.styles.js.map +1 -1
  97. package/cjs/components/Tabs/TabsContext.d.ts +2 -1
  98. package/cjs/components/Tabs/TabsContext.js +2 -0
  99. package/cjs/components/Tabs/TabsContext.js.map +1 -1
  100. package/cjs/components/Tabs/helpers.d.ts +6 -0
  101. package/cjs/components/Tabs/helpers.js +30 -0
  102. package/cjs/components/Tabs/helpers.js.map +1 -0
  103. package/cjs/components/Textarea/Textarea.styles.js +2 -2
  104. package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
  105. package/cjs/components/Toast/ToastView.styles.js +2 -2
  106. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  107. package/cjs/components/Toggle/Toggle.d.ts +11 -1
  108. package/cjs/components/Toggle/Toggle.js +102 -2
  109. package/cjs/components/Toggle/Toggle.js.map +1 -1
  110. package/cjs/components/Toggle/Toggle.md +16 -2
  111. package/cjs/components/Toggle/Toggle.mixins.d.ts +7 -0
  112. package/cjs/components/Toggle/Toggle.mixins.js +90 -0
  113. package/cjs/components/Toggle/Toggle.mixins.js.map +1 -0
  114. package/cjs/components/Toggle/Toggle.styles.d.ts +21 -1
  115. package/cjs/components/Toggle/Toggle.styles.js +172 -56
  116. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  117. package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
  118. package/cjs/components/TokenInput/TokenInput.js +8 -2
  119. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  120. package/cjs/components/TokenInput/TokenInput.md +26 -35
  121. package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
  122. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  123. package/cjs/components/TokenInput/TokenInputMenu.d.ts +7 -0
  124. package/cjs/components/TokenInput/TokenInputMenu.js +9 -1
  125. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  126. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  127. package/cjs/components/TooltipMenu/TooltipMenu.js +8 -2
  128. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  129. package/cjs/components/TooltipMenu/TooltipMenu.md +28 -0
  130. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.styles.js +2 -1
  131. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -1
  132. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  133. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +10 -1
  134. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  135. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -0
  136. package/cjs/internal/CustomComboBox/ComboBoxView.js +11 -3
  137. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  138. package/cjs/internal/CustomComboBox/CustomComboBox.js +13 -11
  139. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  140. package/cjs/internal/DateSelect/DateSelect.js +1 -1
  141. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  142. package/cjs/internal/DateSelect/DateSelect.styles.d.ts +3 -0
  143. package/cjs/internal/DateSelect/DateSelect.styles.js +15 -3
  144. package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
  145. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +3 -2
  146. package/cjs/internal/DropdownContainer/DropdownContainer.js +6 -1
  147. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  148. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -4
  149. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +7 -5
  150. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  151. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  152. package/cjs/internal/InputLikeText/InputLikeText.js +16 -4
  153. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  154. package/cjs/internal/InternalMenu/InternalMenu.d.ts +13 -4
  155. package/cjs/internal/InternalMenu/InternalMenu.js +15 -5
  156. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  157. package/cjs/internal/InternalMenu/InternalMenu.styles.d.ts +1 -0
  158. package/cjs/internal/InternalMenu/InternalMenu.styles.js +13 -7
  159. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  160. package/cjs/internal/InternalMenu/isIconPaddingEnabled.d.ts +2 -0
  161. package/cjs/internal/InternalMenu/isIconPaddingEnabled.js +9 -0
  162. package/cjs/internal/InternalMenu/isIconPaddingEnabled.js.map +1 -0
  163. package/cjs/internal/Menu/Menu.d.ts +42 -8
  164. package/cjs/internal/Menu/Menu.js +272 -78
  165. package/cjs/internal/Menu/Menu.js.map +1 -1
  166. package/cjs/internal/Menu/Menu.styles.d.ts +6 -1
  167. package/cjs/internal/Menu/Menu.styles.js +42 -8
  168. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  169. package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -2
  170. package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
  171. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  172. package/cjs/internal/Popup/Popup.d.ts +7 -2
  173. package/cjs/internal/Popup/Popup.js +13 -3
  174. package/cjs/internal/Popup/Popup.js.map +1 -1
  175. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -1
  176. package/cjs/internal/PopupMenu/PopupMenu.js +29 -4
  177. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  178. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  179. package/cjs/internal/themes/DefaultTheme.d.ts +114 -17
  180. package/cjs/internal/themes/DefaultTheme.js +244 -68
  181. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  182. package/cjs/internal/themes/Theme2022.d.ts +19 -3
  183. package/cjs/internal/themes/Theme2022.js +33 -13
  184. package/cjs/internal/themes/Theme2022.js.map +1 -1
  185. package/cjs/internal/themes/Theme2022Dark.d.ts +0 -4
  186. package/cjs/internal/themes/Theme2022Dark.js +3 -14
  187. package/cjs/internal/themes/Theme2022Dark.js.map +1 -1
  188. package/cjs/typings/html.d.ts +0 -1
  189. package/components/Autocomplete/Autocomplete/Autocomplete.js +13 -3
  190. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  191. package/components/Autocomplete/Autocomplete.d.ts +5 -0
  192. package/components/Button/Button/Button.js +2 -0
  193. package/components/Button/Button/Button.js.map +1 -1
  194. package/components/Button/Button.d.ts +1 -1
  195. package/components/Button/Button.styles/Button.styles.js +2 -2
  196. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  197. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js +2 -3
  198. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js.map +1 -1
  199. package/components/Calendar/Calendar.styles/Calendar.styles.js +1 -1
  200. package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -1
  201. package/components/Calendar/DayCellView/DayCellView.js +1 -1
  202. package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
  203. package/components/Calendar/DayCellView.styles/DayCellView.styles.js +2 -2
  204. package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  205. package/components/Calendar/DayCellView.styles.d.ts +1 -1
  206. package/components/Checkbox/Checkbox/Checkbox.js +56 -8
  207. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  208. package/components/Checkbox/Checkbox.d.ts +10 -0
  209. package/components/Checkbox/Checkbox.md +18 -0
  210. package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js +17 -0
  211. package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js.map +1 -0
  212. package/components/Checkbox/Checkbox.mixins/package.json +6 -0
  213. package/components/Checkbox/Checkbox.mixins.d.ts +2 -0
  214. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +39 -25
  215. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  216. package/components/Checkbox/Checkbox.styles.d.ts +6 -0
  217. package/components/ComboBox/ComboBox.md +5 -3
  218. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +32 -4
  219. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  220. package/components/CurrencyInput/CurrencyHelper.d.ts +2 -0
  221. package/components/DateInput/DateInput/DateInput.js +5 -1
  222. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  223. package/components/DateInput/DateInput.d.ts +3 -0
  224. package/components/Dropdown/getDropdownTheme/getDropdownTheme.js +3 -1
  225. package/components/Dropdown/getDropdownTheme/getDropdownTheme.js.map +1 -1
  226. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -0
  227. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  228. package/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  229. package/components/DropdownMenu/DropdownMenu.md +28 -0
  230. package/components/DropdownMenu/getDropdownMenuTheme/getDropdownMenuTheme.js +5 -1
  231. package/components/DropdownMenu/getDropdownMenuTheme/getDropdownMenuTheme.js.map +1 -1
  232. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +1 -1
  233. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  234. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +5 -1
  235. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  236. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +6 -2
  237. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  238. package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -1
  239. package/components/Input/Input/Input.js +3 -1
  240. package/components/Input/Input/Input.js.map +1 -1
  241. package/components/Input/Input.d.ts +1 -5
  242. package/components/Input/Input.styles/Input.styles.js +2 -2
  243. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  244. package/components/Kebab/Kebab/Kebab.js +4 -1
  245. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  246. package/components/Kebab/Kebab.d.ts +1 -1
  247. package/components/Kebab/Kebab.md +28 -0
  248. package/components/Link/Link/Link.js +4 -4
  249. package/components/Link/Link/Link.js.map +1 -1
  250. package/components/Link/Link.mixins/Link.mixins.js +2 -5
  251. package/components/Link/Link.mixins/Link.mixins.js.map +1 -1
  252. package/components/Link/Link.mixins.d.ts +1 -2
  253. package/components/Link/Link.styles/Link.styles.js +29 -21
  254. package/components/Link/Link.styles/Link.styles.js.map +1 -1
  255. package/components/Link/Link.styles.d.ts +2 -0
  256. package/components/Modal/ModalFooter/ModalFooter.js +1 -1
  257. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  258. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  259. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  260. package/components/Radio/Radio.styles/Radio.styles.js +2 -2
  261. package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
  262. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  263. package/components/ScrollContainer/ScrollContainer.d.ts +3 -2
  264. package/components/Select/Select/Select.js +15 -7
  265. package/components/Select/Select/Select.js.map +1 -1
  266. package/components/Select/Select.d.ts +7 -5
  267. package/components/Select/Select.styles/Select.styles.js +1 -1
  268. package/components/Select/Select.styles/Select.styles.js.map +1 -1
  269. package/components/Select/selectTheme/selectTheme.js +3 -1
  270. package/components/Select/selectTheme/selectTheme.js.map +1 -1
  271. package/components/Tabs/Tab/Tab.js +3 -3
  272. package/components/Tabs/Tab/Tab.js.map +1 -1
  273. package/components/Tabs/Tab.d.ts +1 -0
  274. package/components/Tabs/Tab.styles/Tab.styles.js +52 -23
  275. package/components/Tabs/Tab.styles/Tab.styles.js.map +1 -1
  276. package/components/Tabs/Tab.styles.d.ts +9 -3
  277. package/components/Tabs/Tabs/Tabs.js +11 -3
  278. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  279. package/components/Tabs/Tabs.d.ts +8 -2
  280. package/components/Tabs/Tabs.md +32 -0
  281. package/components/Tabs/Tabs.styles/Tabs.styles.js +15 -4
  282. package/components/Tabs/Tabs.styles/Tabs.styles.js.map +1 -1
  283. package/components/Tabs/Tabs.styles.d.ts +3 -1
  284. package/components/Tabs/TabsContext/TabsContext.js +1 -0
  285. package/components/Tabs/TabsContext/TabsContext.js.map +1 -1
  286. package/components/Tabs/TabsContext.d.ts +2 -1
  287. package/components/Tabs/helpers/helpers.js +25 -0
  288. package/components/Tabs/helpers/helpers.js.map +1 -0
  289. package/components/Tabs/helpers/package.json +6 -0
  290. package/components/Tabs/helpers.d.ts +6 -0
  291. package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
  292. package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
  293. package/components/Toast/ToastView.styles/ToastView.styles.js +1 -1
  294. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  295. package/components/Toggle/Toggle/Toggle.js +112 -9
  296. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  297. package/components/Toggle/Toggle.d.ts +11 -1
  298. package/components/Toggle/Toggle.md +16 -2
  299. package/components/Toggle/Toggle.mixins/Toggle.mixins.js +35 -0
  300. package/components/Toggle/Toggle.mixins/Toggle.mixins.js.map +1 -0
  301. package/components/Toggle/Toggle.mixins/package.json +6 -0
  302. package/components/Toggle/Toggle.mixins.d.ts +7 -0
  303. package/components/Toggle/Toggle.styles/Toggle.styles.js +85 -31
  304. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  305. package/components/Toggle/Toggle.styles.d.ts +21 -1
  306. package/components/TokenInput/TokenInput/TokenInput.js +9 -3
  307. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  308. package/components/TokenInput/TokenInput.d.ts +2 -0
  309. package/components/TokenInput/TokenInput.md +26 -35
  310. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  311. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  312. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -0
  313. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  314. package/components/TokenInput/TokenInputMenu.d.ts +7 -0
  315. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +7 -2
  316. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  317. package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  318. package/components/TooltipMenu/TooltipMenu.md +28 -0
  319. package/internal/CloseButtonIcon/CloseButtonIcon.styles/CloseButtonIcon.styles.js +1 -1
  320. package/internal/CloseButtonIcon/CloseButtonIcon.styles/CloseButtonIcon.styles.js.map +1 -1
  321. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +5 -0
  322. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  323. package/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  324. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +10 -3
  325. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  326. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -0
  327. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +23 -20
  328. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  329. package/internal/DateSelect/DateSelect/DateSelect.js +2 -1
  330. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  331. package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js +5 -2
  332. package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js.map +1 -1
  333. package/internal/DateSelect/DateSelect.styles.d.ts +3 -0
  334. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +2 -0
  335. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  336. package/internal/DropdownContainer/DropdownContainer.d.ts +3 -2
  337. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +5 -4
  338. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  339. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -4
  340. package/internal/InputLikeText/InputLikeText/InputLikeText.js +20 -8
  341. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  342. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  343. package/internal/InternalMenu/InternalMenu/InternalMenu.js +11 -6
  344. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  345. package/internal/InternalMenu/InternalMenu.d.ts +13 -4
  346. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +10 -7
  347. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  348. package/internal/InternalMenu/InternalMenu.styles.d.ts +1 -0
  349. package/internal/InternalMenu/isIconPaddingEnabled/isIconPaddingEnabled.js +6 -0
  350. package/internal/InternalMenu/isIconPaddingEnabled/isIconPaddingEnabled.js.map +1 -0
  351. package/internal/InternalMenu/isIconPaddingEnabled/package.json +6 -0
  352. package/internal/InternalMenu/isIconPaddingEnabled.d.ts +2 -0
  353. package/internal/Menu/Menu/Menu.js +197 -42
  354. package/internal/Menu/Menu/Menu.js.map +1 -1
  355. package/internal/Menu/Menu.d.ts +42 -8
  356. package/internal/Menu/Menu.styles/Menu.styles.js +20 -5
  357. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  358. package/internal/Menu/Menu.styles.d.ts +6 -1
  359. package/internal/MobilePopup/MobilePopup/MobilePopup.js +1 -0
  360. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  361. package/internal/MobilePopup/MobilePopup.d.ts +2 -2
  362. package/internal/Popup/Popup/Popup.js +9 -3
  363. package/internal/Popup/Popup/Popup.js.map +1 -1
  364. package/internal/Popup/Popup.d.ts +7 -2
  365. package/internal/PopupMenu/PopupMenu/PopupMenu.js +27 -5
  366. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  367. package/internal/PopupMenu/PopupMenu.d.ts +4 -1
  368. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  369. package/internal/themes/DefaultTheme/DefaultTheme.js +320 -88
  370. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  371. package/internal/themes/DefaultTheme.d.ts +114 -17
  372. package/internal/themes/Theme2022/Theme2022.js +59 -44
  373. package/internal/themes/Theme2022/Theme2022.js.map +1 -1
  374. package/internal/themes/Theme2022.d.ts +19 -3
  375. package/internal/themes/Theme2022Dark/Theme2022Dark.js +1 -18
  376. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -1
  377. package/internal/themes/Theme2022Dark.d.ts +0 -4
  378. package/package.json +3 -3
  379. package/typings/html.d.ts +0 -1
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import _createClass from "@babel/runtime/helpers/esm/createClass";
4
4
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
5
- var _excluded = ["onMouseEnter", "onMouseLeave", "onMouseOver", "onKeyDown", "onKeyPress", "onValueChange", "width", "error", "role", "warning", "leftIcon", "rightIcon", "borderless", "value", "align", "type", "mask", "maskChar", "alwaysShowMask", "size", "placeholder", "selectAllOnFocus", "disabled", "onUnexpectedInput", "prefix", "suffix", "formatChars", "corners", "aria-describedby"];
5
+ var _excluded = ["onMouseEnter", "onMouseLeave", "onMouseOver", "onKeyDown", "onKeyPress", "onValueChange", "width", "error", "role", "warning", "leftIcon", "rightIcon", "borderless", "value", "align", "type", "mask", "maskChar", "alwaysShowMask", "size", "placeholder", "selectAllOnFocus", "disabled", "onUnexpectedInput", "prefix", "suffix", "formatChars", "corners", "aria-describedby", "aria-controls"];
6
6
 
7
7
  var _class, _class2, _temp; // TODO: Enable this rule in functional components.
8
8
 
@@ -147,6 +147,7 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
147
147
  formatChars = props.formatChars,
148
148
  corners = props.corners,
149
149
  ariaDescribedby = props['aria-describedby'],
150
+ ariaControls = props['aria-controls'],
150
151
  rest = _objectWithoutPropertiesLoose(props, _excluded);
151
152
 
152
153
  var _this$state = _this.state,
@@ -154,6 +155,7 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
154
155
  focused = _this$state.focused;
155
156
  var labelProps = {
156
157
  className: cx(styles.root(_this.theme), _this.getSizeClassName(), (_cx = {}, _cx[styles.focus(_this.theme)] = focused && !warning && !error, _cx[styles.hovering(_this.theme)] = !focused && !disabled && !warning && !error && !borderless, _cx[styles.blink(_this.theme)] = blinking, _cx[styles.borderless()] = borderless && !focused, _cx[styles.disabled(_this.theme)] = disabled, _cx[styles.warning(_this.theme)] = warning, _cx[styles.error(_this.theme)] = error, _cx[styles.focusFallback(_this.theme)] = focused && (isIE11 || isEdge), _cx[styles.warningFallback(_this.theme)] = warning && (isIE11 || isEdge), _cx[styles.errorFallback(_this.theme)] = error && (isIE11 || isEdge), _cx)),
158
+ 'aria-controls': ariaControls,
157
159
  style: _extends({
158
160
  width: width
159
161
  }, corners),
@@ -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","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 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 * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\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 ...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 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 };\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","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","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'>,\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 ...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 };\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"]}
@@ -11,7 +11,7 @@ export declare const selectionErrorMessage: (type: InputType, allowedTypes?: Inp
11
11
  export declare const maskForbiddenTypes: InputType[];
12
12
  export declare const maskAllowedTypes: InputType[];
13
13
  export declare const maskErrorMessage: (type: InputType, allowedTypes?: InputType[]) => string;
14
- export interface InputProps extends CommonProps, Pick<HTMLAttributes<unknown>, 'role'>, Override<React.InputHTMLAttributes<HTMLInputElement>, {
14
+ export interface InputProps extends CommonProps, Pick<HTMLAttributes<unknown>, 'role'>, Pick<AriaAttributes, 'aria-describedby' | 'aria-controls'>, Override<React.InputHTMLAttributes<HTMLInputElement>, {
15
15
  /**
16
16
  * Иконка слева
17
17
  * Если `ReactNode` применяются дефолтные стили для иконки
@@ -88,10 +88,6 @@ export interface InputProps extends CommonProps, Pick<HTMLAttributes<unknown>, '
88
88
  onUnexpectedInput?: (value: string) => void;
89
89
  /** @ignore */
90
90
  corners?: Partial<Pick<React.CSSProperties, 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'>>;
91
- /**
92
- * Атрибут для указания id элемента(-ов), описывающих его
93
- */
94
- 'aria-describedby'?: AriaAttributes['aria-describedby'];
95
91
  }> {
96
92
  }
97
93
  export interface InputState {
@@ -15,7 +15,7 @@ export var styles = memoizeStyle({
15
15
  return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n align-items: center;\n display: flex;\n margin: 0;\n min-width: 0;\n overflow: hidden;\n position: relative;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n\n &::before {\n content: '\\A0';\n display: inline-block;\n width: 0;\n }\n "], ["\n align-items: center;\n display: flex;\n margin: 0;\n min-width: 0;\n overflow: hidden;\n position: relative;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n\n &::before {\n content: '\\\\A0';\n display: inline-block;\n width: 0;\n }\n "])));
16
16
  },
17
17
  root: function root(t) {
18
- return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n ", ";\n\n align-items: center;\n background-clip: ", ";\n background-color: ", ";\n border: ", " solid ", ";\n border-top-color: ", ";\n box-shadow: ", ";\n box-sizing: border-box;\n color: ", ";\n cursor: text;\n display: inline-flex;\n outline: none;\n position: relative;\n width: ", ";\n\n & * {\n box-sizing: border-box;\n }\n "])), resetText(), t.inputBackgroundClip, t.inputBg, t.inputBorderWidth, t.inputBorderColor, t.inputBorderTopColor, t.inputShadow, t.inputColor, t.inputWidth);
18
+ return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n ", ";\n\n align-items: center;\n background-clip: ", ";\n background-color: ", ";\n border: ", " solid ", ";\n border-top-color: ", ";\n transition: border-color ", " ", ";\n box-shadow: ", ";\n box-sizing: border-box;\n color: ", ";\n cursor: text;\n display: inline-flex;\n outline: none;\n position: relative;\n width: ", ";\n\n & * {\n box-sizing: border-box;\n }\n "])), resetText(), t.inputBackgroundClip, t.inputBg, t.inputBorderWidth, t.inputBorderColor, t.inputBorderTopColor, t.transitionDuration, t.transitionTimingFunction, t.inputShadow, t.inputColor, t.inputWidth);
19
19
  },
20
20
  hovering: function hovering(t) {
21
21
  return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n &:hover {\n border-color: ", ";\n }\n "])), t.inputBorderColorHover);
@@ -27,7 +27,7 @@ export var styles = memoizeStyle({
27
27
  return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.inputIconColor);
28
28
  },
29
29
  focus: function focus(t) {
30
- return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n background-color: ", ";\n border-color: ", " !important;\n box-shadow: ", ";\n outline: none;\n z-index: 2;\n "])), t.inputFocusedBg, t.inputBorderColorFocus, t.inputFocusShadow);
30
+ return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n background-color: ", ";\n border-color: ", ";\n box-shadow: ", ";\n outline: none;\n z-index: 2;\n "])), t.inputFocusedBg, t.inputBorderColorFocus, t.inputFocusShadow);
31
31
  },
32
32
  focusFallback: function focusFallback(t) {
33
33
  return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n box-shadow: none;\n outline: ", " solid ", ";\n "])), t.inputOutlineWidth, t.inputFocusOutline);
@@ -1 +1 @@
1
- {"version":3,"sources":["Input.styles.ts"],"names":["css","keyframes","memoizeStyle","shift","resetText","shouldCompensateFontFamily","fontFamilyCompensation","Boolean","parseInt","styles","wrapper","root","t","inputBackgroundClip","inputBg","inputBorderWidth","inputBorderColor","inputBorderTopColor","inputShadow","inputColor","inputWidth","hovering","inputBorderColorHover","borderless","useDefaultColor","inputIconColor","focus","inputFocusedBg","inputBorderColorFocus","inputFocusShadow","focusFallback","inputOutlineWidth","inputFocusOutline","placeholder","inputPlaceholderColor","placeholderFocus","inputPlaceholderColorLight","placeholderDisabled","inputPlaceholderColorDisabled","input","inputTextColor","inputColorScheme","inputFocus","inputDisabled","inputTextColorDisabled","warning","inputBorderColorWarning","warningFallback","error","inputBorderColorError","errorFallback","disabled","inputDisabledBg","inputDisabledBorderColor","blink","blinkAnimation","inputBlinkColor","sizeSmall","inputFontSizeSmall","inputLineHeightSmall","inputPaddingYSmall","inputPaddingXSmall","inputHeightSmall","inputBorderRadiusSmall","sizeSmallFallback","fontFamilyCompensationBaseline","sizeMedium","inputFontSizeMedium","inputLineHeightMedium","inputPaddingYMedium","inputPaddingXMedium","inputHeightMedium","inputBorderRadiusMedium","sizeMediumFallback","sizeLarge","inputFontSizeLarge","inputLineHeightLarge","inputHeightLarge","inputPaddingYLarge","inputPaddingXLarge","inputBorderRadiusLarge","sizeLargeFallback","prefix","prefixDisabled","suffix","suffixDisabled","sideContainer","rightContainer","icon","iconFocus","inputFocusedIconColor","iconDisabled","leftIconSmall","inputIconSizeSmall","inputIconGapSmall","rightIconSmall","leftIconMedium","inputIconSizeMedium","inputIconGapMedium","rightIconMedium","leftIconLarge","inputIconSizeLarge","inputIconGapLarge","rightIconLarge","hideBlinkingCursor"],"mappings":"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","sourcesContent":["import { css, keyframes, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { shift } from '../../lib/styles/DimensionFunctions';\nimport { resetText } from '../../lib/styles/Mixins';\n\nconst shouldCompensateFontFamily = (fontFamilyCompensation: string): boolean =>\n Boolean(parseInt(fontFamilyCompensation));\n\nexport const styles = memoizeStyle({\n wrapper() {\n return css`\n align-items: center;\n display: flex;\n margin: 0;\n min-width: 0;\n overflow: hidden;\n position: relative;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n\n &::before {\n content: '\\\\A0';\n display: inline-block;\n width: 0;\n }\n `;\n },\n\n root(t: Theme) {\n return css`\n ${resetText()};\n\n align-items: center;\n background-clip: ${t.inputBackgroundClip};\n background-color: ${t.inputBg};\n border: ${t.inputBorderWidth} solid ${t.inputBorderColor};\n border-top-color: ${t.inputBorderTopColor};\n box-shadow: ${t.inputShadow};\n box-sizing: border-box;\n color: ${t.inputColor};\n cursor: text;\n display: inline-flex;\n outline: none;\n position: relative;\n width: ${t.inputWidth};\n\n & * {\n box-sizing: border-box;\n }\n `;\n },\n\n hovering(t: Theme) {\n return css`\n &:hover {\n border-color: ${t.inputBorderColorHover};\n }\n `;\n },\n\n borderless() {\n return css`\n box-shadow: none;\n border-color: transparent;\n background-clip: padding-box;\n `;\n },\n\n useDefaultColor(t: Theme) {\n return css`\n color: ${t.inputIconColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n background-color: ${t.inputFocusedBg};\n border-color: ${t.inputBorderColorFocus} !important;\n box-shadow: ${t.inputFocusShadow};\n outline: none;\n z-index: 2;\n `;\n },\n\n focusFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputOutlineWidth} solid ${t.inputFocusOutline};\n `;\n },\n\n placeholder(t: Theme) {\n return css`\n -ms-user-select: none;\n color: ${t.inputPlaceholderColor};\n cursor: text;\n font-size: inherit;\n height: 100%;\n left: 0;\n overflow: hidden;\n pointer-events: none;\n position: absolute;\n top: 0;\n user-select: none;\n white-space: nowrap;\n width: 100%;\n `;\n },\n\n placeholderFocus(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorLight};\n `;\n },\n\n placeholderDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n input(t: Theme) {\n return css`\n -webkit-appearance: none;\n background: transparent;\n border: 0 none;\n color: ${t.inputTextColor};\n font: inherit;\n line-height: inherit;\n margin: 0;\n outline: none;\n padding: 0;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n color-scheme: ${t.inputColorScheme};\n\n &:-moz-placeholder {\n opacity: 1;\n }\n &::-moz-placeholder {\n opacity: 1;\n }\n &::-ms-clear {\n display: none;\n }\n &:-moz-placeholder {\n color: ${t.inputPlaceholderColor};\n }\n &::-moz-placeholder {\n color: ${t.inputPlaceholderColor};\n }\n &::placeholder {\n color: ${t.inputPlaceholderColor};\n }\n `;\n },\n\n inputFocus(t: Theme) {\n return css`\n &:-moz-placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n &::-moz-placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n &::placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n `;\n },\n\n inputDisabled(t: Theme) {\n return css`\n color: ${t.inputTextColorDisabled};\n /* fix text color in safari https://bugs.webkit.org/show_bug.cgi?id=115510 */\n -webkit-text-fill-color: ${t.inputTextColorDisabled};\n\n &:-moz-placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n &::-moz-placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n &::placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorWarning};\n box-shadow: 0 0 0 ${t.inputOutlineWidth} ${t.inputBorderColorWarning};\n z-index: 2;\n `;\n },\n\n warningFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputBorderWidth} solid ${t.inputBorderColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorError};\n box-shadow: 0 0 0 ${t.inputOutlineWidth} ${t.inputBorderColorError};\n z-index: 2;\n `;\n },\n\n errorFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputBorderWidth} solid ${t.inputBorderColorError};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n background-color: ${t.inputDisabledBg};\n border-color: ${t.inputDisabledBorderColor};\n box-shadow: none;\n `;\n },\n\n blink(t: Theme) {\n const blinkAnimation = keyframes`\n 0% {\n background-color: ${t.inputBlinkColor};\n }\n `;\n return css`\n animation: ${blinkAnimation} 0.15s ease-in;\n `;\n },\n\n sizeSmall(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeSmall};\n line-height: ${t.inputLineHeightSmall};\n padding-top: ${t.inputPaddingYSmall};\n padding-bottom: ${t.inputPaddingYSmall};\n padding-left: ${t.inputPaddingXSmall};\n padding-right: ${t.inputPaddingXSmall};\n height: ${t.inputHeightSmall};\n border-radius: ${t.inputBorderRadiusSmall};\n `;\n },\n\n sizeSmallFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYSmall,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYSmall,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXSmall};\n padding-right: ${t.inputPaddingXSmall};\n line-height: normal;\n `;\n },\n\n sizeMedium(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeMedium};\n line-height: ${t.inputLineHeightMedium};\n padding-top: ${t.inputPaddingYMedium};\n padding-bottom: ${t.inputPaddingYMedium};\n padding-left: ${t.inputPaddingXMedium};\n padding-right: ${t.inputPaddingXMedium};\n height: ${t.inputHeightMedium};\n border-radius: ${t.inputBorderRadiusMedium};\n `;\n },\n\n sizeMediumFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYMedium,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYMedium,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXMedium};\n padding-right: ${t.inputPaddingXMedium};\n line-height: normal;\n `;\n },\n\n sizeLarge(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeLarge};\n line-height: ${t.inputLineHeightLarge};\n height: ${t.inputHeightLarge};\n padding-top: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXLarge};\n padding-right: ${t.inputPaddingXLarge};\n border-radius: ${t.inputBorderRadiusLarge};\n `;\n },\n\n sizeLargeFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-2' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '2' : '0',\n )};\n padding-left: ${t.inputPaddingXLarge};\n padding-right: ${t.inputPaddingXLarge};\n line-height: normal;\n `;\n },\n\n prefix(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n\n prefixDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n suffix(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n\n suffixDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n sideContainer() {\n return css`\n align-items: center;\n display: flex;\n flex-shrink: 0;\n height: 100%;\n\n &::before {\n content: '\\\\a0';\n display: inline-block;\n width: 0;\n }\n `;\n },\n\n rightContainer() {\n return css`\n justify-self: flex-end;\n margin: 0 0 0 auto;\n padding-left: 0;\n `;\n },\n\n icon() {\n return css`\n flex-shrink: 0;\n cursor: text;\n z-index: 2;\n text-align: center;\n box-sizing: content-box !important; // fix possible \"reset.css\" problem\n `;\n },\n\n iconFocus(t: Theme) {\n return css`\n color: ${t.inputFocusedIconColor};\n `;\n },\n\n iconDisabled() {\n return css`\n cursor: default;\n `;\n },\n\n leftIconSmall(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeSmall};\n padding-right: ${t.inputIconGapSmall};\n `;\n },\n\n rightIconSmall(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeSmall};\n padding-left: ${t.inputIconGapSmall};\n `;\n },\n\n leftIconMedium(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeMedium};\n padding-right: ${t.inputIconGapMedium};\n `;\n },\n\n rightIconMedium(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeMedium};\n padding-left: ${t.inputIconGapMedium};\n `;\n },\n\n leftIconLarge(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeLarge};\n padding-right: ${t.inputIconGapLarge};\n `;\n },\n\n rightIconLarge(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeLarge};\n padding-left: ${t.inputIconGapLarge};\n `;\n },\n\n hideBlinkingCursor() {\n return css`\n caret-color: transparent;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Input.styles.ts"],"names":["css","keyframes","memoizeStyle","shift","resetText","shouldCompensateFontFamily","fontFamilyCompensation","Boolean","parseInt","styles","wrapper","root","t","inputBackgroundClip","inputBg","inputBorderWidth","inputBorderColor","inputBorderTopColor","transitionDuration","transitionTimingFunction","inputShadow","inputColor","inputWidth","hovering","inputBorderColorHover","borderless","useDefaultColor","inputIconColor","focus","inputFocusedBg","inputBorderColorFocus","inputFocusShadow","focusFallback","inputOutlineWidth","inputFocusOutline","placeholder","inputPlaceholderColor","placeholderFocus","inputPlaceholderColorLight","placeholderDisabled","inputPlaceholderColorDisabled","input","inputTextColor","inputColorScheme","inputFocus","inputDisabled","inputTextColorDisabled","warning","inputBorderColorWarning","warningFallback","error","inputBorderColorError","errorFallback","disabled","inputDisabledBg","inputDisabledBorderColor","blink","blinkAnimation","inputBlinkColor","sizeSmall","inputFontSizeSmall","inputLineHeightSmall","inputPaddingYSmall","inputPaddingXSmall","inputHeightSmall","inputBorderRadiusSmall","sizeSmallFallback","fontFamilyCompensationBaseline","sizeMedium","inputFontSizeMedium","inputLineHeightMedium","inputPaddingYMedium","inputPaddingXMedium","inputHeightMedium","inputBorderRadiusMedium","sizeMediumFallback","sizeLarge","inputFontSizeLarge","inputLineHeightLarge","inputHeightLarge","inputPaddingYLarge","inputPaddingXLarge","inputBorderRadiusLarge","sizeLargeFallback","prefix","prefixDisabled","suffix","suffixDisabled","sideContainer","rightContainer","icon","iconFocus","inputFocusedIconColor","iconDisabled","leftIconSmall","inputIconSizeSmall","inputIconGapSmall","rightIconSmall","leftIconMedium","inputIconSizeMedium","inputIconGapMedium","rightIconMedium","leftIconLarge","inputIconSizeLarge","inputIconGapLarge","rightIconLarge","hideBlinkingCursor"],"mappings":"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","sourcesContent":["import { css, keyframes, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { shift } from '../../lib/styles/DimensionFunctions';\nimport { resetText } from '../../lib/styles/Mixins';\n\nconst shouldCompensateFontFamily = (fontFamilyCompensation: string): boolean =>\n Boolean(parseInt(fontFamilyCompensation));\n\nexport const styles = memoizeStyle({\n wrapper() {\n return css`\n align-items: center;\n display: flex;\n margin: 0;\n min-width: 0;\n overflow: hidden;\n position: relative;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n\n &::before {\n content: '\\\\A0';\n display: inline-block;\n width: 0;\n }\n `;\n },\n\n root(t: Theme) {\n return css`\n ${resetText()};\n\n align-items: center;\n background-clip: ${t.inputBackgroundClip};\n background-color: ${t.inputBg};\n border: ${t.inputBorderWidth} solid ${t.inputBorderColor};\n border-top-color: ${t.inputBorderTopColor};\n transition: border-color ${t.transitionDuration} ${t.transitionTimingFunction};\n box-shadow: ${t.inputShadow};\n box-sizing: border-box;\n color: ${t.inputColor};\n cursor: text;\n display: inline-flex;\n outline: none;\n position: relative;\n width: ${t.inputWidth};\n\n & * {\n box-sizing: border-box;\n }\n `;\n },\n\n hovering(t: Theme) {\n return css`\n &:hover {\n border-color: ${t.inputBorderColorHover};\n }\n `;\n },\n\n borderless() {\n return css`\n box-shadow: none;\n border-color: transparent;\n background-clip: padding-box;\n `;\n },\n\n useDefaultColor(t: Theme) {\n return css`\n color: ${t.inputIconColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n background-color: ${t.inputFocusedBg};\n border-color: ${t.inputBorderColorFocus};\n box-shadow: ${t.inputFocusShadow};\n outline: none;\n z-index: 2;\n `;\n },\n\n focusFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputOutlineWidth} solid ${t.inputFocusOutline};\n `;\n },\n\n placeholder(t: Theme) {\n return css`\n -ms-user-select: none;\n color: ${t.inputPlaceholderColor};\n cursor: text;\n font-size: inherit;\n height: 100%;\n left: 0;\n overflow: hidden;\n pointer-events: none;\n position: absolute;\n top: 0;\n user-select: none;\n white-space: nowrap;\n width: 100%;\n `;\n },\n\n placeholderFocus(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorLight};\n `;\n },\n\n placeholderDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n input(t: Theme) {\n return css`\n -webkit-appearance: none;\n background: transparent;\n border: 0 none;\n color: ${t.inputTextColor};\n font: inherit;\n line-height: inherit;\n margin: 0;\n outline: none;\n padding: 0;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n color-scheme: ${t.inputColorScheme};\n\n &:-moz-placeholder {\n opacity: 1;\n }\n &::-moz-placeholder {\n opacity: 1;\n }\n &::-ms-clear {\n display: none;\n }\n &:-moz-placeholder {\n color: ${t.inputPlaceholderColor};\n }\n &::-moz-placeholder {\n color: ${t.inputPlaceholderColor};\n }\n &::placeholder {\n color: ${t.inputPlaceholderColor};\n }\n `;\n },\n\n inputFocus(t: Theme) {\n return css`\n &:-moz-placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n &::-moz-placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n &::placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n `;\n },\n\n inputDisabled(t: Theme) {\n return css`\n color: ${t.inputTextColorDisabled};\n /* fix text color in safari https://bugs.webkit.org/show_bug.cgi?id=115510 */\n -webkit-text-fill-color: ${t.inputTextColorDisabled};\n\n &:-moz-placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n &::-moz-placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n &::placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorWarning};\n box-shadow: 0 0 0 ${t.inputOutlineWidth} ${t.inputBorderColorWarning};\n z-index: 2;\n `;\n },\n\n warningFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputBorderWidth} solid ${t.inputBorderColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorError};\n box-shadow: 0 0 0 ${t.inputOutlineWidth} ${t.inputBorderColorError};\n z-index: 2;\n `;\n },\n\n errorFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputBorderWidth} solid ${t.inputBorderColorError};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n background-color: ${t.inputDisabledBg};\n border-color: ${t.inputDisabledBorderColor};\n box-shadow: none;\n `;\n },\n\n blink(t: Theme) {\n const blinkAnimation = keyframes`\n 0% {\n background-color: ${t.inputBlinkColor};\n }\n `;\n return css`\n animation: ${blinkAnimation} 0.15s ease-in;\n `;\n },\n\n sizeSmall(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeSmall};\n line-height: ${t.inputLineHeightSmall};\n padding-top: ${t.inputPaddingYSmall};\n padding-bottom: ${t.inputPaddingYSmall};\n padding-left: ${t.inputPaddingXSmall};\n padding-right: ${t.inputPaddingXSmall};\n height: ${t.inputHeightSmall};\n border-radius: ${t.inputBorderRadiusSmall};\n `;\n },\n\n sizeSmallFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYSmall,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYSmall,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXSmall};\n padding-right: ${t.inputPaddingXSmall};\n line-height: normal;\n `;\n },\n\n sizeMedium(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeMedium};\n line-height: ${t.inputLineHeightMedium};\n padding-top: ${t.inputPaddingYMedium};\n padding-bottom: ${t.inputPaddingYMedium};\n padding-left: ${t.inputPaddingXMedium};\n padding-right: ${t.inputPaddingXMedium};\n height: ${t.inputHeightMedium};\n border-radius: ${t.inputBorderRadiusMedium};\n `;\n },\n\n sizeMediumFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYMedium,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYMedium,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXMedium};\n padding-right: ${t.inputPaddingXMedium};\n line-height: normal;\n `;\n },\n\n sizeLarge(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeLarge};\n line-height: ${t.inputLineHeightLarge};\n height: ${t.inputHeightLarge};\n padding-top: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXLarge};\n padding-right: ${t.inputPaddingXLarge};\n border-radius: ${t.inputBorderRadiusLarge};\n `;\n },\n\n sizeLargeFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-2' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '2' : '0',\n )};\n padding-left: ${t.inputPaddingXLarge};\n padding-right: ${t.inputPaddingXLarge};\n line-height: normal;\n `;\n },\n\n prefix(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n\n prefixDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n suffix(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n\n suffixDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n sideContainer() {\n return css`\n align-items: center;\n display: flex;\n flex-shrink: 0;\n height: 100%;\n\n &::before {\n content: '\\\\a0';\n display: inline-block;\n width: 0;\n }\n `;\n },\n\n rightContainer() {\n return css`\n justify-self: flex-end;\n margin: 0 0 0 auto;\n padding-left: 0;\n `;\n },\n\n icon() {\n return css`\n flex-shrink: 0;\n cursor: text;\n z-index: 2;\n text-align: center;\n box-sizing: content-box !important; // fix possible \"reset.css\" problem\n `;\n },\n\n iconFocus(t: Theme) {\n return css`\n color: ${t.inputFocusedIconColor};\n `;\n },\n\n iconDisabled() {\n return css`\n cursor: default;\n `;\n },\n\n leftIconSmall(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeSmall};\n padding-right: ${t.inputIconGapSmall};\n `;\n },\n\n rightIconSmall(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeSmall};\n padding-left: ${t.inputIconGapSmall};\n `;\n },\n\n leftIconMedium(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeMedium};\n padding-right: ${t.inputIconGapMedium};\n `;\n },\n\n rightIconMedium(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeMedium};\n padding-left: ${t.inputIconGapMedium};\n `;\n },\n\n leftIconLarge(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeLarge};\n padding-right: ${t.inputIconGapLarge};\n `;\n },\n\n rightIconLarge(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeLarge};\n padding-left: ${t.inputIconGapLarge};\n `;\n },\n\n hideBlinkingCursor() {\n return css`\n caret-color: transparent;\n `;\n },\n});\n"]}
@@ -65,6 +65,7 @@ export var Kebab = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
65
65
  };
66
66
 
67
67
  return /*#__PURE__*/React.createElement("span", {
68
+ role: "button",
68
69
  "data-tid": KebabDataTids.caption,
69
70
  tabIndex: disabled ? -1 : 0,
70
71
  onClick: handleCaptionClick,
@@ -134,7 +135,8 @@ export var Kebab = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
134
135
  value: ThemeFactory.create({
135
136
  popupPinOffset: theme.kebabPinOffset,
136
137
  popupMargin: theme.kebabMargin,
137
- popupPinSize: theme.kebabPinSize
138
+ popupPinSize: theme.kebabPinSize,
139
+ menuScrollContainerContentWrapperPaddingY: theme.menuLegacyPaddingY
138
140
  }, theme)
139
141
  }, _this2.renderMain());
140
142
  });
@@ -153,6 +155,7 @@ export var Kebab = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
153
155
  rootNodeRef: this.setRootNode
154
156
  }, this.props), /*#__PURE__*/React.createElement(PopupMenu, {
155
157
  popupHasPin: true,
158
+ preventIconsOffset: this.props.preventIconsOffset,
156
159
  positions: positions,
157
160
  onChangeMenuState: this.handleChangeMenuState,
158
161
  caption: this.renderCaption,
@@ -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","renderMain","positions","disableAnimations","onOpen","onClose","setRootNode","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 extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId'> {\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 },\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 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 >\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 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","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 CommonProps,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'> {\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 >\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"]}
@@ -3,7 +3,7 @@ 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
- export interface KebabProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId'> {
6
+ export interface KebabProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'> {
7
7
  disabled?: boolean;
8
8
  size?: 'small' | 'medium' | 'large';
9
9
  /**
@@ -160,6 +160,34 @@ let Card = ({ title }) => (
160
160
  <Card title="С кастомным действием" />
161
161
  ```
162
162
 
163
+ С иконками и включенным по-умолчанию автоматическим выравниванием текста.
164
+
165
+ ```jsx harmony
166
+ import { Button, MenuHeader, MenuItem, MenuSeparator, Kebab } from '@skbkontur/react-ui';
167
+ import OkIcon from '@skbkontur/react-icons/Ok';
168
+
169
+ <Kebab>
170
+ <MenuHeader>MenuHeader</MenuHeader>
171
+ <MenuItem icon={<OkIcon />}>MenuItem1</MenuItem>
172
+ <MenuItem icon={<OkIcon />}>MenuItem2</MenuItem>
173
+ <MenuItem>MenuItem3</MenuItem>
174
+ </Kebab>;
175
+ ```
176
+
177
+ С иконками и отключенным автоматическим выравниванием текста.
178
+
179
+ ```jsx harmony
180
+ import { Button, MenuHeader, MenuItem, MenuSeparator, Kebab } from '@skbkontur/react-ui';
181
+ import OkIcon from '@skbkontur/react-icons/Ok';
182
+
183
+ <Kebab preventIconsOffset>
184
+ <MenuHeader>MenuHeader</MenuHeader>
185
+ <MenuItem icon={<OkIcon />}>MenuItem1</MenuItem>
186
+ <MenuItem icon={<OkIcon />}>MenuItem2</MenuItem>
187
+ <MenuItem>MenuItem3</MenuItem>
188
+ </Kebab>
189
+ ```
190
+
163
191
  Отключенное кебаб-меню.
164
192
 
165
193
  ```jsx harmony
@@ -16,7 +16,7 @@ import { cx } from "../../../lib/theming/Emotion";
16
16
  import { rootNode } from "../../../lib/rootNode";
17
17
  import { createPropsGetter } from "../../../lib/createPropsGetter";
18
18
  import { ThemeFactory } from "../../../lib/theming/ThemeFactory";
19
- import { isTheme2022 } from "../../../lib/theming/ThemeHelpers";
19
+ import { isDarkTheme, isTheme2022 } from "../../../lib/theming/ThemeHelpers";
20
20
  import { globalClasses, styles } from "../Link.styles";
21
21
  export var LinkDataTids = {
22
22
  root: 'Link__root'
@@ -85,7 +85,7 @@ var Link = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Co
85
85
 
86
86
  var isFocused = !disabled && (_this.state.focusedByTab || focused);
87
87
  var linkProps = {
88
- className: cx(use === 'default' && styles.useDefault(_this.theme), use === 'success' && styles.useSuccess(_this.theme), use === 'danger' && styles.useDanger(_this.theme), use === 'grayed' && styles.useGrayed(_this.theme), !!_button && styles.button(_this.theme), !!_buttonOpened && styles.buttonOpened(_this.theme), _this.getLinkClassName(isFocused, Boolean(disabled || loading))),
88
+ className: cx(styles.useRoot(), use === 'default' && styles.useDefault(_this.theme), use === 'success' && styles.useSuccess(_this.theme), use === 'danger' && styles.useDanger(_this.theme), use === 'grayed' && styles.useGrayed(_this.theme), !!_button && styles.button(_this.theme), !!_buttonOpened && styles.buttonOpened(_this.theme), _this.getLinkClassName(isFocused, Boolean(disabled || loading), _isTheme2022)),
89
89
  href: href,
90
90
  rel: rel,
91
91
  onClick: _this.handleClick,
@@ -159,13 +159,13 @@ var Link = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Co
159
159
  });
160
160
  };
161
161
 
162
- _proto.getLinkClassName = function getLinkClassName(focused, disabled) {
162
+ _proto.getLinkClassName = function getLinkClassName(focused, disabled, _isTheme2022) {
163
163
  var _this$getProps = this.getProps(),
164
164
  use = _this$getProps.use;
165
165
 
166
166
  var isBorderBottom = parseInt(this.theme.linkLineBorderBottomWidth) > 0;
167
167
  var isFocused = focused && !disabled;
168
- return !isBorderBottom ? cx(styles.root(this.theme), isFocused && styles.focus(this.theme), disabled && styles.disabled(this.theme), use === 'grayed' && focused && styles.useGrayedFocus(this.theme)) : cx(styles.lineRoot(), disabled && styles.disabled(this.theme), isFocused && use === 'default' && styles.lineFocus(this.theme), isFocused && use === 'success' && styles.lineFocusSuccess(this.theme), isFocused && use === 'danger' && styles.lineFocusDanger(this.theme), isFocused && use === 'grayed' && styles.lineFocusGrayed(this.theme));
168
+ return !isBorderBottom ? cx(styles.root(this.theme), isFocused && styles.focus(this.theme), disabled && styles.disabled(this.theme), use === 'grayed' && focused && styles.useGrayedFocus(this.theme)) : cx(styles.lineRoot(), disabled && styles.disabled(this.theme), disabled && _isTheme2022 && isDarkTheme(this.theme) && styles.disabledDark22Theme(this.theme), isFocused && use === 'default' && styles.lineFocus(this.theme), isFocused && use === 'success' && styles.lineFocusSuccess(this.theme), isFocused && use === 'danger' && styles.lineFocusDanger(this.theme), isFocused && use === 'grayed' && styles.lineFocusGrayed(this.theme));
169
169
  };
170
170
 
171
171
  return Link;