@skbkontur/react-ui 0.0.0-8824ede9eb → 0.0.0-8ea1692541

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 (708) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +9 -17
  3. package/cjs/components/Autocomplete/Autocomplete.js +13 -7
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +4 -5
  6. package/cjs/components/Button/Button.js +8 -3
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Button/Button.mixins.js +1 -1
  9. package/cjs/components/Button/Button.mixins.js.map +1 -1
  10. package/cjs/components/Button/Button.styles.js +18 -18
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Center/Center.d.ts +4 -3
  13. package/cjs/components/Center/Center.js +9 -3
  14. package/cjs/components/Center/Center.js.map +1 -1
  15. package/cjs/components/Checkbox/Checkbox.js +4 -2
  16. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  17. package/cjs/components/Checkbox/Checkbox.md +48 -0
  18. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -1
  19. package/cjs/components/Checkbox/Checkbox.styles.js +1 -1
  20. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  21. package/cjs/components/ComboBox/ComboBox.d.ts +8 -13
  22. package/cjs/components/ComboBox/ComboBox.js +12 -2
  23. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  24. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  25. package/cjs/components/CurrencyInput/CurrencyInput.js +25 -10
  26. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  27. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
  28. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js +14 -2
  29. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js.map +1 -1
  30. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
  31. package/cjs/components/CurrencyLabel/CurrencyLabel.js +15 -15
  32. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  33. package/cjs/components/DateInput/DateFragmentsView.d.ts +1 -1
  34. package/cjs/components/DateInput/DateFragmentsView.js +10 -1
  35. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  36. package/cjs/components/DateInput/DateInput.d.ts +9 -12
  37. package/cjs/components/DateInput/DateInput.js +11 -3
  38. package/cjs/components/DateInput/DateInput.js.map +1 -1
  39. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js +1 -2
  40. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
  41. package/cjs/components/DateInput/helpers/SelectionHelpers.js +2 -2
  42. package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
  43. package/cjs/components/DatePicker/DatePicker.d.ts +7 -9
  44. package/cjs/components/DatePicker/DatePicker.js +23 -9
  45. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  46. package/cjs/components/DatePicker/Picker.js +5 -1
  47. package/cjs/components/DatePicker/Picker.js.map +1 -1
  48. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +5 -5
  49. package/cjs/components/DropdownMenu/DropdownMenu.js +9 -3
  50. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  51. package/cjs/components/FileUploader/FileUploader.js +2 -2
  52. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  53. package/cjs/components/FileUploader/FileUploader.md +8 -1
  54. package/cjs/components/FxInput/FxInput.d.ts +6 -6
  55. package/cjs/components/FxInput/FxInput.js +16 -11
  56. package/cjs/components/FxInput/FxInput.js.map +1 -1
  57. package/cjs/components/Gapped/Gapped.d.ts +7 -8
  58. package/cjs/components/Gapped/Gapped.js +12 -6
  59. package/cjs/components/Gapped/Gapped.js.map +1 -1
  60. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  61. package/cjs/components/GlobalLoader/GlobalLoader.js +13 -9
  62. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  63. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  64. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  65. package/cjs/components/Hint/Hint.d.ts +8 -12
  66. package/cjs/components/Hint/Hint.js +15 -5
  67. package/cjs/components/Hint/Hint.js.map +1 -1
  68. package/cjs/components/Hint/Hint.md +14 -0
  69. package/cjs/components/Input/Input.d.ts +4 -3
  70. package/cjs/components/Input/Input.js +10 -5
  71. package/cjs/components/Input/Input.js.map +1 -1
  72. package/cjs/components/Input/Input.md +5 -1
  73. package/cjs/components/Kebab/Kebab.d.ts +8 -15
  74. package/cjs/components/Kebab/Kebab.js +14 -5
  75. package/cjs/components/Kebab/Kebab.js.map +1 -1
  76. package/cjs/components/Link/Link.d.ts +5 -7
  77. package/cjs/components/Link/Link.js +12 -5
  78. package/cjs/components/Link/Link.js.map +1 -1
  79. package/cjs/components/Loader/Loader.d.ts +9 -5
  80. package/cjs/components/Loader/Loader.js +15 -4
  81. package/cjs/components/Loader/Loader.js.map +1 -1
  82. package/cjs/components/Loader/__stories__/LoaderAndButton.js +6 -0
  83. package/cjs/components/Loader/__stories__/LoaderAndButton.js.map +1 -1
  84. package/cjs/components/MenuItem/MenuItem.js +3 -1
  85. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  86. package/cjs/components/Modal/Modal.d.ts +4 -3
  87. package/cjs/components/Modal/Modal.js +9 -4
  88. package/cjs/components/Modal/Modal.js.map +1 -1
  89. package/cjs/components/Modal/Modal.styles.d.ts +2 -2
  90. package/cjs/components/Modal/Modal.styles.js +2 -2
  91. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  92. package/cjs/components/Modal/ModalBody.js +2 -2
  93. package/cjs/components/Modal/ModalBody.js.map +1 -1
  94. package/cjs/components/Modal/ModalFooter.js +1 -1
  95. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  96. package/cjs/components/Modal/ModalHeader.js +1 -1
  97. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  98. package/cjs/components/Paging/Paging.d.ts +7 -10
  99. package/cjs/components/Paging/Paging.js +16 -6
  100. package/cjs/components/Paging/Paging.js.map +1 -1
  101. package/cjs/components/Paging/PagingDefaultComponent.d.ts +3 -3
  102. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
  103. package/cjs/components/PasswordInput/PasswordInput.d.ts +4 -3
  104. package/cjs/components/PasswordInput/PasswordInput.js +14 -7
  105. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  106. package/cjs/components/Radio/Radio.d.ts +4 -3
  107. package/cjs/components/Radio/Radio.js +11 -4
  108. package/cjs/components/Radio/Radio.js.map +1 -1
  109. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -4
  110. package/cjs/components/RadioGroup/RadioGroup.js +4 -2
  111. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  112. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +2 -2
  113. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  114. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +7 -8
  115. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js +4 -4
  116. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
  117. package/cjs/components/ScrollContainer/ScrollContainer.js +12 -6
  118. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  119. package/cjs/components/Select/Item.d.ts +4 -2
  120. package/cjs/components/Select/Item.js +3 -0
  121. package/cjs/components/Select/Item.js.map +1 -1
  122. package/cjs/components/Select/Select.d.ts +3 -12
  123. package/cjs/components/Select/Select.js +8 -1
  124. package/cjs/components/Select/Select.js.map +1 -1
  125. package/cjs/components/Select/Select.styles.js +4 -4
  126. package/cjs/components/Select/Select.styles.js.map +1 -1
  127. package/cjs/components/SidePage/SidePage.d.ts +5 -6
  128. package/cjs/components/SidePage/SidePage.js +8 -1
  129. package/cjs/components/SidePage/SidePage.js.map +1 -1
  130. package/cjs/components/SidePage/SidePageFooter.d.ts +6 -4
  131. package/cjs/components/SidePage/SidePageFooter.js +4 -0
  132. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  133. package/cjs/components/Spinner/Spinner.d.ts +4 -2
  134. package/cjs/components/Spinner/Spinner.js +10 -4
  135. package/cjs/components/Spinner/Spinner.js.map +1 -1
  136. package/cjs/components/Spinner/Spinner.styles.d.ts +1 -1
  137. package/cjs/components/Spinner/Spinner.styles.js +7 -7
  138. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  139. package/cjs/components/Sticky/Sticky.d.ts +5 -4
  140. package/cjs/components/Sticky/Sticky.js +9 -2
  141. package/cjs/components/Sticky/Sticky.js.map +1 -1
  142. package/cjs/components/Tabs/Indicator.d.ts +1 -1
  143. package/cjs/components/Tabs/Indicator.js +1 -1
  144. package/cjs/components/Tabs/Indicator.js.map +1 -1
  145. package/cjs/components/Tabs/Tab.d.ts +4 -4
  146. package/cjs/components/Tabs/Tab.js +11 -13
  147. package/cjs/components/Tabs/Tab.js.map +1 -1
  148. package/cjs/components/Tabs/Tabs.d.ts +4 -4
  149. package/cjs/components/Tabs/Tabs.js +12 -3
  150. package/cjs/components/Tabs/Tabs.js.map +1 -1
  151. package/cjs/components/Textarea/Textarea.d.ts +8 -10
  152. package/cjs/components/Textarea/Textarea.js +13 -7
  153. package/cjs/components/Textarea/Textarea.js.map +1 -1
  154. package/cjs/components/Textarea/TextareaCounter.d.ts +2 -2
  155. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  156. package/cjs/components/Toast/Toast.js +1 -1
  157. package/cjs/components/Toast/Toast.js.map +1 -1
  158. package/cjs/components/Toggle/Toggle.d.ts +5 -6
  159. package/cjs/components/Toggle/Toggle.js +10 -4
  160. package/cjs/components/Toggle/Toggle.js.map +1 -1
  161. package/cjs/components/TokenInput/TokenInput.d.ts +19 -16
  162. package/cjs/components/TokenInput/TokenInput.js +76 -59
  163. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  164. package/cjs/components/TokenInput/TokenInputMenu.d.ts +2 -1
  165. package/cjs/components/TokenInput/TokenInputMenu.js +1 -1
  166. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  167. package/cjs/components/Tooltip/Tooltip.d.ts +13 -19
  168. package/cjs/components/Tooltip/Tooltip.js +27 -24
  169. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  170. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +6 -5
  171. package/cjs/components/TooltipMenu/TooltipMenu.js +11 -5
  172. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  173. package/cjs/hooks/useEffectWithoutInitCall.d.ts +2 -2
  174. package/cjs/hooks/useEffectWithoutInitCall.js +2 -2
  175. package/cjs/hooks/useEffectWithoutInitCall.js.map +1 -1
  176. package/cjs/hooks/useMemoObject.d.ts +2 -1
  177. package/cjs/hooks/useMemoObject.js +2 -0
  178. package/cjs/hooks/useMemoObject.js.map +1 -1
  179. package/cjs/internal/BGRuler.d.ts +13 -15
  180. package/cjs/internal/BGRuler.js +16 -8
  181. package/cjs/internal/BGRuler.js.map +1 -1
  182. package/cjs/internal/Calendar/Calendar.d.ts +4 -13
  183. package/cjs/internal/Calendar/Calendar.js +10 -5
  184. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  185. package/cjs/internal/Calendar/DayCellView.styles.js +1 -1
  186. package/cjs/internal/Calendar/DayCellView.styles.js.map +1 -1
  187. package/cjs/internal/Calendar/Month.js +16 -11
  188. package/cjs/internal/Calendar/Month.js.map +1 -1
  189. package/cjs/internal/Calendar/MonthViewModel.d.ts +1 -1
  190. package/cjs/internal/Calendar/config.d.ts +1 -8
  191. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
  192. package/cjs/internal/CommonWrapper/CommonWrapper.js +5 -4
  193. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  194. package/cjs/internal/ComponentCombinator.d.ts +6 -8
  195. package/cjs/internal/ComponentCombinator.js +6 -2
  196. package/cjs/internal/ComponentCombinator.js.map +1 -1
  197. package/cjs/internal/ComponentTable.d.ts +7 -8
  198. package/cjs/internal/ComponentTable.js +14 -3
  199. package/cjs/internal/ComponentTable.js.map +1 -1
  200. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +6 -6
  201. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +14 -8
  202. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  203. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
  204. package/cjs/internal/CustomComboBox/ComboBoxView.js +18 -10
  205. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  206. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +4 -5
  207. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  208. package/cjs/internal/DataTids/DataTids.d.ts +5 -5
  209. package/cjs/internal/DataTids/DataTids.js +4 -0
  210. package/cjs/internal/DataTids/DataTids.js.map +1 -1
  211. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -6
  212. package/cjs/internal/DateSelect/DateSelect.js +16 -10
  213. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  214. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  215. package/cjs/internal/DropdownContainer/DropdownContainer.js +8 -5
  216. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  217. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  218. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  219. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  220. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  221. package/cjs/internal/InputLikeText/InputLikeText.d.ts +4 -3
  222. package/cjs/internal/InputLikeText/InputLikeText.js +11 -4
  223. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  224. package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -9
  225. package/cjs/internal/InternalMenu/InternalMenu.js +36 -14
  226. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  227. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -1
  228. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  229. package/cjs/internal/MaskedInput/MaskedInput.d.ts +5 -2
  230. package/cjs/internal/MaskedInput/MaskedInput.js +20 -7
  231. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  232. package/cjs/internal/Menu/Menu.d.ts +4 -7
  233. package/cjs/internal/Menu/Menu.js +14 -4
  234. package/cjs/internal/Menu/Menu.js.map +1 -1
  235. package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
  236. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  237. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
  238. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  239. package/cjs/internal/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  240. package/cjs/internal/Popup/Popup.d.ts +11 -17
  241. package/cjs/internal/Popup/Popup.js +38 -19
  242. package/cjs/internal/Popup/Popup.js.map +1 -1
  243. package/cjs/internal/Popup/PopupHelper.d.ts +1 -1
  244. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  245. package/cjs/internal/Popup/PopupPin.d.ts +1 -1
  246. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  247. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -11
  248. package/cjs/internal/PopupMenu/PopupMenu.js +8 -1
  249. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  250. package/cjs/internal/RenderLayer/RenderLayer.d.ts +6 -4
  251. package/cjs/internal/RenderLayer/RenderLayer.js +15 -4
  252. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  253. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  254. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js +7 -0
  255. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js.map +1 -1
  256. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  257. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js +2 -3
  258. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js.map +1 -1
  259. package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  260. package/cjs/internal/ThemePlayground/FxInputPlayground.js +5 -5
  261. package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
  262. package/cjs/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  263. package/cjs/internal/ThemePlayground/HintPlayground.js.map +1 -1
  264. package/cjs/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  265. package/cjs/internal/ThemePlayground/PagingPlayground.js +5 -2
  266. package/cjs/internal/ThemePlayground/PagingPlayground.js.map +1 -1
  267. package/cjs/internal/ThemePlayground/Playground.d.ts +1 -1
  268. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  269. package/cjs/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  270. package/cjs/internal/ThemePlayground/SelectPlayground.js +6 -0
  271. package/cjs/internal/ThemePlayground/SelectPlayground.js.map +1 -1
  272. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  273. package/cjs/internal/ThemePlayground/SizesGroup.js +2 -0
  274. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  275. package/cjs/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  276. package/cjs/internal/ThemePlayground/SwitcherPlayground.js +6 -1
  277. package/cjs/internal/ThemePlayground/SwitcherPlayground.js.map +1 -1
  278. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -4
  279. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  280. package/cjs/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  281. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  282. package/cjs/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  283. package/cjs/internal/ThemePlayground/TogglePlayground.js +4 -10
  284. package/cjs/internal/ThemePlayground/TogglePlayground.js.map +1 -1
  285. package/cjs/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  286. package/cjs/internal/ThemePlayground/TokenInputPlayground.js +3 -0
  287. package/cjs/internal/ThemePlayground/TokenInputPlayground.js.map +1 -1
  288. package/cjs/internal/ThemePlayground/VariableValue.d.ts +6 -8
  289. package/cjs/internal/ThemePlayground/VariableValue.js +6 -1
  290. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  291. package/cjs/internal/ThemePlayground/helpers.d.ts +1 -1
  292. package/cjs/internal/ThemePlayground/helpers.js +4 -2
  293. package/cjs/internal/ThemePlayground/helpers.js.map +1 -1
  294. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  295. package/cjs/internal/ZIndex/ZIndex.d.ts +7 -11
  296. package/cjs/internal/ZIndex/ZIndex.js +7 -7
  297. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  298. package/cjs/internal/themes/DefaultTheme.js +1 -1
  299. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  300. package/cjs/lib/ConditionalHandler.js.map +1 -1
  301. package/cjs/lib/InstanceWithAnchorElement.d.ts +1 -1
  302. package/cjs/lib/InstanceWithAnchorElement.js.map +1 -1
  303. package/cjs/lib/ModalStack.js +2 -2
  304. package/cjs/lib/ModalStack.js.map +1 -1
  305. package/cjs/lib/SSRSafe.d.ts +2 -1
  306. package/cjs/lib/SSRSafe.js +9 -1
  307. package/cjs/lib/SSRSafe.js.map +1 -1
  308. package/cjs/lib/animation/index.js +1 -0
  309. package/cjs/lib/animation/index.js.map +1 -1
  310. package/cjs/lib/callChildRef/callChildRef.js +1 -1
  311. package/cjs/lib/callChildRef/callChildRef.js.map +1 -1
  312. package/cjs/lib/createPropsGetter.d.ts +2 -1
  313. package/cjs/lib/createPropsGetter.js +3 -0
  314. package/cjs/lib/createPropsGetter.js.map +1 -1
  315. package/cjs/lib/date/InternalDateCalculator.d.ts +1 -1
  316. package/cjs/lib/date/InternalDateCalculator.js +1 -1
  317. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  318. package/cjs/lib/date/InternalDateValidator.d.ts +1 -1
  319. package/cjs/lib/date/InternalDateValidator.js +9 -2
  320. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  321. package/cjs/lib/extractKeyboardAction.d.ts +1 -1
  322. package/cjs/lib/extractKeyboardAction.js.map +1 -1
  323. package/cjs/lib/filterProps.js +0 -1
  324. package/cjs/lib/filterProps.js.map +1 -1
  325. package/cjs/lib/listenFocusOutside.d.ts +1 -1
  326. package/cjs/lib/listenFocusOutside.js.map +1 -1
  327. package/cjs/lib/locale/useLocaleForControl.d.ts +1 -1
  328. package/cjs/lib/locale/useLocaleForControl.js.map +1 -1
  329. package/cjs/lib/memo.d.ts +3 -1
  330. package/cjs/lib/memo.js +3 -3
  331. package/cjs/lib/memo.js.map +1 -1
  332. package/cjs/lib/net/fetch.js +2 -2
  333. package/cjs/lib/net/fetch.js.map +1 -1
  334. package/cjs/lib/reactGetTextContent.js +0 -1
  335. package/cjs/lib/reactGetTextContent.js.map +1 -1
  336. package/cjs/lib/rootNode/getRootNode.d.ts +3 -3
  337. package/cjs/lib/rootNode/getRootNode.js +7 -7
  338. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  339. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -9
  340. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  341. package/cjs/lib/styles/ColorFactory.js +2 -2
  342. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  343. package/cjs/lib/styles/ColorFunctions.js.map +1 -1
  344. package/cjs/lib/theming/AnimationKeyframes.d.ts +3 -5
  345. package/cjs/lib/theming/AnimationKeyframes.js +8 -22
  346. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  347. package/cjs/lib/theming/Emotion.js +1 -0
  348. package/cjs/lib/theming/Emotion.js.map +1 -1
  349. package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
  350. package/cjs/lib/theming/ThemeFactory.js +3 -1
  351. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  352. package/cjs/lib/theming/ThemeHelpers.d.ts +2 -2
  353. package/cjs/lib/theming/ThemeHelpers.js +1 -1
  354. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  355. package/cjs/lib/utils.d.ts +3 -1
  356. package/cjs/lib/utils.js +5 -2
  357. package/cjs/lib/utils.js.map +1 -1
  358. package/cjs/lib/withClassWrapper.js +1 -4
  359. package/cjs/lib/withClassWrapper.js.map +1 -1
  360. package/cjs/typings/event-types.d.ts +2 -2
  361. package/components/Autocomplete/Autocomplete/Autocomplete.js +26 -13
  362. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  363. package/components/Autocomplete/Autocomplete.d.ts +9 -17
  364. package/components/Button/Button/Button.js +11 -5
  365. package/components/Button/Button/Button.js.map +1 -1
  366. package/components/Button/Button.d.ts +4 -5
  367. package/components/Button/Button.mixins/Button.mixins.js +1 -1
  368. package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
  369. package/components/Button/Button.styles/Button.styles.js +18 -18
  370. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  371. package/components/Center/Center/Center.js +7 -5
  372. package/components/Center/Center/Center.js.map +1 -1
  373. package/components/Center/Center.d.ts +4 -3
  374. package/components/Checkbox/Checkbox/Checkbox.js +5 -2
  375. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  376. package/components/Checkbox/Checkbox.md +48 -0
  377. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
  378. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  379. package/components/Checkbox/Checkbox.styles.d.ts +1 -1
  380. package/components/ComboBox/ComboBox/ComboBox.js +3 -1
  381. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  382. package/components/ComboBox/ComboBox.d.ts +8 -13
  383. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +36 -21
  384. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  385. package/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  386. package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js +4 -2
  387. package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js.map +1 -1
  388. package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
  389. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +21 -15
  390. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  391. package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
  392. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +11 -1
  393. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  394. package/components/DateInput/DateFragmentsView.d.ts +1 -1
  395. package/components/DateInput/DateInput/DateInput.js +18 -5
  396. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  397. package/components/DateInput/DateInput.d.ts +9 -12
  398. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js +0 -1
  399. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js.map +1 -1
  400. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +2 -2
  401. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
  402. package/components/DatePicker/DatePicker/DatePicker.js +25 -21
  403. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  404. package/components/DatePicker/DatePicker.d.ts +7 -9
  405. package/components/DatePicker/Picker/Picker.js +5 -1
  406. package/components/DatePicker/Picker/Picker.js.map +1 -1
  407. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +8 -2
  408. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  409. package/components/DropdownMenu/DropdownMenu.d.ts +5 -5
  410. package/components/FileUploader/FileUploader/FileUploader.js +2 -2
  411. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  412. package/components/FileUploader/FileUploader.md +8 -1
  413. package/components/FxInput/FxInput/FxInput.js +15 -10
  414. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  415. package/components/FxInput/FxInput.d.ts +6 -6
  416. package/components/Gapped/Gapped/Gapped.js +17 -8
  417. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  418. package/components/Gapped/Gapped.d.ts +7 -8
  419. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +35 -16
  420. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  421. package/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  422. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  423. package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  424. package/components/Hint/Hint/Hint.js +30 -18
  425. package/components/Hint/Hint/Hint.js.map +1 -1
  426. package/components/Hint/Hint.d.ts +8 -12
  427. package/components/Hint/Hint.md +14 -0
  428. package/components/Input/Input/Input.js +13 -8
  429. package/components/Input/Input/Input.js.map +1 -1
  430. package/components/Input/Input.d.ts +4 -3
  431. package/components/Input/Input.md +5 -1
  432. package/components/Kebab/Kebab/Kebab.js +19 -8
  433. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  434. package/components/Kebab/Kebab.d.ts +8 -15
  435. package/components/Link/Link/Link.js +10 -7
  436. package/components/Link/Link/Link.js.map +1 -1
  437. package/components/Link/Link.d.ts +5 -7
  438. package/components/Loader/Loader/Loader.js +22 -17
  439. package/components/Loader/Loader/Loader.js.map +1 -1
  440. package/components/Loader/Loader.d.ts +9 -5
  441. package/components/Loader/__stories__/LoaderAndButton/LoaderAndButton.js.map +1 -1
  442. package/components/MenuItem/MenuItem/MenuItem.js +4 -1
  443. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  444. package/components/Modal/Modal/Modal.js +5 -3
  445. package/components/Modal/Modal/Modal.js.map +1 -1
  446. package/components/Modal/Modal.d.ts +4 -3
  447. package/components/Modal/Modal.styles/Modal.styles.js +2 -2
  448. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  449. package/components/Modal/Modal.styles.d.ts +2 -2
  450. package/components/Modal/ModalBody/ModalBody.js +2 -2
  451. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  452. package/components/Modal/ModalFooter/ModalFooter.js +2 -2
  453. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  454. package/components/Modal/ModalHeader/ModalHeader.js +2 -2
  455. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  456. package/components/Paging/Paging/Paging.js +25 -15
  457. package/components/Paging/Paging/Paging.js.map +1 -1
  458. package/components/Paging/Paging.d.ts +7 -10
  459. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
  460. package/components/Paging/PagingDefaultComponent.d.ts +3 -3
  461. package/components/PasswordInput/PasswordInput/PasswordInput.js +14 -13
  462. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  463. package/components/PasswordInput/PasswordInput.d.ts +4 -3
  464. package/components/Radio/Radio/Radio.js +11 -6
  465. package/components/Radio/Radio/Radio.js.map +1 -1
  466. package/components/Radio/Radio.d.ts +4 -3
  467. package/components/RadioGroup/RadioGroup/RadioGroup.js +10 -10
  468. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  469. package/components/RadioGroup/RadioGroup.d.ts +2 -4
  470. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -1
  471. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  472. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +11 -7
  473. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  474. package/components/ScrollContainer/ScrollContainer.d.ts +7 -8
  475. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js +4 -4
  476. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js.map +1 -1
  477. package/components/Select/Item/Item.js.map +1 -1
  478. package/components/Select/Item.d.ts +4 -2
  479. package/components/Select/Select/Select.js +4 -3
  480. package/components/Select/Select/Select.js.map +1 -1
  481. package/components/Select/Select.d.ts +3 -12
  482. package/components/Select/Select.styles/Select.styles.js +4 -4
  483. package/components/Select/Select.styles/Select.styles.js.map +1 -1
  484. package/components/SidePage/SidePage/SidePage.js +14 -9
  485. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  486. package/components/SidePage/SidePage.d.ts +5 -6
  487. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  488. package/components/SidePage/SidePageFooter.d.ts +6 -4
  489. package/components/Spinner/Spinner/Spinner.js +8 -6
  490. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  491. package/components/Spinner/Spinner.d.ts +4 -2
  492. package/components/Spinner/Spinner.styles/Spinner.styles.js +3 -3
  493. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  494. package/components/Spinner/Spinner.styles.d.ts +1 -1
  495. package/components/Sticky/Sticky/Sticky.js +7 -4
  496. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  497. package/components/Sticky/Sticky.d.ts +5 -4
  498. package/components/Tabs/Indicator/Indicator.js +1 -1
  499. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  500. package/components/Tabs/Indicator.d.ts +1 -1
  501. package/components/Tabs/Tab/Tab.js +15 -7
  502. package/components/Tabs/Tab/Tab.js.map +1 -1
  503. package/components/Tabs/Tab.d.ts +4 -4
  504. package/components/Tabs/Tabs/Tabs.js +10 -8
  505. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  506. package/components/Tabs/Tabs.d.ts +4 -4
  507. package/components/Textarea/Textarea/Textarea.js +23 -15
  508. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  509. package/components/Textarea/Textarea.d.ts +8 -10
  510. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  511. package/components/Textarea/TextareaCounter.d.ts +2 -2
  512. package/components/Toast/Toast/Toast.js +1 -1
  513. package/components/Toast/Toast/Toast.js.map +1 -1
  514. package/components/Toggle/Toggle/Toggle.js +12 -7
  515. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  516. package/components/Toggle/Toggle.d.ts +5 -6
  517. package/components/TokenInput/TokenInput/TokenInput.js +107 -77
  518. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  519. package/components/TokenInput/TokenInput.d.ts +19 -16
  520. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -1
  521. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  522. package/components/TokenInput/TokenInputMenu.d.ts +2 -1
  523. package/components/Tooltip/Tooltip/Tooltip.js +60 -47
  524. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  525. package/components/Tooltip/Tooltip.d.ts +13 -19
  526. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +15 -13
  527. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  528. package/components/TooltipMenu/TooltipMenu.d.ts +6 -5
  529. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js +2 -2
  530. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js.map +1 -1
  531. package/hooks/useEffectWithoutInitCall.d.ts +2 -2
  532. package/hooks/useMemoObject/useMemoObject.js.map +1 -1
  533. package/hooks/useMemoObject.d.ts +2 -1
  534. package/internal/BGRuler/BGRuler.js +11 -6
  535. package/internal/BGRuler/BGRuler.js.map +1 -1
  536. package/internal/BGRuler.d.ts +13 -15
  537. package/internal/Calendar/Calendar/Calendar.js +11 -5
  538. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  539. package/internal/Calendar/Calendar.d.ts +4 -13
  540. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js +1 -1
  541. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  542. package/internal/Calendar/Month/Month.js +20 -11
  543. package/internal/Calendar/Month/Month.js.map +1 -1
  544. package/internal/Calendar/MonthViewModel.d.ts +1 -1
  545. package/internal/Calendar/config.d.ts +1 -8
  546. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
  547. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  548. package/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
  549. package/internal/ComponentCombinator/ComponentCombinator.js +8 -5
  550. package/internal/ComponentCombinator/ComponentCombinator.js.map +1 -1
  551. package/internal/ComponentCombinator.d.ts +6 -8
  552. package/internal/ComponentTable/ComponentTable.js +16 -4
  553. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  554. package/internal/ComponentTable.d.ts +7 -8
  555. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +18 -19
  556. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  557. package/internal/CustomComboBox/ComboBoxMenu.d.ts +6 -6
  558. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +21 -10
  559. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  560. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
  561. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +4 -5
  562. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  563. package/internal/DataTids/DataTids/DataTids.js.map +1 -1
  564. package/internal/DataTids/DataTids.d.ts +5 -5
  565. package/internal/DateSelect/DateSelect/DateSelect.js +15 -12
  566. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  567. package/internal/DateSelect/DateSelect.d.ts +4 -6
  568. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +6 -10
  569. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  570. package/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  571. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  572. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  573. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  574. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  575. package/internal/InputLikeText/InputLikeText/InputLikeText.js +9 -4
  576. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  577. package/internal/InputLikeText/InputLikeText.d.ts +4 -3
  578. package/internal/InternalMenu/InternalMenu/InternalMenu.js +38 -17
  579. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  580. package/internal/InternalMenu/InternalMenu.d.ts +3 -9
  581. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  582. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  583. package/internal/MaskedInput/MaskedInput/MaskedInput.js +16 -7
  584. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  585. package/internal/MaskedInput/MaskedInput.d.ts +5 -2
  586. package/internal/Menu/Menu/Menu.js +16 -4
  587. package/internal/Menu/Menu/Menu.js.map +1 -1
  588. package/internal/Menu/Menu.d.ts +4 -7
  589. package/internal/MobilePopup/MobilePopup/MobilePopup.js +1 -1
  590. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  591. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +1 -1
  592. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  593. package/internal/PerformanceMetrics/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  594. package/internal/Popup/Popup/Popup.js +52 -35
  595. package/internal/Popup/Popup/Popup.js.map +1 -1
  596. package/internal/Popup/Popup.d.ts +11 -17
  597. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  598. package/internal/Popup/PopupHelper.d.ts +1 -1
  599. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  600. package/internal/Popup/PopupPin.d.ts +1 -1
  601. package/internal/PopupMenu/PopupMenu/PopupMenu.js +12 -4
  602. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  603. package/internal/PopupMenu/PopupMenu.d.ts +8 -11
  604. package/internal/RenderLayer/RenderLayer/RenderLayer.js +18 -11
  605. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  606. package/internal/RenderLayer/RenderLayer.d.ts +6 -4
  607. package/internal/ThemePlayground/AnotherInputsPlayground/AnotherInputsPlayground.js.map +1 -1
  608. package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  609. package/internal/ThemePlayground/CurrencyInputPlayground/CurrencyInputPlayground.js.map +1 -1
  610. package/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  611. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js +10 -6
  612. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
  613. package/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  614. package/internal/ThemePlayground/HintPlayground/HintPlayground.js.map +1 -1
  615. package/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  616. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js +2 -2
  617. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js.map +1 -1
  618. package/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  619. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  620. package/internal/ThemePlayground/Playground.d.ts +1 -1
  621. package/internal/ThemePlayground/SelectPlayground/SelectPlayground.js.map +1 -1
  622. package/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  623. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
  624. package/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  625. package/internal/ThemePlayground/SwitcherPlayground/SwitcherPlayground.js.map +1 -1
  626. package/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  627. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +13 -3
  628. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  629. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  630. package/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  631. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js +5 -17
  632. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js.map +1 -1
  633. package/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  634. package/internal/ThemePlayground/TokenInputPlayground/TokenInputPlayground.js.map +1 -1
  635. package/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  636. package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -2
  637. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  638. package/internal/ThemePlayground/VariableValue.d.ts +6 -8
  639. package/internal/ThemePlayground/helpers/helpers.js +0 -1
  640. package/internal/ThemePlayground/helpers/helpers.js.map +1 -1
  641. package/internal/ThemePlayground/helpers.d.ts +1 -1
  642. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  643. package/internal/ZIndex/ZIndex/ZIndex.js +21 -16
  644. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  645. package/internal/ZIndex/ZIndex.d.ts +7 -11
  646. package/internal/themes/DefaultTheme/DefaultTheme.js +6 -6
  647. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  648. package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
  649. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -1
  650. package/lib/InstanceWithAnchorElement.d.ts +1 -1
  651. package/lib/ModalStack/ModalStack.js +2 -2
  652. package/lib/ModalStack/ModalStack.js.map +1 -1
  653. package/lib/SSRSafe/SSRSafe.js +7 -0
  654. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  655. package/lib/SSRSafe.d.ts +2 -1
  656. package/lib/animation/index/index.js +1 -1
  657. package/lib/animation/index/index.js.map +1 -1
  658. package/lib/callChildRef/callChildRef/callChildRef.js +1 -1
  659. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -1
  660. package/lib/createPropsGetter/createPropsGetter.js +1 -0
  661. package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
  662. package/lib/createPropsGetter.d.ts +2 -1
  663. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +1 -2
  664. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  665. package/lib/date/InternalDateCalculator.d.ts +1 -1
  666. package/lib/date/InternalDateValidator/InternalDateValidator.js +8 -2
  667. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  668. package/lib/date/InternalDateValidator.d.ts +1 -1
  669. package/lib/extractKeyboardAction/extractKeyboardAction.js.map +1 -1
  670. package/lib/extractKeyboardAction.d.ts +1 -1
  671. package/lib/filterProps/filterProps.js +0 -1
  672. package/lib/filterProps/filterProps.js.map +1 -1
  673. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  674. package/lib/listenFocusOutside.d.ts +1 -1
  675. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -1
  676. package/lib/locale/useLocaleForControl.d.ts +1 -1
  677. package/lib/memo/memo.js +2 -4
  678. package/lib/memo/memo.js.map +1 -1
  679. package/lib/memo.d.ts +3 -1
  680. package/lib/net/fetch/fetch.js +2 -2
  681. package/lib/net/fetch/fetch.js.map +1 -1
  682. package/lib/reactGetTextContent/reactGetTextContent.js +0 -1
  683. package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
  684. package/lib/rootNode/getRootNode/getRootNode.js +8 -8
  685. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  686. package/lib/rootNode/getRootNode.d.ts +3 -3
  687. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  688. package/lib/rootNode/rootNodeDecorator.d.ts +9 -9
  689. package/lib/styles/ColorFactory/ColorFactory.js +3 -1
  690. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  691. package/lib/styles/ColorFunctions/ColorFunctions.js.map +1 -1
  692. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +8 -14
  693. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  694. package/lib/theming/AnimationKeyframes.d.ts +3 -5
  695. package/lib/theming/Emotion/Emotion.js.map +1 -1
  696. package/lib/theming/ThemeFactory/ThemeFactory.js +4 -1
  697. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  698. package/lib/theming/ThemeFactory.d.ts +1 -1
  699. package/lib/theming/ThemeHelpers/ThemeHelpers.js +1 -1
  700. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  701. package/lib/theming/ThemeHelpers.d.ts +2 -2
  702. package/lib/utils/utils.js +2 -2
  703. package/lib/utils/utils.js.map +1 -1
  704. package/lib/utils.d.ts +3 -1
  705. package/lib/withClassWrapper/withClassWrapper.js +1 -4
  706. package/lib/withClassWrapper/withClassWrapper.js.map +1 -1
  707. package/package.json +3 -3
  708. package/typings/event-types.d.ts +2 -2
@@ -1 +1 @@
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"]}
1
+ {"version":3,"sources":["Radio.tsx"],"names":["React","ThemeContext","CommonWrapper","cx","keyListener","rootNode","fixFirefoxModifiedClickOnLabel","isEdge","isIE11","RadioGroupContext","createPropsGetter","styles","globalClasses","RadioDataTids","root","Radio","state","focusedByKeyboard","getProps","defaultProps","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__","contextType"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport 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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\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\ntype DefaultProps = Required<Pick<RadioProps<any>, 'focused'>>;\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: DefaultProps = {\n focused: false,\n };\n\n private getProps = createPropsGetter(Radio.defaultProps);\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.getProps().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"]}
@@ -43,6 +43,7 @@ export interface RadioState {
43
43
  export declare const RadioDataTids: {
44
44
  readonly root: "Radio__root";
45
45
  };
46
+ declare type DefaultProps = Required<Pick<RadioProps<any>, 'focused'>>;
46
47
  /**
47
48
  * Радио-кнопки используются, когда может быть выбран только один вариант из нескольких.
48
49
  */
@@ -51,9 +52,8 @@ export declare class Radio<T> extends React.Component<RadioProps<T>, RadioState>
51
52
  state: {
52
53
  focusedByKeyboard: boolean;
53
54
  };
54
- static defaultProps: {
55
- focused: boolean;
56
- };
55
+ static defaultProps: DefaultProps;
56
+ private getProps;
57
57
  static contextType: React.Context<RadioGroupContextType<any>>;
58
58
  context: RadioGroupContextType<T>;
59
59
  private inputEl;
@@ -78,3 +78,4 @@ export declare class Radio<T> extends React.Component<RadioProps<T>, RadioState>
78
78
  private handleFocus;
79
79
  private handleBlur;
80
80
  }
81
+ export {};
@@ -60,17 +60,17 @@ import { RadioGroupContext } from "../RadioGroupContext";
60
60
  export var RadioGroupDataTids = {
61
61
  root: 'RadioGroup__root'
62
62
  };
63
+ export
63
64
  /**
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) {
65
+ *
66
+ * `children` может содержать любую разметку с компонентами Radio,
67
+ * если не передан параметр `items`.
68
+ * Каждому компоненту Radio нужно указать параметр `value`, такого же типа
69
+ * как и параметр `value` самой радиогруппы.
70
+ *
71
+ * Значения активного элемента сравниваются по строгому равенству `===`
72
+ */
73
+ var RadioGroup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
74
74
  _inheritsLoose(RadioGroup, _React$Component);
75
75
 
76
76
  function RadioGroup(props) {
@@ -1 +1 @@
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","getKeyByItem","className","item","theme","itemFirst","itemInline","inline","renderItem","toKey","undefined","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":"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","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 * @param item\n */\n toKey?: (item: T) => string | number;\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: this.getKeyByItem(itemValue),\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 getKeyByItem = (itemValue: T) => {\n if (this.props.toKey) {\n return this.props.toKey(itemValue);\n }\n return typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : undefined;\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"]}
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","getKeyByItem","className","item","theme","itemFirst","itemInline","inline","renderItem","toKey","undefined","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":"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","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 * @param item\n */\n toKey?: (item: T) => string | number;\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\ntype DefaultProps = Required<Pick<RadioGroupProps<unknown>, 'renderItem'>>;\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: 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: this.getKeyByItem(itemValue),\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(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private getKeyByItem = (itemValue: T) => {\n if (this.props.toKey) {\n return this.props.toKey(itemValue);\n }\n return typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : undefined;\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"]}
@@ -72,6 +72,7 @@ export interface RadioGroupState<T> {
72
72
  export declare const RadioGroupDataTids: {
73
73
  readonly root: "RadioGroup__root";
74
74
  };
75
+ declare type DefaultProps = Required<Pick<RadioGroupProps<unknown>, 'renderItem'>>;
75
76
  /**
76
77
  *
77
78
  * `children` может содержать любую разметку с компонентами Radio,
@@ -96,9 +97,7 @@ export declare class RadioGroup<T> extends React.Component<RadioGroupProps<T>, R
96
97
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
97
98
  onMouseOver: PropTypes.Requireable<(...args: any[]) => any>;
98
99
  };
99
- static defaultProps: {
100
- renderItem: typeof renderItem;
101
- };
100
+ static defaultProps: DefaultProps;
102
101
  static Prevent: typeof Prevent;
103
102
  private theme;
104
103
  private node;
@@ -122,5 +121,4 @@ export declare class RadioGroup<T> extends React.Component<RadioGroupProps<T>, R
122
121
  private getKeyByItem;
123
122
  private ref;
124
123
  }
125
- declare function renderItem<T>(_value: T, data: React.ReactNode): React.ReactNode;
126
124
  export {};
@@ -68,6 +68,8 @@ function removeCallbackFromMQListener(mediaQuery, callback) {
68
68
  }
69
69
 
70
70
  export function checkMatches(mediaQuery) {
71
+ var _eventListener$mql$ma;
72
+
71
73
  if (!canUseDOM) {
72
74
  return false;
73
75
  }
@@ -77,7 +79,7 @@ export function checkMatches(mediaQuery) {
77
79
  }
78
80
 
79
81
  var eventListener = eventListenersMap.get(mediaQuery);
80
- return eventListener.mql.matches;
82
+ return (_eventListener$mql$ma = eventListener == null ? void 0 : eventListener.mql.matches) != null ? _eventListener$mql$ma : false;
81
83
  }
82
84
 
83
85
  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: 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
+ {"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 ?? false;\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"]}
@@ -11,6 +11,7 @@ import { cx } from "../../../lib/theming/Emotion";
11
11
  import { isIE11 } from "../../../lib/client";
12
12
  import { rootNode } from "../../../lib/rootNode";
13
13
  import { getDOMRect } from "../../../lib/dom/getDOMRect";
14
+ import { createPropsGetter } from "../../../lib/createPropsGetter";
14
15
  import { styles, globalClasses } from "../ScrollContainer.styles";
15
16
  import { scrollSizeParametersNames } from "../ScrollContainer.constants";
16
17
  import { getScrollYOffset, convertScrollbarXScrollState, convertScrollbarYScrollState } from "../ScrollContainer.helpers";
@@ -30,6 +31,7 @@ export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/f
30
31
  }
31
32
 
32
33
  _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
34
+ _this.getProps = createPropsGetter(ScrollContainer.defaultProps);
33
35
 
34
36
  _this.render = function () {
35
37
  var props = _this.props;
@@ -39,7 +41,7 @@ export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/f
39
41
  }
40
42
 
41
43
  var innerStyle = {
42
- scrollBehavior: props.scrollBehaviour,
44
+ scrollBehavior: _this.getProps().scrollBehaviour,
43
45
  maxHeight: props.maxHeight,
44
46
  maxWidth: props.maxWidth
45
47
  };
@@ -69,7 +71,7 @@ export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/f
69
71
  return /*#__PURE__*/React.createElement(ScrollBar, {
70
72
  axis: axis,
71
73
  ref: refScrollBar,
72
- invert: _this.props.invert,
74
+ invert: _this.getProps().invert,
73
75
  onScrollStateChange: _this.handleScrollStateChange
74
76
  });
75
77
  };
@@ -99,7 +101,7 @@ export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/f
99
101
  };
100
102
 
101
103
  _this.refInner = function (element) {
102
- if (!_this.inner && element && _this.props.preventWindowScroll) {
104
+ if (!_this.inner && element && _this.getProps().preventWindowScroll) {
103
105
  element.addEventListener('wheel', _this.handleInnerScrollWheel, {
104
106
  passive: false
105
107
  });
@@ -119,7 +121,7 @@ export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/f
119
121
  (_this$scrollY = _this.scrollY) == null ? void 0 : _this$scrollY.reflow();
120
122
  _this.props.onScroll == null ? void 0 : _this.props.onScroll(event);
121
123
 
122
- if (_this.props.preventWindowScroll) {
124
+ if (_this.getProps().preventWindowScroll) {
123
125
  event.preventDefault();
124
126
  return;
125
127
  }
@@ -181,12 +183,14 @@ export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/f
181
183
  };
182
184
 
183
185
  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
186
+ var preventWindowScroll = this.getProps().preventWindowScroll;
187
+
184
188
  if (this.inner) {
185
- if (prevProps.preventWindowScroll && !this.props.preventWindowScroll) {
189
+ if (prevProps.preventWindowScroll && !preventWindowScroll) {
186
190
  this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);
187
191
  }
188
192
 
189
- if (!prevProps.preventWindowScroll && this.props.preventWindowScroll) {
193
+ if (!prevProps.preventWindowScroll && preventWindowScroll) {
190
194
  this.inner.addEventListener('wheel', this.handleInnerScrollWheel, {
191
195
  passive: false
192
196
  });
@@ -195,7 +199,7 @@ export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/f
195
199
  };
196
200
  /**
197
201
  * @public
198
- * @param {HTMLElement} element
202
+ * @param {Element} element
199
203
  */
200
204
 
201
205
 
@@ -1 +1 @@
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"]}
1
+ {"version":3,"sources":["ScrollContainer.tsx"],"names":["React","PropTypes","LayoutEvents","CommonWrapper","cx","isIE11","rootNode","getDOMRect","createPropsGetter","styles","globalClasses","scrollSizeParametersNames","getScrollYOffset","convertScrollbarXScrollState","convertScrollbarYScrollState","ScrollBar","ScrollContainerDataTids","root","inner","ScrollContainer","getProps","defaultProps","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"],"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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\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\ntype DefaultProps = Required<Pick<ScrollContainerProps, 'invert' | 'scrollBehaviour' | 'preventWindowScroll'>>;\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: DefaultProps = {\n invert: false,\n scrollBehaviour: 'auto',\n preventWindowScroll: false,\n };\n\n private getProps = createPropsGetter(ScrollContainer.defaultProps);\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 const preventWindowScroll = this.getProps().preventWindowScroll;\n if (this.inner) {\n if (prevProps.preventWindowScroll && !preventWindowScroll) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n if (!prevProps.preventWindowScroll && 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: this.getProps().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 {Element} 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.getProps().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.getProps().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.getProps().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"]}
@@ -11,13 +11,13 @@ export interface ScrollContainerProps extends CommonProps {
11
11
  * Инвертировать цвет скроллбара
12
12
  * @default false
13
13
  */
14
- invert: boolean;
14
+ invert?: boolean;
15
15
  maxHeight?: React.CSSProperties['maxHeight'];
16
16
  maxWidth?: React.CSSProperties['maxWidth'];
17
17
  /**
18
18
  * @default false
19
19
  */
20
- preventWindowScroll: boolean;
20
+ preventWindowScroll?: boolean;
21
21
  /**
22
22
  * Поведение скролла (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior)
23
23
  * @default 'auto'
@@ -36,6 +36,7 @@ export declare const ScrollContainerDataTids: {
36
36
  readonly root: "ScrollContainer__root";
37
37
  readonly inner: "ScrollContainer__inner";
38
38
  };
39
+ declare type DefaultProps = Required<Pick<ScrollContainerProps, 'invert' | 'scrollBehaviour' | 'preventWindowScroll'>>;
39
40
  export declare class ScrollContainer extends React.Component<ScrollContainerProps> {
40
41
  static __KONTUR_REACT_UI__: string;
41
42
  static propTypes: {
@@ -46,11 +47,8 @@ export declare class ScrollContainer extends React.Component<ScrollContainerProp
46
47
  preventWindowScroll: PropTypes.Requireable<boolean>;
47
48
  onScrollStateChange: PropTypes.Requireable<(...args: any[]) => any>;
48
49
  };
49
- static defaultProps: {
50
- invert: boolean;
51
- scrollBehaviour: string;
52
- preventWindowScroll: boolean;
53
- };
50
+ static defaultProps: DefaultProps;
51
+ private getProps;
54
52
  private scrollX;
55
53
  private scrollY;
56
54
  private inner;
@@ -60,7 +58,7 @@ export declare class ScrollContainer extends React.Component<ScrollContainerProp
60
58
  render: () => React.ReactNode;
61
59
  /**
62
60
  * @public
63
- * @param {HTMLElement} element
61
+ * @param {Element} element
64
62
  */
65
63
  scrollTo(element: Nullable<HTMLElement>): void;
66
64
  /**
@@ -90,3 +88,4 @@ export declare class ScrollContainer extends React.Component<ScrollContainerProp
90
88
  private handleMouseMove;
91
89
  private handleMouseLeave;
92
90
  }
91
+ export {};
@@ -23,13 +23,13 @@ export var getScrollSizeParams = function getScrollSizeParams(inner, axis) {
23
23
  };
24
24
  };
25
25
  export var getScrollYOffset = function getScrollYOffset(element, container) {
26
- var elementOffset = element.offsetTop;
26
+ var elementTopOffset = element.offsetTop;
27
27
 
28
- if (container.scrollTop > elementOffset) {
29
- return elementOffset;
28
+ if (container.scrollTop > elementTopOffset) {
29
+ return elementTopOffset;
30
30
  }
31
31
 
32
- var offset = elementOffset + element.scrollHeight - container.offsetHeight;
32
+ var offset = elementTopOffset + element.scrollHeight - container.offsetHeight;
33
33
 
34
34
  if (container.scrollTop < offset) {
35
35
  return offset;
@@ -1 +1 @@
1
- {"version":3,"sources":["ScrollContainer.helpers.ts"],"names":["MIN_SCROLL_SIZE","scrollSizeParametersNames","getScrollSizeParams","inner","axis","offset","size","pos","contentSize","scrollOffset","containerSize","scrollActive","scrollSize","scrollPos","Math","max","getScrollYOffset","element","container","elementOffset","offsetTop","scrollTop","scrollHeight","offsetHeight","convertScrollbarXScrollState","state","scrollBarState","begin","end","middle","convertScrollbarYScrollState"],"mappings":"AAAA,SAASA,eAAT,EAA0BC,yBAA1B,QAA2D,6BAA3D;;;;AAIA,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,KAAD,EAAqBC,IAArB,EAAyC;AAC1E,8BAA8BH,yBAAyB,CAACG,IAAD,CAAvD,CAAQC,MAAR,yBAAQA,MAAR,CAAgBC,IAAhB,yBAAgBA,IAAhB,CAAsBC,GAAtB,yBAAsBA,GAAtB;;AAEA,MAAMC,WAAW,GAAGL,KAAK,CAACG,IAAD,CAAzB;AACA,MAAMG,YAAY,GAAGN,KAAK,CAACI,GAAD,CAA1B;AACA,MAAMG,aAAa,GAAGP,KAAK,CAACE,MAAD,CAA3B;;AAEA,MAAMM,YAAY,GAAGD,aAAa,GAAGF,WAArC;;AAEA,MAAII,UAAU,GAAG,CAAjB;AACA,MAAIC,SAAS,GAAG,CAAhB;;AAEA,MAAIF,YAAJ,EAAkB;AAChBC,IAAAA,UAAU,GAAGE,IAAI,CAACC,GAAL,CAAUL,aAAa,GAAGF,WAAjB,GAAgCE,aAAzC,EAAwDV,eAAxD,CAAb;AACAa,IAAAA,SAAS,GAAIJ,YAAY,IAAID,WAAW,GAAGE,aAAlB,CAAb,IAAkDA,aAAa,GAAGE,UAAlE,CAAZ;AACD;;AAED,SAAO;AACLD,IAAAA,YAAY,EAAZA,YADK;AAELC,IAAAA,UAAU,EAAVA,UAFK;AAGLC,IAAAA,SAAS,EAATA,SAHK,EAAP;;AAKD,CAtBM;;AAwBP,OAAO,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,OAAD,EAAuBC,SAAvB,EAAkD;AAChF,MAAMC,aAAa,GAAGF,OAAO,CAACG,SAA9B;;AAEA,MAAIF,SAAS,CAACG,SAAV,GAAsBF,aAA1B,EAAyC;AACvC,WAAOA,aAAP;AACD;;AAED,MAAMd,MAAM,GAAGc,aAAa,GAAGF,OAAO,CAACK,YAAxB,GAAuCJ,SAAS,CAACK,YAAhE;AACA,MAAIL,SAAS,CAACG,SAAV,GAAsBhB,MAA1B,EAAkC;AAChC,WAAOA,MAAP;AACD;;AAED,SAAOa,SAAS,CAACG,SAAjB;AACD,CAbM;;AAeP,OAAO,IAAMG,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACC,KAAD,EAA8D;AACxG,MAAMC,cAAyE,GAAG;AAChFC,IAAAA,KAAK,EAAE,MADyE;AAEhFC,IAAAA,GAAG,EAAE,OAF2E;AAGhFC,IAAAA,MAAM,EAAE,QAHwE,EAAlF;;;AAMA,SAAOH,cAAc,CAACD,KAAD,CAArB;AACD,CARM;;AAUP,OAAO,IAAMK,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACL,KAAD,EAA8D;AACxG,MAAMC,cAAyE,GAAG;AAChFC,IAAAA,KAAK,EAAE,KADyE;AAEhFC,IAAAA,GAAG,EAAE,QAF2E;AAGhFC,IAAAA,MAAM,EAAE,QAHwE,EAAlF;;;AAMA,SAAOH,cAAc,CAACD,KAAD,CAArB;AACD,CARM","sourcesContent":["import { MIN_SCROLL_SIZE, scrollSizeParametersNames } from './ScrollContainer.constants';\nimport { ScrollBarScrollState } from './ScrollBar';\nimport { ScrollContainerScrollStateX, ScrollContainerScrollStateY } from './ScrollContainer';\n\nexport const getScrollSizeParams = (inner: HTMLElement, axis: 'x' | 'y') => {\n const { offset, size, pos } = scrollSizeParametersNames[axis];\n\n const contentSize = inner[size];\n const scrollOffset = inner[pos];\n const containerSize = inner[offset];\n\n const scrollActive = containerSize < contentSize;\n\n let scrollSize = 0;\n let scrollPos = 0;\n\n if (scrollActive) {\n scrollSize = Math.max((containerSize / contentSize) * containerSize, MIN_SCROLL_SIZE);\n scrollPos = (scrollOffset / (contentSize - containerSize)) * (containerSize - scrollSize);\n }\n\n return {\n scrollActive,\n scrollSize,\n scrollPos,\n };\n};\n\nexport const getScrollYOffset = (element: HTMLElement, container: HTMLElement) => {\n const elementOffset = element.offsetTop;\n\n if (container.scrollTop > elementOffset) {\n return elementOffset;\n }\n\n const offset = elementOffset + element.scrollHeight - container.offsetHeight;\n if (container.scrollTop < offset) {\n return offset;\n }\n\n return container.scrollTop;\n};\n\nexport const convertScrollbarXScrollState = (state: ScrollBarScrollState): ScrollContainerScrollStateX => {\n const scrollBarState: Record<ScrollBarScrollState, ScrollContainerScrollStateX> = {\n begin: 'left',\n end: 'right',\n middle: 'scroll',\n };\n\n return scrollBarState[state];\n};\n\nexport const convertScrollbarYScrollState = (state: ScrollBarScrollState): ScrollContainerScrollStateY => {\n const scrollBarState: Record<ScrollBarScrollState, ScrollContainerScrollStateY> = {\n begin: 'top',\n end: 'bottom',\n middle: 'scroll',\n };\n\n return scrollBarState[state];\n};\n"]}
1
+ {"version":3,"sources":["ScrollContainer.helpers.ts"],"names":["MIN_SCROLL_SIZE","scrollSizeParametersNames","getScrollSizeParams","inner","axis","offset","size","pos","contentSize","scrollOffset","containerSize","scrollActive","scrollSize","scrollPos","Math","max","getScrollYOffset","element","container","elementTopOffset","offsetTop","scrollTop","scrollHeight","offsetHeight","convertScrollbarXScrollState","state","scrollBarState","begin","end","middle","convertScrollbarYScrollState"],"mappings":"AAAA,SAASA,eAAT,EAA0BC,yBAA1B,QAA2D,6BAA3D;;;;AAIA,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,KAAD,EAAqBC,IAArB,EAAyC;AAC1E,8BAA8BH,yBAAyB,CAACG,IAAD,CAAvD,CAAQC,MAAR,yBAAQA,MAAR,CAAgBC,IAAhB,yBAAgBA,IAAhB,CAAsBC,GAAtB,yBAAsBA,GAAtB;;AAEA,MAAMC,WAAW,GAAGL,KAAK,CAACG,IAAD,CAAzB;AACA,MAAMG,YAAY,GAAGN,KAAK,CAACI,GAAD,CAA1B;AACA,MAAMG,aAAa,GAAGP,KAAK,CAACE,MAAD,CAA3B;;AAEA,MAAMM,YAAY,GAAGD,aAAa,GAAGF,WAArC;;AAEA,MAAII,UAAU,GAAG,CAAjB;AACA,MAAIC,SAAS,GAAG,CAAhB;;AAEA,MAAIF,YAAJ,EAAkB;AAChBC,IAAAA,UAAU,GAAGE,IAAI,CAACC,GAAL,CAAUL,aAAa,GAAGF,WAAjB,GAAgCE,aAAzC,EAAwDV,eAAxD,CAAb;AACAa,IAAAA,SAAS,GAAIJ,YAAY,IAAID,WAAW,GAAGE,aAAlB,CAAb,IAAkDA,aAAa,GAAGE,UAAlE,CAAZ;AACD;;AAED,SAAO;AACLD,IAAAA,YAAY,EAAZA,YADK;AAELC,IAAAA,UAAU,EAAVA,UAFK;AAGLC,IAAAA,SAAS,EAATA,SAHK,EAAP;;AAKD,CAtBM;;AAwBP,OAAO,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,OAAD,EAAuBC,SAAvB,EAAkD;AAChF,MAAMC,gBAAgB,GAAGF,OAAO,CAACG,SAAjC;;AAEA,MAAIF,SAAS,CAACG,SAAV,GAAsBF,gBAA1B,EAA4C;AAC1C,WAAOA,gBAAP;AACD;;AAED,MAAMd,MAAM,GAAGc,gBAAgB,GAAGF,OAAO,CAACK,YAA3B,GAA0CJ,SAAS,CAACK,YAAnE;AACA,MAAIL,SAAS,CAACG,SAAV,GAAsBhB,MAA1B,EAAkC;AAChC,WAAOA,MAAP;AACD;;AAED,SAAOa,SAAS,CAACG,SAAjB;AACD,CAbM;;AAeP,OAAO,IAAMG,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACC,KAAD,EAA8D;AACxG,MAAMC,cAAyE,GAAG;AAChFC,IAAAA,KAAK,EAAE,MADyE;AAEhFC,IAAAA,GAAG,EAAE,OAF2E;AAGhFC,IAAAA,MAAM,EAAE,QAHwE,EAAlF;;;AAMA,SAAOH,cAAc,CAACD,KAAD,CAArB;AACD,CARM;;AAUP,OAAO,IAAMK,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACL,KAAD,EAA8D;AACxG,MAAMC,cAAyE,GAAG;AAChFC,IAAAA,KAAK,EAAE,KADyE;AAEhFC,IAAAA,GAAG,EAAE,QAF2E;AAGhFC,IAAAA,MAAM,EAAE,QAHwE,EAAlF;;;AAMA,SAAOH,cAAc,CAACD,KAAD,CAArB;AACD,CARM","sourcesContent":["import { MIN_SCROLL_SIZE, scrollSizeParametersNames } from './ScrollContainer.constants';\nimport { ScrollBarScrollState } from './ScrollBar';\nimport { ScrollContainerScrollStateX, ScrollContainerScrollStateY } from './ScrollContainer';\n\nexport const getScrollSizeParams = (inner: HTMLElement, axis: 'x' | 'y') => {\n const { offset, size, pos } = scrollSizeParametersNames[axis];\n\n const contentSize = inner[size];\n const scrollOffset = inner[pos];\n const containerSize = inner[offset];\n\n const scrollActive = containerSize < contentSize;\n\n let scrollSize = 0;\n let scrollPos = 0;\n\n if (scrollActive) {\n scrollSize = Math.max((containerSize / contentSize) * containerSize, MIN_SCROLL_SIZE);\n scrollPos = (scrollOffset / (contentSize - containerSize)) * (containerSize - scrollSize);\n }\n\n return {\n scrollActive,\n scrollSize,\n scrollPos,\n };\n};\n\nexport const getScrollYOffset = (element: HTMLElement, container: HTMLElement) => {\n const elementTopOffset = element.offsetTop;\n\n if (container.scrollTop > elementTopOffset) {\n return elementTopOffset;\n }\n\n const offset = elementTopOffset + element.scrollHeight - container.offsetHeight;\n if (container.scrollTop < offset) {\n return offset;\n }\n\n return container.scrollTop;\n};\n\nexport const convertScrollbarXScrollState = (state: ScrollBarScrollState): ScrollContainerScrollStateX => {\n const scrollBarState: Record<ScrollBarScrollState, ScrollContainerScrollStateX> = {\n begin: 'left',\n end: 'right',\n middle: 'scroll',\n };\n\n return scrollBarState[state];\n};\n\nexport const convertScrollbarYScrollState = (state: ScrollBarScrollState): ScrollContainerScrollStateY => {\n const scrollBarState: Record<ScrollBarScrollState, ScrollContainerScrollStateY> = {\n begin: 'top',\n end: 'bottom',\n middle: 'scroll',\n };\n\n return scrollBarState[state];\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["Item.tsx"],"names":["React","MenuItem","Item","render","props","children","Component","__KONTUR_REACT_UI__"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,QAAT,QAAyB,aAAzB;;AAEA,WAAaC,IAAb;;;AAGSC,EAAAA,MAHT,GAGE,kBAAgB;AACd,wBAAO,oBAAC,QAAD,QAAW,KAAKC,KAAL,CAAWC,QAAtB,CAAP;AACD,GALH,eAA0BL,KAAK,CAACM,SAAhC,EAAaJ,I,CACGK,mB,GAAsB,Y","sourcesContent":["import React from 'react';\n\nimport { MenuItem } from '../MenuItem';\n\nexport class Item extends React.Component<{ children?: React.ReactNode }> {\n public static __KONTUR_REACT_UI__ = 'SelectItem';\n\n public render() {\n return <MenuItem>{this.props.children}</MenuItem>;\n }\n}\n"]}
1
+ {"version":3,"sources":["Item.tsx"],"names":["React","MenuItem","Item","render","props","children","Component","__KONTUR_REACT_UI__"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,QAAT,QAAyB,aAAzB;;;;;AAKA,WAAaC,IAAb;;;AAGSC,EAAAA,MAHT,GAGE,kBAAgB;AACd,wBAAO,oBAAC,QAAD,QAAW,KAAKC,KAAL,CAAWC,QAAtB,CAAP;AACD,GALH,eAA0BL,KAAK,CAACM,SAAhC,EAAaJ,I,CACGK,mB,GAAsB,Y","sourcesContent":["import React from 'react';\n\nimport { MenuItem } from '../MenuItem';\n\ninterface ItemProps {\n children?: React.ReactNode;\n}\nexport class Item extends React.Component<ItemProps> {\n public static __KONTUR_REACT_UI__ = 'SelectItem';\n\n public render() {\n return <MenuItem>{this.props.children}</MenuItem>;\n }\n}\n"]}
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
- export declare class Item extends React.Component<{
2
+ interface ItemProps {
3
3
  children?: React.ReactNode;
4
- }> {
4
+ }
5
+ export declare class Item extends React.Component<ItemProps> {
5
6
  static __KONTUR_REACT_UI__: string;
6
7
  render(): JSX.Element;
7
8
  }
9
+ export {};
@@ -388,7 +388,7 @@ export var Select = (_dec = locale('Select', SelectLocaleHelper), responsiveLayo
388
388
  };
389
389
 
390
390
  _proto.getLeftIconClass = function getLeftIconClass(size) {
391
- if (this.props.use === 'link') {
391
+ if (this.getProps().use === 'link') {
392
392
  return styles.leftIconLink(this.theme);
393
393
  }
394
394
 
@@ -417,13 +417,14 @@ export var Select = (_dec = locale('Select', SelectLocaleHelper), responsiveLayo
417
417
  active: params.opened
418
418
  });
419
419
 
420
+ var use = this.getProps().use;
420
421
  var labelProps = {
421
- className: cx((_cx3 = {}, _cx3[styles.label()] = this.props.use !== 'link', _cx3[styles.placeholder(this.theme)] = params.isPlaceholder, _cx3[styles.customUsePlaceholder()] = params.isPlaceholder && this.props.use !== 'default', _cx3[styles.placeholderDisabled(this.theme)] = params.isPlaceholder && this.props.disabled, _cx3)),
422
+ className: cx((_cx3 = {}, _cx3[styles.label()] = use !== 'link', _cx3[styles.placeholder(this.theme)] = params.isPlaceholder, _cx3[styles.customUsePlaceholder()] = params.isPlaceholder && use !== 'default', _cx3[styles.placeholderDisabled(this.theme)] = params.isPlaceholder && this.props.disabled, _cx3)),
422
423
  style: {
423
424
  paddingRight: this.getSelectIconGap()
424
425
  }
425
426
  };
426
- var useIsCustom = this.props.use !== 'default';
427
+ var useIsCustom = use !== 'default';
427
428
  return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
428
429
  value: getSelectTheme(this.theme, this.props)
429
430
  }, /*#__PURE__*/React.createElement(Button, buttonProps, /*#__PURE__*/React.createElement("div", {