@skbkontur/react-ui 0.0.0-a59755ee68 → 0.0.0-a82c7a7f44

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 (480) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/cjs/components/Button/Button.d.ts +0 -1
  3. package/cjs/components/Button/Button.js +2 -2
  4. package/cjs/components/Button/Button.js.map +1 -1
  5. package/cjs/components/Calendar/DayCellView.styles.js +1 -17
  6. package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
  7. package/cjs/components/ComboBox/ComboBox.d.ts +9 -2
  8. package/cjs/components/ComboBox/ComboBox.js +17 -1
  9. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  10. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -1
  11. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  12. package/cjs/components/DatePicker/DatePicker.d.ts +4 -0
  13. package/cjs/components/DatePicker/DatePicker.js +8 -1
  14. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  15. package/cjs/components/Dropdown/Dropdown.d.ts +4 -2
  16. package/cjs/components/Dropdown/Dropdown.js +12 -8
  17. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  18. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +2 -0
  19. package/cjs/components/DropdownMenu/DropdownMenu.js +5 -1
  20. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  21. package/cjs/components/FxInput/FxInput.d.ts +2 -0
  22. package/cjs/components/FxInput/FxInput.js +7 -1
  23. package/cjs/components/FxInput/FxInput.js.map +1 -1
  24. package/cjs/components/FxInput/FxInputRestoreBtn.d.ts +2 -0
  25. package/cjs/components/FxInput/FxInputRestoreBtn.js +5 -1
  26. package/cjs/components/FxInput/FxInputRestoreBtn.js.map +1 -1
  27. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +1 -0
  28. package/cjs/components/GlobalLoader/GlobalLoader.js +6 -2
  29. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  30. package/cjs/components/Group/Group.js +24 -7
  31. package/cjs/components/Group/Group.js.map +1 -1
  32. package/cjs/components/Input/Input.d.ts +23 -2
  33. package/cjs/components/Input/Input.js +135 -19
  34. package/cjs/components/Input/Input.js.map +1 -1
  35. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +78 -70
  36. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  37. package/cjs/components/MaskedInput/MaskedInput.d.ts +1 -1
  38. package/cjs/components/MaskedInput/MaskedInput.js +3 -0
  39. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  40. package/cjs/components/MenuItem/MenuItem.js +23 -23
  41. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  42. package/cjs/components/MiniModal/getMiniModalTheme.d.ts +1 -1
  43. package/cjs/components/Modal/Modal.styles.d.ts +4 -1
  44. package/cjs/components/Modal/Modal.styles.js +68 -31
  45. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  46. package/cjs/components/Modal/ModalClose.js +7 -2
  47. package/cjs/components/Modal/ModalClose.js.map +1 -1
  48. package/cjs/components/Modal/__creevey__/Modal.creevey.mts +15 -1
  49. package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -1
  50. package/cjs/components/PasswordInput/PasswordInput.js +4 -1
  51. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  52. package/cjs/components/PasswordInput/PasswordInput.styles.js +2 -1
  53. package/cjs/components/PasswordInput/PasswordInput.styles.js.map +1 -1
  54. package/cjs/components/PasswordInput/__creevey__/PasswordInput.creevey.mts +8 -0
  55. package/cjs/components/Select/Select.d.ts +2 -0
  56. package/cjs/components/Select/Select.js +4 -0
  57. package/cjs/components/Select/Select.js.map +1 -1
  58. package/cjs/components/SidePage/SidePage.js +1 -7
  59. package/cjs/components/SidePage/SidePage.js.map +1 -1
  60. package/cjs/components/SidePage/SidePage.styles.d.ts +8 -1
  61. package/cjs/components/SidePage/SidePage.styles.js +83 -26
  62. package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
  63. package/cjs/components/SidePage/SidePageCloseButton.d.ts +6 -1
  64. package/cjs/components/SidePage/SidePageCloseButton.js +14 -2
  65. package/cjs/components/SidePage/SidePageCloseButton.js.map +1 -1
  66. package/cjs/components/SidePage/SidePageHeader.d.ts +0 -1
  67. package/cjs/components/SidePage/SidePageHeader.js +11 -7
  68. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  69. package/cjs/components/SidePage/__creevey__/SidePage.creevey.mts +2 -2
  70. package/cjs/components/Switcher/Switcher.js +2 -2
  71. package/cjs/components/Switcher/Switcher.js.map +1 -1
  72. package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
  73. package/cjs/components/Switcher/Switcher.styles.js +20 -1
  74. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  75. package/cjs/components/Toast/Toast.d.ts +6 -2
  76. package/cjs/components/Toast/Toast.js +9 -2
  77. package/cjs/components/Toast/Toast.js.map +1 -1
  78. package/cjs/components/Toast/ToastStatic.d.ts +2 -2
  79. package/cjs/components/Toast/ToastStatic.js +15 -5
  80. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  81. package/cjs/components/Toast/ToastView.d.ts +1 -0
  82. package/cjs/components/Toast/ToastView.js +4 -2
  83. package/cjs/components/Toast/ToastView.js.map +1 -1
  84. package/cjs/components/Toast/ToastView.styles.js +4 -4
  85. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  86. package/cjs/components/Toast/__creevey__/Toast.creevey.mts +23 -0
  87. package/cjs/index.d.ts +0 -3
  88. package/cjs/index.js +0 -3
  89. package/cjs/index.js.map +1 -1
  90. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.d.ts +9 -0
  91. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js +72 -0
  92. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -0
  93. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +8 -0
  94. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js +51 -0
  95. package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -0
  96. package/cjs/internal/ClearCrossIcon/CrossIcon.d.ts +3 -0
  97. package/cjs/internal/ClearCrossIcon/CrossIcon.js +15 -0
  98. package/cjs/internal/ClearCrossIcon/CrossIcon.js.map +1 -0
  99. package/cjs/internal/ClearCrossIcon/__creevey__/ClearCrossIcon.creevey.mts +44 -0
  100. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +6 -2
  101. package/cjs/internal/CustomComboBox/ComboBoxView.js +13 -3
  102. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  103. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +2 -1
  104. package/cjs/internal/CustomComboBox/CustomComboBox.js +4 -1
  105. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  106. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +3 -0
  107. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +12 -0
  108. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  109. package/cjs/internal/InputLikeText/InputLikeText.d.ts +7 -2
  110. package/cjs/internal/InputLikeText/InputLikeText.js +80 -34
  111. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  112. package/cjs/internal/Menu/Menu.d.ts +2 -1
  113. package/cjs/internal/Menu/Menu.js +4 -2
  114. package/cjs/internal/Menu/Menu.js.map +1 -1
  115. package/cjs/internal/Popup/Popup.js +4 -6
  116. package/cjs/internal/Popup/Popup.js.map +1 -1
  117. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -0
  118. package/cjs/internal/PopupMenu/PopupMenu.js +7 -1
  119. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  120. package/cjs/internal/ThemePlayground/__creevey__/Theme5_0.creevey.mts +36 -0
  121. package/cjs/internal/ThemePlayground/__creevey__/Theme5_0.stories.d.ts +4 -0
  122. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  123. package/cjs/internal/ZIndex/ZIndex.d.ts +1 -1
  124. package/cjs/internal/ZIndex/ZIndex.js +18 -6
  125. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  126. package/cjs/internal/themes/BasicLightTheme.d.ts +5 -1211
  127. package/cjs/internal/themes/BasicLightTheme.js +2 -2532
  128. package/cjs/internal/themes/BasicLightTheme.js.map +1 -1
  129. package/cjs/internal/themes/BasicTheme.d.ts +1231 -0
  130. package/cjs/internal/themes/BasicTheme.js +2587 -0
  131. package/cjs/internal/themes/BasicTheme.js.map +1 -0
  132. package/cjs/internal/themes/DarkTheme5_0.d.ts +1 -0
  133. package/cjs/internal/themes/DarkTheme5_0.js +562 -0
  134. package/cjs/internal/themes/DarkTheme5_0.js.map +1 -0
  135. package/cjs/internal/themes/DarkTheme5_1.d.ts +1 -0
  136. package/cjs/internal/themes/DarkTheme5_1.js +41 -0
  137. package/cjs/internal/themes/DarkTheme5_1.js.map +1 -0
  138. package/cjs/internal/themes/LightTheme5_0.d.ts +1 -0
  139. package/cjs/internal/themes/LightTheme5_0.js +9 -0
  140. package/cjs/internal/themes/LightTheme5_0.js.map +1 -0
  141. package/cjs/internal/themes/LightTheme5_1.d.ts +1 -0
  142. package/cjs/internal/themes/LightTheme5_1.js +41 -0
  143. package/cjs/internal/themes/LightTheme5_1.js.map +1 -0
  144. package/cjs/lib/mergeRefs.d.ts +23 -0
  145. package/cjs/lib/mergeRefs.js +76 -0
  146. package/cjs/lib/mergeRefs.js.map +1 -0
  147. package/cjs/lib/theming/Theme.d.ts +4 -3
  148. package/cjs/lib/theming/Theme.js +1 -1
  149. package/cjs/lib/theming/Theme.js.map +1 -1
  150. package/cjs/lib/theming/ThemeContext.d.ts +1 -1
  151. package/cjs/lib/theming/ThemeContext.js +2 -2
  152. package/cjs/lib/theming/ThemeContext.js.map +1 -1
  153. package/cjs/lib/theming/ThemeFactory.d.ts +9 -0
  154. package/cjs/lib/theming/ThemeFactory.js +28 -9
  155. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  156. package/cjs/lib/theming/ThemeHelpers.d.ts +55 -8
  157. package/cjs/lib/theming/ThemeHelpers.js +94 -22
  158. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  159. package/cjs/lib/theming/ThemeVersions.d.ts +25 -0
  160. package/cjs/lib/theming/ThemeVersions.js +58 -0
  161. package/cjs/lib/theming/ThemeVersions.js.map +1 -0
  162. package/cjs/lib/theming/themes/DarkTheme.d.ts +3 -1
  163. package/cjs/lib/theming/themes/DarkTheme.js +6 -4
  164. package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
  165. package/cjs/lib/theming/themes/LightTheme.d.ts +3 -1
  166. package/cjs/lib/theming/themes/LightTheme.js +6 -4
  167. package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
  168. package/cjs/lib/theming/themes/LightThemeMobile.d.ts +1 -1
  169. package/cjs/lib/theming/useTheme.d.ts +1 -1
  170. package/cjs/lib/typeGuards.d.ts +1 -0
  171. package/cjs/lib/typeGuards.js +6 -0
  172. package/cjs/lib/typeGuards.js.map +1 -0
  173. package/cjs/lib/utils.d.ts +18 -14
  174. package/cjs/lib/utils.js +16 -20
  175. package/cjs/lib/utils.js.map +1 -1
  176. package/components/Button/Button/Button.js +2 -3
  177. package/components/Button/Button/Button.js.map +1 -1
  178. package/components/Button/Button.d.ts +0 -1
  179. package/components/Calendar/DayCellView.styles/DayCellView.styles.js +1 -1
  180. package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  181. package/components/ComboBox/ComboBox/ComboBox.js +2 -1
  182. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  183. package/components/ComboBox/ComboBox.d.ts +9 -2
  184. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  185. package/components/CurrencyInput/CurrencyInput.d.ts +1 -1
  186. package/components/DatePicker/DatePicker/DatePicker.js +4 -0
  187. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  188. package/components/DatePicker/DatePicker.d.ts +4 -0
  189. package/components/Dropdown/Dropdown/Dropdown.js +12 -11
  190. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  191. package/components/Dropdown/Dropdown.d.ts +4 -2
  192. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -0
  193. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  194. package/components/DropdownMenu/DropdownMenu.d.ts +2 -0
  195. package/components/FxInput/FxInput/FxInput.js +3 -2
  196. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  197. package/components/FxInput/FxInput.d.ts +2 -0
  198. package/components/FxInput/FxInputRestoreBtn/FxInputRestoreBtn.js +1 -1
  199. package/components/FxInput/FxInputRestoreBtn/FxInputRestoreBtn.js.map +1 -1
  200. package/components/FxInput/FxInputRestoreBtn.d.ts +2 -0
  201. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +13 -5
  202. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  203. package/components/GlobalLoader/GlobalLoader.d.ts +1 -0
  204. package/components/Group/Group/Group.js +4 -10
  205. package/components/Group/Group/Group.js.map +1 -1
  206. package/components/Input/Input/Input.js +124 -15
  207. package/components/Input/Input/Input.js.map +1 -1
  208. package/components/Input/Input.d.ts +23 -2
  209. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +54 -55
  210. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
  211. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  212. package/components/MaskedInput/MaskedInput.d.ts +1 -1
  213. package/components/MenuItem/MenuItem/MenuItem.js +41 -35
  214. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  215. package/components/MiniModal/getMiniModalTheme.d.ts +1 -1
  216. package/components/Modal/Modal.styles/Modal.styles.js +40 -31
  217. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  218. package/components/Modal/Modal.styles.d.ts +4 -1
  219. package/components/Modal/ModalClose/ModalClose.js +3 -1
  220. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  221. package/components/Modal/__creevey__/Modal.creevey.mts +15 -1
  222. package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -1
  223. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  224. package/components/PasswordInput/PasswordInput.d.ts +1 -1
  225. package/components/PasswordInput/PasswordInput.styles/PasswordInput.styles.js +1 -1
  226. package/components/PasswordInput/PasswordInput.styles/PasswordInput.styles.js.map +1 -1
  227. package/components/PasswordInput/__creevey__/PasswordInput.creevey.mts +8 -0
  228. package/components/Select/Select/Select.js +1 -0
  229. package/components/Select/Select/Select.js.map +1 -1
  230. package/components/Select/Select.d.ts +2 -0
  231. package/components/SidePage/SidePage/SidePage.js +1 -5
  232. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  233. package/components/SidePage/SidePage.styles/SidePage.styles.js +48 -26
  234. package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
  235. package/components/SidePage/SidePage.styles.d.ts +8 -1
  236. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js +6 -2
  237. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js.map +1 -1
  238. package/components/SidePage/SidePageCloseButton.d.ts +6 -1
  239. package/components/SidePage/SidePageHeader/SidePageHeader.js +13 -5
  240. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  241. package/components/SidePage/SidePageHeader.d.ts +0 -1
  242. package/components/SidePage/__creevey__/SidePage.creevey.mts +2 -2
  243. package/components/Switcher/Switcher/Switcher.js +10 -6
  244. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  245. package/components/Switcher/Switcher.styles/Switcher.styles.js +4 -1
  246. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  247. package/components/Switcher/Switcher.styles.d.ts +1 -0
  248. package/components/Toast/Toast/Toast.js +14 -9
  249. package/components/Toast/Toast/Toast.js.map +1 -1
  250. package/components/Toast/Toast.d.ts +6 -2
  251. package/components/Toast/ToastStatic/ToastStatic.js +5 -5
  252. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  253. package/components/Toast/ToastStatic.d.ts +2 -2
  254. package/components/Toast/ToastView/ToastView.js +2 -1
  255. package/components/Toast/ToastView/ToastView.js.map +1 -1
  256. package/components/Toast/ToastView.d.ts +1 -0
  257. package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
  258. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  259. package/components/Toast/__creevey__/Toast.creevey.mts +23 -0
  260. package/index.d.ts +0 -3
  261. package/index.js +0 -3
  262. package/index.js.map +1 -1
  263. package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js +63 -0
  264. package/internal/ClearCrossIcon/ClearCrossIcon/ClearCrossIcon.js.map +1 -0
  265. package/internal/ClearCrossIcon/ClearCrossIcon/package.json +6 -0
  266. package/internal/ClearCrossIcon/ClearCrossIcon.d.ts +9 -0
  267. package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js +21 -0
  268. package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js.map +1 -0
  269. package/internal/ClearCrossIcon/ClearCrossIcon.styles/package.json +6 -0
  270. package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +8 -0
  271. package/internal/ClearCrossIcon/CrossIcon/CrossIcon.js +22 -0
  272. package/internal/ClearCrossIcon/CrossIcon/CrossIcon.js.map +1 -0
  273. package/internal/ClearCrossIcon/CrossIcon/package.json +6 -0
  274. package/internal/ClearCrossIcon/CrossIcon.d.ts +3 -0
  275. package/internal/ClearCrossIcon/__creevey__/ClearCrossIcon.creevey.d.mts +1 -0
  276. package/internal/ClearCrossIcon/__creevey__/ClearCrossIcon.creevey.mts +44 -0
  277. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +12 -5
  278. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  279. package/internal/CustomComboBox/ComboBoxView.d.ts +6 -2
  280. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +6 -0
  281. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  282. package/internal/CustomComboBox/CustomComboBox.d.ts +2 -1
  283. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +14 -0
  284. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  285. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +3 -0
  286. package/internal/InputLikeText/InputLikeText/InputLikeText.js +54 -4
  287. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  288. package/internal/InputLikeText/InputLikeText.d.ts +7 -2
  289. package/internal/Menu/Menu/Menu.js +6 -3
  290. package/internal/Menu/Menu/Menu.js.map +1 -1
  291. package/internal/Menu/Menu.d.ts +2 -1
  292. package/internal/Popup/Popup/Popup.js +15 -20
  293. package/internal/Popup/Popup/Popup.js.map +1 -1
  294. package/internal/PopupMenu/PopupMenu/PopupMenu.js +2 -1
  295. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  296. package/internal/PopupMenu/PopupMenu.d.ts +4 -0
  297. package/internal/ThemePlayground/__creevey__/Theme5_0.creevey.d.mts +1 -0
  298. package/internal/ThemePlayground/__creevey__/Theme5_0.creevey.mts +36 -0
  299. package/internal/ThemePlayground/__creevey__/Theme5_0.stories.d.ts +4 -0
  300. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  301. package/internal/ZIndex/ZIndex/ZIndex.js +12 -14
  302. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  303. package/internal/ZIndex/ZIndex.d.ts +1 -1
  304. package/internal/themes/BasicLightTheme/BasicLightTheme.js +5 -3353
  305. package/internal/themes/BasicLightTheme/BasicLightTheme.js.map +1 -1
  306. package/internal/themes/BasicLightTheme.d.ts +5 -1211
  307. package/internal/themes/BasicTheme/BasicTheme.js +3432 -0
  308. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -0
  309. package/internal/themes/BasicTheme/package.json +6 -0
  310. package/internal/themes/BasicTheme.d.ts +1231 -0
  311. package/internal/themes/DarkTheme5_0/DarkTheme5_0.js +409 -0
  312. package/internal/themes/DarkTheme5_0/DarkTheme5_0.js.map +1 -0
  313. package/internal/themes/DarkTheme5_0/package.json +6 -0
  314. package/internal/themes/DarkTheme5_0.d.ts +1 -0
  315. package/internal/themes/DarkTheme5_1/DarkTheme5_1.js +52 -0
  316. package/internal/themes/DarkTheme5_1/DarkTheme5_1.js.map +1 -0
  317. package/internal/themes/DarkTheme5_1/package.json +6 -0
  318. package/internal/themes/DarkTheme5_1.d.ts +1 -0
  319. package/internal/themes/LightTheme5_0/LightTheme5_0.js +14 -0
  320. package/internal/themes/LightTheme5_0/LightTheme5_0.js.map +1 -0
  321. package/internal/themes/LightTheme5_0/package.json +6 -0
  322. package/internal/themes/LightTheme5_0.d.ts +1 -0
  323. package/internal/themes/LightTheme5_1/LightTheme5_1.js +52 -0
  324. package/internal/themes/LightTheme5_1/LightTheme5_1.js.map +1 -0
  325. package/internal/themes/LightTheme5_1/package.json +6 -0
  326. package/internal/themes/LightTheme5_1.d.ts +1 -0
  327. package/lib/mergeRefs/mergeRefs.js +68 -0
  328. package/lib/mergeRefs/mergeRefs.js.map +1 -0
  329. package/lib/mergeRefs/package.json +6 -0
  330. package/lib/mergeRefs.d.ts +23 -0
  331. package/lib/theming/Theme/Theme.js +2 -1
  332. package/lib/theming/Theme/Theme.js.map +1 -1
  333. package/lib/theming/Theme.d.ts +4 -3
  334. package/lib/theming/ThemeContext/ThemeContext.js +2 -2
  335. package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
  336. package/lib/theming/ThemeContext.d.ts +1 -1
  337. package/lib/theming/ThemeFactory/ThemeFactory.js +21 -7
  338. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  339. package/lib/theming/ThemeFactory.d.ts +9 -0
  340. package/lib/theming/ThemeHelpers/ThemeHelpers.js +85 -18
  341. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  342. package/lib/theming/ThemeHelpers.d.ts +55 -8
  343. package/lib/theming/ThemeVersions/ThemeVersions.js +50 -0
  344. package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -0
  345. package/lib/theming/ThemeVersions/package.json +6 -0
  346. package/lib/theming/ThemeVersions.d.ts +25 -0
  347. package/lib/theming/themes/DarkTheme/DarkTheme.js +5 -4
  348. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  349. package/lib/theming/themes/DarkTheme.d.ts +3 -1
  350. package/lib/theming/themes/LightTheme/LightTheme.js +5 -4
  351. package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
  352. package/lib/theming/themes/LightTheme.d.ts +3 -1
  353. package/lib/theming/themes/LightThemeMobile.d.ts +1 -1
  354. package/lib/theming/useTheme.d.ts +1 -1
  355. package/lib/typeGuards/package.json +6 -0
  356. package/lib/typeGuards/typeGuards.js +5 -0
  357. package/lib/typeGuards/typeGuards.js.map +1 -0
  358. package/lib/typeGuards.d.ts +1 -0
  359. package/lib/utils/utils.js +10 -14
  360. package/lib/utils/utils.js.map +1 -1
  361. package/lib/utils.d.ts +18 -14
  362. package/package.json +2 -2
  363. package/cjs/components/DateRangePicker/DateRangePicker.d.ts +0 -32
  364. package/cjs/components/DateRangePicker/DateRangePicker.js +0 -467
  365. package/cjs/components/DateRangePicker/DateRangePicker.js.map +0 -1
  366. package/cjs/components/DateRangePicker/DateRangePicker.md +0 -298
  367. package/cjs/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -17
  368. package/cjs/components/DateRangePicker/DateRangePicker.styles.js +0 -114
  369. package/cjs/components/DateRangePicker/DateRangePicker.styles.js.map +0 -1
  370. package/cjs/components/DateRangePicker/DateRangePickerContext.d.ts +0 -32
  371. package/cjs/components/DateRangePicker/DateRangePickerContext.js +0 -38
  372. package/cjs/components/DateRangePicker/DateRangePickerContext.js.map +0 -1
  373. package/cjs/components/DateRangePicker/DateRangePickerField.d.ts +0 -11
  374. package/cjs/components/DateRangePicker/DateRangePickerField.js +0 -123
  375. package/cjs/components/DateRangePicker/DateRangePickerField.js.map +0 -1
  376. package/cjs/components/DateRangePicker/DateRangePickerSeparator.d.ts +0 -2
  377. package/cjs/components/DateRangePicker/DateRangePickerSeparator.js +0 -3
  378. package/cjs/components/DateRangePicker/DateRangePickerSeparator.js.map +0 -1
  379. package/cjs/components/DateRangePicker/DateRangePickerTheme.d.ts +0 -3
  380. package/cjs/components/DateRangePicker/DateRangePickerTheme.js +0 -33
  381. package/cjs/components/DateRangePicker/DateRangePickerTheme.js.map +0 -1
  382. package/cjs/components/DateRangePicker/__docs__/DateRangePicker.mdx +0 -115
  383. package/cjs/components/DateRangePicker/helpers/getStateForValue.d.ts +0 -9
  384. package/cjs/components/DateRangePicker/helpers/getStateForValue.js +0 -122
  385. package/cjs/components/DateRangePicker/helpers/getStateForValue.js.map +0 -1
  386. package/cjs/components/DateRangePicker/helpers/validateDateRangePicker.d.ts +0 -9
  387. package/cjs/components/DateRangePicker/helpers/validateDateRangePicker.js +0 -67
  388. package/cjs/components/DateRangePicker/helpers/validateDateRangePicker.js.map +0 -1
  389. package/cjs/components/DateRangePicker/index.d.ts +0 -1
  390. package/cjs/components/DateRangePicker/index.js +0 -1
  391. package/cjs/components/DateRangePicker/index.js.map +0 -1
  392. package/cjs/components/DateRangePicker/locale/index.d.ts +0 -4
  393. package/cjs/components/DateRangePicker/locale/index.js +0 -12
  394. package/cjs/components/DateRangePicker/locale/index.js.map +0 -1
  395. package/cjs/components/DateRangePicker/locale/locales/en.d.ts +0 -2
  396. package/cjs/components/DateRangePicker/locale/locales/en.js +0 -7
  397. package/cjs/components/DateRangePicker/locale/locales/en.js.map +0 -1
  398. package/cjs/components/DateRangePicker/locale/locales/ru.d.ts +0 -2
  399. package/cjs/components/DateRangePicker/locale/locales/ru.js +0 -7
  400. package/cjs/components/DateRangePicker/locale/locales/ru.js.map +0 -1
  401. package/cjs/components/DateRangePicker/locale/types.d.ts +0 -5
  402. package/cjs/components/DateRangePicker/locale/types.js +0 -1
  403. package/cjs/components/DateRangePicker/locale/types.js.map +0 -1
  404. package/cjs/internal/themes/BasicDarkTheme.d.ts +0 -293
  405. package/cjs/internal/themes/BasicDarkTheme.js +0 -607
  406. package/cjs/internal/themes/BasicDarkTheme.js.map +0 -1
  407. package/cjs/lib/theming/themes/DarkTheme2022_0.d.ts +0 -1
  408. package/cjs/lib/theming/themes/DarkTheme2022_0.js +0 -5
  409. package/cjs/lib/theming/themes/DarkTheme2022_0.js.map +0 -1
  410. package/cjs/lib/theming/themes/LightTheme2022_0.d.ts +0 -1
  411. package/cjs/lib/theming/themes/LightTheme2022_0.js +0 -5
  412. package/cjs/lib/theming/themes/LightTheme2022_0.js.map +0 -1
  413. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +0 -435
  414. package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +0 -1
  415. package/components/DateRangePicker/DateRangePicker/package.json +0 -6
  416. package/components/DateRangePicker/DateRangePicker.d.ts +0 -32
  417. package/components/DateRangePicker/DateRangePicker.md +0 -298
  418. package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js +0 -53
  419. package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js.map +0 -1
  420. package/components/DateRangePicker/DateRangePicker.styles/package.json +0 -6
  421. package/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -17
  422. package/components/DateRangePicker/DateRangePickerContext/DateRangePickerContext.js +0 -3
  423. package/components/DateRangePicker/DateRangePickerContext/DateRangePickerContext.js.map +0 -1
  424. package/components/DateRangePicker/DateRangePickerContext/package.json +0 -6
  425. package/components/DateRangePicker/DateRangePickerContext.d.ts +0 -32
  426. package/components/DateRangePicker/DateRangePickerField/DateRangePickerField.js +0 -112
  427. package/components/DateRangePicker/DateRangePickerField/DateRangePickerField.js.map +0 -1
  428. package/components/DateRangePicker/DateRangePickerField/package.json +0 -6
  429. package/components/DateRangePicker/DateRangePickerField.d.ts +0 -11
  430. package/components/DateRangePicker/DateRangePickerSeparator/DateRangePickerSeparator.js +0 -4
  431. package/components/DateRangePicker/DateRangePickerSeparator/DateRangePickerSeparator.js.map +0 -1
  432. package/components/DateRangePicker/DateRangePickerSeparator/package.json +0 -6
  433. package/components/DateRangePicker/DateRangePickerSeparator.d.ts +0 -2
  434. package/components/DateRangePicker/DateRangePickerTheme/DateRangePickerTheme.js +0 -24
  435. package/components/DateRangePicker/DateRangePickerTheme/DateRangePickerTheme.js.map +0 -1
  436. package/components/DateRangePicker/DateRangePickerTheme/package.json +0 -6
  437. package/components/DateRangePicker/DateRangePickerTheme.d.ts +0 -3
  438. package/components/DateRangePicker/__docs__/DateRangePicker.mdx +0 -115
  439. package/components/DateRangePicker/helpers/getStateForValue/getStateForValue.js +0 -108
  440. package/components/DateRangePicker/helpers/getStateForValue/getStateForValue.js.map +0 -1
  441. package/components/DateRangePicker/helpers/getStateForValue/package.json +0 -6
  442. package/components/DateRangePicker/helpers/getStateForValue.d.ts +0 -9
  443. package/components/DateRangePicker/helpers/validateDateRangePicker/package.json +0 -6
  444. package/components/DateRangePicker/helpers/validateDateRangePicker/validateDateRangePicker.js +0 -49
  445. package/components/DateRangePicker/helpers/validateDateRangePicker/validateDateRangePicker.js.map +0 -1
  446. package/components/DateRangePicker/helpers/validateDateRangePicker.d.ts +0 -9
  447. package/components/DateRangePicker/index/index.js +0 -1
  448. package/components/DateRangePicker/index/index.js.map +0 -1
  449. package/components/DateRangePicker/index/package.json +0 -6
  450. package/components/DateRangePicker/index.d.ts +0 -1
  451. package/components/DateRangePicker/locale/index/index.js +0 -8
  452. package/components/DateRangePicker/locale/index/index.js.map +0 -1
  453. package/components/DateRangePicker/locale/index/package.json +0 -6
  454. package/components/DateRangePicker/locale/index.d.ts +0 -4
  455. package/components/DateRangePicker/locale/locales/en/en.js +0 -6
  456. package/components/DateRangePicker/locale/locales/en/en.js.map +0 -1
  457. package/components/DateRangePicker/locale/locales/en/package.json +0 -6
  458. package/components/DateRangePicker/locale/locales/en.d.ts +0 -2
  459. package/components/DateRangePicker/locale/locales/ru/package.json +0 -6
  460. package/components/DateRangePicker/locale/locales/ru/ru.js +0 -6
  461. package/components/DateRangePicker/locale/locales/ru/ru.js.map +0 -1
  462. package/components/DateRangePicker/locale/locales/ru.d.ts +0 -2
  463. package/components/DateRangePicker/locale/package.json +0 -6
  464. package/components/DateRangePicker/locale/types/package.json +0 -6
  465. package/components/DateRangePicker/locale/types/types.js +0 -1
  466. package/components/DateRangePicker/locale/types/types.js.map +0 -1
  467. package/components/DateRangePicker/locale/types.d.ts +0 -5
  468. package/components/DateRangePicker/package.json +0 -6
  469. package/internal/themes/BasicDarkTheme/BasicDarkTheme.js +0 -646
  470. package/internal/themes/BasicDarkTheme/BasicDarkTheme.js.map +0 -1
  471. package/internal/themes/BasicDarkTheme/package.json +0 -6
  472. package/internal/themes/BasicDarkTheme.d.ts +0 -293
  473. package/lib/theming/themes/DarkTheme2022_0/DarkTheme2022_0.js +0 -3
  474. package/lib/theming/themes/DarkTheme2022_0/DarkTheme2022_0.js.map +0 -1
  475. package/lib/theming/themes/DarkTheme2022_0/package.json +0 -6
  476. package/lib/theming/themes/DarkTheme2022_0.d.ts +0 -1
  477. package/lib/theming/themes/LightTheme2022_0/LightTheme2022_0.js +0 -3
  478. package/lib/theming/themes/LightTheme2022_0/LightTheme2022_0.js.map +0 -1
  479. package/lib/theming/themes/LightTheme2022_0/package.json +0 -6
  480. package/lib/theming/themes/LightTheme2022_0.d.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,49 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.0.12](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.11...@skbkontur/react-ui@5.0.12) (2025-03-11)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **Loader,ZIndex:** fix overlap of dropdowns in widgets ([#3612](https://github.com/skbkontur/retail-ui/issues/3612)) ([7990c6d](https://github.com/skbkontur/retail-ui/commit/7990c6d4b661e49e5fec8707f4f06a9655bce25e))
12
+ * **MaskedInput:** rerender after theme change ([#3614](https://github.com/skbkontur/retail-ui/issues/3614)) ([840443f](https://github.com/skbkontur/retail-ui/commit/840443fff46bc6037b92e3da6151312075c25fc7))
13
+
14
+
15
+
16
+
17
+
18
+ ## [5.0.11](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.10...@skbkontur/react-ui@5.0.11) (2025-03-03)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **Combobox:** use ComboBoxMenuDataTids in Menu ([#3601](https://github.com/skbkontur/retail-ui/issues/3601)) ([ae8afea](https://github.com/skbkontur/retail-ui/commit/ae8afea4684cfbfa7d03c0abe273a0f062943524))
24
+ * **PasswordInput:** prevent Input root data-tid override ([#3598](https://github.com/skbkontur/retail-ui/issues/3598)) ([61b2e83](https://github.com/skbkontur/retail-ui/commit/61b2e8303acc4446872e73f7a87f177b55a0fc37))
25
+
26
+
27
+
28
+
29
+
30
+ ## [5.0.10](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.9...@skbkontur/react-ui@5.0.10) (2025-01-30)
31
+
32
+
33
+ ### Bug Fixes
34
+
35
+ * **GlobalLoader:** render in StrictMode ([#3582](https://github.com/skbkontur/retail-ui/issues/3582)) ([0d83d91](https://github.com/skbkontur/retail-ui/commit/0d83d91b6dbc02f37a89fcc6ef1fb5a970f179aa))
36
+
37
+
38
+
39
+
40
+
41
+ ## [5.0.9](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.8...@skbkontur/react-ui@5.0.9) (2025-01-24)
42
+
43
+ **Note:** Version bump only for package @skbkontur/react-ui
44
+
45
+
46
+
47
+
48
+
6
49
  ## [5.0.8](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.7...@skbkontur/react-ui@5.0.8) (2025-01-17)
7
50
 
8
51
 
@@ -106,5 +106,4 @@ export declare class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DE
106
106
  private handleBlur;
107
107
  private _ref;
108
108
  }
109
- export declare const isButton: (child: React.ReactNode) => child is React.ReactElement<ButtonProps<"button">, string | React.JSXElementConstructor<any>>;
110
109
  export {};
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.isButton = exports.ButtonDataTids = exports.Button = exports.BUTTON_DEFAULT_COMPONENT = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _react = _interopRequireDefault(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.ButtonDataTids = exports.Button = exports.BUTTON_DEFAULT_COMPONENT = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _react = _interopRequireDefault(require("react"));
2
2
  var _globalObject = require("@skbkontur/global-object");
3
3
 
4
4
 
@@ -485,4 +485,4 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
485
485
  */;_proto.blur = function blur() {var _this$node2;(_this$node2 = this.node) == null || _this$node2.blur();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = _this2.props.theme ? _ThemeFactory.ThemeFactory.create(_this2.props.theme, theme) : theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), _this2.renderMain);});};_proto.getTabIndex = function getTabIndex(_ref2) {var disableFocus = _ref2.disableFocus,disabled = _ref2.disabled,_ref2$tabIndex = _ref2.tabIndex,tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex;if (disableFocus || disabled) {return -1;}return tabIndex;};_proto.renderIcon2022 = function renderIcon2022(icon) {if (icon && (0, _utils.isKonturIcon)(icon)) {var _icon$props$size;var sizes = (0, _ButtonIcon.getButtonIconSizes)(this.theme);return /*#__PURE__*/_react.default.cloneElement(icon, { size: (_icon$props$size = icon.props.size) != null ? _icon$props$size : sizes[this.getProps().size] });}return icon;};_proto.getSizeClassName = function getSizeClassName() {var _cx6, _cx7, _cx8;switch (this.getProps().size) {case 'large':return (0, _Emotion.cx)(_Button2.styles.sizeLarge(this.theme), (_cx6 = {}, _cx6[_Button2.styles.sizeLargeIE11(this.theme)] = _client.isIE11 || _client.isEdge, _cx6[_Button2.styles.sizeLargeWithIcon(this.theme)] = !!this.props.icon, _cx6[_Button2.styles.sizeLargeWithIconWithoutText(this.theme)] = !!this.props.icon && !this.props.children, _cx6));case 'medium':return (0, _Emotion.cx)(_Button2.styles.sizeMedium(this.theme), (_cx7 = {}, _cx7[_Button2.styles.sizeMediumIE11(this.theme)] = _client.isIE11 || _client.isEdge, _cx7[_Button2.styles.sizeMediumWithIcon(this.theme)] = !!this.props.icon, _cx7[_Button2.styles.sizeMediumWithIconWithoutText(this.theme)] = !!this.props.icon && !this.props.children, _cx7));case 'small':default:return (0, _Emotion.cx)(_Button2.styles.sizeSmall(this.theme), (_cx8 = {}, _cx8[_Button2.styles.sizeSmallIE11(this.theme)] = _client.isIE11 || _client.isEdge, _cx8[_Button2.styles.sizeSmallWithIcon(this.theme)] = !!this.props.icon, _cx8[_Button2.styles.sizeSmallWithIconWithoutText(this.theme)] = !!this.props.icon && !this.props.children, _cx8));}};_proto.getSizeWrapClassName = function getSizeWrapClassName() {switch (this.getProps().size) {case 'large':return _Button2.styles.wrapLarge(this.theme);case 'medium':return _Button2.styles.wrapMedium(this.theme);case 'small':default:return _Button2.styles.wrapSmall(this.theme);}};return Button;}(_react.default.Component), _Button.__KONTUR_REACT_UI__ = 'Button', _Button.displayName = 'Button', _Button.__BUTTON__ = true, _Button.defaultProps = { use: 'default', size: 'small', // By default the type attribute is 'submit'. IE8 will fire a click event
486
486
  // on this button if somewhere on the page user presses Enter while some
487
487
  // input is focused. So we set type to 'button' by default.
488
- type: 'button', component: BUTTON_DEFAULT_COMPONENT }, _Button)) || _class;var isButton = exports.isButton = (0, _utils.isReactUIComponent)('Button');
488
+ type: 'button', component: BUTTON_DEFAULT_COMPONENT }, _Button)) || _class;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_client","_keyListener","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_ThemeFactory","_createPropsGetter","_Link","_Button2","_ButtonIcon","_ButtonArrow","_getInnerLinkTheme","_LoadingButtonIcon","_class","_Button","_excluded","_excluded2","BUTTON_DEFAULT_COMPONENT","exports","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose2","default","createElement","Button","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","node","renderMain","props","_cx","_cx4","_cx5","corners","active","disabled","borderless","checked","error","warning","loading","narrow","arrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","disableFocus","width","tabIndex","_component","component","useProp","use","sizeProp","size","theme","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","useButtonArrow","_extends2","Boolean","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","trueDisabled","rootClassName","cx","styles","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","globalClasses","activeStyles","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","innerShadowNode","outlineNode","_cx2","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","ButtonIcon","position","rightIconNode","hasBothIcons","_cx3","link","linkLineHeight","isSafari","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","undefined","hasLoadingNode","loadingNode","LoadingButtonIcon","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","ThemeContext","Provider","value","getInnerLinkTheme","Link","focused","renderIcon2022","Root","ref","e","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","_inheritsLoose2","_proto","prototype","componentDidMount","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this2","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","isKonturIcon","_icon$props$size","sizes","getButtonIconSizes","React","cloneElement","_cx6","_cx7","_cx8","sizeLarge","sizeLargeIE11","isIE11","isEdge","sizeLargeWithIcon","sizeLargeWithIconWithoutText","sizeMedium","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeSmall","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type","isButton","isReactUIComponent"],"sources":["Button.tsx"],"sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon, isReactUIComponent } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport { SizeProp } from '../../lib/types/props';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { ButtonIcon, ButtonIconProps, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /** Применяет к кнопке стили псевдокласса `:active`. */\n active?: boolean;\n\n /** Задаёт выравнивание тексту в кнопке. */\n align?: React.CSSProperties['textAlign'];\n\n /** Превращает обычную кнопку в кнопку со стрелкой. */\n arrow?: boolean | 'left';\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы.*/\n autoFocus?: boolean;\n\n /** Убирает обводку у кнопки. */\n borderless?: boolean;\n\n /** @ignore */\n checked?: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от текста кнопки. */\n rightIcon?: React.ReactElement;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Сужает кнопку. */\n narrow?: boolean;\n\n /** Задаёт размер кнопки. */\n size?: SizeProp;\n\n /** Задаёт HTML-атрибут `type`. */\n type?: ButtonType;\n\n /** Задаёт HTML-атрибут `title`. */\n title?: string;\n\n /** Задаёт стиль кнопки.\n * **Вариант `link` устарел.**\n * Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задаёт ширину кнопки. */\n width?: number | string;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'size' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n size: 'small',\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n // warning(\n // this.props.use !== 'link',\n // `[Button]: Use 'Link' has been deprecated. Please, use Link with 'component=button' prop instead.`,\n // );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, 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 getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n size: sizeProp,\n theme,\n ...rest\n } = props;\n const { use, size, component, children } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n const [rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused) },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const trueDisabled = disabled || loading;\n const rootClassName = cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(trueDisabled\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n borderless && styles.borderless(),\n use === 'backless' && styles.backlessDisabled(this.theme),\n use === 'text' && styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n disabled: trueDisabled,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: trueDisabled, tabIndex }),\n };\n\n const wrapProps = {\n className: cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !trueDisabled) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.getProps().size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari,\n [styles.linkLineHeightSafariFallback()]: isSafari,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: trueDisabled,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={size} />;\n\n let captionNode = (\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={cx(globalClasses.text, {\n [styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.getProps().size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_client","_keyListener","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_ThemeFactory","_createPropsGetter","_Link","_Button2","_ButtonIcon","_ButtonArrow","_getInnerLinkTheme","_LoadingButtonIcon","_class","_Button","_excluded","_excluded2","BUTTON_DEFAULT_COMPONENT","exports","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose2","default","createElement","Button","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","node","renderMain","props","_cx","_cx4","_cx5","corners","active","disabled","borderless","checked","error","warning","loading","narrow","arrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","disableFocus","width","tabIndex","_component","component","useProp","use","sizeProp","size","theme","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","useButtonArrow","_extends2","Boolean","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","trueDisabled","rootClassName","cx","styles","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","globalClasses","activeStyles","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","innerShadowNode","outlineNode","_cx2","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","ButtonIcon","position","rightIconNode","hasBothIcons","_cx3","link","linkLineHeight","isSafari","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","undefined","hasLoadingNode","loadingNode","LoadingButtonIcon","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","ThemeContext","Provider","value","getInnerLinkTheme","Link","focused","renderIcon2022","Root","ref","e","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","_inheritsLoose2","_proto","prototype","componentDidMount","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this2","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","isKonturIcon","_icon$props$size","sizes","getButtonIconSizes","React","cloneElement","_cx6","_cx7","_cx8","sizeLarge","sizeLargeIE11","isIE11","isEdge","sizeLargeWithIcon","sizeLargeWithIconWithoutText","sizeMedium","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeSmall","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type"],"sources":["Button.tsx"],"sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport { SizeProp } from '../../lib/types/props';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { ButtonIcon, ButtonIconProps, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /** Применяет к кнопке стили псевдокласса `:active`. */\n active?: boolean;\n\n /** Задаёт выравнивание тексту в кнопке. */\n align?: React.CSSProperties['textAlign'];\n\n /** Превращает обычную кнопку в кнопку со стрелкой. */\n arrow?: boolean | 'left';\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы.*/\n autoFocus?: boolean;\n\n /** Убирает обводку у кнопки. */\n borderless?: boolean;\n\n /** @ignore */\n checked?: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от текста кнопки. */\n rightIcon?: React.ReactElement;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Сужает кнопку. */\n narrow?: boolean;\n\n /** Задаёт размер кнопки. */\n size?: SizeProp;\n\n /** Задаёт HTML-атрибут `type`. */\n type?: ButtonType;\n\n /** Задаёт HTML-атрибут `title`. */\n title?: string;\n\n /** Задаёт стиль кнопки.\n * **Вариант `link` устарел.**\n * Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задаёт ширину кнопки. */\n width?: number | string;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'size' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n size: 'small',\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n // warning(\n // this.props.use !== 'link',\n // `[Button]: Use 'Link' has been deprecated. Please, use Link with 'component=button' prop instead.`,\n // );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, 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 getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n size: sizeProp,\n theme,\n ...rest\n } = props;\n const { use, size, component, children } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n const [rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused) },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const trueDisabled = disabled || loading;\n const rootClassName = cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(trueDisabled\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n borderless && styles.borderless(),\n use === 'backless' && styles.backlessDisabled(this.theme),\n use === 'text' && styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n disabled: trueDisabled,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: trueDisabled, tabIndex }),\n };\n\n const wrapProps = {\n className: cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !trueDisabled) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.getProps().size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari,\n [styles.linkLineHeightSafariFallback()]: isSafari,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: trueDisabled,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={size} />;\n\n let captionNode = (\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={cx(globalClasses.text, {\n [styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.getProps().size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,7 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
10
10
 
11
11
  },
12
12
  day: function day(t) {
13
- return (0, _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n ", ";\n width: 100%;\n height: 100%;\n\n background: ", ";\n border: 1px solid transparent;\n font-size: ", ";\n padding: 0;\n text-align: center;\n user-select: none;\n position: relative;\n line-height: ", ";\n border-radius: ", ";\n transition:\n 0.15s ease background-color,\n 0.15s ease opacity;\n\n // Expand the clickable area\n &:before {\n content: '';\n position: absolute;\n left: -1px;\n top: -1px;\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: ", ";\n color: ", ";\n cursor: pointer;\n }\n }\n\n &:disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n &:active:hover:enabled {\n color: ", ";\n }\n "])),
13
+ return (0, _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n ", ";\n width: 100%;\n height: 100%;\n\n background: ", ";\n border: 1px solid transparent;\n font-size: ", ";\n padding: 0;\n text-align: center;\n user-select: none;\n position: relative;\n line-height: ", ";\n border-radius: ", ";\n\n &:hover {\n background-color: ", ";\n color: ", ";\n cursor: pointer;\n }\n &:disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n &:active:hover:enabled {\n color: ", ";\n }\n "])),
14
14
  (0, _Mixins.resetButton)(),
15
15
 
16
16
 
@@ -26,20 +26,6 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
26
26
  t.calendarCellBorderRadius,
27
27
 
28
28
 
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
29
  t.calendarCellHoverBgColor,
44
30
  t.calendarCellHoverColor,
45
31
 
@@ -49,8 +35,6 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
49
35
 
50
36
 
51
37
 
52
-
53
-
54
38
  t.calendarCellActiveHoverColor);
55
39
 
56
40
 
@@ -1 +1 @@
1
- {"version":3,"names":["_Emotion","require","_Mixins","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","styles","exports","memoizeStyle","cell","t","css","_taggedTemplateLiteralLoose2","default","calendarCellWidth","calendarCellHeight","day","resetButton","calendarCellBg","calendarCellFontSize","calendarCellLineHeight","calendarCellBorderRadius","calendarCellHoverBgColor","calendarCellHoverColor","calendarCellActiveHoverColor","selected","calendarCellSelectedBgColor","calendarCellSelectedFontColor","weekend","calendarCellWeekendColor","todayCaption","calendarCellTodayBorder"],"sources":["DayCellView.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n cell(t: Theme) {\n return css`\n flex: 1 1 ${t.calendarCellWidth};\n height: ${t.calendarCellHeight};\n `;\n },\n day(t: Theme) {\n return css`\n ${resetButton()};\n width: 100%;\n height: 100%;\n\n background: ${t.calendarCellBg};\n border: 1px solid transparent;\n font-size: ${t.calendarCellFontSize};\n padding: 0;\n text-align: center;\n user-select: none;\n position: relative;\n line-height: ${t.calendarCellLineHeight};\n border-radius: ${t.calendarCellBorderRadius};\n transition:\n 0.15s ease background-color,\n 0.15s ease opacity;\n\n // Expand the clickable area\n &:before {\n content: '';\n position: absolute;\n left: -1px;\n top: -1px;\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: ${t.calendarCellHoverBgColor};\n color: ${t.calendarCellHoverColor};\n cursor: pointer;\n }\n }\n\n &:disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n &:active:hover:enabled {\n color: ${t.calendarCellActiveHoverColor};\n }\n `;\n },\n\n selected(t: Theme) {\n return css`\n background-color: ${t.calendarCellSelectedBgColor};\n color: ${t.calendarCellSelectedFontColor};\n `;\n },\n\n weekend(t: Theme) {\n return css`\n color: ${t.calendarCellWeekendColor};\n `;\n },\n\n todayCaption(t: Theme) {\n return css`\n padding-bottom: 2px;\n border-bottom: ${t.calendarCellTodayBorder};\n `;\n },\n});\n"],"mappings":"oRAAA,IAAAA,QAAA,GAAAC,OAAA;;AAEA,IAAAC,OAAA,GAAAD,OAAA,4BAAsD,IAAAE,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA;;AAE/C,IAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,qBAAY,EAAC;EACjCC,IAAI,WAAAA,KAACC,CAAQ,EAAE;IACb,WAAOC,YAAG,EAAAV,eAAA,KAAAA,eAAA,OAAAW,4BAAA,CAAAC,OAAA;IACIH,CAAC,CAACI,iBAAiB;IACrBJ,CAAC,CAACK,kBAAkB;;EAElC,CAAC;EACDC,GAAG,WAAAA,IAACN,CAAQ,EAAE;IACZ,WAAOC,YAAG,EAAAT,gBAAA,KAAAA,gBAAA,OAAAU,4BAAA,CAAAC,OAAA;IACN,IAAAI,mBAAW,EAAC,CAAC;;;;IAIDP,CAAC,CAACQ,cAAc;;IAEjBR,CAAC,CAACS,oBAAoB;;;;;IAKpBT,CAAC,CAACU,sBAAsB;IACtBV,CAAC,CAACW,wBAAwB;;;;;;;;;;;;;;;;;IAiBnBX,CAAC,CAACY,wBAAwB;IACrCZ,CAAC,CAACa,sBAAsB;;;;;;;;;;IAU1Bb,CAAC,CAACc,4BAA4B;;;EAG7C,CAAC;;EAEDC,QAAQ,WAAAA,SAACf,CAAQ,EAAE;IACjB,WAAOC,YAAG,EAAAR,gBAAA,KAAAA,gBAAA,OAAAS,4BAAA,CAAAC,OAAA;IACYH,CAAC,CAACgB,2BAA2B;IACxChB,CAAC,CAACiB,6BAA6B;;EAE5C,CAAC;;EAEDC,OAAO,WAAAA,QAAClB,CAAQ,EAAE;IAChB,WAAOC,YAAG,EAAAP,gBAAA,KAAAA,gBAAA,OAAAQ,4BAAA,CAAAC,OAAA;IACCH,CAAC,CAACmB,wBAAwB;;EAEvC,CAAC;;EAEDC,YAAY,WAAAA,aAACpB,CAAQ,EAAE;IACrB,WAAOC,YAAG,EAAAN,gBAAA,KAAAA,gBAAA,OAAAO,4BAAA,CAAAC,OAAA;;IAESH,CAAC,CAACqB,uBAAuB;;EAE9C;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_Emotion","require","_Mixins","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","styles","exports","memoizeStyle","cell","t","css","_taggedTemplateLiteralLoose2","default","calendarCellWidth","calendarCellHeight","day","resetButton","calendarCellBg","calendarCellFontSize","calendarCellLineHeight","calendarCellBorderRadius","calendarCellHoverBgColor","calendarCellHoverColor","calendarCellActiveHoverColor","selected","calendarCellSelectedBgColor","calendarCellSelectedFontColor","weekend","calendarCellWeekendColor","todayCaption","calendarCellTodayBorder"],"sources":["DayCellView.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n cell(t: Theme) {\n return css`\n flex: 1 1 ${t.calendarCellWidth};\n height: ${t.calendarCellHeight};\n `;\n },\n day(t: Theme) {\n return css`\n ${resetButton()};\n width: 100%;\n height: 100%;\n\n background: ${t.calendarCellBg};\n border: 1px solid transparent;\n font-size: ${t.calendarCellFontSize};\n padding: 0;\n text-align: center;\n user-select: none;\n position: relative;\n line-height: ${t.calendarCellLineHeight};\n border-radius: ${t.calendarCellBorderRadius};\n\n &:hover {\n background-color: ${t.calendarCellHoverBgColor};\n color: ${t.calendarCellHoverColor};\n cursor: pointer;\n }\n &:disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n &:active:hover:enabled {\n color: ${t.calendarCellActiveHoverColor};\n }\n `;\n },\n\n selected(t: Theme) {\n return css`\n background-color: ${t.calendarCellSelectedBgColor};\n color: ${t.calendarCellSelectedFontColor};\n `;\n },\n\n weekend(t: Theme) {\n return css`\n color: ${t.calendarCellWeekendColor};\n `;\n },\n\n todayCaption(t: Theme) {\n return css`\n padding-bottom: 2px;\n border-bottom: ${t.calendarCellTodayBorder};\n `;\n },\n});\n"],"mappings":"oRAAA,IAAAA,QAAA,GAAAC,OAAA;;AAEA,IAAAC,OAAA,GAAAD,OAAA,4BAAsD,IAAAE,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA;;AAE/C,IAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,qBAAY,EAAC;EACjCC,IAAI,WAAAA,KAACC,CAAQ,EAAE;IACb,WAAOC,YAAG,EAAAV,eAAA,KAAAA,eAAA,OAAAW,4BAAA,CAAAC,OAAA;IACIH,CAAC,CAACI,iBAAiB;IACrBJ,CAAC,CAACK,kBAAkB;;EAElC,CAAC;EACDC,GAAG,WAAAA,IAACN,CAAQ,EAAE;IACZ,WAAOC,YAAG,EAAAT,gBAAA,KAAAA,gBAAA,OAAAU,4BAAA,CAAAC,OAAA;IACN,IAAAI,mBAAW,EAAC,CAAC;;;;IAIDP,CAAC,CAACQ,cAAc;;IAEjBR,CAAC,CAACS,oBAAoB;;;;;IAKpBT,CAAC,CAACU,sBAAsB;IACtBV,CAAC,CAACW,wBAAwB;;;IAGrBX,CAAC,CAACY,wBAAwB;IACrCZ,CAAC,CAACa,sBAAsB;;;;;;;;IAQxBb,CAAC,CAACc,4BAA4B;;;EAG7C,CAAC;;EAEDC,QAAQ,WAAAA,SAACf,CAAQ,EAAE;IACjB,WAAOC,YAAG,EAAAR,gBAAA,KAAAA,gBAAA,OAAAS,4BAAA,CAAAC,OAAA;IACYH,CAAC,CAACgB,2BAA2B;IACxChB,CAAC,CAACiB,6BAA6B;;EAE5C,CAAC;;EAEDC,OAAO,WAAAA,QAAClB,CAAQ,EAAE;IAChB,WAAOC,YAAG,EAAAP,gBAAA,KAAAA,gBAAA,OAAAQ,4BAAA,CAAAC,OAAA;IACCH,CAAC,CAACmB,wBAAwB;;EAEvC,CAAC;;EAEDC,YAAY,WAAAA,aAACpB,CAAQ,EAAE;IACrB,WAAOC,YAAG,EAAAN,gBAAA,KAAAA,gBAAA,OAAAO,4BAAA,CAAAC,OAAA;;IAESH,CAAC,CAACqB,uBAAuB;;EAE9C;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,10 +1,17 @@
1
1
  import React, { AriaAttributes, HTMLAttributes } from 'react';
2
2
  import { Nullable } from '../../typings/utility-types';
3
3
  import { MenuItemState } from '../MenuItem';
4
- import { InputIconType } from '../Input';
4
+ import { InputIconType, ShowClearIcon } from '../Input';
5
5
  import { CommonProps } from '../../internal/CommonWrapper';
6
6
  import { SizeProp } from '../../lib/types/props';
7
7
  export interface ComboBoxProps<T> extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, CommonProps {
8
+ /** Показывать иконку очистки значения в непустом поле:
9
+ * - `always` — всегда показывать иконку
10
+ * - `auto` — показывать иконку при hover/focus
11
+ * - `never` — не показывать иконку
12
+ * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.
13
+ * @default never */
14
+ showClearIcon?: ShowClearIcon;
8
15
  /** Задает выравнивание контента. */
9
16
  align?: 'left' | 'center' | 'right';
10
17
  /** Вызывает функцию поиска getItems при фокусе и очистке поля ввода. */
@@ -118,7 +125,7 @@ export interface ComboBoxItem {
118
125
  label: string;
119
126
  }
120
127
  export type ComboBoxExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;
121
- type DefaultProps<T> = Required<Pick<ComboBoxProps<T>, 'itemToValue' | 'valueToString' | 'renderValue' | 'renderItem' | 'menuAlign' | 'searchOnFocus' | 'drawArrow'>>;
128
+ type DefaultProps<T> = Required<Pick<ComboBoxProps<T>, 'itemToValue' | 'valueToString' | 'renderValue' | 'renderItem' | 'menuAlign' | 'searchOnFocus' | 'drawArrow' | 'showClearIcon'>>;
122
129
  /**
123
130
  * `ComboBox` — это поле ввода со списком подсказок.
124
131
  *
@@ -158,6 +158,21 @@ var _createPropsGetter = require("../../lib/createPropsGetter");var _class, _Com
158
158
 
159
159
 
160
160
 
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
161
176
 
162
177
 
163
178
 
@@ -199,6 +214,7 @@ ComboBox = exports.ComboBox = (0, _rootNode.rootNode)(_class = (_ComboBox = /*#_
199
214
 
200
215
 
201
216
 
217
+
202
218
  getProps = (0, _createPropsGetter.createPropsGetter)(ComboBox.defaultProps);_this.
203
219
 
204
220
  comboboxElement = null;_this.
@@ -311,4 +327,4 @@ ComboBox = exports.ComboBox = (0, _rootNode.rootNode)(_class = (_ComboBox = /*#_
311
327
  */;_proto.selectInputText = function selectInputText() {if (this.comboboxElement) {this.comboboxElement.selectInputText();}} /**
312
328
  * Сбрасывает введенное пользователем значение
313
329
  * @public
314
- */;_proto.reset = function reset() {if (this.comboboxElement) {this.comboboxElement.reset();}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CustomComboBox.CustomComboBox, (0, _extends2.default)({}, this.getProps(), { size: this.props.size, ref: this.customComboBoxRef }));};return ComboBox;}(_react.default.Component), _ComboBox.__KONTUR_REACT_UI__ = 'ComboBox', _ComboBox.displayName = 'ComboBox', _ComboBox.defaultProps = { itemToValue: function itemToValue(item) {return item.value;}, valueToString: function valueToString(item) {return item.label;}, renderValue: function renderValue(item) {return item.label;}, renderItem: function renderItem(item) {return item.label;}, menuAlign: 'left', searchOnFocus: true, drawArrow: true }, _ComboBox)) || _class;
330
+ */;_proto.reset = function reset() {if (this.comboboxElement) {this.comboboxElement.reset();}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CustomComboBox.CustomComboBox, (0, _extends2.default)({}, this.getProps(), { size: this.props.size, ref: this.customComboBoxRef }));};return ComboBox;}(_react.default.Component), _ComboBox.__KONTUR_REACT_UI__ = 'ComboBox', _ComboBox.displayName = 'ComboBox', _ComboBox.defaultProps = { itemToValue: function itemToValue(item) {return item.value;}, valueToString: function valueToString(item) {return item.label;}, renderValue: function renderValue(item) {return item.label;}, renderItem: function renderItem(item) {return item.label;}, menuAlign: 'left', searchOnFocus: true, drawArrow: true, showClearIcon: 'never' }, _ComboBox)) || _class;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_CustomComboBox","_rootNode","_createPropsGetter","_class","_ComboBox","ComboBox","exports","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","comboboxElement","customComboBoxRef","element","setRootNode","_inheritsLoose2","default","_proto","prototype","focus","opts","blur","search","query","cancelSearch","open","close","selectInputText","reset","render","createElement","CustomComboBox","_extends2","size","props","ref","React","Component","__KONTUR_REACT_UI__","displayName","itemToValue","item","value","valueToString","label","renderValue","renderItem","menuAlign","searchOnFocus","drawArrow"],"sources":["ComboBox.tsx"],"sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\n\nimport { CustomComboBox } from '../../internal/CustomComboBox';\nimport { Nullable } from '../../typings/utility-types';\nimport { MenuItemState } from '../MenuItem';\nimport { InputIconType } from '../Input';\nimport { CommonProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { SizeProp } from '../../lib/types/props';\n\nexport interface ComboBoxProps<T>\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Задает выравнивание контента. */\n align?: 'left' | 'center' | 'right';\n\n /** Вызывает функцию поиска getItems при фокусе и очистке поля ввода. */\n searchOnFocus?: boolean;\n\n /** Отображает справа иконку в виде стрелки. */\n drawArrow?: boolean;\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Убирает обводку. */\n borderless?: boolean;\n\n /** Отключает использование портала для рендеринга меню.\n * См. https://github.com/skbkontur/retail-ui/issues/15 */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Добавляет иконку слева.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Задает функцию поиска элементов, которая должна возвращать Promise с массивом элементов.\n * По умолчанию ожидаются объекты с типом `{ value: string, label: string }`.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `itemToValue`, `renderValue`, `renderItem`, `valueToString`. */\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n\n /** Задает функцию сравнения полученных результатов с value. */\n itemToValue?: (item: T) => string | number;\n\n /** Задает максимальную длину инпута. */\n maxLength?: number;\n\n /** Задает текущую позицию выпадающего окна вручную.\n */\n menuPos?: 'top' | 'bottom';\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает функцию, которая вызывается при потере комбобоксом фокуса. */\n onBlur?: () => void;\n\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n\n /** Задает функцию, которая вызывается при получении комбобоксом фокуса. */\n onFocus?: () => void;\n\n /** Задает функцию, которая вызывается при изменении текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода. */\n onInputValueChange?: (value: string) => Nullable<string> | void;\n\n /** Задает функцию для обработки ввода строки в инпут и последующей потерей фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат valueToString с этим элементом будет совпадать со значение в текстовом поле, то сработает onValueChange со значением данного элемента.\n * Сама функция также может вернуть значение, неравное undefined, с которым будет вызван onValueChange. Если возвращаемое значение будет равно null, то сработает очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | T;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает функцию отрисовки элементов результата поиска.\n * Не применяется если элемент является функцией или React-элементом\n * @default item => item.label\n * @param {T} item - элемент из результата поиска.\n * @param {MenuItemState} state? - состояние элемента.\n * @returns {React.ReactNode} React-элемент. */\n renderItem?: (item: T, state?: MenuItemState) => React.ReactNode;\n\n /** Устанавливает компонент, заменяющий собой обёртку элементов результата поиска.\n * По умолчанию все элементы результата поиска оборачиваются в тег <button />.\n * @example\n * itemWrapper={(item) => {\n * if (item.value === 3) {\n * return (props) => {\n * return <a {...props} />\n * }\n * }\n * }}\n */\n itemWrapper?: (item: T) => React.ComponentType;\n\n /** Задает функцию, которая отображает сообщение о пустом результате поиска. При renderAddButton не работает. */\n renderNotFound?: () => React.ReactNode;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им \"оборачиваются\" элементы, возвращаемые getItems().\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Задает функцию, которая отображает выбранное значение.\n * @default item => item.label */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке. */\n renderAddButton?: (query?: string) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы renderTotalCount. */\n totalCount?: number;\n\n /** Устанавливает выбранное в комбобоксе значение. Тип `value` совпадает с типом элементов в массиве, возвращаемом в `getItems`. */\n value?: Nullable<T>;\n\n /** Задает функцию, которая возвращает строковое представление value. Необходимо при фокусировке. */\n valueToString?: (item: T) => string;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает длину комбобокса. */\n width?: string | number;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface ComboBoxItem {\n value: string;\n label: string;\n}\n\nexport type ComboBoxExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxProps<T>,\n 'itemToValue' | 'valueToString' | 'renderValue' | 'renderItem' | 'menuAlign' | 'searchOnFocus' | 'drawArrow'\n >\n>;\n\n/**\n * `ComboBox` — это поле ввода со списком подсказок.\n *\n * `ComboBox` используют:\n * * для выбора значения из справочника.\n * * для добавления своего значения в справочник.\n *\n * `ComboBox` может работать в двух режимах — обычном и в режиме автокомплита.\n * Основное их отличие в том, что в режиме автокомплита список вариантов появляется только после ввода первого символа или изменении уже введенного значения.\n */\n@rootNode\nexport class ComboBox<T = ComboBoxItem> extends React.Component<ComboBoxProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBox';\n public static displayName = 'ComboBox';\n\n public static defaultProps: DefaultProps<any> = {\n itemToValue: (item: ComboBoxItem) => item.value,\n valueToString: (item: ComboBoxItem) => item.label,\n renderValue: (item: ComboBoxItem) => item.label,\n renderItem: (item: ComboBoxItem) => item.label,\n menuAlign: 'left',\n searchOnFocus: true,\n drawArrow: true,\n };\n\n private getProps = createPropsGetter(ComboBox.defaultProps);\n\n private comboboxElement: Nullable<CustomComboBox<T>> = null;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }) {\n if (this.comboboxElement) {\n this.comboboxElement.focus(opts);\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /**\n * Открывает выпадающий список и запускает поиск элементов\n *\n * @public\n * @param {string} [query] Текст поиска. По умолчанию берется\n * текст из инпута или результат `valueToString(value)`\n */\n public search(query?: string) {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /**\n * @public Открывает выпадающий список\n */\n public open() {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /**\n * @public Закрывает выпадающий список\n */\n public close() {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Выделяет текст внутри input\n * @public\n */\n public selectInputText() {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render() {\n return <CustomComboBox {...this.getProps()} size={this.props.size} ref={this.customComboBoxRef} />;\n }\n\n private customComboBoxRef = (element: Nullable<CustomComboBox<T>>) => {\n this.setRootNode(element);\n this.comboboxElement = element;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_CustomComboBox","_rootNode","_createPropsGetter","_class","_ComboBox","ComboBox","exports","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","comboboxElement","customComboBoxRef","element","setRootNode","_inheritsLoose2","default","_proto","prototype","focus","opts","blur","search","query","cancelSearch","open","close","selectInputText","reset","render","createElement","CustomComboBox","_extends2","size","props","ref","React","Component","__KONTUR_REACT_UI__","displayName","itemToValue","item","value","valueToString","label","renderValue","renderItem","menuAlign","searchOnFocus","drawArrow","showClearIcon"],"sources":["ComboBox.tsx"],"sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\n\nimport { CustomComboBox } from '../../internal/CustomComboBox';\nimport { Nullable } from '../../typings/utility-types';\nimport { MenuItemState } from '../MenuItem';\nimport { InputIconType, ShowClearIcon } from '../Input';\nimport { CommonProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { SizeProp } from '../../lib/types/props';\n\nexport interface ComboBoxProps<T>\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Показывать иконку очистки значения в непустом поле:\n * - `always` — всегда показывать иконку\n * - `auto` — показывать иконку при hover/focus\n * - `never` — не показывать иконку\n * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Задает выравнивание контента. */\n align?: 'left' | 'center' | 'right';\n\n /** Вызывает функцию поиска getItems при фокусе и очистке поля ввода. */\n searchOnFocus?: boolean;\n\n /** Отображает справа иконку в виде стрелки. */\n drawArrow?: boolean;\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Убирает обводку. */\n borderless?: boolean;\n\n /** Отключает использование портала для рендеринга меню.\n * См. https://github.com/skbkontur/retail-ui/issues/15 */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Добавляет иконку слева.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Задает функцию поиска элементов, которая должна возвращать Promise с массивом элементов.\n * По умолчанию ожидаются объекты с типом `{ value: string, label: string }`.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `itemToValue`, `renderValue`, `renderItem`, `valueToString`. */\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n\n /** Задает функцию сравнения полученных результатов с value. */\n itemToValue?: (item: T) => string | number;\n\n /** Задает максимальную длину инпута. */\n maxLength?: number;\n\n /** Задает текущую позицию выпадающего окна вручную.\n */\n menuPos?: 'top' | 'bottom';\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает функцию, которая вызывается при потере комбобоксом фокуса. */\n onBlur?: () => void;\n\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n\n /** Задает функцию, которая вызывается при получении комбобоксом фокуса. */\n onFocus?: () => void;\n\n /** Задает функцию, которая вызывается при изменении текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода. */\n onInputValueChange?: (value: string) => Nullable<string> | void;\n\n /** Задает функцию для обработки ввода строки в инпут и последующей потерей фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат valueToString с этим элементом будет совпадать со значение в текстовом поле, то сработает onValueChange со значением данного элемента.\n * Сама функция также может вернуть значение, неравное undefined, с которым будет вызван onValueChange. Если возвращаемое значение будет равно null, то сработает очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | T;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает функцию отрисовки элементов результата поиска.\n * Не применяется если элемент является функцией или React-элементом\n * @default item => item.label\n * @param {T} item - элемент из результата поиска.\n * @param {MenuItemState} state? - состояние элемента.\n * @returns {React.ReactNode} React-элемент. */\n renderItem?: (item: T, state?: MenuItemState) => React.ReactNode;\n\n /** Устанавливает компонент, заменяющий собой обёртку элементов результата поиска.\n * По умолчанию все элементы результата поиска оборачиваются в тег <button />.\n * @example\n * itemWrapper={(item) => {\n * if (item.value === 3) {\n * return (props) => {\n * return <a {...props} />\n * }\n * }\n * }}\n */\n itemWrapper?: (item: T) => React.ComponentType;\n\n /** Задает функцию, которая отображает сообщение о пустом результате поиска. При renderAddButton не работает. */\n renderNotFound?: () => React.ReactNode;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им \"оборачиваются\" элементы, возвращаемые getItems().\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Задает функцию, которая отображает выбранное значение.\n * @default item => item.label */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке. */\n renderAddButton?: (query?: string) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы renderTotalCount. */\n totalCount?: number;\n\n /** Устанавливает выбранное в комбобоксе значение. Тип `value` совпадает с типом элементов в массиве, возвращаемом в `getItems`. */\n value?: Nullable<T>;\n\n /** Задает функцию, которая возвращает строковое представление value. Необходимо при фокусировке. */\n valueToString?: (item: T) => string;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает длину комбобокса. */\n width?: string | number;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface ComboBoxItem {\n value: string;\n label: string;\n}\n\nexport type ComboBoxExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxProps<T>,\n | 'itemToValue'\n | 'valueToString'\n | 'renderValue'\n | 'renderItem'\n | 'menuAlign'\n | 'searchOnFocus'\n | 'drawArrow'\n | 'showClearIcon'\n >\n>;\n\n/**\n * `ComboBox` — это поле ввода со списком подсказок.\n *\n * `ComboBox` используют:\n * * для выбора значения из справочника.\n * * для добавления своего значения в справочник.\n *\n * `ComboBox` может работать в двух режимах — обычном и в режиме автокомплита.\n * Основное их отличие в том, что в режиме автокомплита список вариантов появляется только после ввода первого символа или изменении уже введенного значения.\n */\n@rootNode\nexport class ComboBox<T = ComboBoxItem> extends React.Component<ComboBoxProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBox';\n public static displayName = 'ComboBox';\n\n public static defaultProps: DefaultProps<any> = {\n itemToValue: (item: ComboBoxItem) => item.value,\n valueToString: (item: ComboBoxItem) => item.label,\n renderValue: (item: ComboBoxItem) => item.label,\n renderItem: (item: ComboBoxItem) => item.label,\n menuAlign: 'left',\n searchOnFocus: true,\n drawArrow: true,\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(ComboBox.defaultProps);\n\n private comboboxElement: Nullable<CustomComboBox<T>> = null;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }) {\n if (this.comboboxElement) {\n this.comboboxElement.focus(opts);\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /**\n * Открывает выпадающий список и запускает поиск элементов\n *\n * @public\n * @param {string} [query] Текст поиска. По умолчанию берется\n * текст из инпута или результат `valueToString(value)`\n */\n public search(query?: string) {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /**\n * @public Открывает выпадающий список\n */\n public open() {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /**\n * @public Закрывает выпадающий список\n */\n public close() {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Выделяет текст внутри input\n * @public\n */\n public selectInputText() {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render() {\n return <CustomComboBox {...this.getProps()} size={this.props.size} ref={this.customComboBoxRef} />;\n }\n\n private customComboBoxRef = (element: Nullable<CustomComboBox<T>>) => {\n this.setRootNode(element);\n this.comboboxElement = element;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ import { InputProps } from '../Input';
4
4
  import { Nullable, Override } from '../../typings/utility-types';
5
5
  import { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';
6
6
  import { Selection } from './SelectionHelper';
7
- export interface CurrencyInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Override<InputProps, {
7
+ export interface CurrencyInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Override<Omit<InputProps, 'showClearIcon'>, {
8
8
  /** Задает значение инпута. */
9
9
  value?: Nullable<number>;
10
10
  /** Убирает лишние нули после запятой. */