@skbkontur/react-ui 0.0.0-627b6e869c → 0.0.0-69a6fa606f

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 (863) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +1 -1
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +3 -1
  4. package/cjs/components/Autocomplete/Autocomplete.js +21 -15
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.d.ts +4 -5
  7. package/cjs/components/Button/Button.js +8 -12
  8. package/cjs/components/Button/Button.js.map +1 -1
  9. package/cjs/components/Button/Button.styles.js +1 -1
  10. package/cjs/components/Button/Button.styles.js.map +1 -1
  11. package/cjs/components/Center/Center.d.ts +3 -0
  12. package/cjs/components/Center/Center.js +8 -3
  13. package/cjs/components/Center/Center.js.map +1 -1
  14. package/cjs/components/Checkbox/Checkbox.d.ts +3 -0
  15. package/cjs/components/Checkbox/Checkbox.js +8 -2
  16. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  17. package/cjs/components/Checkbox/Checkbox.styles.js +4 -7
  18. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  19. package/cjs/components/CurrencyInput/CurrencyHelper.js +18 -12
  20. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  21. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +3 -0
  22. package/cjs/components/CurrencyInput/CurrencyInput.js +23 -10
  23. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  24. package/cjs/components/CurrencyInput/CurrencyInputHelper.js +7 -5
  25. package/cjs/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
  26. package/cjs/components/CurrencyInput/CursorHelper.js +19 -16
  27. package/cjs/components/CurrencyInput/CursorHelper.js.map +1 -1
  28. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  29. package/cjs/components/CurrencyLabel/CurrencyLabel.js +6 -2
  30. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  31. package/cjs/components/DateInput/DateInput.styles.js +2 -2
  32. package/cjs/components/DateInput/DateInput.styles.js.map +1 -1
  33. package/cjs/components/DateInput/helpers/InternalDateMediator.js +8 -2
  34. package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  35. package/cjs/components/DatePicker/DatePicker.d.ts +6 -1
  36. package/cjs/components/DatePicker/DatePicker.js +14 -3
  37. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  38. package/cjs/components/DatePicker/Picker.js +7 -2
  39. package/cjs/components/DatePicker/Picker.js.map +1 -1
  40. package/cjs/components/Dropdown/Dropdown.d.ts +3 -0
  41. package/cjs/components/Dropdown/Dropdown.js +7 -2
  42. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  43. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  44. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -16
  45. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  46. package/cjs/components/FileUploader/FileUploader.d.ts +5 -0
  47. package/cjs/components/FileUploader/FileUploader.js +18 -9
  48. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  49. package/cjs/components/FileUploader/FileUploader.styles.d.ts +3 -2
  50. package/cjs/components/FileUploader/FileUploader.styles.js +21 -15
  51. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  52. package/cjs/components/FxInput/FxInput.d.ts +3 -0
  53. package/cjs/components/FxInput/FxInput.js +7 -3
  54. package/cjs/components/FxInput/FxInput.js.map +1 -1
  55. package/cjs/components/Gapped/Gapped.d.ts +4 -0
  56. package/cjs/components/Gapped/Gapped.js +11 -6
  57. package/cjs/components/Gapped/Gapped.js.map +1 -1
  58. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +3 -0
  59. package/cjs/components/GlobalLoader/GlobalLoader.js +9 -7
  60. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  61. package/cjs/components/Group/Group.d.ts +3 -0
  62. package/cjs/components/Group/Group.js +80 -33
  63. package/cjs/components/Group/Group.js.map +1 -1
  64. package/cjs/components/Hint/Hint.d.ts +4 -1
  65. package/cjs/components/Hint/Hint.js +5 -0
  66. package/cjs/components/Hint/Hint.js.map +1 -1
  67. package/cjs/components/Input/Input.d.ts +4 -5
  68. package/cjs/components/Input/Input.js +21 -24
  69. package/cjs/components/Input/Input.js.map +1 -1
  70. package/cjs/components/Kebab/Kebab.d.ts +2 -13
  71. package/cjs/components/Kebab/Kebab.js +5 -29
  72. package/cjs/components/Kebab/Kebab.js.map +1 -1
  73. package/cjs/components/Link/Link.d.ts +3 -0
  74. package/cjs/components/Link/Link.js +7 -3
  75. package/cjs/components/Link/Link.js.map +1 -1
  76. package/cjs/components/Loader/Loader.d.ts +4 -0
  77. package/cjs/components/Loader/Loader.js +15 -10
  78. package/cjs/components/Loader/Loader.js.map +1 -1
  79. package/cjs/components/MenuHeader/MenuHeader.d.ts +3 -0
  80. package/cjs/components/MenuHeader/MenuHeader.js +7 -2
  81. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  82. package/cjs/components/MenuItem/MenuItem.d.ts +4 -0
  83. package/cjs/components/MenuItem/MenuItem.js +10 -4
  84. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  85. package/cjs/components/MenuItem/MenuItem.styles.js +3 -2
  86. package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
  87. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  88. package/cjs/components/MenuSeparator/MenuSeparator.js +7 -3
  89. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  90. package/cjs/components/Modal/Modal.d.ts +5 -0
  91. package/cjs/components/Modal/Modal.js +10 -3
  92. package/cjs/components/Modal/Modal.js.map +1 -1
  93. package/cjs/components/Modal/Modal.styles.js +10 -6
  94. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  95. package/cjs/components/Modal/ModalClose.js +3 -2
  96. package/cjs/components/Modal/ModalClose.js.map +1 -1
  97. package/cjs/components/Modal/ModalFooter.d.ts +3 -0
  98. package/cjs/components/Modal/ModalFooter.js +8 -4
  99. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  100. package/cjs/components/Modal/ModalHeader.d.ts +3 -0
  101. package/cjs/components/Modal/ModalHeader.js +9 -4
  102. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  103. package/cjs/components/Paging/Paging.d.ts +20 -3
  104. package/cjs/components/Paging/Paging.js +29 -10
  105. package/cjs/components/Paging/Paging.js.map +1 -1
  106. package/cjs/components/Paging/PagingDefaultComponent.d.ts +9 -0
  107. package/cjs/components/Paging/PagingDefaultComponent.js +21 -0
  108. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -0
  109. package/cjs/components/PasswordInput/PasswordInput.d.ts +7 -0
  110. package/cjs/components/PasswordInput/PasswordInput.js +37 -10
  111. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  112. package/cjs/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  113. package/cjs/components/PasswordInput/PasswordInputIcon.js +11 -0
  114. package/cjs/components/PasswordInput/PasswordInputIcon.js.map +1 -0
  115. package/cjs/components/Radio/Radio.d.ts +3 -0
  116. package/cjs/components/Radio/Radio.js +7 -3
  117. package/cjs/components/Radio/Radio.js.map +1 -1
  118. package/cjs/components/Radio/Radio.styles.js +4 -7
  119. package/cjs/components/Radio/Radio.styles.js.map +1 -1
  120. package/cjs/components/RadioGroup/RadioGroup.d.ts +4 -1
  121. package/cjs/components/RadioGroup/RadioGroup.js +8 -4
  122. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  123. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +7 -2
  124. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  125. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.d.ts +1 -1
  126. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +3 -4
  127. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  128. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  129. package/cjs/components/ScrollContainer/ScrollContainer.js +17 -6
  130. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  131. package/cjs/components/Select/Select.d.ts +10 -5
  132. package/cjs/components/Select/Select.js +51 -15
  133. package/cjs/components/Select/Select.js.map +1 -1
  134. package/cjs/components/SidePage/SidePage.d.ts +4 -1
  135. package/cjs/components/SidePage/SidePage.js +9 -17
  136. package/cjs/components/SidePage/SidePage.js.map +1 -1
  137. package/cjs/components/SidePage/SidePageBody.d.ts +3 -0
  138. package/cjs/components/SidePage/SidePageBody.js +10 -3
  139. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  140. package/cjs/components/SidePage/SidePageContainer.d.ts +3 -0
  141. package/cjs/components/SidePage/SidePageContainer.js +7 -2
  142. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  143. package/cjs/components/SidePage/SidePageFooter.d.ts +3 -0
  144. package/cjs/components/SidePage/SidePageFooter.js +15 -6
  145. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  146. package/cjs/components/SidePage/SidePageHeader.d.ts +4 -0
  147. package/cjs/components/SidePage/SidePageHeader.js +11 -5
  148. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  149. package/cjs/components/Spinner/Spinner.d.ts +3 -1
  150. package/cjs/components/Spinner/Spinner.js +8 -8
  151. package/cjs/components/Spinner/Spinner.js.map +1 -1
  152. package/cjs/components/Spinner/SpinnerFallbackAnimation.js +16 -5
  153. package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
  154. package/cjs/components/Sticky/Sticky.d.ts +3 -0
  155. package/cjs/components/Sticky/Sticky.js +11 -6
  156. package/cjs/components/Sticky/Sticky.js.map +1 -1
  157. package/cjs/components/Switcher/Switcher.d.ts +5 -1
  158. package/cjs/components/Switcher/Switcher.js +8 -3
  159. package/cjs/components/Switcher/Switcher.js.map +1 -1
  160. package/cjs/components/Switcher/Switcher.styles.js +2 -2
  161. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  162. package/cjs/components/Tabs/Indicator.js +6 -3
  163. package/cjs/components/Tabs/Indicator.js.map +1 -1
  164. package/cjs/components/Tabs/Tab.d.ts +3 -0
  165. package/cjs/components/Tabs/Tab.js +7 -2
  166. package/cjs/components/Tabs/Tab.js.map +1 -1
  167. package/cjs/components/Tabs/Tabs.d.ts +7 -1
  168. package/cjs/components/Tabs/Tabs.js +20 -7
  169. package/cjs/components/Tabs/Tabs.js.map +1 -1
  170. package/cjs/components/Textarea/Textarea.d.ts +6 -2
  171. package/cjs/components/Textarea/Textarea.js +14 -9
  172. package/cjs/components/Textarea/Textarea.js.map +1 -1
  173. package/cjs/components/Textarea/TextareaCounter.d.ts +1 -2
  174. package/cjs/components/Textarea/TextareaCounter.js +21 -12
  175. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  176. package/cjs/components/Toast/Toast.d.ts +6 -0
  177. package/cjs/components/Toast/Toast.js +9 -2
  178. package/cjs/components/Toast/Toast.js.map +1 -1
  179. package/cjs/components/Toast/ToastStatic.js +1 -1
  180. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  181. package/cjs/components/Toast/ToastView.js +6 -5
  182. package/cjs/components/Toast/ToastView.js.map +1 -1
  183. package/cjs/components/Toast/ToastView.styles.d.ts +1 -1
  184. package/cjs/components/Toast/ToastView.styles.js +3 -2
  185. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  186. package/cjs/components/Toggle/Toggle.d.ts +4 -1
  187. package/cjs/components/Toggle/Toggle.js +7 -3
  188. package/cjs/components/Toggle/Toggle.js.map +1 -1
  189. package/cjs/components/Toggle/Toggle.styles.js +12 -10
  190. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  191. package/cjs/components/Token/Token.d.ts +3 -0
  192. package/cjs/components/Token/Token.js +20 -3
  193. package/cjs/components/Token/Token.js.map +1 -1
  194. package/cjs/components/Token/Token.styles.js +13 -6
  195. package/cjs/components/Token/Token.styles.js.map +1 -1
  196. package/cjs/components/TokenInput/TextWidthHelper.js +2 -1
  197. package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
  198. package/cjs/components/TokenInput/TokenInput.d.ts +4 -0
  199. package/cjs/components/TokenInput/TokenInput.js +20 -12
  200. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  201. package/cjs/components/TokenInput/TokenInput.styles.js +3 -2
  202. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  203. package/cjs/components/TokenInput/TokenInputMenu.js +4 -3
  204. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  205. package/cjs/components/Tooltip/Tooltip.d.ts +6 -2
  206. package/cjs/components/Tooltip/Tooltip.js +17 -8
  207. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  208. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +4 -1
  209. package/cjs/components/TooltipMenu/TooltipMenu.js +9 -2
  210. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  211. package/cjs/hooks/useDrop.js +3 -1
  212. package/cjs/hooks/useDrop.js.map +1 -1
  213. package/cjs/index.d.ts +2 -0
  214. package/cjs/index.js +2 -0
  215. package/cjs/index.js.map +1 -1
  216. package/cjs/internal/BGRuler.js +3 -1
  217. package/cjs/internal/BGRuler.js.map +1 -1
  218. package/cjs/internal/Calendar/Calendar.d.ts +6 -0
  219. package/cjs/internal/Calendar/Calendar.js +12 -5
  220. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  221. package/cjs/internal/Calendar/CalendarDateShape.d.ts +1 -1
  222. package/cjs/internal/Calendar/MonthView.js +5 -4
  223. package/cjs/internal/Calendar/MonthView.js.map +1 -1
  224. package/cjs/internal/Calendar/MonthViewModel.js +36 -17
  225. package/cjs/internal/Calendar/MonthViewModel.js.map +1 -1
  226. package/cjs/internal/CommonWrapper/CommonWrapper.js +13 -8
  227. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  228. package/cjs/internal/ComponentTable.d.ts +4 -2
  229. package/cjs/internal/ComponentTable.js +1 -0
  230. package/cjs/internal/ComponentTable.js.map +1 -1
  231. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  232. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +28 -5
  233. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  234. package/cjs/internal/CustomComboBox/ComboBoxView.js +4 -2
  235. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  236. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  237. package/cjs/internal/CustomComboBox/CustomComboBox.js +9 -4
  238. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  239. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  240. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +35 -35
  241. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  242. package/cjs/internal/DataTids/DATATIDS.md +12 -0
  243. package/cjs/internal/DataTids/DataTids.d.ts +12 -0
  244. package/cjs/internal/DataTids/DataTids.js +46 -0
  245. package/cjs/internal/DataTids/DataTids.js.map +1 -0
  246. package/cjs/internal/DataTids/DataTids.styles.d.ts +7 -0
  247. package/cjs/internal/DataTids/DataTids.styles.js +41 -0
  248. package/cjs/internal/DataTids/DataTids.styles.js.map +1 -0
  249. package/cjs/internal/DataTids/componentsDataTids.d.ts +5 -0
  250. package/cjs/internal/DataTids/componentsDataTids.js +16 -0
  251. package/cjs/internal/DataTids/componentsDataTids.js.map +1 -0
  252. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -0
  253. package/cjs/internal/DateSelect/DateSelect.js +30 -13
  254. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  255. package/cjs/internal/DropdownContainer/DropdownContainer.js +5 -10
  256. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  257. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +3 -1
  258. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  259. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
  260. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +17 -8
  261. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  262. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
  263. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +6 -2
  264. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  265. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +14 -10
  266. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  267. package/cjs/internal/InputLikeText/InputLikeText.d.ts +5 -1
  268. package/cjs/internal/InputLikeText/InputLikeText.js +10 -4
  269. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  270. package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -0
  271. package/cjs/internal/InternalMenu/InternalMenu.js +12 -9
  272. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  273. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -2
  274. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  275. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  276. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js +16 -0
  277. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  278. package/cjs/internal/MaskedInput/MaskedInput.d.ts +3 -0
  279. package/cjs/internal/MaskedInput/MaskedInput.js +13 -5
  280. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  281. package/cjs/internal/Menu/Menu.d.ts +3 -0
  282. package/cjs/internal/Menu/Menu.js +20 -16
  283. package/cjs/internal/Menu/Menu.js.map +1 -1
  284. package/cjs/internal/Menu/Menu.styles.js +5 -3
  285. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  286. package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
  287. package/cjs/internal/MobilePopup/MobilePopup.js +10 -3
  288. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  289. package/cjs/internal/Popup/Popup.d.ts +6 -1
  290. package/cjs/internal/Popup/Popup.js +21 -14
  291. package/cjs/internal/Popup/Popup.js.map +1 -1
  292. package/cjs/internal/Popup/PopupHelper.js +4 -2
  293. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  294. package/cjs/internal/Popup/PopupPin.js +2 -1
  295. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  296. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -0
  297. package/cjs/internal/PopupMenu/PopupMenu.js +22 -4
  298. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  299. package/cjs/internal/PopupMenu/validatePositions.js +6 -6
  300. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  301. package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  302. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  303. package/cjs/internal/RenderContainer/RenderInnerContainer.js +8 -1
  304. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  305. package/cjs/internal/RenderLayer/RenderLayer.js +4 -1
  306. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  307. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +3 -1
  308. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  309. package/cjs/internal/ThemePlayground/CheckboxPlayground.js +1 -0
  310. package/cjs/internal/ThemePlayground/CheckboxPlayground.js.map +1 -1
  311. package/cjs/internal/ThemePlayground/Playground.js +11 -19
  312. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  313. package/cjs/internal/ThemePlayground/RadioPlayground.js.map +1 -1
  314. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  315. package/cjs/internal/ThemePlayground/SizesGroup.js +20 -0
  316. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -0
  317. package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  318. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -2
  319. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  320. package/cjs/internal/ThemePlayground/ThemeEditor.js +8 -1
  321. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  322. package/cjs/internal/ThemePlayground/VariableValue.js +18 -6
  323. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  324. package/cjs/internal/ThemePlayground/constants.d.ts +3 -1
  325. package/cjs/internal/ThemePlayground/constants.js +3 -1
  326. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  327. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +4 -7
  328. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  329. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  330. package/cjs/internal/ThemeShowcase/VariablesCollector.js +5 -6
  331. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  332. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  333. package/cjs/internal/ZIndex/ZIndexStorage.js +13 -6
  334. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  335. package/cjs/internal/icons/16px/index.d.ts +19 -19
  336. package/cjs/internal/icons/16px/index.js +45 -38
  337. package/cjs/internal/icons/16px/index.js.map +1 -1
  338. package/cjs/internal/icons/20px/svg.js +6 -0
  339. package/cjs/internal/icons/20px/svg.js.map +1 -1
  340. package/cjs/internal/themes/DefaultTheme.d.ts +21 -1
  341. package/cjs/internal/themes/DefaultTheme.js +43 -5
  342. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  343. package/cjs/internal/themes/NotFlat.d.ts +6 -0
  344. package/cjs/internal/themes/NotFlat.js +12 -2
  345. package/cjs/internal/themes/NotFlat.js.map +1 -1
  346. package/cjs/internal/themes/Theme2022.d.ts +66 -0
  347. package/cjs/internal/themes/Theme2022.js +100 -0
  348. package/cjs/internal/themes/Theme2022.js.map +1 -0
  349. package/cjs/internal/themes/Theme2022Dark.d.ts +5 -0
  350. package/cjs/internal/themes/Theme2022Dark.js +9 -0
  351. package/cjs/internal/themes/Theme2022Dark.js.map +1 -0
  352. package/cjs/lib/ConditionalHandler.d.ts +3 -2
  353. package/cjs/lib/ConditionalHandler.js +5 -3
  354. package/cjs/lib/ConditionalHandler.js.map +1 -1
  355. package/cjs/lib/InstanceWithAnchorElement.d.ts +5 -0
  356. package/cjs/lib/InstanceWithAnchorElement.js +9 -0
  357. package/cjs/lib/InstanceWithAnchorElement.js.map +1 -0
  358. package/cjs/lib/ModalStack.d.ts +1 -1
  359. package/cjs/lib/ModalStack.js.map +1 -1
  360. package/cjs/lib/SSRSafe.d.ts +1 -0
  361. package/cjs/lib/SSRSafe.js +9 -1
  362. package/cjs/lib/SSRSafe.js.map +1 -1
  363. package/cjs/lib/animation/index.d.ts +1 -1
  364. package/cjs/lib/animation/index.js +3 -3
  365. package/cjs/lib/animation/index.js.map +1 -1
  366. package/cjs/lib/date/InternalDate.js +23 -9
  367. package/cjs/lib/date/InternalDate.js.map +1 -1
  368. package/cjs/lib/date/InternalDateCalculator.js +16 -2
  369. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  370. package/cjs/lib/date/InternalDateGetter.js +23 -6
  371. package/cjs/lib/date/InternalDateGetter.js.map +1 -1
  372. package/cjs/lib/date/InternalDateTransformer.js +11 -2
  373. package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
  374. package/cjs/lib/date/InternalDateValidator.js +31 -6
  375. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  376. package/cjs/lib/dom/getDOMRect.d.ts +5 -2
  377. package/cjs/lib/dom/getDOMRect.js +30 -18
  378. package/cjs/lib/dom/getDOMRect.js.map +1 -1
  379. package/cjs/lib/events/keyboard/KeyboardMapKeys.d.ts +2 -1
  380. package/cjs/lib/events/keyboard/KeyboardMapKeys.js +1 -0
  381. package/cjs/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
  382. package/cjs/lib/events/keyboard/extractCode.js +7 -5
  383. package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
  384. package/cjs/lib/needsPolyfillPlaceholder.d.ts +6 -0
  385. package/cjs/lib/needsPolyfillPlaceholder.js +19 -0
  386. package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -0
  387. package/cjs/lib/rootNode/getRootNode.js +16 -10
  388. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  389. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +3 -6
  390. package/cjs/lib/rootNode/rootNodeDecorator.js +11 -13
  391. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  392. package/cjs/lib/stringUtils.js +3 -1
  393. package/cjs/lib/stringUtils.js.map +1 -1
  394. package/cjs/lib/styles/ColorFactory.js +9 -9
  395. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  396. package/cjs/lib/styles/ColorHelpers.d.ts +1 -0
  397. package/cjs/lib/styles/ColorHelpers.js +33 -10
  398. package/cjs/lib/styles/ColorHelpers.js.map +1 -1
  399. package/cjs/lib/styles/ColorObject.js +3 -2
  400. package/cjs/lib/styles/ColorObject.js.map +1 -1
  401. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  402. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js +9 -0
  403. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
  404. package/cjs/lib/taskWithDelayAndMinimalDuration.js +3 -1
  405. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  406. package/cjs/lib/theming/Emotion.js +5 -2
  407. package/cjs/lib/theming/Emotion.js.map +1 -1
  408. package/cjs/lib/theming/ThemeFactory.js +5 -1
  409. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  410. package/cjs/lib/theming/ThemeHelpers.js +7 -2
  411. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  412. package/cjs/lib/theming/themes/Theme2022.d.ts +1 -0
  413. package/cjs/lib/theming/themes/Theme2022.js +6 -0
  414. package/cjs/lib/theming/themes/Theme2022.js.map +1 -0
  415. package/cjs/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  416. package/cjs/lib/theming/themes/Theme2022Dark.js +9 -0
  417. package/cjs/lib/theming/themes/Theme2022Dark.js.map +1 -0
  418. package/cjs/lib/utils.d.ts +15 -0
  419. package/cjs/lib/utils.js +45 -9
  420. package/cjs/lib/utils.js.map +1 -1
  421. package/components/Autocomplete/Autocomplete/Autocomplete.js +18 -20
  422. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  423. package/components/Autocomplete/Autocomplete.d.ts +3 -1
  424. package/components/Button/Button/Button.js +8 -10
  425. package/components/Button/Button/Button.js.map +1 -1
  426. package/components/Button/Button.d.ts +4 -5
  427. package/components/Button/Button.styles/Button.styles.js +1 -1
  428. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  429. package/components/Center/Center/Center.js +10 -5
  430. package/components/Center/Center/Center.js.map +1 -1
  431. package/components/Center/Center.d.ts +3 -0
  432. package/components/Checkbox/Checkbox/Checkbox.js +4 -0
  433. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  434. package/components/Checkbox/Checkbox.d.ts +3 -0
  435. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +2 -1
  436. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  437. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +12 -11
  438. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  439. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +30 -17
  440. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  441. package/components/CurrencyInput/CurrencyInput.d.ts +3 -0
  442. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js +7 -1
  443. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js.map +1 -1
  444. package/components/CurrencyInput/CursorHelper/CursorHelper.js +18 -11
  445. package/components/CurrencyInput/CursorHelper/CursorHelper.js.map +1 -1
  446. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +6 -1
  447. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  448. package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  449. package/components/DateInput/DateInput.styles/DateInput.styles.js +2 -2
  450. package/components/DateInput/DateInput.styles/DateInput.styles.js.map +1 -1
  451. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +7 -7
  452. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
  453. package/components/DatePicker/DatePicker/DatePicker.js +6 -0
  454. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  455. package/components/DatePicker/DatePicker.d.ts +6 -1
  456. package/components/DatePicker/Picker/Picker.js +3 -1
  457. package/components/DatePicker/Picker/Picker.js.map +1 -1
  458. package/components/Dropdown/Dropdown/Dropdown.js +9 -5
  459. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  460. package/components/Dropdown/Dropdown.d.ts +3 -0
  461. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -16
  462. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  463. package/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  464. package/components/FileUploader/FileUploader/FileUploader.js +18 -9
  465. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  466. package/components/FileUploader/FileUploader.d.ts +5 -0
  467. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +15 -12
  468. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  469. package/components/FileUploader/FileUploader.styles.d.ts +3 -2
  470. package/components/FxInput/FxInput/FxInput.js +6 -2
  471. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  472. package/components/FxInput/FxInput.d.ts +3 -0
  473. package/components/Gapped/Gapped/Gapped.js +14 -7
  474. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  475. package/components/Gapped/Gapped.d.ts +4 -0
  476. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +9 -8
  477. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  478. package/components/GlobalLoader/GlobalLoader.d.ts +3 -0
  479. package/components/Group/Group/Group.js +66 -30
  480. package/components/Group/Group/Group.js.map +1 -1
  481. package/components/Group/Group.d.ts +3 -0
  482. package/components/Hint/Hint/Hint.js +6 -0
  483. package/components/Hint/Hint/Hint.js.map +1 -1
  484. package/components/Hint/Hint.d.ts +4 -1
  485. package/components/Input/Input/Input.js +18 -31
  486. package/components/Input/Input/Input.js.map +1 -1
  487. package/components/Input/Input.d.ts +4 -5
  488. package/components/Kebab/Kebab/Kebab.js +3 -13
  489. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  490. package/components/Kebab/Kebab.d.ts +2 -13
  491. package/components/Link/Link/Link.js +10 -5
  492. package/components/Link/Link/Link.js.map +1 -1
  493. package/components/Link/Link.d.ts +3 -0
  494. package/components/Loader/Loader/Loader.js +21 -18
  495. package/components/Loader/Loader/Loader.js.map +1 -1
  496. package/components/Loader/Loader.d.ts +4 -0
  497. package/components/MenuHeader/MenuHeader/MenuHeader.js +4 -0
  498. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  499. package/components/MenuHeader/MenuHeader.d.ts +3 -0
  500. package/components/MenuItem/MenuItem/MenuItem.js +15 -9
  501. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  502. package/components/MenuItem/MenuItem.d.ts +4 -0
  503. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +1 -1
  504. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
  505. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +4 -0
  506. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  507. package/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  508. package/components/Modal/Modal/Modal.js +9 -3
  509. package/components/Modal/Modal/Modal.js.map +1 -1
  510. package/components/Modal/Modal.d.ts +5 -0
  511. package/components/Modal/Modal.styles/Modal.styles.js +4 -4
  512. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  513. package/components/Modal/ModalClose/ModalClose.js +2 -1
  514. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  515. package/components/Modal/ModalFooter/ModalFooter.js +6 -2
  516. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  517. package/components/Modal/ModalFooter.d.ts +3 -0
  518. package/components/Modal/ModalHeader/ModalHeader.js +6 -2
  519. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  520. package/components/Modal/ModalHeader.d.ts +3 -0
  521. package/components/Paging/Paging/Paging.js +24 -18
  522. package/components/Paging/Paging/Paging.js.map +1 -1
  523. package/components/Paging/Paging.d.ts +20 -3
  524. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js +19 -0
  525. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -0
  526. package/components/Paging/PagingDefaultComponent/package.json +6 -0
  527. package/components/Paging/PagingDefaultComponent.d.ts +9 -0
  528. package/components/PasswordInput/PasswordInput/PasswordInput.js +38 -12
  529. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  530. package/components/PasswordInput/PasswordInput.d.ts +7 -0
  531. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js +10 -0
  532. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js.map +1 -0
  533. package/components/PasswordInput/PasswordInputIcon/package.json +6 -0
  534. package/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  535. package/components/Radio/Radio/Radio.js +10 -5
  536. package/components/Radio/Radio/Radio.js.map +1 -1
  537. package/components/Radio/Radio.d.ts +3 -0
  538. package/components/Radio/Radio.styles/Radio.styles.js +2 -1
  539. package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
  540. package/components/RadioGroup/RadioGroup/RadioGroup.js +16 -12
  541. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  542. package/components/RadioGroup/RadioGroup.d.ts +4 -1
  543. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -0
  544. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  545. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -3
  546. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  547. package/components/ResponsiveLayout/ResponsiveLayoutEvents.d.ts +1 -1
  548. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +9 -3
  549. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  550. package/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  551. package/components/Select/Select/Select.js +41 -17
  552. package/components/Select/Select/Select.js.map +1 -1
  553. package/components/Select/Select.d.ts +10 -5
  554. package/components/SidePage/SidePage/SidePage.js +8 -22
  555. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  556. package/components/SidePage/SidePage.d.ts +4 -1
  557. package/components/SidePage/SidePageBody/SidePageBody.js +10 -6
  558. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  559. package/components/SidePage/SidePageBody.d.ts +3 -0
  560. package/components/SidePage/SidePageContainer/SidePageContainer.js +10 -6
  561. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  562. package/components/SidePage/SidePageContainer.d.ts +3 -0
  563. package/components/SidePage/SidePageFooter/SidePageFooter.js +14 -10
  564. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  565. package/components/SidePage/SidePageFooter.d.ts +3 -0
  566. package/components/SidePage/SidePageHeader/SidePageHeader.js +15 -10
  567. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  568. package/components/SidePage/SidePageHeader.d.ts +4 -0
  569. package/components/Spinner/Spinner/Spinner.js +14 -6
  570. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  571. package/components/Spinner/Spinner.d.ts +3 -1
  572. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +18 -4
  573. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
  574. package/components/Sticky/Sticky/Sticky.js +13 -8
  575. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  576. package/components/Sticky/Sticky.d.ts +3 -0
  577. package/components/Switcher/Switcher/Switcher.js +4 -0
  578. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  579. package/components/Switcher/Switcher.d.ts +5 -1
  580. package/components/Switcher/Switcher.styles/Switcher.styles.js +1 -1
  581. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  582. package/components/Tabs/Indicator/Indicator.js +4 -1
  583. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  584. package/components/Tabs/Tab/Tab.js +4 -0
  585. package/components/Tabs/Tab/Tab.js.map +1 -1
  586. package/components/Tabs/Tab.d.ts +3 -0
  587. package/components/Tabs/Tabs/Tabs.js +11 -6
  588. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  589. package/components/Tabs/Tabs.d.ts +7 -1
  590. package/components/Textarea/Textarea/Textarea.js +21 -15
  591. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  592. package/components/Textarea/Textarea.d.ts +6 -2
  593. package/components/Textarea/TextareaCounter/TextareaCounter.js +13 -2
  594. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  595. package/components/Textarea/TextareaCounter.d.ts +1 -2
  596. package/components/Toast/Toast/Toast.js +16 -10
  597. package/components/Toast/Toast/Toast.js.map +1 -1
  598. package/components/Toast/Toast.d.ts +6 -0
  599. package/components/Toast/ToastStatic/ToastStatic.js +2 -2
  600. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  601. package/components/Toast/ToastView/ToastView.js +5 -4
  602. package/components/Toast/ToastView/ToastView.js.map +1 -1
  603. package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
  604. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  605. package/components/Toast/ToastView.styles.d.ts +1 -1
  606. package/components/Toggle/Toggle/Toggle.js +8 -4
  607. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  608. package/components/Toggle/Toggle.d.ts +4 -1
  609. package/components/Toggle/Toggle.styles/Toggle.styles.js +3 -4
  610. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  611. package/components/Token/Token/Token.js +16 -1
  612. package/components/Token/Token/Token.js.map +1 -1
  613. package/components/Token/Token.d.ts +3 -0
  614. package/components/Token/Token.styles/Token.styles.js +11 -4
  615. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  616. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js +3 -2
  617. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
  618. package/components/TokenInput/TokenInput/TokenInput.js +24 -14
  619. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  620. package/components/TokenInput/TokenInput.d.ts +4 -0
  621. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  622. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  623. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -0
  624. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  625. package/components/Tooltip/Tooltip/Tooltip.js +17 -9
  626. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  627. package/components/Tooltip/Tooltip.d.ts +6 -2
  628. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +18 -12
  629. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  630. package/components/TooltipMenu/TooltipMenu.d.ts +4 -1
  631. package/hooks/useDrop/useDrop.js +5 -1
  632. package/hooks/useDrop/useDrop.js.map +1 -1
  633. package/index.d.ts +2 -0
  634. package/index.js +2 -0
  635. package/index.js.map +1 -1
  636. package/internal/BGRuler/BGRuler.js +2 -1
  637. package/internal/BGRuler/BGRuler.js.map +1 -1
  638. package/internal/Calendar/Calendar/Calendar.js +13 -5
  639. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  640. package/internal/Calendar/Calendar.d.ts +6 -0
  641. package/internal/Calendar/CalendarDateShape.d.ts +1 -1
  642. package/internal/Calendar/MonthView/MonthView.js +4 -3
  643. package/internal/Calendar/MonthView/MonthView.js.map +1 -1
  644. package/internal/Calendar/MonthViewModel/MonthViewModel.js +35 -18
  645. package/internal/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
  646. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +12 -12
  647. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  648. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  649. package/internal/ComponentTable.d.ts +4 -2
  650. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +34 -19
  651. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  652. package/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  653. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -0
  654. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  655. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +21 -17
  656. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  657. package/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  658. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +35 -35
  659. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  660. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  661. package/internal/DataTids/DATATIDS.md +12 -0
  662. package/internal/DataTids/DataTids/DataTids.js +69 -0
  663. package/internal/DataTids/DataTids/DataTids.js.map +1 -0
  664. package/internal/DataTids/DataTids/package.json +6 -0
  665. package/internal/DataTids/DataTids.d.ts +12 -0
  666. package/internal/DataTids/DataTids.styles/DataTids.styles.js +22 -0
  667. package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +1 -0
  668. package/internal/DataTids/DataTids.styles/package.json +6 -0
  669. package/internal/DataTids/DataTids.styles.d.ts +7 -0
  670. package/internal/DataTids/componentsDataTids/componentsDataTids.js +14 -0
  671. package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +1 -0
  672. package/internal/DataTids/componentsDataTids/package.json +6 -0
  673. package/internal/DataTids/componentsDataTids.d.ts +5 -0
  674. package/internal/DateSelect/DateSelect/DateSelect.js +29 -18
  675. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  676. package/internal/DateSelect/DateSelect.d.ts +4 -0
  677. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +5 -12
  678. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  679. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +5 -1
  680. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  681. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +15 -7
  682. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  683. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
  684. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -1
  685. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  686. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
  687. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -0
  688. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  689. package/internal/InputLikeText/InputLikeText/InputLikeText.js +8 -2
  690. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  691. package/internal/InputLikeText/InputLikeText.d.ts +5 -1
  692. package/internal/InternalMenu/InternalMenu/InternalMenu.js +19 -17
  693. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  694. package/internal/InternalMenu/InternalMenu.d.ts +3 -0
  695. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  696. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  697. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js +14 -0
  698. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  699. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/package.json +6 -0
  700. package/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  701. package/internal/MaskedInput/MaskedInput/MaskedInput.js +11 -3
  702. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  703. package/internal/MaskedInput/MaskedInput.d.ts +3 -0
  704. package/internal/Menu/Menu/Menu.js +13 -14
  705. package/internal/Menu/Menu/Menu.js.map +1 -1
  706. package/internal/Menu/Menu.d.ts +3 -0
  707. package/internal/Menu/Menu.styles/Menu.styles.js +1 -1
  708. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  709. package/internal/MobilePopup/MobilePopup/MobilePopup.js +6 -0
  710. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  711. package/internal/MobilePopup/MobilePopup.d.ts +4 -0
  712. package/internal/Popup/Popup/Popup.js +19 -14
  713. package/internal/Popup/Popup/Popup.js.map +1 -1
  714. package/internal/Popup/Popup.d.ts +6 -1
  715. package/internal/Popup/PopupHelper/PopupHelper.js +3 -1
  716. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  717. package/internal/Popup/PopupPin/PopupPin.js +2 -0
  718. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  719. package/internal/PopupMenu/PopupMenu/PopupMenu.js +15 -2
  720. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  721. package/internal/PopupMenu/PopupMenu.d.ts +8 -0
  722. package/internal/PopupMenu/validatePositions/validatePositions.js +6 -6
  723. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  724. package/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  725. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +8 -2
  726. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  727. package/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  728. package/internal/RenderLayer/RenderLayer/RenderLayer.js +5 -1
  729. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  730. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +3 -4
  731. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -1
  732. package/internal/ThemePlayground/CheckboxPlayground/CheckboxPlayground.js.map +1 -1
  733. package/internal/ThemePlayground/Playground/Playground.js +15 -29
  734. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  735. package/internal/ThemePlayground/RadioPlayground/RadioPlayground.js.map +1 -1
  736. package/internal/ThemePlayground/SizesGroup/SizesGroup.js +29 -0
  737. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -0
  738. package/internal/ThemePlayground/SizesGroup/package.json +6 -0
  739. package/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  740. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +14 -2
  741. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  742. package/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  743. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js +5 -1
  744. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  745. package/internal/ThemePlayground/VariableValue/VariableValue.js +16 -5
  746. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  747. package/internal/ThemePlayground/constants/constants.js +2 -0
  748. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  749. package/internal/ThemePlayground/constants.d.ts +3 -1
  750. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +3 -6
  751. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  752. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +4 -6
  753. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  754. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  755. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +12 -6
  756. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  757. package/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  758. package/internal/icons/16px/index/index.js +28 -20
  759. package/internal/icons/16px/index/index.js.map +1 -1
  760. package/internal/icons/16px/index.d.ts +19 -19
  761. package/internal/icons/20px/svg/svg.js +5 -0
  762. package/internal/icons/20px/svg/svg.js.map +1 -1
  763. package/internal/themes/DefaultTheme/DefaultTheme.js +53 -4
  764. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  765. package/internal/themes/DefaultTheme.d.ts +21 -1
  766. package/internal/themes/NotFlat/NotFlat.js +15 -0
  767. package/internal/themes/NotFlat/NotFlat.js.map +1 -1
  768. package/internal/themes/NotFlat.d.ts +6 -0
  769. package/internal/themes/Theme2022/Theme2022.js +78 -0
  770. package/internal/themes/Theme2022/Theme2022.js.map +1 -0
  771. package/internal/themes/Theme2022/package.json +6 -0
  772. package/internal/themes/Theme2022.d.ts +66 -0
  773. package/internal/themes/Theme2022Dark/Theme2022Dark.js +17 -0
  774. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  775. package/internal/themes/Theme2022Dark/package.json +6 -0
  776. package/internal/themes/Theme2022Dark.d.ts +5 -0
  777. package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
  778. package/lib/ConditionalHandler.d.ts +3 -2
  779. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js +3 -0
  780. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -0
  781. package/lib/InstanceWithAnchorElement/package.json +6 -0
  782. package/lib/InstanceWithAnchorElement.d.ts +5 -0
  783. package/lib/ModalStack/ModalStack.js.map +1 -1
  784. package/lib/ModalStack.d.ts +1 -1
  785. package/lib/SSRSafe/SSRSafe.js +7 -0
  786. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  787. package/lib/SSRSafe.d.ts +1 -0
  788. package/lib/animation/index/index.js +1 -1
  789. package/lib/animation/index/index.js.map +1 -1
  790. package/lib/animation/index.d.ts +1 -1
  791. package/lib/date/InternalDate/InternalDate.js +16 -1
  792. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  793. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +14 -2
  794. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  795. package/lib/date/InternalDateGetter/InternalDateGetter.js +20 -6
  796. package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
  797. package/lib/date/InternalDateTransformer/InternalDateTransformer.js +11 -1
  798. package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
  799. package/lib/date/InternalDateValidator/InternalDateValidator.js +31 -4
  800. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  801. package/lib/dom/getDOMRect/getDOMRect.js +32 -15
  802. package/lib/dom/getDOMRect/getDOMRect.js.map +1 -1
  803. package/lib/dom/getDOMRect.d.ts +5 -2
  804. package/lib/events/keyboard/KeyboardMapKeys/KeyboardMapKeys.js.map +1 -1
  805. package/lib/events/keyboard/KeyboardMapKeys.d.ts +2 -1
  806. package/lib/events/keyboard/extractCode/extractCode.js +5 -5
  807. package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
  808. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +21 -0
  809. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -0
  810. package/lib/needsPolyfillPlaceholder/package.json +6 -0
  811. package/lib/needsPolyfillPlaceholder.d.ts +6 -0
  812. package/lib/rootNode/getRootNode/getRootNode.js +14 -10
  813. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  814. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +10 -4
  815. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  816. package/lib/rootNode/rootNodeDecorator.d.ts +3 -6
  817. package/lib/stringUtils/stringUtils.js +4 -1
  818. package/lib/stringUtils/stringUtils.js.map +1 -1
  819. package/lib/styles/ColorFactory/ColorFactory.js +9 -9
  820. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  821. package/lib/styles/ColorHelpers/ColorHelpers.js +26 -9
  822. package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
  823. package/lib/styles/ColorHelpers.d.ts +1 -0
  824. package/lib/styles/ColorObject/ColorObject.js +2 -2
  825. package/lib/styles/ColorObject/ColorObject.js.map +1 -1
  826. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js +9 -0
  827. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js.map +1 -0
  828. package/lib/styles/getLabGrotesqueBaselineCompensation/package.json +6 -0
  829. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  830. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +4 -1
  831. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  832. package/lib/theming/Emotion/Emotion.js +5 -2
  833. package/lib/theming/Emotion/Emotion.js.map +1 -1
  834. package/lib/theming/ThemeFactory/ThemeFactory.js +5 -2
  835. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  836. package/lib/theming/ThemeHelpers/ThemeHelpers.js +5 -1
  837. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  838. package/lib/theming/themes/Theme2022/Theme2022.js +4 -0
  839. package/lib/theming/themes/Theme2022/Theme2022.js.map +1 -0
  840. package/lib/theming/themes/Theme2022/package.json +6 -0
  841. package/lib/theming/themes/Theme2022.d.ts +1 -0
  842. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js +5 -0
  843. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  844. package/lib/theming/themes/Theme2022Dark/package.json +6 -0
  845. package/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  846. package/lib/utils/utils.js +42 -6
  847. package/lib/utils/utils.js.map +1 -1
  848. package/lib/utils.d.ts +15 -0
  849. package/package.json +6 -3
  850. package/cjs/components/Button/Corners.d.ts +0 -6
  851. package/cjs/components/Button/Corners.js +0 -5
  852. package/cjs/components/Button/Corners.js.map +0 -1
  853. package/cjs/lib/polyfillPlaceholder.d.ts +0 -1
  854. package/cjs/lib/polyfillPlaceholder.js +0 -17
  855. package/cjs/lib/polyfillPlaceholder.js.map +0 -1
  856. package/components/Button/Corners/Corners.js +0 -6
  857. package/components/Button/Corners/Corners.js.map +0 -1
  858. package/components/Button/Corners/package.json +0 -6
  859. package/components/Button/Corners.d.ts +0 -6
  860. package/lib/polyfillPlaceholder/package.json +0 -6
  861. package/lib/polyfillPlaceholder/polyfillPlaceholder.js +0 -12
  862. package/lib/polyfillPlaceholder/polyfillPlaceholder.js.map +0 -1
  863. package/lib/polyfillPlaceholder.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["Radio.tsx"],"names":["React","ThemeContext","CommonWrapper","cx","keyListener","rootNode","fixFirefoxModifiedClickOnLabel","isEdge","isIE11","RadioGroupContext","styles","globalClasses","Radio","state","focusedByKeyboard","context","inputEl","createRef","renderMain","props","disabled","warning","error","focused","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","radioProps","className","circle","theme","checked","focus","checkedDisabled","value","inputProps","type","input","tabIndex","ref","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","labelProps","root","rootChecked","rootIE11","handleMouseOver","handleMouseEnter","handleMouseLeave","onClick","_isInRadioGroup","activeItem","name","suppressHydrationWarning","placeholder","children","renderCaption","Boolean","e","onSelect","requestAnimationFrame","isArrowPressed","isTabPressed","setState","render","setRootNode","current","blur","captionClassNames","caption","captionDisabled","captionIE11","Component","__KONTUR_REACT_UI__","defaultProps","contextType"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { RadioGroupContext, RadioGroupContextType } from '../RadioGroup/RadioGroupContext';\n\nimport { styles, globalClasses } from './Radio.styles';\n\nexport interface RadioProps<T>\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * Состояние фокуса.\n */\n focused?: boolean;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: T) => void;\n /**\n * HTML-событие `onmouseenter`\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `onmouseover`\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-атрибут `value`.\n */\n value: T;\n }\n > {}\n\nexport interface RadioState {\n focusedByKeyboard: boolean;\n}\n\n/**\n * Радио-кнопки используются, когда может быть выбран только один вариант из нескольких.\n */\n@rootNode\nexport class Radio<T> extends React.Component<RadioProps<T>, RadioState> {\n public static __KONTUR_REACT_UI__ = 'Radio';\n\n public state = {\n focusedByKeyboard: false,\n };\n\n public static defaultProps = {\n focused: false,\n };\n\n public static contextType = RadioGroupContext;\n public context: RadioGroupContextType<T> = this.context;\n\n private inputEl = React.createRef<HTMLInputElement>();\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.inputEl.current?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.inputEl.current?.blur();\n }\n\n public renderMain = (props: CommonWrapperRestProps<RadioProps<T>>) => {\n const {\n disabled = this.context.disabled,\n warning = this.context.warning,\n error = this.context.error,\n focused,\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n onValueChange,\n ...rest\n } = props;\n\n const radioProps = {\n className: cx({\n [styles.circle(this.theme)]: true,\n [styles.checked(this.theme)]: this.props.checked,\n [styles.focus(this.theme)]: this.props.focused || this.state.focusedByKeyboard,\n [styles.error(this.theme)]: error,\n [styles.warning(this.theme)]: warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.checkedDisabled(this.theme)]: this.props.checked && disabled,\n [globalClasses.circle]: true,\n }),\n };\n\n let value: string | number | undefined;\n if (typeof this.props.value === 'string' || typeof this.props.value === 'number') {\n value = this.props.value;\n }\n\n const inputProps = {\n ...rest,\n type: 'radio',\n className: styles.input(),\n disabled,\n tabIndex: this.props.tabIndex,\n value,\n ref: this.inputEl,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n };\n\n const labelProps = {\n className: cx(styles.root(this.theme), {\n [styles.rootChecked(this.theme)]: this.props.checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n }),\n onMouseOver: this.handleMouseOver,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onClick: fixFirefoxModifiedClickOnLabel(this.inputEl),\n };\n\n if (this._isInRadioGroup()) {\n const checked = this.props.value === this.context.activeItem;\n inputProps.checked = checked;\n inputProps.name = this.context.name;\n inputProps.suppressHydrationWarning = true;\n labelProps.className = cx(styles.root(this.theme), {\n [styles.rootChecked(this.theme)]: checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n });\n radioProps.className = cx(radioProps.className, {\n [styles.checked(this.theme)]: checked,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n });\n }\n\n return (\n <label {...labelProps}>\n <input {...inputProps} />\n <span {...radioProps}>\n <span className={styles.placeholder()} />\n </span>\n {this.props.children && this.renderCaption()}\n </label>\n );\n };\n\n private _isInRadioGroup = () => Boolean(this.context.name);\n\n private renderCaption() {\n const captionClassNames = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionDisabled(this.theme)]: !!(this.props.disabled || this.context.disabled),\n [styles.captionIE11()]: isIE11 || isEdge,\n });\n\n return <div className={captionClassNames}>{this.props.children}</div>;\n }\n\n private handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n this.props.onValueChange?.(this.props.value);\n\n if (this._isInRadioGroup()) {\n this.context.onSelect(this.props.value);\n }\n\n this.props.onChange?.(e);\n };\n\n private handleMouseOver: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseOver?.(e);\n };\n\n private handleMouseEnter: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseEnter?.(e);\n };\n\n private handleMouseLeave: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseLeave?.(e);\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.context.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isArrowPressed || keyListener.isTabPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByKeyboard: false });\n };\n}\n"]}
1
+ {"version":3,"sources":["Radio.tsx"],"names":["React","ThemeContext","CommonWrapper","cx","keyListener","rootNode","fixFirefoxModifiedClickOnLabel","isEdge","isIE11","RadioGroupContext","styles","globalClasses","RadioDataTids","root","Radio","state","focusedByKeyboard","context","inputEl","createRef","renderMain","props","disabled","warning","error","focused","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","radioProps","className","circle","theme","checked","focus","checkedDisabled","value","inputProps","type","input","tabIndex","ref","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","labelProps","rootChecked","rootIE11","handleMouseOver","handleMouseEnter","handleMouseLeave","onClick","_isInRadioGroup","activeItem","name","suppressHydrationWarning","placeholder","children","renderCaption","Boolean","e","onSelect","requestAnimationFrame","isArrowPressed","isTabPressed","setState","render","setRootNode","current","blur","captionClassNames","caption","captionDisabled","captionIE11","Component","__KONTUR_REACT_UI__","defaultProps","contextType"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { RadioGroupContext, RadioGroupContextType } from '../RadioGroup/RadioGroupContext';\n\nimport { styles, globalClasses } from './Radio.styles';\n\nexport interface RadioProps<T>\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * Состояние фокуса.\n */\n focused?: boolean;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: T) => void;\n /**\n * HTML-событие `onmouseenter`\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `onmouseover`\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-атрибут `value`.\n */\n value: T;\n }\n > {}\n\nexport interface RadioState {\n focusedByKeyboard: boolean;\n}\n\nexport const RadioDataTids = {\n root: 'Radio__root',\n} as const;\n\n/**\n * Радио-кнопки используются, когда может быть выбран только один вариант из нескольких.\n */\n@rootNode\nexport class Radio<T> extends React.Component<RadioProps<T>, RadioState> {\n public static __KONTUR_REACT_UI__ = 'Radio';\n\n public state = {\n focusedByKeyboard: false,\n };\n\n public static defaultProps = {\n focused: false,\n };\n\n public static contextType = RadioGroupContext;\n public context: RadioGroupContextType<T> = this.context;\n\n private inputEl = React.createRef<HTMLInputElement>();\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.inputEl.current?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.inputEl.current?.blur();\n }\n\n public renderMain = (props: CommonWrapperRestProps<RadioProps<T>>) => {\n const {\n disabled = this.context.disabled,\n warning = this.context.warning,\n error = this.context.error,\n focused,\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n onValueChange,\n ...rest\n } = props;\n\n const radioProps = {\n className: cx({\n [styles.circle(this.theme)]: true,\n [styles.checked(this.theme)]: this.props.checked,\n [styles.focus(this.theme)]: this.props.focused || this.state.focusedByKeyboard,\n [styles.error(this.theme)]: error,\n [styles.warning(this.theme)]: warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.checkedDisabled(this.theme)]: this.props.checked && disabled,\n [globalClasses.circle]: true,\n }),\n };\n\n let value: string | number | undefined;\n if (typeof this.props.value === 'string' || typeof this.props.value === 'number') {\n value = this.props.value;\n }\n\n const inputProps = {\n ...rest,\n type: 'radio',\n className: styles.input(),\n disabled,\n tabIndex: this.props.tabIndex,\n value,\n ref: this.inputEl,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n };\n\n const labelProps = {\n className: cx(styles.root(this.theme), {\n [styles.rootChecked(this.theme)]: this.props.checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n }),\n onMouseOver: this.handleMouseOver,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onClick: fixFirefoxModifiedClickOnLabel(this.inputEl),\n };\n\n if (this._isInRadioGroup()) {\n const checked = this.props.value === this.context.activeItem;\n inputProps.checked = checked;\n inputProps.name = this.context.name;\n inputProps.suppressHydrationWarning = true;\n labelProps.className = cx(styles.root(this.theme), {\n [styles.rootChecked(this.theme)]: checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n });\n radioProps.className = cx(radioProps.className, {\n [styles.checked(this.theme)]: checked,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n });\n }\n\n return (\n <label data-tid={RadioDataTids.root} {...labelProps}>\n <input {...inputProps} />\n <span {...radioProps}>\n <span className={styles.placeholder()} />\n </span>\n {this.props.children && this.renderCaption()}\n </label>\n );\n };\n\n private _isInRadioGroup = () => Boolean(this.context.name);\n\n private renderCaption() {\n const captionClassNames = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionDisabled(this.theme)]: !!(this.props.disabled || this.context.disabled),\n [styles.captionIE11()]: isIE11 || isEdge,\n });\n\n return <div className={captionClassNames}>{this.props.children}</div>;\n }\n\n private handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n this.props.onValueChange?.(this.props.value);\n\n if (this._isInRadioGroup()) {\n this.context.onSelect(this.props.value);\n }\n\n this.props.onChange?.(e);\n };\n\n private handleMouseOver: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseOver?.(e);\n };\n\n private handleMouseEnter: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseEnter?.(e);\n };\n\n private handleMouseLeave: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseLeave?.(e);\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.context.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isArrowPressed || keyListener.isTabPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByKeyboard: false });\n };\n}\n"]}
@@ -40,6 +40,9 @@ export interface RadioProps<T> extends CommonProps, Override<React.InputHTMLAttr
40
40
  export interface RadioState {
41
41
  focusedByKeyboard: boolean;
42
42
  }
43
+ export declare const RadioDataTids: {
44
+ readonly root: "Radio__root";
45
+ };
43
46
  /**
44
47
  * Радио-кнопки используются, когда может быть выбран только один вариант из нескольких.
45
48
  */
@@ -2,6 +2,7 @@ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTempla
2
2
 
3
3
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16;
4
4
 
5
+ import { getLabGrotesqueBaselineCompensation } from "../../../lib/styles/getLabGrotesqueBaselineCompensation";
5
6
  import { css, memoizeStyle, prefix } from "../../../lib/theming/Emotion";
6
7
  import { isChrome } from "../../../lib/client";
7
8
  export var globalClasses = prefix('radio')({
@@ -25,7 +26,7 @@ export var styles = memoizeStyle({
25
26
  circle: function circle(t) {
26
27
  var labGrotesqueCompenstation = parseInt(t.labGrotesqueBaselineCompensation);
27
28
  var fontSize = parseInt(t.checkboxFontSize);
28
- var baselineCompensation = fontSize < 16 && !isChrome ? labGrotesqueCompenstation : fontSize === 16 && isChrome ? -labGrotesqueCompenstation : 0;
29
+ var baselineCompensation = getLabGrotesqueBaselineCompensation(fontSize, labGrotesqueCompenstation, isChrome);
29
30
  var circleSize = "calc(" + t.radioSize + " - 2 * " + t.radioBorderWidthCompensation + ")";
30
31
  var circleOffsetY = "calc(" + t.radioCircleOffsetY + " + " + t.radioBorderWidthCompensation + " + " + baselineCompensation + "px)";
31
32
  var circleMarginX = t.radioBorderWidthCompensation;
@@ -1 +1 @@
1
- {"version":3,"sources":["Radio.styles.ts"],"names":["css","memoizeStyle","prefix","isChrome","globalClasses","circle","mixins","afterOutline","t","radioOutlineWidth","radioSizeAfter","styles","root","radioPaddingY","radioLineHeight","radioFontSize","radioHoverBg","radioHoverShadow","radioActiveBg","radioActiveShadow","radioSize","rootIE11","rootChecked","radioCheckedHoverBgColor","labGrotesqueCompenstation","parseInt","labGrotesqueBaselineCompensation","fontSize","checkboxFontSize","baselineCompensation","circleSize","radioBorderWidthCompensation","circleOffsetY","radioCircleOffsetY","circleMarginX","radioBgImage","radioBorder","radioBoxShadow","radioBgColor","focus","radioFocusShadow","radioBorderColorFocus","warning","radioBorderColorWarning","error","radioBorderColorError","checked","radioCheckedBgColor","radioCheckedBorderColor","radioBulletSize","radioCheckedBulletColor","checkedDisabled","gray","input","disabled","radioDisabledBg","radioDisabledShadow","caption","radioCaptionDisplay","radioCaptionGap","radioTextColor","captionIE11","captionDisabled","textColorDisabled","placeholder"],"mappings":"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","sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isChrome } from '../../lib/client';\n\nexport const globalClasses = prefix('radio')({\n circle: 'circle',\n});\n\nconst mixins = {\n afterOutline(t: Theme) {\n return css`\n content: ' ';\n position: absolute;\n left: -${t.radioOutlineWidth};\n top: -${t.radioOutlineWidth};\n width: ${t.radioSizeAfter};\n height: ${t.radioSizeAfter};\n border-width: ${t.radioOutlineWidth};\n border-style: solid;\n border-radius: 50%;\n box-sizing: border-box;\n `;\n },\n};\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n cursor: pointer;\n position: relative;\n white-space: nowrap;\n padding-top: ${t.radioPaddingY};\n padding-bottom: ${t.radioPaddingY};\n display: inline-flex;\n align-items: baseline;\n line-height: ${t.radioLineHeight};\n font-size: ${t.radioFontSize};\n\n &:hover .${globalClasses.circle} {\n background: ${t.radioHoverBg};\n box-shadow: ${t.radioHoverShadow};\n }\n &:active .${globalClasses.circle} {\n background: ${t.radioActiveBg};\n box-shadow: ${t.radioActiveShadow};\n }\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned circle,\n // and also height and baseline for radio without caption.\n content: '\\\\00A0';\n display: inline-block;\n width: ${t.radioSize};\n flex: 0 0 auto;\n }\n `;\n },\n\n rootIE11() {\n return css`\n display: inline-table;\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.circle} {\n background: ${t.radioCheckedHoverBgColor};\n }\n `;\n },\n\n circle(t: Theme) {\n const labGrotesqueCompenstation = parseInt(t.labGrotesqueBaselineCompensation);\n const fontSize = parseInt(t.checkboxFontSize);\n const baselineCompensation =\n fontSize < 16 && !isChrome\n ? labGrotesqueCompenstation\n : fontSize === 16 && isChrome\n ? -labGrotesqueCompenstation\n : 0;\n const circleSize = `calc(${t.radioSize} - 2 * ${t.radioBorderWidthCompensation})`;\n const circleOffsetY = `calc(${t.radioCircleOffsetY} + ${t.radioBorderWidthCompensation} + ${baselineCompensation}px)`;\n const circleMarginX = t.radioBorderWidthCompensation;\n return css`\n background-image: ${t.radioBgImage};\n border-radius: 50%;\n border: ${t.radioBorder};\n box-shadow: ${t.radioBoxShadow};\n box-sizing: border-box;\n display: inline-block;\n height: ${circleSize};\n width: ${circleSize};\n position: absolute;\n left: 0;\n margin: ${circleOffsetY} ${circleMarginX} 0;\n background-color: ${t.radioBgColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorFocus};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorWarning};\n }\n `;\n },\n\n error(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorError};\n }\n `;\n },\n\n checked(t: Theme) {\n return css`\n background-color: ${t.radioCheckedBgColor};\n border-color: ${t.radioCheckedBorderColor};\n\n &::before {\n content: ' ';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n height: ${t.radioBulletSize};\n width: ${t.radioBulletSize};\n border-radius: 50%;\n background: ${t.radioCheckedBulletColor};\n }\n `;\n },\n\n checkedDisabled(t: Theme) {\n return css`\n &::before {\n background: ${t.gray};\n }\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n background: ${t.radioDisabledBg} !important; // override root hover/active styles\n border-color: transparent !important; // override root hover/active styles\n box-shadow: ${t.radioDisabledShadow} !important; // override root hover/active styles\n `;\n },\n\n caption(t: Theme) {\n return css`\n display: ${t.radioCaptionDisplay};\n padding-left: ${t.radioCaptionGap};\n white-space: normal;\n color: ${t.radioTextColor};\n `;\n },\n\n captionIE11() {\n return css`\n display: table-cell;\n `;\n },\n\n captionDisabled(t: Theme) {\n return css`\n color: ${t.textColorDisabled};\n `;\n },\n\n placeholder() {\n return css`\n display: inline-block;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Radio.styles.ts"],"names":["getLabGrotesqueBaselineCompensation","css","memoizeStyle","prefix","isChrome","globalClasses","circle","mixins","afterOutline","t","radioOutlineWidth","radioSizeAfter","styles","root","radioPaddingY","radioLineHeight","radioFontSize","radioHoverBg","radioHoverShadow","radioActiveBg","radioActiveShadow","radioSize","rootIE11","rootChecked","radioCheckedHoverBgColor","labGrotesqueCompenstation","parseInt","labGrotesqueBaselineCompensation","fontSize","checkboxFontSize","baselineCompensation","circleSize","radioBorderWidthCompensation","circleOffsetY","radioCircleOffsetY","circleMarginX","radioBgImage","radioBorder","radioBoxShadow","radioBgColor","focus","radioFocusShadow","radioBorderColorFocus","warning","radioBorderColorWarning","error","radioBorderColorError","checked","radioCheckedBgColor","radioCheckedBorderColor","radioBulletSize","radioCheckedBulletColor","checkedDisabled","gray","input","disabled","radioDisabledBg","radioDisabledShadow","caption","radioCaptionDisplay","radioCaptionGap","radioTextColor","captionIE11","captionDisabled","textColorDisabled","placeholder"],"mappings":"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","sourcesContent":["import { getLabGrotesqueBaselineCompensation } from '../../lib/styles/getLabGrotesqueBaselineCompensation';\nimport { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isChrome } from '../../lib/client';\n\nexport const globalClasses = prefix('radio')({\n circle: 'circle',\n});\n\nconst mixins = {\n afterOutline(t: Theme) {\n return css`\n content: ' ';\n position: absolute;\n left: -${t.radioOutlineWidth};\n top: -${t.radioOutlineWidth};\n width: ${t.radioSizeAfter};\n height: ${t.radioSizeAfter};\n border-width: ${t.radioOutlineWidth};\n border-style: solid;\n border-radius: 50%;\n box-sizing: border-box;\n `;\n },\n};\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n cursor: pointer;\n position: relative;\n white-space: nowrap;\n padding-top: ${t.radioPaddingY};\n padding-bottom: ${t.radioPaddingY};\n display: inline-flex;\n align-items: baseline;\n line-height: ${t.radioLineHeight};\n font-size: ${t.radioFontSize};\n\n &:hover .${globalClasses.circle} {\n background: ${t.radioHoverBg};\n box-shadow: ${t.radioHoverShadow};\n }\n &:active .${globalClasses.circle} {\n background: ${t.radioActiveBg};\n box-shadow: ${t.radioActiveShadow};\n }\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned circle,\n // and also height and baseline for radio without caption.\n content: '\\\\00A0';\n display: inline-block;\n width: ${t.radioSize};\n flex: 0 0 auto;\n }\n `;\n },\n\n rootIE11() {\n return css`\n display: inline-table;\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.circle} {\n background: ${t.radioCheckedHoverBgColor};\n }\n `;\n },\n\n circle(t: Theme) {\n const labGrotesqueCompenstation = parseInt(t.labGrotesqueBaselineCompensation);\n const fontSize = parseInt(t.checkboxFontSize);\n\n const baselineCompensation = getLabGrotesqueBaselineCompensation(fontSize, labGrotesqueCompenstation, isChrome);\n const circleSize = `calc(${t.radioSize} - 2 * ${t.radioBorderWidthCompensation})`;\n const circleOffsetY = `calc(${t.radioCircleOffsetY} + ${t.radioBorderWidthCompensation} + ${baselineCompensation}px)`;\n const circleMarginX = t.radioBorderWidthCompensation;\n return css`\n background-image: ${t.radioBgImage};\n border-radius: 50%;\n border: ${t.radioBorder};\n box-shadow: ${t.radioBoxShadow};\n box-sizing: border-box;\n display: inline-block;\n height: ${circleSize};\n width: ${circleSize};\n position: absolute;\n left: 0;\n margin: ${circleOffsetY} ${circleMarginX} 0;\n background-color: ${t.radioBgColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorFocus};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorWarning};\n }\n `;\n },\n\n error(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorError};\n }\n `;\n },\n\n checked(t: Theme) {\n return css`\n background-color: ${t.radioCheckedBgColor};\n border-color: ${t.radioCheckedBorderColor};\n\n &::before {\n content: ' ';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n height: ${t.radioBulletSize};\n width: ${t.radioBulletSize};\n border-radius: 50%;\n background: ${t.radioCheckedBulletColor};\n }\n `;\n },\n\n checkedDisabled(t: Theme) {\n return css`\n &::before {\n background: ${t.gray};\n }\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n background: ${t.radioDisabledBg} !important; // override root hover/active styles\n border-color: transparent !important; // override root hover/active styles\n box-shadow: ${t.radioDisabledShadow} !important; // override root hover/active styles\n `;\n },\n\n caption(t: Theme) {\n return css`\n display: ${t.radioCaptionDisplay};\n padding-left: ${t.radioCaptionGap};\n white-space: normal;\n color: ${t.radioTextColor};\n `;\n },\n\n captionIE11() {\n return css`\n display: table-cell;\n `;\n },\n\n captionDisabled(t: Theme) {\n return css`\n color: ${t.textColorDisabled};\n `;\n },\n\n placeholder() {\n return css`\n display: inline-block;\n `;\n },\n});\n"]}
@@ -46,7 +46,7 @@ function _arrayLikeToArray(arr, len) {
46
46
  import React from 'react';
47
47
  import PropTypes from 'prop-types';
48
48
  import invariant from 'invariant';
49
- import { getRandomID } from "../../../lib/utils";
49
+ import { getRandomID, isNonNullable } from "../../../lib/utils";
50
50
  import { Radio } from "../../Radio";
51
51
  import { createPropsGetter } from "../../../lib/createPropsGetter";
52
52
  import { FocusTrap } from "../../../internal/FocusTrap";
@@ -57,17 +57,20 @@ import { rootNode } from "../../../lib/rootNode";
57
57
  import { styles } from "../RadioGroup.styles";
58
58
  import { Prevent } from "../Prevent";
59
59
  import { RadioGroupContext } from "../RadioGroupContext";
60
- export
60
+ export var RadioGroupDataTids = {
61
+ root: 'RadioGroup__root'
62
+ };
61
63
  /**
62
- *
63
- * `children` может содержать любую разметку с компонентами Radio,
64
- * если не передан параметр `items`.
65
- * Каждому компоненту Radio нужно указать параметр `value`, такого же типа
66
- * как и параметр `value` самой радиогруппы.
67
- *
68
- * Значения активного элемента сравниваются по строгому равенству `===`
69
- */
70
- var RadioGroup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
64
+ *
65
+ * `children` может содержать любую разметку с компонентами Radio,
66
+ * если не передан параметр `items`.
67
+ * Каждому компоненту Radio нужно указать параметр `value`, такого же типа
68
+ * как и параметр `value` самой радиогруппы.
69
+ *
70
+ * Значения активного элемента сравниваются по строгому равенству `===`
71
+ */
72
+
73
+ export var RadioGroup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
71
74
  _inheritsLoose(RadioGroup, _React$Component);
72
75
 
73
76
  function RadioGroup(props) {
@@ -97,7 +100,7 @@ var RadioGroup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Re
97
100
  };
98
101
 
99
102
  _this.isControlled = function () {
100
- return _this.props.value != null;
103
+ return isNonNullable(_this.props.value);
101
104
  };
102
105
 
103
106
  _this.handleSelect = function (value) {
@@ -165,6 +168,7 @@ var RadioGroup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Re
165
168
  }, this.props), /*#__PURE__*/React.createElement(FocusTrap, {
166
169
  onBlur: onBlur
167
170
  }, /*#__PURE__*/React.createElement("span", _extends({
171
+ "data-tid": RadioGroupDataTids.root,
168
172
  ref: this.ref,
169
173
  style: style,
170
174
  className: styles.root()
@@ -1 +1 @@
1
- {"version":3,"sources":["RadioGroup.tsx"],"names":["React","PropTypes","invariant","getRandomID","Radio","createPropsGetter","FocusTrap","ThemeContext","CommonWrapper","cx","rootNode","styles","Prevent","RadioGroupContext","RadioGroup","props","name","getProps","defaultProps","getRadioGroupContextValue","activeItem","getValue","onSelect","handleSelect","getName","disabled","error","warning","isControlled","value","state","setState","onValueChange","renderRadio","itemValue","data","index","itemProps","key","className","item","theme","itemFirst","itemInline","inline","renderItem","ref","element","node","defaultValue","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","style","handlers","setRootNode","root","renderChildren","focus","radio","querySelector","items","children","mapItems","Component","__KONTUR_REACT_UI__","propTypes","bool","string","oneOfType","number","func","_value","fn","result","entry","normalizeEntry","push","Array","isArray"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { getRandomID } from '../../lib/utils';\nimport { Radio } from '../Radio';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { FocusTrap } from '../../internal/FocusTrap';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './RadioGroup.styles';\nimport { Prevent } from './Prevent';\nimport { RadioGroupContext, RadioGroupContextType } from './RadioGroupContext';\n\nexport interface RadioGroupProps<T = string | number> extends CommonProps {\n /**\n * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок\n * или значений из параметра `items`\n */\n defaultValue?: T;\n /**\n * Значение радиогруппы. Должно быть одним из значений радиокнопок.\n * Если не указано, то компонент будет работать, как неконтролируемый\n */\n value?: T;\n /**\n * Может быть использовано, если не передан параметр `children`\n *\n * Массив параметров радиокнопок. Может быть типа `Array<Value>` или\n * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`\n * — значение которое будет использовано вторым параметром в `renderItem`.\n * Если тип `items: Array<Value>`, то он будет приведен к типу\n * `Array<[Value, Value]>`\n */\n items?: T[] | [T, React.ReactNode][];\n /**\n * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется\n * случайное имя\n */\n name?: string;\n /**\n * Дизейблит все радиокнопки\n */\n disabled?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: предупреждение.\n */\n warning?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: ошибка.\n */\n error?: boolean;\n /**\n * Выравнивает элементы в строку. Не работает с `children`\n */\n inline?: boolean;\n /**\n * Ширина радиогруппы. Не работает с `children`\n */\n width?: React.CSSProperties['width'];\n /**\n * Метод отрисовки контента радиокнопки. Не работает с `children`.\n *\n * Принимает два аргумента: `(value: Value, data: Data) => React.Node`\n */\n renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n onBlur?: (event: FocusEvent) => void;\n onMouseLeave?: () => any;\n onMouseOver?: () => any;\n onMouseEnter?: () => any;\n}\n\nexport interface RadioGroupState<T> {\n activeItem?: T;\n}\n\n/**\n *\n * `children` может содержать любую разметку с компонентами Radio,\n * если не передан параметр `items`.\n * Каждому компоненту Radio нужно указать параметр `value`, такого же типа\n * как и параметр `value` самой радиогруппы.\n *\n * Значения активного элемента сравниваются по строгому равенству `===`\n */\n@rootNode\nexport class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {\n public static __KONTUR_REACT_UI__ = 'RadioGroup';\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n inline: PropTypes.bool,\n name: PropTypes.string,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public static defaultProps = {\n renderItem,\n };\n\n public static Prevent = Prevent;\n\n private theme!: Theme;\n\n private node: Nullable<HTMLSpanElement>;\n private name = getRandomID();\n private getProps = createPropsGetter(RadioGroup.defaultProps);\n private setRootNode!: TSetRootNode;\n\n constructor(props: RadioGroupProps<T>) {\n super(props);\n\n this.state = {\n activeItem: this.props.defaultValue,\n };\n }\n\n private getRadioGroupContextValue = (): RadioGroupContextType<T> => {\n return {\n activeItem: this.getValue(),\n onSelect: this.handleSelect,\n name: this.getName(),\n disabled: this.props.disabled,\n error: this.props.error,\n warning: this.props.warning,\n };\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const { width, onMouseLeave, onMouseOver, onMouseEnter, onBlur } = this.props;\n const style = {\n width: width != null ? width : 'auto',\n };\n const handlers = {\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusTrap onBlur={onBlur}>\n <span ref={this.ref} style={style} className={styles.root()} {...handlers}>\n <RadioGroupContext.Provider value={this.getRadioGroupContextValue()}>\n {this.renderChildren()}\n </RadioGroupContext.Provider>\n </span>\n </FocusTrap>\n </CommonWrapper>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n const node = this.node;\n if (!node) {\n return;\n }\n\n let radio = node.querySelector('input[type=\"radio\"]:checked') as Nullable<HTMLInputElement>;\n\n // If no checked radios, try get first radio\n if (!radio || radio.disabled) {\n radio = node.querySelector('input[type=\"radio\"]:not([disabled])') as Nullable<HTMLInputElement>;\n }\n\n if (radio) {\n radio.focus();\n }\n }\n\n private getValue = () => (this.isControlled() ? this.props.value : this.state.activeItem);\n\n private getName = () => this.props.name || this.name;\n\n private isControlled = () => this.props.value != null;\n\n private handleSelect = (value: T) => {\n if (!this.isControlled()) {\n this.setState({ activeItem: value });\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private renderChildren() {\n const { items, children } = this.props;\n invariant((!items && children) || (items && !children), 'Either items or children must be passed, not both');\n return items ? mapItems<T>(this.renderRadio, items) : children;\n }\n\n private renderRadio = (itemValue: T, data: React.ReactNode, index: number): JSX.Element => {\n const itemProps = {\n key: typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : index,\n className: cx({\n [styles.item(this.theme)]: true,\n [styles.itemFirst()]: index === 0,\n [styles.itemInline()]: !!this.props.inline,\n }),\n };\n\n return (\n <span {...itemProps}>\n <Radio value={itemValue}>{this.getProps().renderItem<T>(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private ref = (element: HTMLSpanElement) => {\n this.node = element;\n };\n}\n\nfunction renderItem<T>(_value: T, data: React.ReactNode) {\n return data;\n}\n\nfunction mapItems<T>(\n fn: (value: T, data: React.ReactNode, index: number) => React.ReactNode,\n items: T[] | [T, React.ReactNode][],\n) {\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, data] = normalizeEntry<T>(entry);\n result.push(fn(value, data, index));\n ++index;\n }\n return result;\n}\n\nfunction normalizeEntry<T>(entry: T | [T, React.ReactNode]): [T, React.ReactNode] {\n if (!Array.isArray(entry)) {\n return [entry, entry];\n }\n return entry;\n}\n"]}
1
+ {"version":3,"sources":["RadioGroup.tsx"],"names":["React","PropTypes","invariant","getRandomID","isNonNullable","Radio","createPropsGetter","FocusTrap","ThemeContext","CommonWrapper","cx","rootNode","styles","Prevent","RadioGroupContext","RadioGroupDataTids","root","RadioGroup","props","name","getProps","defaultProps","getRadioGroupContextValue","activeItem","getValue","onSelect","handleSelect","getName","disabled","error","warning","isControlled","value","state","setState","onValueChange","renderRadio","itemValue","data","index","itemProps","key","className","item","theme","itemFirst","itemInline","inline","renderItem","ref","element","node","defaultValue","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","style","handlers","setRootNode","renderChildren","focus","radio","querySelector","items","children","mapItems","Component","__KONTUR_REACT_UI__","propTypes","bool","string","oneOfType","number","func","_value","fn","result","entry","normalizeEntry","push","Array","isArray"],"mappings":"qzCAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,SAAP,MAAsB,WAAtB;;AAEA,SAASC,WAAT,EAAsBC,aAAtB,QAA2C,iBAA3C;AACA,SAASC,KAAT,QAAsB,UAAtB;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,SAAT,QAA0B,0BAA1B;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,QAAT,QAAuC,oBAAvC;;AAEA,SAASC,MAAT,QAAuB,qBAAvB;AACA,SAASC,OAAT,QAAwB,WAAxB;AACA,SAASC,iBAAT,QAAyD,qBAAzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,OAAO,IAAMC,kBAAkB,GAAG;AAChCC,EAAAA,IAAI,EAAE,kBAD0B,EAA3B;;;AAIP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAaC,UAAb,GADCN,QACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BE,sBAAYO,KAAZ,EAAuC;AACrC,wCAAMA,KAAN,UADqC,MAJ/BC,IAI+B,GAJxBhB,WAAW,EAIa,OAH/BiB,QAG+B,GAHpBd,iBAAiB,CAACW,UAAU,CAACI,YAAZ,CAGG;;;;;;;AAQ/BC,IAAAA,yBAR+B,GAQH,YAAgC;AAClE,aAAO;AACLC,QAAAA,UAAU,EAAE,MAAKC,QAAL,EADP;AAELC,QAAAA,QAAQ,EAAE,MAAKC,YAFV;AAGLP,QAAAA,IAAI,EAAE,MAAKQ,OAAL,EAHD;AAILC,QAAAA,QAAQ,EAAE,MAAKV,KAAL,CAAWU,QAJhB;AAKLC,QAAAA,KAAK,EAAE,MAAKX,KAAL,CAAWW,KALb;AAMLC,QAAAA,OAAO,EAAE,MAAKZ,KAAL,CAAWY,OANf,EAAP;;AAQD,KAjBsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2E/BN,IAAAA,QA3E+B,GA2EpB,oBAAO,MAAKO,YAAL,KAAsB,MAAKb,KAAL,CAAWc,KAAjC,GAAyC,MAAKC,KAAL,CAAWV,UAA3D,EA3EoB;;AA6E/BI,IAAAA,OA7E+B,GA6ErB,oBAAM,MAAKT,KAAL,CAAWC,IAAX,IAAmB,MAAKA,IAA9B,EA7EqB;;AA+E/BY,IAAAA,YA/E+B,GA+EhB,oBAAM3B,aAAa,CAAC,MAAKc,KAAL,CAAWc,KAAZ,CAAnB,EA/EgB;;AAiF/BN,IAAAA,YAjF+B,GAiFhB,UAACM,KAAD,EAAc;AACnC,UAAI,CAAC,MAAKD,YAAL,EAAL,EAA0B;AACxB,cAAKG,QAAL,CAAc,EAAEX,UAAU,EAAES,KAAd,EAAd;AACD;AACD,UAAI,MAAKd,KAAL,CAAWiB,aAAf,EAA8B;AAC5B,cAAKjB,KAAL,CAAWiB,aAAX,CAAyBH,KAAzB;AACD;AACF,KAxFsC;;;;;;;;AAgG/BI,IAAAA,WAhG+B,GAgGjB,UAACC,SAAD,EAAeC,IAAf,EAAsCC,KAAtC,EAAqE;AACzF,UAAMC,SAAS,GAAG;AAChBC,QAAAA,GAAG,EAAE,OAAOJ,SAAP,KAAqB,QAArB,IAAiC,OAAOA,SAAP,KAAqB,QAAtD,GAAiEA,SAAjE,GAA6EE,KADlE;AAEhBG,QAAAA,SAAS,EAAEhC,EAAE;AACVE,QAAAA,MAAM,CAAC+B,IAAP,CAAY,MAAKC,KAAjB,CADU,IACgB,IADhB;AAEVhC,QAAAA,MAAM,CAACiC,SAAP,EAFU,IAEWN,KAAK,KAAK,CAFrB;AAGV3B,QAAAA,MAAM,CAACkC,UAAP,EAHU,IAGY,CAAC,CAAC,MAAK5B,KAAL,CAAW6B,MAHzB,OAFG,EAAlB;;;;AASA;AACE,oCAAUP,SAAV;AACE,4BAAC,KAAD,IAAO,KAAK,EAAEH,SAAd,IAA0B,MAAKjB,QAAL,GAAgB4B,UAAhB,CAA8BX,SAA9B,EAAyCC,IAAzC,CAA1B,CADF,CADF;;;AAKD,KA/GsC;;AAiH/BW,IAAAA,GAjH+B,GAiHzB,UAACC,OAAD,EAA8B;AAC1C,YAAKC,IAAL,GAAYD,OAAZ;AACD,KAnHsC,CAGrC,MAAKjB,KAAL,GAAa,EACXV,UAAU,EAAE,MAAKL,KAAL,CAAWkC,YADZ,EAAb,CAHqC,aAMtC,CApCH,yCAiDSC,MAjDT,GAiDE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACT,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACU,UAAL,EAAP,CACD,CAJH,CADF,CAQD,CA1DH,QA4DSA,UA5DT,GA4DE,sBAAoB,CAClB,kBAAmE,KAAKpC,KAAxE,CAAQqC,KAAR,eAAQA,KAAR,CAAeC,YAAf,eAAeA,YAAf,CAA6BC,WAA7B,eAA6BA,WAA7B,CAA0CC,YAA1C,eAA0CA,YAA1C,CAAwDC,MAAxD,eAAwDA,MAAxD,CACA,IAAMC,KAAK,GAAG,EACZL,KAAK,EAAEA,KAAF,WAAEA,KAAF,GAAW,MADJ,EAAd,CAGA,IAAMM,QAAQ,GAAG,EACfJ,WAAW,EAAXA,WADe,EAEfC,YAAY,EAAZA,YAFe,EAGfF,YAAY,EAAZA,YAHe,EAAjB,CAMA,oBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,KAAKM,WAAjC,IAAkD,KAAK5C,KAAvD,gBACE,oBAAC,SAAD,IAAW,MAAM,EAAEyC,MAAnB,iBACE,uCAAM,YAAU5C,kBAAkB,CAACC,IAAnC,EAAyC,GAAG,EAAE,KAAKiC,GAAnD,EAAwD,KAAK,EAAEW,KAA/D,EAAsE,SAAS,EAAEhD,MAAM,CAACI,IAAP,EAAjF,IAAoG6C,QAApG,gBACE,oBAAC,iBAAD,CAAmB,QAAnB,IAA4B,KAAK,EAAE,KAAKvC,yBAAL,EAAnC,IACG,KAAKyC,cAAL,EADH,CADF,CADF,CADF,CADF,CAWD,CAlFH,CAoFE;AACF;AACA,KAtFA,QAuFSC,KAvFT,GAuFE,iBAAe,CACb,IAAMb,IAAI,GAAG,KAAKA,IAAlB,CACA,IAAI,CAACA,IAAL,EAAW,CACT,OACD,CAED,IAAIc,KAAK,GAAGd,IAAI,CAACe,aAAL,CAAmB,6BAAnB,CAAZ,CANa,CAQb;AACA,QAAI,CAACD,KAAD,IAAUA,KAAK,CAACrC,QAApB,EAA8B,CAC5BqC,KAAK,GAAGd,IAAI,CAACe,aAAL,CAAmB,qCAAnB,CAAR,CACD,CAED,IAAID,KAAJ,EAAW,CACTA,KAAK,CAACD,KAAN,GACD,CACF,CAvGH,QAwHUD,cAxHV,GAwHE,0BAAyB,CACvB,mBAA4B,KAAK7C,KAAjC,CAAQiD,KAAR,gBAAQA,KAAR,CAAeC,QAAf,gBAAeA,QAAf,CACAlE,SAAS,CAAE,CAACiE,KAAD,IAAUC,QAAX,IAAyBD,KAAK,IAAI,CAACC,QAApC,EAA+C,mDAA/C,CAAT,CACA,OAAOD,KAAK,GAAGE,QAAQ,CAAI,KAAKjC,WAAT,EAAsB+B,KAAtB,CAAX,GAA0CC,QAAtD,CACD,CA5HH,qBAAmCpE,KAAK,CAACsE,SAAzC,WACgBC,mBADhB,GACsC,YADtC,UAGgBC,SAHhB,GAG4B,EACxBJ,QAAQ,EAAEnE,SAAS,CAACkD,IADI,EAExBvB,QAAQ,EAAE3B,SAAS,CAACwE,IAFI,EAGxB5C,KAAK,EAAE5B,SAAS,CAACwE,IAHO,EAIxB1B,MAAM,EAAE9C,SAAS,CAACwE,IAJM,EAKxBtD,IAAI,EAAElB,SAAS,CAACyE,MALQ,EAMxB5C,OAAO,EAAE7B,SAAS,CAACwE,IANK,EAOxBlB,KAAK,EAAEtD,SAAS,CAAC0E,SAAV,CAAoB,CAAC1E,SAAS,CAAC2E,MAAX,EAAmB3E,SAAS,CAACyE,MAA7B,CAApB,CAPiB,EAQxBf,MAAM,EAAE1D,SAAS,CAAC4E,IARM,EASxBnB,YAAY,EAAEzD,SAAS,CAAC4E,IATA,EAUxBrB,YAAY,EAAEvD,SAAS,CAAC4E,IAVA,EAWxBpB,WAAW,EAAExD,SAAS,CAAC4E,IAXC,EAH5B,UAiBgBxD,YAjBhB,GAiB+B,EAC3B2B,UAAU,EAAVA,UAD2B,EAjB/B,UAqBgBnC,OArBhB,GAqB0BA,OArB1B,oBAoJA,SAASmC,UAAT,CAAuB8B,MAAvB,EAAkCxC,IAAlC,EAAyD;AACvD,SAAOA,IAAP;AACD;;AAED,SAAS+B,QAAT;AACEU,EADF;AAEEZ,KAFF;AAGE;AACA,MAAMa,MAAyB,GAAG,EAAlC;AACA,MAAIzC,KAAK,GAAG,CAAZ;AACA,uDAAoB4B,KAApB,wCAA2B,KAAhBc,KAAgB;AACzB,0BAAsBC,cAAc,CAAID,KAAJ,CAApC,CAAOjD,OAAP,sBAAcM,KAAd;AACA0C,IAAAA,MAAM,CAACG,IAAP,CAAYJ,EAAE,CAAC/C,OAAD,EAAQM,KAAR,EAAcC,KAAd,CAAd;AACA,MAAEA,KAAF;AACD;AACD,SAAOyC,MAAP;AACD;;AAED,SAASE,cAAT,CAA2BD,KAA3B,EAAkF;AAChF,MAAI,CAACG,KAAK,CAACC,OAAN,CAAcJ,KAAd,CAAL,EAA2B;AACzB,WAAO,CAACA,KAAD,EAAQA,KAAR,CAAP;AACD;AACD,SAAOA,KAAP;AACD","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { getRandomID, isNonNullable } from '../../lib/utils';\nimport { Radio } from '../Radio';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { FocusTrap } from '../../internal/FocusTrap';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './RadioGroup.styles';\nimport { Prevent } from './Prevent';\nimport { RadioGroupContext, RadioGroupContextType } from './RadioGroupContext';\n\nexport interface RadioGroupProps<T = string | number> extends CommonProps {\n /**\n * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок\n * или значений из параметра `items`\n */\n defaultValue?: T;\n /**\n * Значение радиогруппы. Должно быть одним из значений радиокнопок.\n * Если не указано, то компонент будет работать, как неконтролируемый\n */\n value?: T;\n /**\n * Может быть использовано, если не передан параметр `children`\n *\n * Массив параметров радиокнопок. Может быть типа `Array<Value>` или\n * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`\n * — значение которое будет использовано вторым параметром в `renderItem`.\n * Если тип `items: Array<Value>`, то он будет приведен к типу\n * `Array<[Value, Value]>`\n */\n items?: T[] | Array<[T, React.ReactNode]>;\n /**\n * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется\n * случайное имя\n */\n name?: string;\n /**\n * Дизейблит все радиокнопки\n */\n disabled?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: предупреждение.\n */\n warning?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: ошибка.\n */\n error?: boolean;\n /**\n * Выравнивает элементы в строку. Не работает с `children`\n */\n inline?: boolean;\n /**\n * Ширина радиогруппы. Не работает с `children`\n */\n width?: React.CSSProperties['width'];\n /**\n * Метод отрисовки контента радиокнопки. Не работает с `children`.\n *\n * Принимает два аргумента: `(value: Value, data: Data) => React.Node`\n */\n renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n onBlur?: (event: FocusEvent) => void;\n onMouseLeave?: () => any;\n onMouseOver?: () => any;\n onMouseEnter?: () => any;\n}\n\nexport interface RadioGroupState<T> {\n activeItem?: T;\n}\n\nexport const RadioGroupDataTids = {\n root: 'RadioGroup__root',\n} as const;\n\n/**\n *\n * `children` может содержать любую разметку с компонентами Radio,\n * если не передан параметр `items`.\n * Каждому компоненту Radio нужно указать параметр `value`, такого же типа\n * как и параметр `value` самой радиогруппы.\n *\n * Значения активного элемента сравниваются по строгому равенству `===`\n */\n@rootNode\nexport class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {\n public static __KONTUR_REACT_UI__ = 'RadioGroup';\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n inline: PropTypes.bool,\n name: PropTypes.string,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public static defaultProps = {\n renderItem,\n };\n\n public static Prevent = Prevent;\n\n private theme!: Theme;\n\n private node: Nullable<HTMLSpanElement>;\n private name = getRandomID();\n private getProps = createPropsGetter(RadioGroup.defaultProps);\n private setRootNode!: TSetRootNode;\n\n constructor(props: RadioGroupProps<T>) {\n super(props);\n\n this.state = {\n activeItem: this.props.defaultValue,\n };\n }\n\n private getRadioGroupContextValue = (): RadioGroupContextType<T> => {\n return {\n activeItem: this.getValue(),\n onSelect: this.handleSelect,\n name: this.getName(),\n disabled: this.props.disabled,\n error: this.props.error,\n warning: this.props.warning,\n };\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const { width, onMouseLeave, onMouseOver, onMouseEnter, onBlur } = this.props;\n const style = {\n width: width ?? 'auto',\n };\n const handlers = {\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusTrap onBlur={onBlur}>\n <span data-tid={RadioGroupDataTids.root} ref={this.ref} style={style} className={styles.root()} {...handlers}>\n <RadioGroupContext.Provider value={this.getRadioGroupContextValue()}>\n {this.renderChildren()}\n </RadioGroupContext.Provider>\n </span>\n </FocusTrap>\n </CommonWrapper>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n const node = this.node;\n if (!node) {\n return;\n }\n\n let radio = node.querySelector('input[type=\"radio\"]:checked') as Nullable<HTMLInputElement>;\n\n // If no checked radios, try get first radio\n if (!radio || radio.disabled) {\n radio = node.querySelector('input[type=\"radio\"]:not([disabled])') as Nullable<HTMLInputElement>;\n }\n\n if (radio) {\n radio.focus();\n }\n }\n\n private getValue = () => (this.isControlled() ? this.props.value : this.state.activeItem);\n\n private getName = () => this.props.name || this.name;\n\n private isControlled = () => isNonNullable(this.props.value);\n\n private handleSelect = (value: T) => {\n if (!this.isControlled()) {\n this.setState({ activeItem: value });\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private renderChildren() {\n const { items, children } = this.props;\n invariant((!items && children) || (items && !children), 'Either items or children must be passed, not both');\n return items ? mapItems<T>(this.renderRadio, items) : children;\n }\n\n private renderRadio = (itemValue: T, data: React.ReactNode, index: number): JSX.Element => {\n const itemProps = {\n key: typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : index,\n className: cx({\n [styles.item(this.theme)]: true,\n [styles.itemFirst()]: index === 0,\n [styles.itemInline()]: !!this.props.inline,\n }),\n };\n\n return (\n <span {...itemProps}>\n <Radio value={itemValue}>{this.getProps().renderItem<T>(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private ref = (element: HTMLSpanElement) => {\n this.node = element;\n };\n}\n\nfunction renderItem<T>(_value: T, data: React.ReactNode) {\n return data;\n}\n\nfunction mapItems<T>(\n fn: (value: T, data: React.ReactNode, index: number) => React.ReactNode,\n items: T[] | Array<[T, React.ReactNode]>,\n) {\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, data] = normalizeEntry<T>(entry);\n result.push(fn(value, data, index));\n ++index;\n }\n return result;\n}\n\nfunction normalizeEntry<T>(entry: T | [T, React.ReactNode]): [T, React.ReactNode] {\n if (!Array.isArray(entry)) {\n return [entry, entry];\n }\n return entry;\n}\n"]}
@@ -22,7 +22,7 @@ export interface RadioGroupProps<T = string | number> extends CommonProps {
22
22
  * Если тип `items: Array<Value>`, то он будет приведен к типу
23
23
  * `Array<[Value, Value]>`
24
24
  */
25
- items?: T[] | [T, React.ReactNode][];
25
+ items?: T[] | Array<[T, React.ReactNode]>;
26
26
  /**
27
27
  * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется
28
28
  * случайное имя
@@ -64,6 +64,9 @@ export interface RadioGroupProps<T = string | number> extends CommonProps {
64
64
  export interface RadioGroupState<T> {
65
65
  activeItem?: T;
66
66
  }
67
+ export declare const RadioGroupDataTids: {
68
+ readonly root: "RadioGroup__root";
69
+ };
67
70
  /**
68
71
  *
69
72
  * `children` может содержать любую разметку с компонентами Radio,
@@ -1,4 +1,5 @@
1
1
  import React, { useEffect } from 'react';
2
+ import propTypes from 'prop-types';
2
3
  import { isFunction } from "../../../lib/utils";
3
4
  import { CommonWrapper } from "../../../internal/CommonWrapper";
4
5
  import { useResponsiveLayout } from "../useResponsiveLayout";
@@ -16,4 +17,8 @@ export var ResponsiveLayout = function ResponsiveLayout(props) {
16
17
  }
17
18
  }, [layoutFlags]);
18
19
  return /*#__PURE__*/React.createElement(CommonWrapper, props, isFunction(props.children) ? (_props$children = props.children(layoutFlags)) != null ? _props$children : null : (_props$children2 = props.children) != null ? _props$children2 : null);
20
+ };
21
+ ResponsiveLayout.propTypes = {
22
+ onLayoutChange: propTypes.func,
23
+ children: propTypes.node
19
24
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["React","useEffect","isFunction","CommonWrapper","useResponsiveLayout","ResponsiveLayout","props","layoutFlags","onLayoutChange","children"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;;AAEA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,aAAT,QAA8B,8BAA9B;;;AAGA,SAASC,mBAAT,QAAoC,uBAApC;;;;;;;AAOA;AACA;AACA;;AAEA,OAAO,IAAMC,gBAAiD,GAAG,SAApDA,gBAAoD,CAACC,KAAD,EAAW;AAC1E,MAAMC,WAAW,GAAGH,mBAAmB,EAAvC;;AAEAH,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIK,KAAK,CAACE,cAAV,EAA0B;AACxBF,MAAAA,KAAK,CAACE,cAAN,CAAqBD,WAArB;AACD;AACF,GAJQ,EAIN,CAACA,WAAD,CAJM,CAAT;;AAMA;AACE,wBAAC,aAAD,EAAmBD,KAAnB;AACGJ,IAAAA,UAAU,CAACI,KAAK,CAACG,QAAP,CAAV,sBAA6BH,KAAK,CAACG,QAAN,CAAeF,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACG,QAAzE,+BAAqF,IADxF,CADF;;;AAKD,CAdM","sourcesContent":["import React, { useEffect } from 'react';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps {\n onLayoutChange?: (layout: ResponsiveLayoutFlags) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags) => React.ReactNode);\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport const ResponsiveLayout: React.FC<ResponsiveLayoutProps> = (props) => {\n const layoutFlags = useResponsiveLayout();\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n};\n"]}
1
+ {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["React","useEffect","propTypes","isFunction","CommonWrapper","useResponsiveLayout","ResponsiveLayout","props","layoutFlags","onLayoutChange","children","func","node"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,aAAT,QAA8B,8BAA9B;;;AAGA,SAASC,mBAAT,QAAoC,uBAApC;;;;;;;AAOA;AACA;AACA;;AAEA,OAAO,IAAMC,gBAAiD,GAAG,SAApDA,gBAAoD,CAACC,KAAD,EAAW;AAC1E,MAAMC,WAAW,GAAGH,mBAAmB,EAAvC;;AAEAJ,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIM,KAAK,CAACE,cAAV,EAA0B;AACxBF,MAAAA,KAAK,CAACE,cAAN,CAAqBD,WAArB;AACD;AACF,GAJQ,EAIN,CAACA,WAAD,CAJM,CAAT;;AAMA;AACE,wBAAC,aAAD,EAAmBD,KAAnB;AACGJ,IAAAA,UAAU,CAACI,KAAK,CAACG,QAAP,CAAV,sBAA6BH,KAAK,CAACG,QAAN,CAAeF,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACG,QAAzE,+BAAqF,IADxF,CADF;;;AAKD,CAdM;;AAgBPJ,gBAAgB,CAACJ,SAAjB,GAA6B;AAC3BO,EAAAA,cAAc,EAAEP,SAAS,CAACS,IADC;AAE3BD,EAAAA,QAAQ,EAAER,SAAS,CAACU,IAFO,EAA7B","sourcesContent":["import React, { useEffect } from 'react';\nimport propTypes from 'prop-types';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps {\n onLayoutChange?: (layout: ResponsiveLayoutFlags) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags) => React.ReactNode);\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport const ResponsiveLayout: React.FC<ResponsiveLayoutProps> = (props) => {\n const layoutFlags = useResponsiveLayout();\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n};\n\nResponsiveLayout.propTypes = {\n onLayoutChange: propTypes.func,\n children: propTypes.node,\n};\n"]}
@@ -74,10 +74,10 @@ export function checkMatches(mediaQuery) {
74
74
 
75
75
  if (!eventListenersMap.has(mediaQuery)) {
76
76
  return window.matchMedia(mediaQuery).matches;
77
- } else {
78
- var eventListener = eventListenersMap.get(mediaQuery);
79
- return eventListener.mql.matches;
80
77
  }
78
+
79
+ var eventListener = eventListenersMap.get(mediaQuery);
80
+ return eventListener.mql.matches;
81
81
  }
82
82
 
83
83
  function changeCallback(e) {
@@ -1 +1 @@
1
- {"version":3,"sources":["ResponsiveLayoutEvents.ts"],"names":["canUseDOM","eventListenersMap","Map","addResponsiveLayoutListener","mediaQuery","callback","has","addCallbackToMQListener","createMQListener","remove","removeCallbackFromMQListener","eventListener","get","set","listeners","mql","window","matchMedia","newMediaQueryInfo","addEventListener","changeCallback","addListener","newListeners","filter","listener","length","removeEventListener","removeListener","checkMatches","matches","e","media","forEach"],"mappings":"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","sourcesContent":["import { canUseDOM } from '../../lib/client';\n\ninterface mediaQueryData {\n mql: MediaQueryList;\n listeners: ((e: MediaQueryListEvent) => void)[];\n}\n\nexport interface listenerToken {\n remove: () => void;\n}\n\nexport const eventListenersMap = new Map<string, mediaQueryData>();\n\nexport function addResponsiveLayoutListener(\n mediaQuery: string,\n callback: (e: MediaQueryListEvent) => void,\n): listenerToken {\n if (eventListenersMap.has(mediaQuery)) {\n addCallbackToMQListener(mediaQuery, callback);\n } else {\n createMQListener(mediaQuery, callback);\n }\n\n return {\n remove() {\n removeCallbackFromMQListener(mediaQuery, callback);\n },\n };\n}\n\nfunction addCallbackToMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n const eventListener = eventListenersMap.get(mediaQuery);\n\n if (eventListener) {\n eventListenersMap.set(mediaQuery, {\n ...eventListener,\n listeners: [...eventListener.listeners, callback],\n });\n }\n}\n\nfunction createMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n const mql = window.matchMedia(mediaQuery);\n const newMediaQueryInfo: mediaQueryData = { mql, listeners: [callback] };\n\n eventListenersMap.set(mediaQuery, newMediaQueryInfo);\n if (mql.addEventListener) {\n mql.addEventListener('change', changeCallback);\n } else {\n mql.addListener(changeCallback);\n }\n}\n\nfunction removeCallbackFromMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n if (eventListenersMap.has(mediaQuery)) {\n const eventListener = eventListenersMap.get(mediaQuery);\n\n if (eventListener) {\n const newListeners = eventListener.listeners.filter((listener) => listener !== callback);\n\n if (newListeners.length === 0) {\n if (eventListener.mql.removeEventListener) {\n eventListener.mql.removeEventListener('change', changeCallback);\n } else {\n eventListener.mql.removeListener(changeCallback);\n }\n eventListenersMap.delete(mediaQuery);\n return;\n }\n\n eventListenersMap.set(mediaQuery, {\n ...eventListener,\n listeners: [...newListeners],\n });\n }\n }\n}\n\nexport function checkMatches(mediaQuery: string) {\n if (!canUseDOM) {\n return false;\n }\n\n if (!eventListenersMap.has(mediaQuery)) {\n return window.matchMedia(mediaQuery).matches;\n } else {\n const eventListener = eventListenersMap.get(mediaQuery);\n\n return eventListener!.mql.matches;\n }\n}\n\nfunction changeCallback(e: MediaQueryListEvent) {\n const eventListener = eventListenersMap.get(e.media);\n\n if (eventListener) {\n eventListener.listeners.forEach((listener) => {\n listener(e);\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["ResponsiveLayoutEvents.ts"],"names":["canUseDOM","eventListenersMap","Map","addResponsiveLayoutListener","mediaQuery","callback","has","addCallbackToMQListener","createMQListener","remove","removeCallbackFromMQListener","eventListener","get","set","listeners","mql","window","matchMedia","newMediaQueryInfo","addEventListener","changeCallback","addListener","newListeners","filter","listener","length","removeEventListener","removeListener","checkMatches","matches","e","media","forEach"],"mappings":"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","sourcesContent":["import { canUseDOM } from '../../lib/client';\n\ninterface mediaQueryData {\n mql: MediaQueryList;\n listeners: Array<(e: MediaQueryListEvent) => void>;\n}\n\nexport interface listenerToken {\n remove: () => void;\n}\n\nexport const eventListenersMap = new Map<string, mediaQueryData>();\n\nexport function addResponsiveLayoutListener(\n mediaQuery: string,\n callback: (e: MediaQueryListEvent) => void,\n): listenerToken {\n if (eventListenersMap.has(mediaQuery)) {\n addCallbackToMQListener(mediaQuery, callback);\n } else {\n createMQListener(mediaQuery, callback);\n }\n\n return {\n remove() {\n removeCallbackFromMQListener(mediaQuery, callback);\n },\n };\n}\n\nfunction addCallbackToMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n const eventListener = eventListenersMap.get(mediaQuery);\n\n if (eventListener) {\n eventListenersMap.set(mediaQuery, {\n ...eventListener,\n listeners: [...eventListener.listeners, callback],\n });\n }\n}\n\nfunction createMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n const mql = window.matchMedia(mediaQuery);\n const newMediaQueryInfo: mediaQueryData = { mql, listeners: [callback] };\n\n eventListenersMap.set(mediaQuery, newMediaQueryInfo);\n if (mql.addEventListener) {\n mql.addEventListener('change', changeCallback);\n } else {\n mql.addListener(changeCallback);\n }\n}\n\nfunction removeCallbackFromMQListener(mediaQuery: string, callback: (e: MediaQueryListEvent) => void) {\n if (eventListenersMap.has(mediaQuery)) {\n const eventListener = eventListenersMap.get(mediaQuery);\n\n if (eventListener) {\n const newListeners = eventListener.listeners.filter((listener) => listener !== callback);\n\n if (newListeners.length === 0) {\n if (eventListener.mql.removeEventListener) {\n eventListener.mql.removeEventListener('change', changeCallback);\n } else {\n eventListener.mql.removeListener(changeCallback);\n }\n eventListenersMap.delete(mediaQuery);\n return;\n }\n\n eventListenersMap.set(mediaQuery, {\n ...eventListener,\n listeners: [...newListeners],\n });\n }\n }\n}\n\nexport function checkMatches(mediaQuery: string) {\n if (!canUseDOM) {\n return false;\n }\n\n if (!eventListenersMap.has(mediaQuery)) {\n return window.matchMedia(mediaQuery).matches;\n }\n\n const eventListener = eventListenersMap.get(mediaQuery);\n return eventListener!.mql.matches;\n}\n\nfunction changeCallback(e: MediaQueryListEvent) {\n const eventListener = eventListenersMap.get(e.media);\n\n if (eventListener) {\n eventListener.listeners.forEach((listener) => {\n listener(e);\n });\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  interface mediaQueryData {
2
2
  mql: MediaQueryList;
3
- listeners: ((e: MediaQueryListEvent) => void)[];
3
+ listeners: Array<(e: MediaQueryListEvent) => void>;
4
4
  }
5
5
  export interface listenerToken {
6
6
  remove: () => void;
@@ -10,10 +10,15 @@ import { CommonWrapper } from "../../../internal/CommonWrapper";
10
10
  import { cx } from "../../../lib/theming/Emotion";
11
11
  import { isIE11 } from "../../../lib/client";
12
12
  import { rootNode } from "../../../lib/rootNode";
13
+ import { getDOMRect } from "../../../lib/dom/getDOMRect";
13
14
  import { styles, globalClasses } from "../ScrollContainer.styles";
14
15
  import { scrollSizeParametersNames } from "../ScrollContainer.constants";
15
16
  import { getScrollYOffset, convertScrollbarXScrollState, convertScrollbarYScrollState } from "../ScrollContainer.helpers";
16
17
  import { ScrollBar } from "../ScrollBar";
18
+ export var ScrollContainerDataTids = {
19
+ root: 'ScrollContainer__root',
20
+ inner: 'ScrollContainer__inner'
21
+ };
17
22
  export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
18
23
  _inheritsLoose(ScrollContainer, _React$Component);
19
24
 
@@ -46,6 +51,7 @@ export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/f
46
51
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
47
52
  rootNodeRef: _this.setRootNode
48
53
  }, _this.props), /*#__PURE__*/React.createElement("div", {
54
+ "data-tid": ScrollContainerDataTids.root,
49
55
  className: styles.root(),
50
56
  onMouseMove: _this.handleMouseMove,
51
57
  onMouseLeave: _this.handleMouseLeave
@@ -53,7 +59,7 @@ export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/f
53
59
  style: innerStyle,
54
60
  ref: _this.refInner,
55
61
  className: cx(styles.inner(), globalClasses.inner, isIE11 && styles.innerIE11()),
56
- "data-tid": "ScrollContainer__inner",
62
+ "data-tid": ScrollContainerDataTids.inner,
57
63
  onScroll: _this.handleNativeScroll
58
64
  }, props.children)));
59
65
  };
@@ -149,8 +155,8 @@ export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/f
149
155
  _this.handleMouseMove = function (event) {
150
156
  var _this$scrollY2, _this$scrollX2;
151
157
 
152
- var right = event.currentTarget.getBoundingClientRect().right - event.pageX;
153
- var bottom = event.currentTarget.getBoundingClientRect().bottom - event.pageY;
158
+ var right = getDOMRect(event.currentTarget).right - event.pageX;
159
+ var bottom = getDOMRect(event.currentTarget).bottom - event.pageY;
154
160
  (_this$scrollY2 = _this.scrollY) == null ? void 0 : _this$scrollY2.setHover(right <= 12);
155
161
  (_this$scrollX2 = _this.scrollX) == null ? void 0 : _this$scrollX2.setHover(right >= 12 && bottom <= 12);
156
162
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["ScrollContainer.tsx"],"names":["React","PropTypes","LayoutEvents","CommonWrapper","cx","isIE11","rootNode","styles","globalClasses","scrollSizeParametersNames","getScrollYOffset","convertScrollbarXScrollState","convertScrollbarYScrollState","ScrollBar","ScrollContainer","render","props","disabled","children","innerStyle","scrollBehavior","scrollBehaviour","maxHeight","maxWidth","scrollbarY","renderScrollbar","scrollbarX","setRootNode","root","handleMouseMove","handleMouseLeave","refInner","inner","innerIE11","handleNativeScroll","axis","refScrollBar","refScrollBarX","refScrollBarY","invert","handleScrollStateChange","scrollState","scrollY","scrollX","scrollXState","onScrollStateChangeX","scrollYState","onScrollStateChange","onScrollStateChangeY","scrollbar","element","preventWindowScroll","addEventListener","handleInnerScrollWheel","passive","removeEventListener","event","reflow","onScroll","preventDefault","emit","WheelEvent","shiftKey","hasScrollBar","pos","size","offset","deltaY","right","currentTarget","getBoundingClientRect","pageX","bottom","pageY","setHover","componentDidMount","setInnerElement","componentDidUpdate","prevProps","scrollTo","scrollLeft","offsetLeft","scrollTop","scrollToTop","scrollToBottom","scrollHeight","offsetHeight","scrollToLeft","scrollToRight","scrollWidth","offsetWidth","Component","__KONTUR_REACT_UI__","propTypes","bool","oneOfType","string","number","oneOf","func","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles, globalClasses } from './ScrollContainer.styles';\nimport { scrollSizeParametersNames } from './ScrollContainer.constants';\nimport {\n getScrollYOffset,\n convertScrollbarXScrollState,\n convertScrollbarYScrollState,\n} from './ScrollContainer.helpers';\nimport { ScrollAxis, ScrollBar, ScrollBarScrollState } from './ScrollBar';\n\nexport type ScrollContainerScrollStateX = 'left' | 'scroll' | 'right';\nexport type ScrollContainerScrollStateY = 'top' | 'scroll' | 'bottom';\nexport type ScrollContainerScrollState = ScrollContainerScrollStateY; // deprecated\nexport type ScrollBehaviour = 'auto' | 'smooth';\n\nexport interface ScrollContainerProps extends CommonProps {\n /**\n * Инвертировать цвет скроллбара\n * @default false\n */\n invert: boolean;\n maxHeight?: React.CSSProperties['maxHeight'];\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * @default false\n */\n preventWindowScroll: boolean;\n /**\n * Поведение скролла (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior)\n * @default 'auto'\n */\n scrollBehaviour?: ScrollBehaviour;\n onScrollStateChangeX?: (scrollState: ScrollContainerScrollStateX) => void;\n onScrollStateChangeY?: (scrollState: ScrollContainerScrollStateY) => void;\n onScrollStateChange?: (scrollYState: ScrollContainerScrollState) => void; // deprecated\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n /**\n * Отключение кастомного скролла\n */\n disabled?: boolean;\n}\n\n@rootNode\nexport class ScrollContainer extends React.Component<ScrollContainerProps> {\n public static __KONTUR_REACT_UI__ = 'ScrollContainer';\n\n public static propTypes = {\n invert: PropTypes.bool,\n maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n scrollBehaviour: PropTypes.oneOf(['auto', 'smooth']),\n preventWindowScroll: PropTypes.bool,\n onScrollStateChange: PropTypes.func,\n };\n\n public static defaultProps = {\n invert: false,\n scrollBehaviour: 'auto',\n preventWindowScroll: false,\n };\n\n private scrollX: Nullable<ScrollBar>;\n private scrollY: Nullable<ScrollBar>;\n private inner: Nullable<HTMLElement>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.scrollX?.setInnerElement(this.inner);\n this.scrollY?.setInnerElement(this.inner);\n }\n\n public componentDidUpdate(prevProps: ScrollContainerProps) {\n if (this.inner) {\n if (prevProps.preventWindowScroll && !this.props.preventWindowScroll) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n if (!prevProps.preventWindowScroll && this.props.preventWindowScroll) {\n this.inner.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n }\n }\n\n public render = () => {\n const props = this.props;\n\n if (this.props.disabled) {\n return this.props.children;\n }\n\n const innerStyle: React.CSSProperties = {\n scrollBehavior: props.scrollBehaviour,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth,\n };\n\n const scrollbarY = this.renderScrollbar('y');\n const scrollbarX = this.renderScrollbar('x');\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.root()} onMouseMove={this.handleMouseMove} onMouseLeave={this.handleMouseLeave}>\n {scrollbarY}\n {scrollbarX}\n <div\n style={innerStyle}\n ref={this.refInner}\n className={cx(styles.inner(), globalClasses.inner, isIE11 && styles.innerIE11())}\n data-tid=\"ScrollContainer__inner\"\n onScroll={this.handleNativeScroll}\n >\n {props.children}\n </div>\n </div>\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n * @param {HTMLElement} element\n */\n public scrollTo(element: Nullable<HTMLElement>) {\n if (!element || !this.inner) {\n return;\n }\n\n this.inner.scrollLeft = element.offsetLeft;\n this.inner.scrollTop = getScrollYOffset(element, this.inner);\n }\n\n /**\n * @public\n */\n public scrollToTop() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = 0;\n }\n\n /**\n * @public\n */\n public scrollToBottom() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = this.inner.scrollHeight - this.inner.offsetHeight;\n }\n\n /**\n * @public\n */\n public scrollToLeft() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollLeft = 0;\n }\n\n /**\n * @public\n */\n public scrollToRight() {\n if (!this.inner) {\n return;\n }\n\n this.inner.scrollLeft = this.inner.scrollWidth - this.inner.offsetWidth;\n }\n\n private hasScrollBar(axis: ScrollAxis) {\n if (!this.inner) {\n return false;\n }\n\n return axis === 'x'\n ? this.inner.offsetWidth < this.inner.scrollWidth\n : this.inner.offsetHeight < this.inner.scrollHeight;\n }\n\n private renderScrollbar = (axis: ScrollAxis) => {\n const refScrollBar = axis === 'x' ? this.refScrollBarX : this.refScrollBarY;\n\n return (\n <ScrollBar\n axis={axis}\n ref={refScrollBar}\n invert={this.props.invert}\n onScrollStateChange={this.handleScrollStateChange}\n />\n );\n };\n\n private handleScrollStateChange = (scrollState: ScrollBarScrollState, axis: ScrollAxis) => {\n if (!this.scrollY || !this.scrollX) {\n return;\n }\n\n if (axis === 'x') {\n const scrollXState = convertScrollbarXScrollState(scrollState);\n\n this.props.onScrollStateChangeX?.(scrollXState);\n return;\n }\n\n const scrollYState = convertScrollbarYScrollState(scrollState);\n\n this.props.onScrollStateChange?.(scrollYState);\n this.props.onScrollStateChangeY?.(scrollYState);\n };\n\n private refScrollBarY = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollY = scrollbar;\n };\n\n private refScrollBarX = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollX = scrollbar;\n };\n\n private refInner = (element: HTMLElement | null) => {\n if (!this.inner && element && this.props.preventWindowScroll) {\n element.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n if (this.inner && !element) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n this.inner = element;\n };\n\n private handleNativeScroll = (event: React.UIEvent<HTMLDivElement>) => {\n this.scrollX?.reflow();\n this.scrollY?.reflow();\n\n this.props.onScroll?.(event);\n if (this.props.preventWindowScroll) {\n event.preventDefault();\n return;\n }\n LayoutEvents.emit();\n };\n\n private handleInnerScrollWheel = (event: Event) => {\n if (!this.inner || !(event instanceof WheelEvent)) {\n return;\n }\n\n const axis: ScrollAxis = event.shiftKey ? 'x' : 'y';\n\n if (this.hasScrollBar(axis)) {\n const { pos, size, offset } = scrollSizeParametersNames[axis];\n\n if (event.deltaY > 0 && this.inner[size] <= this.inner[pos] + this.inner[offset]) {\n event.preventDefault();\n return false;\n }\n if (event.deltaY < 0 && this.inner[pos] <= 0) {\n event.preventDefault();\n return false;\n }\n }\n };\n\n private handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const right = event.currentTarget.getBoundingClientRect().right - event.pageX;\n const bottom = event.currentTarget.getBoundingClientRect().bottom - event.pageY;\n\n this.scrollY?.setHover(right <= 12);\n this.scrollX?.setHover(right >= 12 && bottom <= 12);\n };\n\n private handleMouseLeave = () => {\n this.scrollY?.setHover(false);\n this.scrollX?.setHover(false);\n };\n}\n"]}
1
+ {"version":3,"sources":["ScrollContainer.tsx"],"names":["React","PropTypes","LayoutEvents","CommonWrapper","cx","isIE11","rootNode","getDOMRect","styles","globalClasses","scrollSizeParametersNames","getScrollYOffset","convertScrollbarXScrollState","convertScrollbarYScrollState","ScrollBar","ScrollContainerDataTids","root","inner","ScrollContainer","render","props","disabled","children","innerStyle","scrollBehavior","scrollBehaviour","maxHeight","maxWidth","scrollbarY","renderScrollbar","scrollbarX","setRootNode","handleMouseMove","handleMouseLeave","refInner","innerIE11","handleNativeScroll","axis","refScrollBar","refScrollBarX","refScrollBarY","invert","handleScrollStateChange","scrollState","scrollY","scrollX","scrollXState","onScrollStateChangeX","scrollYState","onScrollStateChange","onScrollStateChangeY","scrollbar","element","preventWindowScroll","addEventListener","handleInnerScrollWheel","passive","removeEventListener","event","reflow","onScroll","preventDefault","emit","WheelEvent","shiftKey","hasScrollBar","pos","size","offset","deltaY","right","currentTarget","pageX","bottom","pageY","setHover","componentDidMount","setInnerElement","componentDidUpdate","prevProps","scrollTo","scrollLeft","offsetLeft","scrollTop","scrollToTop","scrollToBottom","scrollHeight","offsetHeight","scrollToLeft","scrollToRight","scrollWidth","offsetWidth","Component","__KONTUR_REACT_UI__","propTypes","bool","oneOfType","string","number","oneOf","func","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles, globalClasses } from './ScrollContainer.styles';\nimport { scrollSizeParametersNames } from './ScrollContainer.constants';\nimport {\n getScrollYOffset,\n convertScrollbarXScrollState,\n convertScrollbarYScrollState,\n} from './ScrollContainer.helpers';\nimport { ScrollAxis, ScrollBar, ScrollBarScrollState } from './ScrollBar';\n\nexport type ScrollContainerScrollStateX = 'left' | 'scroll' | 'right';\nexport type ScrollContainerScrollStateY = 'top' | 'scroll' | 'bottom';\nexport type ScrollContainerScrollState = ScrollContainerScrollStateY; // deprecated\nexport type ScrollBehaviour = 'auto' | 'smooth';\n\nexport interface ScrollContainerProps extends CommonProps {\n /**\n * Инвертировать цвет скроллбара\n * @default false\n */\n invert: boolean;\n maxHeight?: React.CSSProperties['maxHeight'];\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * @default false\n */\n preventWindowScroll: boolean;\n /**\n * Поведение скролла (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior)\n * @default 'auto'\n */\n scrollBehaviour?: ScrollBehaviour;\n onScrollStateChangeX?: (scrollState: ScrollContainerScrollStateX) => void;\n onScrollStateChangeY?: (scrollState: ScrollContainerScrollStateY) => void;\n onScrollStateChange?: (scrollYState: ScrollContainerScrollState) => void; // deprecated\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n /**\n * Отключение кастомного скролла\n */\n disabled?: boolean;\n}\n\nexport const ScrollContainerDataTids = {\n root: 'ScrollContainer__root',\n inner: 'ScrollContainer__inner',\n} as const;\n\n@rootNode\nexport class ScrollContainer extends React.Component<ScrollContainerProps> {\n public static __KONTUR_REACT_UI__ = 'ScrollContainer';\n\n public static propTypes = {\n invert: PropTypes.bool,\n maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n scrollBehaviour: PropTypes.oneOf(['auto', 'smooth']),\n preventWindowScroll: PropTypes.bool,\n onScrollStateChange: PropTypes.func,\n };\n\n public static defaultProps = {\n invert: false,\n scrollBehaviour: 'auto',\n preventWindowScroll: false,\n };\n\n private scrollX: Nullable<ScrollBar>;\n private scrollY: Nullable<ScrollBar>;\n private inner: Nullable<HTMLElement>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.scrollX?.setInnerElement(this.inner);\n this.scrollY?.setInnerElement(this.inner);\n }\n\n public componentDidUpdate(prevProps: ScrollContainerProps) {\n if (this.inner) {\n if (prevProps.preventWindowScroll && !this.props.preventWindowScroll) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n if (!prevProps.preventWindowScroll && this.props.preventWindowScroll) {\n this.inner.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n }\n }\n\n public render = () => {\n const props = this.props;\n\n if (this.props.disabled) {\n return this.props.children;\n }\n\n const innerStyle: React.CSSProperties = {\n scrollBehavior: props.scrollBehaviour,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth,\n };\n\n const scrollbarY = this.renderScrollbar('y');\n const scrollbarX = this.renderScrollbar('x');\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={ScrollContainerDataTids.root}\n className={styles.root()}\n onMouseMove={this.handleMouseMove}\n onMouseLeave={this.handleMouseLeave}\n >\n {scrollbarY}\n {scrollbarX}\n <div\n style={innerStyle}\n ref={this.refInner}\n className={cx(styles.inner(), globalClasses.inner, isIE11 && styles.innerIE11())}\n data-tid={ScrollContainerDataTids.inner}\n onScroll={this.handleNativeScroll}\n >\n {props.children}\n </div>\n </div>\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n * @param {HTMLElement} element\n */\n public scrollTo(element: Nullable<HTMLElement>) {\n if (!element || !this.inner) {\n return;\n }\n\n this.inner.scrollLeft = element.offsetLeft;\n this.inner.scrollTop = getScrollYOffset(element, this.inner);\n }\n\n /**\n * @public\n */\n public scrollToTop() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = 0;\n }\n\n /**\n * @public\n */\n public scrollToBottom() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = this.inner.scrollHeight - this.inner.offsetHeight;\n }\n\n /**\n * @public\n */\n public scrollToLeft() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollLeft = 0;\n }\n\n /**\n * @public\n */\n public scrollToRight() {\n if (!this.inner) {\n return;\n }\n\n this.inner.scrollLeft = this.inner.scrollWidth - this.inner.offsetWidth;\n }\n\n private hasScrollBar(axis: ScrollAxis) {\n if (!this.inner) {\n return false;\n }\n\n return axis === 'x'\n ? this.inner.offsetWidth < this.inner.scrollWidth\n : this.inner.offsetHeight < this.inner.scrollHeight;\n }\n\n private renderScrollbar = (axis: ScrollAxis) => {\n const refScrollBar = axis === 'x' ? this.refScrollBarX : this.refScrollBarY;\n\n return (\n <ScrollBar\n axis={axis}\n ref={refScrollBar}\n invert={this.props.invert}\n onScrollStateChange={this.handleScrollStateChange}\n />\n );\n };\n\n private handleScrollStateChange = (scrollState: ScrollBarScrollState, axis: ScrollAxis) => {\n if (!this.scrollY || !this.scrollX) {\n return;\n }\n\n if (axis === 'x') {\n const scrollXState = convertScrollbarXScrollState(scrollState);\n\n this.props.onScrollStateChangeX?.(scrollXState);\n return;\n }\n\n const scrollYState = convertScrollbarYScrollState(scrollState);\n\n this.props.onScrollStateChange?.(scrollYState);\n this.props.onScrollStateChangeY?.(scrollYState);\n };\n\n private refScrollBarY = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollY = scrollbar;\n };\n\n private refScrollBarX = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollX = scrollbar;\n };\n\n private refInner = (element: HTMLElement | null) => {\n if (!this.inner && element && this.props.preventWindowScroll) {\n element.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n if (this.inner && !element) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n this.inner = element;\n };\n\n private handleNativeScroll = (event: React.UIEvent<HTMLDivElement>) => {\n this.scrollX?.reflow();\n this.scrollY?.reflow();\n\n this.props.onScroll?.(event);\n if (this.props.preventWindowScroll) {\n event.preventDefault();\n return;\n }\n LayoutEvents.emit();\n };\n\n private handleInnerScrollWheel = (event: Event) => {\n if (!this.inner || !(event instanceof WheelEvent)) {\n return;\n }\n\n const axis: ScrollAxis = event.shiftKey ? 'x' : 'y';\n\n if (this.hasScrollBar(axis)) {\n const { pos, size, offset } = scrollSizeParametersNames[axis];\n\n if (event.deltaY > 0 && this.inner[size] <= this.inner[pos] + this.inner[offset]) {\n event.preventDefault();\n return false;\n }\n if (event.deltaY < 0 && this.inner[pos] <= 0) {\n event.preventDefault();\n return false;\n }\n }\n };\n\n private handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const right = getDOMRect(event.currentTarget).right - event.pageX;\n const bottom = getDOMRect(event.currentTarget).bottom - event.pageY;\n\n this.scrollY?.setHover(right <= 12);\n this.scrollX?.setHover(right >= 12 && bottom <= 12);\n };\n\n private handleMouseLeave = () => {\n this.scrollY?.setHover(false);\n this.scrollX?.setHover(false);\n };\n}\n"]}
@@ -32,6 +32,10 @@ export interface ScrollContainerProps extends CommonProps {
32
32
  */
33
33
  disabled?: boolean;
34
34
  }
35
+ export declare const ScrollContainerDataTids: {
36
+ readonly root: "ScrollContainer__root";
37
+ readonly inner: "ScrollContainer__inner";
38
+ };
35
39
  export declare class ScrollContainer extends React.Component<ScrollContainerProps> {
36
40
  static __KONTUR_REACT_UI__: string;
37
41
  static propTypes: {