@skbkontur/react-ui 4.3.1 → 4.5.1

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 (481) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/cjs/components/Autocomplete/Autocomplete.js +3 -1
  3. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/Checkbox/Checkbox.js +4 -2
  5. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  6. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -1
  7. package/cjs/components/Checkbox/Checkbox.styles.js +1 -1
  8. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  9. package/cjs/components/CurrencyInput/CurrencyInput.js +6 -4
  10. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  11. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +1 -1
  12. package/cjs/components/DateInput/DateFragmentsView.d.ts +1 -1
  13. package/cjs/components/DateInput/DateFragmentsView.js +10 -1
  14. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  15. package/cjs/components/DateInput/DateInput.d.ts +1 -1
  16. package/cjs/components/DateInput/DateInput.js +1 -1
  17. package/cjs/components/DateInput/DateInput.js.map +1 -1
  18. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js +1 -2
  19. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
  20. package/cjs/components/DateInput/helpers/SelectionHelpers.js +2 -2
  21. package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
  22. package/cjs/components/DatePicker/DatePicker.js +11 -3
  23. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  24. package/cjs/components/DatePicker/Picker.js +5 -1
  25. package/cjs/components/DatePicker/Picker.js.map +1 -1
  26. package/cjs/components/FileUploader/FileUploader.d.ts +2 -1
  27. package/cjs/components/FileUploader/FileUploader.js +16 -3
  28. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  29. package/cjs/components/FxInput/FxInput.js +3 -1
  30. package/cjs/components/FxInput/FxInput.js.map +1 -1
  31. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  32. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  33. package/cjs/components/Input/Input.js +5 -2
  34. package/cjs/components/Input/Input.js.map +1 -1
  35. package/cjs/components/Input/Input.md +5 -1
  36. package/cjs/components/Input/Input.styles.d.ts +1 -0
  37. package/cjs/components/Input/Input.styles.js +17 -10
  38. package/cjs/components/Input/Input.styles.js.map +1 -1
  39. package/cjs/components/Kebab/Kebab.d.ts +1 -4
  40. package/cjs/components/Kebab/Kebab.js.map +1 -1
  41. package/cjs/components/Link/Link.d.ts +1 -3
  42. package/cjs/components/Link/Link.js +1 -1
  43. package/cjs/components/Link/Link.js.map +1 -1
  44. package/cjs/components/Loader/Loader.d.ts +2 -1
  45. package/cjs/components/Loader/Loader.js +1 -0
  46. package/cjs/components/Loader/Loader.js.map +1 -1
  47. package/cjs/components/Loader/__stories__/LoaderAndButton.js +6 -0
  48. package/cjs/components/Loader/__stories__/LoaderAndButton.js.map +1 -1
  49. package/cjs/components/MenuItem/MenuItem.js +3 -1
  50. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  51. package/cjs/components/Modal/Modal.js +2 -2
  52. package/cjs/components/Modal/Modal.js.map +1 -1
  53. package/cjs/components/Modal/Modal.styles.d.ts +2 -2
  54. package/cjs/components/Modal/Modal.styles.js +2 -2
  55. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  56. package/cjs/components/Modal/ModalBody.js +2 -2
  57. package/cjs/components/Modal/ModalBody.js.map +1 -1
  58. package/cjs/components/Paging/Paging.d.ts +1 -1
  59. package/cjs/components/Paging/Paging.js +1 -1
  60. package/cjs/components/Paging/Paging.js.map +1 -1
  61. package/cjs/components/Paging/PagingDefaultComponent.d.ts +2 -2
  62. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
  63. package/cjs/components/PasswordInput/PasswordInput.js +7 -5
  64. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  65. package/cjs/components/Radio/Radio.js +3 -1
  66. package/cjs/components/Radio/Radio.js.map +1 -1
  67. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  68. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +5 -9
  69. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  70. package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  71. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +2 -2
  72. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  73. package/cjs/components/ResponsiveLayout/decorator.d.ts +1 -1
  74. package/cjs/components/ResponsiveLayout/types.d.ts +9 -1
  75. package/cjs/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  76. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +31 -15
  77. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  78. package/cjs/components/Select/Item.d.ts +4 -2
  79. package/cjs/components/Select/Item.js +3 -0
  80. package/cjs/components/Select/Item.js.map +1 -1
  81. package/cjs/components/Select/Select.js +2 -0
  82. package/cjs/components/Select/Select.js.map +1 -1
  83. package/cjs/components/SidePage/SidePageFooter.d.ts +6 -4
  84. package/cjs/components/SidePage/SidePageFooter.js +4 -0
  85. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  86. package/cjs/components/Spinner/Spinner.js +1 -1
  87. package/cjs/components/Spinner/Spinner.js.map +1 -1
  88. package/cjs/components/Spinner/Spinner.styles.d.ts +1 -1
  89. package/cjs/components/Spinner/Spinner.styles.js +7 -7
  90. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  91. package/cjs/components/Tabs/Indicator.d.ts +1 -1
  92. package/cjs/components/Tabs/Indicator.js +1 -1
  93. package/cjs/components/Tabs/Indicator.js.map +1 -1
  94. package/cjs/components/Tabs/Tabs.js.map +1 -1
  95. package/cjs/components/Textarea/Textarea.js +3 -1
  96. package/cjs/components/Textarea/Textarea.js.map +1 -1
  97. package/cjs/components/Textarea/TextareaCounter.d.ts +2 -2
  98. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  99. package/cjs/components/Toast/Toast.js +1 -1
  100. package/cjs/components/Toast/Toast.js.map +1 -1
  101. package/cjs/components/Token/Token.styles.js +2 -1
  102. package/cjs/components/Token/Token.styles.js.map +1 -1
  103. package/cjs/components/TokenInput/TokenInput.d.ts +3 -0
  104. package/cjs/components/TokenInput/TokenInput.js +57 -15
  105. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  106. package/cjs/components/TokenInput/TokenInput.md +26 -0
  107. package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
  108. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  109. package/cjs/components/TokenInput/TokenInputMenu.d.ts +2 -1
  110. package/cjs/components/TokenInput/TokenInputMenu.js +1 -1
  111. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  112. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  113. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  114. package/cjs/hooks/useEffectWithoutInitCall.d.ts +2 -2
  115. package/cjs/hooks/useEffectWithoutInitCall.js +2 -2
  116. package/cjs/hooks/useEffectWithoutInitCall.js.map +1 -1
  117. package/cjs/hooks/useMemoObject.d.ts +2 -1
  118. package/cjs/hooks/useMemoObject.js +2 -0
  119. package/cjs/hooks/useMemoObject.js.map +1 -1
  120. package/cjs/internal/BGRuler.d.ts +1 -1
  121. package/cjs/internal/BGRuler.js.map +1 -1
  122. package/cjs/internal/Calendar/MonthViewModel.d.ts +1 -1
  123. package/cjs/internal/Calendar/config.d.ts +1 -8
  124. package/cjs/internal/CommonWrapper/CommonWrapper.js +5 -4
  125. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  126. package/cjs/internal/ComponentTable.d.ts +2 -2
  127. package/cjs/internal/ComponentTable.js +3 -1
  128. package/cjs/internal/ComponentTable.js.map +1 -1
  129. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +2 -2
  130. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +8 -8
  131. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  132. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +4 -5
  133. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  134. package/cjs/internal/DataTids/DataTids.d.ts +5 -5
  135. package/cjs/internal/DataTids/DataTids.js +4 -0
  136. package/cjs/internal/DataTids/DataTids.js.map +1 -1
  137. package/cjs/internal/DateSelect/DateSelect.js +1 -1
  138. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  139. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  140. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  141. package/cjs/internal/InputLikeText/InputLikeText.js +4 -2
  142. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  143. package/cjs/internal/InternalMenu/InternalMenu.js +1 -1
  144. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  145. package/cjs/internal/MaskedInput/MaskedInput.js +3 -1
  146. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  147. package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
  148. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  149. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
  150. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  151. package/cjs/internal/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  152. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  153. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js +7 -0
  154. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js.map +1 -1
  155. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  156. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js +2 -3
  157. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js.map +1 -1
  158. package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  159. package/cjs/internal/ThemePlayground/FxInputPlayground.js +5 -5
  160. package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
  161. package/cjs/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  162. package/cjs/internal/ThemePlayground/HintPlayground.js.map +1 -1
  163. package/cjs/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  164. package/cjs/internal/ThemePlayground/PagingPlayground.js +5 -2
  165. package/cjs/internal/ThemePlayground/PagingPlayground.js.map +1 -1
  166. package/cjs/internal/ThemePlayground/Playground.d.ts +1 -1
  167. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  168. package/cjs/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  169. package/cjs/internal/ThemePlayground/SelectPlayground.js +6 -0
  170. package/cjs/internal/ThemePlayground/SelectPlayground.js.map +1 -1
  171. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  172. package/cjs/internal/ThemePlayground/SizesGroup.js +2 -0
  173. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  174. package/cjs/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  175. package/cjs/internal/ThemePlayground/SwitcherPlayground.js +6 -1
  176. package/cjs/internal/ThemePlayground/SwitcherPlayground.js.map +1 -1
  177. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -4
  178. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  179. package/cjs/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  180. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  181. package/cjs/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  182. package/cjs/internal/ThemePlayground/TogglePlayground.js +4 -10
  183. package/cjs/internal/ThemePlayground/TogglePlayground.js.map +1 -1
  184. package/cjs/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  185. package/cjs/internal/ThemePlayground/TokenInputPlayground.js +3 -0
  186. package/cjs/internal/ThemePlayground/TokenInputPlayground.js.map +1 -1
  187. package/cjs/internal/ThemePlayground/VariableValue.d.ts +1 -4
  188. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  189. package/cjs/internal/ThemePlayground/helpers.d.ts +1 -1
  190. package/cjs/internal/ThemePlayground/helpers.js +4 -2
  191. package/cjs/internal/ThemePlayground/helpers.js.map +1 -1
  192. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  193. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  194. package/cjs/internal/ZIndex/ZIndex.js +2 -9
  195. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  196. package/cjs/internal/themes/DefaultTheme.d.ts +2 -0
  197. package/cjs/internal/themes/DefaultTheme.js +8 -2
  198. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  199. package/cjs/lib/ConditionalHandler.js.map +1 -1
  200. package/cjs/lib/ModalStack.js +2 -2
  201. package/cjs/lib/ModalStack.js.map +1 -1
  202. package/cjs/lib/animation/index.js +1 -0
  203. package/cjs/lib/animation/index.js.map +1 -1
  204. package/cjs/lib/callChildRef/callChildRef.js +1 -1
  205. package/cjs/lib/callChildRef/callChildRef.js.map +1 -1
  206. package/cjs/lib/createPropsGetter.d.ts +1 -1
  207. package/cjs/lib/createPropsGetter.js +1 -0
  208. package/cjs/lib/createPropsGetter.js.map +1 -1
  209. package/cjs/lib/date/InternalDateCalculator.d.ts +1 -1
  210. package/cjs/lib/date/InternalDateCalculator.js +1 -1
  211. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  212. package/cjs/lib/date/InternalDateValidator.d.ts +1 -1
  213. package/cjs/lib/date/InternalDateValidator.js +9 -2
  214. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  215. package/cjs/lib/extractKeyboardAction.d.ts +1 -1
  216. package/cjs/lib/extractKeyboardAction.js.map +1 -1
  217. package/cjs/lib/filterProps.js +0 -1
  218. package/cjs/lib/filterProps.js.map +1 -1
  219. package/cjs/lib/locale/useLocaleForControl.d.ts +1 -1
  220. package/cjs/lib/locale/useLocaleForControl.js.map +1 -1
  221. package/cjs/lib/memo.d.ts +3 -1
  222. package/cjs/lib/memo.js +3 -3
  223. package/cjs/lib/memo.js.map +1 -1
  224. package/cjs/lib/net/fetch.js +2 -2
  225. package/cjs/lib/net/fetch.js.map +1 -1
  226. package/cjs/lib/reactGetTextContent.js +0 -1
  227. package/cjs/lib/reactGetTextContent.js.map +1 -1
  228. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -2
  229. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  230. package/cjs/lib/styles/ColorFactory.js +2 -2
  231. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  232. package/cjs/lib/styles/ColorFunctions.js.map +1 -1
  233. package/cjs/lib/theming/AnimationKeyframes.d.ts +3 -5
  234. package/cjs/lib/theming/AnimationKeyframes.js +8 -22
  235. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  236. package/cjs/lib/theming/Emotion.js +1 -0
  237. package/cjs/lib/theming/Emotion.js.map +1 -1
  238. package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
  239. package/cjs/lib/theming/ThemeFactory.js +3 -1
  240. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  241. package/cjs/lib/theming/ThemeHelpers.d.ts +2 -2
  242. package/cjs/lib/theming/ThemeHelpers.js +1 -1
  243. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  244. package/cjs/lib/utils.d.ts +3 -1
  245. package/cjs/lib/utils.js +5 -2
  246. package/cjs/lib/utils.js.map +1 -1
  247. package/cjs/lib/withClassWrapper.js +1 -4
  248. package/cjs/lib/withClassWrapper.js.map +1 -1
  249. package/components/Autocomplete/Autocomplete/Autocomplete.js +4 -1
  250. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  251. package/components/Checkbox/Checkbox/Checkbox.js +5 -2
  252. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  253. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
  254. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  255. package/components/Checkbox/Checkbox.styles.d.ts +1 -1
  256. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +8 -3
  257. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  258. package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +1 -1
  259. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +10 -1
  260. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  261. package/components/DateInput/DateFragmentsView.d.ts +1 -1
  262. package/components/DateInput/DateInput/DateInput.js +1 -1
  263. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  264. package/components/DateInput/DateInput.d.ts +1 -1
  265. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js +0 -1
  266. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js.map +1 -1
  267. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +2 -2
  268. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
  269. package/components/DatePicker/DatePicker/DatePicker.js +13 -12
  270. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  271. package/components/DatePicker/Picker/Picker.js +5 -1
  272. package/components/DatePicker/Picker/Picker.js.map +1 -1
  273. package/components/FileUploader/FileUploader/FileUploader.js +9 -4
  274. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  275. package/components/FileUploader/FileUploader.d.ts +2 -1
  276. package/components/FxInput/FxInput/FxInput.js +4 -1
  277. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  278. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  279. package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  280. package/components/Input/Input/Input.js +5 -2
  281. package/components/Input/Input/Input.js.map +1 -1
  282. package/components/Input/Input.md +5 -1
  283. package/components/Input/Input.styles/Input.styles.js +13 -10
  284. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  285. package/components/Input/Input.styles.d.ts +1 -0
  286. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  287. package/components/Kebab/Kebab.d.ts +1 -4
  288. package/components/Link/Link/Link.js +1 -1
  289. package/components/Link/Link/Link.js.map +1 -1
  290. package/components/Link/Link.d.ts +1 -3
  291. package/components/Loader/Loader/Loader.js.map +1 -1
  292. package/components/Loader/Loader.d.ts +2 -1
  293. package/components/Loader/__stories__/LoaderAndButton/LoaderAndButton.js.map +1 -1
  294. package/components/MenuItem/MenuItem/MenuItem.js +4 -1
  295. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  296. package/components/Modal/Modal/Modal.js +2 -2
  297. package/components/Modal/Modal/Modal.js.map +1 -1
  298. package/components/Modal/Modal.styles/Modal.styles.js +2 -2
  299. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  300. package/components/Modal/Modal.styles.d.ts +2 -2
  301. package/components/Modal/ModalBody/ModalBody.js +2 -2
  302. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  303. package/components/Paging/Paging/Paging.js +1 -1
  304. package/components/Paging/Paging/Paging.js.map +1 -1
  305. package/components/Paging/Paging.d.ts +1 -1
  306. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
  307. package/components/Paging/PagingDefaultComponent.d.ts +2 -2
  308. package/components/PasswordInput/PasswordInput/PasswordInput.js +7 -8
  309. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  310. package/components/Radio/Radio/Radio.js +4 -1
  311. package/components/Radio/Radio/Radio.js.map +1 -1
  312. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -8
  313. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  314. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  315. package/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  316. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -1
  317. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  318. package/components/ResponsiveLayout/decorator.d.ts +1 -1
  319. package/components/ResponsiveLayout/types.d.ts +9 -1
  320. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +42 -17
  321. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  322. package/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  323. package/components/Select/Item/Item.js.map +1 -1
  324. package/components/Select/Item.d.ts +4 -2
  325. package/components/Select/Select/Select.js.map +1 -1
  326. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  327. package/components/SidePage/SidePageFooter.d.ts +6 -4
  328. package/components/Spinner/Spinner/Spinner.js +1 -1
  329. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  330. package/components/Spinner/Spinner.styles/Spinner.styles.js +3 -3
  331. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  332. package/components/Spinner/Spinner.styles.d.ts +1 -1
  333. package/components/Tabs/Indicator/Indicator.js +1 -1
  334. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  335. package/components/Tabs/Indicator.d.ts +1 -1
  336. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  337. package/components/Textarea/Textarea/Textarea.js +4 -1
  338. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  339. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  340. package/components/Textarea/TextareaCounter.d.ts +2 -2
  341. package/components/Toast/Toast/Toast.js +1 -1
  342. package/components/Toast/Toast/Toast.js.map +1 -1
  343. package/components/Token/Token.styles/Token.styles.js +1 -1
  344. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  345. package/components/TokenInput/TokenInput/TokenInput.js +82 -19
  346. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  347. package/components/TokenInput/TokenInput.d.ts +3 -0
  348. package/components/TokenInput/TokenInput.md +26 -0
  349. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  350. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  351. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -1
  352. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  353. package/components/TokenInput/TokenInputMenu.d.ts +2 -1
  354. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  355. package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
  356. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js +2 -2
  357. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js.map +1 -1
  358. package/hooks/useEffectWithoutInitCall.d.ts +2 -2
  359. package/hooks/useMemoObject/useMemoObject.js.map +1 -1
  360. package/hooks/useMemoObject.d.ts +2 -1
  361. package/internal/BGRuler/BGRuler.js.map +1 -1
  362. package/internal/BGRuler.d.ts +1 -1
  363. package/internal/Calendar/MonthViewModel.d.ts +1 -1
  364. package/internal/Calendar/config.d.ts +1 -8
  365. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
  366. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  367. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  368. package/internal/ComponentTable.d.ts +2 -2
  369. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +14 -17
  370. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  371. package/internal/CustomComboBox/ComboBoxMenu.d.ts +2 -2
  372. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +4 -5
  373. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  374. package/internal/DataTids/DataTids/DataTids.js.map +1 -1
  375. package/internal/DataTids/DataTids.d.ts +5 -5
  376. package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
  377. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  378. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  379. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  380. package/internal/InputLikeText/InputLikeText/InputLikeText.js +5 -2
  381. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  382. package/internal/InternalMenu/InternalMenu/InternalMenu.js +1 -1
  383. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  384. package/internal/MaskedInput/MaskedInput/MaskedInput.js +4 -1
  385. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  386. package/internal/MobilePopup/MobilePopup/MobilePopup.js +1 -1
  387. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  388. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +1 -1
  389. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  390. package/internal/PerformanceMetrics/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  391. package/internal/ThemePlayground/AnotherInputsPlayground/AnotherInputsPlayground.js.map +1 -1
  392. package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  393. package/internal/ThemePlayground/CurrencyInputPlayground/CurrencyInputPlayground.js.map +1 -1
  394. package/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  395. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js +10 -6
  396. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
  397. package/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  398. package/internal/ThemePlayground/HintPlayground/HintPlayground.js.map +1 -1
  399. package/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  400. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js +2 -2
  401. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js.map +1 -1
  402. package/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  403. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  404. package/internal/ThemePlayground/Playground.d.ts +1 -1
  405. package/internal/ThemePlayground/SelectPlayground/SelectPlayground.js.map +1 -1
  406. package/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  407. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
  408. package/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  409. package/internal/ThemePlayground/SwitcherPlayground/SwitcherPlayground.js.map +1 -1
  410. package/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  411. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +13 -3
  412. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  413. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  414. package/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  415. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js +5 -17
  416. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js.map +1 -1
  417. package/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  418. package/internal/ThemePlayground/TokenInputPlayground/TokenInputPlayground.js.map +1 -1
  419. package/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  420. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  421. package/internal/ThemePlayground/VariableValue.d.ts +1 -4
  422. package/internal/ThemePlayground/helpers/helpers.js +0 -1
  423. package/internal/ThemePlayground/helpers/helpers.js.map +1 -1
  424. package/internal/ThemePlayground/helpers.d.ts +1 -1
  425. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  426. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  427. package/internal/ZIndex/ZIndex/ZIndex.js +6 -3
  428. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  429. package/internal/themes/DefaultTheme/DefaultTheme.js +11 -1
  430. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  431. package/internal/themes/DefaultTheme.d.ts +2 -0
  432. package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
  433. package/lib/ModalStack/ModalStack.js +2 -2
  434. package/lib/ModalStack/ModalStack.js.map +1 -1
  435. package/lib/animation/index/index.js +1 -1
  436. package/lib/animation/index/index.js.map +1 -1
  437. package/lib/callChildRef/callChildRef/callChildRef.js +1 -1
  438. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -1
  439. package/lib/createPropsGetter/createPropsGetter.js +1 -0
  440. package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
  441. package/lib/createPropsGetter.d.ts +1 -1
  442. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +1 -2
  443. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  444. package/lib/date/InternalDateCalculator.d.ts +1 -1
  445. package/lib/date/InternalDateValidator/InternalDateValidator.js +8 -2
  446. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  447. package/lib/date/InternalDateValidator.d.ts +1 -1
  448. package/lib/extractKeyboardAction/extractKeyboardAction.js.map +1 -1
  449. package/lib/extractKeyboardAction.d.ts +1 -1
  450. package/lib/filterProps/filterProps.js +0 -1
  451. package/lib/filterProps/filterProps.js.map +1 -1
  452. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -1
  453. package/lib/locale/useLocaleForControl.d.ts +1 -1
  454. package/lib/memo/memo.js +2 -4
  455. package/lib/memo/memo.js.map +1 -1
  456. package/lib/memo.d.ts +3 -1
  457. package/lib/net/fetch/fetch.js +2 -2
  458. package/lib/net/fetch/fetch.js.map +1 -1
  459. package/lib/reactGetTextContent/reactGetTextContent.js +0 -1
  460. package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
  461. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  462. package/lib/rootNode/rootNodeDecorator.d.ts +2 -2
  463. package/lib/styles/ColorFactory/ColorFactory.js +3 -1
  464. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  465. package/lib/styles/ColorFunctions/ColorFunctions.js.map +1 -1
  466. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +8 -14
  467. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  468. package/lib/theming/AnimationKeyframes.d.ts +3 -5
  469. package/lib/theming/Emotion/Emotion.js.map +1 -1
  470. package/lib/theming/ThemeFactory/ThemeFactory.js +4 -1
  471. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  472. package/lib/theming/ThemeFactory.d.ts +1 -1
  473. package/lib/theming/ThemeHelpers/ThemeHelpers.js +1 -1
  474. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  475. package/lib/theming/ThemeHelpers.d.ts +2 -2
  476. package/lib/utils/utils.js +2 -2
  477. package/lib/utils/utils.js.map +1 -1
  478. package/lib/utils.d.ts +3 -1
  479. package/lib/withClassWrapper/withClassWrapper.js +1 -4
  480. package/lib/withClassWrapper/withClassWrapper.js.map +1 -1
  481. package/package.json +3 -20
@@ -1 +1 @@
1
- {"version":3,"sources":["Radio.tsx"],"names":["RadioDataTids","root","Radio","rootNode","state","focusedByKeyboard","getProps","defaultProps","context","inputEl","React","createRef","renderMain","props","disabled","warning","error","focused","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","radioProps","className","styles","circle","theme","checked","focus","checkedDisabled","globalClasses","value","inputProps","type","input","tabIndex","ref","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","labelProps","rootChecked","rootIE11","isIE11","isEdge","handleMouseOver","handleMouseEnter","handleMouseLeave","onClick","_isInRadioGroup","activeItem","name","suppressHydrationWarning","placeholder","children","renderCaption","Boolean","e","onSelect","requestAnimationFrame","keyListener","isArrowPressed","isTabPressed","setState","render","setRootNode","current","blur","captionClassNames","caption","captionDisabled","captionIE11","Component","__KONTUR_REACT_UI__","contextType","RadioGroupContext"],"mappings":"udAAA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CO,IAAMA,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE,aADqB,EAAtB,C;;;;;AAMP;AACA;AACA,G;;AAEaC,K,OADZC,kB;;;AAIQC,IAAAA,K,GAAQ;AACbC,MAAAA,iBAAiB,EAAE,KADN,E;;;;;;;AAQPC,IAAAA,Q,GAAW,0CAAkBJ,KAAK,CAACK,YAAxB,C;;;AAGZC,IAAAA,O,GAAoC,MAAKA,O;;AAExCC,IAAAA,O,gBAAUC,eAAMC,SAAN,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCXC,IAAAA,U,GAAa,UAACC,KAAD,EAAkD;AACpE;;;;;;;;;;AAUIA,MAAAA,KAVJ,CACEC,QADF,CACEA,QADF,gCACa,MAAKN,OAAL,CAAaM,QAD1B,oCAUID,KAVJ,CAEEE,OAFF,CAEEA,OAFF,+BAEY,MAAKP,OAAL,CAAaO,OAFzB,iCAUIF,KAVJ,CAGEG,KAHF,CAGEA,KAHF,6BAGU,MAAKR,OAAL,CAAaQ,KAHvB,gBAIEC,OAJF,GAUIJ,KAVJ,CAIEI,OAJF,CAKEC,WALF,GAUIL,KAVJ,CAKEK,WALF,CAMEC,YANF,GAUIN,KAVJ,CAMEM,YANF,CAOEC,YAPF,GAUIP,KAVJ,CAOEO,YAPF,CAQEC,aARF,GAUIR,KAVJ,CAQEQ,aARF,CASKC,IATL,+CAUIT,KAVJ;;AAYA,UAAMU,UAAU,GAAG;AACjBC,QAAAA,SAAS,EAAE;AACRC,sBAAOC,MAAP,CAAc,MAAKC,KAAnB,CADQ,IACoB,IADpB;AAERF,sBAAOG,OAAP,CAAe,MAAKD,KAApB,CAFQ,IAEqB,MAAKd,KAAL,CAAWe,OAFhC;AAGRH,sBAAOI,KAAP,CAAa,MAAKF,KAAlB,CAHQ,IAGmB,MAAKrB,QAAL,GAAgBW,OAAhB,IAA2B,MAAKb,KAAL,CAAWC,iBAHzD;AAIRoB,sBAAOT,KAAP,CAAa,MAAKW,KAAlB,CAJQ,IAImBX,KAJnB;AAKRS,sBAAOV,OAAP,CAAe,MAAKY,KAApB,CALQ,IAKqBZ,OALrB;AAMRU,sBAAOX,QAAP,CAAgB,MAAKa,KAArB,CANQ,IAMsBb,QANtB;AAORW,sBAAOK,eAAP,CAAuB,MAAKH,KAA5B,CAPQ,IAO6B,MAAKd,KAAL,CAAWe,OAAX,IAAsBd,QAPnD;AAQRiB,6BAAcL,MARN,IAQe,IARf,OADM,EAAnB;;;;AAaA,UAAIM,KAAJ;AACA,UAAI,OAAO,MAAKnB,KAAL,CAAWmB,KAAlB,KAA4B,QAA5B,IAAwC,OAAO,MAAKnB,KAAL,CAAWmB,KAAlB,KAA4B,QAAxE,EAAkF;AAChFA,QAAAA,KAAK,GAAG,MAAKnB,KAAL,CAAWmB,KAAnB;AACD;;AAED,UAAMC,UAAU;AACXX,MAAAA,IADW;AAEdY,QAAAA,IAAI,EAAE,OAFQ;AAGdV,QAAAA,SAAS,EAAEC,cAAOU,KAAP,EAHG;AAIdrB,QAAAA,QAAQ,EAARA,QAJc;AAKdsB,QAAAA,QAAQ,EAAE,MAAKvB,KAAL,CAAWuB,QALP;AAMdJ,QAAAA,KAAK,EAALA,KANc;AAOdK,QAAAA,GAAG,EAAE,MAAK5B,OAPI;AAQd6B,QAAAA,QAAQ,EAAE,MAAKC,YARD;AASdC,QAAAA,OAAO,EAAE,MAAKC,WATA;AAUdC,QAAAA,MAAM,EAAE,MAAKC,UAVC,GAAhB;;;AAaA,UAAMC,UAAU,GAAG;AACjBpB,QAAAA,SAAS,EAAE,iBAAGC,cAAOxB,IAAP,CAAY,MAAK0B,KAAjB,CAAH;AACRF,sBAAOoB,WAAP,CAAmB,MAAKlB,KAAxB,CADQ,IACyB,MAAKd,KAAL,CAAWe,OADpC;AAERH,sBAAOqB,QAAP,EAFQ,IAEYC,kBAAUC,cAFtB,QADM;;AAKjB9B,QAAAA,WAAW,EAAE,MAAK+B,eALD;AAMjB9B,QAAAA,YAAY,EAAE,MAAK+B,gBANF;AAOjB9B,QAAAA,YAAY,EAAE,MAAK+B,gBAPF;AAQjBC,QAAAA,OAAO,EAAE,oEAA+B,MAAK3C,OAApC,CARQ,EAAnB;;;AAWA,UAAI,MAAK4C,eAAL,EAAJ,EAA4B;AAC1B,YAAMzB,OAAO,GAAG,MAAKf,KAAL,CAAWmB,KAAX,KAAqB,MAAKxB,OAAL,CAAa8C,UAAlD;AACArB,QAAAA,UAAU,CAACL,OAAX,GAAqBA,OAArB;AACAK,QAAAA,UAAU,CAACsB,IAAX,GAAkB,MAAK/C,OAAL,CAAa+C,IAA/B;AACAtB,QAAAA,UAAU,CAACuB,wBAAX,GAAsC,IAAtC;AACAZ,QAAAA,UAAU,CAACpB,SAAX,GAAuB,iBAAGC,cAAOxB,IAAP,CAAY,MAAK0B,KAAjB,CAAH;AACpBF,sBAAOoB,WAAP,CAAmB,MAAKlB,KAAxB,CADoB,IACaC,OADb;AAEpBH,sBAAOqB,QAAP,EAFoB,IAEAC,kBAAUC,cAFV,QAAvB;;AAIAzB,QAAAA,UAAU,CAACC,SAAX,GAAuB,iBAAGD,UAAU,CAACC,SAAd;AACpBC,sBAAOG,OAAP,CAAe,MAAKD,KAApB,CADoB,IACSC,OADT;AAEpBH,sBAAOK,eAAP,CAAuB,MAAKH,KAA5B,CAFoB,IAEiBC,OAAO,IAAId,QAF5B,QAAvB;;AAID;;AAED;AACE,uEAAO,YAAUd,aAAa,CAACC,IAA/B,IAAyC2C,UAAzC;AACE,8CAAWX,UAAX,CADF;AAEE,6CAAUV,UAAV;AACE,+CAAM,SAAS,EAAEE,cAAOgC,WAAP,EAAjB,GADF,CAFF;;AAKG,cAAK5C,KAAL,CAAW6C,QAAX,IAAuB,MAAKC,aAAL,EAL1B,CADF;;;AASD,K;;AAEON,IAAAA,e,GAAkB,oBAAMO,OAAO,CAAC,MAAKpD,OAAL,CAAa+C,IAAd,CAAb,E;;;;;;;;;;;;AAYlBhB,IAAAA,Y,GAA2D,UAACsB,CAAD,EAAO;AACxE,YAAKhD,KAAL,CAAWQ,aAAX,0BAAKR,KAAL,CAAWQ,aAAX,CAA2B,MAAKR,KAAL,CAAWmB,KAAtC;;AAEA,UAAI,MAAKqB,eAAL,EAAJ,EAA4B;AAC1B,cAAK7C,OAAL,CAAasD,QAAb,CAAsB,MAAKjD,KAAL,CAAWmB,KAAjC;AACD;;AAED,YAAKnB,KAAL,CAAWyB,QAAX,0BAAKzB,KAAL,CAAWyB,QAAX,CAAsBuB,CAAtB;AACD,K;;AAEOZ,IAAAA,e,GAA6D,UAACY,CAAD,EAAO;AAC1E,YAAKhD,KAAL,CAAWK,WAAX,0BAAKL,KAAL,CAAWK,WAAX,CAAyB2C,CAAzB;AACD,K;;AAEOX,IAAAA,gB,GAA8D,UAACW,CAAD,EAAO;AAC3E,YAAKhD,KAAL,CAAWM,YAAX,0BAAKN,KAAL,CAAWM,YAAX,CAA0B0C,CAA1B;AACD,K;;AAEOV,IAAAA,gB,GAA8D,UAACU,CAAD,EAAO;AAC3E,YAAKhD,KAAL,CAAWO,YAAX,0BAAKP,KAAL,CAAWO,YAAX,CAA0ByC,CAA1B;AACD,K;;AAEOpB,IAAAA,W,GAAc,UAACoB,CAAD,EAA8B;AAClD,UAAI,CAAC,MAAKrD,OAAL,CAAaM,QAAlB,EAA4B;AAC1B;AACA;AACAiD,QAAAA,qBAAqB,CAAC,YAAM;AAC1B,cAAIC,yBAAYC,cAAZ,IAA8BD,yBAAYE,YAA9C,EAA4D;AAC1D,kBAAKC,QAAL,CAAc,EAAE9D,iBAAiB,EAAE,IAArB,EAAd;AACD;AACF,SAJoB,CAArB;;AAMA,YAAI,MAAKQ,KAAL,CAAW2B,OAAf,EAAwB;AACtB,gBAAK3B,KAAL,CAAW2B,OAAX,CAAmBqB,CAAnB;AACD;AACF;AACF,K;;AAEOlB,IAAAA,U,GAAa,UAACkB,CAAD,EAA2C;AAC9D,YAAKhD,KAAL,CAAW6B,MAAX,0BAAK7B,KAAL,CAAW6B,MAAX,CAAoBmB,CAApB;AACA,YAAKM,QAAL,CAAc,EAAE9D,iBAAiB,EAAE,KAArB,EAAd;AACD,K,mDApKM+D,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACzC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,MAAI,CAAC0C,WAAjC,IAAkD,MAAI,CAACxD,KAAvD,GACG,MAAI,CAACD,UADR,CADF,CAKD,CARH,CADF,CAYD,C,CAED;AACF;AACA,K,QACSiB,K,GAAP,iBAAe,2BACbmC,yBAAYE,YAAZ,GAA2B,IAA3B,CACA,8BAAKzD,OAAL,CAAa6D,OAAb,2CAAsBzC,KAAtB,GACD,C,CAED;AACF;AACA,K,QACS0C,I,GAAP,gBAAc,4BACZ,+BAAK9D,OAAL,CAAa6D,OAAb,4CAAsBC,IAAtB,GACD,C,QAqFOZ,a,GAAR,yBAAwB,UACtB,IAAMa,iBAAiB,GAAG,kCACvB/C,cAAOgD,OAAP,CAAe,KAAK9C,KAApB,CADuB,IACM,IADN,OAEvBF,cAAOiD,eAAP,CAAuB,KAAK/C,KAA5B,CAFuB,IAEc,CAAC,EAAE,KAAKd,KAAL,CAAWC,QAAX,IAAuB,KAAKN,OAAL,CAAaM,QAAtC,CAFf,OAGvBW,cAAOkD,WAAP,EAHuB,IAGA5B,kBAAUC,cAHV,QAA1B,CAMA,oBAAO,sCAAK,SAAS,EAAEwB,iBAAhB,IAAoC,KAAK3D,KAAL,CAAW6C,QAA/C,CAAP,CACD,C,gBA7I2BhD,eAAMkE,S,WACpBC,mB,GAAsB,O,UAMtBtE,Y,GAA6B,EACzCU,OAAO,EAAE,KADgC,E,UAM7B6D,W,GAAcC,oC","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';\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"]}
1
+ {"version":3,"sources":["Radio.tsx"],"names":["RadioDataTids","root","Radio","rootNode","state","focusedByKeyboard","getProps","defaultProps","context","inputEl","React","createRef","renderMain","props","disabled","warning","error","focused","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","radioProps","className","styles","circle","theme","checked","focus","checkedDisabled","globalClasses","value","inputProps","type","input","tabIndex","ref","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","labelProps","rootChecked","rootIE11","isIE11","isEdge","handleMouseOver","handleMouseEnter","handleMouseLeave","onClick","_isInRadioGroup","activeItem","name","suppressHydrationWarning","placeholder","children","renderCaption","Boolean","e","onSelect","requestAnimationFrame","keyListener","isArrowPressed","isTabPressed","setState","render","setRootNode","current","blur","captionClassNames","caption","captionDisabled","captionIE11","Component","__KONTUR_REACT_UI__","contextType","RadioGroupContext"],"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"]}
@@ -1,11 +1,12 @@
1
1
  import React from 'react';
2
- import { ResponsiveLayoutFlags } from './types';
3
- interface ResponsiveLayoutProps {
4
- onLayoutChange?: (layout: ResponsiveLayoutFlags) => void;
5
- children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags) => React.ReactNode);
2
+ import { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags } from './types';
3
+ interface ResponsiveLayoutProps<T extends MediaQueriesType = EmptyObject> {
4
+ onLayoutChange?: (layout: ResponsiveLayoutFlags<T>) => void;
5
+ children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags<T>) => React.ReactNode);
6
+ customMediaQueries?: T;
6
7
  }
7
8
  /**
8
9
  * Компонент для определения текущего лэйаута.
9
10
  */
10
- export declare const ResponsiveLayout: React.FC<ResponsiveLayoutProps>;
11
+ export declare function ResponsiveLayout<T extends MediaQueriesType = EmptyObject>(props: ResponsiveLayoutProps<T>): JSX.Element;
11
12
  export {};
@@ -1,5 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.ResponsiveLayout = void 0;var _react = _interopRequireWildcard(require("react"));
2
- var _propTypes = _interopRequireDefault(require("prop-types"));
1
+ "use strict";exports.__esModule = true;exports.ResponsiveLayout = ResponsiveLayout;var _react = _interopRequireWildcard(require("react"));
3
2
 
4
3
  var _utils = require("../../lib/utils");
5
4
  var _CommonWrapper = require("../../internal/CommonWrapper");
@@ -12,12 +11,13 @@ var _useResponsiveLayout = require("./useResponsiveLayout");function _getRequire
12
11
 
13
12
 
14
13
 
14
+
15
15
  /**
16
16
  * Компонент для определения текущего лэйаута.
17
17
  */
18
18
 
19
- var ResponsiveLayout = function ResponsiveLayout(props) {var _props$children, _props$children2;
20
- var layoutFlags = (0, _useResponsiveLayout.useResponsiveLayout)();
19
+ function ResponsiveLayout(props) {var _props$children, _props$children2;
20
+ var layoutFlags = (0, _useResponsiveLayout.useResponsiveLayout)({ customMediaQueries: props.customMediaQueries });
21
21
 
22
22
  (0, _react.useEffect)(function () {
23
23
  if (props.onLayoutChange) {
@@ -30,8 +30,4 @@ var ResponsiveLayout = function ResponsiveLayout(props) {var _props$children, _p
30
30
  (0, _utils.isFunction)(props.children) ? (_props$children = props.children(layoutFlags)) != null ? _props$children : null : (_props$children2 = props.children) != null ? _props$children2 : null));
31
31
 
32
32
 
33
- };exports.ResponsiveLayout = ResponsiveLayout;
34
-
35
- ResponsiveLayout.propTypes = {
36
- onLayoutChange: _propTypes.default.func,
37
- children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]) };
33
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["ResponsiveLayout","props","layoutFlags","onLayoutChange","children","propTypes","func","oneOfType","node"],"mappings":"8JAAA;AACA;;AAEA;AACA;;;AAGA,4D;;;;;;;AAOA;AACA;AACA;;AAEO,IAAMA,gBAAiD,GAAG,SAApDA,gBAAoD,CAACC,KAAD,EAAW;AAC1E,MAAMC,WAAW,GAAG,+CAApB;;AAEA,wBAAU,YAAM;AACd,QAAID,KAAK,CAACE,cAAV,EAA0B;AACxBF,MAAAA,KAAK,CAACE,cAAN,CAAqBD,WAArB;AACD;AACF,GAJD,EAIG,CAACA,WAAD,CAJH;;AAMA;AACE,iCAAC,4BAAD,EAAmBD,KAAnB;AACG,2BAAWA,KAAK,CAACG,QAAjB,uBAA6BH,KAAK,CAACG,QAAN,CAAeF,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACG,QAAzE,+BAAqF,IADxF,CADF;;;AAKD,CAdM,C;;AAgBPJ,gBAAgB,CAACK,SAAjB,GAA6B;AAC3BF,EAAAA,cAAc,EAAEE,mBAAUC,IADC;AAE3BF,EAAAA,QAAQ,EAAEC,mBAAUE,SAAV,CAAoB,CAACF,mBAAUG,IAAX,EAAiBH,mBAAUC,IAA3B,CAApB,CAFiB,EAA7B","sourcesContent":["import React, { useEffect } from 'react';\nimport propTypes from 'prop-types';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps {\n onLayoutChange?: (layout: ResponsiveLayoutFlags) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags) => React.ReactNode);\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport const ResponsiveLayout: React.FC<ResponsiveLayoutProps> = (props) => {\n const layoutFlags = useResponsiveLayout();\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n};\n\nResponsiveLayout.propTypes = {\n onLayoutChange: propTypes.func,\n children: propTypes.oneOfType([propTypes.node, propTypes.func]),\n};\n"]}
1
+ {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["ResponsiveLayout","props","layoutFlags","customMediaQueries","onLayoutChange","children"],"mappings":"mFAAA;;AAEA;AACA;;;AAGA,4D;;;;;;;;AAQA;AACA;AACA;;AAEO,SAASA,gBAAT,CAAoEC,KAApE,EAAqG;AAC1G,MAAMC,WAAW,GAAG,8CAAuB,EAAEC,kBAAkB,EAAEF,KAAK,CAACE,kBAA5B,EAAvB,CAApB;;AAEA,wBAAU,YAAM;AACd,QAAIF,KAAK,CAACG,cAAV,EAA0B;AACxBH,MAAAA,KAAK,CAACG,cAAN,CAAqBF,WAArB;AACD;AACF,GAJD,EAIG,CAACA,WAAD,CAJH;;AAMA;AACE,iCAAC,4BAAD,EAAmBD,KAAnB;AACG,2BAAWA,KAAK,CAACI,QAAjB,uBAA6BJ,KAAK,CAACI,QAAN,CAAeH,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACI,QAAzE,+BAAqF,IADxF,CADF;;;AAKD","sourcesContent":["import React, { useEffect } from 'react';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps<T extends MediaQueriesType = EmptyObject> {\n onLayoutChange?: (layout: ResponsiveLayoutFlags<T>) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags<T>) => React.ReactNode);\n customMediaQueries?: T;\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport function ResponsiveLayout<T extends MediaQueriesType = EmptyObject>(props: ResponsiveLayoutProps<T>) {\n const layoutFlags = useResponsiveLayout<T>({ customMediaQueries: props.customMediaQueries });\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n}\n"]}
@@ -40,4 +40,35 @@ class SomeComponent {
40
40
  }
41
41
  ```
42
42
 
43
+ В компонент можно передать проп `customMediaQueries: MediaQueriesType`, который позволяет кастомизировать возвращаемые флаги:
44
+ ```ts static
45
+ type MediaQueriesType = Record<string, string>;
46
+ ```
47
+ 1. Без кастомизации есть только флаг isMobile
48
+ 2. Поля из `customMediaQueries` дополняют список возвращаемых флагов в `ResponsiveLayoutFlags`
49
+ 3. При добавлении кастомного флага isMobile, значение дефолтного флага перезаписывается в пользу кастомного
50
+
51
+ ```jsx static
52
+ import { ResponsiveLayout } from '@skbkontur/react-ui';
53
+
54
+ const customMediaQueries = {
55
+ isTablet: '(min-width: 577px)',
56
+ isDesktop: '(min-width: 1280px)',
57
+ };
58
+
59
+ class SomeComponent {
60
+ public render() {
61
+ return (
62
+ <ResponsiveLayout customMediaQueries={customMediaQueries}>
63
+ {
64
+ ({ isMobile, isTablet, isDesktop }) => {
65
+ /* ... */
66
+ }
67
+ }
68
+ </ResponsiveLayout>
69
+ )
70
+ }
71
+ }
72
+ ```
73
+
43
74
  Как альтернативу можно использовать хук [useResponsiveLayout](#/Mobiles).
@@ -76,7 +76,7 @@ function removeCallbackFromMQListener(mediaQuery, callback) {
76
76
  }
77
77
  }
78
78
 
79
- function checkMatches(mediaQuery) {
79
+ function checkMatches(mediaQuery) {var _eventListener$mql$ma;
80
80
  if (!_client.canUseDOM) {
81
81
  return false;
82
82
  }
@@ -86,7 +86,7 @@ function checkMatches(mediaQuery) {
86
86
  }
87
87
 
88
88
  var eventListener = eventListenersMap.get(mediaQuery);
89
- return eventListener.mql.matches;
89
+ return (_eventListener$mql$ma = eventListener == null ? void 0 : eventListener.mql.matches) != null ? _eventListener$mql$ma : false;
90
90
  }
91
91
 
92
92
  function changeCallback(e) {
@@ -1 +1 @@
1
- {"version":3,"sources":["ResponsiveLayoutEvents.ts"],"names":["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","delete","checkMatches","canUseDOM","matches","e","media","forEach"],"mappings":"uVAAA;;;;;;;;;;;AAWO,IAAMA,iBAAiB,GAAG,IAAIC,GAAJ,EAA1B,C;;AAEA,SAASC,2BAAT;AACLC,UADK;AAELC,QAFK;AAGU;AACf,MAAIJ,iBAAiB,CAACK,GAAlB,CAAsBF,UAAtB,CAAJ,EAAuC;AACrCG,IAAAA,uBAAuB,CAACH,UAAD,EAAaC,QAAb,CAAvB;AACD,GAFD,MAEO;AACLG,IAAAA,gBAAgB,CAACJ,UAAD,EAAaC,QAAb,CAAhB;AACD;;AAED,SAAO;AACLI,IAAAA,MADK,oBACI;AACPC,MAAAA,4BAA4B,CAACN,UAAD,EAAaC,QAAb,CAA5B;AACD,KAHI,EAAP;;AAKD;;AAED,SAASE,uBAAT,CAAiCH,UAAjC,EAAqDC,QAArD,EAAiG;AAC/F,MAAMM,aAAa,GAAGV,iBAAiB,CAACW,GAAlB,CAAsBR,UAAtB,CAAtB;;AAEA,MAAIO,aAAJ,EAAmB;AACjBV,IAAAA,iBAAiB,CAACY,GAAlB,CAAsBT,UAAtB;AACKO,IAAAA,aADL;AAEEG,MAAAA,SAAS,YAAMH,aAAa,CAACG,SAApB,GAA+BT,QAA/B,EAFX;;AAID;AACF;;AAED,SAASG,gBAAT,CAA0BJ,UAA1B,EAA8CC,QAA9C,EAA0F;AACxF,MAAMU,GAAG,GAAGC,MAAM,CAACC,UAAP,CAAkBb,UAAlB,CAAZ;AACA,MAAMc,iBAAiC,GAAG,EAAEH,GAAG,EAAHA,GAAF,EAAOD,SAAS,EAAE,CAACT,QAAD,CAAlB,EAA1C;;AAEAJ,EAAAA,iBAAiB,CAACY,GAAlB,CAAsBT,UAAtB,EAAkCc,iBAAlC;AACA,MAAIH,GAAG,CAACI,gBAAR,EAA0B;AACxBJ,IAAAA,GAAG,CAACI,gBAAJ,CAAqB,QAArB,EAA+BC,cAA/B;AACD,GAFD,MAEO;AACLL,IAAAA,GAAG,CAACM,WAAJ,CAAgBD,cAAhB;AACD;AACF;;AAED,SAASV,4BAAT,CAAsCN,UAAtC,EAA0DC,QAA1D,EAAsG;AACpG,MAAIJ,iBAAiB,CAACK,GAAlB,CAAsBF,UAAtB,CAAJ,EAAuC;AACrC,QAAMO,aAAa,GAAGV,iBAAiB,CAACW,GAAlB,CAAsBR,UAAtB,CAAtB;;AAEA,QAAIO,aAAJ,EAAmB;AACjB,UAAMW,YAAY,GAAGX,aAAa,CAACG,SAAd,CAAwBS,MAAxB,CAA+B,UAACC,QAAD,UAAcA,QAAQ,KAAKnB,QAA3B,EAA/B,CAArB;;AAEA,UAAIiB,YAAY,CAACG,MAAb,KAAwB,CAA5B,EAA+B;AAC7B,YAAId,aAAa,CAACI,GAAd,CAAkBW,mBAAtB,EAA2C;AACzCf,UAAAA,aAAa,CAACI,GAAd,CAAkBW,mBAAlB,CAAsC,QAAtC,EAAgDN,cAAhD;AACD,SAFD,MAEO;AACLT,UAAAA,aAAa,CAACI,GAAd,CAAkBY,cAAlB,CAAiCP,cAAjC;AACD;AACDnB,QAAAA,iBAAiB,CAAC2B,MAAlB,CAAyBxB,UAAzB;AACA;AACD;;AAEDH,MAAAA,iBAAiB,CAACY,GAAlB,CAAsBT,UAAtB;AACKO,MAAAA,aADL;AAEEG,QAAAA,SAAS,YAAMQ,YAAN,CAFX;;AAID;AACF;AACF;;AAEM,SAASO,YAAT,CAAsBzB,UAAtB,EAA0C;AAC/C,MAAI,CAAC0B,iBAAL,EAAgB;AACd,WAAO,KAAP;AACD;;AAED,MAAI,CAAC7B,iBAAiB,CAACK,GAAlB,CAAsBF,UAAtB,CAAL,EAAwC;AACtC,WAAOY,MAAM,CAACC,UAAP,CAAkBb,UAAlB,EAA8B2B,OAArC;AACD;;AAED,MAAMpB,aAAa,GAAGV,iBAAiB,CAACW,GAAlB,CAAsBR,UAAtB,CAAtB;AACA,SAAOO,aAAa,CAAEI,GAAf,CAAmBgB,OAA1B;AACD;;AAED,SAASX,cAAT,CAAwBY,CAAxB,EAAgD;AAC9C,MAAMrB,aAAa,GAAGV,iBAAiB,CAACW,GAAlB,CAAsBoB,CAAC,CAACC,KAAxB,CAAtB;;AAEA,MAAItB,aAAJ,EAAmB;AACjBA,IAAAA,aAAa,CAACG,SAAd,CAAwBoB,OAAxB,CAAgC,UAACV,QAAD,EAAc;AAC5CA,MAAAA,QAAQ,CAACQ,CAAD,CAAR;AACD,KAFD;AAGD;AACF","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":["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","delete","checkMatches","canUseDOM","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"]}
@@ -3,7 +3,7 @@ import { ResponsiveLayoutFlags } from './types';
3
3
  export declare function responsiveLayout<T extends new (...args: any[]) => React.Component>(WrappedComp: T): {
4
4
  new (...args: any[]): {
5
5
  layout: ResponsiveLayoutFlags;
6
- currentLayout: ResponsiveLayoutFlags;
6
+ currentLayout: ResponsiveLayoutFlags<import("./types").EmptyObject>;
7
7
  isMobileLayout: boolean;
8
8
  renderWithLayout: (currentLayout: ResponsiveLayoutFlags) => React.ReactNode;
9
9
  render(): JSX.Element;
@@ -1,3 +1,11 @@
1
- export interface ResponsiveLayoutFlags {
1
+ export declare type MediaQueriesType = Record<string, string>;
2
+ export declare type EmptyObject = Record<never, never>;
3
+ export interface ResponsiveLayoutOptions<MQ extends MediaQueriesType> {
4
+ customMediaQueries?: MQ;
5
+ }
6
+ export declare type ResponsiveLayoutFlags<T extends MediaQueriesType = EmptyObject> = {
7
+ [K in keyof T]?: boolean;
8
+ } & ResponsiveLayoutFlagsInternal;
9
+ export interface ResponsiveLayoutFlagsInternal {
2
10
  isMobile: boolean;
3
11
  }
@@ -1,2 +1,2 @@
1
- import { ResponsiveLayoutFlags } from './types';
2
- export declare function useResponsiveLayout(): ResponsiveLayoutFlags;
1
+ import { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags, ResponsiveLayoutOptions } from './types';
2
+ export declare function useResponsiveLayout<T extends MediaQueriesType = EmptyObject>({ customMediaQueries, }?: ResponsiveLayoutOptions<T>): ResponsiveLayoutFlags<T>;
@@ -1,34 +1,48 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.useResponsiveLayout = useResponsiveLayout;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react = require("react");
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.useResponsiveLayout = useResponsiveLayout;var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react = require("react");
2
2
 
3
3
  var _ThemeContext = require("../../lib/theming/ThemeContext");
4
4
 
5
5
 
6
6
  var _ResponsiveLayoutEvents = require("./ResponsiveLayoutEvents");
7
7
 
8
- function useResponsiveLayout() {
8
+ function useResponsiveLayout(_temp)
9
+
10
+ {var _ref = _temp === void 0 ? {} : _temp,customMediaQueries = _ref.customMediaQueries;
9
11
  var theme = (0, _react.useContext)(_ThemeContext.ThemeContext);
10
12
 
13
+ var allMediaQueries = Object.entries((0, _extends3.default)({
14
+ isMobile: theme.mobileMediaQuery },
15
+ customMediaQueries)).
16
+ map(function (_ref2) {var key = _ref2[0],value = _ref2[1];return {
17
+ flag: key,
18
+ query: value,
19
+ ref: /*#__PURE__*/(0, _react.createRef)() };});
20
+
21
+
11
22
  var getLayoutFromGlobal = function getLayoutFromGlobal() {
12
- var isMobile = (0, _ResponsiveLayoutEvents.checkMatches)(theme.mobileMediaQuery);
23
+ return allMediaQueries.reduce(
24
+ function (result, mediaQuery) {var _Object$assign;return Object.assign(result, (_Object$assign = {}, _Object$assign[mediaQuery.flag] = (0, _ResponsiveLayoutEvents.checkMatches)(mediaQuery.query), _Object$assign));},
25
+ {});
13
26
 
14
- return { isMobile: !!isMobile };
15
27
  };
16
28
 
17
29
  var _useState = (0, _react.useState)(getLayoutFromGlobal()),state = _useState[0],setState = _useState[1];
18
30
 
19
- var mobileListener = (0, _react.useRef)(null);
20
-
21
31
  var prepareMediaQueries = (0, _react.useCallback)(function () {
22
32
  if (!theme) {
23
33
  return;
24
34
  }
25
35
 
26
- mobileListener.current = (0, _ResponsiveLayoutEvents.addResponsiveLayoutListener)(theme.mobileMediaQuery, checkLayoutsMediaQueries);
36
+ allMediaQueries.forEach(
37
+ function (mediaQuery) {return (
38
+ mediaQuery.ref.current = (0, _ResponsiveLayoutEvents.addResponsiveLayoutListener)(mediaQuery.query, checkLayoutsMediaQueries));});
39
+
27
40
 
28
41
  // Checking for SSR use case
29
42
  var globalLayout = getLayoutFromGlobal();
43
+ var hasChangedQuery = Object.entries(globalLayout).find(function (_ref3) {var key = _ref3[0],value = _ref3[1];return state[key] !== value;});
30
44
 
31
- if (globalLayout.isMobile !== state.isMobile) {
45
+ if (hasChangedQuery) {
32
46
  setState(globalLayout);
33
47
  }
34
48
  }, [theme]);
@@ -39,12 +53,14 @@ function useResponsiveLayout() {
39
53
  return;
40
54
  }
41
55
 
42
- if (e.media === theme.mobileMediaQuery) {
43
- setState(function (prevState) {return (0, _extends2.default)({},
44
- prevState, {
45
- isMobile: e.matches });});
56
+ allMediaQueries.forEach(function (mediaQuery) {
57
+ if (e.media === mediaQuery.query) {
58
+ setState(function (prevState) {var _extends2;return (0, _extends3.default)({},
59
+ prevState, (_extends2 = {}, _extends2[
60
+ mediaQuery.flag] = e.matches, _extends2));});
46
61
 
47
- }
62
+ }
63
+ });
48
64
  },
49
65
  [theme]);
50
66
 
@@ -52,8 +68,8 @@ function useResponsiveLayout() {
52
68
  (0, _react.useEffect)(function () {
53
69
  prepareMediaQueries();
54
70
 
55
- return function () {var _mobileListener$curre;
56
- (_mobileListener$curre = mobileListener.current) == null ? void 0 : _mobileListener$curre.remove();
71
+ return function () {
72
+ allMediaQueries.forEach(function (mediaQuery) {var _mediaQuery$ref$curre;return (_mediaQuery$ref$curre = mediaQuery.ref.current) == null ? void 0 : _mediaQuery$ref$curre.remove();});
57
73
  };
58
74
  }, []);
59
75
 
@@ -1 +1 @@
1
- {"version":3,"sources":["useResponsiveLayout.ts"],"names":["useResponsiveLayout","theme","ThemeContext","getLayoutFromGlobal","isMobile","mobileMediaQuery","state","setState","mobileListener","prepareMediaQueries","current","checkLayoutsMediaQueries","globalLayout","e","media","prevState","matches","remove"],"mappings":"gQAAA;;AAEA;;;AAGA;;AAEO,SAASA,mBAAT,GAA+B;AACpC,MAAMC,KAAK,GAAG,uBAAWC,0BAAX,CAAd;;AAEA,MAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,GAA6B;AACvD,QAAMC,QAAQ,GAAG,0CAAaH,KAAK,CAACI,gBAAnB,CAAjB;;AAEA,WAAO,EAAED,QAAQ,EAAE,CAAC,CAACA,QAAd,EAAP;AACD,GAJD;;AAMA,kBAA0B,qBAASD,mBAAmB,EAA5B,CAA1B,CAAOG,KAAP,gBAAcC,QAAd;;AAEA,MAAMC,cAAqE,GAAG,mBAAO,IAAP,CAA9E;;AAEA,MAAMC,mBAAmB,GAAG,wBAAY,YAAM;AAC5C,QAAI,CAACR,KAAL,EAAY;AACV;AACD;;AAEDO,IAAAA,cAAc,CAACE,OAAf,GAAyB,yDAA4BT,KAAK,CAACI,gBAAlC,EAAoDM,wBAApD,CAAzB;;AAEA;AACA,QAAMC,YAAY,GAAGT,mBAAmB,EAAxC;;AAEA,QAAIS,YAAY,CAACR,QAAb,KAA0BE,KAAK,CAACF,QAApC,EAA8C;AAC5CG,MAAAA,QAAQ,CAACK,YAAD,CAAR;AACD;AACF,GAb2B,EAazB,CAACX,KAAD,CAbyB,CAA5B;;AAeA,MAAMU,wBAAwB,GAAG;AAC/B,YAACE,CAAD,EAA4B;AAC1B,QAAI,CAACZ,KAAL,EAAY;AACV;AACD;;AAED,QAAIY,CAAC,CAACC,KAAF,KAAYb,KAAK,CAACI,gBAAtB,EAAwC;AACtCE,MAAAA,QAAQ,CAAC,UAACQ,SAAD;AACJA,QAAAA,SADI;AAEPX,UAAAA,QAAQ,EAAES,CAAC,CAACG,OAFL,KAAD,CAAR;;AAID;AACF,GAZ8B;AAa/B,GAACf,KAAD,CAb+B,CAAjC;;;AAgBA,wBAAU,YAAM;AACdQ,IAAAA,mBAAmB;;AAEnB,WAAO,YAAM;AACX,+BAAAD,cAAc,CAACE,OAAf,2CAAwBO,MAAxB;AACD,KAFD;AAGD,GAND,EAMG,EANH;;AAQA,SAAOX,KAAP;AACD","sourcesContent":["import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { ResponsiveLayoutFlags } from './types';\nimport { addResponsiveLayoutListener, checkMatches } from './ResponsiveLayoutEvents';\n\nexport function useResponsiveLayout() {\n const theme = useContext(ThemeContext);\n\n const getLayoutFromGlobal = (): ResponsiveLayoutFlags => {\n const isMobile = checkMatches(theme.mobileMediaQuery);\n\n return { isMobile: !!isMobile };\n };\n\n const [state, setState] = useState(getLayoutFromGlobal());\n\n const mobileListener: React.MutableRefObject<{ remove: () => void } | null> = useRef(null);\n\n const prepareMediaQueries = useCallback(() => {\n if (!theme) {\n return;\n }\n\n mobileListener.current = addResponsiveLayoutListener(theme.mobileMediaQuery, checkLayoutsMediaQueries);\n\n // Checking for SSR use case\n const globalLayout = getLayoutFromGlobal();\n\n if (globalLayout.isMobile !== state.isMobile) {\n setState(globalLayout);\n }\n }, [theme]);\n\n const checkLayoutsMediaQueries = useCallback(\n (e: MediaQueryListEvent) => {\n if (!theme) {\n return;\n }\n\n if (e.media === theme.mobileMediaQuery) {\n setState((prevState: ResponsiveLayoutFlags) => ({\n ...prevState,\n isMobile: e.matches,\n }));\n }\n },\n [theme],\n );\n\n useEffect(() => {\n prepareMediaQueries();\n\n return () => {\n mobileListener.current?.remove();\n };\n }, []);\n\n return state;\n}\n"]}
1
+ {"version":3,"sources":["useResponsiveLayout.ts"],"names":["useResponsiveLayout","customMediaQueries","theme","ThemeContext","allMediaQueries","Object","entries","isMobile","mobileMediaQuery","map","key","value","flag","query","ref","getLayoutFromGlobal","reduce","result","mediaQuery","assign","state","setState","prepareMediaQueries","forEach","current","checkLayoutsMediaQueries","globalLayout","hasChangedQuery","find","e","media","prevState","matches","remove"],"mappings":"gQAAA;;AAEA;;;AAGA;;AAEO,SAASA,mBAAT;;AAE6B,+BAAJ,EAAI,SADlCC,kBACkC,QADlCA,kBACkC;AAClC,MAAMC,KAAK,GAAG,uBAAWC,0BAAX,CAAd;;AAEA,MAAMC,eAAe,GAAGC,MAAM,CAACC,OAAP;AACtBC,IAAAA,QAAQ,EAAEL,KAAK,CAACM,gBADM;AAEnBP,EAAAA,kBAFmB;AAGrBQ,EAAAA,GAHqB,CAGjB,sBAAEC,GAAF,YAAOC,KAAP,mBAAmB;AACxBC,MAAAA,IAAI,EAAEF,GADkB;AAExBG,MAAAA,KAAK,EAAEF,KAFiB;AAGxBG,MAAAA,GAAG,eAAE,uBAHmB,EAAnB,EAHiB,CAAxB;;;AASA,MAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAgC;AAC1D,WAAOX,eAAe,CAACY,MAAhB;AACL,cAACC,MAAD,EAASC,UAAT,6BAAwBb,MAAM,CAACc,MAAP,CAAcF,MAAd,uCAAyBC,UAAU,CAACN,IAApC,IAA2C,0CAAaM,UAAU,CAACL,KAAxB,CAA3C,kBAAxB,EADK;AAEL,MAFK,CAAP;;AAID,GALD;;AAOA,kBAA0B,qBAASE,mBAAmB,EAA5B,CAA1B,CAAOK,KAAP,gBAAcC,QAAd;;AAEA,MAAMC,mBAAmB,GAAG,wBAAY,YAAM;AAC5C,QAAI,CAACpB,KAAL,EAAY;AACV;AACD;;AAEDE,IAAAA,eAAe,CAACmB,OAAhB;AACE,cAACL,UAAD;AACGA,QAAAA,UAAU,CAACJ,GAAX,CAAeU,OAAf,GAAyB,yDAA4BN,UAAU,CAACL,KAAvC,EAA8CY,wBAA9C,CAD5B,GADF;;;AAKA;AACA,QAAMC,YAAY,GAAGX,mBAAmB,EAAxC;AACA,QAAMY,eAAe,GAAGtB,MAAM,CAACC,OAAP,CAAeoB,YAAf,EAA6BE,IAA7B,CAAkC,sBAAElB,GAAF,YAAOC,KAAP,mBAAkBS,KAAK,CAACV,GAAD,CAAL,KAAeC,KAAjC,EAAlC,CAAxB;;AAEA,QAAIgB,eAAJ,EAAqB;AACnBN,MAAAA,QAAQ,CAACK,YAAD,CAAR;AACD;AACF,GAjB2B,EAiBzB,CAACxB,KAAD,CAjByB,CAA5B;;AAmBA,MAAMuB,wBAAwB,GAAG;AAC/B,YAACI,CAAD,EAA4B;AAC1B,QAAI,CAAC3B,KAAL,EAAY;AACV;AACD;;AAEDE,IAAAA,eAAe,CAACmB,OAAhB,CAAwB,UAACL,UAAD,EAAgB;AACtC,UAAIW,CAAC,CAACC,KAAF,KAAYZ,UAAU,CAACL,KAA3B,EAAkC;AAChCQ,QAAAA,QAAQ,CAAC,UAACU,SAAD;AACJA,UAAAA,SADI;AAENb,UAAAA,UAAU,CAACN,IAFL,IAEYiB,CAAC,CAACG,OAFd,eAAD,CAAR;;AAID;AACF,KAPD;AAQD,GAd8B;AAe/B,GAAC9B,KAAD,CAf+B,CAAjC;;;AAkBA,wBAAU,YAAM;AACdoB,IAAAA,mBAAmB;;AAEnB,WAAO,YAAM;AACXlB,MAAAA,eAAe,CAACmB,OAAhB,CAAwB,UAACL,UAAD,6DAAgBA,UAAU,CAACJ,GAAX,CAAeU,OAA/B,qBAAgB,sBAAwBS,MAAxB,EAAhB,EAAxB;AACD,KAFD;AAGD,GAND,EAMG,EANH;;AAQA,SAAOb,KAAP;AACD","sourcesContent":["import React, { createRef, useCallback, useContext, useEffect, useState } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags, ResponsiveLayoutOptions } from './types';\nimport { addResponsiveLayoutListener, checkMatches } from './ResponsiveLayoutEvents';\n\nexport function useResponsiveLayout<T extends MediaQueriesType = EmptyObject>({\n customMediaQueries,\n}: ResponsiveLayoutOptions<T> = {}) {\n const theme = useContext(ThemeContext);\n\n const allMediaQueries = Object.entries({\n isMobile: theme.mobileMediaQuery,\n ...customMediaQueries,\n }).map(([key, value]) => ({\n flag: key,\n query: value,\n ref: createRef() as React.MutableRefObject<{ remove: () => void } | null>,\n }));\n\n const getLayoutFromGlobal = (): ResponsiveLayoutFlags<T> => {\n return allMediaQueries.reduce(\n (result, mediaQuery) => Object.assign(result, { [mediaQuery.flag]: checkMatches(mediaQuery.query) }),\n {},\n ) as ResponsiveLayoutFlags<T>;\n };\n\n const [state, setState] = useState(getLayoutFromGlobal());\n\n const prepareMediaQueries = useCallback(() => {\n if (!theme) {\n return;\n }\n\n allMediaQueries.forEach(\n (mediaQuery) =>\n (mediaQuery.ref.current = addResponsiveLayoutListener(mediaQuery.query, checkLayoutsMediaQueries)),\n );\n\n // Checking for SSR use case\n const globalLayout = getLayoutFromGlobal();\n const hasChangedQuery = Object.entries(globalLayout).find(([key, value]) => state[key] !== value);\n\n if (hasChangedQuery) {\n setState(globalLayout);\n }\n }, [theme]);\n\n const checkLayoutsMediaQueries = useCallback(\n (e: MediaQueryListEvent) => {\n if (!theme) {\n return;\n }\n\n allMediaQueries.forEach((mediaQuery) => {\n if (e.media === mediaQuery.query) {\n setState((prevState: ResponsiveLayoutFlags<T>) => ({\n ...prevState,\n [mediaQuery.flag]: e.matches,\n }));\n }\n });\n },\n [theme],\n );\n\n useEffect(() => {\n prepareMediaQueries();\n\n return () => {\n allMediaQueries.forEach((mediaQuery) => mediaQuery.ref.current?.remove());\n };\n }, []);\n\n return state;\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 {};
@@ -2,6 +2,9 @@
2
2
 
3
3
  var _MenuItem = require("../MenuItem");var
4
4
 
5
+
6
+
7
+
5
8
  Item = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Item, _React$Component);function Item() {return _React$Component.apply(this, arguments) || this;}var _proto = Item.prototype;_proto.
6
9
 
7
10
 
@@ -1 +1 @@
1
- {"version":3,"sources":["Item.tsx"],"names":["Item","render","props","children","React","Component","__KONTUR_REACT_UI__"],"mappings":"gPAAA;;AAEA,uC;;AAEaA,I;;;AAGJC,EAAAA,M,GAAP,kBAAgB;AACd,wBAAO,6BAAC,kBAAD,QAAW,KAAKC,KAAL,CAAWC,QAAtB,CAAP;AACD,G,eALuBC,eAAMC,S,sBAAnBL,I,CACGM,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":["Item","render","props","children","React","Component","__KONTUR_REACT_UI__"],"mappings":"gPAAA;;AAEA,uC;;;;;AAKaA,I;;;AAGJC,EAAAA,M,GAAP,kBAAgB;AACd,wBAAO,6BAAC,kBAAD,QAAW,KAAKC,KAAL,CAAWC,QAAtB,CAAP;AACD,G,eALuBC,eAAMC,S,sBAAnBL,I,CACGM,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"]}
@@ -168,6 +168,8 @@ var SelectDataTids = {
168
168
 
169
169
 
170
170
 
171
+
172
+
171
173
 
172
174
 
173
175