@skbkontur/react-ui 3.9.3-popup-twitch → 3.9.3-sidepagefix

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 (835) hide show
  1. package/LICENSE +21 -21
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +112 -112
  3. package/cjs/components/Autocomplete/Autocomplete.md +7 -7
  4. package/cjs/components/Autocomplete/index.d.ts +1 -1
  5. package/cjs/components/Button/Button.d.ts +160 -160
  6. package/cjs/components/Button/Button.mixins.d.ts +6 -6
  7. package/cjs/components/Button/Button.styles.d.ts +67 -67
  8. package/cjs/components/Button/Corners.d.ts +6 -6
  9. package/cjs/components/Button/index.d.ts +1 -1
  10. package/cjs/components/Center/Center.d.ts +24 -24
  11. package/cjs/components/Center/Center.styles.d.ts +7 -7
  12. package/cjs/components/Center/index.d.ts +1 -1
  13. package/cjs/components/Checkbox/Checkbox.d.ts +95 -95
  14. package/cjs/components/Checkbox/Checkbox.styles.d.ts +22 -22
  15. package/cjs/components/Checkbox/index.d.ts +1 -1
  16. package/cjs/components/ComboBox/ComboBox.d.ts +182 -182
  17. package/cjs/components/ComboBox/index.d.ts +1 -1
  18. package/cjs/components/CurrencyInput/CurrencyHelper.d.ts +35 -35
  19. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +106 -106
  20. package/cjs/components/CurrencyInput/CurrencyInput.md +24 -24
  21. package/cjs/components/CurrencyInput/CurrencyInputHelper.d.ts +20 -20
  22. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +18 -18
  23. package/cjs/components/CurrencyInput/CursorHelper.d.ts +10 -10
  24. package/cjs/components/CurrencyInput/SelectionHelper.d.ts +11 -11
  25. package/cjs/components/CurrencyInput/constants.d.ts +2 -2
  26. package/cjs/components/CurrencyInput/index.d.ts +1 -1
  27. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +24 -24
  28. package/cjs/components/CurrencyLabel/CurrencyLabel.md +23 -23
  29. package/cjs/components/CurrencyLabel/index.d.ts +1 -1
  30. package/cjs/components/DateInput/DateFragmentsView.d.ts +20 -20
  31. package/cjs/components/DateInput/DateFragmentsView.styles.d.ts +7 -7
  32. package/cjs/components/DateInput/DateInput.d.ts +106 -106
  33. package/cjs/components/DateInput/DateInput.md +106 -106
  34. package/cjs/components/DateInput/DateInput.styles.d.ts +10 -10
  35. package/cjs/components/DateInput/ViewDateInputValidateChecks.d.ts +10 -10
  36. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.d.ts +21 -21
  37. package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +26 -26
  38. package/cjs/components/DateInput/helpers/SelectionHelpers.d.ts +2 -2
  39. package/cjs/components/DateInput/helpers/inputNumber.d.ts +5 -5
  40. package/cjs/components/DateInput/index.d.ts +1 -1
  41. package/cjs/components/DatePicker/DatePicker.d.ts +132 -132
  42. package/cjs/components/DatePicker/DatePicker.md +307 -307
  43. package/cjs/components/DatePicker/DatePicker.styles.d.ts +3 -3
  44. package/cjs/components/DatePicker/DatePickerHelpers.d.ts +2 -2
  45. package/cjs/components/DatePicker/Picker.d.ts +33 -33
  46. package/cjs/components/DatePicker/Picker.styles.d.ts +5 -5
  47. package/cjs/components/DatePicker/index.d.ts +1 -1
  48. package/cjs/components/DatePicker/locale/index.d.ts +4 -4
  49. package/cjs/components/DatePicker/locale/locales/en.d.ts +2 -2
  50. package/cjs/components/DatePicker/locale/locales/ru.d.ts +2 -2
  51. package/cjs/components/DatePicker/locale/types.d.ts +5 -5
  52. package/cjs/components/Dropdown/Dropdown.d.ts +123 -123
  53. package/cjs/components/Dropdown/index.d.ts +1 -1
  54. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +64 -64
  55. package/cjs/components/DropdownMenu/index.d.ts +1 -1
  56. package/cjs/components/FxInput/FxInput.d.ts +49 -49
  57. package/cjs/components/FxInput/FxInput.md +16 -16
  58. package/cjs/components/FxInput/index.d.ts +1 -1
  59. package/cjs/components/Gapped/Gapped.d.ts +56 -57
  60. package/cjs/components/Gapped/Gapped.js +9 -14
  61. package/cjs/components/Gapped/Gapped.js.map +1 -1
  62. package/cjs/components/Gapped/Gapped.md +43 -43
  63. package/cjs/components/Gapped/index.d.ts +1 -1
  64. package/cjs/components/Group/Group.d.ts +13 -13
  65. package/cjs/components/Group/Group.md +18 -18
  66. package/cjs/components/Group/Group.styles.d.ts +8 -8
  67. package/cjs/components/Group/index.d.ts +1 -1
  68. package/cjs/components/Hint/Hint.d.ts +79 -79
  69. package/cjs/components/Hint/Hint.styles.d.ts +5 -5
  70. package/cjs/components/Hint/index.d.ts +1 -1
  71. package/cjs/components/Input/Input.d.ts +154 -154
  72. package/cjs/components/Input/Input.md +13 -13
  73. package/cjs/components/Input/Input.styles.d.ts +42 -42
  74. package/cjs/components/Input/index.d.ts +1 -1
  75. package/cjs/components/Kebab/Kebab.d.ts +70 -70
  76. package/cjs/components/Kebab/Kebab.styles.d.ts +12 -12
  77. package/cjs/components/Kebab/index.d.ts +1 -1
  78. package/cjs/components/Link/Link.d.ts +71 -71
  79. package/cjs/components/Link/Link.mixins.d.ts +3 -3
  80. package/cjs/components/Link/Link.styles.d.ts +15 -15
  81. package/cjs/components/Link/index.d.ts +1 -1
  82. package/cjs/components/Loader/Loader.d.ts +99 -99
  83. package/cjs/components/Loader/Loader.styles.d.ts +8 -8
  84. package/cjs/components/Loader/index.d.ts +1 -1
  85. package/cjs/components/MenuHeader/MenuHeader.d.ts +20 -20
  86. package/cjs/components/MenuHeader/MenuHeader.styles.d.ts +5 -5
  87. package/cjs/components/MenuHeader/index.d.ts +1 -1
  88. package/cjs/components/MenuItem/MenuItem.d.ts +93 -93
  89. package/cjs/components/MenuItem/MenuItem.styles.d.ts +13 -13
  90. package/cjs/components/MenuItem/index.d.ts +1 -1
  91. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +12 -12
  92. package/cjs/components/MenuSeparator/MenuSeparator.styles.d.ts +4 -4
  93. package/cjs/components/MenuSeparator/index.d.ts +1 -1
  94. package/cjs/components/Modal/Modal.d.ts +87 -87
  95. package/cjs/components/Modal/Modal.md +38 -38
  96. package/cjs/components/Modal/Modal.styles.d.ts +26 -26
  97. package/cjs/components/Modal/ModalBody.d.ts +20 -20
  98. package/cjs/components/Modal/ModalClose.d.ts +2 -2
  99. package/cjs/components/Modal/ModalContext.d.ts +15 -15
  100. package/cjs/components/Modal/ModalFooter.d.ts +21 -21
  101. package/cjs/components/Modal/ModalHeader.d.ts +17 -17
  102. package/cjs/components/Modal/index.d.ts +4 -4
  103. package/cjs/components/Paging/NavigationHelper.d.ts +7 -7
  104. package/cjs/components/Paging/Paging.d.ts +90 -90
  105. package/cjs/components/Paging/Paging.md +43 -43
  106. package/cjs/components/Paging/Paging.styles.d.ts +16 -16
  107. package/cjs/components/Paging/PagingHelper.d.ts +2 -2
  108. package/cjs/components/Paging/index.d.ts +1 -1
  109. package/cjs/components/Paging/locale/index.d.ts +4 -4
  110. package/cjs/components/Paging/locale/locales/en.d.ts +2 -2
  111. package/cjs/components/Paging/locale/locales/ru.d.ts +2 -2
  112. package/cjs/components/Paging/locale/types.d.ts +3 -3
  113. package/cjs/components/PasswordInput/PasswordInput.d.ts +48 -48
  114. package/cjs/components/PasswordInput/PasswordInput.md +9 -9
  115. package/cjs/components/PasswordInput/PasswordInput.styles.d.ts +10 -10
  116. package/cjs/components/PasswordInput/index.d.ts +1 -1
  117. package/cjs/components/Radio/Radio.d.ts +82 -82
  118. package/cjs/components/Radio/Radio.styles.d.ts +19 -19
  119. package/cjs/components/Radio/index.d.ts +1 -1
  120. package/cjs/components/RadioGroup/Prevent.d.ts +8 -8
  121. package/cjs/components/RadioGroup/RadioGroup.d.ts +132 -132
  122. package/cjs/components/RadioGroup/RadioGroup.md +43 -43
  123. package/cjs/components/RadioGroup/RadioGroup.styles.d.ts +7 -7
  124. package/cjs/components/RadioGroup/index.d.ts +1 -1
  125. package/cjs/components/ScrollContainer/ScrollBar.d.ts +37 -37
  126. package/cjs/components/ScrollContainer/ScrollContainer.constants.d.ts +23 -23
  127. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +83 -83
  128. package/cjs/components/ScrollContainer/ScrollContainer.helpers.d.ts +10 -10
  129. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +16 -16
  130. package/cjs/components/ScrollContainer/index.d.ts +1 -1
  131. package/cjs/components/Select/Item.d.ts +7 -7
  132. package/cjs/components/Select/Select.d.ts +178 -178
  133. package/cjs/components/Select/Select.md +55 -55
  134. package/cjs/components/Select/Select.styles.d.ts +17 -17
  135. package/cjs/components/Select/index.d.ts +1 -1
  136. package/cjs/components/Select/locale/index.d.ts +4 -4
  137. package/cjs/components/Select/locale/locales/en.d.ts +2 -2
  138. package/cjs/components/Select/locale/locales/ru.d.ts +2 -2
  139. package/cjs/components/Select/locale/types.d.ts +4 -4
  140. package/cjs/components/Select/selectTheme.d.ts +3 -3
  141. package/cjs/components/SidePage/SidePage.d.ts +107 -104
  142. package/cjs/components/SidePage/SidePage.js +17 -8
  143. package/cjs/components/SidePage/SidePage.js.map +1 -1
  144. package/cjs/components/SidePage/SidePage.styles.d.ts +37 -37
  145. package/cjs/components/SidePage/SidePageBody.d.ts +18 -18
  146. package/cjs/components/SidePage/SidePageContainer.d.ts +14 -14
  147. package/cjs/components/SidePage/SidePageContext.d.ts +17 -15
  148. package/cjs/components/SidePage/SidePageContext.js +3 -0
  149. package/cjs/components/SidePage/SidePageContext.js.map +1 -1
  150. package/cjs/components/SidePage/SidePageFooter.d.ts +37 -37
  151. package/cjs/components/SidePage/SidePageHeader.d.ts +43 -40
  152. package/cjs/components/SidePage/SidePageHeader.js +26 -8
  153. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  154. package/cjs/components/SidePage/index.d.ts +5 -5
  155. package/cjs/components/Spinner/Spinner.d.ts +47 -47
  156. package/cjs/components/Spinner/Spinner.md +34 -34
  157. package/cjs/components/Spinner/Spinner.styles.d.ts +11 -11
  158. package/cjs/components/Spinner/SpinnerFallbackAnimation.d.ts +25 -25
  159. package/cjs/components/Spinner/index.d.ts +1 -1
  160. package/cjs/components/Spinner/locale/index.d.ts +4 -4
  161. package/cjs/components/Spinner/locale/locales/en.d.ts +2 -2
  162. package/cjs/components/Spinner/locale/locales/ru.d.ts +2 -2
  163. package/cjs/components/Spinner/locale/types.d.ts +4 -4
  164. package/cjs/components/Sticky/Sticky.d.ts +58 -53
  165. package/cjs/components/Sticky/Sticky.js +5 -0
  166. package/cjs/components/Sticky/Sticky.js.map +1 -1
  167. package/cjs/components/Sticky/Sticky.md +27 -27
  168. package/cjs/components/Sticky/Sticky.styles.d.ts +7 -7
  169. package/cjs/components/Sticky/index.d.ts +1 -1
  170. package/cjs/components/Switcher/Switcher.d.ts +55 -55
  171. package/cjs/components/Switcher/Switcher.md +10 -10
  172. package/cjs/components/Switcher/Switcher.styles.d.ts +10 -10
  173. package/cjs/components/Switcher/index.d.ts +1 -1
  174. package/cjs/components/Switcher/switcherTheme.d.ts +2 -2
  175. package/cjs/components/Tabs/Indicator.d.ts +27 -27
  176. package/cjs/components/Tabs/Indicator.styles.d.ts +8 -8
  177. package/cjs/components/Tabs/Tab.d.ts +120 -120
  178. package/cjs/components/Tabs/Tab.styles.d.ts +27 -27
  179. package/cjs/components/Tabs/Tabs.d.ts +61 -61
  180. package/cjs/components/Tabs/Tabs.md +36 -36
  181. package/cjs/components/Tabs/Tabs.styles.d.ts +5 -5
  182. package/cjs/components/Tabs/TabsContext.d.ts +14 -14
  183. package/cjs/components/Tabs/index.d.ts +2 -2
  184. package/cjs/components/Textarea/Textarea.d.ts +184 -184
  185. package/cjs/components/Textarea/Textarea.md +25 -25
  186. package/cjs/components/Textarea/Textarea.styles.d.ts +15 -15
  187. package/cjs/components/Textarea/TextareaCounter.d.ts +13 -13
  188. package/cjs/components/Textarea/TextareaHelpers.d.ts +11 -11
  189. package/cjs/components/Textarea/index.d.ts +1 -1
  190. package/cjs/components/Toast/Toast.d.ts +55 -55
  191. package/cjs/components/Toast/Toast.styles.d.ts +6 -6
  192. package/cjs/components/Toast/ToastStatic.d.ts +8 -8
  193. package/cjs/components/Toast/ToastView.d.ts +37 -37
  194. package/cjs/components/Toast/ToastView.styles.d.ts +8 -8
  195. package/cjs/components/Toast/index.d.ts +1 -1
  196. package/cjs/components/Toggle/Toggle.d.ts +106 -106
  197. package/cjs/components/Toggle/Toggle.styles.d.ts +30 -30
  198. package/cjs/components/Toggle/index.d.ts +1 -1
  199. package/cjs/components/Token/Token.d.ts +35 -35
  200. package/cjs/components/Token/Token.md +112 -112
  201. package/cjs/components/Token/Token.styles.d.ts +29 -29
  202. package/cjs/components/Token/index.d.ts +1 -1
  203. package/cjs/components/TokenInput/TextWidthHelper.d.ts +18 -18
  204. package/cjs/components/TokenInput/TokenInput.d.ts +193 -193
  205. package/cjs/components/TokenInput/TokenInput.md +79 -79
  206. package/cjs/components/TokenInput/TokenInput.styles.d.ts +15 -15
  207. package/cjs/components/TokenInput/TokenInputMenu.d.ts +18 -18
  208. package/cjs/components/TokenInput/TokenInputReducer.d.ts +25 -25
  209. package/cjs/components/TokenInput/index.d.ts +1 -1
  210. package/cjs/components/TokenInput/locale/index.d.ts +4 -4
  211. package/cjs/components/TokenInput/locale/locales/en.d.ts +2 -2
  212. package/cjs/components/TokenInput/locale/locales/ru.d.ts +2 -2
  213. package/cjs/components/TokenInput/locale/types.d.ts +4 -4
  214. package/cjs/components/Tooltip/Tooltip.d.ts +171 -171
  215. package/cjs/components/Tooltip/Tooltip.md +292 -292
  216. package/cjs/components/Tooltip/Tooltip.styles.d.ts +5 -5
  217. package/cjs/components/Tooltip/index.d.ts +1 -1
  218. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +64 -64
  219. package/cjs/components/TooltipMenu/index.d.ts +1 -1
  220. package/cjs/index.d.ts +48 -48
  221. package/cjs/internal/BGRuler.d.ts +30 -30
  222. package/cjs/internal/Calendar/Calendar.d.ts +66 -66
  223. package/cjs/internal/Calendar/Calendar.styles.d.ts +5 -5
  224. package/cjs/internal/Calendar/CalendarDateShape.d.ts +14 -14
  225. package/cjs/internal/Calendar/CalendarScrollEvents.d.ts +4 -4
  226. package/cjs/internal/Calendar/CalendarUtils.d.ts +19 -19
  227. package/cjs/internal/Calendar/DayCellView.d.ts +13 -13
  228. package/cjs/internal/Calendar/DayCellView.styles.d.ts +7 -7
  229. package/cjs/internal/Calendar/DayCellViewModel.d.ts +8 -8
  230. package/cjs/internal/Calendar/Month.d.ts +33 -33
  231. package/cjs/internal/Calendar/MonthView.d.ts +21 -21
  232. package/cjs/internal/Calendar/MonthView.styles.d.ts +9 -9
  233. package/cjs/internal/Calendar/MonthViewModel.d.ts +14 -14
  234. package/cjs/internal/Calendar/config.d.ts +9 -9
  235. package/cjs/internal/Calendar/index.d.ts +2 -2
  236. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +23 -23
  237. package/cjs/internal/CommonWrapper/index.d.ts +1 -1
  238. package/cjs/internal/ComponentCombinator.d.ts +25 -25
  239. package/cjs/internal/ComponentTable.d.ts +21 -21
  240. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +31 -31
  241. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +87 -87
  242. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +135 -135
  243. package/cjs/internal/CustomComboBox/CustomComboBox.styles.d.ts +5 -5
  244. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +71 -71
  245. package/cjs/internal/CustomComboBox/CustomComboBoxTypes.d.ts +6 -6
  246. package/cjs/internal/CustomComboBox/index.d.ts +2 -2
  247. package/cjs/internal/CustomComboBox/locale/index.d.ts +4 -4
  248. package/cjs/internal/CustomComboBox/locale/locales/en.d.ts +2 -2
  249. package/cjs/internal/CustomComboBox/locale/locales/ru.d.ts +2 -2
  250. package/cjs/internal/CustomComboBox/locale/types.d.ts +5 -5
  251. package/cjs/internal/DateSelect/DateSelect.d.ts +93 -93
  252. package/cjs/internal/DateSelect/DateSelect.styles.d.ts +19 -19
  253. package/cjs/internal/DateSelect/index.d.ts +1 -1
  254. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +46 -46
  255. package/cjs/internal/DropdownContainer/index.d.ts +1 -1
  256. package/cjs/internal/FocusTrap/FocusTrap.d.ts +16 -16
  257. package/cjs/internal/FocusTrap/index.d.ts +1 -1
  258. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +14 -14
  259. package/cjs/internal/HideBodyVerticalScroll/index.d.ts +1 -1
  260. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +8 -8
  261. package/cjs/internal/IgnoreLayerClick/index.d.ts +1 -1
  262. package/cjs/internal/InputLikeText/HiddenInput.d.ts +13 -13
  263. package/cjs/internal/InputLikeText/InputLikeText.d.ts +72 -72
  264. package/cjs/internal/InputLikeText/InputLikeText.styles.d.ts +7 -7
  265. package/cjs/internal/InputLikeText/index.d.ts +1 -1
  266. package/cjs/internal/InternalMenu/InternalMenu.d.ts +64 -64
  267. package/cjs/internal/InternalMenu/InternalMenu.styles.d.ts +9 -9
  268. package/cjs/internal/InternalMenu/index.d.ts +1 -1
  269. package/cjs/internal/InternalMenu/isActiveElement.d.ts +3 -3
  270. package/cjs/internal/MaskCharLowLine/MaskCharLowLine.d.ts +9 -9
  271. package/cjs/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +3 -3
  272. package/cjs/internal/MaskCharLowLine/index.d.ts +1 -1
  273. package/cjs/internal/MaskedInput/MaskedInput.d.ts +40 -40
  274. package/cjs/internal/MaskedInput/MaskedInput.styles.d.ts +6 -6
  275. package/cjs/internal/MaskedInput/index.d.ts +1 -1
  276. package/cjs/internal/Menu/Menu.d.ts +62 -62
  277. package/cjs/internal/Menu/Menu.styles.d.ts +6 -6
  278. package/cjs/internal/Menu/index.d.ts +1 -1
  279. package/cjs/internal/Menu/isActiveElement.d.ts +3 -3
  280. package/cjs/internal/NativeDateInput/NativeDateInput.d.ts +23 -23
  281. package/cjs/internal/NativeDateInput/NativeDateInput.styles.d.ts +3 -3
  282. package/cjs/internal/NativeDateInput/index.d.ts +1 -1
  283. package/cjs/internal/NativeDateInput/utils.d.ts +7 -7
  284. package/cjs/internal/PerformanceMetrics/PerformanceMetrics.d.ts +7 -7
  285. package/cjs/internal/Popup/Popup.d.ts +161 -161
  286. package/cjs/internal/Popup/Popup.js +4 -11
  287. package/cjs/internal/Popup/Popup.js.map +1 -1
  288. package/cjs/internal/Popup/Popup.styles.d.ts +16 -16
  289. package/cjs/internal/Popup/PopupHelper.d.ts +26 -26
  290. package/cjs/internal/Popup/PopupPin.d.ts +56 -56
  291. package/cjs/internal/Popup/PopupPin.styles.d.ts +3 -3
  292. package/cjs/internal/Popup/index.d.ts +1 -1
  293. package/cjs/internal/PopupMenu/PopupMenu.d.ts +84 -84
  294. package/cjs/internal/PopupMenu/PopupMenu.styles.d.ts +4 -4
  295. package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +2 -2
  296. package/cjs/internal/PopupMenu/index.d.ts +1 -1
  297. package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
  298. package/cjs/internal/RenderContainer/RenderContainer.d.ts +16 -16
  299. package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +11 -11
  300. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +13 -13
  301. package/cjs/internal/RenderContainer/index.d.ts +1 -1
  302. package/cjs/internal/RenderLayer/RenderLayer.d.ts +27 -27
  303. package/cjs/internal/RenderLayer/index.d.ts +1 -1
  304. package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +12 -12
  305. package/cjs/internal/ResizeDetector/ResizeDetector.styles.d.ts +5 -5
  306. package/cjs/internal/ResizeDetector/index.d.ts +1 -1
  307. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +13 -13
  308. package/cjs/internal/ThemePlayground/CheckboxPlayground.d.ts +1 -1
  309. package/cjs/internal/ThemePlayground/ComponentsGroup.d.ts +10 -10
  310. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.d.ts +11 -11
  311. package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +10 -10
  312. package/cjs/internal/ThemePlayground/HintPlayground.d.ts +6 -6
  313. package/cjs/internal/ThemePlayground/PagingPlayground.d.ts +10 -10
  314. package/cjs/internal/ThemePlayground/Playground.d.ts +31 -31
  315. package/cjs/internal/ThemePlayground/Playground.md +7 -7
  316. package/cjs/internal/ThemePlayground/Playground.styles.d.ts +23 -23
  317. package/cjs/internal/ThemePlayground/RadioPlayground.d.ts +1 -1
  318. package/cjs/internal/ThemePlayground/SelectPlayground.d.ts +12 -12
  319. package/cjs/internal/ThemePlayground/ShowcaseGroup.d.ts +5 -5
  320. package/cjs/internal/ThemePlayground/SwitcherPlayground.d.ts +15 -15
  321. package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +51 -51
  322. package/cjs/internal/ThemePlayground/ThemeEditor.d.ts +39 -39
  323. package/cjs/internal/ThemePlayground/TogglePlayground.d.ts +9 -9
  324. package/cjs/internal/ThemePlayground/TokenInputPlayground.d.ts +7 -7
  325. package/cjs/internal/ThemePlayground/VariableValue.d.ts +45 -45
  326. package/cjs/internal/ThemePlayground/constants.d.ts +18 -18
  327. package/cjs/internal/ThemePlayground/darkTheme.d.ts +255 -255
  328. package/cjs/internal/ThemePlayground/helpers.d.ts +2 -2
  329. package/cjs/internal/ThemeShowcase/ThemeShowcase.d.ts +22 -22
  330. package/cjs/internal/ThemeShowcase/ThemeShowcase.md +13 -13
  331. package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.d.ts +24 -24
  332. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +22 -22
  333. package/cjs/internal/ZIndex/ZIndex.d.ts +34 -34
  334. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +18 -18
  335. package/cjs/internal/ZIndex/index.d.ts +1 -1
  336. package/cjs/internal/icons/16px/icon.styles.d.ts +4 -4
  337. package/cjs/internal/icons/16px/index.d.ts +21 -21
  338. package/cjs/internal/icons/20px/Icon.d.ts +30 -30
  339. package/cjs/internal/icons/20px/icon.styles.d.ts +4 -4
  340. package/cjs/internal/icons/20px/index.d.ts +2 -2
  341. package/cjs/internal/icons/20px/svg.d.ts +14 -14
  342. package/cjs/internal/icons/CloudIcon.d.ts +1 -1
  343. package/cjs/internal/icons/CrossIcon.d.ts +1 -1
  344. package/cjs/internal/icons/SpinnerIcon.d.ts +23 -23
  345. package/cjs/internal/icons/SpinnerIcon.styles.d.ts +4 -4
  346. package/cjs/internal/themes/DefaultTheme.d.ts +766 -766
  347. package/cjs/internal/themes/FlatTheme.d.ts +132 -132
  348. package/cjs/internal/themes/Theme8px.d.ts +271 -271
  349. package/cjs/lib/ConditionalHandler.d.ts +11 -11
  350. package/cjs/lib/LayoutEvents.d.ts +4 -4
  351. package/cjs/lib/ModalStack.d.ts +14 -14
  352. package/cjs/lib/SSRSafe.d.ts +4 -4
  353. package/cjs/lib/Supports.d.ts +1 -1
  354. package/cjs/lib/Upgrades.d.ts +6 -6
  355. package/cjs/lib/animation/index.d.ts +6 -6
  356. package/cjs/lib/animation/presets.d.ts +18 -18
  357. package/cjs/lib/animation/stepper.d.ts +1 -1
  358. package/cjs/lib/client.d.ts +16 -16
  359. package/cjs/lib/createPropsGetter.d.ts +2 -2
  360. package/cjs/lib/currentEnvironment.d.ts +3 -3
  361. package/cjs/lib/date/InternalDate.d.ts +58 -58
  362. package/cjs/lib/date/InternalDateCalculator.d.ts +6 -6
  363. package/cjs/lib/date/InternalDateGetter.d.ts +15 -15
  364. package/cjs/lib/date/InternalDateSetter.d.ts +6 -6
  365. package/cjs/lib/date/InternalDateTransformer.d.ts +12 -12
  366. package/cjs/lib/date/InternalDateValidator.d.ts +12 -12
  367. package/cjs/lib/date/constants.d.ts +28 -28
  368. package/cjs/lib/date/localeSets.d.ts +5 -5
  369. package/cjs/lib/date/types.d.ts +90 -90
  370. package/cjs/lib/dom/getScrollWidth.d.ts +1 -1
  371. package/cjs/lib/dom/tabbableHelpers.d.ts +16 -16
  372. package/cjs/lib/events/MouseDrag.d.ts +58 -58
  373. package/cjs/lib/events/fixClickFocusIE.d.ts +1 -1
  374. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -2
  375. package/cjs/lib/events/keyListener.d.ts +7 -7
  376. package/cjs/lib/events/keyboard/KeyboardEventCodes.d.ts +30 -30
  377. package/cjs/lib/events/keyboard/KeyboardMapKeys.d.ts +6 -6
  378. package/cjs/lib/events/keyboard/extractCode.d.ts +3 -3
  379. package/cjs/lib/events/keyboard/identifiers.d.ts +48 -48
  380. package/cjs/lib/events/stopPropagation.d.ts +1 -1
  381. package/cjs/lib/events/tabListener.d.ts +1 -1
  382. package/cjs/lib/extractKeyboardAction.d.ts +13 -13
  383. package/cjs/lib/filterProps.d.ts +12 -12
  384. package/cjs/lib/forwardRefAndName.d.ts +5 -5
  385. package/cjs/lib/getDisplayName.d.ts +3 -3
  386. package/cjs/lib/listenFocusOutside.d.ts +8 -8
  387. package/cjs/lib/locale/LocaleContext.d.ts +7 -7
  388. package/cjs/lib/locale/LocaleHelper.d.ts +9 -9
  389. package/cjs/lib/locale/constants.d.ts +2 -2
  390. package/cjs/lib/locale/decorators.d.ts +36 -36
  391. package/cjs/lib/locale/index.d.ts +3 -3
  392. package/cjs/lib/locale/types.d.ts +19 -19
  393. package/cjs/lib/memo.d.ts +1 -1
  394. package/cjs/lib/net/fetch.d.ts +13 -13
  395. package/cjs/lib/polyfillPlaceholder.d.ts +1 -1
  396. package/cjs/lib/reactGetTextContent.d.ts +2 -2
  397. package/cjs/lib/styles/ColorFactory.d.ts +11 -11
  398. package/cjs/lib/styles/ColorFunctions.d.ts +11 -11
  399. package/cjs/lib/styles/ColorHelpers.d.ts +20 -20
  400. package/cjs/lib/styles/ColorKeywords.d.ts +150 -150
  401. package/cjs/lib/styles/ColorObject.d.ts +52 -52
  402. package/cjs/lib/styles/DimensionFunctions.d.ts +1 -1
  403. package/cjs/lib/styles/HoldSelectionColor.d.ts +1 -1
  404. package/cjs/lib/styles/Mixins.d.ts +2 -2
  405. package/cjs/lib/taskWithDelayAndMinimalDuration.d.ts +21 -21
  406. package/cjs/lib/theming/AnimationKeyframes.d.ts +9 -9
  407. package/cjs/lib/theming/Emotion.d.ts +15 -15
  408. package/cjs/lib/theming/Theme.d.ts +3 -3
  409. package/cjs/lib/theming/ThemeContext.d.ts +2 -2
  410. package/cjs/lib/theming/ThemeFactory.d.ts +8 -8
  411. package/cjs/lib/theming/ThemeHelpers.d.ts +11 -11
  412. package/cjs/lib/theming/themes/DefaultTheme.d.ts +1 -1
  413. package/cjs/lib/theming/themes/DefaultThemeOld.d.ts +1 -1
  414. package/cjs/lib/theming/themes/FlatTheme.d.ts +1 -1
  415. package/cjs/lib/theming/themes/FlatThemeOld.d.ts +1 -1
  416. package/cjs/lib/utils.d.ts +28 -28
  417. package/cjs/lib/withClassWrapper.d.ts +68 -71
  418. package/cjs/lib/withClassWrapper.js.map +1 -1
  419. package/components/Autocomplete/Autocomplete.d.ts +112 -112
  420. package/components/Autocomplete/Autocomplete.md +7 -7
  421. package/components/Autocomplete/index.d.ts +1 -1
  422. package/components/Button/Button.d.ts +160 -160
  423. package/components/Button/Button.mixins.d.ts +6 -6
  424. package/components/Button/Button.styles.d.ts +67 -67
  425. package/components/Button/Corners.d.ts +6 -6
  426. package/components/Button/index.d.ts +1 -1
  427. package/components/Center/Center.d.ts +24 -24
  428. package/components/Center/Center.styles.d.ts +7 -7
  429. package/components/Center/index.d.ts +1 -1
  430. package/components/Checkbox/Checkbox.d.ts +95 -95
  431. package/components/Checkbox/Checkbox.styles.d.ts +22 -22
  432. package/components/Checkbox/index.d.ts +1 -1
  433. package/components/ComboBox/ComboBox.d.ts +182 -182
  434. package/components/ComboBox/index.d.ts +1 -1
  435. package/components/CurrencyInput/CurrencyHelper.d.ts +35 -35
  436. package/components/CurrencyInput/CurrencyInput.d.ts +106 -106
  437. package/components/CurrencyInput/CurrencyInput.md +24 -24
  438. package/components/CurrencyInput/CurrencyInputHelper.d.ts +20 -20
  439. package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +18 -18
  440. package/components/CurrencyInput/CursorHelper.d.ts +10 -10
  441. package/components/CurrencyInput/SelectionHelper.d.ts +11 -11
  442. package/components/CurrencyInput/constants.d.ts +2 -2
  443. package/components/CurrencyInput/index.d.ts +1 -1
  444. package/components/CurrencyLabel/CurrencyLabel.d.ts +24 -24
  445. package/components/CurrencyLabel/CurrencyLabel.md +23 -23
  446. package/components/CurrencyLabel/index.d.ts +1 -1
  447. package/components/DateInput/DateFragmentsView.d.ts +20 -20
  448. package/components/DateInput/DateFragmentsView.styles.d.ts +7 -7
  449. package/components/DateInput/DateInput.d.ts +106 -106
  450. package/components/DateInput/DateInput.md +106 -106
  451. package/components/DateInput/DateInput.styles.d.ts +10 -10
  452. package/components/DateInput/ViewDateInputValidateChecks.d.ts +10 -10
  453. package/components/DateInput/helpers/DateInputKeyboardActions.d.ts +21 -21
  454. package/components/DateInput/helpers/InternalDateMediator.d.ts +26 -26
  455. package/components/DateInput/helpers/SelectionHelpers.d.ts +2 -2
  456. package/components/DateInput/helpers/inputNumber.d.ts +5 -5
  457. package/components/DateInput/index.d.ts +1 -1
  458. package/components/DatePicker/DatePicker.d.ts +132 -132
  459. package/components/DatePicker/DatePicker.md +307 -307
  460. package/components/DatePicker/DatePicker.styles.d.ts +3 -3
  461. package/components/DatePicker/DatePickerHelpers.d.ts +2 -2
  462. package/components/DatePicker/Picker.d.ts +33 -33
  463. package/components/DatePicker/Picker.styles.d.ts +5 -5
  464. package/components/DatePicker/index.d.ts +1 -1
  465. package/components/DatePicker/locale/index.d.ts +4 -4
  466. package/components/DatePicker/locale/locales/en.d.ts +2 -2
  467. package/components/DatePicker/locale/locales/ru.d.ts +2 -2
  468. package/components/DatePicker/locale/types.d.ts +5 -5
  469. package/components/Dropdown/Dropdown.d.ts +123 -123
  470. package/components/Dropdown/index.d.ts +1 -1
  471. package/components/DropdownMenu/DropdownMenu.d.ts +64 -64
  472. package/components/DropdownMenu/index.d.ts +1 -1
  473. package/components/FxInput/FxInput.d.ts +49 -49
  474. package/components/FxInput/FxInput.md +16 -16
  475. package/components/FxInput/index.d.ts +1 -1
  476. package/components/Gapped/Gapped/Gapped.js +10 -9
  477. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  478. package/components/Gapped/Gapped.d.ts +56 -57
  479. package/components/Gapped/Gapped.md +43 -43
  480. package/components/Gapped/index.d.ts +1 -1
  481. package/components/Group/Group.d.ts +13 -13
  482. package/components/Group/Group.md +18 -18
  483. package/components/Group/Group.styles.d.ts +8 -8
  484. package/components/Group/index.d.ts +1 -1
  485. package/components/Hint/Hint.d.ts +79 -79
  486. package/components/Hint/Hint.styles.d.ts +5 -5
  487. package/components/Hint/index.d.ts +1 -1
  488. package/components/Input/Input.d.ts +154 -154
  489. package/components/Input/Input.md +13 -13
  490. package/components/Input/Input.styles.d.ts +42 -42
  491. package/components/Input/index.d.ts +1 -1
  492. package/components/Kebab/Kebab.d.ts +70 -70
  493. package/components/Kebab/Kebab.styles.d.ts +12 -12
  494. package/components/Kebab/index.d.ts +1 -1
  495. package/components/Link/Link.d.ts +71 -71
  496. package/components/Link/Link.mixins.d.ts +3 -3
  497. package/components/Link/Link.styles.d.ts +15 -15
  498. package/components/Link/index.d.ts +1 -1
  499. package/components/Loader/Loader.d.ts +99 -99
  500. package/components/Loader/Loader.styles.d.ts +8 -8
  501. package/components/Loader/index.d.ts +1 -1
  502. package/components/MenuHeader/MenuHeader.d.ts +20 -20
  503. package/components/MenuHeader/MenuHeader.styles.d.ts +5 -5
  504. package/components/MenuHeader/index.d.ts +1 -1
  505. package/components/MenuItem/MenuItem.d.ts +93 -93
  506. package/components/MenuItem/MenuItem.styles.d.ts +13 -13
  507. package/components/MenuItem/index.d.ts +1 -1
  508. package/components/MenuSeparator/MenuSeparator.d.ts +12 -12
  509. package/components/MenuSeparator/MenuSeparator.styles.d.ts +4 -4
  510. package/components/MenuSeparator/index.d.ts +1 -1
  511. package/components/Modal/Modal.d.ts +87 -87
  512. package/components/Modal/Modal.md +38 -38
  513. package/components/Modal/Modal.styles.d.ts +26 -26
  514. package/components/Modal/ModalBody.d.ts +20 -20
  515. package/components/Modal/ModalClose.d.ts +2 -2
  516. package/components/Modal/ModalContext.d.ts +15 -15
  517. package/components/Modal/ModalFooter.d.ts +21 -21
  518. package/components/Modal/ModalHeader.d.ts +17 -17
  519. package/components/Modal/index.d.ts +4 -4
  520. package/components/Paging/NavigationHelper.d.ts +7 -7
  521. package/components/Paging/Paging.d.ts +90 -90
  522. package/components/Paging/Paging.md +43 -43
  523. package/components/Paging/Paging.styles.d.ts +16 -16
  524. package/components/Paging/PagingHelper.d.ts +2 -2
  525. package/components/Paging/index.d.ts +1 -1
  526. package/components/Paging/locale/index.d.ts +4 -4
  527. package/components/Paging/locale/locales/en.d.ts +2 -2
  528. package/components/Paging/locale/locales/ru.d.ts +2 -2
  529. package/components/Paging/locale/types.d.ts +3 -3
  530. package/components/PasswordInput/PasswordInput.d.ts +48 -48
  531. package/components/PasswordInput/PasswordInput.md +9 -9
  532. package/components/PasswordInput/PasswordInput.styles.d.ts +10 -10
  533. package/components/PasswordInput/index.d.ts +1 -1
  534. package/components/Radio/Radio.d.ts +82 -82
  535. package/components/Radio/Radio.styles.d.ts +19 -19
  536. package/components/Radio/index.d.ts +1 -1
  537. package/components/RadioGroup/Prevent.d.ts +8 -8
  538. package/components/RadioGroup/RadioGroup.d.ts +132 -132
  539. package/components/RadioGroup/RadioGroup.md +43 -43
  540. package/components/RadioGroup/RadioGroup.styles.d.ts +7 -7
  541. package/components/RadioGroup/index.d.ts +1 -1
  542. package/components/ScrollContainer/ScrollBar.d.ts +37 -37
  543. package/components/ScrollContainer/ScrollContainer.constants.d.ts +23 -23
  544. package/components/ScrollContainer/ScrollContainer.d.ts +83 -83
  545. package/components/ScrollContainer/ScrollContainer.helpers.d.ts +10 -10
  546. package/components/ScrollContainer/ScrollContainer.styles.d.ts +16 -16
  547. package/components/ScrollContainer/index.d.ts +1 -1
  548. package/components/Select/Item.d.ts +7 -7
  549. package/components/Select/Select.d.ts +178 -178
  550. package/components/Select/Select.md +55 -55
  551. package/components/Select/Select.styles.d.ts +17 -17
  552. package/components/Select/index.d.ts +1 -1
  553. package/components/Select/locale/index.d.ts +4 -4
  554. package/components/Select/locale/locales/en.d.ts +2 -2
  555. package/components/Select/locale/locales/ru.d.ts +2 -2
  556. package/components/Select/locale/types.d.ts +4 -4
  557. package/components/Select/selectTheme.d.ts +3 -3
  558. package/components/SidePage/SidePage/SidePage.js +19 -12
  559. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  560. package/components/SidePage/SidePage.d.ts +107 -104
  561. package/components/SidePage/SidePage.styles.d.ts +37 -37
  562. package/components/SidePage/SidePageBody.d.ts +18 -18
  563. package/components/SidePage/SidePageContainer.d.ts +14 -14
  564. package/components/SidePage/SidePageContext/SidePageContext.js +3 -0
  565. package/components/SidePage/SidePageContext/SidePageContext.js.map +1 -1
  566. package/components/SidePage/SidePageContext.d.ts +17 -15
  567. package/components/SidePage/SidePageFooter.d.ts +37 -37
  568. package/components/SidePage/SidePageHeader/SidePageHeader.js +21 -2
  569. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  570. package/components/SidePage/SidePageHeader.d.ts +43 -40
  571. package/components/SidePage/index.d.ts +5 -5
  572. package/components/Spinner/Spinner.d.ts +47 -47
  573. package/components/Spinner/Spinner.md +34 -34
  574. package/components/Spinner/Spinner.styles.d.ts +11 -11
  575. package/components/Spinner/SpinnerFallbackAnimation.d.ts +25 -25
  576. package/components/Spinner/index.d.ts +1 -1
  577. package/components/Spinner/locale/index.d.ts +4 -4
  578. package/components/Spinner/locale/locales/en.d.ts +2 -2
  579. package/components/Spinner/locale/locales/ru.d.ts +2 -2
  580. package/components/Spinner/locale/types.d.ts +4 -4
  581. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  582. package/components/Sticky/Sticky.d.ts +58 -53
  583. package/components/Sticky/Sticky.md +27 -27
  584. package/components/Sticky/Sticky.styles.d.ts +7 -7
  585. package/components/Sticky/index.d.ts +1 -1
  586. package/components/Switcher/Switcher.d.ts +55 -55
  587. package/components/Switcher/Switcher.md +10 -10
  588. package/components/Switcher/Switcher.styles.d.ts +10 -10
  589. package/components/Switcher/index.d.ts +1 -1
  590. package/components/Switcher/switcherTheme.d.ts +2 -2
  591. package/components/Tabs/Indicator.d.ts +27 -27
  592. package/components/Tabs/Indicator.styles.d.ts +8 -8
  593. package/components/Tabs/Tab.d.ts +120 -120
  594. package/components/Tabs/Tab.styles.d.ts +27 -27
  595. package/components/Tabs/Tabs.d.ts +61 -61
  596. package/components/Tabs/Tabs.md +36 -36
  597. package/components/Tabs/Tabs.styles.d.ts +5 -5
  598. package/components/Tabs/TabsContext.d.ts +14 -14
  599. package/components/Tabs/index.d.ts +2 -2
  600. package/components/Textarea/Textarea.d.ts +184 -184
  601. package/components/Textarea/Textarea.md +25 -25
  602. package/components/Textarea/Textarea.styles.d.ts +15 -15
  603. package/components/Textarea/TextareaCounter.d.ts +13 -13
  604. package/components/Textarea/TextareaHelpers.d.ts +11 -11
  605. package/components/Textarea/index.d.ts +1 -1
  606. package/components/Toast/Toast.d.ts +55 -55
  607. package/components/Toast/Toast.styles.d.ts +6 -6
  608. package/components/Toast/ToastStatic.d.ts +8 -8
  609. package/components/Toast/ToastView.d.ts +37 -37
  610. package/components/Toast/ToastView.styles.d.ts +8 -8
  611. package/components/Toast/index.d.ts +1 -1
  612. package/components/Toggle/Toggle.d.ts +106 -106
  613. package/components/Toggle/Toggle.styles.d.ts +30 -30
  614. package/components/Toggle/index.d.ts +1 -1
  615. package/components/Token/Token.d.ts +35 -35
  616. package/components/Token/Token.md +112 -112
  617. package/components/Token/Token.styles.d.ts +29 -29
  618. package/components/Token/index.d.ts +1 -1
  619. package/components/TokenInput/TextWidthHelper.d.ts +18 -18
  620. package/components/TokenInput/TokenInput.d.ts +193 -193
  621. package/components/TokenInput/TokenInput.md +79 -79
  622. package/components/TokenInput/TokenInput.styles.d.ts +15 -15
  623. package/components/TokenInput/TokenInputMenu.d.ts +18 -18
  624. package/components/TokenInput/TokenInputReducer.d.ts +25 -25
  625. package/components/TokenInput/index.d.ts +1 -1
  626. package/components/TokenInput/locale/index.d.ts +4 -4
  627. package/components/TokenInput/locale/locales/en.d.ts +2 -2
  628. package/components/TokenInput/locale/locales/ru.d.ts +2 -2
  629. package/components/TokenInput/locale/types.d.ts +4 -4
  630. package/components/Tooltip/Tooltip.d.ts +171 -171
  631. package/components/Tooltip/Tooltip.md +292 -292
  632. package/components/Tooltip/Tooltip.styles.d.ts +5 -5
  633. package/components/Tooltip/index.d.ts +1 -1
  634. package/components/TooltipMenu/TooltipMenu.d.ts +64 -64
  635. package/components/TooltipMenu/index.d.ts +1 -1
  636. package/index.d.ts +48 -48
  637. package/internal/BGRuler.d.ts +30 -30
  638. package/internal/Calendar/Calendar.d.ts +66 -66
  639. package/internal/Calendar/Calendar.styles.d.ts +5 -5
  640. package/internal/Calendar/CalendarDateShape.d.ts +14 -14
  641. package/internal/Calendar/CalendarScrollEvents.d.ts +4 -4
  642. package/internal/Calendar/CalendarUtils.d.ts +19 -19
  643. package/internal/Calendar/DayCellView.d.ts +13 -13
  644. package/internal/Calendar/DayCellView.styles.d.ts +7 -7
  645. package/internal/Calendar/DayCellViewModel.d.ts +8 -8
  646. package/internal/Calendar/Month.d.ts +33 -33
  647. package/internal/Calendar/MonthView.d.ts +21 -21
  648. package/internal/Calendar/MonthView.styles.d.ts +9 -9
  649. package/internal/Calendar/MonthViewModel.d.ts +14 -14
  650. package/internal/Calendar/config.d.ts +9 -9
  651. package/internal/Calendar/index.d.ts +2 -2
  652. package/internal/CommonWrapper/CommonWrapper.d.ts +23 -23
  653. package/internal/CommonWrapper/index.d.ts +1 -1
  654. package/internal/ComponentCombinator.d.ts +25 -25
  655. package/internal/ComponentTable.d.ts +21 -21
  656. package/internal/CustomComboBox/ComboBoxMenu.d.ts +31 -31
  657. package/internal/CustomComboBox/ComboBoxView.d.ts +87 -87
  658. package/internal/CustomComboBox/CustomComboBox.d.ts +135 -135
  659. package/internal/CustomComboBox/CustomComboBox.styles.d.ts +5 -5
  660. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +71 -71
  661. package/internal/CustomComboBox/CustomComboBoxTypes.d.ts +6 -6
  662. package/internal/CustomComboBox/index.d.ts +2 -2
  663. package/internal/CustomComboBox/locale/index.d.ts +4 -4
  664. package/internal/CustomComboBox/locale/locales/en.d.ts +2 -2
  665. package/internal/CustomComboBox/locale/locales/ru.d.ts +2 -2
  666. package/internal/CustomComboBox/locale/types.d.ts +5 -5
  667. package/internal/DateSelect/DateSelect.d.ts +93 -93
  668. package/internal/DateSelect/DateSelect.styles.d.ts +19 -19
  669. package/internal/DateSelect/index.d.ts +1 -1
  670. package/internal/DropdownContainer/DropdownContainer.d.ts +46 -46
  671. package/internal/DropdownContainer/index.d.ts +1 -1
  672. package/internal/FocusTrap/FocusTrap.d.ts +16 -16
  673. package/internal/FocusTrap/index.d.ts +1 -1
  674. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +14 -14
  675. package/internal/HideBodyVerticalScroll/index.d.ts +1 -1
  676. package/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +8 -8
  677. package/internal/IgnoreLayerClick/index.d.ts +1 -1
  678. package/internal/InputLikeText/HiddenInput.d.ts +13 -13
  679. package/internal/InputLikeText/InputLikeText.d.ts +72 -72
  680. package/internal/InputLikeText/InputLikeText.styles.d.ts +7 -7
  681. package/internal/InputLikeText/index.d.ts +1 -1
  682. package/internal/InternalMenu/InternalMenu.d.ts +64 -64
  683. package/internal/InternalMenu/InternalMenu.styles.d.ts +9 -9
  684. package/internal/InternalMenu/index.d.ts +1 -1
  685. package/internal/InternalMenu/isActiveElement.d.ts +3 -3
  686. package/internal/MaskCharLowLine/MaskCharLowLine.d.ts +9 -9
  687. package/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +3 -3
  688. package/internal/MaskCharLowLine/index.d.ts +1 -1
  689. package/internal/MaskedInput/MaskedInput.d.ts +40 -40
  690. package/internal/MaskedInput/MaskedInput.styles.d.ts +6 -6
  691. package/internal/MaskedInput/index.d.ts +1 -1
  692. package/internal/Menu/Menu.d.ts +62 -62
  693. package/internal/Menu/Menu.styles.d.ts +6 -6
  694. package/internal/Menu/index.d.ts +1 -1
  695. package/internal/Menu/isActiveElement.d.ts +3 -3
  696. package/internal/NativeDateInput/NativeDateInput.d.ts +23 -23
  697. package/internal/NativeDateInput/NativeDateInput.styles.d.ts +3 -3
  698. package/internal/NativeDateInput/index.d.ts +1 -1
  699. package/internal/NativeDateInput/utils.d.ts +7 -7
  700. package/internal/PerformanceMetrics/PerformanceMetrics.d.ts +7 -7
  701. package/internal/Popup/Popup/Popup.js +11 -20
  702. package/internal/Popup/Popup/Popup.js.map +1 -1
  703. package/internal/Popup/Popup.d.ts +161 -161
  704. package/internal/Popup/Popup.styles.d.ts +16 -16
  705. package/internal/Popup/PopupHelper.d.ts +26 -26
  706. package/internal/Popup/PopupPin.d.ts +56 -56
  707. package/internal/Popup/PopupPin.styles.d.ts +3 -3
  708. package/internal/Popup/index.d.ts +1 -1
  709. package/internal/PopupMenu/PopupMenu.d.ts +84 -84
  710. package/internal/PopupMenu/PopupMenu.styles.d.ts +4 -4
  711. package/internal/PopupMenu/PopupMenuPositions.d.ts +2 -2
  712. package/internal/PopupMenu/index.d.ts +1 -1
  713. package/internal/PopupMenu/validatePositions.d.ts +2 -2
  714. package/internal/RenderContainer/RenderContainer.d.ts +16 -16
  715. package/internal/RenderContainer/RenderContainerTypes.d.ts +11 -11
  716. package/internal/RenderContainer/RenderInnerContainer.d.ts +13 -13
  717. package/internal/RenderContainer/index.d.ts +1 -1
  718. package/internal/RenderLayer/RenderLayer.d.ts +27 -27
  719. package/internal/RenderLayer/index.d.ts +1 -1
  720. package/internal/ResizeDetector/ResizeDetector.d.ts +12 -12
  721. package/internal/ResizeDetector/ResizeDetector.styles.d.ts +5 -5
  722. package/internal/ResizeDetector/index.d.ts +1 -1
  723. package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +13 -13
  724. package/internal/ThemePlayground/CheckboxPlayground.d.ts +1 -1
  725. package/internal/ThemePlayground/ComponentsGroup.d.ts +10 -10
  726. package/internal/ThemePlayground/CurrencyInputPlayground.d.ts +11 -11
  727. package/internal/ThemePlayground/FxInputPlayground.d.ts +10 -10
  728. package/internal/ThemePlayground/HintPlayground.d.ts +6 -6
  729. package/internal/ThemePlayground/PagingPlayground.d.ts +10 -10
  730. package/internal/ThemePlayground/Playground.d.ts +31 -31
  731. package/internal/ThemePlayground/Playground.md +7 -7
  732. package/internal/ThemePlayground/Playground.styles.d.ts +23 -23
  733. package/internal/ThemePlayground/RadioPlayground.d.ts +1 -1
  734. package/internal/ThemePlayground/SelectPlayground.d.ts +12 -12
  735. package/internal/ThemePlayground/ShowcaseGroup.d.ts +5 -5
  736. package/internal/ThemePlayground/SwitcherPlayground.d.ts +15 -15
  737. package/internal/ThemePlayground/ThemeContextPlayground.d.ts +51 -51
  738. package/internal/ThemePlayground/ThemeEditor.d.ts +39 -39
  739. package/internal/ThemePlayground/TogglePlayground.d.ts +9 -9
  740. package/internal/ThemePlayground/TokenInputPlayground.d.ts +7 -7
  741. package/internal/ThemePlayground/VariableValue.d.ts +45 -45
  742. package/internal/ThemePlayground/constants.d.ts +18 -18
  743. package/internal/ThemePlayground/darkTheme.d.ts +255 -255
  744. package/internal/ThemePlayground/helpers.d.ts +2 -2
  745. package/internal/ThemeShowcase/ThemeShowcase.d.ts +22 -22
  746. package/internal/ThemeShowcase/ThemeShowcase.md +13 -13
  747. package/internal/ThemeShowcase/ThemeShowcase.styles.d.ts +24 -24
  748. package/internal/ThemeShowcase/VariablesCollector.d.ts +22 -22
  749. package/internal/ZIndex/ZIndex.d.ts +34 -34
  750. package/internal/ZIndex/ZIndexStorage.d.ts +18 -18
  751. package/internal/ZIndex/index.d.ts +1 -1
  752. package/internal/icons/16px/icon.styles.d.ts +4 -4
  753. package/internal/icons/16px/index.d.ts +21 -21
  754. package/internal/icons/20px/Icon.d.ts +30 -30
  755. package/internal/icons/20px/icon.styles.d.ts +4 -4
  756. package/internal/icons/20px/index.d.ts +2 -2
  757. package/internal/icons/20px/svg.d.ts +14 -14
  758. package/internal/icons/CloudIcon.d.ts +1 -1
  759. package/internal/icons/CrossIcon.d.ts +1 -1
  760. package/internal/icons/SpinnerIcon.d.ts +23 -23
  761. package/internal/icons/SpinnerIcon.styles.d.ts +4 -4
  762. package/internal/themes/DefaultTheme.d.ts +766 -766
  763. package/internal/themes/FlatTheme.d.ts +132 -132
  764. package/internal/themes/Theme8px.d.ts +271 -271
  765. package/lib/ConditionalHandler.d.ts +11 -11
  766. package/lib/LayoutEvents.d.ts +4 -4
  767. package/lib/ModalStack.d.ts +14 -14
  768. package/lib/SSRSafe.d.ts +4 -4
  769. package/lib/Supports.d.ts +1 -1
  770. package/lib/Upgrades.d.ts +6 -6
  771. package/lib/animation/index.d.ts +6 -6
  772. package/lib/animation/presets.d.ts +18 -18
  773. package/lib/animation/stepper.d.ts +1 -1
  774. package/lib/client.d.ts +16 -16
  775. package/lib/createPropsGetter.d.ts +2 -2
  776. package/lib/currentEnvironment.d.ts +3 -3
  777. package/lib/date/InternalDate.d.ts +58 -58
  778. package/lib/date/InternalDateCalculator.d.ts +6 -6
  779. package/lib/date/InternalDateGetter.d.ts +15 -15
  780. package/lib/date/InternalDateSetter.d.ts +6 -6
  781. package/lib/date/InternalDateTransformer.d.ts +12 -12
  782. package/lib/date/InternalDateValidator.d.ts +12 -12
  783. package/lib/date/constants.d.ts +28 -28
  784. package/lib/date/localeSets.d.ts +5 -5
  785. package/lib/date/types.d.ts +90 -90
  786. package/lib/dom/getScrollWidth.d.ts +1 -1
  787. package/lib/dom/tabbableHelpers.d.ts +16 -16
  788. package/lib/events/MouseDrag.d.ts +58 -58
  789. package/lib/events/fixClickFocusIE.d.ts +1 -1
  790. package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -2
  791. package/lib/events/keyListener.d.ts +7 -7
  792. package/lib/events/keyboard/KeyboardEventCodes.d.ts +30 -30
  793. package/lib/events/keyboard/KeyboardMapKeys.d.ts +6 -6
  794. package/lib/events/keyboard/extractCode.d.ts +3 -3
  795. package/lib/events/keyboard/identifiers.d.ts +48 -48
  796. package/lib/events/stopPropagation.d.ts +1 -1
  797. package/lib/events/tabListener.d.ts +1 -1
  798. package/lib/extractKeyboardAction.d.ts +13 -13
  799. package/lib/filterProps.d.ts +12 -12
  800. package/lib/forwardRefAndName.d.ts +5 -5
  801. package/lib/getDisplayName.d.ts +3 -3
  802. package/lib/listenFocusOutside.d.ts +8 -8
  803. package/lib/locale/LocaleContext.d.ts +7 -7
  804. package/lib/locale/LocaleHelper.d.ts +9 -9
  805. package/lib/locale/constants.d.ts +2 -2
  806. package/lib/locale/decorators.d.ts +36 -36
  807. package/lib/locale/index.d.ts +3 -3
  808. package/lib/locale/types.d.ts +19 -19
  809. package/lib/memo.d.ts +1 -1
  810. package/lib/net/fetch.d.ts +13 -13
  811. package/lib/polyfillPlaceholder.d.ts +1 -1
  812. package/lib/reactGetTextContent.d.ts +2 -2
  813. package/lib/styles/ColorFactory.d.ts +11 -11
  814. package/lib/styles/ColorFunctions.d.ts +11 -11
  815. package/lib/styles/ColorHelpers.d.ts +20 -20
  816. package/lib/styles/ColorKeywords.d.ts +150 -150
  817. package/lib/styles/ColorObject.d.ts +52 -52
  818. package/lib/styles/DimensionFunctions.d.ts +1 -1
  819. package/lib/styles/HoldSelectionColor.d.ts +1 -1
  820. package/lib/styles/Mixins.d.ts +2 -2
  821. package/lib/taskWithDelayAndMinimalDuration.d.ts +21 -21
  822. package/lib/theming/AnimationKeyframes.d.ts +9 -9
  823. package/lib/theming/Emotion.d.ts +15 -15
  824. package/lib/theming/Theme.d.ts +3 -3
  825. package/lib/theming/ThemeContext.d.ts +2 -2
  826. package/lib/theming/ThemeFactory.d.ts +8 -8
  827. package/lib/theming/ThemeHelpers.d.ts +11 -11
  828. package/lib/theming/themes/DefaultTheme.d.ts +1 -1
  829. package/lib/theming/themes/DefaultThemeOld.d.ts +1 -1
  830. package/lib/theming/themes/FlatTheme.d.ts +1 -1
  831. package/lib/theming/themes/FlatThemeOld.d.ts +1 -1
  832. package/lib/utils.d.ts +28 -28
  833. package/lib/withClassWrapper/withClassWrapper.js.map +1 -1
  834. package/lib/withClassWrapper.d.ts +68 -71
  835. package/package.json +1 -1
@@ -1,161 +1,161 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Nullable } from '../../typings/utility-types';
4
- import { FocusEventType, MouseEventType } from '../../typings/event-types';
5
- import { CommonProps } from '../CommonWrapper';
6
- export declare type PopupPosition = 'top left' | 'top center' | 'top right' | 'right top' | 'right middle' | 'right bottom' | 'bottom left' | 'bottom center' | 'bottom right' | 'left top' | 'left middle' | 'left bottom';
7
- export declare const PopupPositions: PopupPosition[];
8
- export interface PopupHandlerProps {
9
- onMouseEnter?: (event: MouseEventType) => void;
10
- onMouseLeave?: (event: MouseEventType) => void;
11
- onClick?: (event: MouseEventType) => void;
12
- onFocus?: (event: FocusEventType) => void;
13
- onBlur?: (event: FocusEventType) => void;
14
- onOpen?: () => void;
15
- onClose?: () => void;
16
- }
17
- export interface PopupProps extends CommonProps, PopupHandlerProps {
18
- anchorElement: React.ReactNode | HTMLElement;
19
- backgroundColor?: React.CSSProperties['backgroundColor'];
20
- borderColor?: React.CSSProperties['borderColor'];
21
- children: React.ReactNode | (() => React.ReactNode);
22
- hasPin: boolean;
23
- hasShadow: boolean;
24
- disableAnimations: boolean;
25
- margin?: number;
26
- maxWidth?: number | string;
27
- opened: boolean;
28
- pinOffset?: number;
29
- pinSize?: number;
30
- popupOffset: number;
31
- positions: PopupPosition[];
32
- /**
33
- * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.
34
- *
35
- * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.
36
- */
37
- useWrapper: boolean;
38
- ignoreHover: boolean;
39
- width: React.CSSProperties['width'];
40
- /**
41
- * При очередном рендере пытаться сохранить первоначальную позицию попапа
42
- * (в числе числе, когда он выходит за пределы экрана, но может быть проскролен в него).
43
- *
44
- * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.
45
- * @see https://github.com/skbkontur/retail-ui/pull/1195
46
- */
47
- tryPreserveFirstRenderedPosition?: boolean;
48
- }
49
- interface PopupLocation {
50
- coordinates: {
51
- left: number;
52
- top: number;
53
- };
54
- position: PopupPosition;
55
- }
56
- export interface PopupState {
57
- location: Nullable<PopupLocation>;
58
- }
59
- export declare class Popup extends React.PureComponent<PopupProps, PopupState> {
60
- static __KONTUR_REACT_UI__: string;
61
- static propTypes: {
62
- /**
63
- * Ссылка (ref) на элемент или React компонент, для которого рисуется попап
64
- */
65
- anchorElement: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
66
- /**
67
- * Фон попапа и пина
68
- */
69
- backgroundColor: PropTypes.Requireable<string>;
70
- children: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
71
- /**
72
- * Показывать ли пин
73
- */
74
- hasPin: PropTypes.Requireable<boolean>;
75
- /**
76
- * Применять ли box-shadow на попапе. При false отключает границу на пине
77
- */
78
- hasShadow: PropTypes.Requireable<boolean>;
79
- /**
80
- * Отступ попапа от элемента
81
- */
82
- margin: PropTypes.Requireable<number>;
83
- /**
84
- * Показан или скрыт попап
85
- */
86
- opened: PropTypes.Requireable<boolean>;
87
- /**
88
- * Смещение пина от края попапа. Край задаётся в пропе position вторым словом
89
- */
90
- pinOffset: PropTypes.Requireable<number>;
91
- /**
92
- * Сторона пина без учёта границы.
93
- * Пин представляет собой равносторонний треугольник, высота от попапа
94
- * до "носика" пина будет соответствовать формуле (size* √3)/2
95
- */
96
- pinSize: PropTypes.Requireable<number>;
97
- /**
98
- * смещение попапа относительно родительского элемента
99
- */
100
- popupOffset: PropTypes.Requireable<number>;
101
- /**
102
- * С какой стороны показывать попап и край попапа,
103
- * на котором будет отображаться пин
104
- */
105
- positions: PropTypes.Requireable<any[]>;
106
- /**
107
- * Игнорировать ли события hover/click
108
- */
109
- ignoreHover: PropTypes.Requireable<boolean>;
110
- };
111
- static defaultProps: {
112
- popupOffset: number;
113
- hasPin: boolean;
114
- hasShadow: boolean;
115
- disableAnimations: boolean;
116
- useWrapper: boolean;
117
- ignoreHover: boolean;
118
- width: string;
119
- };
120
- state: PopupState;
121
- private theme;
122
- private layoutEventsToken;
123
- private locationUpdateId;
124
- private lastPopupElement;
125
- private anchorElement;
126
- private anchorInstance;
127
- componentDidMount(): void;
128
- static getDerivedStateFromProps(props: PopupProps, state: PopupState): PopupState;
129
- componentDidUpdate(prevProps: PopupProps, prevState: PopupState): void;
130
- componentWillUnmount(): void;
131
- render(): JSX.Element;
132
- private renderMain;
133
- private refAnchorElement;
134
- private extractElement;
135
- private updateAnchorElement;
136
- private addEventListeners;
137
- private removeEventListeners;
138
- private handleMouseEnter;
139
- private handleMouseLeave;
140
- private handleClick;
141
- private handleFocus;
142
- private handleBlur;
143
- private calculateWidth;
144
- private renderContent;
145
- private resetLocation;
146
- private renderChildren;
147
- private refPopupElement;
148
- private renderPin;
149
- private handleLayoutEvent;
150
- private delayUpdateLocation;
151
- private cancelDelayedUpdateLocation;
152
- private updateLocation;
153
- private locationEquals;
154
- private getLocation;
155
- private getPinnedPopupOffset;
156
- private getCoordinates;
157
- private getPinOffset;
158
- private getHorizontalPosition;
159
- private getVerticalPosition;
160
- }
161
- export {};
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { Nullable } from '../../typings/utility-types';
4
+ import { FocusEventType, MouseEventType } from '../../typings/event-types';
5
+ import { CommonProps } from '../CommonWrapper';
6
+ export declare type PopupPosition = 'top left' | 'top center' | 'top right' | 'right top' | 'right middle' | 'right bottom' | 'bottom left' | 'bottom center' | 'bottom right' | 'left top' | 'left middle' | 'left bottom';
7
+ export declare const PopupPositions: PopupPosition[];
8
+ export interface PopupHandlerProps {
9
+ onMouseEnter?: (event: MouseEventType) => void;
10
+ onMouseLeave?: (event: MouseEventType) => void;
11
+ onClick?: (event: MouseEventType) => void;
12
+ onFocus?: (event: FocusEventType) => void;
13
+ onBlur?: (event: FocusEventType) => void;
14
+ onOpen?: () => void;
15
+ onClose?: () => void;
16
+ }
17
+ export interface PopupProps extends CommonProps, PopupHandlerProps {
18
+ anchorElement: React.ReactNode | HTMLElement;
19
+ backgroundColor?: React.CSSProperties['backgroundColor'];
20
+ borderColor?: React.CSSProperties['borderColor'];
21
+ children: React.ReactNode | (() => React.ReactNode);
22
+ hasPin: boolean;
23
+ hasShadow: boolean;
24
+ disableAnimations: boolean;
25
+ margin?: number;
26
+ maxWidth?: number | string;
27
+ opened: boolean;
28
+ pinOffset?: number;
29
+ pinSize?: number;
30
+ popupOffset: number;
31
+ positions: PopupPosition[];
32
+ /**
33
+ * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.
34
+ *
35
+ * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.
36
+ */
37
+ useWrapper: boolean;
38
+ ignoreHover: boolean;
39
+ width: React.CSSProperties['width'];
40
+ /**
41
+ * При очередном рендере пытаться сохранить первоначальную позицию попапа
42
+ * (в числе числе, когда он выходит за пределы экрана, но может быть проскролен в него).
43
+ *
44
+ * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.
45
+ * @see https://github.com/skbkontur/retail-ui/pull/1195
46
+ */
47
+ tryPreserveFirstRenderedPosition?: boolean;
48
+ }
49
+ interface PopupLocation {
50
+ coordinates: {
51
+ left: number;
52
+ top: number;
53
+ };
54
+ position: PopupPosition;
55
+ }
56
+ export interface PopupState {
57
+ location: Nullable<PopupLocation>;
58
+ }
59
+ export declare class Popup extends React.Component<PopupProps, PopupState> {
60
+ static __KONTUR_REACT_UI__: string;
61
+ static propTypes: {
62
+ /**
63
+ * Ссылка (ref) на элемент или React компонент, для которого рисуется попап
64
+ */
65
+ anchorElement: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
66
+ /**
67
+ * Фон попапа и пина
68
+ */
69
+ backgroundColor: PropTypes.Requireable<string>;
70
+ children: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
71
+ /**
72
+ * Показывать ли пин
73
+ */
74
+ hasPin: PropTypes.Requireable<boolean>;
75
+ /**
76
+ * Применять ли box-shadow на попапе. При false отключает границу на пине
77
+ */
78
+ hasShadow: PropTypes.Requireable<boolean>;
79
+ /**
80
+ * Отступ попапа от элемента
81
+ */
82
+ margin: PropTypes.Requireable<number>;
83
+ /**
84
+ * Показан или скрыт попап
85
+ */
86
+ opened: PropTypes.Requireable<boolean>;
87
+ /**
88
+ * Смещение пина от края попапа. Край задаётся в пропе position вторым словом
89
+ */
90
+ pinOffset: PropTypes.Requireable<number>;
91
+ /**
92
+ * Сторона пина без учёта границы.
93
+ * Пин представляет собой равносторонний треугольник, высота от попапа
94
+ * до "носика" пина будет соответствовать формуле (size* √3)/2
95
+ */
96
+ pinSize: PropTypes.Requireable<number>;
97
+ /**
98
+ * смещение попапа относительно родительского элемента
99
+ */
100
+ popupOffset: PropTypes.Requireable<number>;
101
+ /**
102
+ * С какой стороны показывать попап и край попапа,
103
+ * на котором будет отображаться пин
104
+ */
105
+ positions: PropTypes.Requireable<any[]>;
106
+ /**
107
+ * Игнорировать ли события hover/click
108
+ */
109
+ ignoreHover: PropTypes.Requireable<boolean>;
110
+ };
111
+ static defaultProps: {
112
+ popupOffset: number;
113
+ hasPin: boolean;
114
+ hasShadow: boolean;
115
+ disableAnimations: boolean;
116
+ useWrapper: boolean;
117
+ ignoreHover: boolean;
118
+ width: string;
119
+ };
120
+ state: PopupState;
121
+ private theme;
122
+ private layoutEventsToken;
123
+ private locationUpdateId;
124
+ private lastPopupElement;
125
+ private anchorElement;
126
+ private anchorInstance;
127
+ componentDidMount(): void;
128
+ UNSAFE_componentWillReceiveProps(nextProps: Readonly<PopupProps>): void;
129
+ componentDidUpdate(prevProps: PopupProps, prevState: PopupState): void;
130
+ componentWillUnmount(): void;
131
+ render(): JSX.Element;
132
+ private renderMain;
133
+ private refAnchorElement;
134
+ private extractElement;
135
+ private updateAnchorElement;
136
+ private addEventListeners;
137
+ private removeEventListeners;
138
+ private handleMouseEnter;
139
+ private handleMouseLeave;
140
+ private handleClick;
141
+ private handleFocus;
142
+ private handleBlur;
143
+ private calculateWidth;
144
+ private renderContent;
145
+ private resetLocation;
146
+ private renderChildren;
147
+ private refPopupElement;
148
+ private renderPin;
149
+ private handleLayoutEvent;
150
+ private delayUpdateLocation;
151
+ private cancelDelayedUpdateLocation;
152
+ private updateLocation;
153
+ private locationEquals;
154
+ private getLocation;
155
+ private getPinnedPopupOffset;
156
+ private getCoordinates;
157
+ private getPinOffset;
158
+ private getHorizontalPosition;
159
+ private getVerticalPosition;
160
+ }
161
+ export {};
@@ -118,7 +118,7 @@ var PopupPositions = [
118
118
 
119
119
 
120
120
 
121
- Popup = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(Popup, _React$PureComponent);function Popup() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
121
+ Popup = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Popup, _React$Component);function Popup() {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.
122
122
 
123
123
 
124
124
 
@@ -264,13 +264,6 @@ Popup = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.defaul
264
264
 
265
265
 
266
266
 
267
-
268
-
269
-
270
-
271
-
272
-
273
-
274
267
 
275
268
 
276
269
 
@@ -496,9 +489,9 @@ Popup = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.defaul
496
489
  if (!_this.locationEquals(_this.state.location, location)) {
497
490
  _this.setState({ location: location });
498
491
  }
499
- };return _this;}var _proto = Popup.prototype;_proto.componentDidMount = function componentDidMount() {console.log('wat');this.updateLocation();this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);};Popup.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {/**
492
+ };return _this;}var _proto = Popup.prototype;_proto.componentDidMount = function componentDidMount() {this.updateLocation();this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);};_proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {/**
500
493
  * Delaying updateLocation to ensure it happens after props update
501
- */if (props.opened) {if (!state.location) {return { location: DUMMY_LOCATION };}} else {return { location: DUMMY_LOCATION };}return state;};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var hadNoLocation = prevState.location === DUMMY_LOCATION;var hasLocation = this.state.location !== DUMMY_LOCATION;if (hadNoLocation && hasLocation && this.props.onOpen) {this.props.onOpen();}if (!hadNoLocation && !this.state.location && this.props.onClose) {this.props.onClose();}if (this.props.opened) {this.delayUpdateLocation();}};_proto.componentWillUnmount = function componentWillUnmount() {this.cancelDelayedUpdateLocation();this.removeEventListeners(this.anchorElement);if (this.layoutEventsToken) {this.layoutEventsToken.remove();this.layoutEventsToken = null;}if (this.state.location && this.props.onClose) {this.props.onClose();}};_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 location = this.state.location;var _this$props = this.props,anchorElement = _this$props.anchorElement,useWrapper = _this$props.useWrapper;var child = null;if ((0, _SSRSafe.isHTMLElement)(anchorElement)) {this.updateAnchorElement(anchorElement);} else if ( /*#__PURE__*/_react.default.isValidElement(anchorElement)) {child = useWrapper ? /*#__PURE__*/_react.default.createElement("span", null, anchorElement) : anchorElement;} else {child = /*#__PURE__*/_react.default.createElement("span", null, anchorElement);}return /*#__PURE__*/_react.default.createElement(_RenderContainer.RenderContainer, { anchor: child, ref: child ? this.refAnchorElement : undefined }, location && this.renderContent(location));};_proto.extractElement = function extractElement(instance) {if (!instance) {return null;}var element = (0, _reactDom.findDOMNode)(instance);return (0, _SSRSafe.isHTMLElement)(element) ? element : null;};_proto.updateAnchorElement = function updateAnchorElement(element) {var anchorElement = this.anchorElement;if (element !== anchorElement) {this.removeEventListeners(anchorElement);this.anchorElement = element;this.addEventListeners(element);}};_proto.addEventListeners = function addEventListeners(element) {if (element && (0, _SSRSafe.isHTMLElement)(element)) {element.addEventListener('mouseenter', this.handleMouseEnter);element.addEventListener('mouseleave', this.handleMouseLeave);element.addEventListener('click', this.handleClick);element.addEventListener('focusin', this.handleFocus);element.addEventListener('focusout', this.handleBlur);}};_proto.removeEventListeners = function removeEventListeners(element) {if (element && (0, _SSRSafe.isHTMLElement)(element)) {element.removeEventListener('mouseenter', this.handleMouseEnter);element.removeEventListener('mouseleave', this.handleMouseLeave);element.removeEventListener('click', this.handleClick);element.removeEventListener('focusin', this.handleFocus);element.removeEventListener('focusout', this.handleBlur);}};_proto.renderContent = function renderContent(location) {var _this3 = this;var _this$props2 = this.props,backgroundColor = _this$props2.backgroundColor,disableAnimations = _this$props2.disableAnimations,maxWidth = _this$props2.maxWidth,hasShadow = _this$props2.hasShadow,ignoreHover = _this$props2.ignoreHover,opened = _this$props2.opened,width = _this$props2.width;var children = this.renderChildren();var _PopupHelper$getPosit = _PopupHelper.PopupHelper.getPositionObject(location.position),direction = _PopupHelper$getPosit.direction;var rootStyle = (0, _extends3.default)({}, location.coordinates, { maxWidth: maxWidth });var shouldFallbackShadow = _client.isIE11 || _client.isEdge || _client.isSafari;return /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.Transition, { timeout: TRANSITION_TIMEOUT, appear: !disableAnimations, in: Boolean(opened && children), mountOnEnter: true, unmountOnExit: true, enter: !disableAnimations, exit: !disableAnimations, onExited: this.resetLocation }, function (state) {var _extends2, _ref;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, _this3.props, /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { ref: _this3.refPopupElement, priority: 'Popup', className: (0, _Emotion.cx)((0, _extends3.default)((_extends2 = {}, _extends2[_Popup.styles.popup(_this3.theme)] = true, _extends2[_Popup.styles.shadow(_this3.theme)] = hasShadow && !shouldFallbackShadow, _extends2[_Popup.styles.shadowFallback(_this3.theme)] = hasShadow && shouldFallbackShadow, _extends2[_Popup.styles.popupIgnoreHover()] = ignoreHover, _extends2), disableAnimations ? {} : (_ref = {}, _ref[_Popup.styles["transition-enter-" + direction](_this3.theme)] = true, _ref[_Popup.styles.transitionEnter()] = state === 'entering', _ref[_Popup.styles.transitionEnterActive()] = state === 'entered', _ref[_Popup.styles.transitionExit()] = state === 'exiting', _ref))), style: rootStyle, onMouseEnter: _this3.handleMouseEnter, onMouseLeave: _this3.handleMouseLeave }, /*#__PURE__*/_react.default.createElement("div", { className: _Popup.styles.content(_this3.theme), "data-tid": 'PopupContent' }, /*#__PURE__*/_react.default.createElement("div", { className: _Popup.styles.contentInner(_this3.theme), style: { backgroundColor: backgroundColor, width: _this3.calculateWidth(width) }, "data-tid": 'PopupContentInner' }, children)), _this3.renderPin(location.position)));});};_proto.renderChildren = function renderChildren() {return (0, _utils.isFunction)(this.props.children) ? this.props.children() : this.props.children;};_proto.renderPin = function renderPin(positionName) {/**
494
+ */if (nextProps.opened) {if (!this.state.location) {this.setState({ location: DUMMY_LOCATION });}this.delayUpdateLocation();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var hadNoLocation = prevState.location === DUMMY_LOCATION;var hasLocation = this.state.location !== DUMMY_LOCATION;if (hadNoLocation && hasLocation && this.props.onOpen) {this.props.onOpen();}if (!hadNoLocation && !this.state.location && this.props.onClose) {this.props.onClose();}};_proto.componentWillUnmount = function componentWillUnmount() {this.cancelDelayedUpdateLocation();this.removeEventListeners(this.anchorElement);if (this.layoutEventsToken) {this.layoutEventsToken.remove();this.layoutEventsToken = null;}if (this.state.location && this.props.onClose) {this.props.onClose();}};_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 location = this.state.location;var _this$props = this.props,anchorElement = _this$props.anchorElement,useWrapper = _this$props.useWrapper;var child = null;if ((0, _SSRSafe.isHTMLElement)(anchorElement)) {this.updateAnchorElement(anchorElement);} else if ( /*#__PURE__*/_react.default.isValidElement(anchorElement)) {child = useWrapper ? /*#__PURE__*/_react.default.createElement("span", null, anchorElement) : anchorElement;} else {child = /*#__PURE__*/_react.default.createElement("span", null, anchorElement);}return /*#__PURE__*/_react.default.createElement(_RenderContainer.RenderContainer, { anchor: child, ref: child ? this.refAnchorElement : undefined }, location && this.renderContent(location));};_proto.extractElement = function extractElement(instance) {if (!instance) {return null;}var element = (0, _reactDom.findDOMNode)(instance);return (0, _SSRSafe.isHTMLElement)(element) ? element : null;};_proto.updateAnchorElement = function updateAnchorElement(element) {var anchorElement = this.anchorElement;if (element !== anchorElement) {this.removeEventListeners(anchorElement);this.anchorElement = element;this.addEventListeners(element);}};_proto.addEventListeners = function addEventListeners(element) {if (element && (0, _SSRSafe.isHTMLElement)(element)) {element.addEventListener('mouseenter', this.handleMouseEnter);element.addEventListener('mouseleave', this.handleMouseLeave);element.addEventListener('click', this.handleClick);element.addEventListener('focusin', this.handleFocus);element.addEventListener('focusout', this.handleBlur);}};_proto.removeEventListeners = function removeEventListeners(element) {if (element && (0, _SSRSafe.isHTMLElement)(element)) {element.removeEventListener('mouseenter', this.handleMouseEnter);element.removeEventListener('mouseleave', this.handleMouseLeave);element.removeEventListener('click', this.handleClick);element.removeEventListener('focusin', this.handleFocus);element.removeEventListener('focusout', this.handleBlur);}};_proto.renderContent = function renderContent(location) {var _this3 = this;var _this$props2 = this.props,backgroundColor = _this$props2.backgroundColor,disableAnimations = _this$props2.disableAnimations,maxWidth = _this$props2.maxWidth,hasShadow = _this$props2.hasShadow,ignoreHover = _this$props2.ignoreHover,opened = _this$props2.opened,width = _this$props2.width;var children = this.renderChildren();var _PopupHelper$getPosit = _PopupHelper.PopupHelper.getPositionObject(location.position),direction = _PopupHelper$getPosit.direction;var rootStyle = (0, _extends3.default)({}, location.coordinates, { maxWidth: maxWidth });var shouldFallbackShadow = _client.isIE11 || _client.isEdge || _client.isSafari;return /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.Transition, { timeout: TRANSITION_TIMEOUT, appear: !disableAnimations, in: Boolean(opened && children), mountOnEnter: true, unmountOnExit: true, enter: !disableAnimations, exit: !disableAnimations, onExited: this.resetLocation }, function (state) {var _extends2, _ref;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, _this3.props, /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { ref: _this3.refPopupElement, priority: 'Popup', className: (0, _Emotion.cx)((0, _extends3.default)((_extends2 = {}, _extends2[_Popup.styles.popup(_this3.theme)] = true, _extends2[_Popup.styles.shadow(_this3.theme)] = hasShadow && !shouldFallbackShadow, _extends2[_Popup.styles.shadowFallback(_this3.theme)] = hasShadow && shouldFallbackShadow, _extends2[_Popup.styles.popupIgnoreHover()] = ignoreHover, _extends2), disableAnimations ? {} : (_ref = {}, _ref[_Popup.styles["transition-enter-" + direction](_this3.theme)] = true, _ref[_Popup.styles.transitionEnter()] = state === 'entering', _ref[_Popup.styles.transitionEnterActive()] = state === 'entered', _ref[_Popup.styles.transitionExit()] = state === 'exiting', _ref))), style: rootStyle, onMouseEnter: _this3.handleMouseEnter, onMouseLeave: _this3.handleMouseLeave }, /*#__PURE__*/_react.default.createElement("div", { className: _Popup.styles.content(_this3.theme), "data-tid": 'PopupContent' }, /*#__PURE__*/_react.default.createElement("div", { className: _Popup.styles.contentInner(_this3.theme), style: { backgroundColor: backgroundColor, width: _this3.calculateWidth(width) }, "data-tid": 'PopupContentInner' }, children)), _this3.renderPin(location.position)));});};_proto.renderChildren = function renderChildren() {return (0, _utils.isFunction)(this.props.children) ? this.props.children() : this.props.children;};_proto.renderPin = function renderPin(positionName) {/**
502
495
  * Box-shadow does not appear under the pin. Borders are used instead.
503
496
  * In non-ie browsers drop-shadow filter is used. It is applying
504
497
  * shadow to the pin too.
@@ -655,7 +648,7 @@ Popup = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.defaul
655
648
  default:
656
649
  throw new Error("Unexpected align '" + align + "'");}
657
650
 
658
- };return Popup;}(_react.default.PureComponent);exports.Popup = Popup;Popup.__KONTUR_REACT_UI__ = 'Popup';Popup.propTypes = { /**
651
+ };return Popup;}(_react.default.Component);exports.Popup = Popup;Popup.__KONTUR_REACT_UI__ = 'Popup';Popup.propTypes = { /**
659
652
  * Ссылка (ref) на элемент или React компонент, для которого рисуется попап
660
653
  */anchorElement: _propTypes.default.oneOfType([(0, _SSRSafe.safePropTypesInstanceOf)(function () {return HTMLElement;}), _propTypes.default.node]).isRequired, /**
661
654
  * Фон попапа и пина
@@ -1 +1 @@
1
- {"version":3,"sources":["Popup.tsx"],"names":["POPUP_BORDER_DEFAULT_COLOR","TRANSITION_TIMEOUT","enter","exit","DUMMY_LOCATION","position","coordinates","top","left","PopupPositions","Popup","state","location","props","opened","theme","layoutEventsToken","locationUpdateId","lastPopupElement","anchorElement","anchorInstance","refAnchorElement","instance","element","extractElement","updateAnchorElement","handleMouseEnter","event","onMouseEnter","handleMouseLeave","onMouseLeave","handleClick","onClick","handleFocus","onFocus","handleBlur","onBlur","calculateWidth","width","includes","offsetWidth","parseFloat","resetLocation","cancelDelayedUpdateLocation","setState","refPopupElement","zIndex","handleLayoutEvent","updateLocation","popupElement","getLocation","locationEquals","componentDidMount","console","log","LayoutEvents","addListener","getDerivedStateFromProps","componentDidUpdate","prevProps","prevState","hadNoLocation","hasLocation","onOpen","onClose","delayUpdateLocation","componentWillUnmount","removeEventListeners","remove","render","renderMain","useWrapper","child","React","isValidElement","undefined","renderContent","addEventListeners","addEventListener","removeEventListener","backgroundColor","disableAnimations","maxWidth","hasShadow","ignoreHover","children","renderChildren","PopupHelper","getPositionObject","direction","rootStyle","shouldFallbackShadow","isIE11","isEdge","isSafari","Boolean","styles","popup","shadow","shadowFallback","popupIgnoreHover","transitionEnter","transitionEnterActive","transitionExit","content","contentInner","renderPin","positionName","isDefaultBorderColor","popupBorderColor","pinBorder","pinSize","borderColor","hasPin","parseInt","popupPinSize","getPinOffset","align","popupBackground","raf","cancel","x","y","positions","tryPreserveFirstRenderedPosition","anchorRect","getElementAbsoluteRect","popupRect","getCoordinates","isFullyVisible","canBecomeVisible","canBecomeFullyVisible","getPinnedPopupOffset","test","anchorSize","height","Math","max","marginFromProps","margin","isNaN","popupMargin","popupOffset","getHorizontalPosition","getVerticalPosition","Error","pinOffset","popupPinOffset","popupPinOffsetY","popupPinOffsetX","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","oneOfType","HTMLElement","node","isRequired","string","func","bool","number","array","defaultProps","isTestEnv"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport raf from 'raf';\nimport warning from 'warning';\n\nimport { Nullable } from '../../typings/utility-types';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ZIndex } from '../ZIndex';\nimport { RenderContainer } from '../RenderContainer';\nimport { FocusEventType, MouseEventType } from '../../typings/event-types';\nimport { isFunction, isNonNullable } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isHTMLElement, safePropTypesInstanceOf } from '../../lib/SSRSafe';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { PopupPin } from './PopupPin';\nimport { Offset, PopupHelper, PositionObject, Rect } from './PopupHelper';\nimport { styles } from './Popup.styles';\n\nconst POPUP_BORDER_DEFAULT_COLOR = 'transparent';\nconst TRANSITION_TIMEOUT = { enter: 0, exit: 200 };\n\nconst DUMMY_LOCATION: PopupLocation = {\n position: 'top left',\n coordinates: {\n top: -9999,\n left: -9999,\n },\n};\n\nexport type PopupPosition =\n | 'top left'\n | 'top center'\n | 'top right'\n | 'right top'\n | 'right middle'\n | 'right bottom'\n | 'bottom left'\n | 'bottom center'\n | 'bottom right'\n | 'left top'\n | 'left middle'\n | 'left bottom';\n\nexport const PopupPositions: PopupPosition[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom right',\n 'bottom center',\n 'bottom left',\n 'left bottom',\n 'left middle',\n 'left top',\n];\n\nexport interface PopupHandlerProps {\n onMouseEnter?: (event: MouseEventType) => void;\n onMouseLeave?: (event: MouseEventType) => void;\n onClick?: (event: MouseEventType) => void;\n onFocus?: (event: FocusEventType) => void;\n onBlur?: (event: FocusEventType) => void;\n onOpen?: () => void;\n onClose?: () => void;\n}\n\nexport interface PopupProps extends CommonProps, PopupHandlerProps {\n anchorElement: React.ReactNode | HTMLElement;\n backgroundColor?: React.CSSProperties['backgroundColor'];\n borderColor?: React.CSSProperties['borderColor'];\n children: React.ReactNode | (() => React.ReactNode);\n hasPin: boolean;\n hasShadow: boolean;\n disableAnimations: boolean;\n margin?: number;\n maxWidth?: number | string;\n opened: boolean;\n pinOffset?: number;\n pinSize?: number;\n popupOffset: number;\n positions: PopupPosition[];\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper: boolean;\n ignoreHover: boolean;\n width: React.CSSProperties['width'];\n /**\n * При очередном рендере пытаться сохранить первоначальную позицию попапа\n * (в числе числе, когда он выходит за пределы экрана, но может быть проскролен в него).\n *\n * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.\n * @see https://github.com/skbkontur/retail-ui/pull/1195\n */\n tryPreserveFirstRenderedPosition?: boolean;\n}\n\ninterface PopupLocation {\n coordinates: {\n left: number;\n top: number;\n };\n position: PopupPosition;\n}\n\nexport interface PopupState {\n location: Nullable<PopupLocation>;\n}\n\nexport class Popup extends React.PureComponent<PopupProps, PopupState> {\n public static __KONTUR_REACT_UI__ = 'Popup';\n\n public static propTypes = {\n /**\n * Ссылка (ref) на элемент или React компонент, для которого рисуется попап\n */\n anchorElement: PropTypes.oneOfType([safePropTypesInstanceOf(() => HTMLElement), PropTypes.node]).isRequired,\n\n /**\n * Фон попапа и пина\n */\n backgroundColor: PropTypes.string,\n\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * Показывать ли пин\n */\n hasPin: PropTypes.bool,\n\n /**\n * Применять ли box-shadow на попапе. При false отключает границу на пине\n */\n hasShadow: PropTypes.bool,\n\n /**\n * Отступ попапа от элемента\n */\n margin: PropTypes.number,\n\n /**\n * Показан или скрыт попап\n */\n opened: PropTypes.bool,\n\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n pinOffset: PropTypes.number,\n\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n pinSize: PropTypes.number,\n\n /**\n * смещение попапа относительно родительского элемента\n */\n popupOffset: PropTypes.number,\n\n /**\n * С какой стороны показывать попап и край попапа,\n * на котором будет отображаться пин\n */\n positions: PropTypes.array,\n\n /**\n * Игнорировать ли события hover/click\n */\n ignoreHover: PropTypes.bool,\n };\n\n public static defaultProps = {\n popupOffset: 0,\n hasPin: false,\n hasShadow: false,\n disableAnimations: isTestEnv,\n useWrapper: false,\n ignoreHover: false,\n width: 'auto',\n };\n\n public state: PopupState = { location: this.props.opened ? DUMMY_LOCATION : null };\n private theme!: Theme;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private locationUpdateId: Nullable<number> = null;\n private lastPopupElement: Nullable<HTMLElement>;\n private anchorElement: Nullable<HTMLElement> = null;\n private anchorInstance: Nullable<React.ReactInstance>;\n\n public componentDidMount() {\n console.log('wat');\n this.updateLocation();\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);\n }\n\n static getDerivedStateFromProps(props: PopupProps, state: PopupState) {\n /**\n * Delaying updateLocation to ensure it happens after props update\n */\n if (props.opened) {\n if (!state.location) {\n return { location: DUMMY_LOCATION };\n }\n } else {\n return { location: DUMMY_LOCATION };\n }\n return state;\n }\n\n public componentDidUpdate(prevProps: PopupProps, prevState: PopupState) {\n const hadNoLocation = prevState.location === DUMMY_LOCATION;\n const hasLocation = this.state.location !== DUMMY_LOCATION;\n if (hadNoLocation && hasLocation && this.props.onOpen) {\n this.props.onOpen();\n }\n if (!hadNoLocation && !this.state.location && this.props.onClose) {\n this.props.onClose();\n }\n\n if (this.props.opened) {\n this.delayUpdateLocation();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedUpdateLocation();\n this.removeEventListeners(this.anchorElement);\n if (this.layoutEventsToken) {\n this.layoutEventsToken.remove();\n this.layoutEventsToken = null;\n }\n if (this.state.location && this.props.onClose) {\n this.props.onClose();\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 private renderMain() {\n const { location } = this.state;\n const { anchorElement, useWrapper } = this.props;\n\n let child: Nullable<React.ReactNode> = null;\n if (isHTMLElement(anchorElement)) {\n this.updateAnchorElement(anchorElement);\n } else if (React.isValidElement(anchorElement)) {\n child = useWrapper ? <span>{anchorElement}</span> : anchorElement;\n } else {\n child = <span>{anchorElement}</span>;\n }\n\n return (\n <RenderContainer anchor={child} ref={child ? this.refAnchorElement : undefined}>\n {location && this.renderContent(location)}\n </RenderContainer>\n );\n }\n\n private refAnchorElement = (instance: React.ReactInstance | null) => {\n this.anchorInstance = instance;\n const element = this.extractElement(instance);\n this.updateAnchorElement(element);\n this.anchorElement = element;\n };\n\n private extractElement(instance: React.ReactInstance | null) {\n if (!instance) {\n return null;\n }\n const element = findDOMNode(instance);\n return isHTMLElement(element) ? element : null;\n }\n\n private updateAnchorElement(element: HTMLElement | null) {\n const anchorElement = this.anchorElement;\n\n if (element !== anchorElement) {\n this.removeEventListeners(anchorElement);\n this.anchorElement = element;\n this.addEventListeners(element);\n }\n }\n\n private addEventListeners(element: Nullable<HTMLElement>) {\n if (element && isHTMLElement(element)) {\n element.addEventListener('mouseenter', this.handleMouseEnter);\n element.addEventListener('mouseleave', this.handleMouseLeave);\n element.addEventListener('click', this.handleClick);\n element.addEventListener('focusin', this.handleFocus as EventListener);\n element.addEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private removeEventListeners(element: Nullable<HTMLElement>) {\n if (element && isHTMLElement(element)) {\n element.removeEventListener('mouseenter', this.handleMouseEnter);\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n element.removeEventListener('click', this.handleClick);\n element.removeEventListener('focusin', this.handleFocus as EventListener);\n element.removeEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(event);\n }\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(event);\n }\n };\n\n private handleClick = (event: MouseEventType) => {\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n };\n\n private handleFocus = (event: FocusEventType) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: FocusEventType) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private calculateWidth = (width: PopupProps['width']) => {\n if (typeof width === 'string' && width.includes('%')) {\n return this.anchorElement ? (this.anchorElement.offsetWidth * parseFloat(width)) / 100 : 0;\n }\n return width;\n };\n\n private renderContent(location: PopupLocation) {\n const { backgroundColor, disableAnimations, maxWidth, hasShadow, ignoreHover, opened, width } = this.props;\n const children = this.renderChildren();\n\n const { direction } = PopupHelper.getPositionObject(location.position);\n const rootStyle: React.CSSProperties = { ...location.coordinates, maxWidth };\n\n const shouldFallbackShadow = isIE11 || isEdge || isSafari;\n\n return (\n <Transition\n timeout={TRANSITION_TIMEOUT}\n appear={!disableAnimations}\n in={Boolean(opened && children)}\n mountOnEnter\n unmountOnExit\n enter={!disableAnimations}\n exit={!disableAnimations}\n onExited={this.resetLocation}\n >\n {(state: string) => (\n <CommonWrapper {...this.props}>\n <ZIndex\n ref={this.refPopupElement}\n priority={'Popup'}\n className={cx({\n [styles.popup(this.theme)]: true,\n [styles.shadow(this.theme)]: hasShadow && !shouldFallbackShadow,\n [styles.shadowFallback(this.theme)]: hasShadow && shouldFallbackShadow,\n [styles.popupIgnoreHover()]: ignoreHover,\n ...(disableAnimations\n ? {}\n : {\n [styles[`transition-enter-${direction}` as keyof typeof styles](this.theme)]: true,\n [styles.transitionEnter()]: state === 'entering',\n [styles.transitionEnterActive()]: state === 'entered',\n [styles.transitionExit()]: state === 'exiting',\n }),\n })}\n style={rootStyle}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n <div className={styles.content(this.theme)} data-tid={'PopupContent'}>\n <div\n className={styles.contentInner(this.theme)}\n style={{ backgroundColor, width: this.calculateWidth(width) }}\n data-tid={'PopupContentInner'}\n >\n {children}\n </div>\n </div>\n {this.renderPin(location.position)}\n </ZIndex>\n </CommonWrapper>\n )}\n </Transition>\n );\n }\n\n private resetLocation = () => {\n this.cancelDelayedUpdateLocation();\n this.setState({ location: null });\n };\n\n private renderChildren() {\n return isFunction(this.props.children) ? this.props.children() : this.props.children;\n }\n\n private refPopupElement = (zIndex: ZIndex | null) => {\n if (zIndex) {\n this.lastPopupElement = zIndex && (findDOMNode(zIndex) as HTMLElement);\n }\n };\n\n private renderPin(positionName: string): React.ReactNode {\n /**\n * Box-shadow does not appear under the pin. Borders are used instead.\n * In non-ie browsers drop-shadow filter is used. It is applying\n * shadow to the pin too.\n */\n const isDefaultBorderColor = this.theme.popupBorderColor === POPUP_BORDER_DEFAULT_COLOR;\n const pinBorder = isIE11 && isDefaultBorderColor ? 'rgba(0, 0, 0, 0.09)' : this.theme.popupBorderColor;\n\n const { pinSize, hasShadow, backgroundColor, borderColor } = this.props;\n const position = PopupHelper.getPositionObject(positionName);\n\n return (\n this.props.hasPin && (\n <PopupPin\n popupElement={this.lastPopupElement}\n popupPosition={positionName}\n size={pinSize || parseInt(this.theme.popupPinSize)}\n offset={this.getPinOffset(position.align)}\n borderWidth={hasShadow ? 1 : 0}\n backgroundColor={backgroundColor || this.theme.popupBackground}\n borderColor={borderColor || pinBorder}\n />\n )\n );\n }\n\n private handleLayoutEvent = () => {\n if (!this.state.location) {\n return;\n }\n if (this.anchorInstance) {\n this.updateAnchorElement(this.extractElement(this.anchorInstance));\n }\n this.updateLocation();\n };\n\n private delayUpdateLocation() {\n this.cancelDelayedUpdateLocation();\n this.locationUpdateId = raf(this.updateLocation);\n }\n\n private cancelDelayedUpdateLocation() {\n if (this.locationUpdateId) {\n raf.cancel(this.locationUpdateId);\n this.locationUpdateId = null;\n }\n }\n\n private updateLocation = () => {\n const popupElement = this.lastPopupElement;\n\n if (!popupElement) {\n return;\n }\n\n const location = this.getLocation(popupElement, this.state.location);\n if (!this.locationEquals(this.state.location, location)) {\n this.setState({ location });\n }\n };\n\n private locationEquals(x: Nullable<PopupLocation>, y: Nullable<PopupLocation>) {\n if (x === y) {\n return true;\n }\n\n if (x == null || y == null) {\n return false;\n }\n\n return (\n x.coordinates.left === y.coordinates.left && x.coordinates.top === y.coordinates.top && x.position === y.position\n );\n }\n\n private getLocation(popupElement: HTMLElement, location?: Nullable<PopupLocation>) {\n const { positions, tryPreserveFirstRenderedPosition } = this.props;\n const anchorElement = this.anchorElement;\n\n warning(\n anchorElement && isHTMLElement(anchorElement),\n 'Anchor element is not defined or not instance of HTMLElement',\n );\n\n if (!(anchorElement && isHTMLElement(anchorElement))) {\n return location;\n }\n\n const anchorRect = PopupHelper.getElementAbsoluteRect(anchorElement);\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n\n let position: PopupPosition;\n let coordinates: Offset;\n\n if (location && location !== DUMMY_LOCATION && location.position) {\n position = location.position;\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n const isFullyVisible = PopupHelper.isFullyVisible(coordinates, popupRect);\n const canBecomeVisible = !isFullyVisible && PopupHelper.canBecomeFullyVisible(position, coordinates);\n\n if (\n // если нужно сохранить первоначальную позицию и Попап целиком\n // находится в пределах вьюпорта (или может быть проскроллен в него)\n (tryPreserveFirstRenderedPosition && (isFullyVisible || canBecomeVisible)) ||\n // если Попап целиком во вьюпорте и в самой приоритетной позиции\n // (иначе нужно попытаться позицию сменить)\n (isFullyVisible && position === positions[0])\n ) {\n // сохраняем текущую позицию\n return { coordinates, position };\n }\n }\n\n for (position of positions) {\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n if (PopupHelper.isFullyVisible(coordinates, popupRect)) {\n return { coordinates, position };\n }\n }\n\n position = positions[0];\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n return { coordinates, position };\n }\n\n private getPinnedPopupOffset(anchorRect: Rect, position: PositionObject) {\n if (!this.props.hasPin || /center|middle/.test(position.align)) {\n return 0;\n }\n\n const anchorSize = /top|bottom/.test(position.direction) ? anchorRect.width : anchorRect.height;\n\n const { pinSize } = this.props;\n\n return Math.max(\n 0,\n this.getPinOffset(position.align) + (pinSize || parseInt(this.theme.popupPinSize)) - anchorSize / 2,\n );\n }\n\n private getCoordinates(anchorRect: Rect, popupRect: Rect, positionName: string) {\n const { margin: marginFromProps } = this.props;\n const margin =\n isNonNullable(marginFromProps) && !isNaN(marginFromProps)\n ? marginFromProps\n : parseInt(this.theme.popupMargin) || 0;\n const position = PopupHelper.getPositionObject(positionName);\n const popupOffset = this.props.popupOffset + this.getPinnedPopupOffset(anchorRect, position);\n\n switch (position.direction) {\n case 'top':\n return {\n top: anchorRect.top - popupRect.height - margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'bottom':\n return {\n top: anchorRect.top + anchorRect.height + margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'left':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left - popupRect.width - margin,\n };\n case 'right':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left + anchorRect.width + margin,\n };\n default:\n throw new Error(`Unexpected direction '${position.direction}'`);\n }\n }\n\n private getPinOffset(align: string) {\n const { pinOffset } = this.props;\n\n switch (align) {\n case 'top':\n case 'bottom':\n return pinOffset || parseInt(this.theme.popupPinOffset) || parseInt(this.theme.popupPinOffsetY);\n case 'left':\n case 'right':\n return pinOffset || parseInt(this.theme.popupPinOffset) || parseInt(this.theme.popupPinOffsetX);\n case 'center':\n case 'middle':\n return 0;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getHorizontalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'left':\n return anchorRect.left - popupOffset;\n case 'center':\n return anchorRect.left - (popupRect.width - anchorRect.width) / 2;\n case 'right':\n return anchorRect.left - (popupRect.width - anchorRect.width) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getVerticalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'top':\n return anchorRect.top - popupOffset;\n case 'middle':\n return anchorRect.top - (popupRect.height - anchorRect.height) / 2;\n case 'bottom':\n return anchorRect.top - (popupRect.height - anchorRect.height) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["Popup.tsx"],"names":["POPUP_BORDER_DEFAULT_COLOR","TRANSITION_TIMEOUT","enter","exit","DUMMY_LOCATION","position","coordinates","top","left","PopupPositions","Popup","state","location","props","opened","theme","layoutEventsToken","locationUpdateId","lastPopupElement","anchorElement","anchorInstance","refAnchorElement","instance","element","extractElement","updateAnchorElement","handleMouseEnter","event","onMouseEnter","handleMouseLeave","onMouseLeave","handleClick","onClick","handleFocus","onFocus","handleBlur","onBlur","calculateWidth","width","includes","offsetWidth","parseFloat","resetLocation","cancelDelayedUpdateLocation","setState","refPopupElement","zIndex","handleLayoutEvent","updateLocation","popupElement","getLocation","locationEquals","componentDidMount","LayoutEvents","addListener","UNSAFE_componentWillReceiveProps","nextProps","delayUpdateLocation","componentDidUpdate","prevProps","prevState","hadNoLocation","hasLocation","onOpen","onClose","componentWillUnmount","removeEventListeners","remove","render","renderMain","useWrapper","child","React","isValidElement","undefined","renderContent","addEventListeners","addEventListener","removeEventListener","backgroundColor","disableAnimations","maxWidth","hasShadow","ignoreHover","children","renderChildren","PopupHelper","getPositionObject","direction","rootStyle","shouldFallbackShadow","isIE11","isEdge","isSafari","Boolean","styles","popup","shadow","shadowFallback","popupIgnoreHover","transitionEnter","transitionEnterActive","transitionExit","content","contentInner","renderPin","positionName","isDefaultBorderColor","popupBorderColor","pinBorder","pinSize","borderColor","hasPin","parseInt","popupPinSize","getPinOffset","align","popupBackground","raf","cancel","x","y","positions","tryPreserveFirstRenderedPosition","anchorRect","getElementAbsoluteRect","popupRect","getCoordinates","isFullyVisible","canBecomeVisible","canBecomeFullyVisible","getPinnedPopupOffset","test","anchorSize","height","Math","max","marginFromProps","margin","isNaN","popupMargin","popupOffset","getHorizontalPosition","getVerticalPosition","Error","pinOffset","popupPinOffset","popupPinOffsetY","popupPinOffsetX","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","oneOfType","HTMLElement","node","isRequired","string","func","bool","number","array","defaultProps","isTestEnv"],"mappings":"mbAAA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uC;;AAEA,IAAMA,0BAA0B,GAAG,aAAnC;AACA,IAAMC,kBAAkB,GAAG,EAAEC,KAAK,EAAE,CAAT,EAAYC,IAAI,EAAE,GAAlB,EAA3B;;AAEA,IAAMC,cAA6B,GAAG;AACpCC,EAAAA,QAAQ,EAAE,UAD0B;AAEpCC,EAAAA,WAAW,EAAE;AACXC,IAAAA,GAAG,EAAE,CAAC,IADK;AAEXC,IAAAA,IAAI,EAAE,CAAC,IAFI,EAFuB,EAAtC;;;;;;;;;;;;;;;;;;AAsBO,IAAMC,cAA+B,GAAG;AAC7C,UAD6C;AAE7C,YAF6C;AAG7C,WAH6C;AAI7C,WAJ6C;AAK7C,cAL6C;AAM7C,cAN6C;AAO7C,cAP6C;AAQ7C,eAR6C;AAS7C,aAT6C;AAU7C,aAV6C;AAW7C,aAX6C;AAY7C,UAZ6C,CAAxC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEMC,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2EJC,IAAAA,K,GAAoB,EAAEC,QAAQ,EAAE,MAAKC,KAAL,CAAWC,MAAX,GAAoBV,cAApB,GAAqC,IAAjD,E;AACnBW,IAAAA,K;AACAC,IAAAA,iB;AACAC,IAAAA,gB,GAAqC,I;AACrCC,IAAAA,gB;AACAC,IAAAA,a,GAAuC,I;AACvCC,IAAAA,c;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyEAC,IAAAA,gB,GAAmB,UAACC,QAAD,EAA0C;AACnE,YAAKF,cAAL,GAAsBE,QAAtB;AACA,UAAMC,OAAO,GAAG,MAAKC,cAAL,CAAoBF,QAApB,CAAhB;AACA,YAAKG,mBAAL,CAAyBF,OAAzB;AACA,YAAKJ,aAAL,GAAqBI,OAArB;AACD,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCOG,IAAAA,gB,GAAmB,UAACC,KAAD,EAA2B;AACpD,UAAI,MAAKd,KAAL,CAAWe,YAAf,EAA6B;AAC3B,cAAKf,KAAL,CAAWe,YAAX,CAAwBD,KAAxB;AACD;AACF,K;;AAEOE,IAAAA,gB,GAAmB,UAACF,KAAD,EAA2B;AACpD,UAAI,MAAKd,KAAL,CAAWiB,YAAf,EAA6B;AAC3B,cAAKjB,KAAL,CAAWiB,YAAX,CAAwBH,KAAxB;AACD;AACF,K;;AAEOI,IAAAA,W,GAAc,UAACJ,KAAD,EAA2B;AAC/C,UAAI,MAAKd,KAAL,CAAWmB,OAAf,EAAwB;AACtB,cAAKnB,KAAL,CAAWmB,OAAX,CAAmBL,KAAnB;AACD;AACF,K;;AAEOM,IAAAA,W,GAAc,UAACN,KAAD,EAA2B;AAC/C,UAAI,MAAKd,KAAL,CAAWqB,OAAf,EAAwB;AACtB,cAAKrB,KAAL,CAAWqB,OAAX,CAAmBP,KAAnB;AACD;AACF,K;;AAEOQ,IAAAA,U,GAAa,UAACR,KAAD,EAA2B;AAC9C,UAAI,MAAKd,KAAL,CAAWuB,MAAf,EAAuB;AACrB,cAAKvB,KAAL,CAAWuB,MAAX,CAAkBT,KAAlB;AACD;AACF,K;;AAEOU,IAAAA,c,GAAiB,UAACC,KAAD,EAAgC;AACvD,UAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAACC,QAAN,CAAe,GAAf,CAAjC,EAAsD;AACpD,eAAO,MAAKpB,aAAL,GAAsB,MAAKA,aAAL,CAAmBqB,WAAnB,GAAiCC,UAAU,CAACH,KAAD,CAA5C,GAAuD,GAA5E,GAAkF,CAAzF;AACD;AACD,aAAOA,KAAP;AACD,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DOI,IAAAA,a,GAAgB,YAAM;AAC5B,YAAKC,2BAAL;AACA,YAAKC,QAAL,CAAc,EAAEhC,QAAQ,EAAE,IAAZ,EAAd;AACD,K;;;;;;AAMOiC,IAAAA,e,GAAkB,UAACC,MAAD,EAA2B;AACnD,UAAIA,MAAJ,EAAY;AACV,cAAK5B,gBAAL,GAAwB4B,MAAM,IAAK,2BAAYA,MAAZ,CAAnC;AACD;AACF,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BOC,IAAAA,iB,GAAoB,YAAM;AAChC,UAAI,CAAC,MAAKpC,KAAL,CAAWC,QAAhB,EAA0B;AACxB;AACD;AACD,UAAI,MAAKQ,cAAT,EAAyB;AACvB,cAAKK,mBAAL,CAAyB,MAAKD,cAAL,CAAoB,MAAKJ,cAAzB,CAAzB;AACD;AACD,YAAK4B,cAAL;AACD,K;;;;;;;;;;;;;;AAcOA,IAAAA,c,GAAiB,YAAM;AAC7B,UAAMC,YAAY,GAAG,MAAK/B,gBAA1B;;AAEA,UAAI,CAAC+B,YAAL,EAAmB;AACjB;AACD;;AAED,UAAMrC,QAAQ,GAAG,MAAKsC,WAAL,CAAiBD,YAAjB,EAA+B,MAAKtC,KAAL,CAAWC,QAA1C,CAAjB;AACA,UAAI,CAAC,MAAKuC,cAAL,CAAoB,MAAKxC,KAAL,CAAWC,QAA/B,EAAyCA,QAAzC,CAAL,EAAyD;AACvD,cAAKgC,QAAL,CAAc,EAAEhC,QAAQ,EAARA,QAAF,EAAd;AACD;AACF,K,mDAhSMwC,iB,GAAP,6BAA2B,CACzB,KAAKJ,cAAL,GACA,KAAKhC,iBAAL,GAAyBqC,YAAY,CAACC,WAAb,CAAyB,KAAKP,iBAA9B,CAAzB,CACD,C,QAEMQ,gC,GAAP,0CAAwCC,SAAxC,EAAyE,CACvE;AACJ;AACA,OACI,IAAIA,SAAS,CAAC1C,MAAd,EAAsB,CACpB,IAAI,CAAC,KAAKH,KAAL,CAAWC,QAAhB,EAA0B,CACxB,KAAKgC,QAAL,CAAc,EAAEhC,QAAQ,EAAER,cAAZ,EAAd,EACD,CACD,KAAKqD,mBAAL,GACD,CACF,C,QAEMC,kB,GAAP,4BAA0BC,SAA1B,EAAiDC,SAAjD,EAAwE,CACtE,IAAMC,aAAa,GAAGD,SAAS,CAAChD,QAAV,KAAuBR,cAA7C,CACA,IAAM0D,WAAW,GAAG,KAAKnD,KAAL,CAAWC,QAAX,KAAwBR,cAA5C,CACA,IAAIyD,aAAa,IAAIC,WAAjB,IAAgC,KAAKjD,KAAL,CAAWkD,MAA/C,EAAuD,CACrD,KAAKlD,KAAL,CAAWkD,MAAX,GACD,CACD,IAAI,CAACF,aAAD,IAAkB,CAAC,KAAKlD,KAAL,CAAWC,QAA9B,IAA0C,KAAKC,KAAL,CAAWmD,OAAzD,EAAkE,CAChE,KAAKnD,KAAL,CAAWmD,OAAX,GACD,CACF,C,QAEMC,oB,GAAP,gCAA8B,CAC5B,KAAKtB,2BAAL,GACA,KAAKuB,oBAAL,CAA0B,KAAK/C,aAA/B,EACA,IAAI,KAAKH,iBAAT,EAA4B,CAC1B,KAAKA,iBAAL,CAAuBmD,MAAvB,GACA,KAAKnD,iBAAL,GAAyB,IAAzB,CACD,CACD,IAAI,KAAKL,KAAL,CAAWC,QAAX,IAAuB,KAAKC,KAAL,CAAWmD,OAAtC,EAA+C,CAC7C,KAAKnD,KAAL,CAAWmD,OAAX,GACD,CACF,C,QAEMI,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACrD,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACsD,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,QAEOA,U,GAAR,sBAAqB,KACXzD,QADW,GACE,KAAKD,KADP,CACXC,QADW,mBAEmB,KAAKC,KAFxB,CAEXM,aAFW,eAEXA,aAFW,CAEImD,UAFJ,eAEIA,UAFJ,CAInB,IAAIC,KAAgC,GAAG,IAAvC,CACA,IAAI,4BAAcpD,aAAd,CAAJ,EAAkC,CAChC,KAAKM,mBAAL,CAAyBN,aAAzB,EACD,CAFD,MAEO,kBAAIqD,eAAMC,cAAN,CAAqBtD,aAArB,CAAJ,EAAyC,CAC9CoD,KAAK,GAAGD,UAAU,gBAAG,2CAAOnD,aAAP,CAAH,GAAkCA,aAApD,CACD,CAFM,MAEA,CACLoD,KAAK,gBAAG,2CAAOpD,aAAP,CAAR,CACD,CAED,oBACE,6BAAC,gCAAD,IAAiB,MAAM,EAAEoD,KAAzB,EAAgC,GAAG,EAAEA,KAAK,GAAG,KAAKlD,gBAAR,GAA2BqD,SAArE,IACG9D,QAAQ,IAAI,KAAK+D,aAAL,CAAmB/D,QAAnB,CADf,CADF,CAKD,C,QASOY,c,GAAR,wBAAuBF,QAAvB,EAA6D,CAC3D,IAAI,CAACA,QAAL,EAAe,CACb,OAAO,IAAP,CACD,CACD,IAAMC,OAAO,GAAG,2BAAYD,QAAZ,CAAhB,CACA,OAAO,4BAAcC,OAAd,IAAyBA,OAAzB,GAAmC,IAA1C,CACD,C,QAEOE,mB,GAAR,6BAA4BF,OAA5B,EAAyD,CACvD,IAAMJ,aAAa,GAAG,KAAKA,aAA3B,CAEA,IAAII,OAAO,KAAKJ,aAAhB,EAA+B,CAC7B,KAAK+C,oBAAL,CAA0B/C,aAA1B,EACA,KAAKA,aAAL,GAAqBI,OAArB,CACA,KAAKqD,iBAAL,CAAuBrD,OAAvB,EACD,CACF,C,QAEOqD,iB,GAAR,2BAA0BrD,OAA1B,EAA0D,CACxD,IAAIA,OAAO,IAAI,4BAAcA,OAAd,CAAf,EAAuC,CACrCA,OAAO,CAACsD,gBAAR,CAAyB,YAAzB,EAAuC,KAAKnD,gBAA5C,EACAH,OAAO,CAACsD,gBAAR,CAAyB,YAAzB,EAAuC,KAAKhD,gBAA5C,EACAN,OAAO,CAACsD,gBAAR,CAAyB,OAAzB,EAAkC,KAAK9C,WAAvC,EACAR,OAAO,CAACsD,gBAAR,CAAyB,SAAzB,EAAoC,KAAK5C,WAAzC,EACAV,OAAO,CAACsD,gBAAR,CAAyB,UAAzB,EAAqC,KAAK1C,UAA1C,EACD,CACF,C,QAEO+B,oB,GAAR,8BAA6B3C,OAA7B,EAA6D,CAC3D,IAAIA,OAAO,IAAI,4BAAcA,OAAd,CAAf,EAAuC,CACrCA,OAAO,CAACuD,mBAAR,CAA4B,YAA5B,EAA0C,KAAKpD,gBAA/C,EACAH,OAAO,CAACuD,mBAAR,CAA4B,YAA5B,EAA0C,KAAKjD,gBAA/C,EACAN,OAAO,CAACuD,mBAAR,CAA4B,OAA5B,EAAqC,KAAK/C,WAA1C,EACAR,OAAO,CAACuD,mBAAR,CAA4B,SAA5B,EAAuC,KAAK7C,WAA5C,EACAV,OAAO,CAACuD,mBAAR,CAA4B,UAA5B,EAAwC,KAAK3C,UAA7C,EACD,CACF,C,QAuCOwC,a,GAAR,uBAAsB/D,QAAtB,EAA+C,sCACmD,KAAKC,KADxD,CACrCkE,eADqC,gBACrCA,eADqC,CACpBC,iBADoB,gBACpBA,iBADoB,CACDC,QADC,gBACDA,QADC,CACSC,SADT,gBACSA,SADT,CACoBC,WADpB,gBACoBA,WADpB,CACiCrE,MADjC,gBACiCA,MADjC,CACyCwB,KADzC,gBACyCA,KADzC,CAE7C,IAAM8C,QAAQ,GAAG,KAAKC,cAAL,EAAjB,CAF6C,4BAIvBC,yBAAYC,iBAAZ,CAA8B3E,QAAQ,CAACP,QAAvC,CAJuB,CAIrCmF,SAJqC,yBAIrCA,SAJqC,CAK7C,IAAMC,SAA8B,8BAAQ7E,QAAQ,CAACN,WAAjB,IAA8B2E,QAAQ,EAARA,QAA9B,GAApC,CAEA,IAAMS,oBAAoB,GAAGC,kBAAUC,cAAV,IAAoBC,gBAAjD,CAEA,oBACE,6BAAC,gCAAD,IACE,OAAO,EAAE5F,kBADX,EAEE,MAAM,EAAE,CAAC+E,iBAFX,EAGE,EAAE,EAAEc,OAAO,CAAChF,MAAM,IAAIsE,QAAX,CAHb,EAIE,YAAY,MAJd,EAKE,aAAa,MALf,EAME,KAAK,EAAE,CAACJ,iBANV,EAOE,IAAI,EAAE,CAACA,iBAPT,EAQE,QAAQ,EAAE,KAAKtC,aARjB,IAUG,UAAC/B,KAAD,2CACC,6BAAC,4BAAD,EAAmB,MAAI,CAACE,KAAxB,eACE,6BAAC,cAAD,IACE,GAAG,EAAE,MAAI,CAACgC,eADZ,EAEE,QAAQ,EAAE,OAFZ,EAGE,SAAS,EAAE,mEACRkD,cAAOC,KAAP,CAAa,MAAI,CAACjF,KAAlB,CADQ,IACmB,IADnB,YAERgF,cAAOE,MAAP,CAAc,MAAI,CAAClF,KAAnB,CAFQ,IAEoBmE,SAAS,IAAI,CAACQ,oBAFlC,YAGRK,cAAOG,cAAP,CAAsB,MAAI,CAACnF,KAA3B,CAHQ,IAG4BmE,SAAS,IAAIQ,oBAHzC,YAIRK,cAAOI,gBAAP,EAJQ,IAIoBhB,WAJpB,cAKLH,iBAAiB,GACjB,EADiB,oBAGde,oCAA2BP,SAA3B,EAA+D,MAAI,CAACzE,KAApE,CAHc,IAG+D,IAH/D,OAIdgF,cAAOK,eAAP,EAJc,IAIazF,KAAK,KAAK,UAJvB,OAKdoF,cAAOM,qBAAP,EALc,IAKmB1F,KAAK,KAAK,SAL7B,OAMdoF,cAAOO,cAAP,EANc,IAMY3F,KAAK,KAAK,SANtB,OALZ,EAHb,EAiBE,KAAK,EAAE8E,SAjBT,EAkBE,YAAY,EAAE,MAAI,CAAC/D,gBAlBrB,EAmBE,YAAY,EAAE,MAAI,CAACG,gBAnBrB,iBAqBE,sCAAK,SAAS,EAAEkE,cAAOQ,OAAP,CAAe,MAAI,CAACxF,KAApB,CAAhB,EAA4C,YAAU,cAAtD,iBACE,sCACE,SAAS,EAAEgF,cAAOS,YAAP,CAAoB,MAAI,CAACzF,KAAzB,CADb,EAEE,KAAK,EAAE,EAAEgE,eAAe,EAAfA,eAAF,EAAmBzC,KAAK,EAAE,MAAI,CAACD,cAAL,CAAoBC,KAApB,CAA1B,EAFT,EAGE,YAAU,mBAHZ,IAKG8C,QALH,CADF,CArBF,EA8BG,MAAI,CAACqB,SAAL,CAAe7F,QAAQ,CAACP,QAAxB,CA9BH,CADF,CADD,EAVH,CADF,CAiDD,C,QAOOgF,c,GAAR,0BAAyB,CACvB,OAAO,uBAAW,KAAKxE,KAAL,CAAWuE,QAAtB,IAAkC,KAAKvE,KAAL,CAAWuE,QAAX,EAAlC,GAA0D,KAAKvE,KAAL,CAAWuE,QAA5E,CACD,C,QAQOqB,S,GAAR,mBAAkBC,YAAlB,EAAyD,CACvD;AACJ;AACA;AACA;AACA,OACI,IAAMC,oBAAoB,GAAG,KAAK5F,KAAL,CAAW6F,gBAAX,KAAgC5G,0BAA7D,CACA,IAAM6G,SAAS,GAAGlB,kBAAUgB,oBAAV,GAAiC,qBAAjC,GAAyD,KAAK5F,KAAL,CAAW6F,gBAAtF,CAPuD,mBASM,KAAK/F,KATX,CAS/CiG,OAT+C,gBAS/CA,OAT+C,CAStC5B,SATsC,gBAStCA,SATsC,CAS3BH,eAT2B,gBAS3BA,eAT2B,CASVgC,WATU,gBASVA,WATU,CAUvD,IAAM1G,QAAQ,GAAGiF,yBAAYC,iBAAZ,CAA8BmB,YAA9B,CAAjB,CAEA,OACE,KAAK7F,KAAL,CAAWmG,MAAX,iBACE,6BAAC,kBAAD,IACE,YAAY,EAAE,KAAK9F,gBADrB,EAEE,aAAa,EAAEwF,YAFjB,EAGE,IAAI,EAAEI,OAAO,IAAIG,QAAQ,CAAC,KAAKlG,KAAL,CAAWmG,YAAZ,CAH3B,EAIE,MAAM,EAAE,KAAKC,YAAL,CAAkB9G,QAAQ,CAAC+G,KAA3B,CAJV,EAKE,WAAW,EAAElC,SAAS,GAAG,CAAH,GAAO,CAL/B,EAME,eAAe,EAAEH,eAAe,IAAI,KAAKhE,KAAL,CAAWsG,eANjD,EAOE,WAAW,EAAEN,WAAW,IAAIF,SAP9B,GAFJ,CAaD,C,QAYOpD,mB,GAAR,+BAA8B,CAC5B,KAAKd,2BAAL,GACA,KAAK1B,gBAAL,GAAwB,kBAAI,KAAK+B,cAAT,CAAxB,CACD,C,QAEOL,2B,GAAR,uCAAsC,CACpC,IAAI,KAAK1B,gBAAT,EAA2B,CACzBqG,aAAIC,MAAJ,CAAW,KAAKtG,gBAAhB,EACA,KAAKA,gBAAL,GAAwB,IAAxB,CACD,CACF,C,QAeOkC,c,GAAR,wBAAuBqE,CAAvB,EAAmDC,CAAnD,EAA+E,CAC7E,IAAID,CAAC,KAAKC,CAAV,EAAa,CACX,OAAO,IAAP,CACD;AAED,QAAID,CAAC,IAAI,IAAL,IAAaC,CAAC,IAAI,IAAtB,EAA4B;AAC1B,aAAO,KAAP;AACD;;AAED;AACED,MAAAA,CAAC,CAAClH,WAAF,CAAcE,IAAd,KAAuBiH,CAAC,CAACnH,WAAF,CAAcE,IAArC,IAA6CgH,CAAC,CAAClH,WAAF,CAAcC,GAAd,KAAsBkH,CAAC,CAACnH,WAAF,CAAcC,GAAjF,IAAwFiH,CAAC,CAACnH,QAAF,KAAeoH,CAAC,CAACpH,QAD3G;;AAGD,G;;AAEO6C,EAAAA,W,GAAR,qBAAoBD,YAApB,EAA+CrC,QAA/C,EAAmF;AACzB,SAAKC,KADoB,CACzE6G,SADyE,gBACzEA,SADyE,CAC9DC,gCAD8D,gBAC9DA,gCAD8D;AAEjF,QAAMxG,aAAa,GAAG,KAAKA,aAA3B;;AAEA;AACEA,IAAAA,aAAa,IAAI,4BAAcA,aAAd,CADnB;AAEE,kEAFF;;;AAKA,QAAI,EAAEA,aAAa,IAAI,4BAAcA,aAAd,CAAnB,CAAJ,EAAsD;AACpD,aAAOP,QAAP;AACD;;AAED,QAAMgH,UAAU,GAAGtC,yBAAYuC,sBAAZ,CAAmC1G,aAAnC,CAAnB;AACA,QAAM2G,SAAS,GAAGxC,yBAAYuC,sBAAZ,CAAmC5E,YAAnC,CAAlB;;AAEA,QAAI5C,QAAJ;AACA,QAAIC,WAAJ;;AAEA,QAAIM,QAAQ,IAAIA,QAAQ,KAAKR,cAAzB,IAA2CQ,QAAQ,CAACP,QAAxD,EAAkE;AAChEA,MAAAA,QAAQ,GAAGO,QAAQ,CAACP,QAApB;AACAC,MAAAA,WAAW,GAAG,KAAKyH,cAAL,CAAoBH,UAApB,EAAgCE,SAAhC,EAA2CzH,QAA3C,CAAd;;AAEA,UAAM2H,cAAc,GAAG1C,yBAAY0C,cAAZ,CAA2B1H,WAA3B,EAAwCwH,SAAxC,CAAvB;AACA,UAAMG,gBAAgB,GAAG,CAACD,cAAD,IAAmB1C,yBAAY4C,qBAAZ,CAAkC7H,QAAlC,EAA4CC,WAA5C,CAA5C;;AAEA;AACE;AACA;AACCqH,MAAAA,gCAAgC,KAAKK,cAAc,IAAIC,gBAAvB,CAAjC;AACA;AACA;AACCD,MAAAA,cAAc,IAAI3H,QAAQ,KAAKqH,SAAS,CAAC,CAAD,CAN3C;AAOE;AACA;AACA,eAAO,EAAEpH,WAAW,EAAXA,WAAF,EAAeD,QAAQ,EAARA,QAAf,EAAP;AACD;AACF;;AAED,yDAAiBqH,SAAjB,wCAA4B,CAAvBrH,QAAuB;AAC1BC,MAAAA,WAAW,GAAG,KAAKyH,cAAL,CAAoBH,UAApB,EAAgCE,SAAhC,EAA2CzH,QAA3C,CAAd;AACA,UAAIiF,yBAAY0C,cAAZ,CAA2B1H,WAA3B,EAAwCwH,SAAxC,CAAJ,EAAwD;AACtD,eAAO,EAAExH,WAAW,EAAXA,WAAF,EAAeD,QAAQ,EAARA,QAAf,EAAP;AACD;AACF;;AAEDA,IAAAA,QAAQ,GAAGqH,SAAS,CAAC,CAAD,CAApB;AACApH,IAAAA,WAAW,GAAG,KAAKyH,cAAL,CAAoBH,UAApB,EAAgCE,SAAhC,EAA2CzH,QAA3C,CAAd;AACA,WAAO,EAAEC,WAAW,EAAXA,WAAF,EAAeD,QAAQ,EAARA,QAAf,EAAP;AACD,G;;AAEO8H,EAAAA,oB,GAAR,8BAA6BP,UAA7B,EAA+CvH,QAA/C,EAAyE;AACvE,QAAI,CAAC,KAAKQ,KAAL,CAAWmG,MAAZ,IAAsB,gBAAgBoB,IAAhB,CAAqB/H,QAAQ,CAAC+G,KAA9B,CAA1B,EAAgE;AAC9D,aAAO,CAAP;AACD;;AAED,QAAMiB,UAAU,GAAG,aAAaD,IAAb,CAAkB/H,QAAQ,CAACmF,SAA3B,IAAwCoC,UAAU,CAACtF,KAAnD,GAA2DsF,UAAU,CAACU,MAAzF,CALuE;;AAO/DxB,IAAAA,OAP+D,GAOnD,KAAKjG,KAP8C,CAO/DiG,OAP+D;;AASvE,WAAOyB,IAAI,CAACC,GAAL;AACL,KADK;AAEL,SAAKrB,YAAL,CAAkB9G,QAAQ,CAAC+G,KAA3B,KAAqCN,OAAO,IAAIG,QAAQ,CAAC,KAAKlG,KAAL,CAAWmG,YAAZ,CAAxD,IAAqFmB,UAAU,GAAG,CAF7F,CAAP;;AAID,G;;AAEON,EAAAA,c,GAAR,wBAAuBH,UAAvB,EAAyCE,SAAzC,EAA0DpB,YAA1D,EAAgF;AAC9D+B,IAAAA,eAD8D,GAC1C,KAAK5H,KADqC,CACtE6H,MADsE;AAE9E,QAAMA,MAAM;AACV,8BAAcD,eAAd,KAAkC,CAACE,KAAK,CAACF,eAAD,CAAxC;AACIA,IAAAA,eADJ;AAEIxB,IAAAA,QAAQ,CAAC,KAAKlG,KAAL,CAAW6H,WAAZ,CAAR,IAAoC,CAH1C;AAIA,QAAMvI,QAAQ,GAAGiF,yBAAYC,iBAAZ,CAA8BmB,YAA9B,CAAjB;AACA,QAAMmC,WAAW,GAAG,KAAKhI,KAAL,CAAWgI,WAAX,GAAyB,KAAKV,oBAAL,CAA0BP,UAA1B,EAAsCvH,QAAtC,CAA7C;;AAEA,YAAQA,QAAQ,CAACmF,SAAjB;AACE,WAAK,KAAL;AACE,eAAO;AACLjF,UAAAA,GAAG,EAAEqH,UAAU,CAACrH,GAAX,GAAiBuH,SAAS,CAACQ,MAA3B,GAAoCI,MADpC;AAELlI,UAAAA,IAAI,EAAE,KAAKsI,qBAAL,CAA2BlB,UAA3B,EAAuCE,SAAvC,EAAkDzH,QAAQ,CAAC+G,KAA3D,EAAkEyB,WAAlE,CAFD,EAAP;;AAIF,WAAK,QAAL;AACE,eAAO;AACLtI,UAAAA,GAAG,EAAEqH,UAAU,CAACrH,GAAX,GAAiBqH,UAAU,CAACU,MAA5B,GAAqCI,MADrC;AAELlI,UAAAA,IAAI,EAAE,KAAKsI,qBAAL,CAA2BlB,UAA3B,EAAuCE,SAAvC,EAAkDzH,QAAQ,CAAC+G,KAA3D,EAAkEyB,WAAlE,CAFD,EAAP;;AAIF,WAAK,MAAL;AACE,eAAO;AACLtI,UAAAA,GAAG,EAAE,KAAKwI,mBAAL,CAAyBnB,UAAzB,EAAqCE,SAArC,EAAgDzH,QAAQ,CAAC+G,KAAzD,EAAgEyB,WAAhE,CADA;AAELrI,UAAAA,IAAI,EAAEoH,UAAU,CAACpH,IAAX,GAAkBsH,SAAS,CAACxF,KAA5B,GAAoCoG,MAFrC,EAAP;;AAIF,WAAK,OAAL;AACE,eAAO;AACLnI,UAAAA,GAAG,EAAE,KAAKwI,mBAAL,CAAyBnB,UAAzB,EAAqCE,SAArC,EAAgDzH,QAAQ,CAAC+G,KAAzD,EAAgEyB,WAAhE,CADA;AAELrI,UAAAA,IAAI,EAAEoH,UAAU,CAACpH,IAAX,GAAkBoH,UAAU,CAACtF,KAA7B,GAAqCoG,MAFtC,EAAP;;AAIF;AACE,cAAM,IAAIM,KAAJ,4BAAmC3I,QAAQ,CAACmF,SAA5C,OAAN,CAtBJ;;AAwBD,G;;AAEO2B,EAAAA,Y,GAAR,sBAAqBC,KAArB,EAAoC;AAC1B6B,IAAAA,SAD0B,GACZ,KAAKpI,KADO,CAC1BoI,SAD0B;;AAGlC,YAAQ7B,KAAR;AACE,WAAK,KAAL;AACA,WAAK,QAAL;AACE,eAAO6B,SAAS,IAAIhC,QAAQ,CAAC,KAAKlG,KAAL,CAAWmI,cAAZ,CAArB,IAAoDjC,QAAQ,CAAC,KAAKlG,KAAL,CAAWoI,eAAZ,CAAnE;AACF,WAAK,MAAL;AACA,WAAK,OAAL;AACE,eAAOF,SAAS,IAAIhC,QAAQ,CAAC,KAAKlG,KAAL,CAAWmI,cAAZ,CAArB,IAAoDjC,QAAQ,CAAC,KAAKlG,KAAL,CAAWqI,eAAZ,CAAnE;AACF,WAAK,QAAL;AACA,WAAK,QAAL;AACE,eAAO,CAAP;AACF;AACE,cAAM,IAAIJ,KAAJ,wBAA+B5B,KAA/B,OAAN,CAXJ;;AAaD,G;;AAEO0B,EAAAA,qB,GAAR,+BAA8BlB,UAA9B,EAAgDE,SAAhD,EAAiEV,KAAjE,EAAgFyB,WAAhF,EAAqG;AACnG,YAAQzB,KAAR;AACE,WAAK,MAAL;AACE,eAAOQ,UAAU,CAACpH,IAAX,GAAkBqI,WAAzB;AACF,WAAK,QAAL;AACE,eAAOjB,UAAU,CAACpH,IAAX,GAAkB,CAACsH,SAAS,CAACxF,KAAV,GAAkBsF,UAAU,CAACtF,KAA9B,IAAuC,CAAhE;AACF,WAAK,OAAL;AACE,eAAOsF,UAAU,CAACpH,IAAX,IAAmBsH,SAAS,CAACxF,KAAV,GAAkBsF,UAAU,CAACtF,KAAhD,IAAyDuG,WAAhE;AACF;AACE,cAAM,IAAIG,KAAJ,wBAA+B5B,KAA/B,OAAN,CARJ;;AAUD,G;;AAEO2B,EAAAA,mB,GAAR,6BAA4BnB,UAA5B,EAA8CE,SAA9C,EAA+DV,KAA/D,EAA8EyB,WAA9E,EAAmG;AACjG,YAAQzB,KAAR;AACE,WAAK,KAAL;AACE,eAAOQ,UAAU,CAACrH,GAAX,GAAiBsI,WAAxB;AACF,WAAK,QAAL;AACE,eAAOjB,UAAU,CAACrH,GAAX,GAAiB,CAACuH,SAAS,CAACQ,MAAV,GAAmBV,UAAU,CAACU,MAA/B,IAAyC,CAAjE;AACF,WAAK,QAAL;AACE,eAAOV,UAAU,CAACrH,GAAX,IAAkBuH,SAAS,CAACQ,MAAV,GAAmBV,UAAU,CAACU,MAAhD,IAA0DO,WAAjE;AACF;AACE,cAAM,IAAIG,KAAJ,wBAA+B5B,KAA/B,OAAN,CARJ;;AAUD,G,gBAlhBwB5C,eAAM6E,S,wBAApB3I,K,CACG4I,mB,GAAsB,O,CADzB5I,K,CAGG6I,S,GAAY,EACxB;AACJ;AACA,KACIpI,aAAa,EAAEqI,mBAAUC,SAAV,CAAoB,CAAC,sCAAwB,oBAAMC,WAAN,EAAxB,CAAD,EAA6CF,mBAAUG,IAAvD,CAApB,EAAkFC,UAJzE,EAMxB;AACJ;AACA,KACI7E,eAAe,EAAEyE,mBAAUK,MATH,EAWxBzE,QAAQ,EAAEoE,mBAAUC,SAAV,CAAoB,CAACD,mBAAUG,IAAX,EAAiBH,mBAAUM,IAA3B,CAApB,CAXc,EAaxB;AACJ;AACA,KACI9C,MAAM,EAAEwC,mBAAUO,IAhBM,EAkBxB;AACJ;AACA,KACI7E,SAAS,EAAEsE,mBAAUO,IArBG,EAuBxB;AACJ;AACA,KACIrB,MAAM,EAAEc,mBAAUQ,MA1BM,EA4BxB;AACJ;AACA,KACIlJ,MAAM,EAAE0I,mBAAUO,IA/BM,EAiCxB;AACJ;AACA,KACId,SAAS,EAAEO,mBAAUQ,MApCG,EAsCxB;AACJ;AACA;AACA;AACA,KACIlD,OAAO,EAAE0C,mBAAUQ,MA3CK,EA6CxB;AACJ;AACA,KACInB,WAAW,EAAEW,mBAAUQ,MAhDC,EAkDxB;AACJ;AACA;AACA,KACItC,SAAS,EAAE8B,mBAAUS,KAtDG,EAwDxB;AACJ;AACA,KACI9E,WAAW,EAAEqE,mBAAUO,IA3DC,E,CAHfrJ,K,CAiEGwJ,Y,GAAe,EAC3BrB,WAAW,EAAE,CADc,EAE3B7B,MAAM,EAAE,KAFmB,EAG3B9B,SAAS,EAAE,KAHgB,EAI3BF,iBAAiB,EAAEmF,6BAJQ,EAK3B7F,UAAU,EAAE,KALe,EAM3Ba,WAAW,EAAE,KANc,EAO3B7C,KAAK,EAAE,MAPoB,E","sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport raf from 'raf';\nimport warning from 'warning';\n\nimport { Nullable } from '../../typings/utility-types';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ZIndex } from '../ZIndex';\nimport { RenderContainer } from '../RenderContainer';\nimport { FocusEventType, MouseEventType } from '../../typings/event-types';\nimport { isFunction, isNonNullable } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isHTMLElement, safePropTypesInstanceOf } from '../../lib/SSRSafe';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { PopupPin } from './PopupPin';\nimport { Offset, PopupHelper, PositionObject, Rect } from './PopupHelper';\nimport { styles } from './Popup.styles';\n\nconst POPUP_BORDER_DEFAULT_COLOR = 'transparent';\nconst TRANSITION_TIMEOUT = { enter: 0, exit: 200 };\n\nconst DUMMY_LOCATION: PopupLocation = {\n position: 'top left',\n coordinates: {\n top: -9999,\n left: -9999,\n },\n};\n\nexport type PopupPosition =\n | 'top left'\n | 'top center'\n | 'top right'\n | 'right top'\n | 'right middle'\n | 'right bottom'\n | 'bottom left'\n | 'bottom center'\n | 'bottom right'\n | 'left top'\n | 'left middle'\n | 'left bottom';\n\nexport const PopupPositions: PopupPosition[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom right',\n 'bottom center',\n 'bottom left',\n 'left bottom',\n 'left middle',\n 'left top',\n];\n\nexport interface PopupHandlerProps {\n onMouseEnter?: (event: MouseEventType) => void;\n onMouseLeave?: (event: MouseEventType) => void;\n onClick?: (event: MouseEventType) => void;\n onFocus?: (event: FocusEventType) => void;\n onBlur?: (event: FocusEventType) => void;\n onOpen?: () => void;\n onClose?: () => void;\n}\n\nexport interface PopupProps extends CommonProps, PopupHandlerProps {\n anchorElement: React.ReactNode | HTMLElement;\n backgroundColor?: React.CSSProperties['backgroundColor'];\n borderColor?: React.CSSProperties['borderColor'];\n children: React.ReactNode | (() => React.ReactNode);\n hasPin: boolean;\n hasShadow: boolean;\n disableAnimations: boolean;\n margin?: number;\n maxWidth?: number | string;\n opened: boolean;\n pinOffset?: number;\n pinSize?: number;\n popupOffset: number;\n positions: PopupPosition[];\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper: boolean;\n ignoreHover: boolean;\n width: React.CSSProperties['width'];\n /**\n * При очередном рендере пытаться сохранить первоначальную позицию попапа\n * (в числе числе, когда он выходит за пределы экрана, но может быть проскролен в него).\n *\n * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.\n * @see https://github.com/skbkontur/retail-ui/pull/1195\n */\n tryPreserveFirstRenderedPosition?: boolean;\n}\n\ninterface PopupLocation {\n coordinates: {\n left: number;\n top: number;\n };\n position: PopupPosition;\n}\n\nexport interface PopupState {\n location: Nullable<PopupLocation>;\n}\n\nexport class Popup extends React.Component<PopupProps, PopupState> {\n public static __KONTUR_REACT_UI__ = 'Popup';\n\n public static propTypes = {\n /**\n * Ссылка (ref) на элемент или React компонент, для которого рисуется попап\n */\n anchorElement: PropTypes.oneOfType([safePropTypesInstanceOf(() => HTMLElement), PropTypes.node]).isRequired,\n\n /**\n * Фон попапа и пина\n */\n backgroundColor: PropTypes.string,\n\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * Показывать ли пин\n */\n hasPin: PropTypes.bool,\n\n /**\n * Применять ли box-shadow на попапе. При false отключает границу на пине\n */\n hasShadow: PropTypes.bool,\n\n /**\n * Отступ попапа от элемента\n */\n margin: PropTypes.number,\n\n /**\n * Показан или скрыт попап\n */\n opened: PropTypes.bool,\n\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n pinOffset: PropTypes.number,\n\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n pinSize: PropTypes.number,\n\n /**\n * смещение попапа относительно родительского элемента\n */\n popupOffset: PropTypes.number,\n\n /**\n * С какой стороны показывать попап и край попапа,\n * на котором будет отображаться пин\n */\n positions: PropTypes.array,\n\n /**\n * Игнорировать ли события hover/click\n */\n ignoreHover: PropTypes.bool,\n };\n\n public static defaultProps = {\n popupOffset: 0,\n hasPin: false,\n hasShadow: false,\n disableAnimations: isTestEnv,\n useWrapper: false,\n ignoreHover: false,\n width: 'auto',\n };\n\n public state: PopupState = { location: this.props.opened ? DUMMY_LOCATION : null };\n private theme!: Theme;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private locationUpdateId: Nullable<number> = null;\n private lastPopupElement: Nullable<HTMLElement>;\n private anchorElement: Nullable<HTMLElement> = null;\n private anchorInstance: Nullable<React.ReactInstance>;\n\n public componentDidMount() {\n this.updateLocation();\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);\n }\n\n public UNSAFE_componentWillReceiveProps(nextProps: Readonly<PopupProps>) {\n /**\n * Delaying updateLocation to ensure it happens after props update\n */\n if (nextProps.opened) {\n if (!this.state.location) {\n this.setState({ location: DUMMY_LOCATION });\n }\n this.delayUpdateLocation();\n }\n }\n\n public componentDidUpdate(prevProps: PopupProps, prevState: PopupState) {\n const hadNoLocation = prevState.location === DUMMY_LOCATION;\n const hasLocation = this.state.location !== DUMMY_LOCATION;\n if (hadNoLocation && hasLocation && this.props.onOpen) {\n this.props.onOpen();\n }\n if (!hadNoLocation && !this.state.location && this.props.onClose) {\n this.props.onClose();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedUpdateLocation();\n this.removeEventListeners(this.anchorElement);\n if (this.layoutEventsToken) {\n this.layoutEventsToken.remove();\n this.layoutEventsToken = null;\n }\n if (this.state.location && this.props.onClose) {\n this.props.onClose();\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 private renderMain() {\n const { location } = this.state;\n const { anchorElement, useWrapper } = this.props;\n\n let child: Nullable<React.ReactNode> = null;\n if (isHTMLElement(anchorElement)) {\n this.updateAnchorElement(anchorElement);\n } else if (React.isValidElement(anchorElement)) {\n child = useWrapper ? <span>{anchorElement}</span> : anchorElement;\n } else {\n child = <span>{anchorElement}</span>;\n }\n\n return (\n <RenderContainer anchor={child} ref={child ? this.refAnchorElement : undefined}>\n {location && this.renderContent(location)}\n </RenderContainer>\n );\n }\n\n private refAnchorElement = (instance: React.ReactInstance | null) => {\n this.anchorInstance = instance;\n const element = this.extractElement(instance);\n this.updateAnchorElement(element);\n this.anchorElement = element;\n };\n\n private extractElement(instance: React.ReactInstance | null) {\n if (!instance) {\n return null;\n }\n const element = findDOMNode(instance);\n return isHTMLElement(element) ? element : null;\n }\n\n private updateAnchorElement(element: HTMLElement | null) {\n const anchorElement = this.anchorElement;\n\n if (element !== anchorElement) {\n this.removeEventListeners(anchorElement);\n this.anchorElement = element;\n this.addEventListeners(element);\n }\n }\n\n private addEventListeners(element: Nullable<HTMLElement>) {\n if (element && isHTMLElement(element)) {\n element.addEventListener('mouseenter', this.handleMouseEnter);\n element.addEventListener('mouseleave', this.handleMouseLeave);\n element.addEventListener('click', this.handleClick);\n element.addEventListener('focusin', this.handleFocus as EventListener);\n element.addEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private removeEventListeners(element: Nullable<HTMLElement>) {\n if (element && isHTMLElement(element)) {\n element.removeEventListener('mouseenter', this.handleMouseEnter);\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n element.removeEventListener('click', this.handleClick);\n element.removeEventListener('focusin', this.handleFocus as EventListener);\n element.removeEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(event);\n }\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(event);\n }\n };\n\n private handleClick = (event: MouseEventType) => {\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n };\n\n private handleFocus = (event: FocusEventType) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: FocusEventType) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private calculateWidth = (width: PopupProps['width']) => {\n if (typeof width === 'string' && width.includes('%')) {\n return this.anchorElement ? (this.anchorElement.offsetWidth * parseFloat(width)) / 100 : 0;\n }\n return width;\n };\n\n private renderContent(location: PopupLocation) {\n const { backgroundColor, disableAnimations, maxWidth, hasShadow, ignoreHover, opened, width } = this.props;\n const children = this.renderChildren();\n\n const { direction } = PopupHelper.getPositionObject(location.position);\n const rootStyle: React.CSSProperties = { ...location.coordinates, maxWidth };\n\n const shouldFallbackShadow = isIE11 || isEdge || isSafari;\n\n return (\n <Transition\n timeout={TRANSITION_TIMEOUT}\n appear={!disableAnimations}\n in={Boolean(opened && children)}\n mountOnEnter\n unmountOnExit\n enter={!disableAnimations}\n exit={!disableAnimations}\n onExited={this.resetLocation}\n >\n {(state: string) => (\n <CommonWrapper {...this.props}>\n <ZIndex\n ref={this.refPopupElement}\n priority={'Popup'}\n className={cx({\n [styles.popup(this.theme)]: true,\n [styles.shadow(this.theme)]: hasShadow && !shouldFallbackShadow,\n [styles.shadowFallback(this.theme)]: hasShadow && shouldFallbackShadow,\n [styles.popupIgnoreHover()]: ignoreHover,\n ...(disableAnimations\n ? {}\n : {\n [styles[`transition-enter-${direction}` as keyof typeof styles](this.theme)]: true,\n [styles.transitionEnter()]: state === 'entering',\n [styles.transitionEnterActive()]: state === 'entered',\n [styles.transitionExit()]: state === 'exiting',\n }),\n })}\n style={rootStyle}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n <div className={styles.content(this.theme)} data-tid={'PopupContent'}>\n <div\n className={styles.contentInner(this.theme)}\n style={{ backgroundColor, width: this.calculateWidth(width) }}\n data-tid={'PopupContentInner'}\n >\n {children}\n </div>\n </div>\n {this.renderPin(location.position)}\n </ZIndex>\n </CommonWrapper>\n )}\n </Transition>\n );\n }\n\n private resetLocation = () => {\n this.cancelDelayedUpdateLocation();\n this.setState({ location: null });\n };\n\n private renderChildren() {\n return isFunction(this.props.children) ? this.props.children() : this.props.children;\n }\n\n private refPopupElement = (zIndex: ZIndex | null) => {\n if (zIndex) {\n this.lastPopupElement = zIndex && (findDOMNode(zIndex) as HTMLElement);\n }\n };\n\n private renderPin(positionName: string): React.ReactNode {\n /**\n * Box-shadow does not appear under the pin. Borders are used instead.\n * In non-ie browsers drop-shadow filter is used. It is applying\n * shadow to the pin too.\n */\n const isDefaultBorderColor = this.theme.popupBorderColor === POPUP_BORDER_DEFAULT_COLOR;\n const pinBorder = isIE11 && isDefaultBorderColor ? 'rgba(0, 0, 0, 0.09)' : this.theme.popupBorderColor;\n\n const { pinSize, hasShadow, backgroundColor, borderColor } = this.props;\n const position = PopupHelper.getPositionObject(positionName);\n\n return (\n this.props.hasPin && (\n <PopupPin\n popupElement={this.lastPopupElement}\n popupPosition={positionName}\n size={pinSize || parseInt(this.theme.popupPinSize)}\n offset={this.getPinOffset(position.align)}\n borderWidth={hasShadow ? 1 : 0}\n backgroundColor={backgroundColor || this.theme.popupBackground}\n borderColor={borderColor || pinBorder}\n />\n )\n );\n }\n\n private handleLayoutEvent = () => {\n if (!this.state.location) {\n return;\n }\n if (this.anchorInstance) {\n this.updateAnchorElement(this.extractElement(this.anchorInstance));\n }\n this.updateLocation();\n };\n\n private delayUpdateLocation() {\n this.cancelDelayedUpdateLocation();\n this.locationUpdateId = raf(this.updateLocation);\n }\n\n private cancelDelayedUpdateLocation() {\n if (this.locationUpdateId) {\n raf.cancel(this.locationUpdateId);\n this.locationUpdateId = null;\n }\n }\n\n private updateLocation = () => {\n const popupElement = this.lastPopupElement;\n\n if (!popupElement) {\n return;\n }\n\n const location = this.getLocation(popupElement, this.state.location);\n if (!this.locationEquals(this.state.location, location)) {\n this.setState({ location });\n }\n };\n\n private locationEquals(x: Nullable<PopupLocation>, y: Nullable<PopupLocation>) {\n if (x === y) {\n return true;\n }\n\n if (x == null || y == null) {\n return false;\n }\n\n return (\n x.coordinates.left === y.coordinates.left && x.coordinates.top === y.coordinates.top && x.position === y.position\n );\n }\n\n private getLocation(popupElement: HTMLElement, location?: Nullable<PopupLocation>) {\n const { positions, tryPreserveFirstRenderedPosition } = this.props;\n const anchorElement = this.anchorElement;\n\n warning(\n anchorElement && isHTMLElement(anchorElement),\n 'Anchor element is not defined or not instance of HTMLElement',\n );\n\n if (!(anchorElement && isHTMLElement(anchorElement))) {\n return location;\n }\n\n const anchorRect = PopupHelper.getElementAbsoluteRect(anchorElement);\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n\n let position: PopupPosition;\n let coordinates: Offset;\n\n if (location && location !== DUMMY_LOCATION && location.position) {\n position = location.position;\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n const isFullyVisible = PopupHelper.isFullyVisible(coordinates, popupRect);\n const canBecomeVisible = !isFullyVisible && PopupHelper.canBecomeFullyVisible(position, coordinates);\n\n if (\n // если нужно сохранить первоначальную позицию и Попап целиком\n // находится в пределах вьюпорта (или может быть проскроллен в него)\n (tryPreserveFirstRenderedPosition && (isFullyVisible || canBecomeVisible)) ||\n // если Попап целиком во вьюпорте и в самой приоритетной позиции\n // (иначе нужно попытаться позицию сменить)\n (isFullyVisible && position === positions[0])\n ) {\n // сохраняем текущую позицию\n return { coordinates, position };\n }\n }\n\n for (position of positions) {\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n if (PopupHelper.isFullyVisible(coordinates, popupRect)) {\n return { coordinates, position };\n }\n }\n\n position = positions[0];\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n return { coordinates, position };\n }\n\n private getPinnedPopupOffset(anchorRect: Rect, position: PositionObject) {\n if (!this.props.hasPin || /center|middle/.test(position.align)) {\n return 0;\n }\n\n const anchorSize = /top|bottom/.test(position.direction) ? anchorRect.width : anchorRect.height;\n\n const { pinSize } = this.props;\n\n return Math.max(\n 0,\n this.getPinOffset(position.align) + (pinSize || parseInt(this.theme.popupPinSize)) - anchorSize / 2,\n );\n }\n\n private getCoordinates(anchorRect: Rect, popupRect: Rect, positionName: string) {\n const { margin: marginFromProps } = this.props;\n const margin =\n isNonNullable(marginFromProps) && !isNaN(marginFromProps)\n ? marginFromProps\n : parseInt(this.theme.popupMargin) || 0;\n const position = PopupHelper.getPositionObject(positionName);\n const popupOffset = this.props.popupOffset + this.getPinnedPopupOffset(anchorRect, position);\n\n switch (position.direction) {\n case 'top':\n return {\n top: anchorRect.top - popupRect.height - margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'bottom':\n return {\n top: anchorRect.top + anchorRect.height + margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'left':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left - popupRect.width - margin,\n };\n case 'right':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left + anchorRect.width + margin,\n };\n default:\n throw new Error(`Unexpected direction '${position.direction}'`);\n }\n }\n\n private getPinOffset(align: string) {\n const { pinOffset } = this.props;\n\n switch (align) {\n case 'top':\n case 'bottom':\n return pinOffset || parseInt(this.theme.popupPinOffset) || parseInt(this.theme.popupPinOffsetY);\n case 'left':\n case 'right':\n return pinOffset || parseInt(this.theme.popupPinOffset) || parseInt(this.theme.popupPinOffsetX);\n case 'center':\n case 'middle':\n return 0;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getHorizontalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'left':\n return anchorRect.left - popupOffset;\n case 'center':\n return anchorRect.left - (popupRect.width - anchorRect.width) / 2;\n case 'right':\n return anchorRect.left - (popupRect.width - anchorRect.width) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getVerticalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'top':\n return anchorRect.top - popupOffset;\n case 'middle':\n return anchorRect.top - (popupRect.height - anchorRect.height) / 2;\n case 'bottom':\n return anchorRect.top - (popupRect.height - anchorRect.height) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n"]}
@@ -1,16 +1,16 @@
1
- import { Theme } from '../../lib/theming/Theme';
2
- export declare const styles: {
3
- popup(t: Theme): string;
4
- popupIgnoreHover(): string;
5
- content(t: Theme): string;
6
- contentInner(t: Theme): string;
7
- shadow(t: Theme): string;
8
- shadowFallback(t: Theme): string;
9
- transitionEnter(): string;
10
- 'transition-enter-top'(): string;
11
- 'transition-enter-bottom'(): string;
12
- 'transition-enter-left'(): string;
13
- 'transition-enter-right'(): string;
14
- transitionEnterActive(): string;
15
- transitionExit(): string;
16
- };
1
+ import { Theme } from '../../lib/theming/Theme';
2
+ export declare const styles: {
3
+ popup(t: Theme): string;
4
+ popupIgnoreHover(): string;
5
+ content(t: Theme): string;
6
+ contentInner(t: Theme): string;
7
+ shadow(t: Theme): string;
8
+ shadowFallback(t: Theme): string;
9
+ transitionEnter(): string;
10
+ 'transition-enter-top'(): string;
11
+ 'transition-enter-bottom'(): string;
12
+ 'transition-enter-left'(): string;
13
+ 'transition-enter-right'(): string;
14
+ transitionEnterActive(): string;
15
+ transitionExit(): string;
16
+ };