@skbkontur/react-ui 3.10.0-fileuploader.1 → 3.11.0-select-right

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 (784) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/LICENSE +21 -21
  3. package/README.md +57 -0
  4. package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
  5. package/cjs/components/Autocomplete/Autocomplete.js +11 -5
  6. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  7. package/cjs/components/Autocomplete/Autocomplete.md +7 -7
  8. package/cjs/components/Button/Button.d.ts +5 -1
  9. package/cjs/components/Button/Button.js +17 -5
  10. package/cjs/components/Button/Button.js.map +1 -1
  11. package/cjs/components/Button/Button.styles.d.ts +1 -0
  12. package/cjs/components/Button/Button.styles.js +38 -28
  13. package/cjs/components/Button/Button.styles.js.map +1 -1
  14. package/cjs/components/Center/Center.d.ts +1 -0
  15. package/cjs/components/Center/Center.js +10 -3
  16. package/cjs/components/Center/Center.js.map +1 -1
  17. package/cjs/components/Checkbox/Checkbox.d.ts +3 -3
  18. package/cjs/components/Checkbox/Checkbox.js +31 -22
  19. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  20. package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
  21. package/cjs/components/ComboBox/ComboBox.js +100 -70
  22. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  23. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +4 -3
  24. package/cjs/components/CurrencyInput/CurrencyInput.js +35 -4
  25. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  26. package/cjs/components/CurrencyInput/CurrencyInput.md +24 -24
  27. package/cjs/components/CurrencyLabel/CurrencyLabel.md +23 -23
  28. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  29. package/cjs/components/DateInput/DateInput.js +6 -3
  30. package/cjs/components/DateInput/DateInput.js.map +1 -1
  31. package/cjs/components/DateInput/DateInput.md +106 -106
  32. package/cjs/components/DatePicker/DatePicker.d.ts +4 -2
  33. package/cjs/components/DatePicker/DatePicker.js +17 -7
  34. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  35. package/cjs/components/DatePicker/DatePicker.md +307 -307
  36. package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
  37. package/cjs/components/Dropdown/Dropdown.js +11 -4
  38. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  39. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +3 -2
  40. package/cjs/components/DropdownMenu/DropdownMenu.js +7 -4
  41. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  42. package/cjs/components/FxInput/FxInput.d.ts +1 -0
  43. package/cjs/components/FxInput/FxInput.js +9 -2
  44. package/cjs/components/FxInput/FxInput.js.map +1 -1
  45. package/cjs/components/FxInput/FxInput.md +16 -16
  46. package/cjs/components/Gapped/Gapped.d.ts +2 -0
  47. package/cjs/components/Gapped/Gapped.js +22 -14
  48. package/cjs/components/Gapped/Gapped.js.map +1 -1
  49. package/cjs/components/Gapped/Gapped.md +43 -43
  50. package/cjs/components/Group/Group.d.ts +1 -0
  51. package/cjs/components/Group/Group.js +10 -7
  52. package/cjs/components/Group/Group.js.map +1 -1
  53. package/cjs/components/Group/Group.md +18 -18
  54. package/cjs/components/Hint/Hint.d.ts +5 -3
  55. package/cjs/components/Hint/Hint.js +7 -20
  56. package/cjs/components/Hint/Hint.js.map +1 -1
  57. package/cjs/components/Input/Input.d.ts +8 -1
  58. package/cjs/components/Input/Input.js +22 -5
  59. package/cjs/components/Input/Input.js.map +1 -1
  60. package/cjs/components/Input/Input.md +13 -13
  61. package/cjs/components/Kebab/Kebab.d.ts +3 -2
  62. package/cjs/components/Kebab/Kebab.js +8 -5
  63. package/cjs/components/Kebab/Kebab.js.map +1 -1
  64. package/cjs/components/Link/Link.d.ts +1 -0
  65. package/cjs/components/Link/Link.js +11 -3
  66. package/cjs/components/Link/Link.js.map +1 -1
  67. package/cjs/components/Loader/Loader.d.ts +1 -0
  68. package/cjs/components/Loader/Loader.js +11 -7
  69. package/cjs/components/Loader/Loader.js.map +1 -1
  70. package/cjs/components/MenuItem/MenuItem.d.ts +2 -1
  71. package/cjs/components/MenuItem/MenuItem.js +11 -8
  72. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  73. package/cjs/components/Modal/Modal.js +1 -1
  74. package/cjs/components/Modal/Modal.js.map +1 -1
  75. package/cjs/components/Modal/ModalBody.d.ts +1 -0
  76. package/cjs/components/Modal/ModalBody.js +9 -6
  77. package/cjs/components/Modal/ModalBody.js.map +1 -1
  78. package/cjs/components/Paging/Paging.d.ts +2 -2
  79. package/cjs/components/Paging/Paging.js +6 -5
  80. package/cjs/components/Paging/Paging.js.map +1 -1
  81. package/cjs/components/Paging/Paging.md +43 -43
  82. package/cjs/components/PasswordInput/PasswordInput.d.ts +3 -2
  83. package/cjs/components/PasswordInput/PasswordInput.js +13 -6
  84. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  85. package/cjs/components/PasswordInput/PasswordInput.md +9 -9
  86. package/cjs/components/Radio/Radio.d.ts +5 -10
  87. package/cjs/components/Radio/Radio.js +15 -11
  88. package/cjs/components/Radio/Radio.js.map +1 -1
  89. package/cjs/components/RadioGroup/RadioGroup.d.ts +11 -26
  90. package/cjs/components/RadioGroup/RadioGroup.js +25 -29
  91. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  92. package/cjs/components/RadioGroup/RadioGroup.md +43 -43
  93. package/cjs/components/RadioGroup/RadioGroupContext.d.ts +10 -0
  94. package/cjs/components/RadioGroup/RadioGroupContext.js +21 -0
  95. package/cjs/components/RadioGroup/RadioGroupContext.js.map +1 -0
  96. package/cjs/components/ScrollContainer/ScrollBar.js +4 -2
  97. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  98. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  99. package/cjs/components/ScrollContainer/ScrollContainer.js +10 -6
  100. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  101. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  102. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +12 -8
  103. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  104. package/cjs/components/Select/Select.d.ts +1 -0
  105. package/cjs/components/Select/Select.js +9 -5
  106. package/cjs/components/Select/Select.js.map +1 -1
  107. package/cjs/components/SidePage/SidePage.d.ts +3 -0
  108. package/cjs/components/SidePage/SidePage.js +20 -2
  109. package/cjs/components/SidePage/SidePage.js.map +1 -1
  110. package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
  111. package/cjs/components/SidePage/SidePageBody.js +9 -6
  112. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  113. package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
  114. package/cjs/components/SidePage/SidePageContainer.js +9 -6
  115. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  116. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -2
  117. package/cjs/components/SidePage/SidePageFooter.js +11 -12
  118. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  119. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
  120. package/cjs/components/SidePage/SidePageHeader.js +6 -3
  121. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  122. package/cjs/components/Spinner/Spinner.d.ts +9 -0
  123. package/cjs/components/Spinner/Spinner.js +29 -8
  124. package/cjs/components/Spinner/Spinner.js.map +1 -1
  125. package/cjs/components/Spinner/Spinner.md +1 -0
  126. package/cjs/components/Spinner/Spinner.styles.d.ts +2 -1
  127. package/cjs/components/Spinner/Spinner.styles.js +13 -10
  128. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  129. package/cjs/components/Sticky/Sticky.d.ts +1 -0
  130. package/cjs/components/Sticky/Sticky.js +8 -5
  131. package/cjs/components/Sticky/Sticky.js.map +1 -1
  132. package/cjs/components/Switcher/Switcher.d.ts +1 -0
  133. package/cjs/components/Switcher/Switcher.js +6 -3
  134. package/cjs/components/Switcher/Switcher.js.map +1 -1
  135. package/cjs/components/Switcher/Switcher.styles.js +4 -2
  136. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  137. package/cjs/components/Tabs/Indicator.d.ts +1 -0
  138. package/cjs/components/Tabs/Indicator.js +16 -15
  139. package/cjs/components/Tabs/Indicator.js.map +1 -1
  140. package/cjs/components/Tabs/Tab.d.ts +2 -1
  141. package/cjs/components/Tabs/Tab.js +13 -9
  142. package/cjs/components/Tabs/Tab.js.map +1 -1
  143. package/cjs/components/Tabs/Tabs.d.ts +1 -0
  144. package/cjs/components/Tabs/Tabs.js +9 -9
  145. package/cjs/components/Tabs/Tabs.js.map +1 -1
  146. package/cjs/components/Tabs/Tabs.md +36 -36
  147. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  148. package/cjs/components/Textarea/Textarea.js +12 -5
  149. package/cjs/components/Textarea/Textarea.js.map +1 -1
  150. package/cjs/components/Textarea/Textarea.md +25 -25
  151. package/cjs/components/Toast/Toast.d.ts +3 -0
  152. package/cjs/components/Toast/Toast.js +15 -4
  153. package/cjs/components/Toast/Toast.js.map +1 -1
  154. package/cjs/components/Toast/ToastView.d.ts +1 -0
  155. package/cjs/components/Toast/ToastView.js +8 -5
  156. package/cjs/components/Toast/ToastView.js.map +1 -1
  157. package/cjs/components/Toggle/Toggle.d.ts +1 -0
  158. package/cjs/components/Toggle/Toggle.js +9 -6
  159. package/cjs/components/Toggle/Toggle.js.map +1 -1
  160. package/cjs/components/Token/Token.d.ts +1 -0
  161. package/cjs/components/Token/Token.js +7 -4
  162. package/cjs/components/Token/Token.js.map +1 -1
  163. package/cjs/components/Token/Token.md +112 -112
  164. package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
  165. package/cjs/components/TokenInput/TokenInput.js +11 -8
  166. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  167. package/cjs/components/TokenInput/TokenInput.md +79 -79
  168. package/cjs/components/Tooltip/Tooltip.d.ts +11 -22
  169. package/cjs/components/Tooltip/Tooltip.js +28 -30
  170. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  171. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +3 -2
  172. package/cjs/components/TooltipMenu/TooltipMenu.js +8 -5
  173. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  174. package/cjs/index.d.ts +1 -1
  175. package/cjs/index.js +2 -2
  176. package/cjs/index.js.map +1 -1
  177. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  178. package/cjs/internal/CommonWrapper/CommonWrapper.js +38 -15
  179. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  180. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +3 -2
  181. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  182. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  183. package/cjs/internal/CustomComboBox/ComboBoxView.js +15 -5
  184. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  185. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  186. package/cjs/internal/CustomComboBox/CustomComboBox.js +8 -5
  187. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  188. package/cjs/internal/DateSelect/DateSelect.d.ts +2 -2
  189. package/cjs/internal/DateSelect/DateSelect.js +3 -3
  190. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  191. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  192. package/cjs/internal/DropdownContainer/DropdownContainer.js +14 -11
  193. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  194. package/cjs/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
  195. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js +9 -0
  196. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js.map +1 -0
  197. package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
  198. package/cjs/internal/FocusTrap/FocusTrap.js +12 -9
  199. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  200. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +12 -4
  201. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  202. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  203. package/cjs/internal/InputLikeText/InputLikeText.js +10 -3
  204. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  205. package/cjs/internal/InternalMenu/InternalMenu.d.ts +2 -3
  206. package/cjs/internal/InternalMenu/InternalMenu.js +16 -22
  207. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  208. package/cjs/internal/MaskedInput/MaskedInput.d.ts +2 -2
  209. package/cjs/internal/MaskedInput/MaskedInput.js +3 -3
  210. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  211. package/cjs/internal/Menu/Menu.d.ts +3 -0
  212. package/cjs/internal/Menu/Menu.js +33 -6
  213. package/cjs/internal/Menu/Menu.js.map +1 -1
  214. package/cjs/internal/Menu/Menu.styles.d.ts +3 -0
  215. package/cjs/internal/Menu/Menu.styles.js +22 -3
  216. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  217. package/cjs/internal/Popup/Popup.d.ts +9 -8
  218. package/cjs/internal/Popup/Popup.js +64 -48
  219. package/cjs/internal/Popup/Popup.js.map +1 -1
  220. package/cjs/internal/Popup/PopupHelper.d.ts +2 -2
  221. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  222. package/cjs/internal/Popup/types.d.ts +1 -0
  223. package/cjs/{components/FileUploader/locale → internal/Popup}/types.js +0 -0
  224. package/cjs/{components/FileUploader/locale → internal/Popup}/types.js.map +0 -0
  225. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -3
  226. package/cjs/internal/PopupMenu/PopupMenu.js +23 -6
  227. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  228. package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
  229. package/cjs/internal/PopupMenu/validatePositions.js +2 -4
  230. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  231. package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -1
  232. package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
  233. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  234. package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -3
  235. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  236. package/cjs/internal/RenderLayer/RenderLayer.d.ts +3 -1
  237. package/cjs/internal/RenderLayer/RenderLayer.js +13 -7
  238. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  239. package/cjs/internal/ThemePlayground/Playground.d.ts +0 -1
  240. package/cjs/internal/ThemePlayground/Playground.js +1 -11
  241. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  242. package/cjs/internal/ThemePlayground/darkTheme.d.ts +0 -15
  243. package/cjs/internal/ThemePlayground/darkTheme.js +1 -25
  244. package/cjs/internal/ThemePlayground/darkTheme.js.map +1 -1
  245. package/cjs/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
  246. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +20 -19
  247. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  248. package/cjs/internal/ThemeShowcase/ThemeShowcase.md +13 -13
  249. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  250. package/cjs/internal/ZIndex/ZIndex.d.ts +2 -0
  251. package/cjs/internal/ZIndex/ZIndex.js +45 -34
  252. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  253. package/cjs/internal/icons/16px/index.d.ts +17 -19
  254. package/cjs/internal/icons/16px/index.js +105 -84
  255. package/cjs/internal/icons/16px/index.js.map +1 -1
  256. package/cjs/internal/icons/SpinnerIcon.d.ts +4 -1
  257. package/cjs/internal/icons/SpinnerIcon.js +5 -2
  258. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  259. package/cjs/internal/themes/DefaultTheme.d.ts +0 -23
  260. package/cjs/internal/themes/DefaultTheme.js +1 -64
  261. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  262. package/cjs/lib/ModalStack.js +16 -17
  263. package/cjs/lib/ModalStack.js.map +1 -1
  264. package/cjs/lib/callChildRef/callChildRef.d.ts +3 -0
  265. package/cjs/lib/callChildRef/callChildRef.js +19 -0
  266. package/cjs/lib/callChildRef/callChildRef.js.map +1 -0
  267. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  268. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js +20 -0
  269. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  270. package/cjs/lib/getDisplayName.d.ts +3 -0
  271. package/cjs/lib/getDisplayName.js +9 -0
  272. package/cjs/lib/getDisplayName.js.map +1 -0
  273. package/cjs/lib/locale/types.d.ts +0 -2
  274. package/cjs/lib/locale/types.js +0 -2
  275. package/cjs/lib/locale/types.js.map +1 -1
  276. package/cjs/lib/rootNode/getRootNode.d.ts +3 -0
  277. package/cjs/lib/rootNode/getRootNode.js +27 -0
  278. package/cjs/lib/rootNode/getRootNode.js.map +1 -0
  279. package/cjs/lib/rootNode/index.d.ts +2 -0
  280. package/cjs/lib/rootNode/index.js +2 -0
  281. package/cjs/lib/rootNode/index.js.map +1 -0
  282. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +33 -0
  283. package/cjs/lib/rootNode/rootNodeDecorator.js +31 -0
  284. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -0
  285. package/cjs/lib/theming/AnimationKeyframes.js +1 -1
  286. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  287. package/cjs/lib/theming/Emotion.js +1 -0
  288. package/cjs/lib/theming/Emotion.js.map +1 -1
  289. package/cjs/lib/theming/useTheme.d.ts +1 -0
  290. package/cjs/lib/theming/useTheme.js +7 -0
  291. package/cjs/lib/theming/useTheme.js.map +1 -0
  292. package/cjs/lib/utils.d.ts +35 -1
  293. package/cjs/lib/utils.js +77 -22
  294. package/cjs/lib/utils.js.map +1 -1
  295. package/cjs/lib/withClassWrapper.d.ts +71 -0
  296. package/cjs/lib/withClassWrapper.js +59 -0
  297. package/cjs/lib/withClassWrapper.js.map +1 -0
  298. package/cjs/typings/html-props.d.ts +123 -0
  299. package/components/Autocomplete/Autocomplete/Autocomplete.js +19 -16
  300. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  301. package/components/Autocomplete/Autocomplete.d.ts +1 -0
  302. package/components/Autocomplete/Autocomplete.md +7 -7
  303. package/components/Button/Button/Button.js +24 -15
  304. package/components/Button/Button/Button.js.map +1 -1
  305. package/components/Button/Button.d.ts +5 -1
  306. package/components/Button/Button.styles/Button.styles.js +31 -28
  307. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  308. package/components/Button/Button.styles.d.ts +1 -0
  309. package/components/Center/Center/Center.js +14 -9
  310. package/components/Center/Center/Center.js.map +1 -1
  311. package/components/Center/Center.d.ts +1 -0
  312. package/components/Checkbox/Checkbox/Checkbox.js +34 -30
  313. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  314. package/components/Checkbox/Checkbox.d.ts +3 -3
  315. package/components/ComboBox/ComboBox/ComboBox.js +38 -32
  316. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  317. package/components/ComboBox/ComboBox.d.ts +2 -0
  318. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +62 -27
  319. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  320. package/components/CurrencyInput/CurrencyInput.d.ts +4 -3
  321. package/components/CurrencyInput/CurrencyInput.md +24 -24
  322. package/components/CurrencyLabel/CurrencyLabel.md +23 -23
  323. package/components/DateInput/DateInput/DateInput.js +7 -3
  324. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  325. package/components/DateInput/DateInput.d.ts +1 -0
  326. package/components/DateInput/DateInput.md +106 -106
  327. package/components/DatePicker/DatePicker/DatePicker.js +29 -22
  328. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  329. package/components/DatePicker/DatePicker.d.ts +4 -2
  330. package/components/DatePicker/DatePicker.md +307 -307
  331. package/components/Dropdown/Dropdown/Dropdown.js +15 -13
  332. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  333. package/components/Dropdown/Dropdown.d.ts +1 -0
  334. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +15 -9
  335. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  336. package/components/DropdownMenu/DropdownMenu.d.ts +3 -2
  337. package/components/FxInput/FxInput/FxInput.js +13 -9
  338. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  339. package/components/FxInput/FxInput.d.ts +1 -0
  340. package/components/FxInput/FxInput.md +16 -16
  341. package/components/Gapped/Gapped/Gapped.js +24 -21
  342. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  343. package/components/Gapped/Gapped.d.ts +2 -0
  344. package/components/Gapped/Gapped.md +43 -43
  345. package/components/Group/Group/Group.js +22 -9
  346. package/components/Group/Group/Group.js.map +1 -1
  347. package/components/Group/Group.d.ts +1 -0
  348. package/components/Group/Group.md +18 -18
  349. package/components/Hint/Hint/Hint.js +18 -12
  350. package/components/Hint/Hint/Hint.js.map +1 -1
  351. package/components/Hint/Hint.d.ts +5 -3
  352. package/components/Input/Input/Input.js +29 -14
  353. package/components/Input/Input/Input.js.map +1 -1
  354. package/components/Input/Input.d.ts +8 -1
  355. package/components/Input/Input.md +13 -13
  356. package/components/Kebab/Kebab/Kebab.js +12 -7
  357. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  358. package/components/Kebab/Kebab.d.ts +3 -2
  359. package/components/Link/Link/Link.js +15 -11
  360. package/components/Link/Link/Link.js.map +1 -1
  361. package/components/Link/Link.d.ts +1 -0
  362. package/components/Loader/Loader/Loader.js +19 -13
  363. package/components/Loader/Loader/Loader.js.map +1 -1
  364. package/components/Loader/Loader.d.ts +1 -0
  365. package/components/MenuItem/MenuItem/MenuItem.js +19 -17
  366. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  367. package/components/MenuItem/MenuItem.d.ts +2 -1
  368. package/components/Modal/Modal/Modal.js +1 -1
  369. package/components/Modal/Modal/Modal.js.map +1 -1
  370. package/components/Modal/ModalBody/ModalBody.js +16 -10
  371. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  372. package/components/Modal/ModalBody.d.ts +1 -0
  373. package/components/Paging/Paging/Paging.js +17 -14
  374. package/components/Paging/Paging/Paging.js.map +1 -1
  375. package/components/Paging/Paging.d.ts +2 -2
  376. package/components/Paging/Paging.md +43 -43
  377. package/components/PasswordInput/PasswordInput/PasswordInput.js +18 -14
  378. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  379. package/components/PasswordInput/PasswordInput.d.ts +3 -2
  380. package/components/PasswordInput/PasswordInput.md +9 -9
  381. package/components/Radio/Radio/Radio.js +21 -20
  382. package/components/Radio/Radio/Radio.js.map +1 -1
  383. package/components/Radio/Radio.d.ts +5 -10
  384. package/components/RadioGroup/RadioGroup/RadioGroup.js +36 -29
  385. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  386. package/components/RadioGroup/RadioGroup.d.ts +11 -26
  387. package/components/RadioGroup/RadioGroup.md +43 -43
  388. package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js +12 -0
  389. package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js.map +1 -0
  390. package/components/RadioGroup/RadioGroupContext/package.json +6 -0
  391. package/components/RadioGroup/RadioGroupContext.d.ts +10 -0
  392. package/components/ScrollContainer/ScrollBar/ScrollBar.js +6 -2
  393. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  394. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +15 -9
  395. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  396. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  397. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +11 -8
  398. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  399. package/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  400. package/components/Select/Select/Select.js +16 -7
  401. package/components/Select/Select/Select.js.map +1 -1
  402. package/components/Select/Select.d.ts +1 -0
  403. package/components/SidePage/SidePage/SidePage.js +27 -3
  404. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  405. package/components/SidePage/SidePage.d.ts +3 -0
  406. package/components/SidePage/SidePageBody/SidePageBody.js +16 -10
  407. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  408. package/components/SidePage/SidePageBody.d.ts +1 -0
  409. package/components/SidePage/SidePageContainer/SidePageContainer.js +16 -9
  410. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  411. package/components/SidePage/SidePageContainer.d.ts +1 -0
  412. package/components/SidePage/SidePageFooter/SidePageFooter.js +22 -19
  413. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  414. package/components/SidePage/SidePageFooter.d.ts +1 -2
  415. package/components/SidePage/SidePageHeader/SidePageHeader.js +15 -10
  416. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  417. package/components/SidePage/SidePageHeader.d.ts +1 -0
  418. package/components/Spinner/Spinner/Spinner.js +14 -6
  419. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  420. package/components/Spinner/Spinner.d.ts +9 -0
  421. package/components/Spinner/Spinner.md +1 -0
  422. package/components/Spinner/Spinner.styles/Spinner.styles.js +12 -9
  423. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  424. package/components/Spinner/Spinner.styles.d.ts +2 -1
  425. package/components/Sticky/Sticky/Sticky.js +13 -8
  426. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  427. package/components/Sticky/Sticky.d.ts +1 -0
  428. package/components/Switcher/Switcher/Switcher.js +11 -6
  429. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  430. package/components/Switcher/Switcher.d.ts +1 -0
  431. package/components/Switcher/Switcher.styles/Switcher.styles.js +3 -1
  432. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  433. package/components/Tabs/Indicator/Indicator.js +16 -14
  434. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  435. package/components/Tabs/Indicator.d.ts +1 -0
  436. package/components/Tabs/Tab/Tab.js +31 -34
  437. package/components/Tabs/Tab/Tab.js.map +1 -1
  438. package/components/Tabs/Tab.d.ts +2 -1
  439. package/components/Tabs/Tabs/Tabs.js +20 -20
  440. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  441. package/components/Tabs/Tabs.d.ts +1 -0
  442. package/components/Tabs/Tabs.md +36 -36
  443. package/components/Textarea/Textarea/Textarea.js +21 -17
  444. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  445. package/components/Textarea/Textarea.d.ts +1 -0
  446. package/components/Textarea/Textarea.md +25 -25
  447. package/components/Toast/Toast/Toast.js +29 -14
  448. package/components/Toast/Toast/Toast.js.map +1 -1
  449. package/components/Toast/Toast.d.ts +3 -0
  450. package/components/Toast/ToastView/ToastView.js +10 -5
  451. package/components/Toast/ToastView/ToastView.js.map +1 -1
  452. package/components/Toast/ToastView.d.ts +1 -0
  453. package/components/Toggle/Toggle/Toggle.js +16 -11
  454. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  455. package/components/Toggle/Toggle.d.ts +1 -0
  456. package/components/Token/Token/Token.js +11 -4
  457. package/components/Token/Token/Token.js.map +1 -1
  458. package/components/Token/Token.d.ts +1 -0
  459. package/components/Token/Token.md +112 -112
  460. package/components/TokenInput/TokenInput/TokenInput.js +12 -6
  461. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  462. package/components/TokenInput/TokenInput.d.ts +1 -0
  463. package/components/TokenInput/TokenInput.md +79 -79
  464. package/components/Tooltip/Tooltip/Tooltip.js +26 -17
  465. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  466. package/components/Tooltip/Tooltip.d.ts +11 -22
  467. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +23 -17
  468. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  469. package/components/TooltipMenu/TooltipMenu.d.ts +3 -2
  470. package/index.d.ts +1 -1
  471. package/index.js +2 -2
  472. package/index.js.map +1 -1
  473. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +37 -10
  474. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  475. package/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  476. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +5 -3
  477. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  478. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +23 -13
  479. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  480. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  481. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +12 -4
  482. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  483. package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  484. package/internal/DateSelect/DateSelect/DateSelect.js +5 -5
  485. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  486. package/internal/DateSelect/DateSelect.d.ts +2 -2
  487. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +17 -16
  488. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  489. package/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  490. package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js +10 -0
  491. package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js.map +1 -0
  492. package/internal/DropdownContainer/DropdownContainer.styles/package.json +6 -0
  493. package/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
  494. package/internal/FocusTrap/FocusTrap/FocusTrap.js +17 -9
  495. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  496. package/internal/FocusTrap/FocusTrap.d.ts +1 -0
  497. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +13 -7
  498. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  499. package/internal/InputLikeText/InputLikeText/InputLikeText.js +11 -6
  500. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  501. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  502. package/internal/InternalMenu/InternalMenu/InternalMenu.js +24 -25
  503. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  504. package/internal/InternalMenu/InternalMenu.d.ts +2 -3
  505. package/internal/MaskedInput/MaskedInput/MaskedInput.js +7 -7
  506. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  507. package/internal/MaskedInput/MaskedInput.d.ts +2 -2
  508. package/internal/Menu/Menu/Menu.js +24 -12
  509. package/internal/Menu/Menu/Menu.js.map +1 -1
  510. package/internal/Menu/Menu.d.ts +3 -0
  511. package/internal/Menu/Menu.styles/Menu.styles.js +12 -3
  512. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  513. package/internal/Menu/Menu.styles.d.ts +3 -0
  514. package/internal/Popup/Popup/Popup.js +85 -68
  515. package/internal/Popup/Popup/Popup.js.map +1 -1
  516. package/internal/Popup/Popup.d.ts +9 -8
  517. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  518. package/internal/Popup/PopupHelper.d.ts +2 -2
  519. package/{components/FileUploader/locale → internal/Popup}/types/package.json +1 -1
  520. package/{components/FileUploader/locale → internal/Popup}/types/types.js +0 -0
  521. package/{components/FileUploader/locale → internal/Popup}/types/types.js.map +0 -0
  522. package/internal/Popup/types.d.ts +1 -0
  523. package/internal/PopupMenu/PopupMenu/PopupMenu.js +15 -10
  524. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  525. package/internal/PopupMenu/PopupMenu.d.ts +4 -3
  526. package/internal/PopupMenu/validatePositions/validatePositions.js +2 -2
  527. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  528. package/internal/PopupMenu/validatePositions.d.ts +2 -2
  529. package/internal/RenderContainer/RenderContainer/RenderContainer.js +3 -1
  530. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  531. package/internal/RenderContainer/RenderContainer.d.ts +1 -1
  532. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +2 -3
  533. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  534. package/internal/RenderLayer/RenderLayer/RenderLayer.js +20 -18
  535. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  536. package/internal/RenderLayer/RenderLayer.d.ts +3 -1
  537. package/internal/ThemePlayground/Playground/Playground.js +1 -11
  538. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  539. package/internal/ThemePlayground/Playground.d.ts +0 -1
  540. package/internal/ThemePlayground/darkTheme/darkTheme.js +1 -26
  541. package/internal/ThemePlayground/darkTheme/darkTheme.js.map +1 -1
  542. package/internal/ThemePlayground/darkTheme.d.ts +0 -15
  543. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +35 -43
  544. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  545. package/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
  546. package/internal/ThemeShowcase/ThemeShowcase.md +13 -13
  547. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  548. package/internal/ZIndex/ZIndex/ZIndex.js +20 -8
  549. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  550. package/internal/ZIndex/ZIndex.d.ts +2 -0
  551. package/internal/icons/16px/index/index.js +83 -78
  552. package/internal/icons/16px/index/index.js.map +1 -1
  553. package/internal/icons/16px/index.d.ts +17 -19
  554. package/internal/icons/SpinnerIcon/SpinnerIcon.js +5 -2
  555. package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
  556. package/internal/icons/SpinnerIcon.d.ts +4 -1
  557. package/internal/themes/DefaultTheme/DefaultTheme.js +0 -67
  558. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  559. package/internal/themes/DefaultTheme.d.ts +0 -23
  560. package/lib/ModalStack/ModalStack.js +9 -13
  561. package/lib/ModalStack/ModalStack.js.map +1 -1
  562. package/lib/callChildRef/callChildRef/callChildRef.js +14 -0
  563. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -0
  564. package/lib/callChildRef/callChildRef/package.json +6 -0
  565. package/lib/callChildRef/callChildRef.d.ts +3 -0
  566. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js +19 -0
  567. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  568. package/lib/events/fixFirefoxModifiedClickOnLabel/package.json +6 -0
  569. package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  570. package/lib/getDisplayName/getDisplayName.js +3 -0
  571. package/lib/getDisplayName/getDisplayName.js.map +1 -0
  572. package/lib/getDisplayName/package.json +6 -0
  573. package/lib/getDisplayName.d.ts +3 -0
  574. package/lib/locale/types/types.js.map +1 -1
  575. package/lib/locale/types.d.ts +0 -2
  576. package/lib/rootNode/getRootNode/getRootNode.js +25 -0
  577. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -0
  578. package/lib/rootNode/getRootNode/package.json +6 -0
  579. package/lib/rootNode/getRootNode.d.ts +3 -0
  580. package/lib/rootNode/index/index.js +2 -0
  581. package/lib/rootNode/index/index.js.map +1 -0
  582. package/{components/FileUploader → lib/rootNode}/index/package.json +1 -1
  583. package/lib/rootNode/index.d.ts +2 -0
  584. package/{components/FileUploader → lib/rootNode}/package.json +1 -1
  585. package/lib/rootNode/rootNodeDecorator/package.json +6 -0
  586. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +37 -0
  587. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -0
  588. package/lib/rootNode/rootNodeDecorator.d.ts +33 -0
  589. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +1 -1
  590. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  591. package/lib/theming/Emotion/Emotion.js +1 -0
  592. package/lib/theming/Emotion/Emotion.js.map +1 -1
  593. package/lib/theming/useTheme/package.json +6 -0
  594. package/lib/theming/useTheme/useTheme.js +5 -0
  595. package/lib/theming/useTheme/useTheme.js.map +1 -0
  596. package/lib/theming/useTheme.d.ts +1 -0
  597. package/lib/utils/utils.js +77 -19
  598. package/lib/utils/utils.js.map +1 -1
  599. package/lib/utils.d.ts +35 -1
  600. package/lib/withClassWrapper/package.json +6 -0
  601. package/lib/withClassWrapper/withClassWrapper.js +70 -0
  602. package/lib/withClassWrapper/withClassWrapper.js.map +1 -0
  603. package/lib/withClassWrapper.d.ts +71 -0
  604. package/package.json +13 -5
  605. package/typings/html-props.d.ts +123 -0
  606. package/cjs/components/FileUploader/FileUploader.d.ts +0 -31
  607. package/cjs/components/FileUploader/FileUploader.js +0 -270
  608. package/cjs/components/FileUploader/FileUploader.js.map +0 -1
  609. package/cjs/components/FileUploader/FileUploader.md +0 -67
  610. package/cjs/components/FileUploader/FileUploader.styles.d.ts +0 -19
  611. package/cjs/components/FileUploader/FileUploader.styles.js +0 -159
  612. package/cjs/components/FileUploader/FileUploader.styles.js.map +0 -1
  613. package/cjs/components/FileUploader/index.d.ts +0 -4
  614. package/cjs/components/FileUploader/index.js +0 -4
  615. package/cjs/components/FileUploader/index.js.map +0 -1
  616. package/cjs/components/FileUploader/locale/index.d.ts +0 -4
  617. package/cjs/components/FileUploader/locale/index.js +0 -11
  618. package/cjs/components/FileUploader/locale/index.js.map +0 -1
  619. package/cjs/components/FileUploader/locale/locales/en.d.ts +0 -2
  620. package/cjs/components/FileUploader/locale/locales/en.js +0 -7
  621. package/cjs/components/FileUploader/locale/locales/en.js.map +0 -1
  622. package/cjs/components/FileUploader/locale/locales/ru.d.ts +0 -2
  623. package/cjs/components/FileUploader/locale/locales/ru.js +0 -7
  624. package/cjs/components/FileUploader/locale/locales/ru.js.map +0 -1
  625. package/cjs/components/FileUploader/locale/types.d.ts +0 -6
  626. package/cjs/hooks/useDrop.d.ts +0 -11
  627. package/cjs/hooks/useDrop.js +0 -75
  628. package/cjs/hooks/useDrop.js.map +0 -1
  629. package/cjs/hooks/useMemoObject.d.ts +0 -1
  630. package/cjs/hooks/useMemoObject.js +0 -5
  631. package/cjs/hooks/useMemoObject.js.map +0 -1
  632. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +0 -11
  633. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +0 -15
  634. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +0 -1
  635. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +0 -14
  636. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +0 -107
  637. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +0 -1
  638. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -10
  639. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +0 -187
  640. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +0 -1
  641. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +0 -11
  642. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +0 -66
  643. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +0 -1
  644. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +0 -4
  645. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +0 -24
  646. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
  647. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -4
  648. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +0 -17
  649. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +0 -1
  650. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +0 -7
  651. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js +0 -16
  652. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js.map +0 -1
  653. package/cjs/internal/FileUploaderControl/fileUtils.d.ts +0 -18
  654. package/cjs/internal/FileUploaderControl/fileUtils.js +0 -55
  655. package/cjs/internal/FileUploaderControl/fileUtils.js.map +0 -1
  656. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
  657. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js +0 -4
  658. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js.map +0 -1
  659. package/cjs/internal/FileUploaderControl/hooks/useUpload.d.ts +0 -3
  660. package/cjs/internal/FileUploaderControl/hooks/useUpload.js +0 -51
  661. package/cjs/internal/FileUploaderControl/hooks/useUpload.js.map +0 -1
  662. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +0 -3
  663. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +0 -18
  664. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +0 -1
  665. package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  666. package/cjs/internal/PopupMenu/PopupMenuPositions.js +0 -15
  667. package/cjs/internal/PopupMenu/PopupMenuPositions.js.map +0 -1
  668. package/cjs/internal/TextWidthHelper/TextWidthHelper.d.ts +0 -15
  669. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +0 -34
  670. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +0 -1
  671. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
  672. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js +0 -23
  673. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js.map +0 -1
  674. package/cjs/lib/guidUtils.d.ts +0 -1
  675. package/cjs/lib/guidUtils.js +0 -5
  676. package/cjs/lib/guidUtils.js.map +0 -1
  677. package/cjs/lib/locale/useLocaleForControl.d.ts +0 -3
  678. package/cjs/lib/locale/useLocaleForControl.js +0 -14
  679. package/cjs/lib/locale/useLocaleForControl.js.map +0 -1
  680. package/cjs/lib/stringUtils.d.ts +0 -1
  681. package/cjs/lib/stringUtils.js +0 -13
  682. package/cjs/lib/stringUtils.js.map +0 -1
  683. package/components/FileUploader/FileUploader/FileUploader.js +0 -277
  684. package/components/FileUploader/FileUploader/FileUploader.js.map +0 -1
  685. package/components/FileUploader/FileUploader/package.json +0 -6
  686. package/components/FileUploader/FileUploader.d.ts +0 -31
  687. package/components/FileUploader/FileUploader.md +0 -67
  688. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +0 -56
  689. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +0 -1
  690. package/components/FileUploader/FileUploader.styles/package.json +0 -6
  691. package/components/FileUploader/FileUploader.styles.d.ts +0 -19
  692. package/components/FileUploader/index/index.js +0 -3
  693. package/components/FileUploader/index/index.js.map +0 -1
  694. package/components/FileUploader/index.d.ts +0 -4
  695. package/components/FileUploader/locale/index/index.js +0 -8
  696. package/components/FileUploader/locale/index/index.js.map +0 -1
  697. package/components/FileUploader/locale/index/package.json +0 -6
  698. package/components/FileUploader/locale/index.d.ts +0 -4
  699. package/components/FileUploader/locale/locales/en/en.js +0 -6
  700. package/components/FileUploader/locale/locales/en/en.js.map +0 -1
  701. package/components/FileUploader/locale/locales/en/package.json +0 -6
  702. package/components/FileUploader/locale/locales/en.d.ts +0 -2
  703. package/components/FileUploader/locale/locales/ru/package.json +0 -6
  704. package/components/FileUploader/locale/locales/ru/ru.js +0 -6
  705. package/components/FileUploader/locale/locales/ru/ru.js.map +0 -1
  706. package/components/FileUploader/locale/locales/ru.d.ts +0 -2
  707. package/components/FileUploader/locale/package.json +0 -6
  708. package/components/FileUploader/locale/types.d.ts +0 -6
  709. package/hooks/useDrop/package.json +0 -6
  710. package/hooks/useDrop/useDrop.js +0 -57
  711. package/hooks/useDrop/useDrop.js.map +0 -1
  712. package/hooks/useDrop.d.ts +0 -11
  713. package/hooks/useMemoObject/package.json +0 -6
  714. package/hooks/useMemoObject/useMemoObject.js +0 -6
  715. package/hooks/useMemoObject/useMemoObject.js.map +0 -1
  716. package/hooks/useMemoObject.d.ts +0 -1
  717. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js +0 -2
  718. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +0 -1
  719. package/internal/FileUploaderControl/FileUploaderControlContext/package.json +0 -6
  720. package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +0 -11
  721. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +0 -79
  722. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +0 -1
  723. package/internal/FileUploaderControl/FileUploaderControlProvider/package.json +0 -6
  724. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +0 -14
  725. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +0 -176
  726. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +0 -1
  727. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/package.json +0 -6
  728. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -10
  729. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +0 -32
  730. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +0 -1
  731. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/package.json +0 -6
  732. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +0 -11
  733. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +0 -23
  734. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
  735. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/package.json +0 -6
  736. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +0 -4
  737. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +0 -11
  738. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +0 -1
  739. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/package.json +0 -6
  740. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -4
  741. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js +0 -18
  742. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js.map +0 -1
  743. package/internal/FileUploaderControl/FileUploaderFileValidationResult/package.json +0 -6
  744. package/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +0 -7
  745. package/internal/FileUploaderControl/fileUtils/fileUtils.js +0 -85
  746. package/internal/FileUploaderControl/fileUtils/fileUtils.js.map +0 -1
  747. package/internal/FileUploaderControl/fileUtils/package.json +0 -6
  748. package/internal/FileUploaderControl/fileUtils.d.ts +0 -18
  749. package/internal/FileUploaderControl/hooks/useControlLocale/package.json +0 -6
  750. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js +0 -5
  751. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js.map +0 -1
  752. package/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
  753. package/internal/FileUploaderControl/hooks/useUpload/package.json +0 -6
  754. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js +0 -56
  755. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js.map +0 -1
  756. package/internal/FileUploaderControl/hooks/useUpload.d.ts +0 -3
  757. package/internal/FileUploaderControl/withFileUploaderControlProvider/package.json +0 -6
  758. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +0 -16
  759. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +0 -1
  760. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +0 -3
  761. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js +0 -1
  762. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js.map +0 -1
  763. package/internal/PopupMenu/PopupMenuPositions/package.json +0 -6
  764. package/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  765. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +0 -49
  766. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +0 -1
  767. package/internal/TextWidthHelper/TextWidthHelper/package.json +0 -6
  768. package/internal/TextWidthHelper/TextWidthHelper.d.ts +0 -15
  769. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js +0 -14
  770. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js.map +0 -1
  771. package/internal/TextWidthHelper/TextWidthHelper.styles/package.json +0 -6
  772. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
  773. package/lib/guidUtils/guidUtils.js +0 -4
  774. package/lib/guidUtils/guidUtils.js.map +0 -1
  775. package/lib/guidUtils/package.json +0 -6
  776. package/lib/guidUtils.d.ts +0 -1
  777. package/lib/locale/useLocaleForControl/package.json +0 -6
  778. package/lib/locale/useLocaleForControl/useLocaleForControl.js +0 -12
  779. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +0 -1
  780. package/lib/locale/useLocaleForControl.d.ts +0 -3
  781. package/lib/stringUtils/package.json +0 -6
  782. package/lib/stringUtils/stringUtils.js +0 -12
  783. package/lib/stringUtils/stringUtils.js.map +0 -1
  784. package/lib/stringUtils.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["Switcher.tsx"],"names":["Switcher","state","focusedIndex","theme","selectItem","value","props","onValueChange","_extractPropsFromItem","item","label","_extractValuesFromItems","items","map","move","step","selectedIndex","length","_focus","index","setState","handleKey","e","preventDefault","_handleFocus","currentIndex","indexOf","_handleBlur","_renderItems","i","buttonProps","checked","visuallyFocused","onClick","disableFocus","size","disabled","getLabelSizeClassName","styles","labelLarge","labelMedium","labelSmall","render","renderMain","listClassName","error","inputProps","type","onKeyDown","onFocus","onBlur","className","input","lableClassName","wrap","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","oneOfType","arrayOf","string","shape","isRequired","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyArrowHorizontal, isKeyArrowLeft, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { Group } from '../Group';\nimport { Button, ButtonSize } from '../Button';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './Switcher.styles';\nimport { getSwitcherTheme } from './switcherTheme';\n\nexport type SwitcherSize = ButtonSize;\n\nexport interface SwitcherProps extends CommonProps {\n /**\n * Список строк или список элементов типа `{ label: string, value: string }`\n */\n items: Array<string | SwitcherItem>;\n\n value?: string;\n\n onValueChange?: (value: string) => void;\n\n label?: string;\n\n error?: boolean;\n\n /** Размер */\n size?: SwitcherSize;\n\n disabled?: boolean;\n}\n\nexport interface SwitcherState {\n focusedIndex: Nullable<number>;\n}\n\ninterface SwitcherItem {\n label: string;\n value: string;\n}\n\nexport class Switcher extends React.Component<SwitcherProps, SwitcherState> {\n public static __KONTUR_REACT_UI__ = 'Switcher';\n\n public static propTypes = {\n error: PropTypes.bool,\n disabled: PropTypes.bool,\n items: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n }),\n ),\n ]).isRequired,\n label: PropTypes.string,\n value: PropTypes.string,\n onValueChange: PropTypes.func,\n };\n\n public state: SwitcherState = {\n focusedIndex: null,\n };\n\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getSwitcherTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const listClassName = cx({\n [styles.error(this.theme)]: !!this.props.error,\n });\n\n const inputProps = {\n type: 'checkbox',\n onKeyDown: this.handleKey,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n className: styles.input(),\n };\n\n const lableClassName = cx(styles.label(this.theme), this.getLabelSizeClassName());\n\n return (\n <CommonWrapper {...this.props}>\n <div>\n {this.props.label ? <div className={lableClassName}>{this.props.label}</div> : null}\n <div className={styles.wrap()}>\n <input {...inputProps} />\n <div className={listClassName}>\n <Group>{this._renderItems()}</Group>\n </div>\n </div>\n </div>\n </CommonWrapper>\n );\n }\n\n private selectItem = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private _extractPropsFromItem = (item: string | SwitcherItem): SwitcherItem => {\n return typeof item === 'object' ? item : { label: item, value: item };\n };\n\n private _extractValuesFromItems = (): string[] => {\n return this.props.items.map((item) => {\n const { value } = this._extractPropsFromItem(item);\n return value;\n });\n };\n\n private move = (step: number) => {\n let selectedIndex = this.state.focusedIndex;\n\n if (typeof selectedIndex !== 'number') {\n return;\n }\n\n const items = this._extractValuesFromItems();\n\n selectedIndex += step;\n\n if (selectedIndex < 0) {\n selectedIndex = items.length - 1;\n } else if (selectedIndex >= items.length) {\n selectedIndex = 0;\n }\n\n this._focus(selectedIndex);\n };\n\n private _focus = (index: number) => {\n this.setState({ focusedIndex: index });\n };\n\n private handleKey = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const focusedIndex = this.state.focusedIndex;\n if (typeof focusedIndex !== 'number') {\n return;\n }\n\n if (isKeyEnter(e)) {\n if (this.props.onValueChange) {\n const { value } = this._extractPropsFromItem(this.props.items[focusedIndex]);\n this.selectItem(value);\n }\n return;\n }\n\n if (isKeyArrowHorizontal(e)) {\n e.preventDefault();\n this.move(isKeyArrowLeft(e) ? -1 : 1);\n }\n };\n\n private _handleFocus = () => {\n const { value } = this.props;\n\n const items = this._extractValuesFromItems();\n const currentIndex = [...items].indexOf(value as string);\n const index = currentIndex > -1 ? currentIndex : 0;\n\n this.setState({ focusedIndex: index });\n };\n\n private _handleBlur = () => {\n this.setState({ focusedIndex: null });\n };\n\n private _renderItems = () => {\n return this.props.items.map((item, i) => {\n const { label, value } = this._extractPropsFromItem(item);\n const buttonProps = {\n checked: this.props.value === value,\n visuallyFocused: this.state.focusedIndex === i,\n onClick: () => {\n this.selectItem(value);\n },\n disableFocus: true,\n size: this.props.size,\n disabled: this.props.disabled,\n };\n return (\n <Button key={value} {...buttonProps}>\n {label}\n </Button>\n );\n });\n };\n\n private getLabelSizeClassName = (): string => {\n switch (this.props.size) {\n case 'large':\n return styles.labelLarge(this.theme);\n case 'medium':\n return styles.labelMedium(this.theme);\n case 'small':\n default:\n return styles.labelSmall(this.theme);\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["Switcher.tsx"],"names":["Switcher","rootNode","state","focusedIndex","theme","setRootNode","selectItem","value","props","onValueChange","_extractPropsFromItem","item","label","_extractValuesFromItems","items","map","move","step","selectedIndex","length","_focus","index","setState","handleKey","e","preventDefault","_handleFocus","currentIndex","indexOf","_handleBlur","_renderItems","i","buttonProps","checked","visuallyFocused","onClick","disableFocus","size","disabled","getLabelSizeClassName","styles","labelLarge","labelMedium","labelSmall","render","renderMain","listClassName","error","inputProps","type","onKeyDown","onFocus","onBlur","className","input","lableClassName","wrap","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","oneOfType","arrayOf","string","shape","isRequired","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyArrowHorizontal, isKeyArrowLeft, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { Group } from '../Group';\nimport { Button, ButtonSize } from '../Button';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Switcher.styles';\nimport { getSwitcherTheme } from './switcherTheme';\n\nexport type SwitcherSize = ButtonSize;\n\nexport interface SwitcherProps extends CommonProps {\n /**\n * Список строк или список элементов типа `{ label: string, value: string }`\n */\n items: Array<string | SwitcherItem>;\n\n value?: string;\n\n onValueChange?: (value: string) => void;\n\n label?: string;\n\n error?: boolean;\n\n /** Размер */\n size?: SwitcherSize;\n\n disabled?: boolean;\n}\n\nexport interface SwitcherState {\n focusedIndex: Nullable<number>;\n}\n\ninterface SwitcherItem {\n label: string;\n value: string;\n}\n\n@rootNode\nexport class Switcher extends React.Component<SwitcherProps, SwitcherState> {\n public static __KONTUR_REACT_UI__ = 'Switcher';\n\n public static propTypes = {\n error: PropTypes.bool,\n disabled: PropTypes.bool,\n items: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n }),\n ),\n ]).isRequired,\n label: PropTypes.string,\n value: PropTypes.string,\n onValueChange: PropTypes.func,\n };\n\n public state: SwitcherState = {\n focusedIndex: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getSwitcherTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const listClassName = cx({\n [styles.error(this.theme)]: !!this.props.error,\n });\n\n const inputProps = {\n type: 'checkbox',\n onKeyDown: this.handleKey,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n className: styles.input(),\n };\n\n const lableClassName = cx(styles.label(this.theme), this.getLabelSizeClassName());\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div>\n {this.props.label ? <div className={lableClassName}>{this.props.label}</div> : null}\n <div className={styles.wrap()}>\n <input {...inputProps} />\n <div className={listClassName}>\n <Group>{this._renderItems()}</Group>\n </div>\n </div>\n </div>\n </CommonWrapper>\n );\n }\n\n private selectItem = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private _extractPropsFromItem = (item: string | SwitcherItem): SwitcherItem => {\n return typeof item === 'object' ? item : { label: item, value: item };\n };\n\n private _extractValuesFromItems = (): string[] => {\n return this.props.items.map((item) => {\n const { value } = this._extractPropsFromItem(item);\n return value;\n });\n };\n\n private move = (step: number) => {\n let selectedIndex = this.state.focusedIndex;\n\n if (typeof selectedIndex !== 'number') {\n return;\n }\n\n const items = this._extractValuesFromItems();\n\n selectedIndex += step;\n\n if (selectedIndex < 0) {\n selectedIndex = items.length - 1;\n } else if (selectedIndex >= items.length) {\n selectedIndex = 0;\n }\n\n this._focus(selectedIndex);\n };\n\n private _focus = (index: number) => {\n this.setState({ focusedIndex: index });\n };\n\n private handleKey = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const focusedIndex = this.state.focusedIndex;\n if (typeof focusedIndex !== 'number') {\n return;\n }\n\n if (isKeyEnter(e)) {\n if (this.props.onValueChange) {\n const { value } = this._extractPropsFromItem(this.props.items[focusedIndex]);\n this.selectItem(value);\n }\n return;\n }\n\n if (isKeyArrowHorizontal(e)) {\n e.preventDefault();\n this.move(isKeyArrowLeft(e) ? -1 : 1);\n }\n };\n\n private _handleFocus = () => {\n const { value } = this.props;\n\n const items = this._extractValuesFromItems();\n const currentIndex = [...items].indexOf(value as string);\n const index = currentIndex > -1 ? currentIndex : 0;\n\n this.setState({ focusedIndex: index });\n };\n\n private _handleBlur = () => {\n this.setState({ focusedIndex: null });\n };\n\n private _renderItems = () => {\n return this.props.items.map((item, i) => {\n const { label, value } = this._extractPropsFromItem(item);\n const buttonProps = {\n checked: this.props.value === value,\n visuallyFocused: this.state.focusedIndex === i,\n onClick: () => {\n this.selectItem(value);\n },\n disableFocus: true,\n size: this.props.size,\n disabled: this.props.disabled,\n };\n return (\n <Button key={value} {...buttonProps}>\n {label}\n </Button>\n );\n });\n };\n\n private getLabelSizeClassName = (): string => {\n switch (this.props.size) {\n case 'large':\n return styles.labelLarge(this.theme);\n case 'medium':\n return styles.labelMedium(this.theme);\n case 'small':\n default:\n return styles.labelSmall(this.theme);\n }\n };\n}\n"]}
@@ -51,8 +51,10 @@ var styles = (0, _Emotion.memoizeStyle)({
51
51
  },
52
52
 
53
53
  error: function error(t) {
54
- return (0, _Emotion.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteralLoose2.default)(["\n border-radius: 2px;\n box-shadow: 0 0 0 ", " ", ";\n "])),
54
+ var insideWidth = parseInt(t.btnBorderWidth);
55
+ var outsideWidth = parseInt(t.switcherOutlineWidth) - insideWidth + "px";
56
+ return (0, _Emotion.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteralLoose2.default)(["\n border-radius: 2px;\n box-shadow: inset 0 0 0 ", "px ", ", 0 0 0 ", " ", ";\n "])),
55
57
 
56
- t.switcherOutlineWidth, t.borderColorError);
58
+ insideWidth, t.borderColorError, outsideWidth, t.borderColorError);
57
59
 
58
60
  } });exports.styles = styles;
@@ -1 +1 @@
1
- {"version":3,"sources":["Switcher.styles.ts"],"names":["styles","wrap","css","input","label","t","switcherTextColor","labelSmall","switcherLabelGapSmall","switcherLabelFontSizeSmall","switcherLabelLineHeightSmall","labelMedium","switcherLabelGapMedium","switcherLabelFontSizeMedium","switcherLabelLineHeightMedium","labelLarge","switcherLabelGapLarge","switcherLabelFontSizeLarge","switcherLabelLineHeightLarge","error","switcherOutlineWidth","borderColorError"],"mappings":"4QAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,kBAC1B;AACL,eAAOC,YAAP;;;;AAID,GANgC;;AAQjCC,EAAAA,KARiC,mBAQzB;AACN,eAAOD,YAAP;;;;;;AAMD,GAfgC;;AAiBjCE,EAAAA,KAjBiC,iBAiB3BC,CAjB2B,EAiBjB;AACd,eAAOH,YAAP;AACWG,IAAAA,CAAC,CAACC,iBADb;;;;AAKD,GAvBgC;;AAyBjCC,EAAAA,UAzBiC,sBAyBtBF,CAzBsB,EAyBZ;AACnB,eAAOH,YAAP;AACkBG,IAAAA,CAAC,CAACG,qBADpB;AAEeH,IAAAA,CAAC,CAACI,0BAFjB;AAGiBJ,IAAAA,CAAC,CAACK,4BAHnB;;AAKD,GA/BgC;;AAiCjCC,EAAAA,WAjCiC,uBAiCrBN,CAjCqB,EAiCX;AACpB,eAAOH,YAAP;AACkBG,IAAAA,CAAC,CAACO,sBADpB;AAEeP,IAAAA,CAAC,CAACQ,2BAFjB;AAGiBR,IAAAA,CAAC,CAACS,6BAHnB;;AAKD,GAvCgC;;AAyCjCC,EAAAA,UAzCiC,sBAyCtBV,CAzCsB,EAyCZ;AACnB,eAAOH,YAAP;AACkBG,IAAAA,CAAC,CAACW,qBADpB;AAEeX,IAAAA,CAAC,CAACY,0BAFjB;AAGiBZ,IAAAA,CAAC,CAACa,4BAHnB;;AAKD,GA/CgC;;AAiDjCC,EAAAA,KAjDiC,iBAiD3Bd,CAjD2B,EAiDjB;AACd,eAAOH,YAAP;;AAEsBG,IAAAA,CAAC,CAACe,oBAFxB,EAEgDf,CAAC,CAACgB,gBAFlD;;AAID,GAtDgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n wrap() {\n return css`\n display: inline-block;\n vertical-align: middle;\n `;\n },\n\n input() {\n return css`\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n `;\n },\n\n label(t: Theme) {\n return css`\n color: ${t.switcherTextColor};\n vertical-align: middle;\n display: inline-block;\n `;\n },\n\n labelSmall(t: Theme) {\n return css`\n margin-right: ${t.switcherLabelGapSmall};\n font-size: ${t.switcherLabelFontSizeSmall};\n line-height: ${t.switcherLabelLineHeightSmall};\n `;\n },\n\n labelMedium(t: Theme) {\n return css`\n margin-right: ${t.switcherLabelGapMedium};\n font-size: ${t.switcherLabelFontSizeMedium};\n line-height: ${t.switcherLabelLineHeightMedium};\n `;\n },\n\n labelLarge(t: Theme) {\n return css`\n margin-right: ${t.switcherLabelGapLarge};\n font-size: ${t.switcherLabelFontSizeLarge};\n line-height: ${t.switcherLabelLineHeightLarge};\n `;\n },\n\n error(t: Theme) {\n return css`\n border-radius: 2px;\n box-shadow: 0 0 0 ${t.switcherOutlineWidth} ${t.borderColorError};\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Switcher.styles.ts"],"names":["styles","wrap","css","input","label","t","switcherTextColor","labelSmall","switcherLabelGapSmall","switcherLabelFontSizeSmall","switcherLabelLineHeightSmall","labelMedium","switcherLabelGapMedium","switcherLabelFontSizeMedium","switcherLabelLineHeightMedium","labelLarge","switcherLabelGapLarge","switcherLabelFontSizeLarge","switcherLabelLineHeightLarge","error","insideWidth","parseInt","btnBorderWidth","outsideWidth","switcherOutlineWidth","borderColorError"],"mappings":"4QAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,kBAC1B;AACL,eAAOC,YAAP;;;;AAID,GANgC;;AAQjCC,EAAAA,KARiC,mBAQzB;AACN,eAAOD,YAAP;;;;;;AAMD,GAfgC;;AAiBjCE,EAAAA,KAjBiC,iBAiB3BC,CAjB2B,EAiBjB;AACd,eAAOH,YAAP;AACWG,IAAAA,CAAC,CAACC,iBADb;;;;AAKD,GAvBgC;;AAyBjCC,EAAAA,UAzBiC,sBAyBtBF,CAzBsB,EAyBZ;AACnB,eAAOH,YAAP;AACkBG,IAAAA,CAAC,CAACG,qBADpB;AAEeH,IAAAA,CAAC,CAACI,0BAFjB;AAGiBJ,IAAAA,CAAC,CAACK,4BAHnB;;AAKD,GA/BgC;;AAiCjCC,EAAAA,WAjCiC,uBAiCrBN,CAjCqB,EAiCX;AACpB,eAAOH,YAAP;AACkBG,IAAAA,CAAC,CAACO,sBADpB;AAEeP,IAAAA,CAAC,CAACQ,2BAFjB;AAGiBR,IAAAA,CAAC,CAACS,6BAHnB;;AAKD,GAvCgC;;AAyCjCC,EAAAA,UAzCiC,sBAyCtBV,CAzCsB,EAyCZ;AACnB,eAAOH,YAAP;AACkBG,IAAAA,CAAC,CAACW,qBADpB;AAEeX,IAAAA,CAAC,CAACY,0BAFjB;AAGiBZ,IAAAA,CAAC,CAACa,4BAHnB;;AAKD,GA/CgC;;AAiDjCC,EAAAA,KAjDiC,iBAiD3Bd,CAjD2B,EAiDjB;AACd,QAAMe,WAAW,GAAGC,QAAQ,CAAChB,CAAC,CAACiB,cAAH,CAA5B;AACA,QAAMC,YAAY,GAAMF,QAAQ,CAAChB,CAAC,CAACmB,oBAAH,CAAR,GAAmCJ,WAAzC,OAAlB;AACA,eAAOlB,YAAP;;AAE4BkB,IAAAA,WAF5B,EAE6Cf,CAAC,CAACoB,gBAF/C,EAE0EF,YAF1E,EAE0FlB,CAAC,CAACoB,gBAF5F;;AAID,GAxDgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n wrap() {\n return css`\n display: inline-block;\n vertical-align: middle;\n `;\n },\n\n input() {\n return css`\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n `;\n },\n\n label(t: Theme) {\n return css`\n color: ${t.switcherTextColor};\n vertical-align: middle;\n display: inline-block;\n `;\n },\n\n labelSmall(t: Theme) {\n return css`\n margin-right: ${t.switcherLabelGapSmall};\n font-size: ${t.switcherLabelFontSizeSmall};\n line-height: ${t.switcherLabelLineHeightSmall};\n `;\n },\n\n labelMedium(t: Theme) {\n return css`\n margin-right: ${t.switcherLabelGapMedium};\n font-size: ${t.switcherLabelFontSizeMedium};\n line-height: ${t.switcherLabelLineHeightMedium};\n `;\n },\n\n labelLarge(t: Theme) {\n return css`\n margin-right: ${t.switcherLabelGapLarge};\n font-size: ${t.switcherLabelFontSizeLarge};\n line-height: ${t.switcherLabelLineHeightLarge};\n `;\n },\n\n error(t: Theme) {\n const insideWidth = parseInt(t.btnBorderWidth);\n const outsideWidth = `${parseInt(t.switcherOutlineWidth) - insideWidth}px`;\n return css`\n border-radius: 2px;\n box-shadow: inset 0 0 0 ${insideWidth}px ${t.borderColorError}, 0 0 0 ${outsideWidth} ${t.borderColorError};\n `;\n },\n});\n"]}
@@ -17,6 +17,7 @@ export declare class Indicator extends React.Component<IndicatorProps, Indicator
17
17
  private theme;
18
18
  private eventListener;
19
19
  private removeTabUpdatesListener;
20
+ private setRootNode;
20
21
  componentDidMount(): void;
21
22
  componentWillUnmount(): void;
22
23
  componentDidUpdate(_: IndicatorProps, prevState: IndicatorState): void;
@@ -1,5 +1,4 @@
1
- "use strict";var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.Indicator = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
- var _reactDom = require("react-dom");
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");exports.__esModule = true;exports.Indicator = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
3
2
  var _lodash = _interopRequireDefault(require("lodash.throttle"));
4
3
 
5
4
  var LayoutEvents = _interopRequireWildcard(require("../../lib/LayoutEvents"));
@@ -7,9 +6,10 @@ var LayoutEvents = _interopRequireWildcard(require("../../lib/LayoutEvents"));
7
6
  var _ThemeContext = require("../../lib/theming/ThemeContext");
8
7
 
9
8
  var _Emotion = require("../../lib/theming/Emotion");
9
+ var _rootNode = require("../../lib/rootNode");
10
10
 
11
11
  var _Indicator = require("./Indicator.styles");
12
- var _TabsContext = require("./TabsContext");var
12
+ var _TabsContext = require("./TabsContext");var _class, _class2, _temp;var
13
13
 
14
14
 
15
15
 
@@ -24,7 +24,8 @@ var _TabsContext = require("./TabsContext");var
24
24
 
25
25
 
26
26
 
27
- Indicator = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Indicator, _React$Component);function Indicator() {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.
27
+
28
+ Indicator = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Indicator, _React$Component);function Indicator() {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.
28
29
 
29
30
  context = _this.context;_this.
30
31
 
@@ -39,6 +40,8 @@ Indicator = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.defaul
39
40
  null;_this.
40
41
 
41
42
  removeTabUpdatesListener = null;_this.
43
+ setRootNode = void 0;_this.
44
+
42
45
 
43
46
 
44
47
 
@@ -107,31 +110,29 @@ Indicator = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.defaul
107
110
  if (stylesUpdated) {
108
111
  _this.setState({ styles: nodeStyles });
109
112
  }
110
- }, 100);return _this;}var _proto = Indicator.prototype;_proto.componentDidMount = function componentDidMount() {this.eventListener = LayoutEvents.addListener(this.reflow);this.removeTabUpdatesListener = this.props.tabUpdates.on(this.reflow);this.reflow();};_proto.componentWillUnmount = function componentWillUnmount() {this.reflow.cancel();if (this.eventListener) {this.eventListener.remove();}if (this.removeTabUpdatesListener) {this.removeTabUpdatesListener();}};_proto.componentDidUpdate = function componentDidUpdate(_, prevState) {this.reflow();};_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 _this$context2 = this.context,getTab = _this$context2.getTab,activeTab = _this$context2.activeTab;var node = getTab(activeTab);var indicators = node && node.getIndicators && node.getIndicators() || { error: false, warning: false, success: false, primary: false, disabled: false };return /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Indicator.styles.root(this.theme), indicators.primary && _Indicator.styles.primary(this.theme), indicators.success && _Indicator.styles.success(this.theme), indicators.warning && _Indicator.styles.warning(this.theme), indicators.error && _Indicator.styles.error(this.theme), this.props.className), style: this.state.styles });};_proto.
113
+ }, 100);return _this;}var _proto = Indicator.prototype;_proto.componentDidMount = function componentDidMount() {this.eventListener = LayoutEvents.addListener(this.reflow);this.removeTabUpdatesListener = this.props.tabUpdates.on(this.reflow);this.reflow();};_proto.componentWillUnmount = function componentWillUnmount() {this.reflow.cancel();if (this.eventListener) {this.eventListener.remove();}if (this.removeTabUpdatesListener) {this.removeTabUpdatesListener();}};_proto.componentDidUpdate = function componentDidUpdate(_, prevState) {this.reflow();};_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 _this$context2 = this.context,getTab = _this$context2.getTab,activeTab = _this$context2.activeTab;var node = getTab(activeTab);var indicators = node && node.getIndicators && node.getIndicators() || { error: false, warning: false, success: false, primary: false, disabled: false };return /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Indicator.styles.root(this.theme), indicators.primary && _Indicator.styles.primary(this.theme), indicators.success && _Indicator.styles.success(this.theme), indicators.warning && _Indicator.styles.warning(this.theme), indicators.error && _Indicator.styles.error(this.theme), this.props.className), style: this.state.styles, ref: this.setRootNode });};_proto.
111
114
 
112
115
  getStyles = function getStyles(node) {
113
- if (node instanceof _react.default.Component) {
114
- node = (0, _reactDom.findDOMNode)(node);
115
- }
116
+ var htmlNode = (0, _rootNode.getRootNode)(node);
116
117
 
117
- if (node instanceof HTMLElement) {
118
- var rect = node.getBoundingClientRect();
118
+ if (htmlNode && htmlNode instanceof HTMLElement) {
119
+ var rect = htmlNode.getBoundingClientRect();
119
120
  if (this.props.vertical) {
120
121
  return {
121
122
  width: this.theme.tabBorderWidth,
122
- left: node.offsetLeft,
123
- top: node.offsetTop,
123
+ left: htmlNode.offsetLeft,
124
+ top: htmlNode.offsetTop,
124
125
  height: rect.bottom - rect.top };
125
126
 
126
127
  }
127
128
 
128
129
  var tabBorderWidth = parseInt(this.theme.tabBorderWidth, 10) || 0;
129
130
  return {
130
- left: node.offsetLeft,
131
- top: node.offsetHeight + node.offsetTop - tabBorderWidth,
131
+ left: htmlNode.offsetLeft,
132
+ top: htmlNode.offsetHeight + htmlNode.offsetTop - tabBorderWidth,
132
133
  width: rect.right - rect.left };
133
134
 
134
135
  }
135
136
 
136
137
  return {};
137
- };return Indicator;}(_react.default.Component);exports.Indicator = Indicator;Indicator.contextType = _TabsContext.TabsContext;
138
+ };return Indicator;}(_react.default.Component), _class2.contextType = _TabsContext.TabsContext, _temp)) || _class;exports.Indicator = Indicator;
@@ -1 +1 @@
1
- {"version":3,"sources":["Indicator.tsx"],"names":["Indicator","context","state","styles","theme","eventListener","removeTabUpdatesListener","reflow","getTab","activeTab","node","nodeStyles","getStyles","stylesUpdated","some","prop","setState","componentDidMount","LayoutEvents","addListener","props","tabUpdates","on","componentWillUnmount","cancel","remove","componentDidUpdate","_","prevState","render","renderMain","indicators","getIndicators","error","warning","success","primary","disabled","root","className","React","Component","HTMLElement","rect","getBoundingClientRect","vertical","width","tabBorderWidth","left","offsetLeft","top","offsetTop","height","bottom","parseInt","offsetHeight","right","contextType","TabsContext"],"mappings":"4UAAA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,4C;;;;;;;;;;;;;;;AAeaA,S;;AAEJC,IAAAA,O,GAA2B,MAAKA,O;;AAEhCC,IAAAA,K,GAAwB;AAC7BC,MAAAA,MAAM,EAAE,EADqB,E;;;AAIvBC,IAAAA,K;;AAEAC,IAAAA,a;;AAEH,Q;;AAEGC,IAAAA,wB,GAAiD,I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DjDC,IAAAA,M,GAAS,qBAAS,YAAM;AACA,YAAKN,OADL,CACtBO,MADsB,iBACtBA,MADsB,CACdC,SADc,iBACdA,SADc;AAE9B,UAAMC,IAAI,GAAGF,MAAM,CAACC,SAAD,CAAnB;AACA,UAAME,UAAU,GAAG,MAAKC,SAAL,CAAeF,IAAf,CAAnB;AACA,UAAMG,aAAa,GAAG,CAAC,MAAD,EAAS,KAAT,EAAgB,OAAhB,EAAyB,QAAzB,EAAmCC,IAAnC;AACpB,gBAACC,IAAD,UAAUJ,UAAU,CAACI,IAAD,CAAV,KAAkD,MAAKb,KAAL,CAAWC,MAAX,CAAkBY,IAAlB,CAA5D,EADoB,CAAtB;;AAGA,UAAIF,aAAJ,EAAmB;AACjB,cAAKG,QAAL,CAAc,EAAEb,MAAM,EAAEQ,UAAV,EAAd;AACD;AACF,KAVgB,EAUd,GAVc,C,uDAzDVM,iB,GAAP,6BAA2B,CACzB,KAAKZ,aAAL,GAAqBa,YAAY,CAACC,WAAb,CAAyB,KAAKZ,MAA9B,CAArB,CACA,KAAKD,wBAAL,GAAgC,KAAKc,KAAL,CAAWC,UAAX,CAAsBC,EAAtB,CAAyB,KAAKf,MAA9B,CAAhC,CACA,KAAKA,MAAL,GACD,C,QAEMgB,oB,GAAP,gCAA8B,CAC5B,KAAKhB,MAAL,CAAYiB,MAAZ,GAEA,IAAI,KAAKnB,aAAT,EAAwB,CACtB,KAAKA,aAAL,CAAmBoB,MAAnB,GACD,CACD,IAAI,KAAKnB,wBAAT,EAAmC,CACjC,KAAKA,wBAAL,GACD,CACF,C,QAEMoB,kB,GAAP,4BAA0BC,CAA1B,EAA6CC,SAA7C,EAAwE,CACtE,KAAKrB,MAAL,GACD,C,QAEMsB,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACzB,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAAC0B,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,QAEOA,U,GAAR,sBAAqB,sBACW,KAAK7B,OADhB,CACXO,MADW,kBACXA,MADW,CACHC,SADG,kBACHA,SADG,CAEnB,IAAMC,IAAI,GAAGF,MAAM,CAACC,SAAD,CAAnB,CACA,IAAMsB,UAAyB,GAAIrB,IAAI,IAAIA,IAAI,CAACsB,aAAb,IAA8BtB,IAAI,CAACsB,aAAL,EAA/B,IAAwD,EACxFC,KAAK,EAAE,KADiF,EAExFC,OAAO,EAAE,KAF+E,EAGxFC,OAAO,EAAE,KAH+E,EAIxFC,OAAO,EAAE,KAJ+E,EAKxFC,QAAQ,EAAE,KAL8E,EAA1F,CAOA,oBACE,sCACE,SAAS,EAAE,iBACTlC,kBAAOmC,IAAP,CAAY,KAAKlC,KAAjB,CADS,EAET2B,UAAU,CAACK,OAAX,IAAsBjC,kBAAOiC,OAAP,CAAe,KAAKhC,KAApB,CAFb,EAGT2B,UAAU,CAACI,OAAX,IAAsBhC,kBAAOgC,OAAP,CAAe,KAAK/B,KAApB,CAHb,EAIT2B,UAAU,CAACG,OAAX,IAAsB/B,kBAAO+B,OAAP,CAAe,KAAK9B,KAApB,CAJb,EAKT2B,UAAU,CAACE,KAAX,IAAoB9B,kBAAO8B,KAAP,CAAa,KAAK7B,KAAlB,CALX,EAMT,KAAKgB,KAAL,CAAWmB,SANF,CADb,EASE,KAAK,EAAE,KAAKrC,KAAL,CAAWC,MATpB,GADF,CAaD,C;;AAcOS,EAAAA,S,GAAR,mBAAkBF,IAAlB,EAAkD;AAChD,QAAIA,IAAI,YAAY8B,eAAMC,SAA1B,EAAqC;AACnC/B,MAAAA,IAAI,GAAG,2BAAYA,IAAZ,CAAP;AACD;;AAED,QAAIA,IAAI,YAAYgC,WAApB,EAAiC;AAC/B,UAAMC,IAAI,GAAGjC,IAAI,CAACkC,qBAAL,EAAb;AACA,UAAI,KAAKxB,KAAL,CAAWyB,QAAf,EAAyB;AACvB,eAAO;AACLC,UAAAA,KAAK,EAAE,KAAK1C,KAAL,CAAW2C,cADb;AAELC,UAAAA,IAAI,EAAEtC,IAAI,CAACuC,UAFN;AAGLC,UAAAA,GAAG,EAAExC,IAAI,CAACyC,SAHL;AAILC,UAAAA,MAAM,EAAET,IAAI,CAACU,MAAL,GAAcV,IAAI,CAACO,GAJtB,EAAP;;AAMD;;AAED,UAAMH,cAAc,GAAGO,QAAQ,CAAC,KAAKlD,KAAL,CAAW2C,cAAZ,EAA4B,EAA5B,CAAR,IAA2C,CAAlE;AACA,aAAO;AACLC,QAAAA,IAAI,EAAEtC,IAAI,CAACuC,UADN;AAELC,QAAAA,GAAG,EAAExC,IAAI,CAAC6C,YAAL,GAAoB7C,IAAI,CAACyC,SAAzB,GAAqCJ,cAFrC;AAGLD,QAAAA,KAAK,EAAEH,IAAI,CAACa,KAAL,GAAab,IAAI,CAACK,IAHpB,EAAP;;AAKD;;AAED,WAAO,EAAP;AACD,G,oBA9G4BR,eAAMC,S,gCAAxBzC,S,CACGyD,W,GAAcC,wB","sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport throttle from 'lodash.throttle';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './Indicator.styles';\nimport { TabsContext, TabsContextType } from './TabsContext';\nimport { TabIndicators } from './Tab';\n\nexport interface IndicatorProps {\n className?: string;\n tabUpdates: {\n on: (x0: () => void) => () => void;\n };\n vertical: boolean;\n}\n\nexport interface IndicatorState {\n styles: React.CSSProperties;\n}\n\nexport class Indicator extends React.Component<IndicatorProps, IndicatorState> {\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public state: IndicatorState = {\n styles: {},\n };\n\n private theme!: Theme;\n\n private eventListener: Nullable<{\n remove: () => void;\n }> = null;\n\n private removeTabUpdatesListener: Nullable<() => void> = null;\n\n public componentDidMount() {\n this.eventListener = LayoutEvents.addListener(this.reflow);\n this.removeTabUpdatesListener = this.props.tabUpdates.on(this.reflow);\n this.reflow();\n }\n\n public componentWillUnmount() {\n this.reflow.cancel();\n\n if (this.eventListener) {\n this.eventListener.remove();\n }\n if (this.removeTabUpdatesListener) {\n this.removeTabUpdatesListener();\n }\n }\n\n public componentDidUpdate(_: IndicatorProps, prevState: IndicatorState) {\n this.reflow();\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 { getTab, activeTab } = this.context;\n const node = getTab(activeTab);\n const indicators: TabIndicators = (node && node.getIndicators && node.getIndicators()) || {\n error: false,\n warning: false,\n success: false,\n primary: false,\n disabled: false,\n };\n return (\n <div\n className={cx(\n styles.root(this.theme),\n indicators.primary && styles.primary(this.theme),\n indicators.success && styles.success(this.theme),\n indicators.warning && styles.warning(this.theme),\n indicators.error && styles.error(this.theme),\n this.props.className,\n )}\n style={this.state.styles}\n />\n );\n }\n\n private reflow = throttle(() => {\n const { getTab, activeTab } = this.context;\n const node = getTab(activeTab);\n const nodeStyles = this.getStyles(node);\n const stylesUpdated = ['left', 'top', 'width', 'height'].some(\n (prop) => nodeStyles[prop as keyof React.CSSProperties] !== this.state.styles[prop as keyof React.CSSProperties],\n );\n if (stylesUpdated) {\n this.setState({ styles: nodeStyles });\n }\n }, 100);\n\n private getStyles(node: any): React.CSSProperties {\n if (node instanceof React.Component) {\n node = findDOMNode(node);\n }\n\n if (node instanceof HTMLElement) {\n const rect = node.getBoundingClientRect();\n if (this.props.vertical) {\n return {\n width: this.theme.tabBorderWidth,\n left: node.offsetLeft,\n top: node.offsetTop,\n height: rect.bottom - rect.top,\n };\n }\n\n const tabBorderWidth = parseInt(this.theme.tabBorderWidth, 10) || 0;\n return {\n left: node.offsetLeft,\n top: node.offsetHeight + node.offsetTop - tabBorderWidth,\n width: rect.right - rect.left,\n };\n }\n\n return {};\n }\n}\n"]}
1
+ {"version":3,"sources":["Indicator.tsx"],"names":["Indicator","rootNode","context","state","styles","theme","eventListener","removeTabUpdatesListener","setRootNode","reflow","getTab","activeTab","node","nodeStyles","getStyles","stylesUpdated","some","prop","setState","componentDidMount","LayoutEvents","addListener","props","tabUpdates","on","componentWillUnmount","cancel","remove","componentDidUpdate","_","prevState","render","renderMain","indicators","getIndicators","error","warning","success","primary","disabled","root","className","htmlNode","HTMLElement","rect","getBoundingClientRect","vertical","width","tabBorderWidth","left","offsetLeft","top","offsetTop","height","bottom","parseInt","offsetHeight","right","React","Component","contextType","TabsContext"],"mappings":"4UAAA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA,4C;;;;;;;;;;;;;;;;AAgBaA,S,OADZC,kB;;AAGQC,IAAAA,O,GAA2B,MAAKA,O;;AAEhCC,IAAAA,K,GAAwB;AAC7BC,MAAAA,MAAM,EAAE,EADqB,E;;;AAIvBC,IAAAA,K;;AAEAC,IAAAA,a;;AAEH,Q;;AAEGC,IAAAA,wB,GAAiD,I;AACjDC,IAAAA,W;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DAC,IAAAA,M,GAAS,qBAAS,YAAM;AACA,YAAKP,OADL,CACtBQ,MADsB,iBACtBA,MADsB,CACdC,SADc,iBACdA,SADc;AAE9B,UAAMC,IAAI,GAAGF,MAAM,CAACC,SAAD,CAAnB;AACA,UAAME,UAAU,GAAG,MAAKC,SAAL,CAAeF,IAAf,CAAnB;AACA,UAAMG,aAAa,GAAG,CAAC,MAAD,EAAS,KAAT,EAAgB,OAAhB,EAAyB,QAAzB,EAAmCC,IAAnC;AACpB,gBAACC,IAAD,UAAUJ,UAAU,CAACI,IAAD,CAAV,KAAkD,MAAKd,KAAL,CAAWC,MAAX,CAAkBa,IAAlB,CAA5D,EADoB,CAAtB;;AAGA,UAAIF,aAAJ,EAAmB;AACjB,cAAKG,QAAL,CAAc,EAAEd,MAAM,EAAES,UAAV,EAAd;AACD;AACF,KAVgB,EAUd,GAVc,C,uDA1DVM,iB,GAAP,6BAA2B,CACzB,KAAKb,aAAL,GAAqBc,YAAY,CAACC,WAAb,CAAyB,KAAKZ,MAA9B,CAArB,CACA,KAAKF,wBAAL,GAAgC,KAAKe,KAAL,CAAWC,UAAX,CAAsBC,EAAtB,CAAyB,KAAKf,MAA9B,CAAhC,CACA,KAAKA,MAAL,GACD,C,QAEMgB,oB,GAAP,gCAA8B,CAC5B,KAAKhB,MAAL,CAAYiB,MAAZ,GAEA,IAAI,KAAKpB,aAAT,EAAwB,CACtB,KAAKA,aAAL,CAAmBqB,MAAnB,GACD,CACD,IAAI,KAAKpB,wBAAT,EAAmC,CACjC,KAAKA,wBAAL,GACD,CACF,C,QAEMqB,kB,GAAP,4BAA0BC,CAA1B,EAA6CC,SAA7C,EAAwE,CACtE,KAAKrB,MAAL,GACD,C,QAEMsB,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAAC1B,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAAC2B,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,QAEOA,U,GAAR,sBAAqB,sBACW,KAAK9B,OADhB,CACXQ,MADW,kBACXA,MADW,CACHC,SADG,kBACHA,SADG,CAEnB,IAAMC,IAAI,GAAGF,MAAM,CAACC,SAAD,CAAnB,CACA,IAAMsB,UAAyB,GAAIrB,IAAI,IAAIA,IAAI,CAACsB,aAAb,IAA8BtB,IAAI,CAACsB,aAAL,EAA/B,IAAwD,EACxFC,KAAK,EAAE,KADiF,EAExFC,OAAO,EAAE,KAF+E,EAGxFC,OAAO,EAAE,KAH+E,EAIxFC,OAAO,EAAE,KAJ+E,EAKxFC,QAAQ,EAAE,KAL8E,EAA1F,CAOA,oBACE,sCACE,SAAS,EAAE,iBACTnC,kBAAOoC,IAAP,CAAY,KAAKnC,KAAjB,CADS,EAET4B,UAAU,CAACK,OAAX,IAAsBlC,kBAAOkC,OAAP,CAAe,KAAKjC,KAApB,CAFb,EAGT4B,UAAU,CAACI,OAAX,IAAsBjC,kBAAOiC,OAAP,CAAe,KAAKhC,KAApB,CAHb,EAIT4B,UAAU,CAACG,OAAX,IAAsBhC,kBAAOgC,OAAP,CAAe,KAAK/B,KAApB,CAJb,EAKT4B,UAAU,CAACE,KAAX,IAAoB/B,kBAAO+B,KAAP,CAAa,KAAK9B,KAAlB,CALX,EAMT,KAAKiB,KAAL,CAAWmB,SANF,CADb,EASE,KAAK,EAAE,KAAKtC,KAAL,CAAWC,MATpB,EAUE,GAAG,EAAE,KAAKI,WAVZ,GADF,CAcD,C;;AAcOM,EAAAA,S,GAAR,mBAAkBF,IAAlB,EAAkD;AAChD,QAAM8B,QAAQ,GAAG,2BAAY9B,IAAZ,CAAjB;;AAEA,QAAI8B,QAAQ,IAAIA,QAAQ,YAAYC,WAApC,EAAiD;AAC/C,UAAMC,IAAI,GAAGF,QAAQ,CAACG,qBAAT,EAAb;AACA,UAAI,KAAKvB,KAAL,CAAWwB,QAAf,EAAyB;AACvB,eAAO;AACLC,UAAAA,KAAK,EAAE,KAAK1C,KAAL,CAAW2C,cADb;AAELC,UAAAA,IAAI,EAAEP,QAAQ,CAACQ,UAFV;AAGLC,UAAAA,GAAG,EAAET,QAAQ,CAACU,SAHT;AAILC,UAAAA,MAAM,EAAET,IAAI,CAACU,MAAL,GAAcV,IAAI,CAACO,GAJtB,EAAP;;AAMD;;AAED,UAAMH,cAAc,GAAGO,QAAQ,CAAC,KAAKlD,KAAL,CAAW2C,cAAZ,EAA4B,EAA5B,CAAR,IAA2C,CAAlE;AACA,aAAO;AACLC,QAAAA,IAAI,EAAEP,QAAQ,CAACQ,UADV;AAELC,QAAAA,GAAG,EAAET,QAAQ,CAACc,YAAT,GAAwBd,QAAQ,CAACU,SAAjC,GAA6CJ,cAF7C;AAGLD,QAAAA,KAAK,EAAEH,IAAI,CAACa,KAAL,GAAab,IAAI,CAACK,IAHpB,EAAP;;AAKD;;AAED,WAAO,EAAP;AACD,G,oBA9G4BS,eAAMC,S,WACrBC,W,GAAcC,wB","sourcesContent":["import React from 'react';\nimport throttle from 'lodash.throttle';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Indicator.styles';\nimport { TabsContext, TabsContextType } from './TabsContext';\nimport { TabIndicators } from './Tab';\n\nexport interface IndicatorProps {\n className?: string;\n tabUpdates: {\n on: (x0: () => void) => () => void;\n };\n vertical: boolean;\n}\n\nexport interface IndicatorState {\n styles: React.CSSProperties;\n}\n\n@rootNode\nexport class Indicator extends React.Component<IndicatorProps, IndicatorState> {\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public state: IndicatorState = {\n styles: {},\n };\n\n private theme!: Theme;\n\n private eventListener: Nullable<{\n remove: () => void;\n }> = null;\n\n private removeTabUpdatesListener: Nullable<() => void> = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.eventListener = LayoutEvents.addListener(this.reflow);\n this.removeTabUpdatesListener = this.props.tabUpdates.on(this.reflow);\n this.reflow();\n }\n\n public componentWillUnmount() {\n this.reflow.cancel();\n\n if (this.eventListener) {\n this.eventListener.remove();\n }\n if (this.removeTabUpdatesListener) {\n this.removeTabUpdatesListener();\n }\n }\n\n public componentDidUpdate(_: IndicatorProps, prevState: IndicatorState) {\n this.reflow();\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 { getTab, activeTab } = this.context;\n const node = getTab(activeTab);\n const indicators: TabIndicators = (node && node.getIndicators && node.getIndicators()) || {\n error: false,\n warning: false,\n success: false,\n primary: false,\n disabled: false,\n };\n return (\n <div\n className={cx(\n styles.root(this.theme),\n indicators.primary && styles.primary(this.theme),\n indicators.success && styles.success(this.theme),\n indicators.warning && styles.warning(this.theme),\n indicators.error && styles.error(this.theme),\n this.props.className,\n )}\n style={this.state.styles}\n ref={this.setRootNode}\n />\n );\n }\n\n private reflow = throttle(() => {\n const { getTab, activeTab } = this.context;\n const node = getTab(activeTab);\n const nodeStyles = this.getStyles(node);\n const stylesUpdated = ['left', 'top', 'width', 'height'].some(\n (prop) => nodeStyles[prop as keyof React.CSSProperties] !== this.state.styles[prop as keyof React.CSSProperties],\n );\n if (stylesUpdated) {\n this.setState({ styles: nodeStyles });\n }\n }, 100);\n\n private getStyles(node: any): React.CSSProperties {\n const htmlNode = getRootNode(node);\n\n if (htmlNode && htmlNode instanceof HTMLElement) {\n const rect = htmlNode.getBoundingClientRect();\n if (this.props.vertical) {\n return {\n width: this.theme.tabBorderWidth,\n left: htmlNode.offsetLeft,\n top: htmlNode.offsetTop,\n height: rect.bottom - rect.top,\n };\n }\n\n const tabBorderWidth = parseInt(this.theme.tabBorderWidth, 10) || 0;\n return {\n left: htmlNode.offsetLeft,\n top: htmlNode.offsetHeight + htmlNode.offsetTop - tabBorderWidth,\n width: rect.right - rect.left,\n };\n }\n\n return {};\n }\n}\n"]}
@@ -96,7 +96,8 @@ export declare class Tab<T extends string = string> extends React.Component<TabP
96
96
  state: TabState;
97
97
  private theme;
98
98
  private tabComponent;
99
- UNSAFE_componentWillMount(): void;
99
+ private setRootNode;
100
+ constructor(props: TabProps<T>);
100
101
  componentDidMount(): void;
101
102
  componentDidUpdate(): void;
102
103
  componentWillUnmount(): void;
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.Tab = void 0;var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.Tab = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
2
  var _propTypes = _interopRequireDefault(require("prop-types"));
3
3
  var _invariant = _interopRequireDefault(require("invariant"));
4
4
 
@@ -11,9 +11,10 @@ var _ThemeContext = require("../../lib/theming/ThemeContext");
11
11
 
12
12
  var _CommonWrapper = require("../../internal/CommonWrapper");
13
13
  var _Emotion = require("../../lib/theming/Emotion");
14
+ var _rootNode = require("../../lib/rootNode");
14
15
 
15
16
  var _TabsContext = require("./TabsContext");
16
- var _Tab = require("./Tab.styles");
17
+ var _Tab = require("./Tab.styles");var _class, _class2, _temp;
17
18
 
18
19
 
19
20
 
@@ -104,11 +105,10 @@ var _Tab = require("./Tab.styles");
104
105
  *
105
106
  * Works only inside Tabs component, otherwise throws
106
107
  */var
107
- Tab = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Tab, _React$Component);function Tab() {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.
108
108
 
109
+ Tab = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Tab, _React$Component);
109
110
 
110
111
 
111
- context = _this.context;_this.
112
112
 
113
113
 
114
114
 
@@ -123,12 +123,8 @@ Tab = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Tab
123
123
 
124
124
 
125
125
 
126
- state = {
127
- focusedByKeyboard: false };_this.
128
126
 
129
127
 
130
- theme = void 0;_this.
131
- tabComponent = null;_this.
132
128
 
133
129
 
134
130
 
@@ -137,6 +133,14 @@ Tab = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Tab
137
133
 
138
134
 
139
135
 
136
+ function Tab(props) {var _this;
137
+ _this = _React$Component.call(this, props) || this;_this.context = _this.context;_this.state = { focusedByKeyboard: false };_this.theme = void 0;_this.tabComponent = null;_this.setRootNode = void 0;_this.
138
+
139
+
140
+
141
+
142
+
143
+
140
144
 
141
145
 
142
146
 
@@ -301,4 +305,4 @@ Tab = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Tab
301
305
  }
302
306
 
303
307
  _this.setState({ focusedByKeyboard: false });
304
- };return _this;}var _proto = Tab.prototype;_proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {(0, _invariant.default)(this.context !== _TabsContext.TabsContextDefaultValue, 'Tab should be placed inside Tabs component');};_proto.componentDidMount = function componentDidMount() {var id = this.getId();if (typeof id === 'string') {this.context.addTab(id, this.getTabInstance);}};_proto.componentDidUpdate = function componentDidUpdate() {if (this.context.activeTab === this.props.id) {this.context.notifyUpdate();}};_proto.componentWillUnmount = function componentWillUnmount() {var id = this.getId();if (typeof id === 'string') {this.context.removeTab(id);}};_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.getIndicators = function getIndicators() {return { error: Boolean(this.props.error), warning: Boolean(this.props.warning), success: Boolean(this.props.success), primary: Boolean(this.props.primary), disabled: Boolean(this.props.disabled) };};_proto.renderMain = function renderMain() {var _cx;var _this$props = this.props,children = _this$props.children,disabled = _this$props.disabled,error = _this$props.error,warning = _this$props.warning,success = _this$props.success,primary = _this$props.primary,_this$props$component = _this$props.component,Component = _this$props$component === void 0 ? Tab.defaultProps.component : _this$props$component,href = _this$props.href;var isActive = false;var isVertical = false;var id = this.getId();if (typeof id === 'string') {isActive = this.context.activeTab === this.getId();isVertical = this.context.vertical;}var orientationStyles = isVertical ? _Tab.verticalStyles : _Tab.horizontalStyles;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement(Component, { className: (0, _Emotion.cx)((_cx = {}, _cx[_Tab.styles.root(this.theme)] = true, _cx[_Tab.styles.vertical(this.theme)] = !!isVertical, _cx[orientationStyles.primary(this.theme)] = !!primary, _cx[orientationStyles.success(this.theme)] = !!success, _cx[orientationStyles.warning(this.theme)] = !!warning, _cx[orientationStyles.error(this.theme)] = !!error, _cx[_Tab.styles.active()] = !!isActive, _cx[orientationStyles.active(this.theme)] = !!isActive, _cx[_Tab.styles.disabled(this.theme)] = !!disabled, _cx[orientationStyles.disabled()] = !!disabled, _cx)), onBlur: this.handleBlur, onClick: this.switchTab, onFocus: this.handleFocus, onKeyDown: this.handleKeyDown, tabIndex: disabled ? -1 : 0, ref: (0, _utils.isFunctionalComponent)(Component) ? null : this.refTabComponent, href: href }, /*#__PURE__*/_react.default.createElement(_ResizeDetector.ResizeDetector, { onResize: this.context.notifyUpdate }, children), this.state.focusedByKeyboard && /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Tab.styles.focus(this.theme), _Tab.globalClasses.focus) })));};return Tab;}(_react.default.Component);exports.Tab = Tab;Tab.__KONTUR_REACT_UI__ = 'Tab';Tab.contextType = _TabsContext.TabsContext;Tab.propTypes = { children: _propTypes.default.node, disabled: _propTypes.default.bool, href: _propTypes.default.string.isRequired, onClick: _propTypes.default.func, onKeyDown: _propTypes.default.func };Tab.defaultProps = { component: 'a', href: '' };
308
+ };(0, _invariant.default)(_this.context !== _TabsContext.TabsContextDefaultValue, 'Tab should be placed inside Tabs component');return _this;}var _proto = Tab.prototype;_proto.componentDidMount = function componentDidMount() {var id = this.getId();if (typeof id === 'string') {this.context.addTab(id, this.getTabInstance);}};_proto.componentDidUpdate = function componentDidUpdate() {if (this.context.activeTab === this.props.id) {this.context.notifyUpdate();}};_proto.componentWillUnmount = function componentWillUnmount() {var id = this.getId();if (typeof id === 'string') {this.context.removeTab(id);}};_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.getIndicators = function getIndicators() {return { error: Boolean(this.props.error), warning: Boolean(this.props.warning), success: Boolean(this.props.success), primary: Boolean(this.props.primary), disabled: Boolean(this.props.disabled) };};_proto.renderMain = function renderMain() {var _cx;var _this$props = this.props,children = _this$props.children,disabled = _this$props.disabled,error = _this$props.error,warning = _this$props.warning,success = _this$props.success,primary = _this$props.primary,_this$props$component = _this$props.component,Component = _this$props$component === void 0 ? Tab.defaultProps.component : _this$props$component,href = _this$props.href;var isActive = false;var isVertical = false;var id = this.getId();if (typeof id === 'string') {isActive = this.context.activeTab === this.getId();isVertical = this.context.vertical;}var orientationStyles = isVertical ? _Tab.verticalStyles : _Tab.horizontalStyles;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(Component, { className: (0, _Emotion.cx)((_cx = {}, _cx[_Tab.styles.root(this.theme)] = true, _cx[_Tab.styles.vertical(this.theme)] = !!isVertical, _cx[orientationStyles.primary(this.theme)] = !!primary, _cx[orientationStyles.success(this.theme)] = !!success, _cx[orientationStyles.warning(this.theme)] = !!warning, _cx[orientationStyles.error(this.theme)] = !!error, _cx[_Tab.styles.active()] = !!isActive, _cx[orientationStyles.active(this.theme)] = !!isActive, _cx[_Tab.styles.disabled(this.theme)] = !!disabled, _cx[orientationStyles.disabled()] = !!disabled, _cx)), onBlur: this.handleBlur, onClick: this.switchTab, onFocus: this.handleFocus, onKeyDown: this.handleKeyDown, tabIndex: disabled ? -1 : 0, ref: (0, _utils.isFunctionalComponent)(Component) ? null : this.refTabComponent, href: href }, /*#__PURE__*/_react.default.createElement(_ResizeDetector.ResizeDetector, { onResize: this.context.notifyUpdate }, children), this.state.focusedByKeyboard && /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Tab.styles.focus(this.theme), _Tab.globalClasses.focus) })));};return Tab;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Tab', _class2.contextType = _TabsContext.TabsContext, _class2.propTypes = { children: _propTypes.default.node, disabled: _propTypes.default.bool, href: _propTypes.default.string.isRequired, onClick: _propTypes.default.func, onKeyDown: _propTypes.default.func }, _class2.defaultProps = { component: 'a', href: '' }, _temp)) || _class;exports.Tab = Tab;
@@ -1 +1 @@
1
- {"version":3,"sources":["Tab.tsx"],"names":["Tab","context","state","focusedByKeyboard","theme","tabComponent","getUnderlyingNode","getId","props","id","href","refTabComponent","instance","getTabInstance","switchTab","event","disabled","preventDefault","onClick","defaultPrevented","component","handleKeyDown","e","onKeyDown","delta","shiftFocus","handleFocus","requestAnimationFrame","keyListener","isTabPressed","isArrowPressed","setState","handleBlur","UNSAFE_componentWillMount","TabsContextDefaultValue","componentDidMount","addTab","componentDidUpdate","activeTab","notifyUpdate","componentWillUnmount","removeTab","render","renderMain","getIndicators","error","Boolean","warning","success","primary","children","Component","defaultProps","isActive","isVertical","vertical","orientationStyles","verticalStyles","horizontalStyles","styles","root","active","focus","globalClasses","React","__KONTUR_REACT_UI__","contextType","TabsContext","propTypes","PropTypes","node","bool","string","isRequired","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Nullable } from '../../typings/utility-types';\nimport { isFunctionalComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { TabsContext, TabsContextType, TabsContextDefaultValue } from './TabsContext';\nimport { styles, horizontalStyles, verticalStyles, globalClasses } from './Tab.styles';\n\nexport interface TabIndicators {\n error: boolean;\n warning: boolean;\n success: boolean;\n primary: boolean;\n disabled: boolean;\n}\n\nexport interface TabProps<T extends string = string> extends CommonProps {\n /**\n * Tab content\n */\n children?: React.ReactNode;\n\n /**\n * Component to use as a tab\n */\n component?: React.ComponentType<any> | string;\n\n /**\n * Link href\n */\n href?: string;\n\n /**\n * Tab identifier\n */\n id?: T;\n\n /**\n * Click event\n */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /**\n * Click event\n */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /**\n * Disabled indicator\n */\n disabled?: boolean;\n\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * Success indicator\n */\n success?: boolean;\n\n /**\n * Primary indicator\n */\n primary?: boolean;\n\n /**\n * Style property\n */\n style?: React.CSSProperties;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\n/**\n * Tab element of Tabs component\n *\n * Can be used for creating custom tabs\n * ```js\n *\n * const RouteTab = (props) => (\n * <Tab id={props.to} component={RouteLink} {...props}/>\n * )\n *\n * const MyAwesomeTab = (props) => <Tab id={props.id}>8) {props.children}</Tab>\n * ```\n *\n * Works only inside Tabs component, otherwise throws\n */\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n href: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n };\n\n public static defaultProps = {\n component: 'a',\n href: '',\n };\n\n public state: TabState = {\n focusedByKeyboard: false,\n };\n\n private theme!: Theme;\n private tabComponent: Nullable<React.ReactElement<Tab<T>>> = null;\n\n public UNSAFE_componentWillMount() {\n invariant(this.context !== TabsContextDefaultValue, 'Tab should be placed inside Tabs component');\n }\n\n public componentDidMount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.addTab(id, this.getTabInstance);\n }\n }\n\n public componentDidUpdate() {\n if (this.context.activeTab === this.props.id) {\n this.context.notifyUpdate();\n }\n }\n\n public componentWillUnmount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.removeTab(id);\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getIndicators() {\n return {\n error: Boolean(this.props.error),\n warning: Boolean(this.props.warning),\n success: Boolean(this.props.success),\n primary: Boolean(this.props.primary),\n disabled: Boolean(this.props.disabled),\n };\n }\n\n public getUnderlyingNode = () => this.tabComponent;\n\n private renderMain() {\n const {\n children,\n disabled,\n error,\n warning,\n success,\n primary,\n component: Component = Tab.defaultProps.component,\n href,\n } = this.props;\n\n let isActive = false;\n let isVertical = false;\n\n const id = this.getId();\n if (typeof id === 'string') {\n isActive = this.context.activeTab === this.getId();\n isVertical = this.context.vertical;\n }\n const orientationStyles = isVertical ? verticalStyles : horizontalStyles;\n\n return (\n <CommonWrapper {...this.props}>\n <Component\n className={cx({\n [styles.root(this.theme)]: true,\n [styles.vertical(this.theme)]: !!isVertical,\n [orientationStyles.primary(this.theme)]: !!primary,\n [orientationStyles.success(this.theme)]: !!success,\n [orientationStyles.warning(this.theme)]: !!warning,\n [orientationStyles.error(this.theme)]: !!error,\n [styles.active()]: !!isActive,\n [orientationStyles.active(this.theme)]: !!isActive,\n [styles.disabled(this.theme)]: !!disabled,\n [orientationStyles.disabled()]: !!disabled,\n })}\n onBlur={this.handleBlur}\n onClick={this.switchTab}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n ref={isFunctionalComponent(Component) ? null : this.refTabComponent}\n href={href}\n >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && <div className={cx(styles.focus(this.theme), globalClasses.focus)} />}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.props.href;\n\n private refTabComponent = (instance: React.ReactElement<any>) => {\n this.tabComponent = instance;\n };\n\n private getTabInstance = () => this;\n\n private switchTab = (event: React.MouseEvent<HTMLElement>) => {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n\n const id = this.props.id || this.props.href;\n if (this.props.onClick) {\n this.props.onClick(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (typeof id === 'string') {\n this.context.switchTab(id);\n }\n if (this.props.component === 'a' && !this.props.href) {\n event.preventDefault();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n const id = this.getId();\n if (typeof id !== 'string') {\n return;\n }\n if (!isKeyArrow(e)) {\n return;\n }\n e.preventDefault();\n const delta = isKeyArrowLeft(e) || isKeyArrowUp(e) ? -1 : 1;\n this.context.shiftFocus(id, delta);\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n // focus event fires before keyDown eventlistener\n // so we should check focusKeyPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed || keyListener.isArrowPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n };\n\n private handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focusedByKeyboard: false });\n };\n}\n"]}
1
+ {"version":3,"sources":["Tab.tsx"],"names":["Tab","rootNode","props","context","state","focusedByKeyboard","theme","tabComponent","setRootNode","getUnderlyingNode","getId","id","href","refTabComponent","instance","getTabInstance","switchTab","event","disabled","preventDefault","onClick","defaultPrevented","component","handleKeyDown","e","onKeyDown","delta","shiftFocus","handleFocus","requestAnimationFrame","keyListener","isTabPressed","isArrowPressed","setState","handleBlur","TabsContextDefaultValue","componentDidMount","addTab","componentDidUpdate","activeTab","notifyUpdate","componentWillUnmount","removeTab","render","renderMain","getIndicators","error","Boolean","warning","success","primary","children","Component","defaultProps","isActive","isVertical","vertical","orientationStyles","verticalStyles","horizontalStyles","styles","root","active","focus","globalClasses","React","__KONTUR_REACT_UI__","contextType","TabsContext","propTypes","PropTypes","node","bool","string","isRequired","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Nullable } from '../../typings/utility-types';\nimport { isFunctionalComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { TabsContext, TabsContextType, TabsContextDefaultValue } from './TabsContext';\nimport { styles, horizontalStyles, verticalStyles, globalClasses } from './Tab.styles';\n\nexport interface TabIndicators {\n error: boolean;\n warning: boolean;\n success: boolean;\n primary: boolean;\n disabled: boolean;\n}\n\nexport interface TabProps<T extends string = string> extends CommonProps {\n /**\n * Tab content\n */\n children?: React.ReactNode;\n\n /**\n * Component to use as a tab\n */\n component?: React.ComponentType<any> | string;\n\n /**\n * Link href\n */\n href?: string;\n\n /**\n * Tab identifier\n */\n id?: T;\n\n /**\n * Click event\n */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /**\n * Click event\n */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /**\n * Disabled indicator\n */\n disabled?: boolean;\n\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * Success indicator\n */\n success?: boolean;\n\n /**\n * Primary indicator\n */\n primary?: boolean;\n\n /**\n * Style property\n */\n style?: React.CSSProperties;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\n/**\n * Tab element of Tabs component\n *\n * Can be used for creating custom tabs\n * ```js\n *\n * const RouteTab = (props) => (\n * <Tab id={props.to} component={RouteLink} {...props}/>\n * )\n *\n * const MyAwesomeTab = (props) => <Tab id={props.id}>8) {props.children}</Tab>\n * ```\n *\n * Works only inside Tabs component, otherwise throws\n */\n@rootNode\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n href: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n };\n\n public static defaultProps = {\n component: 'a',\n href: '',\n };\n\n public state: TabState = {\n focusedByKeyboard: false,\n };\n\n private theme!: Theme;\n private tabComponent: Nullable<React.ReactElement<Tab<T>>> = null;\n private setRootNode!: TSetRootNode;\n\n constructor(props: TabProps<T>) {\n super(props);\n invariant(this.context !== TabsContextDefaultValue, 'Tab should be placed inside Tabs component');\n }\n\n public componentDidMount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.addTab(id, this.getTabInstance);\n }\n }\n\n public componentDidUpdate() {\n if (this.context.activeTab === this.props.id) {\n this.context.notifyUpdate();\n }\n }\n\n public componentWillUnmount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.removeTab(id);\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getIndicators() {\n return {\n error: Boolean(this.props.error),\n warning: Boolean(this.props.warning),\n success: Boolean(this.props.success),\n primary: Boolean(this.props.primary),\n disabled: Boolean(this.props.disabled),\n };\n }\n\n public getUnderlyingNode = () => this.tabComponent;\n\n private renderMain() {\n const {\n children,\n disabled,\n error,\n warning,\n success,\n primary,\n component: Component = Tab.defaultProps.component,\n href,\n } = this.props;\n\n let isActive = false;\n let isVertical = false;\n\n const id = this.getId();\n if (typeof id === 'string') {\n isActive = this.context.activeTab === this.getId();\n isVertical = this.context.vertical;\n }\n const orientationStyles = isVertical ? verticalStyles : horizontalStyles;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Component\n className={cx({\n [styles.root(this.theme)]: true,\n [styles.vertical(this.theme)]: !!isVertical,\n [orientationStyles.primary(this.theme)]: !!primary,\n [orientationStyles.success(this.theme)]: !!success,\n [orientationStyles.warning(this.theme)]: !!warning,\n [orientationStyles.error(this.theme)]: !!error,\n [styles.active()]: !!isActive,\n [orientationStyles.active(this.theme)]: !!isActive,\n [styles.disabled(this.theme)]: !!disabled,\n [orientationStyles.disabled()]: !!disabled,\n })}\n onBlur={this.handleBlur}\n onClick={this.switchTab}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n ref={isFunctionalComponent(Component) ? null : this.refTabComponent}\n href={href}\n >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && <div className={cx(styles.focus(this.theme), globalClasses.focus)} />}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.props.href;\n\n private refTabComponent = (instance: React.ReactElement<any>) => {\n this.tabComponent = instance;\n };\n\n private getTabInstance = () => this;\n\n private switchTab = (event: React.MouseEvent<HTMLElement>) => {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n\n const id = this.props.id || this.props.href;\n if (this.props.onClick) {\n this.props.onClick(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (typeof id === 'string') {\n this.context.switchTab(id);\n }\n if (this.props.component === 'a' && !this.props.href) {\n event.preventDefault();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n const id = this.getId();\n if (typeof id !== 'string') {\n return;\n }\n if (!isKeyArrow(e)) {\n return;\n }\n e.preventDefault();\n const delta = isKeyArrowLeft(e) || isKeyArrowUp(e) ? -1 : 1;\n this.context.shiftFocus(id, delta);\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n // focus event fires before keyDown eventlistener\n // so we should check focusKeyPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed || keyListener.isArrowPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n };\n\n private handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focusedByKeyboard: false });\n };\n}\n"]}
@@ -51,6 +51,7 @@ export declare class Tabs<T extends string = string> extends React.Component<Tab
51
51
  private tabs;
52
52
  private tabUpdates;
53
53
  private listeners;
54
+ private setRootNode;
54
55
  render(): JSX.Element;
55
56
  private shiftFocus;
56
57
  private notifyUpdate;
@@ -1,16 +1,17 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.Tabs = void 0;var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
- var _reactDom = require("react-dom");
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.Tabs = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
3
2
  var _propTypes = _interopRequireDefault(require("prop-types"));
4
3
 
5
4
  var _ThemeContext = require("../../lib/theming/ThemeContext");
6
5
 
7
6
  var _CommonWrapper = require("../../internal/CommonWrapper");
8
7
  var _Emotion = require("../../lib/theming/Emotion");
8
+ var _getRootNode = require("../../lib/rootNode/getRootNode");
9
+ var _rootNode = require("../../lib/rootNode");
9
10
 
10
11
  var _Indicator = require("./Indicator");
11
12
  var _Tabs = require("./Tabs.styles");
12
13
  var _TabsContext = require("./TabsContext");
13
- var _Tab = require("./Tab");
14
+ var _Tab = require("./Tab");var _class, _class2, _temp;
14
15
 
15
16
 
16
17
 
@@ -50,7 +51,8 @@ var _Tab = require("./Tab");
50
51
  *
51
52
  * contains static property `Tab`
52
53
  */var
53
- Tabs = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Tabs, _React$Component);function Tabs() {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.
54
+
55
+ Tabs = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Tabs, _React$Component);function Tabs() {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.
54
56
 
55
57
 
56
58
 
@@ -83,6 +85,7 @@ Tabs = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Ta
83
85
 
84
86
 
85
87
  listeners = [];_this.
88
+ setRootNode = void 0;_this.
86
89
 
87
90
 
88
91
 
@@ -124,10 +127,7 @@ Tabs = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Ta
124
127
  var tab = tabs[newIndex];
125
128
 
126
129
  var tabNode = tab.getNode();
127
- var htmlNode = null;
128
- if (tabNode instanceof _react.default.Component) {
129
- htmlNode = (0, _reactDom.findDOMNode)(tabNode);
130
- }
130
+ var htmlNode = (0, _getRootNode.getRootNode)(tabNode);
131
131
 
132
132
  if (htmlNode && htmlNode instanceof HTMLElement && typeof htmlNode.focus === 'function') {
133
133
  htmlNode.focus();
@@ -156,4 +156,4 @@ Tabs = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Ta
156
156
 
157
157
  removeTab = function (id) {
158
158
  _this.tabs = _this.tabs.filter(function (tab) {return tab.id !== id;});
159
- };return _this;}var _proto = Tabs.prototype;_proto.render = function render() {var _this2 = this;var _this$props2 = this.props,vertical = _this$props2.vertical,value = _this$props2.value,width = _this$props2.width,children = _this$props2.children,indicatorClassName = _this$props2.indicatorClassName;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, _this2.props, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Tabs.styles.root(_this2.theme), vertical && _Tabs.styles.vertical()), style: { width: width } }, /*#__PURE__*/_react.default.createElement(_TabsContext.TabsContext.Provider, { value: { vertical: vertical, activeTab: value, getTab: _this2.getTab, addTab: _this2.addTab, removeTab: _this2.removeTab, notifyUpdate: _this2.notifyUpdate, shiftFocus: _this2.shiftFocus, switchTab: _this2.switchTab } }, children, /*#__PURE__*/_react.default.createElement(_Indicator.Indicator, { className: indicatorClassName, tabUpdates: _this2.tabUpdates, vertical: vertical }))));});};return Tabs;}(_react.default.Component);exports.Tabs = Tabs;Tabs.__KONTUR_REACT_UI__ = 'Tabs';Tabs.propTypes = { children: _propTypes.default.node, indicatorClassName: _propTypes.default.string, value: _propTypes.default.string.isRequired, vertical: _propTypes.default.bool, width: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]) };Tabs.defaultProps = { vertical: false };Tabs.Tab = _Tab.Tab;
159
+ };return _this;}var _proto = Tabs.prototype;_proto.render = function render() {var _this2 = this;var _this$props2 = this.props,vertical = _this$props2.vertical,value = _this$props2.value,width = _this$props2.width,children = _this$props2.children,indicatorClassName = _this$props2.indicatorClassName;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), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Tabs.styles.root(_this2.theme), vertical && _Tabs.styles.vertical()), style: { width: width } }, /*#__PURE__*/_react.default.createElement(_TabsContext.TabsContext.Provider, { value: { vertical: vertical, activeTab: value, getTab: _this2.getTab, addTab: _this2.addTab, removeTab: _this2.removeTab, notifyUpdate: _this2.notifyUpdate, shiftFocus: _this2.shiftFocus, switchTab: _this2.switchTab } }, children, /*#__PURE__*/_react.default.createElement(_Indicator.Indicator, { className: indicatorClassName, tabUpdates: _this2.tabUpdates, vertical: vertical }))));});};return Tabs;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Tabs', _class2.propTypes = { children: _propTypes.default.node, indicatorClassName: _propTypes.default.string, value: _propTypes.default.string.isRequired, vertical: _propTypes.default.bool, width: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]) }, _class2.defaultProps = { vertical: false }, _class2.Tab = _Tab.Tab, _temp)) || _class;exports.Tabs = Tabs;
@@ -1 +1 @@
1
- {"version":3,"sources":["Tabs.tsx"],"names":["Tabs","theme","tabs","tabUpdates","on","cb","index","listeners","push","splice","shiftFocus","fromTab","delta","findIndex","x","id","newIndex","Math","max","min","length","tab","tabNode","getNode","htmlNode","React","Component","HTMLElement","focus","notifyUpdate","forEach","switchTab","props","onValueChange","value","getTab","find","addTab","concat","removeTab","filter","render","vertical","width","children","indicatorClassName","styles","root","activeTab","__KONTUR_REACT_UI__","propTypes","PropTypes","node","string","isRequired","bool","oneOfType","number","defaultProps","Tab"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { Indicator } from './Indicator';\nimport { styles } from './Tabs.styles';\nimport { TabsContext, TabsContextType } from './TabsContext';\nimport { Tab } from './Tab';\n\nexport interface TabsProps<T extends string = string> extends CommonProps {\n /**\n * Tab component should be child of Tabs component\n */\n children?: React.ReactNode;\n\n /**\n * Classname of indicator\n */\n indicatorClassName?: string;\n\n /**\n * Tabs change event\n */\n onValueChange?: (value: T) => void;\n\n /**\n * Active tab identifier\n */\n value: T;\n\n /**\n * Vertical indicator\n * @default false\n */\n vertical: boolean;\n\n /**\n * Width of tabs container\n */\n width?: number | string;\n}\n\n/**\n * Tabs wrapper\n *\n * contains static property `Tab`\n */\nexport class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Tabs';\n\n public static propTypes = {\n children: PropTypes.node,\n indicatorClassName: PropTypes.string,\n value: PropTypes.string.isRequired,\n vertical: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n };\n public static defaultProps = {\n vertical: false,\n };\n\n public static Tab = Tab;\n\n private theme!: Theme;\n\n private tabs: Array<{\n getNode: () => Tab<T> | null;\n id: T;\n }> = [];\n\n private tabUpdates = {\n on: (cb: () => void) => {\n const index = this.listeners.push(cb);\n return () => {\n this.listeners.splice(index, 1);\n };\n },\n };\n\n private listeners: Array<() => void> = [];\n\n public render(): JSX.Element {\n const { vertical, value, width, children, indicatorClassName } = this.props;\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper {...this.props}>\n <div className={cx(styles.root(this.theme), vertical && styles.vertical())} style={{ width }}>\n <TabsContext.Provider\n value={{\n vertical,\n activeTab: value,\n getTab: this.getTab,\n addTab: this.addTab,\n removeTab: this.removeTab,\n notifyUpdate: this.notifyUpdate,\n shiftFocus: this.shiftFocus,\n switchTab: this.switchTab,\n }}\n >\n {children}\n <Indicator className={indicatorClassName} tabUpdates={this.tabUpdates} vertical={vertical} />\n </TabsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private shiftFocus: TabsContextType<T>['shiftFocus'] = (fromTab, delta) => {\n const { tabs } = this;\n const index = tabs.findIndex((x) => x.id === fromTab);\n const newIndex = Math.max(0, Math.min(index + delta, tabs.length - 1));\n const tab = tabs[newIndex];\n\n const tabNode = tab.getNode();\n let htmlNode = null;\n if (tabNode instanceof React.Component) {\n htmlNode = findDOMNode(tabNode);\n }\n\n if (htmlNode && htmlNode instanceof HTMLElement && typeof htmlNode.focus === 'function') {\n htmlNode.focus();\n }\n };\n\n private notifyUpdate: TabsContextType<T>['notifyUpdate'] = () => {\n this.listeners.forEach((cb) => cb());\n };\n\n private switchTab: TabsContextType<T>['switchTab'] = (id) => {\n const { onValueChange, value } = this.props;\n if (id !== value && onValueChange) {\n onValueChange(id);\n }\n };\n\n private getTab: TabsContextType<T>['getTab'] = (id) => {\n const { getNode = null } = this.tabs.find((x) => x.id === id) || {};\n return getNode && getNode();\n };\n\n private addTab: TabsContextType<T>['addTab'] = (id, getNode) => {\n this.tabs = this.tabs.concat({ id, getNode });\n };\n\n private removeTab: TabsContextType<T>['removeTab'] = (id) => {\n this.tabs = this.tabs.filter((tab) => tab.id !== id);\n };\n}\n"]}
1
+ {"version":3,"sources":["Tabs.tsx"],"names":["Tabs","rootNode","theme","tabs","tabUpdates","on","cb","index","listeners","push","splice","setRootNode","shiftFocus","fromTab","delta","findIndex","x","id","newIndex","Math","max","min","length","tab","tabNode","getNode","htmlNode","HTMLElement","focus","notifyUpdate","forEach","switchTab","props","onValueChange","value","getTab","find","addTab","concat","removeTab","filter","render","vertical","width","children","indicatorClassName","styles","root","activeTab","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","node","string","isRequired","bool","oneOfType","number","defaultProps","Tab"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode } from '../../lib/rootNode/getRootNode';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { Indicator } from './Indicator';\nimport { styles } from './Tabs.styles';\nimport { TabsContext, TabsContextType } from './TabsContext';\nimport { Tab } from './Tab';\n\nexport interface TabsProps<T extends string = string> extends CommonProps {\n /**\n * Tab component should be child of Tabs component\n */\n children?: React.ReactNode;\n\n /**\n * Classname of indicator\n */\n indicatorClassName?: string;\n\n /**\n * Tabs change event\n */\n onValueChange?: (value: T) => void;\n\n /**\n * Active tab identifier\n */\n value: T;\n\n /**\n * Vertical indicator\n * @default false\n */\n vertical: boolean;\n\n /**\n * Width of tabs container\n */\n width?: number | string;\n}\n\n/**\n * Tabs wrapper\n *\n * contains static property `Tab`\n */\n@rootNode\nexport class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Tabs';\n\n public static propTypes = {\n children: PropTypes.node,\n indicatorClassName: PropTypes.string,\n value: PropTypes.string.isRequired,\n vertical: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n };\n public static defaultProps = {\n vertical: false,\n };\n\n public static Tab = Tab;\n\n private theme!: Theme;\n\n private tabs: Array<{\n getNode: () => Tab<T> | null;\n id: T;\n }> = [];\n\n private tabUpdates = {\n on: (cb: () => void) => {\n const index = this.listeners.push(cb);\n return () => {\n this.listeners.splice(index, 1);\n };\n },\n };\n\n private listeners: Array<() => void> = [];\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n const { vertical, value, width, children, indicatorClassName } = this.props;\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={cx(styles.root(this.theme), vertical && styles.vertical())} style={{ width }}>\n <TabsContext.Provider\n value={{\n vertical,\n activeTab: value,\n getTab: this.getTab,\n addTab: this.addTab,\n removeTab: this.removeTab,\n notifyUpdate: this.notifyUpdate,\n shiftFocus: this.shiftFocus,\n switchTab: this.switchTab,\n }}\n >\n {children}\n <Indicator className={indicatorClassName} tabUpdates={this.tabUpdates} vertical={vertical} />\n </TabsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private shiftFocus: TabsContextType<T>['shiftFocus'] = (fromTab, delta) => {\n const { tabs } = this;\n const index = tabs.findIndex((x) => x.id === fromTab);\n const newIndex = Math.max(0, Math.min(index + delta, tabs.length - 1));\n const tab = tabs[newIndex];\n\n const tabNode = tab.getNode();\n const htmlNode = getRootNode(tabNode);\n\n if (htmlNode && htmlNode instanceof HTMLElement && typeof htmlNode.focus === 'function') {\n htmlNode.focus();\n }\n };\n\n private notifyUpdate: TabsContextType<T>['notifyUpdate'] = () => {\n this.listeners.forEach((cb) => cb());\n };\n\n private switchTab: TabsContextType<T>['switchTab'] = (id) => {\n const { onValueChange, value } = this.props;\n if (id !== value && onValueChange) {\n onValueChange(id);\n }\n };\n\n private getTab: TabsContextType<T>['getTab'] = (id) => {\n const { getNode = null } = this.tabs.find((x) => x.id === id) || {};\n return getNode && getNode();\n };\n\n private addTab: TabsContextType<T>['addTab'] = (id, getNode) => {\n this.tabs = this.tabs.concat({ id, getNode });\n };\n\n private removeTab: TabsContextType<T>['removeTab'] = (id) => {\n this.tabs = this.tabs.filter((tab) => tab.id !== id);\n };\n}\n"]}
@@ -1,36 +1,36 @@
1
- ```jsx harmony
2
- const [active, setActive] = React.useState('fuji');
3
-
4
- <Tabs value={active} onValueChange={setActive}>
5
- <Tabs.Tab id="fuji">🌋 Fuji</Tabs.Tab>
6
- <Tabs.Tab id="tahat">⛰ Tahat</Tabs.Tab>
7
- <Tabs.Tab id="alps">🗻 Alps</Tabs.Tab>
8
- </Tabs>;
9
- ```
10
-
11
- Можно передавать свои компоненты в качестве табов, например `NavLink` из `react-router`
12
-
13
- ```jsx harmony
14
- const [active, setActive] = React.useState('/fuji');
15
-
16
- const NavLink = props => (
17
- <a
18
- {...props}
19
- onClick={e => {
20
- e.preventDefault();
21
- props.onClick(e);
22
- }}
23
- />
24
- );
25
- const TabLink = ({ id, children }) => (
26
- <Tabs.Tab id={id} component={props => <NavLink {...props} to={props.id} />}>
27
- {children}
28
- </Tabs.Tab>
29
- );
30
-
31
- <Tabs value={active} onValueChange={setActive}>
32
- <TabLink id="/fuji">🌋 Fuji</TabLink>
33
- <TabLink id="/tahat">⛰ Tahat</TabLink>
34
- <TabLink id="/alps">🗻 Alps</TabLink>
35
- </Tabs>;
36
- ```
1
+ ```jsx harmony
2
+ const [active, setActive] = React.useState('fuji');
3
+
4
+ <Tabs value={active} onValueChange={setActive}>
5
+ <Tabs.Tab id="fuji">🌋 Fuji</Tabs.Tab>
6
+ <Tabs.Tab id="tahat">⛰ Tahat</Tabs.Tab>
7
+ <Tabs.Tab id="alps">🗻 Alps</Tabs.Tab>
8
+ </Tabs>;
9
+ ```
10
+
11
+ Можно передавать свои компоненты в качестве табов, например `NavLink` из `react-router`
12
+
13
+ ```jsx harmony
14
+ const [active, setActive] = React.useState('/fuji');
15
+
16
+ const NavLink = props => (
17
+ <a
18
+ {...props}
19
+ onClick={e => {
20
+ e.preventDefault();
21
+ props.onClick(e);
22
+ }}
23
+ />
24
+ );
25
+ const TabLink = ({ id, children }) => (
26
+ <Tabs.Tab id={id} component={props => <NavLink {...props} to={props.id} />}>
27
+ {children}
28
+ </Tabs.Tab>
29
+ );
30
+
31
+ <Tabs value={active} onValueChange={setActive}>
32
+ <TabLink id="/fuji">🌋 Fuji</TabLink>
33
+ <TabLink id="/tahat">⛰ Tahat</TabLink>
34
+ <TabLink id="/alps">🗻 Alps</TabLink>
35
+ </Tabs>;
36
+ ```
@@ -143,6 +143,7 @@ export declare class Textarea extends React.Component<TextareaProps, TextareaSta
143
143
  private counter;
144
144
  private layoutEvents;
145
145
  private textareaObserver;
146
+ private setRootNode;
146
147
  private getAutoResizeThrottleWait;
147
148
  private isAnimationsDisabled;
148
149
  componentDidMount(): void;