@skbkontur/react-ui 0.0.0-2ac4c133dd → 0.0.0-2dd5039746

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 (1102) hide show
  1. package/CHANGELOG.md +309 -0
  2. package/README.md +29 -25
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +13 -18
  4. package/cjs/components/Autocomplete/Autocomplete.js +47 -10
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Autocomplete/Autocomplete.md +15 -1
  7. package/cjs/components/Autocomplete/locale/index.d.ts +4 -0
  8. package/cjs/components/Autocomplete/locale/index.js +11 -0
  9. package/cjs/components/Autocomplete/locale/index.js.map +1 -0
  10. package/cjs/components/Autocomplete/locale/locales/en.d.ts +2 -0
  11. package/cjs/components/Autocomplete/locale/locales/en.js +6 -0
  12. package/cjs/components/Autocomplete/locale/locales/en.js.map +1 -0
  13. package/cjs/components/Autocomplete/locale/locales/ru.d.ts +2 -0
  14. package/cjs/components/Autocomplete/locale/locales/ru.js +6 -0
  15. package/cjs/components/Autocomplete/locale/locales/ru.js.map +1 -0
  16. package/cjs/components/Autocomplete/locale/types.d.ts +5 -0
  17. package/cjs/components/Autocomplete/locale/types.js +1 -0
  18. package/cjs/components/Autocomplete/locale/types.js.map +1 -0
  19. package/cjs/components/Button/Button.d.ts +9 -6
  20. package/cjs/components/Button/Button.js +14 -3
  21. package/cjs/components/Button/Button.js.map +1 -1
  22. package/cjs/components/Button/Button.mixins.js +1 -1
  23. package/cjs/components/Button/Button.mixins.js.map +1 -1
  24. package/cjs/components/Button/Button.styles.js +18 -18
  25. package/cjs/components/Button/Button.styles.js.map +1 -1
  26. package/cjs/components/Center/Center.d.ts +4 -3
  27. package/cjs/components/Center/Center.js +9 -3
  28. package/cjs/components/Center/Center.js.map +1 -1
  29. package/cjs/components/Checkbox/Checkbox.d.ts +5 -1
  30. package/cjs/components/Checkbox/Checkbox.js +12 -5
  31. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  32. package/cjs/components/Checkbox/Checkbox.md +49 -1
  33. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -1
  34. package/cjs/components/Checkbox/Checkbox.styles.js +1 -1
  35. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  36. package/cjs/components/ComboBox/ComboBox.d.ts +30 -15
  37. package/cjs/components/ComboBox/ComboBox.js +34 -2
  38. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  39. package/cjs/components/ComboBox/ComboBox.md +84 -1
  40. package/cjs/components/CurrencyInput/CurrencyHelper.js +1 -1
  41. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  42. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  43. package/cjs/components/CurrencyInput/CurrencyInput.js +29 -11
  44. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  45. package/cjs/components/CurrencyInput/CurrencyInput.md +13 -0
  46. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
  47. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js +14 -2
  48. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js.map +1 -1
  49. package/cjs/components/CurrencyInput/constants.d.ts +3 -0
  50. package/cjs/components/CurrencyInput/constants.js +6 -2
  51. package/cjs/components/CurrencyInput/constants.js.map +1 -1
  52. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +5 -9
  53. package/cjs/components/CurrencyLabel/CurrencyLabel.js +18 -15
  54. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  55. package/cjs/components/CurrencyLabel/CurrencyLabel.md +6 -0
  56. package/cjs/components/DateInput/DateFragmentsView.d.ts +1 -1
  57. package/cjs/components/DateInput/DateFragmentsView.js +10 -1
  58. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  59. package/cjs/components/DateInput/DateInput.d.ts +9 -12
  60. package/cjs/components/DateInput/DateInput.js +11 -3
  61. package/cjs/components/DateInput/DateInput.js.map +1 -1
  62. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js +1 -2
  63. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
  64. package/cjs/components/DateInput/helpers/SelectionHelpers.js +2 -2
  65. package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
  66. package/cjs/components/DatePicker/DatePicker.d.ts +14 -16
  67. package/cjs/components/DatePicker/DatePicker.js +24 -11
  68. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  69. package/cjs/components/DatePicker/DatePicker.md +18 -0
  70. package/cjs/components/DatePicker/Picker.js +5 -1
  71. package/cjs/components/DatePicker/Picker.js.map +1 -1
  72. package/cjs/components/Dropdown/Dropdown.d.ts +8 -2
  73. package/cjs/components/Dropdown/Dropdown.js +30 -4
  74. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  75. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +7 -7
  76. package/cjs/components/DropdownMenu/DropdownMenu.js +9 -3
  77. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  78. package/cjs/components/DropdownMenu/DropdownMenu.md +68 -1
  79. package/cjs/components/FileUploader/FileUploader.d.ts +11 -2
  80. package/cjs/components/FileUploader/FileUploader.js +83 -20
  81. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  82. package/cjs/components/FileUploader/FileUploader.md +13 -1
  83. package/cjs/components/FileUploader/FileUploader.mixins.d.ts +1 -0
  84. package/cjs/components/FileUploader/FileUploader.mixins.js +10 -0
  85. package/cjs/components/FileUploader/FileUploader.mixins.js.map +1 -0
  86. package/cjs/components/FileUploader/FileUploader.styles.d.ts +12 -1
  87. package/cjs/components/FileUploader/FileUploader.styles.js +119 -22
  88. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  89. package/cjs/components/FxInput/FxInput.d.ts +6 -6
  90. package/cjs/components/FxInput/FxInput.js +16 -11
  91. package/cjs/components/FxInput/FxInput.js.map +1 -1
  92. package/cjs/components/FxInput/FxInput.md +13 -0
  93. package/cjs/components/Gapped/Gapped.d.ts +7 -8
  94. package/cjs/components/Gapped/Gapped.js +12 -6
  95. package/cjs/components/Gapped/Gapped.js.map +1 -1
  96. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  97. package/cjs/components/GlobalLoader/GlobalLoader.js +13 -9
  98. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  99. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  100. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  101. package/cjs/components/Group/Group.d.ts +1 -0
  102. package/cjs/components/Group/Group.js +7 -11
  103. package/cjs/components/Group/Group.js.map +1 -1
  104. package/cjs/components/Hint/Hint.d.ts +9 -15
  105. package/cjs/components/Hint/Hint.js +14 -25
  106. package/cjs/components/Hint/Hint.js.map +1 -1
  107. package/cjs/components/Hint/Hint.md +43 -0
  108. package/cjs/components/Hint/Hint.styles.d.ts +0 -1
  109. package/cjs/components/Hint/Hint.styles.js +2 -10
  110. package/cjs/components/Hint/Hint.styles.js.map +1 -1
  111. package/cjs/components/Input/Input.d.ts +9 -4
  112. package/cjs/components/Input/Input.js +26 -9
  113. package/cjs/components/Input/Input.js.map +1 -1
  114. package/cjs/components/Input/Input.md +17 -1
  115. package/cjs/components/Input/Input.styles.d.ts +1 -0
  116. package/cjs/components/Input/Input.styles.js +17 -10
  117. package/cjs/components/Input/Input.styles.js.map +1 -1
  118. package/cjs/components/Kebab/Kebab.d.ts +13 -16
  119. package/cjs/components/Kebab/Kebab.js +20 -6
  120. package/cjs/components/Kebab/Kebab.js.map +1 -1
  121. package/cjs/components/Link/Link.d.ts +5 -7
  122. package/cjs/components/Link/Link.js +12 -5
  123. package/cjs/components/Link/Link.js.map +1 -1
  124. package/cjs/components/Loader/Loader.d.ts +20 -7
  125. package/cjs/components/Loader/Loader.js +25 -5
  126. package/cjs/components/Loader/Loader.js.map +1 -1
  127. package/cjs/components/Loader/Loader.md +30 -23
  128. package/cjs/components/Loader/__stories__/LoaderAndButton.js +6 -0
  129. package/cjs/components/Loader/__stories__/LoaderAndButton.js.map +1 -1
  130. package/cjs/components/MenuHeader/MenuHeader.d.ts +1 -1
  131. package/cjs/components/MenuHeader/MenuHeader.js +1 -1
  132. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  133. package/cjs/components/MenuItem/MenuItem.d.ts +19 -3
  134. package/cjs/components/MenuItem/MenuItem.js +75 -28
  135. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  136. package/cjs/components/MenuItem/MenuItem.styles.d.ts +5 -0
  137. package/cjs/components/MenuItem/MenuItem.styles.js +34 -14
  138. package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
  139. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +1 -1
  140. package/cjs/components/MenuSeparator/MenuSeparator.js +13 -2
  141. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  142. package/cjs/components/MenuSeparator/MenuSeparator.styles.d.ts +1 -0
  143. package/cjs/components/MenuSeparator/MenuSeparator.styles.js +8 -1
  144. package/cjs/components/MenuSeparator/MenuSeparator.styles.js.map +1 -1
  145. package/cjs/components/Modal/Modal.d.ts +4 -3
  146. package/cjs/components/Modal/Modal.js +9 -8
  147. package/cjs/components/Modal/Modal.js.map +1 -1
  148. package/cjs/components/Modal/Modal.styles.d.ts +2 -2
  149. package/cjs/components/Modal/Modal.styles.js +3 -3
  150. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  151. package/cjs/components/Modal/ModalBody.js +2 -2
  152. package/cjs/components/Modal/ModalBody.js.map +1 -1
  153. package/cjs/components/Modal/ModalFooter.d.ts +14 -0
  154. package/cjs/components/Modal/ModalFooter.js +23 -2
  155. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  156. package/cjs/components/Modal/ModalHeader.js +1 -1
  157. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  158. package/cjs/components/Paging/Paging.d.ts +7 -10
  159. package/cjs/components/Paging/Paging.js +34 -19
  160. package/cjs/components/Paging/Paging.js.map +1 -1
  161. package/cjs/components/Paging/Paging.md +13 -0
  162. package/cjs/components/Paging/Paging.styles.d.ts +6 -2
  163. package/cjs/components/Paging/Paging.styles.js +41 -15
  164. package/cjs/components/Paging/Paging.styles.js.map +1 -1
  165. package/cjs/components/Paging/PagingDefaultComponent.d.ts +3 -3
  166. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
  167. package/cjs/components/PasswordInput/PasswordInput.d.ts +4 -3
  168. package/cjs/components/PasswordInput/PasswordInput.js +14 -7
  169. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  170. package/cjs/components/Radio/Radio.d.ts +4 -3
  171. package/cjs/components/Radio/Radio.js +11 -4
  172. package/cjs/components/Radio/Radio.js.map +1 -1
  173. package/cjs/components/RadioGroup/RadioGroup.d.ts +7 -19
  174. package/cjs/components/RadioGroup/RadioGroup.js +19 -20
  175. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  176. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  177. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +5 -9
  178. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  179. package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  180. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +16 -13
  181. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  182. package/cjs/components/ResponsiveLayout/decorator.d.ts +1 -1
  183. package/cjs/components/ResponsiveLayout/types.d.ts +9 -1
  184. package/cjs/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  185. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +31 -15
  186. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  187. package/cjs/components/ScrollContainer/ScrollBar.d.ts +12 -2
  188. package/cjs/components/ScrollContainer/ScrollBar.js +67 -10
  189. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  190. package/cjs/components/ScrollContainer/ScrollContainer.constants.js +3 -2
  191. package/cjs/components/ScrollContainer/ScrollContainer.constants.js.map +1 -1
  192. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +29 -8
  193. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js +8 -4
  194. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
  195. package/cjs/components/ScrollContainer/ScrollContainer.js +56 -11
  196. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  197. package/cjs/components/ScrollContainer/ScrollContainer.md +52 -0
  198. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +9 -0
  199. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +48 -21
  200. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  201. package/cjs/components/Select/Item.d.ts +4 -2
  202. package/cjs/components/Select/Item.js +3 -0
  203. package/cjs/components/Select/Item.js.map +1 -1
  204. package/cjs/components/Select/Select.d.ts +13 -38
  205. package/cjs/components/Select/Select.js +21 -22
  206. package/cjs/components/Select/Select.js.map +1 -1
  207. package/cjs/components/Select/Select.md +14 -0
  208. package/cjs/components/Select/Select.styles.js +4 -4
  209. package/cjs/components/Select/Select.styles.js.map +1 -1
  210. package/cjs/components/Select/selectTheme.js +2 -0
  211. package/cjs/components/Select/selectTheme.js.map +1 -1
  212. package/cjs/components/SidePage/SidePage.d.ts +9 -6
  213. package/cjs/components/SidePage/SidePage.js +12 -1
  214. package/cjs/components/SidePage/SidePage.js.map +1 -1
  215. package/cjs/components/SidePage/SidePageFooter.d.ts +15 -5
  216. package/cjs/components/SidePage/SidePageFooter.js +20 -1
  217. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  218. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -1
  219. package/cjs/components/SidePage/SidePageHeader.js +1 -1
  220. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  221. package/cjs/components/Spinner/Spinner.d.ts +15 -4
  222. package/cjs/components/Spinner/Spinner.js +20 -5
  223. package/cjs/components/Spinner/Spinner.js.map +1 -1
  224. package/cjs/components/Spinner/Spinner.styles.d.ts +1 -1
  225. package/cjs/components/Spinner/Spinner.styles.js +7 -7
  226. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  227. package/cjs/components/Sticky/Sticky.d.ts +7 -6
  228. package/cjs/components/Sticky/Sticky.js +10 -3
  229. package/cjs/components/Sticky/Sticky.js.map +1 -1
  230. package/cjs/components/Switcher/Switcher.d.ts +12 -3
  231. package/cjs/components/Switcher/Switcher.js +69 -35
  232. package/cjs/components/Switcher/Switcher.js.map +1 -1
  233. package/cjs/components/Switcher/Switcher.md +97 -0
  234. package/cjs/components/Switcher/helpers.d.ts +1 -0
  235. package/cjs/components/Switcher/helpers.js +1 -0
  236. package/cjs/components/Switcher/helpers.js.map +1 -0
  237. package/cjs/components/Tabs/Indicator.d.ts +1 -1
  238. package/cjs/components/Tabs/Indicator.js +1 -1
  239. package/cjs/components/Tabs/Indicator.js.map +1 -1
  240. package/cjs/components/Tabs/Tab.d.ts +9 -13
  241. package/cjs/components/Tabs/Tab.js +14 -19
  242. package/cjs/components/Tabs/Tab.js.map +1 -1
  243. package/cjs/components/Tabs/Tabs.d.ts +9 -13
  244. package/cjs/components/Tabs/Tabs.js +17 -10
  245. package/cjs/components/Tabs/Tabs.js.map +1 -1
  246. package/cjs/components/Textarea/Textarea.d.ts +9 -10
  247. package/cjs/components/Textarea/Textarea.js +14 -7
  248. package/cjs/components/Textarea/Textarea.js.map +1 -1
  249. package/cjs/components/Textarea/Textarea.md +19 -0
  250. package/cjs/components/Textarea/TextareaCounter.d.ts +2 -2
  251. package/cjs/components/Textarea/TextareaCounter.js +5 -1
  252. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  253. package/cjs/components/Toast/Toast.d.ts +6 -3
  254. package/cjs/components/Toast/Toast.js +16 -9
  255. package/cjs/components/Toast/Toast.js.map +1 -1
  256. package/cjs/components/Toast/Toast.md +129 -0
  257. package/cjs/components/Toast/ToastStatic.d.ts +3 -2
  258. package/cjs/components/Toast/ToastStatic.js +5 -5
  259. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  260. package/cjs/components/Toggle/Toggle.d.ts +10 -7
  261. package/cjs/components/Toggle/Toggle.js +16 -4
  262. package/cjs/components/Toggle/Toggle.js.map +1 -1
  263. package/cjs/components/Token/Token.d.ts +6 -1
  264. package/cjs/components/Token/Token.js +13 -2
  265. package/cjs/components/Token/Token.js.map +1 -1
  266. package/cjs/components/Token/Token.styles.js +2 -1
  267. package/cjs/components/Token/Token.styles.js.map +1 -1
  268. package/cjs/components/TokenInput/TokenInput.d.ts +27 -17
  269. package/cjs/components/TokenInput/TokenInput.js +141 -68
  270. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  271. package/cjs/components/TokenInput/TokenInput.md +26 -0
  272. package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
  273. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  274. package/cjs/components/TokenInput/TokenInputMenu.d.ts +2 -1
  275. package/cjs/components/TokenInput/TokenInputMenu.js +1 -1
  276. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  277. package/cjs/components/Tooltip/Tooltip.d.ts +14 -21
  278. package/cjs/components/Tooltip/Tooltip.js +26 -38
  279. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  280. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +8 -7
  281. package/cjs/components/TooltipMenu/TooltipMenu.js +11 -5
  282. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  283. package/cjs/components/TooltipMenu/TooltipMenu.md +28 -1
  284. package/cjs/hooks/useEffectWithoutInitCall.d.ts +2 -2
  285. package/cjs/hooks/useEffectWithoutInitCall.js +2 -2
  286. package/cjs/hooks/useEffectWithoutInitCall.js.map +1 -1
  287. package/cjs/hooks/useMemoObject.d.ts +2 -1
  288. package/cjs/hooks/useMemoObject.js +2 -0
  289. package/cjs/hooks/useMemoObject.js.map +1 -1
  290. package/cjs/index.d.ts +2 -0
  291. package/cjs/index.js +54 -54
  292. package/cjs/index.js.map +1 -1
  293. package/cjs/internal/BGRuler.d.ts +13 -15
  294. package/cjs/internal/BGRuler.js +16 -8
  295. package/cjs/internal/BGRuler.js.map +1 -1
  296. package/cjs/internal/Calendar/Calendar.d.ts +4 -13
  297. package/cjs/internal/Calendar/Calendar.js +10 -5
  298. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  299. package/cjs/internal/Calendar/DayCellView.styles.js +1 -1
  300. package/cjs/internal/Calendar/DayCellView.styles.js.map +1 -1
  301. package/cjs/internal/Calendar/Month.js +16 -11
  302. package/cjs/internal/Calendar/Month.js.map +1 -1
  303. package/cjs/internal/Calendar/MonthViewModel.d.ts +1 -1
  304. package/cjs/internal/Calendar/config.d.ts +1 -8
  305. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
  306. package/cjs/internal/CommonWrapper/CommonWrapper.js +5 -4
  307. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  308. package/cjs/internal/ComponentCombinator.d.ts +6 -8
  309. package/cjs/internal/ComponentCombinator.js +6 -2
  310. package/cjs/internal/ComponentCombinator.js.map +1 -1
  311. package/cjs/internal/ComponentTable.d.ts +7 -8
  312. package/cjs/internal/ComponentTable.js +14 -3
  313. package/cjs/internal/ComponentTable.js.map +1 -1
  314. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -6
  315. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +16 -9
  316. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  317. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +9 -14
  318. package/cjs/internal/CustomComboBox/ComboBoxView.js +26 -12
  319. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  320. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +5 -2
  321. package/cjs/internal/CustomComboBox/CustomComboBox.js +7 -1
  322. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  323. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +8 -6
  324. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  325. package/cjs/internal/DataTids/DataTids.d.ts +5 -5
  326. package/cjs/internal/DataTids/DataTids.js +4 -0
  327. package/cjs/internal/DataTids/DataTids.js.map +1 -1
  328. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -6
  329. package/cjs/internal/DateSelect/DateSelect.js +16 -10
  330. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  331. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +8 -7
  332. package/cjs/internal/DropdownContainer/DropdownContainer.js +19 -11
  333. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  334. package/cjs/internal/DropdownContainer/getManualPosition.d.ts +19 -0
  335. package/cjs/internal/DropdownContainer/getManualPosition.js +41 -0
  336. package/cjs/internal/DropdownContainer/getManualPosition.js.map +1 -0
  337. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +2 -0
  338. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +2 -0
  339. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +1 -1
  340. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +4 -1
  341. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  342. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -0
  343. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +48 -11
  344. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  345. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +7 -0
  346. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +49 -7
  347. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +1 -1
  348. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +2 -0
  349. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +15 -3
  350. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  351. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +3 -0
  352. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +19 -1
  353. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -1
  354. package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -0
  355. package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.js +18 -0
  356. package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.js.map +1 -0
  357. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  358. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  359. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  360. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  361. package/cjs/internal/InputLikeText/InputLikeText.d.ts +5 -3
  362. package/cjs/internal/InputLikeText/InputLikeText.js +23 -8
  363. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  364. package/cjs/internal/InternalMenu/InternalMenu.d.ts +4 -9
  365. package/cjs/internal/InternalMenu/InternalMenu.js +60 -22
  366. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  367. package/cjs/internal/InternalMenu/InternalMenu.styles.d.ts +5 -4
  368. package/cjs/internal/InternalMenu/InternalMenu.styles.js +15 -18
  369. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  370. package/cjs/internal/MaskedInput/MaskedInput.d.ts +5 -2
  371. package/cjs/internal/MaskedInput/MaskedInput.js +20 -7
  372. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  373. package/cjs/internal/Menu/Menu.d.ts +5 -7
  374. package/cjs/internal/Menu/Menu.js +32 -10
  375. package/cjs/internal/Menu/Menu.js.map +1 -1
  376. package/cjs/internal/Menu/Menu.styles.d.ts +2 -0
  377. package/cjs/internal/Menu/Menu.styles.js +21 -7
  378. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  379. package/cjs/internal/MenuMessage/MenuMessage.d.ts +10 -0
  380. package/cjs/internal/MenuMessage/MenuMessage.js +43 -0
  381. package/cjs/internal/MenuMessage/MenuMessage.js.map +1 -0
  382. package/cjs/internal/MenuMessage/MenuMessage.styles.d.ts +5 -0
  383. package/cjs/internal/MenuMessage/MenuMessage.styles.js +33 -0
  384. package/cjs/internal/MenuMessage/MenuMessage.styles.js.map +1 -0
  385. package/cjs/internal/MenuMessage/index.d.ts +1 -0
  386. package/cjs/internal/MenuMessage/index.js +1 -0
  387. package/cjs/internal/MenuMessage/index.js.map +1 -0
  388. package/cjs/internal/MobilePopup/MobilePopup.d.ts +13 -12
  389. package/cjs/internal/MobilePopup/MobilePopup.js +6 -60
  390. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  391. package/cjs/internal/MobilePopup/MobilePopup.styles.d.ts +3 -3
  392. package/cjs/internal/MobilePopup/MobilePopup.styles.js +22 -24
  393. package/cjs/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
  394. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +3 -4
  395. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +26 -37
  396. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  397. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +2 -4
  398. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +8 -32
  399. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
  400. package/cjs/internal/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  401. package/cjs/internal/Popup/Popup.d.ts +18 -18
  402. package/cjs/internal/Popup/Popup.js +60 -22
  403. package/cjs/internal/Popup/Popup.js.map +1 -1
  404. package/cjs/internal/Popup/PopupHelper.d.ts +1 -1
  405. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  406. package/cjs/internal/Popup/PopupPin.d.ts +1 -1
  407. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  408. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -11
  409. package/cjs/internal/PopupMenu/PopupMenu.js +8 -1
  410. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  411. package/cjs/internal/RenderLayer/RenderLayer.d.ts +5 -4
  412. package/cjs/internal/RenderLayer/RenderLayer.js +12 -2
  413. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  414. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  415. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js +7 -0
  416. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js.map +1 -1
  417. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  418. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js +2 -3
  419. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js.map +1 -1
  420. package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  421. package/cjs/internal/ThemePlayground/FxInputPlayground.js +5 -5
  422. package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
  423. package/cjs/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  424. package/cjs/internal/ThemePlayground/HintPlayground.js.map +1 -1
  425. package/cjs/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  426. package/cjs/internal/ThemePlayground/PagingPlayground.js +5 -2
  427. package/cjs/internal/ThemePlayground/PagingPlayground.js.map +1 -1
  428. package/cjs/internal/ThemePlayground/Playground.d.ts +1 -1
  429. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  430. package/cjs/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  431. package/cjs/internal/ThemePlayground/SelectPlayground.js +6 -0
  432. package/cjs/internal/ThemePlayground/SelectPlayground.js.map +1 -1
  433. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  434. package/cjs/internal/ThemePlayground/SizesGroup.js +2 -0
  435. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  436. package/cjs/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  437. package/cjs/internal/ThemePlayground/SwitcherPlayground.js +6 -1
  438. package/cjs/internal/ThemePlayground/SwitcherPlayground.js.map +1 -1
  439. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -4
  440. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  441. package/cjs/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  442. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  443. package/cjs/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  444. package/cjs/internal/ThemePlayground/TogglePlayground.js +4 -10
  445. package/cjs/internal/ThemePlayground/TogglePlayground.js.map +1 -1
  446. package/cjs/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  447. package/cjs/internal/ThemePlayground/TokenInputPlayground.js +3 -0
  448. package/cjs/internal/ThemePlayground/TokenInputPlayground.js.map +1 -1
  449. package/cjs/internal/ThemePlayground/VariableValue.d.ts +6 -8
  450. package/cjs/internal/ThemePlayground/VariableValue.js +6 -1
  451. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  452. package/cjs/internal/ThemePlayground/helpers.d.ts +1 -1
  453. package/cjs/internal/ThemePlayground/helpers.js +4 -2
  454. package/cjs/internal/ThemePlayground/helpers.js.map +1 -1
  455. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  456. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  457. package/cjs/internal/ZIndex/ZIndex.d.ts +22 -12
  458. package/cjs/internal/ZIndex/ZIndex.js +54 -13
  459. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  460. package/cjs/internal/icons/16px/index.js +2 -1
  461. package/cjs/internal/icons/16px/index.js.map +1 -1
  462. package/cjs/internal/icons/20px/svg.js +2 -1
  463. package/cjs/internal/icons/20px/svg.js.map +1 -1
  464. package/cjs/internal/icons/CloudIcon.js +1 -1
  465. package/cjs/internal/icons/CloudIcon.js.map +1 -1
  466. package/cjs/internal/icons/CrossIcon.js +2 -1
  467. package/cjs/internal/icons/CrossIcon.js.map +1 -1
  468. package/cjs/internal/icons/SpinnerIcon.js +3 -1
  469. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  470. package/cjs/internal/themes/DarkTheme.d.ts +1 -0
  471. package/cjs/internal/themes/DarkTheme.js +2 -1
  472. package/cjs/internal/themes/DarkTheme.js.map +1 -1
  473. package/cjs/internal/themes/DefaultTheme.d.ts +43 -3
  474. package/cjs/internal/themes/DefaultTheme.js +106 -10
  475. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  476. package/cjs/internal/themes/Theme2022.d.ts +1 -0
  477. package/cjs/internal/themes/Theme2022.js +1 -0
  478. package/cjs/internal/themes/Theme2022.js.map +1 -1
  479. package/cjs/lib/ConditionalHandler.js.map +1 -1
  480. package/cjs/lib/InstanceWithAnchorElement.d.ts +1 -1
  481. package/cjs/lib/InstanceWithAnchorElement.js.map +1 -1
  482. package/cjs/lib/ModalStack.js +2 -2
  483. package/cjs/lib/ModalStack.js.map +1 -1
  484. package/cjs/lib/SSRSafe.d.ts +3 -1
  485. package/cjs/lib/SSRSafe.js +15 -1
  486. package/cjs/lib/SSRSafe.js.map +1 -1
  487. package/cjs/lib/Upgrades.js +5 -0
  488. package/cjs/lib/Upgrades.js.map +1 -1
  489. package/cjs/lib/animation/index.js +1 -0
  490. package/cjs/lib/animation/index.js.map +1 -1
  491. package/cjs/lib/callChildRef/callChildRef.js +1 -1
  492. package/cjs/lib/callChildRef/callChildRef.js.map +1 -1
  493. package/cjs/lib/createPropsGetter.d.ts +2 -1
  494. package/cjs/lib/createPropsGetter.js +3 -0
  495. package/cjs/lib/createPropsGetter.js.map +1 -1
  496. package/cjs/lib/currentEnvironment.js +33 -12
  497. package/cjs/lib/currentEnvironment.js.map +1 -1
  498. package/cjs/lib/date/InternalDateCalculator.d.ts +1 -1
  499. package/cjs/lib/date/InternalDateCalculator.js +1 -1
  500. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  501. package/cjs/lib/date/InternalDateValidator.d.ts +1 -1
  502. package/cjs/lib/date/InternalDateValidator.js +9 -2
  503. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  504. package/cjs/lib/extractKeyboardAction.d.ts +1 -1
  505. package/cjs/lib/extractKeyboardAction.js.map +1 -1
  506. package/cjs/lib/filterProps.js +0 -1
  507. package/cjs/lib/filterProps.js.map +1 -1
  508. package/cjs/lib/listenFocusOutside.d.ts +1 -1
  509. package/cjs/lib/listenFocusOutside.js.map +1 -1
  510. package/cjs/lib/locale/LOCALECONTEXT.md +1 -0
  511. package/cjs/lib/locale/useLocaleForControl.d.ts +1 -1
  512. package/cjs/lib/locale/useLocaleForControl.js.map +1 -1
  513. package/cjs/lib/memo.d.ts +3 -1
  514. package/cjs/lib/memo.js +3 -3
  515. package/cjs/lib/memo.js.map +1 -1
  516. package/cjs/lib/net/fetch.js +2 -2
  517. package/cjs/lib/net/fetch.js.map +1 -1
  518. package/cjs/lib/reactGetTextContent.js +0 -1
  519. package/cjs/lib/reactGetTextContent.js.map +1 -1
  520. package/cjs/lib/rootNode/getRootNode.d.ts +3 -3
  521. package/cjs/lib/rootNode/getRootNode.js +40 -15
  522. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  523. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -9
  524. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  525. package/cjs/lib/styles/ColorFactory.js +2 -2
  526. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  527. package/cjs/lib/styles/ColorFunctions.js.map +1 -1
  528. package/cjs/lib/theming/AnimationKeyframes.d.ts +3 -5
  529. package/cjs/lib/theming/AnimationKeyframes.js +8 -22
  530. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  531. package/cjs/lib/theming/Emotion.js +1 -0
  532. package/cjs/lib/theming/Emotion.js.map +1 -1
  533. package/cjs/lib/theming/ThemeContext.md +26 -18
  534. package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
  535. package/cjs/lib/theming/ThemeFactory.js +10 -1
  536. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  537. package/cjs/lib/theming/ThemeHelpers.d.ts +13 -4
  538. package/cjs/lib/theming/ThemeHelpers.js +25 -6
  539. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  540. package/cjs/lib/theming/themes/DarkTheme.js +1 -1
  541. package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
  542. package/cjs/lib/theming/themes/Theme2022Dark.d.ts +1 -1
  543. package/cjs/lib/theming/themes/Theme2022Dark.js +4 -3
  544. package/cjs/lib/theming/themes/Theme2022Dark.js.map +1 -1
  545. package/cjs/lib/utils.d.ts +6 -5
  546. package/cjs/lib/utils.js +8 -7
  547. package/cjs/lib/utils.js.map +1 -1
  548. package/cjs/lib/withClassWrapper.js +1 -4
  549. package/cjs/lib/withClassWrapper.js.map +1 -1
  550. package/cjs/typings/event-types.d.ts +2 -2
  551. package/cjs/typings/{html-props.d.ts → html.d.ts} +2 -2
  552. package/components/Autocomplete/Autocomplete/Autocomplete.js +53 -17
  553. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  554. package/components/Autocomplete/Autocomplete.d.ts +13 -18
  555. package/components/Autocomplete/Autocomplete.md +15 -1
  556. package/components/Autocomplete/locale/index/index.js +8 -0
  557. package/components/Autocomplete/locale/index/index.js.map +1 -0
  558. package/components/Autocomplete/locale/index/package.json +6 -0
  559. package/components/Autocomplete/locale/index.d.ts +4 -0
  560. package/components/Autocomplete/locale/locales/en/en.js +5 -0
  561. package/components/Autocomplete/locale/locales/en/en.js.map +1 -0
  562. package/components/Autocomplete/locale/locales/en/package.json +6 -0
  563. package/components/Autocomplete/locale/locales/en.d.ts +2 -0
  564. package/components/Autocomplete/locale/locales/ru/package.json +6 -0
  565. package/components/Autocomplete/locale/locales/ru/ru.js +5 -0
  566. package/components/Autocomplete/locale/locales/ru/ru.js.map +1 -0
  567. package/components/Autocomplete/locale/locales/ru.d.ts +2 -0
  568. package/components/Autocomplete/locale/package.json +6 -0
  569. package/components/Autocomplete/locale/types/package.json +6 -0
  570. package/components/Autocomplete/locale/types/types.js +1 -0
  571. package/components/Autocomplete/locale/types/types.js.map +1 -0
  572. package/components/Autocomplete/locale/types.d.ts +5 -0
  573. package/components/Button/Button/Button.js +16 -7
  574. package/components/Button/Button/Button.js.map +1 -1
  575. package/components/Button/Button.d.ts +9 -6
  576. package/components/Button/Button.mixins/Button.mixins.js +1 -1
  577. package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
  578. package/components/Button/Button.styles/Button.styles.js +18 -18
  579. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  580. package/components/Center/Center/Center.js +7 -5
  581. package/components/Center/Center/Center.js.map +1 -1
  582. package/components/Center/Center.d.ts +4 -3
  583. package/components/Checkbox/Checkbox/Checkbox.js +10 -4
  584. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  585. package/components/Checkbox/Checkbox.d.ts +5 -1
  586. package/components/Checkbox/Checkbox.md +49 -1
  587. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
  588. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  589. package/components/Checkbox/Checkbox.styles.d.ts +1 -1
  590. package/components/ComboBox/ComboBox/ComboBox.js +3 -1
  591. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  592. package/components/ComboBox/ComboBox.d.ts +30 -15
  593. package/components/ComboBox/ComboBox.md +84 -1
  594. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +3 -3
  595. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  596. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +43 -22
  597. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  598. package/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  599. package/components/CurrencyInput/CurrencyInput.md +13 -0
  600. package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js +4 -2
  601. package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js.map +1 -1
  602. package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
  603. package/components/CurrencyInput/constants/constants.js +4 -1
  604. package/components/CurrencyInput/constants/constants.js.map +1 -1
  605. package/components/CurrencyInput/constants.d.ts +3 -0
  606. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +25 -16
  607. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  608. package/components/CurrencyLabel/CurrencyLabel.d.ts +5 -9
  609. package/components/CurrencyLabel/CurrencyLabel.md +6 -0
  610. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +11 -1
  611. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  612. package/components/DateInput/DateFragmentsView.d.ts +1 -1
  613. package/components/DateInput/DateInput/DateInput.js +18 -5
  614. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  615. package/components/DateInput/DateInput.d.ts +9 -12
  616. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js +0 -1
  617. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js.map +1 -1
  618. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +2 -2
  619. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
  620. package/components/DatePicker/DatePicker/DatePicker.js +26 -21
  621. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  622. package/components/DatePicker/DatePicker.d.ts +14 -16
  623. package/components/DatePicker/DatePicker.md +18 -0
  624. package/components/DatePicker/Picker/Picker.js +5 -1
  625. package/components/DatePicker/Picker/Picker.js.map +1 -1
  626. package/components/Dropdown/Dropdown/Dropdown.js +21 -6
  627. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  628. package/components/Dropdown/Dropdown.d.ts +8 -2
  629. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +8 -2
  630. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  631. package/components/DropdownMenu/DropdownMenu.d.ts +7 -7
  632. package/components/DropdownMenu/DropdownMenu.md +68 -1
  633. package/components/FileUploader/FileUploader/FileUploader.js +62 -23
  634. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  635. package/components/FileUploader/FileUploader.d.ts +11 -2
  636. package/components/FileUploader/FileUploader.md +13 -1
  637. package/components/FileUploader/FileUploader.mixins/FileUploader.mixins.js +8 -0
  638. package/components/FileUploader/FileUploader.mixins/FileUploader.mixins.js.map +1 -0
  639. package/components/FileUploader/FileUploader.mixins/package.json +6 -0
  640. package/components/FileUploader/FileUploader.mixins.d.ts +1 -0
  641. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +51 -17
  642. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  643. package/components/FileUploader/FileUploader.styles.d.ts +12 -1
  644. package/components/FxInput/FxInput/FxInput.js +15 -10
  645. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  646. package/components/FxInput/FxInput.d.ts +6 -6
  647. package/components/FxInput/FxInput.md +13 -0
  648. package/components/Gapped/Gapped/Gapped.js +17 -8
  649. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  650. package/components/Gapped/Gapped.d.ts +7 -8
  651. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +35 -16
  652. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  653. package/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  654. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  655. package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  656. package/components/Group/Group/Group.js +5 -5
  657. package/components/Group/Group/Group.js.map +1 -1
  658. package/components/Group/Group.d.ts +1 -0
  659. package/components/Hint/Hint/Hint.js +42 -39
  660. package/components/Hint/Hint/Hint.js.map +1 -1
  661. package/components/Hint/Hint.d.ts +9 -15
  662. package/components/Hint/Hint.md +43 -0
  663. package/components/Hint/Hint.styles/Hint.styles.js +2 -5
  664. package/components/Hint/Hint.styles/Hint.styles.js.map +1 -1
  665. package/components/Hint/Hint.styles.d.ts +0 -1
  666. package/components/Input/Input/Input.js +36 -16
  667. package/components/Input/Input/Input.js.map +1 -1
  668. package/components/Input/Input.d.ts +9 -4
  669. package/components/Input/Input.md +17 -1
  670. package/components/Input/Input.styles/Input.styles.js +13 -10
  671. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  672. package/components/Input/Input.styles.d.ts +1 -0
  673. package/components/Kebab/Kebab/Kebab.js +21 -9
  674. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  675. package/components/Kebab/Kebab.d.ts +13 -16
  676. package/components/Link/Link/Link.js +10 -7
  677. package/components/Link/Link/Link.js.map +1 -1
  678. package/components/Link/Link.d.ts +5 -7
  679. package/components/Loader/Loader/Loader.js +24 -17
  680. package/components/Loader/Loader/Loader.js.map +1 -1
  681. package/components/Loader/Loader.d.ts +20 -7
  682. package/components/Loader/Loader.md +30 -23
  683. package/components/Loader/__stories__/LoaderAndButton/LoaderAndButton.js.map +1 -1
  684. package/components/MenuHeader/MenuHeader/MenuHeader.js +1 -1
  685. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  686. package/components/MenuHeader/MenuHeader.d.ts +1 -1
  687. package/components/MenuItem/MenuItem/MenuItem.js +51 -15
  688. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  689. package/components/MenuItem/MenuItem.d.ts +19 -3
  690. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +31 -9
  691. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
  692. package/components/MenuItem/MenuItem.styles.d.ts +5 -0
  693. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +11 -4
  694. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  695. package/components/MenuSeparator/MenuSeparator.d.ts +1 -1
  696. package/components/MenuSeparator/MenuSeparator.styles/MenuSeparator.styles.js +4 -1
  697. package/components/MenuSeparator/MenuSeparator.styles/MenuSeparator.styles.js.map +1 -1
  698. package/components/MenuSeparator/MenuSeparator.styles.d.ts +1 -0
  699. package/components/Modal/Modal/Modal.js +5 -3
  700. package/components/Modal/Modal/Modal.js.map +1 -1
  701. package/components/Modal/Modal.d.ts +4 -3
  702. package/components/Modal/Modal.styles/Modal.styles.js +3 -3
  703. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  704. package/components/Modal/Modal.styles.d.ts +2 -2
  705. package/components/Modal/ModalBody/ModalBody.js +2 -2
  706. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  707. package/components/Modal/ModalFooter/ModalFooter.js +9 -3
  708. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  709. package/components/Modal/ModalFooter.d.ts +14 -0
  710. package/components/Modal/ModalHeader/ModalHeader.js +2 -2
  711. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  712. package/components/Paging/Paging/Paging.js +36 -23
  713. package/components/Paging/Paging/Paging.js.map +1 -1
  714. package/components/Paging/Paging.d.ts +7 -10
  715. package/components/Paging/Paging.md +13 -0
  716. package/components/Paging/Paging.styles/Paging.styles.js +27 -15
  717. package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
  718. package/components/Paging/Paging.styles.d.ts +6 -2
  719. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
  720. package/components/Paging/PagingDefaultComponent.d.ts +3 -3
  721. package/components/PasswordInput/PasswordInput/PasswordInput.js +14 -13
  722. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  723. package/components/PasswordInput/PasswordInput.d.ts +4 -3
  724. package/components/Radio/Radio/Radio.js +11 -6
  725. package/components/Radio/Radio/Radio.js.map +1 -1
  726. package/components/Radio/Radio.d.ts +4 -3
  727. package/components/RadioGroup/RadioGroup/RadioGroup.js +21 -28
  728. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  729. package/components/RadioGroup/RadioGroup.d.ts +7 -19
  730. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -8
  731. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  732. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  733. package/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  734. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +20 -12
  735. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  736. package/components/ResponsiveLayout/decorator.d.ts +1 -1
  737. package/components/ResponsiveLayout/types.d.ts +9 -1
  738. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +42 -17
  739. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  740. package/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  741. package/components/ScrollContainer/ScrollBar/ScrollBar.js +67 -10
  742. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  743. package/components/ScrollContainer/ScrollBar.d.ts +12 -2
  744. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +34 -12
  745. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  746. package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js +3 -2
  747. package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js.map +1 -1
  748. package/components/ScrollContainer/ScrollContainer.d.ts +29 -8
  749. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js +8 -5
  750. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js.map +1 -1
  751. package/components/ScrollContainer/ScrollContainer.md +52 -0
  752. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +30 -7
  753. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  754. package/components/ScrollContainer/ScrollContainer.styles.d.ts +9 -0
  755. package/components/Select/Item/Item.js.map +1 -1
  756. package/components/Select/Item.d.ts +4 -2
  757. package/components/Select/Select/Select.js +35 -54
  758. package/components/Select/Select/Select.js.map +1 -1
  759. package/components/Select/Select.d.ts +13 -38
  760. package/components/Select/Select.md +14 -0
  761. package/components/Select/Select.styles/Select.styles.js +4 -4
  762. package/components/Select/Select.styles/Select.styles.js.map +1 -1
  763. package/components/Select/selectTheme/selectTheme.js +1 -0
  764. package/components/Select/selectTheme/selectTheme.js.map +1 -1
  765. package/components/SidePage/SidePage/SidePage.js +14 -6
  766. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  767. package/components/SidePage/SidePage.d.ts +9 -6
  768. package/components/SidePage/SidePageFooter/SidePageFooter.js +6 -1
  769. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  770. package/components/SidePage/SidePageFooter.d.ts +15 -5
  771. package/components/SidePage/SidePageHeader/SidePageHeader.js +1 -1
  772. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  773. package/components/SidePage/SidePageHeader.d.ts +1 -1
  774. package/components/Spinner/Spinner/Spinner.js +8 -6
  775. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  776. package/components/Spinner/Spinner.d.ts +15 -4
  777. package/components/Spinner/Spinner.styles/Spinner.styles.js +3 -3
  778. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  779. package/components/Spinner/Spinner.styles.d.ts +1 -1
  780. package/components/Sticky/Sticky/Sticky.js +8 -5
  781. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  782. package/components/Sticky/Sticky.d.ts +7 -6
  783. package/components/Switcher/Switcher/Switcher.js +77 -38
  784. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  785. package/components/Switcher/Switcher.d.ts +12 -3
  786. package/components/Switcher/Switcher.md +97 -0
  787. package/components/Switcher/helpers/helpers.js +3 -0
  788. package/components/Switcher/helpers/helpers.js.map +1 -0
  789. package/components/Switcher/helpers/package.json +6 -0
  790. package/components/Switcher/helpers.d.ts +1 -0
  791. package/components/Tabs/Indicator/Indicator.js +1 -1
  792. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  793. package/components/Tabs/Indicator.d.ts +1 -1
  794. package/components/Tabs/Tab/Tab.js +18 -15
  795. package/components/Tabs/Tab/Tab.js.map +1 -1
  796. package/components/Tabs/Tab.d.ts +9 -13
  797. package/components/Tabs/Tabs/Tabs.js +15 -18
  798. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  799. package/components/Tabs/Tabs.d.ts +9 -13
  800. package/components/Textarea/Textarea/Textarea.js +25 -16
  801. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  802. package/components/Textarea/Textarea.d.ts +9 -10
  803. package/components/Textarea/Textarea.md +19 -0
  804. package/components/Textarea/TextareaCounter/TextareaCounter.js +2 -1
  805. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  806. package/components/Textarea/TextareaCounter.d.ts +2 -2
  807. package/components/Toast/Toast/Toast.js +16 -9
  808. package/components/Toast/Toast/Toast.js.map +1 -1
  809. package/components/Toast/Toast.d.ts +6 -3
  810. package/components/Toast/Toast.md +129 -0
  811. package/components/Toast/ToastStatic/ToastStatic.js +5 -5
  812. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  813. package/components/Toast/ToastStatic.d.ts +3 -2
  814. package/components/Toggle/Toggle/Toggle.js +17 -9
  815. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  816. package/components/Toggle/Toggle.d.ts +10 -7
  817. package/components/Token/Token/Token.js +6 -2
  818. package/components/Token/Token/Token.js.map +1 -1
  819. package/components/Token/Token.d.ts +6 -1
  820. package/components/Token/Token.styles/Token.styles.js +1 -1
  821. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  822. package/components/TokenInput/TokenInput/TokenInput.js +180 -132
  823. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  824. package/components/TokenInput/TokenInput.d.ts +27 -17
  825. package/components/TokenInput/TokenInput.md +26 -0
  826. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  827. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  828. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -1
  829. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  830. package/components/TokenInput/TokenInputMenu.d.ts +2 -1
  831. package/components/Tooltip/Tooltip/Tooltip.js +65 -70
  832. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  833. package/components/Tooltip/Tooltip.d.ts +14 -21
  834. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +15 -13
  835. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  836. package/components/TooltipMenu/TooltipMenu.d.ts +8 -7
  837. package/components/TooltipMenu/TooltipMenu.md +28 -1
  838. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js +2 -2
  839. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js.map +1 -1
  840. package/hooks/useEffectWithoutInitCall.d.ts +2 -2
  841. package/hooks/useMemoObject/useMemoObject.js.map +1 -1
  842. package/hooks/useMemoObject.d.ts +2 -1
  843. package/index.d.ts +2 -0
  844. package/index.js +3 -1
  845. package/index.js.map +1 -1
  846. package/internal/BGRuler/BGRuler.js +11 -6
  847. package/internal/BGRuler/BGRuler.js.map +1 -1
  848. package/internal/BGRuler.d.ts +13 -15
  849. package/internal/Calendar/Calendar/Calendar.js +11 -5
  850. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  851. package/internal/Calendar/Calendar.d.ts +4 -13
  852. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js +1 -1
  853. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  854. package/internal/Calendar/Month/Month.js +20 -11
  855. package/internal/Calendar/Month/Month.js.map +1 -1
  856. package/internal/Calendar/MonthViewModel.d.ts +1 -1
  857. package/internal/Calendar/config.d.ts +1 -8
  858. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
  859. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  860. package/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
  861. package/internal/ComponentCombinator/ComponentCombinator.js +8 -5
  862. package/internal/ComponentCombinator/ComponentCombinator.js.map +1 -1
  863. package/internal/ComponentCombinator.d.ts +6 -8
  864. package/internal/ComponentTable/ComponentTable.js +16 -4
  865. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  866. package/internal/ComponentTable.d.ts +7 -8
  867. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +30 -35
  868. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  869. package/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -6
  870. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +32 -15
  871. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  872. package/internal/CustomComboBox/ComboBoxView.d.ts +9 -14
  873. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +3 -0
  874. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  875. package/internal/CustomComboBox/CustomComboBox.d.ts +5 -2
  876. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +9 -6
  877. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  878. package/internal/DataTids/DataTids/DataTids.js.map +1 -1
  879. package/internal/DataTids/DataTids.d.ts +5 -5
  880. package/internal/DateSelect/DateSelect/DateSelect.js +15 -12
  881. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  882. package/internal/DateSelect/DateSelect.d.ts +4 -6
  883. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +23 -14
  884. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  885. package/internal/DropdownContainer/DropdownContainer.d.ts +8 -7
  886. package/internal/DropdownContainer/getManualPosition/getManualPosition.js +36 -0
  887. package/internal/DropdownContainer/getManualPosition/getManualPosition.js.map +1 -0
  888. package/internal/DropdownContainer/getManualPosition/package.json +6 -0
  889. package/internal/DropdownContainer/getManualPosition.d.ts +19 -0
  890. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +1 -1
  891. package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +2 -0
  892. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +7 -1
  893. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  894. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +40 -13
  895. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  896. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -0
  897. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +26 -5
  898. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +1 -1
  899. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +7 -0
  900. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +13 -3
  901. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  902. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +2 -0
  903. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +10 -1
  904. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +1 -1
  905. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +3 -0
  906. package/internal/FileUploaderControl/hooks/useFileUploaderSize/package.json +6 -0
  907. package/internal/FileUploaderControl/hooks/useFileUploaderSize/useFileUploaderSize.js +21 -0
  908. package/internal/FileUploaderControl/hooks/useFileUploaderSize/useFileUploaderSize.js.map +1 -0
  909. package/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -0
  910. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  911. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  912. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  913. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  914. package/internal/InputLikeText/InputLikeText/InputLikeText.js +17 -7
  915. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  916. package/internal/InputLikeText/InputLikeText.d.ts +5 -3
  917. package/internal/InternalMenu/InternalMenu/InternalMenu.js +62 -23
  918. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  919. package/internal/InternalMenu/InternalMenu.d.ts +4 -9
  920. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +13 -10
  921. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  922. package/internal/InternalMenu/InternalMenu.styles.d.ts +5 -4
  923. package/internal/MaskedInput/MaskedInput/MaskedInput.js +16 -7
  924. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  925. package/internal/MaskedInput/MaskedInput.d.ts +5 -2
  926. package/internal/Menu/Menu/Menu.js +24 -10
  927. package/internal/Menu/Menu/Menu.js.map +1 -1
  928. package/internal/Menu/Menu.d.ts +5 -7
  929. package/internal/Menu/Menu.styles/Menu.styles.js +13 -7
  930. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  931. package/internal/Menu/Menu.styles.d.ts +2 -0
  932. package/internal/MenuMessage/MenuMessage/MenuMessage.js +31 -0
  933. package/internal/MenuMessage/MenuMessage/MenuMessage.js.map +1 -0
  934. package/internal/MenuMessage/MenuMessage/package.json +6 -0
  935. package/internal/MenuMessage/MenuMessage.d.ts +10 -0
  936. package/internal/MenuMessage/MenuMessage.styles/MenuMessage.styles.js +23 -0
  937. package/internal/MenuMessage/MenuMessage.styles/MenuMessage.styles.js.map +1 -0
  938. package/internal/MenuMessage/MenuMessage.styles/package.json +6 -0
  939. package/internal/MenuMessage/MenuMessage.styles.d.ts +5 -0
  940. package/internal/MenuMessage/index/index.js +1 -0
  941. package/internal/MenuMessage/index/index.js.map +1 -0
  942. package/internal/MenuMessage/index/package.json +6 -0
  943. package/internal/MenuMessage/index.d.ts +1 -0
  944. package/internal/MenuMessage/package.json +6 -0
  945. package/internal/MobilePopup/MobilePopup/MobilePopup.js +23 -53
  946. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  947. package/internal/MobilePopup/MobilePopup.d.ts +13 -12
  948. package/internal/MobilePopup/MobilePopup.styles/MobilePopup.styles.js +11 -11
  949. package/internal/MobilePopup/MobilePopup.styles/MobilePopup.styles.js.map +1 -1
  950. package/internal/MobilePopup/MobilePopup.styles.d.ts +3 -3
  951. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +11 -35
  952. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  953. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +3 -4
  954. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles/MobilePopupHeader.styles.js +6 -12
  955. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles/MobilePopupHeader.styles.js.map +1 -1
  956. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +2 -4
  957. package/internal/PerformanceMetrics/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  958. package/internal/Popup/Popup/Popup.js +69 -38
  959. package/internal/Popup/Popup/Popup.js.map +1 -1
  960. package/internal/Popup/Popup.d.ts +18 -18
  961. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  962. package/internal/Popup/PopupHelper.d.ts +1 -1
  963. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  964. package/internal/Popup/PopupPin.d.ts +1 -1
  965. package/internal/PopupMenu/PopupMenu/PopupMenu.js +12 -4
  966. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  967. package/internal/PopupMenu/PopupMenu.d.ts +8 -11
  968. package/internal/RenderLayer/RenderLayer/RenderLayer.js +10 -6
  969. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  970. package/internal/RenderLayer/RenderLayer.d.ts +5 -4
  971. package/internal/ThemePlayground/AnotherInputsPlayground/AnotherInputsPlayground.js.map +1 -1
  972. package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  973. package/internal/ThemePlayground/CurrencyInputPlayground/CurrencyInputPlayground.js.map +1 -1
  974. package/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  975. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js +10 -6
  976. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
  977. package/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  978. package/internal/ThemePlayground/HintPlayground/HintPlayground.js.map +1 -1
  979. package/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  980. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js +2 -2
  981. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js.map +1 -1
  982. package/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  983. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  984. package/internal/ThemePlayground/Playground.d.ts +1 -1
  985. package/internal/ThemePlayground/SelectPlayground/SelectPlayground.js.map +1 -1
  986. package/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  987. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
  988. package/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  989. package/internal/ThemePlayground/SwitcherPlayground/SwitcherPlayground.js.map +1 -1
  990. package/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  991. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +13 -3
  992. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  993. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  994. package/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  995. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js +5 -17
  996. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js.map +1 -1
  997. package/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  998. package/internal/ThemePlayground/TokenInputPlayground/TokenInputPlayground.js.map +1 -1
  999. package/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  1000. package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -2
  1001. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  1002. package/internal/ThemePlayground/VariableValue.d.ts +6 -8
  1003. package/internal/ThemePlayground/helpers/helpers.js +0 -1
  1004. package/internal/ThemePlayground/helpers/helpers.js.map +1 -1
  1005. package/internal/ThemePlayground/helpers.d.ts +1 -1
  1006. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  1007. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  1008. package/internal/ZIndex/ZIndex/ZIndex.js +48 -24
  1009. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  1010. package/internal/ZIndex/ZIndex.d.ts +22 -12
  1011. package/internal/icons/16px/index/index.js +2 -1
  1012. package/internal/icons/16px/index/index.js.map +1 -1
  1013. package/internal/icons/20px/svg/svg.js +2 -1
  1014. package/internal/icons/20px/svg/svg.js.map +1 -1
  1015. package/internal/icons/CloudIcon/CloudIcon.js +3 -1
  1016. package/internal/icons/CloudIcon/CloudIcon.js.map +1 -1
  1017. package/internal/icons/CrossIcon/CrossIcon.js +2 -1
  1018. package/internal/icons/CrossIcon/CrossIcon.js.map +1 -1
  1019. package/internal/icons/SpinnerIcon/SpinnerIcon.js +3 -1
  1020. package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
  1021. package/internal/themes/DarkTheme/DarkTheme.js +1 -0
  1022. package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
  1023. package/internal/themes/DarkTheme.d.ts +1 -0
  1024. package/internal/themes/DefaultTheme/DefaultTheme.js +166 -17
  1025. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  1026. package/internal/themes/DefaultTheme.d.ts +43 -3
  1027. package/internal/themes/Theme2022/Theme2022.js +1 -0
  1028. package/internal/themes/Theme2022/Theme2022.js.map +1 -1
  1029. package/internal/themes/Theme2022.d.ts +1 -0
  1030. package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
  1031. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -1
  1032. package/lib/InstanceWithAnchorElement.d.ts +1 -1
  1033. package/lib/ModalStack/ModalStack.js +2 -2
  1034. package/lib/ModalStack/ModalStack.js.map +1 -1
  1035. package/lib/SSRSafe/SSRSafe.js +12 -0
  1036. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  1037. package/lib/SSRSafe.d.ts +3 -1
  1038. package/lib/Upgrades/Upgrades.js +4 -1
  1039. package/lib/Upgrades/Upgrades.js.map +1 -1
  1040. package/lib/animation/index/index.js +1 -1
  1041. package/lib/animation/index/index.js.map +1 -1
  1042. package/lib/callChildRef/callChildRef/callChildRef.js +1 -1
  1043. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -1
  1044. package/lib/createPropsGetter/createPropsGetter.js +1 -0
  1045. package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
  1046. package/lib/createPropsGetter.d.ts +2 -1
  1047. package/lib/currentEnvironment/currentEnvironment.js +34 -14
  1048. package/lib/currentEnvironment/currentEnvironment.js.map +1 -1
  1049. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +1 -2
  1050. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  1051. package/lib/date/InternalDateCalculator.d.ts +1 -1
  1052. package/lib/date/InternalDateValidator/InternalDateValidator.js +8 -2
  1053. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  1054. package/lib/date/InternalDateValidator.d.ts +1 -1
  1055. package/lib/extractKeyboardAction/extractKeyboardAction.js.map +1 -1
  1056. package/lib/extractKeyboardAction.d.ts +1 -1
  1057. package/lib/filterProps/filterProps.js +0 -1
  1058. package/lib/filterProps/filterProps.js.map +1 -1
  1059. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  1060. package/lib/listenFocusOutside.d.ts +1 -1
  1061. package/lib/locale/LOCALECONTEXT.md +1 -0
  1062. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -1
  1063. package/lib/locale/useLocaleForControl.d.ts +1 -1
  1064. package/lib/memo/memo.js +2 -4
  1065. package/lib/memo/memo.js.map +1 -1
  1066. package/lib/memo.d.ts +3 -1
  1067. package/lib/net/fetch/fetch.js +2 -2
  1068. package/lib/net/fetch/fetch.js.map +1 -1
  1069. package/lib/reactGetTextContent/reactGetTextContent.js +0 -1
  1070. package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
  1071. package/lib/rootNode/getRootNode/getRootNode.js +32 -14
  1072. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  1073. package/lib/rootNode/getRootNode.d.ts +3 -3
  1074. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  1075. package/lib/rootNode/rootNodeDecorator.d.ts +9 -9
  1076. package/lib/styles/ColorFactory/ColorFactory.js +3 -1
  1077. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  1078. package/lib/styles/ColorFunctions/ColorFunctions.js.map +1 -1
  1079. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +8 -14
  1080. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  1081. package/lib/theming/AnimationKeyframes.d.ts +3 -5
  1082. package/lib/theming/Emotion/Emotion.js.map +1 -1
  1083. package/lib/theming/ThemeContext.md +26 -18
  1084. package/lib/theming/ThemeFactory/ThemeFactory.js +11 -2
  1085. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  1086. package/lib/theming/ThemeFactory.d.ts +1 -1
  1087. package/lib/theming/ThemeHelpers/ThemeHelpers.js +19 -5
  1088. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  1089. package/lib/theming/ThemeHelpers.d.ts +13 -4
  1090. package/lib/theming/themes/DarkTheme/DarkTheme.js +2 -2
  1091. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  1092. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js +2 -1
  1093. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js.map +1 -1
  1094. package/lib/theming/themes/Theme2022Dark.d.ts +1 -1
  1095. package/lib/utils/utils.js +2 -3
  1096. package/lib/utils/utils.js.map +1 -1
  1097. package/lib/utils.d.ts +6 -5
  1098. package/lib/withClassWrapper/withClassWrapper.js +1 -4
  1099. package/lib/withClassWrapper/withClassWrapper.js.map +1 -1
  1100. package/package.json +9 -25
  1101. package/typings/event-types.d.ts +2 -2
  1102. package/typings/{html-props.d.ts → html.d.ts} +2 -2
@@ -15,6 +15,7 @@ var _ThemeFactory = require("../../lib/theming/ThemeFactory");
15
15
  var _CommonWrapper = require("../../internal/CommonWrapper");
16
16
  var _Emotion = require("../../lib/theming/Emotion");
17
17
  var _rootNode = require("../../lib/rootNode");
18
+ var _createPropsGetter = require("../../lib/createPropsGetter");
18
19
 
19
20
  var _Kebab = require("./Kebab.styles");var _class, _class2, _temp;function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}var
20
21
 
@@ -38,6 +39,14 @@ var _Kebab = require("./Kebab.styles");var _class, _class2, _temp;function _getR
38
39
 
39
40
 
40
41
 
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
41
50
 
42
51
 
43
52
 
@@ -61,6 +70,8 @@ Kebab = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functio
61
70
 
62
71
 
63
72
 
73
+ getProps = (0, _createPropsGetter.createPropsGetter)(Kebab.defaultProps);_this.
74
+
64
75
  state = {
65
76
  focusedByTab: false,
66
77
  anchor: null };_this.
@@ -126,6 +137,7 @@ Kebab = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functio
126
137
 
127
138
 
128
139
 
140
+
129
141
 
130
142
 
131
143
  renderCaption = function (captionProps) {var _cx;
@@ -153,8 +165,9 @@ Kebab = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functio
153
165
  _Kebab.styles.kebab(_this.theme)] = true, _cx[
154
166
  _Kebab.styles.opened(_this.theme)] = captionProps.opened, _cx[
155
167
  _Kebab.styles.disabled()] = disabled, _cx[
156
- _Kebab.styles.focused(_this.theme)] = _this.state.focusedByTab, _cx)) },
168
+ _Kebab.styles.focused(_this.theme)] = _this.state.focusedByTab, _cx)),
157
169
 
170
+ "aria-describedby": _this.props['aria-describedby'] },
158
171
 
159
172
  _this.renderIcon()));
160
173
 
@@ -193,19 +206,20 @@ Kebab = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functio
193
206
  _this.setState({
194
207
  focusedByTab: false });
195
208
 
196
- };return _this;}var _proto = Kebab.prototype;_proto.componentDidMount = function componentDidMount() {/** addListener'у нужен колбэк в аргумент */this.listener = LayoutEvents.addListener(function () {return undefined;});};_proto.componentWillUnmount = function componentWillUnmount() {this.listener.remove();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _ThemeFactory.ThemeFactory.create({ popupPinOffset: theme.kebabPinOffset, popupMargin: theme.kebabMargin, popupPinSize: theme.kebabPinSize }, theme) }, _this2.renderMain());});};_proto.renderMain = function renderMain() {var _this$props = this.props,disabled = _this$props.disabled,positions = _this$props.positions;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_PopupMenu.PopupMenu, { popupHasPin: true, positions: positions, onChangeMenuState: this.handleChangeMenuState, caption: this.renderCaption, disableAnimations: this.props.disableAnimations, menuMaxHeight: this.props.menuMaxHeight, onOpen: this.props.onOpen, onClose: this.props.onClose }, !disabled && this.props.children));};_proto.
209
+ };return _this;}var _proto = Kebab.prototype;_proto.componentDidMount = function componentDidMount() {/** addListener'у нужен колбэк в аргумент */this.listener = LayoutEvents.addListener(function () {return undefined;});};_proto.componentWillUnmount = function componentWillUnmount() {this.listener.remove();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _ThemeFactory.ThemeFactory.create({ popupPinOffset: theme.kebabPinOffset, popupMargin: theme.kebabMargin, popupPinSize: theme.kebabPinSize }, theme) }, _this2.renderMain());});};_proto.renderMain = function renderMain() {var disabled = this.props.disabled;var _this$getProps = this.getProps(),positions = _this$getProps.positions,disableAnimations = _this$getProps.disableAnimations,onOpen = _this$getProps.onOpen,onClose = _this$getProps.onClose;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_PopupMenu.PopupMenu, { popupHasPin: true, positions: positions, onChangeMenuState: this.handleChangeMenuState, caption: this.renderCaption, disableAnimations: disableAnimations, menuMaxHeight: this.props.menuMaxHeight, onOpen: onOpen, onClose: onClose }, !disabled && this.props.children));};_proto.
197
210
 
198
211
  renderIcon = function renderIcon() {var _cx2;
212
+ var _this$getProps2 = this.getProps(),size = _this$getProps2.size,icon = _this$getProps2.icon;
199
213
  return /*#__PURE__*/(
200
214
  _react.default.createElement("div", {
201
215
  className: (0, _Emotion.cx)((_cx2 = {}, _cx2[
202
216
  _Kebab.styles.icon()] = true, _cx2[
203
- _Kebab.styles.iconsmall()] = this.props.size === 'small', _cx2[
204
- _Kebab.styles.iconmedium()] = this.props.size === 'medium', _cx2[
205
- _Kebab.styles.iconlarge()] = this.props.size === 'large', _cx2)) },
217
+ _Kebab.styles.iconsmall()] = size === 'small', _cx2[
218
+ _Kebab.styles.iconmedium()] = size === 'medium', _cx2[
219
+ _Kebab.styles.iconlarge()] = size === 'large', _cx2)) },
206
220
 
207
221
 
208
- this.props.icon));
222
+ icon));
209
223
 
210
224
 
211
225
  };return Kebab;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Kebab', _class2.propTypes = {}, _class2.defaultProps = { onOpen: function onOpen() {return undefined;}, onClose: function onClose() {return undefined;}, positions: ['bottom left', 'bottom right', 'top left', 'top right'], size: 'small', disableAnimations: _currentEnvironment.isTestEnv, icon: /*#__PURE__*/_react.default.createElement(_px.MenuKebabIcon, null) }, _temp)) || _class;exports.Kebab = Kebab;
@@ -1 +1 @@
1
- {"version":3,"sources":["Kebab.tsx"],"names":["Kebab","rootNode","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","disabled","props","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","handleFocus","handleBlur","styles","kebab","theme","opened","focused","renderIcon","e","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","requestAnimationFrame","keyListener","isTabPressed","componentDidMount","LayoutEvents","addListener","componentWillUnmount","render","ThemeFactory","create","popupPinOffset","kebabPinOffset","popupMargin","kebabMargin","popupPinSize","kebabPinSize","renderMain","positions","setRootNode","disableAnimations","menuMaxHeight","onOpen","onClose","children","icon","iconsmall","size","iconmedium","iconlarge","React","Component","__KONTUR_REACT_UI__","propTypes","defaultProps","isTestEnv","PropTypes","node","bool","oneOfType","string","number","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { PopupMenu, PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MenuKebabIcon } from '../../internal/icons/16px';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Kebab.styles';\n\nexport interface KebabProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {\n disabled?: boolean;\n size: 'small' | 'medium' | 'large';\n /**\n * Список позиций доступных для расположения выпадашки.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions: PopupPositionsType[];\n menuMaxHeight?: number | string;\n /**\n * Не показывать анимацию\n */\n disableAnimations: boolean;\n /**\n * Кастомная иконка\n */\n icon?: React.ReactNode;\n}\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\n@rootNode\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n\n public static propTypes = {};\n\n public static defaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n size: 'small',\n disableAnimations: isTestEnv,\n icon: <MenuKebabIcon />,\n };\n\n public state = {\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.kebabPinOffset,\n popupMargin: theme.kebabMargin,\n popupPinSize: theme.kebabPinSize,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled, positions } = this.props;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n popupHasPin\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={this.props.disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled } = this.props;\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx({\n [styles.kebab(this.theme)]: true,\n [styles.opened(this.theme)]: captionProps.opened,\n [styles.disabled()]: disabled,\n [styles.focused(this.theme)]: this.state.focusedByTab,\n })}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n return (\n <div\n className={cx({\n [styles.icon()]: true,\n [styles.iconsmall()]: this.props.size === 'small',\n [styles.iconmedium()]: this.props.size === 'medium',\n [styles.iconlarge()]: this.props.size === 'large',\n })}\n >\n {this.props.icon}\n </div>\n );\n }\n}\n\nKebab.propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n menuMaxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * Размер кебаба small 14px | large 20px\n */\n size: PropTypes.string,\n\n /**\n * Коллбек, вызывающийся перед закрытием кебаба\n */\n onClose: PropTypes.func,\n\n /**\n * Коллбек, вызывающийся перед открытием кебаба\n */\n onOpen: PropTypes.func,\n};\n"]}
1
+ {"version":3,"sources":["Kebab.tsx"],"names":["Kebab","rootNode","getProps","defaultProps","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","disabled","props","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","handleFocus","handleBlur","styles","kebab","theme","opened","focused","renderIcon","e","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","requestAnimationFrame","keyListener","isTabPressed","componentDidMount","LayoutEvents","addListener","componentWillUnmount","render","ThemeFactory","create","popupPinOffset","kebabPinOffset","popupMargin","kebabMargin","popupPinSize","kebabPinSize","renderMain","positions","disableAnimations","onOpen","onClose","setRootNode","menuMaxHeight","children","size","icon","iconsmall","iconmedium","iconlarge","React","Component","__KONTUR_REACT_UI__","propTypes","isTestEnv","PropTypes","node","bool","oneOfType","string","number","func"],"mappings":"mUAAA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCaA,K,OADZC,kB;;;;;;;;;;;;;;AAeSC,IAAAA,Q,GAAW,0CAAkBF,KAAK,CAACG,YAAxB,C;;AAEZC,IAAAA,K,GAAoB;AACzBC,MAAAA,YAAY,EAAE,KADW;AAEzBC,MAAAA,MAAM,EAAE,IAFiB,E;;;;;;AAQnBC,IAAAA,Q;;AAEJ;AACFC,MAAAA,MAAM,EAAE,0BAAMC,SAAN,EADN,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DIC,IAAAA,a,GAAgB,UAACC,YAAD,EAAyC;AAC/D,UAAQC,QAAR,GAAqB,MAAKC,KAA1B,CAAQD,QAAR;AACA,UAAME,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,KAAD,EAAgD;AAC3E,YAAI,CAACH,QAAL,EAAe;AACb,gBAAKE,oBAAL,CAA0BC,KAA1B,EAAiCJ,YAAY,CAACK,QAA9C;AACD;AACF,OAJD;;AAMA,UAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/B,YAAI,CAACL,QAAL,EAAe;AACbD,UAAAA,YAAY,CAACO,UAAb;AACD;AACF,OAJD;;AAMA;AACE;AACE,UAAA,QAAQ,EAAEN,QAAQ,GAAG,CAAC,CAAJ,GAAQ,CAD5B;AAEE,UAAA,OAAO,EAAEK,kBAFX;AAGE,UAAA,SAAS,EAAEH,oBAHb;AAIE,UAAA,OAAO,EAAE,MAAKK,WAJhB;AAKE,UAAA,MAAM,EAAE,MAAKC,UALf;AAME,UAAA,SAAS,EAAE;AACRC,wBAAOC,KAAP,CAAa,MAAKC,KAAlB,CADQ,IACmB,IADnB;AAERF,wBAAOG,MAAP,CAAc,MAAKD,KAAnB,CAFQ,IAEoBZ,YAAY,CAACa,MAFjC;AAGRH,wBAAOT,QAAP,EAHQ,IAGYA,QAHZ;AAIRS,wBAAOI,OAAP,CAAe,MAAKF,KAApB,CAJQ,IAIqB,MAAKnB,KAAL,CAAWC,YAJhC,OANb;;AAYE,8BAAkB,MAAKQ,KAAL,CAAW,kBAAX,CAZpB;;AAcG,cAAKa,UAAL,EAdH,CADF;;;AAkBD,K;;AAEOZ,IAAAA,oB,GAAuB;AAC7Ba,IAAAA,CAD6B;AAE7BX,IAAAA,QAF6B;AAG1B;AACH,UAAI,2BAASY,uBAAT,EAAqBC,uBAArB,EAAiCC,+BAAjC,EAAqDH,CAArD,CAAJ,EAA6D;AAC3DA,QAAAA,CAAC,CAACI,cAAF;AACAf,QAAAA,QAAQ,CAAC,IAAD,CAAR;AACD;AACF,K;;AAEOgB,IAAAA,qB,GAAwB,UAACC,QAAD,EAAoBC,YAApB,EAAoD;AAClF,YAAKC,QAAL,CAAc;AACZ9B,QAAAA,YAAY,EAAE,CAAC4B,QAAD,IAAaC,YADf,EAAd;;AAGD,K;;AAEOf,IAAAA,W,GAAc,YAAM;AAC1B,UAAI,CAAC,MAAKN,KAAL,CAAWD,QAAhB,EAA0B;AACxB;AACA;AACAwB,QAAAA,qBAAqB,CAAC,YAAM;AAC1B,cAAIC,yBAAYC,YAAhB,EAA8B;AAC5B,kBAAKH,QAAL,CAAc,EAAE9B,YAAY,EAAE,IAAhB,EAAd;AACD;AACF,SAJoB,CAArB;AAKD;AACF,K;;AAEOe,IAAAA,U,GAAa,YAAM;AACzB,YAAKe,QAAL,CAAc;AACZ9B,QAAAA,YAAY,EAAE,KADF,EAAd;;AAGD,K,mDAxHMkC,iB,GAAP,6BAA2B,CACzB,4CACA,KAAKhC,QAAL,GAAgBiC,YAAY,CAACC,WAAb,CAAyB,oBAAMhC,SAAN,EAAzB,CAAhB,CACD,C,QAEMiC,oB,GAAP,gCAA8B,CAC5B,KAAKnC,QAAL,CAAcC,MAAd,GACD,C,QAEMmC,M,GAAP,kBAA6B,mBAC3B,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACpB,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,6BAAC,0BAAD,CAAc,QAAd,IACE,KAAK,EAAEqB,2BAAaC,MAAb,CACL,EACEC,cAAc,EAAEvB,KAAK,CAACwB,cADxB,EAEEC,WAAW,EAAEzB,KAAK,CAAC0B,WAFrB,EAGEC,YAAY,EAAE3B,KAAK,CAAC4B,YAHtB,EADK,EAML5B,KANK,CADT,IAUG,MAAI,CAAC6B,UAAL,EAVH,CADF,CAcD,CAjBH,CADF,CAqBD,C,QAEOA,U,GAAR,sBAAqB,CACnB,IAAQxC,QAAR,GAAqB,KAAKC,KAA1B,CAAQD,QAAR,CACA,qBAA0D,KAAKV,QAAL,EAA1D,CAAQmD,SAAR,kBAAQA,SAAR,CAAmBC,iBAAnB,kBAAmBA,iBAAnB,CAAsCC,MAAtC,kBAAsCA,MAAtC,CAA8CC,OAA9C,kBAA8CA,OAA9C,CACA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,KAAKC,WAAjC,IAAkD,KAAK5C,KAAvD,gBACE,6BAAC,oBAAD,IACE,WAAW,MADb,EAEE,SAAS,EAAEwC,SAFb,EAGE,iBAAiB,EAAE,KAAKrB,qBAH1B,EAIE,OAAO,EAAE,KAAKtB,aAJhB,EAKE,iBAAiB,EAAE4C,iBALrB,EAME,aAAa,EAAE,KAAKzC,KAAL,CAAW6C,aAN5B,EAOE,MAAM,EAAEH,MAPV,EAQE,OAAO,EAAEC,OARX,IAUG,CAAC5C,QAAD,IAAa,KAAKC,KAAL,CAAW8C,QAV3B,CADF,CADF,CAgBD,C;;AAsEOjC,EAAAA,U,GAAR,sBAAqB;AACnB,0BAAuB,KAAKxB,QAAL,EAAvB,CAAQ0D,IAAR,mBAAQA,IAAR,CAAcC,IAAd,mBAAcA,IAAd;AACA;AACE;AACE,QAAA,SAAS,EAAE;AACRxC,sBAAOwC,IAAP,EADQ,IACQ,IADR;AAERxC,sBAAOyC,SAAP,EAFQ,IAEaF,IAAI,KAAK,OAFtB;AAGRvC,sBAAO0C,UAAP,EAHQ,IAGcH,IAAI,KAAK,QAHvB;AAIRvC,sBAAO2C,SAAP,EAJQ,IAIaJ,IAAI,KAAK,OAJtB,QADb;;;AAQGC,MAAAA,IARH,CADF;;;AAYD,G,gBAtKwBI,eAAMC,S,WACjBC,mB,GAAsB,O,UAEtBC,S,GAAY,E,UAEZjE,Y,GAA6B,EACzCoD,MAAM,EAAE,0BAAM9C,SAAN,EADiC,EAEzC+C,OAAO,EAAE,2BAAM/C,SAAN,EAFgC,EAGzC4C,SAAS,EAAE,CAAC,aAAD,EAAgB,cAAhB,EAAgC,UAAhC,EAA4C,WAA5C,CAH8B,EAIzCO,IAAI,EAAE,OAJmC,EAKzCN,iBAAiB,EAAEe,6BALsB,EAMzCR,IAAI,eAAE,6BAAC,iBAAD,OANmC,E;;;AAoK7C7D,KAAK,CAACoE,SAAN,GAAkB;AAChBT,EAAAA,QAAQ,EAAEW,mBAAUC,IADJ;AAEhB3D,EAAAA,QAAQ,EAAE0D,mBAAUE,IAFJ;AAGhBd,EAAAA,aAAa,EAAEY,mBAAUG,SAAV,CAAoB,CAACH,mBAAUI,MAAX,EAAmBJ,mBAAUK,MAA7B,CAApB,CAHC;;AAKhB;AACF;AACA;AACEf,EAAAA,IAAI,EAAEU,mBAAUI,MARA;;AAUhB;AACF;AACA;AACElB,EAAAA,OAAO,EAAEc,mBAAUM,IAbH;;AAehB;AACF;AACA;AACErB,EAAAA,MAAM,EAAEe,mBAAUM,IAlBF,EAAlB","sourcesContent":["import React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { PopupMenu, PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MenuKebabIcon } from '../../internal/icons/16px';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Kebab.styles';\n\nexport interface KebabProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {\n disabled?: boolean;\n size?: 'small' | 'medium' | 'large';\n /**\n * Список позиций доступных для расположения выпадашки.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions?: PopupPositionsType[];\n menuMaxHeight?: number | string;\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n /**\n * Кастомная иконка\n */\n icon?: React.ReactNode;\n /**\n * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<\n Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'size' | 'disableAnimations' | 'icon'>\n>;\n\n@rootNode\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n\n public static propTypes = {};\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n size: 'small',\n disableAnimations: isTestEnv,\n icon: <MenuKebabIcon />,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state: KebabState = {\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.kebabPinOffset,\n popupMargin: theme.kebabMargin,\n popupPinSize: theme.kebabPinSize,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const { positions, disableAnimations, onOpen, onClose } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n popupHasPin\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={onOpen}\n onClose={onClose}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled } = this.props;\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx({\n [styles.kebab(this.theme)]: true,\n [styles.opened(this.theme)]: captionProps.opened,\n [styles.disabled()]: disabled,\n [styles.focused(this.theme)]: this.state.focusedByTab,\n })}\n aria-describedby={this.props['aria-describedby']}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n const { size, icon } = this.getProps();\n return (\n <div\n className={cx({\n [styles.icon()]: true,\n [styles.iconsmall()]: size === 'small',\n [styles.iconmedium()]: size === 'medium',\n [styles.iconlarge()]: size === 'large',\n })}\n >\n {icon}\n </div>\n );\n }\n}\n\nKebab.propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n menuMaxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * Размер кебаба small 14px | large 20px\n */\n size: PropTypes.string,\n\n /**\n * Коллбек, вызывающийся перед закрытием кебаба\n */\n onClose: PropTypes.func,\n\n /**\n * Коллбек, вызывающийся перед открытием кебаба\n */\n onOpen: PropTypes.func,\n};\n"]}
@@ -47,6 +47,7 @@ export interface LinkState {
47
47
  export declare const LinkDataTids: {
48
48
  readonly root: "Link__root";
49
49
  };
50
+ declare type DefaultProps = Required<Pick<LinkProps, 'href' | 'use'>>;
50
51
  /**
51
52
  * Элемент ссылки из HTML.
52
53
  */
@@ -58,13 +59,9 @@ export declare class Link extends React.Component<LinkProps, LinkState> {
58
59
  icon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
59
60
  use: PropTypes.Requireable<string>;
60
61
  };
61
- static defaultProps: {
62
- href: string;
63
- use: string;
64
- };
65
- state: {
66
- focusedByTab: boolean;
67
- };
62
+ static defaultProps: DefaultProps;
63
+ private getProps;
64
+ state: LinkState;
68
65
  private theme;
69
66
  private setRootNode;
70
67
  render(): JSX.Element;
@@ -73,3 +70,4 @@ export declare class Link extends React.Component<LinkProps, LinkState> {
73
70
  private _handleBlur;
74
71
  private _handleClick;
75
72
  }
73
+ export {};
@@ -10,6 +10,7 @@ var _Spinner = require("../Spinner");
10
10
  var _CommonWrapper = require("../../internal/CommonWrapper");
11
11
  var _Emotion = require("../../lib/theming/Emotion");
12
12
  var _rootNodeDecorator = require("../../lib/rootNode/rootNodeDecorator");
13
+ var _createPropsGetter = require("../../lib/createPropsGetter");
13
14
 
14
15
  var _Link = require("./Link.styles");var _excluded = ["disabled", "href", "icon", "use", "loading", "_button", "_buttonOpened", "rel"];var _class, _class2, _temp;
15
16
 
@@ -62,12 +63,15 @@ var _Link = require("./Link.styles");var _excluded = ["disabled", "href", "icon"
62
63
 
63
64
 
64
65
  var LinkDataTids = {
65
- root: 'Link__root' };
66
+ root: 'Link__root' };exports.LinkDataTids = LinkDataTids;
67
+
68
+
69
+
66
70
 
67
71
 
68
72
  /**
69
73
  * Элемент ссылки из HTML.
70
- */exports.LinkDataTids = LinkDataTids;var
74
+ */var
71
75
 
72
76
  Link = (0, _rootNodeDecorator.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Link, _React$Component);function Link() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
73
77
 
@@ -87,6 +91,8 @@ Link = (0, _rootNodeDecorator.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
87
91
 
88
92
 
89
93
 
94
+ getProps = (0, _createPropsGetter.createPropsGetter)(Link.defaultProps);_this.
95
+
90
96
  state = {
91
97
  focusedByTab: false };_this.
92
98
 
@@ -161,7 +167,7 @@ Link = (0, _rootNodeDecorator.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
161
167
 
162
168
  };_this.
163
169
 
164
- _handleFocus = function (event) {
170
+ _handleFocus = function () {
165
171
  if (!_this.props.disabled) {
166
172
  // focus event fires before keyDown eventlistener
167
173
  // so we should check tabPressed in async way
@@ -178,11 +184,12 @@ Link = (0, _rootNodeDecorator.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
178
184
  };_this.
179
185
 
180
186
  _handleClick = function (event) {
181
- var _this$props = _this.props,href = _this$props.href,onClick = _this$props.onClick,disabled = _this$props.disabled,loading = _this$props.loading;
187
+ var _this$props = _this.props,onClick = _this$props.onClick,disabled = _this$props.disabled,loading = _this$props.loading;
188
+ var href = _this.getProps().href;
182
189
  if (!href) {
183
190
  event.preventDefault();
184
191
  }
185
192
  if (onClick && !disabled && !loading) {
186
193
  onClick(event);
187
194
  }
188
- };return _this;}var _proto = Link.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), _this2.renderMain);});};return Link;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Link', _class2.propTypes = { disabled: _propTypes.default.bool, href: _propTypes.default.string, icon: _propTypes.default.node, use: _propTypes.default.oneOf(['default', 'success', 'danger', 'grayed']) }, _class2.defaultProps = { href: '', use: 'default' }, _temp)) || _class;exports.Link = Link;
195
+ };return _this;}var _proto = Link.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.getProps()), _this2.renderMain);});};return Link;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Link', _class2.propTypes = { disabled: _propTypes.default.bool, href: _propTypes.default.string, icon: _propTypes.default.node, use: _propTypes.default.oneOf(['default', 'success', 'danger', 'grayed']) }, _class2.defaultProps = { href: '', use: 'default' }, _temp)) || _class;exports.Link = Link;
@@ -1 +1 @@
1
- {"version":3,"sources":["Link.tsx"],"names":["LinkDataTids","root","Link","rootNode","state","focusedByTab","renderMain","props","disabled","href","icon","use","loading","_button","_buttonOpened","relOrigin","rel","rest","iconElement","styles","theme","arrow","focused","linkProps","className","button","buttonOpened","useDefault","useSuccess","useDanger","useGrayed","useGrayedFocus","focus","onClick","_handleClick","onFocus","_handleFocus","onBlur","_handleBlur","tabIndex","children","event","requestAnimationFrame","keyListener","isTabPressed","setState","preventDefault","render","setRootNode","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","node","oneOf","defaultProps"],"mappings":"qdAAA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDO,IAAMA,YAAY,GAAG;AAC1BC,EAAAA,IAAI,EAAE,YADoB,EAArB;;;AAIP;AACA;AACA,G;;AAEaC,I,OADZC,2B;;;;;;;;;;;;;;;;;;AAmBQC,IAAAA,K,GAAQ;AACbC,MAAAA,YAAY,EAAE,KADD,E;;;;;;;;;;;;;;;;;;;;;AAsBPC,IAAAA,U,GAAa,UAACC,KAAD,EAA8C;AACjE,UAAQC,QAAR,GAAgGD,KAAhG,CAAQC,QAAR,CAAkBC,IAAlB,GAAgGF,KAAhG,CAAkBE,IAAlB,CAAwBC,IAAxB,GAAgGH,KAAhG,CAAwBG,IAAxB,CAA8BC,GAA9B,GAAgGJ,KAAhG,CAA8BI,GAA9B,CAAmCC,OAAnC,GAAgGL,KAAhG,CAAmCK,OAAnC,CAA4CC,OAA5C,GAAgGN,KAAhG,CAA4CM,OAA5C,CAAqDC,aAArD,GAAgGP,KAAhG,CAAqDO,aAArD,CAAyEC,SAAzE,GAAgGR,KAAhG,CAAoES,GAApE,CAAuFC,IAAvF,+CAAgGV,KAAhG;;AAEA,UAAIW,WAAW,GAAG,IAAlB;AACA,UAAIR,IAAJ,EAAU;AACRQ,QAAAA,WAAW;AACT,+CAAM,SAAS,EAAEC,aAAOT,IAAP,CAAY,MAAKU,KAAjB,CAAjB,IAA2CR,OAAO,gBAAG,6BAAC,gBAAD,IAAS,OAAO,EAAE,IAAlB,EAAwB,MAAM,MAA9B,EAA+B,MAAM,MAArC,GAAH,GAA8CF,IAAhG,CADF;;AAGD;;AAED,UAAIW,KAAK,GAAG,IAAZ;AACA,UAAIR,OAAJ,EAAa;AACXQ,QAAAA,KAAK,gBAAG,uCAAM,SAAS,EAAEF,aAAOE,KAAP,EAAjB,GAAR;AACD;;AAED,UAAIL,GAAG,GAAGD,SAAV;AACA,UAAI,OAAOC,GAAP,KAAe,WAAf,IAA8BP,IAAlC,EAAwC;AACtCO,QAAAA,GAAG,iBAAc,2BAAeP,IAAf,IAAuB,aAAvB,GAAuC,EAArD,CAAH;AACD;;AAED,UAAMa,OAAO,GAAG,CAACd,QAAD,IAAa,MAAKJ,KAAL,CAAWC,YAAxC;;AAEA,UAAMkB,SAAS,GAAG;AAChBC,QAAAA,SAAS,EAAE;AACRL,qBAAOlB,IAAP,CAAY,MAAKmB,KAAjB,CADQ,IACkB,IADlB;AAERD,qBAAOM,MAAP,CAAc,MAAKL,KAAnB,CAFQ,IAEoB,CAAC,CAACP,OAFtB;AAGRM,qBAAOO,YAAP,CAAoB,MAAKN,KAAzB,CAHQ,IAG0B,CAAC,CAACN,aAH5B;AAIRK,qBAAOQ,UAAP,CAAkB,MAAKP,KAAvB,CAJQ,IAIwBT,GAAG,KAAK,SAJhC;AAKRQ,qBAAOS,UAAP,CAAkB,MAAKR,KAAvB,CALQ,IAKwBT,GAAG,KAAK,SALhC;AAMRQ,qBAAOU,SAAP,CAAiB,MAAKT,KAAtB,CANQ,IAMuBT,GAAG,KAAK,QAN/B;AAORQ,qBAAOW,SAAP,CAAiB,MAAKV,KAAtB,CAPQ,IAOuBT,GAAG,KAAK,QAP/B;AAQRQ,qBAAOY,cAAP,CAAsB,MAAKX,KAA3B,CARQ,IAQ4BT,GAAG,KAAK,QAAR,IAAoBW,OARhD;AASRH,qBAAOa,KAAP,CAAa,MAAKZ,KAAlB,CATQ,IASmBE,OATnB;AAURH,qBAAOX,QAAP,CAAgB,MAAKY,KAArB,CAVQ,IAUsB,CAAC,CAACZ,QAAF,IAAc,CAAC,CAACI,OAVtC,OADK;;AAahBH,QAAAA,IAAI,EAAJA,IAbgB;AAchBO,QAAAA,GAAG,EAAHA,GAdgB;AAehBiB,QAAAA,OAAO,EAAE,MAAKC,YAfE;AAgBhBC,QAAAA,OAAO,EAAE,MAAKC,YAhBE;AAiBhBC,QAAAA,MAAM,EAAE,MAAKC,WAjBG;AAkBhBC,QAAAA,QAAQ,EAAE/B,QAAQ,IAAII,OAAZ,GAAsB,CAAC,CAAvB,GAA2B,MAAKL,KAAL,CAAWgC,QAlBhC,EAAlB;;;AAqBA;AACE,mEAAG,YAAUvC,YAAY,CAACC,IAA1B,IAAoCgB,IAApC,EAA8CM,SAA9C;AACGL,QAAAA,WADH;AAEG,cAAKX,KAAL,CAAWiC,QAFd;AAGGnB,QAAAA,KAHH,CADF;;;AAOD,K;;AAEOe,IAAAA,Y,GAAe,UAACK,KAAD,EAAgD;AACrE,UAAI,CAAC,MAAKlC,KAAL,CAAWC,QAAhB,EAA0B;AACxB;AACA;AACAkC,QAAAA,qBAAqB,CAAC,YAAM;AAC1B,cAAIC,yBAAYC,YAAhB,EAA8B;AAC5B,kBAAKC,QAAL,CAAc,EAAExC,YAAY,EAAE,IAAhB,EAAd;AACD;AACF,SAJoB,CAArB;AAKD;AACF,K;;AAEOiC,IAAAA,W,GAAc,YAAM;AAC1B,YAAKO,QAAL,CAAc,EAAExC,YAAY,EAAE,KAAhB,EAAd;AACD,K;;AAEO6B,IAAAA,Y,GAAe,UAACO,KAAD,EAAgD;AACrE,wBAA6C,MAAKlC,KAAlD,CAAQE,IAAR,eAAQA,IAAR,CAAcwB,OAAd,eAAcA,OAAd,CAAuBzB,QAAvB,eAAuBA,QAAvB,CAAiCI,OAAjC,eAAiCA,OAAjC;AACA,UAAI,CAACH,IAAL,EAAW;AACTgC,QAAAA,KAAK,CAACK,cAAN;AACD;AACD,UAAIb,OAAO,IAAI,CAACzB,QAAZ,IAAwB,CAACI,OAA7B,EAAsC;AACpCqB,QAAAA,OAAO,CAACQ,KAAD,CAAP;AACD;AACF,K,kDA3FMM,M,GAAP,kBAA6B,mBAC3B,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAAC3B,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,MAAI,CAAC4B,WAAjC,IAAkD,MAAI,CAACzC,KAAvD,GACG,MAAI,CAACD,UADR,CADF,CAKD,CARH,CADF,CAYD,C,eAtCuB2C,eAAMC,S,WAChBC,mB,GAAsB,M,UAEtBC,S,GAAY,EACxB5C,QAAQ,EAAE6C,mBAAUC,IADI,EAGxB7C,IAAI,EAAE4C,mBAAUE,MAHQ,EAKxB7C,IAAI,EAAE2C,mBAAUG,IALQ,EAOxB7C,GAAG,EAAE0C,mBAAUI,KAAV,CAAgB,CAAC,SAAD,EAAY,SAAZ,EAAuB,QAAvB,EAAiC,QAAjC,CAAhB,CAPmB,E,UAUZC,Y,GAAe,EAC3BjD,IAAI,EAAE,EADqB,EAE3BE,GAAG,EAAE,SAFsB,E","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode/rootNodeDecorator';\n\nimport { styles } from './Link.styles';\n\nexport interface LinkProps\n extends CommonProps,\n Override<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * HTML-атрибут `href`.\n */\n href?: string;\n /**\n * Добавляет ссылке иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;\n }\n > {}\n\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link extends React.Component<LinkProps, LinkState> {\n public static __KONTUR_REACT_UI__ = 'Link';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n use: PropTypes.oneOf(['default', 'success', 'danger', 'grayed']),\n };\n\n public static defaultProps = {\n href: '',\n use: 'default',\n };\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<LinkProps>) => {\n const { disabled, href, icon, use, loading, _button, _buttonOpened, rel: relOrigin, ...rest } = props;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <span className={styles.icon(this.theme)}>{loading ? <Spinner caption={null} dimmed inline /> : icon}</span>\n );\n }\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n let rel = relOrigin;\n if (typeof rel === 'undefined' && href) {\n rel = `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n\n const focused = !disabled && this.state.focusedByTab;\n\n const linkProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.useDefault(this.theme)]: use === 'default',\n [styles.useSuccess(this.theme)]: use === 'success',\n [styles.useDanger(this.theme)]: use === 'danger',\n [styles.useGrayed(this.theme)]: use === 'grayed',\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.focus(this.theme)]: focused,\n [styles.disabled(this.theme)]: !!disabled || !!loading,\n }),\n href,\n rel,\n onClick: this._handleClick,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n tabIndex: disabled || loading ? -1 : this.props.tabIndex,\n };\n\n return (\n <a data-tid={LinkDataTids.root} {...rest} {...linkProps}>\n {iconElement}\n {this.props.children}\n {arrow}\n </a>\n );\n };\n\n private _handleFocus = (event: React.FocusEvent<HTMLAnchorElement>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private _handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private _handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n const { href, onClick, disabled, loading } = this.props;\n if (!href) {\n event.preventDefault();\n }\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["Link.tsx"],"names":["LinkDataTids","root","Link","rootNode","getProps","defaultProps","state","focusedByTab","renderMain","props","disabled","href","icon","use","loading","_button","_buttonOpened","relOrigin","rel","rest","iconElement","styles","theme","arrow","focused","linkProps","className","button","buttonOpened","useDefault","useSuccess","useDanger","useGrayed","useGrayedFocus","focus","onClick","_handleClick","onFocus","_handleFocus","onBlur","_handleBlur","tabIndex","children","requestAnimationFrame","keyListener","isTabPressed","setState","event","preventDefault","render","setRootNode","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","node","oneOf"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode/rootNodeDecorator';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\n\nimport { styles } from './Link.styles';\n\nexport interface LinkProps\n extends CommonProps,\n Override<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * HTML-атрибут `href`.\n */\n href?: string;\n /**\n * Добавляет ссылке иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;\n }\n > {}\n\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps, 'href' | 'use'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link extends React.Component<LinkProps, LinkState> {\n public static __KONTUR_REACT_UI__ = 'Link';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n use: PropTypes.oneOf(['default', 'success', 'danger', 'grayed']),\n };\n\n public static defaultProps: DefaultProps = {\n href: '',\n use: 'default',\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const { disabled, href, icon, use, loading, _button, _buttonOpened, rel: relOrigin, ...rest } = props;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <span className={styles.icon(this.theme)}>{loading ? <Spinner caption={null} dimmed inline /> : icon}</span>\n );\n }\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n let rel = relOrigin;\n if (typeof rel === 'undefined' && href) {\n rel = `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n\n const focused = !disabled && this.state.focusedByTab;\n\n const linkProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.useDefault(this.theme)]: use === 'default',\n [styles.useSuccess(this.theme)]: use === 'success',\n [styles.useDanger(this.theme)]: use === 'danger',\n [styles.useGrayed(this.theme)]: use === 'grayed',\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.focus(this.theme)]: focused,\n [styles.disabled(this.theme)]: !!disabled || !!loading,\n }),\n href,\n rel,\n onClick: this._handleClick,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n tabIndex: disabled || loading ? -1 : this.props.tabIndex,\n };\n\n return (\n <a data-tid={LinkDataTids.root} {...rest} {...linkProps}>\n {iconElement}\n {this.props.children}\n {arrow}\n </a>\n );\n };\n\n private _handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private _handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private _handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n const { onClick, disabled, loading } = this.props;\n const href = this.getProps().href;\n if (!href) {\n event.preventDefault();\n }\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ import { AnyObject } from '../../lib/utils';
3
4
  import { SpinnerProps } from '../Spinner';
4
5
  import { CommonProps } from '../../internal/CommonWrapper';
5
6
  export interface LoaderProps extends CommonProps {
@@ -8,41 +9,52 @@ export interface LoaderProps extends CommonProps {
8
9
  * Флаг переключения состояния лоадера
9
10
  * @default false
10
11
  */
11
- active: boolean;
12
+ active?: boolean;
13
+ /**
14
+ * Подпись под спиннером
15
+ */
12
16
  caption?: SpinnerProps['caption'];
13
17
  /**
14
18
  * Компонент заменяющий спиннер.
15
19
  */
16
20
  component?: React.ReactNode;
17
- className?: string;
21
+ /**
22
+ * Размер спиннера и текста
23
+ *
24
+ * @default normal
25
+ */
18
26
  type?: 'mini' | 'normal' | 'big';
19
27
  /**
20
28
  * Время в миллисекундах для показа вуали без спиннера.
21
29
  * @default 300
22
30
  */
23
- delayBeforeSpinnerShow: number;
31
+ delayBeforeSpinnerShow?: number;
24
32
  /**
25
33
  * Минимальное время в миллисекундах для показа спиннера
26
34
  * @default 1000
27
35
  */
28
- minimalDelayBeforeSpinnerHide: number;
36
+ minimalDelayBeforeSpinnerHide?: number;
29
37
  }
30
38
  export interface LoaderState {
31
39
  isStickySpinner: boolean;
32
40
  isSpinnerVisible: boolean;
33
41
  isLoaderActive: boolean;
34
- spinnerStyle?: object;
42
+ spinnerStyle?: AnyObject;
35
43
  }
36
44
  export declare const LoaderDataTids: {
37
45
  readonly veil: "Loader__Veil";
38
46
  readonly spinner: "Loader__Spinner";
39
47
  };
48
+ declare type DefaultProps = Required<Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>>;
40
49
  /**
41
- * DRAFT - лоадер-контейнер
50
+ * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер
51
+ *
52
+ * Если вам нужен только сам спиннер без дополнительнго функционала - используйте компонент [Spinner](https://tech.skbkontur.ru/react-ui/#/Components/Spinner)
42
53
  */
43
54
  export declare class Loader extends React.Component<LoaderProps, LoaderState> {
44
55
  static __KONTUR_REACT_UI__: string;
45
- static defaultProps: Partial<LoaderProps>;
56
+ static defaultProps: DefaultProps;
57
+ private getProps;
46
58
  static propTypes: {
47
59
  /**
48
60
  * показываем лоадер или нет
@@ -102,3 +114,4 @@ export declare class Loader extends React.Component<LoaderProps, LoaderState> {
102
114
  private makeObservable;
103
115
  private makeUnobservable;
104
116
  }
117
+ export {};
@@ -2,6 +2,7 @@
2
2
  var _propTypes = _interopRequireDefault(require("prop-types"));
3
3
  var _lodash = _interopRequireDefault(require("lodash.debounce"));
4
4
 
5
+
5
6
  var LayoutEvents = _interopRequireWildcard(require("../../lib/LayoutEvents"));
6
7
  var _Spinner = require("../Spinner");
7
8
 
@@ -15,6 +16,7 @@ var _taskWithDelayAndMinimalDuration = require("../../lib/taskWithDelayAndMinima
15
16
  var _tabbableHelpers = require("../../lib/dom/tabbableHelpers");
16
17
  var _rootNode = require("../../lib/rootNode");
17
18
  var _getDOMRect2 = require("../../lib/dom/getDOMRect");
19
+ var _createPropsGetter = require("../../lib/createPropsGetter");
18
20
 
19
21
  var _Loader = require("./Loader.styles");var _class, _class2, _temp;function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}
20
22
 
@@ -43,6 +45,13 @@ var _Loader = require("./Loader.styles");var _class, _class2, _temp;function _ge
43
45
 
44
46
 
45
47
 
48
+
49
+
50
+
51
+
52
+
53
+
54
+
46
55
 
47
56
 
48
57
 
@@ -53,12 +62,18 @@ var _Loader = require("./Loader.styles");var _class, _class2, _temp;function _ge
53
62
 
54
63
  var LoaderDataTids = {
55
64
  veil: 'Loader__Veil',
56
- spinner: 'Loader__Spinner' };
65
+ spinner: 'Loader__Spinner' };exports.LoaderDataTids = LoaderDataTids;
66
+
67
+
68
+
69
+
57
70
 
58
71
 
59
72
  /**
60
- * DRAFT - лоадер-контейнер
61
- */exports.LoaderDataTids = LoaderDataTids;var
73
+ * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер
74
+ *
75
+ * Если вам нужен только сам спиннер без дополнительнго функционала - используйте компонент [Spinner](https://tech.skbkontur.ru/react-ui/#/Components/Spinner)
76
+ */var
62
77
 
63
78
  Loader = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Loader, _React$Component);
64
79
 
@@ -116,11 +131,16 @@ Loader = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functi
116
131
 
117
132
 
118
133
 
134
+
135
+
119
136
 
120
137
 
121
138
 
122
139
  function Loader(props) {var _this;
123
- _this = _React$Component.call(this, props) || this;_this.
140
+ _this = _React$Component.call(this, props) || this;_this.getProps = (0, _createPropsGetter.createPropsGetter)(Loader.defaultProps);_this.
141
+
142
+
143
+
124
144
 
125
145
 
126
146
 
@@ -394,7 +414,7 @@ Loader = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functi
394
414
  makeUnobservable = function () {var _this$childrenObserve;
395
415
  (_this$childrenObserve = _this.childrenObserver) == null ? void 0 : _this$childrenObserve.disconnect();
396
416
  _this.childrenObserver = null;
397
- };_this.spinnerContainerNode = null;_this.childrenContainerNode = null;_this.childrenObserver = null;_this.spinnerNode = null;_this.state = { isStickySpinner: false, isSpinnerVisible: false, isLoaderActive: false };_this.spinnerTask = new _taskWithDelayAndMinimalDuration.TaskWithDelayAndMinimalDuration({ delayBeforeTaskStart: _this.props.delayBeforeSpinnerShow, durationOfTask: _this.props.minimalDelayBeforeSpinnerHide, taskStartCallback: function taskStartCallback() {return _this.setState({ isSpinnerVisible: true });}, taskStopCallback: function taskStopCallback() {return _this.setState({ isSpinnerVisible: false });} });return _this;}var _proto = Loader.prototype;_proto.componentDidMount = function componentDidMount() {this.checkSpinnerPosition();this.props.active && this.spinnerTask.start();this.layoutEvents = LayoutEvents.addListener((0, _lodash.default)(this.checkSpinnerPosition, 10));if (this.props.active) {this.disableChildrenFocus();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var _this$props = this.props,component = _this$props.component,active = _this$props.active,delayBeforeSpinnerShow = _this$props.delayBeforeSpinnerShow,minimalDelayBeforeSpinnerHide = _this$props.minimalDelayBeforeSpinnerHide;var isLoaderActive = this.state.isLoaderActive;if (active && !prevProps.active || prevProps.component !== component) {this.checkSpinnerPosition();}if (delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow || minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide) {this.spinnerTask.update({ delayBeforeTaskStart: delayBeforeSpinnerShow, durationOfTask: minimalDelayBeforeSpinnerHide });}if (active !== prevProps.active) {active ? this.spinnerTask.start() : this.spinnerTask.stop();}if (isLoaderActive !== prevState.isLoaderActive) {if (isLoaderActive) {this.disableChildrenFocus();} else {this.enableChildrenFocus();}}};_proto.componentWillUnmount = function componentWillUnmount() {this.makeUnobservable();if (this.layoutEvents) {this.layoutEvents.remove();}this.spinnerTask.clearTask();};Loader.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {if (props.active && !state.isLoaderActive) {return { isLoaderActive: true };}if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {return { isLoaderActive: false };}return state;};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx;var _this$props2 = this.props,type = _this$props2.type,caption = _this$props2.caption,component = _this$props2.component;var isLoaderActive = this.state.isLoaderActive;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("div", { className: _Loader.styles.loader(), "data-tid": isLoaderActive ? LoaderDataTids.veil : '' }, /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'Loader', applyZIndex: isLoaderActive, coverChildren: isLoaderActive, style: { height: '100%' }, wrapperRef: this.childrenRef }, this.props.children), isLoaderActive && /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { wrapperRef: this.spinnerRef, priority: 'Loader', className: (0, _Emotion.cx)((_cx = {}, _cx[_Loader.styles.active(this.theme)] = isLoaderActive, _cx)) }, this.state.isSpinnerVisible && this.renderSpinner(type, caption, component))));};_proto.renderSpinner = function renderSpinner(type, caption, component) {var _cx2,_this3 = this;return /*#__PURE__*/_react.default.createElement("span", { "data-tid": LoaderDataTids.spinner, className: (0, _Emotion.cx)(_Loader.styles.spinnerContainer(), (_cx2 = {}, _cx2[_Loader.styles.spinnerContainerSticky()] = this.state.isStickySpinner, _cx2)), style: this.state.spinnerStyle }, /*#__PURE__*/_react.default.createElement("div", { className: _Loader.styles.spinnerComponentWrapper(), ref: function ref(element) {_this3.spinnerNode = element;} }, component !== undefined ? component : /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, { type: type, caption: caption })));};return Loader;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Loader', _class2.defaultProps = { type: _Spinner.Spinner.Types.normal, active: false, delayBeforeSpinnerShow: _currentEnvironment.isTestEnv ? 0 : 300, minimalDelayBeforeSpinnerHide: _currentEnvironment.isTestEnv ? 0 : 1000 }, _class2.propTypes = { /**
417
+ };_this.spinnerContainerNode = null;_this.childrenContainerNode = null;_this.childrenObserver = null;_this.spinnerNode = null;_this.state = { isStickySpinner: false, isSpinnerVisible: false, isLoaderActive: false };_this.spinnerTask = new _taskWithDelayAndMinimalDuration.TaskWithDelayAndMinimalDuration({ delayBeforeTaskStart: _this.getProps().delayBeforeSpinnerShow, durationOfTask: _this.getProps().minimalDelayBeforeSpinnerHide, taskStartCallback: function taskStartCallback() {return _this.setState({ isSpinnerVisible: true });}, taskStopCallback: function taskStopCallback() {return _this.setState({ isSpinnerVisible: false });} });return _this;}var _proto = Loader.prototype;_proto.componentDidMount = function componentDidMount() {var active = this.getProps().active;this.checkSpinnerPosition();active && this.spinnerTask.start();this.layoutEvents = LayoutEvents.addListener((0, _lodash.default)(this.checkSpinnerPosition, 10));if (active) {this.disableChildrenFocus();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var component = this.props.component;var _this$getProps = this.getProps(),active = _this$getProps.active,delayBeforeSpinnerShow = _this$getProps.delayBeforeSpinnerShow,minimalDelayBeforeSpinnerHide = _this$getProps.minimalDelayBeforeSpinnerHide;var isLoaderActive = this.state.isLoaderActive;if (active && !prevProps.active || prevProps.component !== component) {this.checkSpinnerPosition();}if (delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow || minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide) {this.spinnerTask.update({ delayBeforeTaskStart: delayBeforeSpinnerShow, durationOfTask: minimalDelayBeforeSpinnerHide });}if (active !== prevProps.active) {active ? this.spinnerTask.start() : this.spinnerTask.stop();}if (isLoaderActive !== prevState.isLoaderActive) {if (isLoaderActive) {this.disableChildrenFocus();} else {this.enableChildrenFocus();}}};_proto.componentWillUnmount = function componentWillUnmount() {this.makeUnobservable();if (this.layoutEvents) {this.layoutEvents.remove();}this.spinnerTask.clearTask();};Loader.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {if (props.active && !state.isLoaderActive) {return { isLoaderActive: true };}if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {return { isLoaderActive: false };}return state;};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx;var _this$props = this.props,caption = _this$props.caption,component = _this$props.component;var type = this.getProps().type;var isLoaderActive = this.state.isLoaderActive;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("div", { className: _Loader.styles.loader(), "data-tid": isLoaderActive ? LoaderDataTids.veil : '' }, /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'Loader', applyZIndex: isLoaderActive, coverChildren: isLoaderActive, style: { height: '100%' }, wrapperRef: this.childrenRef }, this.props.children), isLoaderActive && /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { wrapperRef: this.spinnerRef, priority: 'Loader', className: (0, _Emotion.cx)((_cx = {}, _cx[_Loader.styles.active(this.theme)] = isLoaderActive, _cx)) }, this.state.isSpinnerVisible && this.renderSpinner(type, caption, component))));};_proto.renderSpinner = function renderSpinner(type, caption, component) {var _cx2,_this3 = this;return /*#__PURE__*/_react.default.createElement("span", { "data-tid": LoaderDataTids.spinner, className: (0, _Emotion.cx)(_Loader.styles.spinnerContainer(), (_cx2 = {}, _cx2[_Loader.styles.spinnerContainerSticky()] = this.state.isStickySpinner, _cx2)), style: this.state.spinnerStyle }, /*#__PURE__*/_react.default.createElement("div", { className: _Loader.styles.spinnerComponentWrapper(), ref: function ref(element) {_this3.spinnerNode = element;} }, component !== undefined ? component : /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, { type: type, caption: caption })));};return Loader;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Loader', _class2.defaultProps = { type: _Spinner.Spinner.Types.normal, active: false, delayBeforeSpinnerShow: _currentEnvironment.isTestEnv ? 0 : 300, minimalDelayBeforeSpinnerHide: _currentEnvironment.isTestEnv ? 0 : 1000 }, _class2.propTypes = { /**
398
418
  * показываем лоадер или нет
399
419
  */active: _propTypes.default.bool, /**
400
420
  * Текст рядом с лоадером.
@@ -1 +1 @@
1
- {"version":3,"sources":["Loader.tsx"],"names":["LoaderDataTids","veil","spinner","Loader","rootNode","props","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","window","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","makeUnobservable","Array","from","document","querySelectorAll","getAttribute","removeAttribute","target","config","childList","subtree","observer","MutationObserver","observe","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","componentDidMount","active","start","layoutEvents","LayoutEvents","addListener","componentDidUpdate","prevProps","prevState","component","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","theme","renderMain","type","caption","setRootNode","styles","loader","children","renderSpinner","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","undefined","React","Component","__KONTUR_REACT_UI__","defaultProps","Spinner","Types","normal","isTestEnv","propTypes","PropTypes","bool","node","className","string","oneOf","Object","keys","number"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Spinner, SpinnerProps } from '../Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './Loader.styles';\n\nexport interface LoaderProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Флаг переключения состояния лоадера\n * @default false\n */\n active: boolean;\n caption?: SpinnerProps['caption'];\n /**\n * Компонент заменяющий спиннер.\n */\n component?: React.ReactNode;\n className?: string;\n type?: 'mini' | 'normal' | 'big';\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow: number;\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: object;\n}\n\nexport const LoaderDataTids = {\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\n/**\n * DRAFT - лоадер-контейнер\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n\n public static defaultProps: Partial<LoaderProps> = {\n type: Spinner.Types.normal,\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n public static propTypes = {\n /**\n * показываем лоадер или нет\n */\n active: PropTypes.bool,\n\n /**\n * Текст рядом с лоадером.\n *\n * @default \"Загрузка\"\n */\n caption: Spinner.propTypes.caption,\n\n component: PropTypes.node,\n\n /**\n * Класс для обертки\n */\n className: PropTypes.string,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * @default normal\n *\n * Spinner.types - все доступные типы\n */\n type: PropTypes.oneOf(Object.keys(Spinner.Types)),\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow: PropTypes.number,\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide: PropTypes.number,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.props.delayBeforeSpinnerShow,\n durationOfTask: this.props.minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n this.checkSpinnerPosition();\n this.props.active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (this.props.active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component, active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.props;\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\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 private renderMain() {\n const { type, caption, component } = this.props;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.loader()} data-tid={isLoaderActive ? LoaderDataTids.veil : ''}>\n <ZIndex\n priority={'Loader'}\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n priority={'Loader'}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: 'mini' | 'normal' | 'big', caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = window.innerHeight;\n const windowWidth = window.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(document.querySelectorAll('[origin-tabindex]')).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"]}
1
+ {"version":3,"sources":["Loader.tsx"],"names":["LoaderDataTids","veil","spinner","Loader","rootNode","props","getProps","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","window","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","makeUnobservable","Array","from","document","querySelectorAll","getAttribute","removeAttribute","target","config","childList","subtree","observer","MutationObserver","observe","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","componentDidMount","active","start","layoutEvents","LayoutEvents","addListener","componentDidUpdate","prevProps","prevState","component","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","theme","renderMain","caption","type","setRootNode","styles","loader","children","renderSpinner","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","undefined","React","Component","__KONTUR_REACT_UI__","Spinner","Types","normal","isTestEnv","propTypes","PropTypes","bool","node","className","string","oneOf","Object","keys","number"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\n\nimport { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Spinner, SpinnerProps } from '../Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nexport interface LoaderProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Флаг переключения состояния лоадера\n * @default false\n */\n active?: boolean;\n /**\n * Подпись под спиннером\n */\n caption?: SpinnerProps['caption'];\n /**\n * Компонент заменяющий спиннер.\n */\n component?: React.ReactNode;\n /**\n * Размер спиннера и текста\n *\n * @default normal\n */\n type?: 'mini' | 'normal' | 'big';\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow?: number;\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер\n *\n * Если вам нужен только сам спиннер без дополнительнго функционала - используйте компонент [Spinner](https://tech.skbkontur.ru/react-ui/#/Components/Spinner)\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: Spinner.Types.normal,\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n public static propTypes = {\n /**\n * показываем лоадер или нет\n */\n active: PropTypes.bool,\n\n /**\n * Текст рядом с лоадером.\n *\n * @default \"Загрузка\"\n */\n caption: Spinner.propTypes.caption,\n\n component: PropTypes.node,\n\n /**\n * Класс для обертки\n */\n className: PropTypes.string,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * @default normal\n *\n * Spinner.types - все доступные типы\n */\n type: PropTypes.oneOf(Object.keys(Spinner.Types)),\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow: PropTypes.number,\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide: PropTypes.number,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\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 private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.loader()} data-tid={isLoaderActive ? LoaderDataTids.veil : ''}>\n <ZIndex\n priority={'Loader'}\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n priority={'Loader'}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: 'mini' | 'normal' | 'big', caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = window.innerHeight;\n const windowWidth = window.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(document.querySelectorAll('[origin-tabindex]')).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"]}