@vkontakte/vkui 4.22.2 → 4.23.0

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 (236) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +193 -30
  4. package/.cache/ts/src/components/ActionSheet/ActionSheetContext.d.ts +1 -1
  5. package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +7 -0
  6. package/.cache/ts/src/components/AdaptivityProvider/AdaptivityContext.d.ts +5 -0
  7. package/.cache/ts/src/components/AppRoot/AppRootContext.d.ts +1 -0
  8. package/.cache/ts/src/components/AppRoot/AppRootPortal.d.ts +1 -0
  9. package/.cache/ts/src/components/ClickPopper/ClickPopper.d.ts +21 -0
  10. package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +8 -0
  11. package/.cache/ts/src/components/Dropdown/Dropdown.d.ts +49 -0
  12. package/.cache/ts/src/components/Footer/Footer.d.ts +3 -3
  13. package/.cache/ts/src/components/HoverPopper/HoverPopper.d.ts +29 -0
  14. package/.cache/ts/src/components/Popper/Popper.d.ts +27 -0
  15. package/.cache/ts/src/components/RichTooltip/RichTooltip.d.ts +46 -0
  16. package/.cache/ts/src/components/TextTooltip/TextTooltip.d.ts +49 -0
  17. package/.cache/ts/src/hoc/withAdaptivity.d.ts +1 -0
  18. package/.cache/ts/src/hooks/usePatchChildrenRef.d.ts +6 -0
  19. package/.cache/ts/src/index.d.ts +2 -1
  20. package/.cache/ts/src/unstable/index.d.ts +8 -0
  21. package/dist/cjs/components/ActionSheet/ActionSheet.js +21 -7
  22. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  23. package/dist/cjs/components/ActionSheet/ActionSheetContext.d.ts +1 -1
  24. package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
  25. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -3
  26. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  27. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts +7 -0
  28. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +4 -3
  29. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  30. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.d.ts +5 -0
  31. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js +5 -1
  32. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  33. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +10 -5
  34. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  35. package/dist/cjs/components/AppRoot/AppRoot.js +3 -6
  36. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  37. package/dist/cjs/components/AppRoot/AppRootContext.d.ts +1 -0
  38. package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
  39. package/dist/cjs/components/AppRoot/AppRootPortal.d.ts +1 -0
  40. package/dist/cjs/components/AppRoot/AppRootPortal.js +7 -3
  41. package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
  42. package/dist/cjs/components/Cell/Cell.js +3 -1
  43. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  44. package/dist/cjs/components/ClickPopper/ClickPopper.d.ts +21 -0
  45. package/dist/cjs/components/ClickPopper/ClickPopper.js +92 -0
  46. package/dist/cjs/components/ClickPopper/ClickPopper.js.map +1 -0
  47. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +8 -0
  48. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  49. package/dist/cjs/components/Dropdown/Dropdown.d.ts +49 -0
  50. package/dist/cjs/components/Dropdown/Dropdown.js +56 -0
  51. package/dist/cjs/components/Dropdown/Dropdown.js.map +1 -0
  52. package/dist/cjs/components/Footer/Footer.d.ts +3 -3
  53. package/dist/cjs/components/Footer/Footer.js +2 -3
  54. package/dist/cjs/components/Footer/Footer.js.map +1 -1
  55. package/dist/cjs/components/HoverPopper/HoverPopper.d.ts +29 -0
  56. package/dist/cjs/components/HoverPopper/HoverPopper.js +97 -0
  57. package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -0
  58. package/dist/cjs/components/Popper/Popper.d.ts +27 -0
  59. package/dist/cjs/components/Popper/Popper.js +153 -0
  60. package/dist/cjs/components/Popper/Popper.js.map +1 -0
  61. package/dist/cjs/components/RichTooltip/RichTooltip.d.ts +46 -0
  62. package/dist/cjs/components/RichTooltip/RichTooltip.js +47 -0
  63. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -0
  64. package/dist/cjs/components/Tappable/Tappable.js +6 -4
  65. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  66. package/dist/cjs/components/TextTooltip/TextTooltip.d.ts +49 -0
  67. package/dist/cjs/components/TextTooltip/TextTooltip.js +57 -0
  68. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -0
  69. package/dist/cjs/hoc/withAdaptivity.d.ts +1 -0
  70. package/dist/cjs/hoc/withAdaptivity.js +5 -2
  71. package/dist/cjs/hoc/withAdaptivity.js.map +1 -1
  72. package/dist/cjs/hooks/usePatchChildrenRef.d.ts +6 -0
  73. package/dist/cjs/hooks/usePatchChildrenRef.js +38 -0
  74. package/dist/cjs/hooks/usePatchChildrenRef.js.map +1 -0
  75. package/dist/cjs/index.d.ts +2 -1
  76. package/dist/cjs/index.js +2 -2
  77. package/dist/cjs/index.js.map +1 -1
  78. package/dist/cjs/unstable/index.d.ts +8 -0
  79. package/dist/cjs/unstable/index.js +32 -0
  80. package/dist/cjs/unstable/index.js.map +1 -1
  81. package/dist/components/ActionSheet/ActionSheet.js +22 -8
  82. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  83. package/dist/components/ActionSheet/ActionSheetContext.d.ts +1 -1
  84. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  85. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -3
  86. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  87. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +7 -0
  88. package/dist/components/ActionSheetItem/ActionSheetItem.js +4 -3
  89. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  90. package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts +5 -0
  91. package/dist/components/AdaptivityProvider/AdaptivityContext.js +4 -1
  92. package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  93. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +11 -6
  94. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  95. package/dist/components/AppRoot/AppRoot.js +3 -6
  96. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  97. package/dist/components/AppRoot/AppRootContext.d.ts +1 -0
  98. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  99. package/dist/components/AppRoot/AppRootPortal.d.ts +1 -0
  100. package/dist/components/AppRoot/AppRootPortal.js +7 -3
  101. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  102. package/dist/components/Cell/Cell.js +3 -1
  103. package/dist/components/Cell/Cell.js.map +1 -1
  104. package/dist/components/ClickPopper/ClickPopper.d.ts +21 -0
  105. package/dist/components/ClickPopper/ClickPopper.js +67 -0
  106. package/dist/components/ClickPopper/ClickPopper.js.map +1 -0
  107. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +8 -0
  108. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  109. package/dist/components/Dropdown/Dropdown.d.ts +49 -0
  110. package/dist/components/Dropdown/Dropdown.js +38 -0
  111. package/dist/components/Dropdown/Dropdown.js.map +1 -0
  112. package/dist/components/Footer/Footer.d.ts +3 -3
  113. package/dist/components/Footer/Footer.js +1 -4
  114. package/dist/components/Footer/Footer.js.map +1 -1
  115. package/dist/components/HoverPopper/HoverPopper.d.ts +29 -0
  116. package/dist/components/HoverPopper/HoverPopper.js +73 -0
  117. package/dist/components/HoverPopper/HoverPopper.js.map +1 -0
  118. package/dist/components/Popper/Popper.d.ts +27 -0
  119. package/dist/components/Popper/Popper.js +127 -0
  120. package/dist/components/Popper/Popper.js.map +1 -0
  121. package/dist/components/RichTooltip/RichTooltip.d.ts +46 -0
  122. package/dist/components/RichTooltip/RichTooltip.js +26 -0
  123. package/dist/components/RichTooltip/RichTooltip.js.map +1 -0
  124. package/dist/components/Tappable/Tappable.js +7 -5
  125. package/dist/components/Tappable/Tappable.js.map +1 -1
  126. package/dist/components/TextTooltip/TextTooltip.d.ts +49 -0
  127. package/dist/components/TextTooltip/TextTooltip.js +34 -0
  128. package/dist/components/TextTooltip/TextTooltip.js.map +1 -0
  129. package/dist/components.css +1 -1
  130. package/dist/components.css.map +1 -1
  131. package/dist/cssm/components/ActionSheet/ActionSheet.js +22 -8
  132. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  133. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  134. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -3
  135. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  136. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +4 -3
  137. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  138. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js +4 -1
  139. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  140. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +11 -6
  141. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  142. package/dist/cssm/components/AppRoot/AppRoot.js +3 -6
  143. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  144. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  145. package/dist/cssm/components/AppRoot/AppRootPortal.js +7 -3
  146. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  147. package/dist/cssm/components/Cell/Cell.js +3 -1
  148. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  149. package/dist/cssm/components/ClickPopper/ClickPopper.js +67 -0
  150. package/dist/cssm/components/ClickPopper/ClickPopper.js.map +1 -0
  151. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  152. package/dist/cssm/components/Dropdown/Dropdown.css +1 -0
  153. package/dist/cssm/components/Dropdown/Dropdown.js +41 -0
  154. package/dist/cssm/components/Dropdown/Dropdown.js.map +1 -0
  155. package/dist/cssm/components/Footer/Footer.js +1 -4
  156. package/dist/cssm/components/Footer/Footer.js.map +1 -1
  157. package/dist/cssm/components/HoverPopper/HoverPopper.js +73 -0
  158. package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -0
  159. package/dist/cssm/components/Popper/Popper.css +1 -0
  160. package/dist/cssm/components/Popper/Popper.js +128 -0
  161. package/dist/cssm/components/Popper/Popper.js.map +1 -0
  162. package/dist/cssm/components/RichTooltip/RichTooltip.css +1 -0
  163. package/dist/cssm/components/RichTooltip/RichTooltip.js +29 -0
  164. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -0
  165. package/dist/cssm/components/Tappable/Tappable.js +7 -5
  166. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  167. package/dist/cssm/components/TextTooltip/TextTooltip.css +1 -0
  168. package/dist/cssm/components/TextTooltip/TextTooltip.js +37 -0
  169. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -0
  170. package/dist/cssm/hoc/withAdaptivity.js +5 -2
  171. package/dist/cssm/hoc/withAdaptivity.js.map +1 -1
  172. package/dist/cssm/hooks/usePatchChildrenRef.js +21 -0
  173. package/dist/cssm/hooks/usePatchChildrenRef.js.map +1 -0
  174. package/dist/cssm/index.js +1 -1
  175. package/dist/cssm/index.js.map +1 -1
  176. package/dist/cssm/styles/animations.css +1 -1
  177. package/dist/cssm/styles/common.css +1 -1
  178. package/dist/cssm/styles/components.css +1 -1
  179. package/dist/cssm/styles/unstable.css +1 -1
  180. package/dist/cssm/unstable/index.js +4 -0
  181. package/dist/cssm/unstable/index.js.map +1 -1
  182. package/dist/hoc/withAdaptivity.d.ts +1 -0
  183. package/dist/hoc/withAdaptivity.js +5 -2
  184. package/dist/hoc/withAdaptivity.js.map +1 -1
  185. package/dist/hooks/usePatchChildrenRef.d.ts +6 -0
  186. package/dist/hooks/usePatchChildrenRef.js +21 -0
  187. package/dist/hooks/usePatchChildrenRef.js.map +1 -0
  188. package/dist/index.d.ts +2 -1
  189. package/dist/index.js +1 -1
  190. package/dist/index.js.map +1 -1
  191. package/dist/unstable/index.d.ts +8 -0
  192. package/dist/unstable/index.js +4 -0
  193. package/dist/unstable/index.js.map +1 -1
  194. package/dist/unstable.css +1 -1
  195. package/dist/unstable.css.map +1 -1
  196. package/dist/vkui.css +1 -1
  197. package/dist/vkui.css.map +1 -1
  198. package/package.json +2 -2
  199. package/src/components/ActionSheet/ActionSheet.tsx +16 -9
  200. package/src/components/ActionSheet/ActionSheetContext.ts +1 -1
  201. package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +1 -3
  202. package/src/components/ActionSheetItem/ActionSheetItem.tsx +10 -2
  203. package/src/components/AdaptivityProvider/AdaptivityContext.tsx +8 -0
  204. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +8 -6
  205. package/src/components/AdaptivityProvider/Readme.md +3 -3
  206. package/src/components/AppRoot/AppRoot.tsx +4 -5
  207. package/src/components/AppRoot/AppRootContext.ts +1 -0
  208. package/src/components/AppRoot/AppRootPortal.tsx +5 -3
  209. package/src/components/Cell/Cell.tsx +2 -1
  210. package/src/components/ChipsSelect/Readme.md +1 -1
  211. package/src/components/ClickPopper/ClickPopper.tsx +82 -0
  212. package/src/components/ConfigProvider/ConfigProviderContext.tsx +8 -0
  213. package/src/components/Dropdown/Dropdown.css +19 -0
  214. package/src/components/Dropdown/Dropdown.tsx +74 -0
  215. package/src/components/Dropdown/Readme.md +39 -0
  216. package/src/components/Footer/Footer.tsx +6 -4
  217. package/src/components/HoverPopper/HoverPopper.tsx +100 -0
  218. package/src/components/PanelHeader/Readme.md +4 -0
  219. package/src/components/Popper/Popper.css +39 -0
  220. package/src/components/Popper/Popper.tsx +147 -0
  221. package/src/components/Popper/Readme.md +23 -0
  222. package/src/components/RichTooltip/Readme.md +55 -0
  223. package/src/components/RichTooltip/RichTooltip.css +10 -0
  224. package/src/components/RichTooltip/RichTooltip.tsx +70 -0
  225. package/src/components/Tappable/Tappable.tsx +5 -4
  226. package/src/components/TextTooltip/Readme.md +7 -0
  227. package/src/components/TextTooltip/TextTooltip.css +12 -0
  228. package/src/components/TextTooltip/TextTooltip.tsx +76 -0
  229. package/src/components/Tooltip/Readme.md +2 -0
  230. package/src/hoc/withAdaptivity.tsx +5 -1
  231. package/src/hooks/usePatchChildrenRef.ts +24 -0
  232. package/src/index.ts +2 -1
  233. package/src/styles/animations.css +5 -0
  234. package/src/styles/common.css +7 -2
  235. package/src/styles/unstable.css +4 -0
  236. package/src/unstable/index.ts +12 -0
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { PopperCommonProps } from '../Popper/Popper';
3
+ export interface ClickPopperProps extends PopperCommonProps {
4
+ /**
5
+ * Содержимое `ClickPopper`
6
+ */
7
+ content?: React.ReactNode;
8
+ /**
9
+ * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства
10
+ */
11
+ shown?: boolean;
12
+ /**
13
+ * Вызывается при каждом изменении видимости тултипа
14
+ */
15
+ onShownChange?: (shown: boolean) => void;
16
+ /**
17
+ * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элемнету компонента
18
+ */
19
+ children?: React.ReactElement;
20
+ }
21
+ export declare const ClickPopper: React.FC<ClickPopperProps>;
@@ -6,7 +6,15 @@ export declare enum Appearance {
6
6
  LIGHT = "light"
7
7
  }
8
8
  export declare enum Scheme {
9
+ /**
10
+ * @deprecated будет удалено в 5.0.0
11
+ * версия оставлена для совместимости со старыми версиями клиентов
12
+ */
9
13
  DEPRECATED_CLIENT_LIGHT = "client_light",
14
+ /**
15
+ * @deprecated будет удалено в 5.0.0
16
+ * версия оставлена для совместимости со старыми версиями клиентов
17
+ */
10
18
  DEPRECATED_CLIENT_DARK = "client_dark",
11
19
  /**
12
20
  * @deprecated будет удалено в 5.0.0
@@ -0,0 +1,49 @@
1
+ import * as React from 'react';
2
+ import { HoverPopperProps } from '../HoverPopper/HoverPopper';
3
+ import { Placement } from '../Popper/Popper';
4
+ import './Dropdown.css';
5
+ export interface DropdownProps {
6
+ /**
7
+ * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства
8
+ */
9
+ placement?: Placement;
10
+ /**
11
+ * Отступ по вспомогательной оси
12
+ */
13
+ offsetSkidding?: number;
14
+ /**
15
+ * Отступ по главной оси
16
+ */
17
+ offsetDistance?: number;
18
+ onPlacementChange?: (data: {
19
+ placement?: Placement;
20
+ }) => void;
21
+ /**
22
+ * Содержимое тултипа
23
+ */
24
+ content?: React.ReactNode;
25
+ /**
26
+ * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства
27
+ */
28
+ shown?: boolean;
29
+ /**
30
+ * Вызывается при каждом изменении видимости тултипа
31
+ */
32
+ onShownChange?: (shown: boolean) => void;
33
+ /**
34
+ * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элементу компонента
35
+ */
36
+ children?: React.ReactElement;
37
+ action?: 'click' | 'hover';
38
+ /**
39
+ * Актуально только для action="hover"
40
+ * Количество миллисекунд, после которых произойдет показ дропдауна
41
+ */
42
+ showDelay?: HoverPopperProps['showDelay'];
43
+ /**
44
+ * Актуально только для action="hover"
45
+ * Количество миллисекунд, после которых произойдет скрытие дропдауна
46
+ */
47
+ hideDelay?: HoverPopperProps['hideDelay'];
48
+ }
49
+ export declare const Dropdown: React.FC<DropdownProps>;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { HasComponent } from '../../types';
2
3
  import './Footer.css';
3
- declare type FooterProps = React.AllHTMLAttributes<HTMLElement>;
4
- declare const Footer: React.FC<FooterProps>;
5
- export default Footer;
4
+ export declare type FooterProps = React.AllHTMLAttributes<HTMLElement> & HasComponent;
5
+ export declare const Footer: React.FC<FooterProps>;
@@ -0,0 +1,29 @@
1
+ import * as React from 'react';
2
+ import { PopperCommonProps } from '../Popper/Popper';
3
+ export interface HoverPopperProps extends PopperCommonProps {
4
+ /**
5
+ * Содержимое тултипа
6
+ */
7
+ content?: React.ReactNode;
8
+ /**
9
+ * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства
10
+ */
11
+ shown?: boolean;
12
+ /**
13
+ * Вызывается при каждом изменении видимости тултипа
14
+ */
15
+ onShownChange?: (shown: boolean) => void;
16
+ /**
17
+ * Количество миллисекунд, после которых произойдет показ дропдауна
18
+ */
19
+ showDelay?: number;
20
+ /**
21
+ * Количество миллисекунд, после которых произойдет скрытие дропдауна
22
+ */
23
+ hideDelay?: number;
24
+ /**
25
+ * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элементу компонента
26
+ */
27
+ children?: React.ReactElement;
28
+ }
29
+ export declare const HoverPopper: React.FC<HoverPopperProps>;
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ import { HasRef } from '../../types';
3
+ import './Popper.css';
4
+ export declare type Placement = 'auto' | 'auto-start' | 'auto-end' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'right-start' | 'right-end' | 'left-start' | 'left-end' | 'top' | 'bottom' | 'left' | 'right';
5
+ export interface PopperCommonProps extends React.HTMLAttributes<HTMLElement>, HasRef<HTMLElement> {
6
+ /**
7
+ * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства
8
+ */
9
+ placement?: Placement;
10
+ /**
11
+ * Отступ по вспомогательной оси
12
+ */
13
+ offsetSkidding?: number;
14
+ /**
15
+ * Отступ по главной оси
16
+ */
17
+ offsetDistance?: number;
18
+ arrow?: boolean;
19
+ arrowClassName?: string;
20
+ onPlacementChange?: (data: {
21
+ placement?: Placement;
22
+ }) => void;
23
+ }
24
+ export interface PopperProps extends PopperCommonProps {
25
+ targetRef?: React.RefObject<HTMLElement>;
26
+ }
27
+ export declare const Popper: React.FC<PopperProps>;
@@ -0,0 +1,46 @@
1
+ import * as React from 'react';
2
+ import { Placement } from '../Popper/Popper';
3
+ import './RichTooltip.css';
4
+ export interface RichTooltipProps {
5
+ /**
6
+ * Содержимое тултипа
7
+ */
8
+ content?: React.ReactNode;
9
+ /**
10
+ * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства
11
+ */
12
+ shown?: boolean;
13
+ /**
14
+ * Вызывается при каждом изменении видимости тултипа
15
+ */
16
+ onShownChange?: (shown: boolean) => void;
17
+ /**
18
+ * Количество миллисекунд, после которых произойдет показ дропдауна
19
+ */
20
+ showDelay?: number;
21
+ /**
22
+ * Количество миллисекунд, после которых произойдет скрытие дропдауна
23
+ */
24
+ hideDelay?: number;
25
+ /**
26
+ * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элементу компонента
27
+ */
28
+ children?: React.ReactElement;
29
+ /**
30
+ * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства
31
+ */
32
+ placement?: Placement;
33
+ /**
34
+ * Отступ по вспомогательной оси
35
+ */
36
+ offsetSkidding?: number;
37
+ /**
38
+ * Отступ по главной оси
39
+ */
40
+ offsetDistance?: number;
41
+ onPlacementChange?: (data: {
42
+ placement?: Placement;
43
+ }) => void;
44
+ arrow?: boolean;
45
+ }
46
+ export declare const RichTooltip: React.FC<RichTooltipProps>;
@@ -0,0 +1,49 @@
1
+ import * as React from 'react';
2
+ import { Placement } from '../Popper/Popper';
3
+ import './TextTooltip.css';
4
+ export interface TextTooltipProps {
5
+ /**
6
+ * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства
7
+ */
8
+ shown?: boolean;
9
+ /**
10
+ * Вызывается при каждом изменении видимости тултипа
11
+ */
12
+ onShownChange?: (shown: boolean) => void;
13
+ /**
14
+ * Количество миллисекунд, после которых произойдет показ дропдауна
15
+ */
16
+ showDelay?: number;
17
+ /**
18
+ * Количество миллисекунд, после которых произойдет скрытие дропдауна
19
+ */
20
+ hideDelay?: number;
21
+ /**
22
+ * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элементу компонента
23
+ */
24
+ children?: React.ReactElement;
25
+ /**
26
+ * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства
27
+ */
28
+ placement?: Placement;
29
+ /**
30
+ * Отступ по вспомогательной оси
31
+ */
32
+ offsetSkidding?: number;
33
+ /**
34
+ * Отступ по главной оси
35
+ */
36
+ offsetDistance?: number;
37
+ onPlacementChange?: (data: {
38
+ placement?: Placement;
39
+ }) => void;
40
+ /**
41
+ * Текст тултипа
42
+ */
43
+ text?: React.ReactNode;
44
+ /**
45
+ * Заголовок тултипа
46
+ */
47
+ header?: React.ReactNode;
48
+ }
49
+ export declare const TextTooltip: React.FC<TextTooltipProps>;
@@ -7,5 +7,6 @@ interface Config {
7
7
  viewWidth?: boolean;
8
8
  viewHeight?: boolean;
9
9
  hasMouse?: boolean;
10
+ deviceHasHover?: boolean;
10
11
  }
11
12
  export declare function withAdaptivity<T>(TargetComponent: T, config: Config): T;
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ declare type ChildrenElement<T> = React.ReactElement<{
3
+ getRootRef?: React.Ref<T>;
4
+ }>;
5
+ export declare const usePatchChildrenRef: <T = HTMLElement>(children: ChildrenElement<T>) => [React.MutableRefObject<T>, ChildrenElement<T>];
6
+ export {};
@@ -97,7 +97,8 @@ export { default as SimpleCell } from './components/SimpleCell/SimpleCell';
97
97
  export type { SimpleCellProps } from './components/SimpleCell/SimpleCell';
98
98
  export { HorizontalCell } from './components/HorizontalCell/HorizontalCell';
99
99
  export type { HorizontalCellProps } from './components/HorizontalCell/HorizontalCell';
100
- export { default as Footer } from './components/Footer/Footer';
100
+ export { Footer } from './components/Footer/Footer';
101
+ export type { FooterProps } from './components/Footer/Footer';
101
102
  export { default as InfoRow } from './components/InfoRow/InfoRow';
102
103
  export type { InfoRowProps } from './components/InfoRow/InfoRow';
103
104
  export { default as Gallery } from './components/Gallery/Gallery';
@@ -3,6 +3,14 @@
3
3
  */
4
4
  export { default as ChipsSelect } from './../components/ChipsSelect/ChipsSelect';
5
5
  export type { ChipsSelectProps } from './../components/ChipsSelect/ChipsSelect';
6
+ export { Dropdown } from '../components/Dropdown/Dropdown';
7
+ export type { DropdownProps } from '../components/Dropdown/Dropdown';
8
+ export { TextTooltip } from '../components/TextTooltip/TextTooltip';
9
+ export type { TextTooltipProps } from '../components/TextTooltip/TextTooltip';
10
+ export { RichTooltip } from '../components/RichTooltip/RichTooltip';
11
+ export type { RichTooltipProps } from '../components/RichTooltip/RichTooltip';
12
+ export { Popper } from '../components/Popper/Popper';
13
+ export type { PopperProps } from '../components/Popper/Popper';
6
14
  export { default as ViewInfinite } from './../components/View/ViewInfinite';
7
15
  export type { ViewInfiniteProps } from './../components/View/ViewInfinite';
8
16
  export { default as SimpleCheckbox } from './../components/SimpleCheckbox/SimpleCheckbox';
@@ -67,8 +67,14 @@ var ActionSheet = function ActionSheet(_ref) {
67
67
  return setClosing(true);
68
68
  };
69
69
 
70
+ var _action = React.useRef(_utils.noop);
71
+
70
72
  var afterClose = function afterClose() {
71
73
  restProps.onClose();
74
+
75
+ _action.current();
76
+
77
+ _action.current = _utils.noop;
72
78
  };
73
79
 
74
80
  if (process.env.NODE_ENV === 'development' && !restProps.onClose) {
@@ -82,24 +88,32 @@ var ActionSheet = function ActionSheet(_ref) {
82
88
 
83
89
  var isDesktop = viewWidth >= _withAdaptivity.ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= _withAdaptivity.ViewHeight.MEDIUM);
84
90
  var timeout = platform === _platform.IOS ? 300 : 200;
91
+
92
+ if (isDesktop) {
93
+ timeout = 0;
94
+ }
95
+
85
96
  var fallbackTransitionFinish = (0, _useTimeout.useTimeout)(afterClose, timeout);
86
97
  React.useEffect(function () {
87
98
  if (closing) {
88
- if (isDesktop) {
89
- afterClose();
90
- } else {
91
- fallbackTransitionFinish.set();
92
- }
99
+ fallbackTransitionFinish.set();
93
100
  } else {
94
101
  fallbackTransitionFinish.clear();
95
102
  }
96
103
  }, [closing]);
97
- var onItemClick = React.useCallback(function (action, autoclose) {
104
+ var onItemClick = React.useCallback(function (action, immediateAction, autoclose) {
98
105
  return function (event) {
99
- action && action(event);
106
+ event.persist();
107
+ immediateAction && immediateAction(event);
100
108
 
101
109
  if (autoclose) {
110
+ _action.current = function () {
111
+ return action && action(event);
112
+ };
113
+
102
114
  setClosing(true);
115
+ } else {
116
+ action && action(event);
103
117
  }
104
118
  };
105
119
  }, []);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheet.tsx"],"names":["warn","ActionSheet","children","className","header","text","style","iosCloseItem","restProps","platform","React","useState","closing","setClosing","onClose","afterClose","process","env","NODE_ENV","viewWidth","viewHeight","hasMouse","isDesktop","ViewWidth","SMALL_TABLET","ViewHeight","MEDIUM","timeout","IOS","fallbackTransitionFinish","useEffect","set","clear","onItemClick","useCallback","action","autoclose","event","contextValue","DropdownComponent","ActionSheetDropdownDesktop","ActionSheetDropdown","defaultProps","popupDirection"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { ViewWidth, ViewHeight } from '../../hoc/withAdaptivity';\nimport { IOS } from '../../lib/platform';\nimport { ActionSheetDropdownDesktop } from './ActionSheetDropdownDesktop';\nimport { ActionSheetDropdown } from './ActionSheetDropdown';\nimport { hasReactNode } from '../../lib/utils';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport Caption from '../Typography/Caption/Caption';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { SharedDropdownProps, PopupDirection, ToggleRef } from './types';\nimport './ActionSheet.css';\n\nexport interface ActionSheetProps extends React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи. В v5 будет обязательным.\n */\n onClose?: VoidFunction;\n /**\n * Элемент, рядом с которым вылезает попап на десктопе.\n * Лучше передавать RefObject c current.\n * В v5 будет обязательным.\n */\n toggleRef?: ToggleRef;\n /**\n * Направление на десктопе\n */\n popupDirection?: PopupDirection;\n /**\n * Только iOS. В v5 будет обязательным.\n */\n iosCloseItem?: React.ReactNode;\n}\n\nconst warn = warnOnce('ActionSheet');\n\nexport const ActionSheet: React.FC<ActionSheetProps> = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closing, setClosing] = React.useState(false);\n const onClose = () => setClosing(true);\n\n const afterClose = () => {\n restProps.onClose();\n };\n\n if (process.env.NODE_ENV === 'development' && !restProps.onClose) {\n warn('can\\'t close on outer click without onClose');\n }\n\n const { viewWidth, viewHeight, hasMouse } = useAdaptivity();\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n\n const timeout = platform === IOS ? 300 : 200;\n\n const fallbackTransitionFinish = useTimeout(afterClose, timeout);\n React.useEffect(() => {\n if (closing) {\n if (isDesktop) {\n afterClose();\n } else {\n fallbackTransitionFinish.set();\n }\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closing]);\n\n const onItemClick = React.useCallback<ItemClickHandler>((action, autoclose) => (event) => {\n action && action(event);\n if (autoclose) {\n setClosing(true);\n }\n }, []);\n const contextValue = useObjectMemo({ onItemClick, isDesktop });\n\n const DropdownComponent = isDesktop\n ? ActionSheetDropdownDesktop\n : ActionSheetDropdown;\n\n return (\n <PopoutWrapper\n closing={closing}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={!isDesktop ? onClose : null}\n hasMask={!isDesktop}\n fixed={!isDesktop}\n >\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={closing}\n timeout={timeout}\n {...restProps as Omit<SharedDropdownProps, 'closing'>}\n onClose={onClose}\n >\n {(hasReactNode(header) || hasReactNode(text)) &&\n <header vkuiClass=\"ActionSheet__header\">\n {hasReactNode(header) &&\n <Caption level=\"1\" weight={platform === IOS ? 'semibold' : 'medium'} vkuiClass=\"ActionSheet__title\">\n {header}\n </Caption>\n }\n {hasReactNode(text) && <Caption level=\"1\" weight=\"regular\" vkuiClass=\"ActionSheet__text\">{text}</Caption>}\n </header>\n }\n {children}\n {platform === IOS && !isDesktop && iosCloseItem}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n </PopoutWrapper>\n );\n};\n\nActionSheet.defaultProps = {\n popupDirection: 'bottom',\n};\n"],"file":"ActionSheet.js"}
1
+ {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheet.tsx"],"names":["warn","ActionSheet","children","className","header","text","style","iosCloseItem","restProps","platform","React","useState","closing","setClosing","onClose","_action","useRef","noop","afterClose","current","process","env","NODE_ENV","viewWidth","viewHeight","hasMouse","isDesktop","ViewWidth","SMALL_TABLET","ViewHeight","MEDIUM","timeout","IOS","fallbackTransitionFinish","useEffect","set","clear","onItemClick","useCallback","action","immediateAction","autoclose","event","persist","contextValue","DropdownComponent","ActionSheetDropdownDesktop","ActionSheetDropdown","defaultProps","popupDirection"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { ViewWidth, ViewHeight } from '../../hoc/withAdaptivity';\nimport { IOS } from '../../lib/platform';\nimport { ActionSheetDropdownDesktop } from './ActionSheetDropdownDesktop';\nimport { ActionSheetDropdown } from './ActionSheetDropdown';\nimport { hasReactNode, noop } from '../../lib/utils';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport Caption from '../Typography/Caption/Caption';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { SharedDropdownProps, PopupDirection, ToggleRef } from './types';\nimport './ActionSheet.css';\n\nexport interface ActionSheetProps extends React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи. В v5 будет обязательным.\n */\n onClose?: VoidFunction;\n /**\n * Элемент, рядом с которым вылезает попап на десктопе.\n * Лучше передавать RefObject c current.\n * В v5 будет обязательным.\n */\n toggleRef?: ToggleRef;\n /**\n * Направление на десктопе\n */\n popupDirection?: PopupDirection;\n /**\n * Только iOS. В v5 будет обязательным.\n */\n iosCloseItem?: React.ReactNode;\n}\n\nconst warn = warnOnce('ActionSheet');\n\nexport const ActionSheet: React.FC<ActionSheetProps> = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closing, setClosing] = React.useState(false);\n const onClose = () => setClosing(true);\n const _action = React.useRef(noop);\n\n const afterClose = () => {\n restProps.onClose();\n _action.current();\n _action.current = noop;\n };\n\n if (process.env.NODE_ENV === 'development' && !restProps.onClose) {\n warn('can\\'t close on outer click without onClose');\n }\n\n const { viewWidth, viewHeight, hasMouse } = useAdaptivity();\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n\n let timeout = platform === IOS ? 300 : 200;\n\n if (isDesktop) {\n timeout = 0;\n }\n\n const fallbackTransitionFinish = useTimeout(afterClose, timeout);\n React.useEffect(() => {\n if (closing) {\n fallbackTransitionFinish.set();\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closing]);\n\n const onItemClick = React.useCallback<ItemClickHandler>((action, immediateAction, autoclose) => (event) => {\n event.persist();\n immediateAction && immediateAction(event);\n if (autoclose) {\n _action.current = () => action && action(event);\n setClosing(true);\n } else {\n action && action(event);\n }\n }, []);\n const contextValue = useObjectMemo({ onItemClick, isDesktop });\n\n const DropdownComponent = isDesktop\n ? ActionSheetDropdownDesktop\n : ActionSheetDropdown;\n\n return (\n <PopoutWrapper\n closing={closing}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={!isDesktop ? onClose : null}\n hasMask={!isDesktop}\n fixed={!isDesktop}\n >\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={closing}\n timeout={timeout}\n {...restProps as Omit<SharedDropdownProps, 'closing'>}\n onClose={onClose}\n >\n {(hasReactNode(header) || hasReactNode(text)) &&\n <header vkuiClass=\"ActionSheet__header\">\n {hasReactNode(header) &&\n <Caption level=\"1\" weight={platform === IOS ? 'semibold' : 'medium'} vkuiClass=\"ActionSheet__title\">\n {header}\n </Caption>\n }\n {hasReactNode(text) && <Caption level=\"1\" weight=\"regular\" vkuiClass=\"ActionSheet__text\">{text}</Caption>}\n </header>\n }\n {children}\n {platform === IOS && !isDesktop && iosCloseItem}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n </PopoutWrapper>\n );\n};\n\nActionSheet.defaultProps = {\n popupDirection: 'bottom',\n};\n"],"file":"ActionSheet.js"}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  export declare type ActionType = (event: React.MouseEvent) => void;
3
- export declare type ItemClickHandler = (action: ActionType, autoclose: boolean) => (event: React.MouseEvent) => void;
3
+ export declare type ItemClickHandler = (action: ActionType, immediateAction: ActionType, autoclose: boolean) => (event: React.MouseEvent) => void;
4
4
  export declare const ActionSheetContext: React.Context<{
5
5
  onItemClick?: ItemClickHandler;
6
6
  isDesktop?: boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetContext.ts"],"names":["ActionSheetContext","React","createContext"],"mappings":";;;;;;;;;AAAA;;AAMO,IAAMA,kBAAkB,gBAAGC,KAAK,CAACC,aAAN,CAG/B,EAH+B,CAA3B","sourcesContent":["import * as React from 'react';\n\nexport type ActionType = (event: React.MouseEvent) => void;\n\nexport type ItemClickHandler = (action: ActionType, autoclose: boolean) => (event: React.MouseEvent) => void;\n\nexport const ActionSheetContext = React.createContext<{\n onItemClick?: ItemClickHandler;\n isDesktop?: boolean;\n}>({});\n"],"file":"ActionSheetContext.js"}
1
+ {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetContext.ts"],"names":["ActionSheetContext","React","createContext"],"mappings":";;;;;;;;;AAAA;;AAMO,IAAMA,kBAAkB,gBAAGC,KAAK,CAACC,aAAN,CAG/B,EAH+B,CAA3B","sourcesContent":["import * as React from 'react';\n\nexport type ActionType = (event: React.MouseEvent) => void;\n\nexport type ItemClickHandler = (action: ActionType, immediateAction: ActionType, autoclose: boolean) => (event: React.MouseEvent) => void;\n\nexport const ActionSheetContext = React.createContext<{\n onItemClick?: ItemClickHandler;\n isDesktop?: boolean;\n}>({});\n"],"file":"ActionSheetContext.js"}
@@ -113,9 +113,7 @@ var ActionSheetDropdownDesktop = function ActionSheetDropdownDesktop(_ref) {
113
113
  getRootRef: elementRef,
114
114
  onClick: onClick,
115
115
  style: dropdownStyles,
116
- vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)('ActionSheet', platform), 'ActionSheet--desktop', {
117
- 'ActionSheet--closing': closing
118
- }, "ActionSheet--sizeY-".concat(sizeY))
116
+ vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)('ActionSheet', platform), 'ActionSheet--desktop', "ActionSheet--sizeY-".concat(sizeY))
119
117
  }), children);
120
118
  };
121
119
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetDropdownDesktop.tsx"],"names":["warn","getEl","ref","current","ActionSheetDropdownDesktop","children","toggleRef","closing","popupDirection","onClose","restProps","window","document","platform","sizeY","elementRef","React","useRef","useState","left","top","opacity","pointerEvents","dropdownStyles","setDropdownStyles","toggleEl","process","env","NODE_ENV","toggleRect","getBoundingClientRect","elementRect","isTop","width","pageXOffset","pageYOffset","height","bodyClickListener","e","dropdownElement","contains","target","useEffect","setTimeout","add","body","onClick","useCallback","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { useDOM } from '../../lib/dom';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { SharedDropdownProps } from './types';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport './ActionSheet.css';\n\nconst warn = warnOnce('ActionSheet');\nfunction getEl(ref: SharedDropdownProps['toggleRef']): Element | null | undefined {\n return ref && 'current' in ref ? ref.current : ref as Element | null | undefined;\n}\n\nexport const ActionSheetDropdownDesktop: React.FC<SharedDropdownProps> = ({\n children,\n toggleRef,\n closing,\n popupDirection,\n onClose,\n ...restProps\n}) => {\n const { window, document } = useDOM();\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const elementRef = React.useRef<HTMLDivElement>();\n\n const [dropdownStyles, setDropdownStyles] = React.useState<React.CSSProperties>({\n left: 0,\n top: 0,\n opacity: 0,\n pointerEvents: 'none',\n });\n useIsomorphicLayoutEffect(() => {\n const toggleEl = getEl(toggleRef);\n if (!toggleEl) {\n if (process.env.NODE_ENV === 'development') {\n warn('toggleRef not passed');\n }\n return;\n }\n\n const toggleRect = toggleEl.getBoundingClientRect();\n const elementRect = elementRef.current.getBoundingClientRect();\n const isTop = popupDirection === 'top' || typeof popupDirection === 'function' && popupDirection(elementRef) === 'top';\n\n setDropdownStyles({\n left: toggleRect.left + toggleRect.width - elementRect.width + window.pageXOffset,\n top: toggleRect.top + window.pageYOffset + (isTop ? -elementRect.height : toggleRect.height),\n });\n }, [toggleRef]);\n\n const bodyClickListener = useEventListener('click', (e: MouseEvent) => {\n const dropdownElement = elementRef?.current;\n if (dropdownElement && !dropdownElement.contains(e.target as Node)) {\n onClose();\n }\n });\n\n React.useEffect(() => {\n setTimeout(() => {\n bodyClickListener.add(document.body);\n });\n }, []);\n\n const onClick = React.useCallback((e) => e.stopPropagation(), []);\n\n return (\n <FocusTrap\n onClose={onClose}\n {...restProps}\n getRootRef={elementRef}\n onClick={onClick}\n style={dropdownStyles}\n vkuiClass={classNames(getClassName('ActionSheet', platform), 'ActionSheet--desktop', {\n 'ActionSheet--closing': closing,\n }, `ActionSheet--sizeY-${sizeY}`)}\n >\n {children}\n </FocusTrap>\n );\n};\n"],"file":"ActionSheetDropdownDesktop.js"}
1
+ {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetDropdownDesktop.tsx"],"names":["warn","getEl","ref","current","ActionSheetDropdownDesktop","children","toggleRef","closing","popupDirection","onClose","restProps","window","document","platform","sizeY","elementRef","React","useRef","useState","left","top","opacity","pointerEvents","dropdownStyles","setDropdownStyles","toggleEl","process","env","NODE_ENV","toggleRect","getBoundingClientRect","elementRect","isTop","width","pageXOffset","pageYOffset","height","bodyClickListener","e","dropdownElement","contains","target","useEffect","setTimeout","add","body","onClick","useCallback","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { useDOM } from '../../lib/dom';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { SharedDropdownProps } from './types';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport './ActionSheet.css';\n\nconst warn = warnOnce('ActionSheet');\nfunction getEl(ref: SharedDropdownProps['toggleRef']): Element | null | undefined {\n return ref && 'current' in ref ? ref.current : ref as Element | null | undefined;\n}\n\nexport const ActionSheetDropdownDesktop: React.FC<SharedDropdownProps> = ({\n children,\n toggleRef,\n closing,\n popupDirection,\n onClose,\n ...restProps\n}) => {\n const { window, document } = useDOM();\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const elementRef = React.useRef<HTMLDivElement>();\n\n const [dropdownStyles, setDropdownStyles] = React.useState<React.CSSProperties>({\n left: 0,\n top: 0,\n opacity: 0,\n pointerEvents: 'none',\n });\n useIsomorphicLayoutEffect(() => {\n const toggleEl = getEl(toggleRef);\n if (!toggleEl) {\n if (process.env.NODE_ENV === 'development') {\n warn('toggleRef not passed');\n }\n return;\n }\n\n const toggleRect = toggleEl.getBoundingClientRect();\n const elementRect = elementRef.current.getBoundingClientRect();\n const isTop = popupDirection === 'top' || typeof popupDirection === 'function' && popupDirection(elementRef) === 'top';\n\n setDropdownStyles({\n left: toggleRect.left + toggleRect.width - elementRect.width + window.pageXOffset,\n top: toggleRect.top + window.pageYOffset + (isTop ? -elementRect.height : toggleRect.height),\n });\n }, [toggleRef]);\n\n const bodyClickListener = useEventListener('click', (e: MouseEvent) => {\n const dropdownElement = elementRef?.current;\n if (dropdownElement && !dropdownElement.contains(e.target as Node)) {\n onClose();\n }\n });\n\n React.useEffect(() => {\n setTimeout(() => {\n bodyClickListener.add(document.body);\n });\n }, []);\n\n const onClick = React.useCallback((e) => e.stopPropagation(), []);\n\n return (\n <FocusTrap\n onClose={onClose}\n {...restProps}\n getRootRef={elementRef}\n onClick={onClick}\n style={dropdownStyles}\n vkuiClass={classNames(getClassName('ActionSheet', platform), 'ActionSheet--desktop', `ActionSheet--sizeY-${sizeY}`)}\n >\n {children}\n </FocusTrap>\n );\n};\n"],"file":"ActionSheetDropdownDesktop.js"}
@@ -9,6 +9,13 @@ export interface ActionSheetItemProps extends React.HTMLAttributes<HTMLElement>,
9
9
  autoclose?: boolean;
10
10
  selectable?: boolean;
11
11
  disabled?: boolean;
12
+ /**
13
+ * Если autoclose === true, onClick будет вызван после завершения анимации скрытия и после вызова onClose.
14
+ * Из этого следует, что в объекте события значения полей типа `currentTarget` будут не определены.
15
+ * Если вам нужен объект события именно на момент клика, используйте `onImmediateClick`.
16
+ */
17
+ onClick?: React.MouseEventHandler<HTMLElement>;
18
+ onImmediateClick?: React.MouseEventHandler<HTMLElement>;
12
19
  }
13
20
  declare const _default: React.FC<ActionSheetItemProps>;
14
21
  export default _default;
@@ -43,7 +43,7 @@ var _Caption = _interopRequireDefault(require("../Typography/Caption/Caption"));
43
43
 
44
44
  var _withAdaptivity = require("../../hoc/withAdaptivity");
45
45
 
46
- var _excluded = ["children", "autoclose", "mode", "meta", "subtitle", "before", "selectable", "value", "name", "checked", "defaultChecked", "onChange", "onClick", "sizeY"];
46
+ var _excluded = ["children", "autoclose", "mode", "meta", "subtitle", "before", "selectable", "value", "name", "checked", "defaultChecked", "onChange", "onClick", "sizeY", "onImmediateClick"];
47
47
 
48
48
  var ActionSheetItem = function ActionSheetItem(_ref) {
49
49
  var children = _ref.children,
@@ -60,6 +60,7 @@ var ActionSheetItem = function ActionSheetItem(_ref) {
60
60
  onChange = _ref.onChange,
61
61
  onClick = _ref.onClick,
62
62
  sizeY = _ref.sizeY,
63
+ onImmediateClick = _ref.onImmediateClick,
63
64
  restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
64
65
  var platform = (0, _usePlatform.usePlatform)();
65
66
 
@@ -78,7 +79,7 @@ var ActionSheetItem = function ActionSheetItem(_ref) {
78
79
 
79
80
  var isCompact = (0, _utils.hasReactNode)(subtitle) || (0, _utils.hasReactNode)(meta) || selectable;
80
81
  return (0, _jsxRuntime.createScopedElement)(_Tappable.default, (0, _extends2.default)({}, restProps, {
81
- onClick: selectable ? onClick : onItemClick(onClick, autoclose),
82
+ onClick: selectable ? onClick : onItemClick(onClick, onImmediateClick, autoclose),
82
83
  activeMode: "ActionSheetItem--active",
83
84
  vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)('ActionSheetItem', platform), "ActionSheetItem--".concat(mode), "ActionSheetItem--sizeY-".concat(sizeY), {
84
85
  'ActionSheetItem--compact': isCompact,
@@ -121,7 +122,7 @@ var ActionSheetItem = function ActionSheetItem(_ref) {
121
122
  name: name,
122
123
  value: value,
123
124
  onChange: onChange,
124
- onClick: onItemClick(_utils.noop, autoclose),
125
+ onClick: onItemClick(_utils.noop, _utils.noop, autoclose),
125
126
  defaultChecked: defaultChecked,
126
127
  checked: checked,
127
128
  disabled: restProps.disabled
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"names":["ActionSheetItem","children","autoclose","mode","meta","subtitle","before","selectable","value","name","checked","defaultChecked","onChange","onClick","sizeY","restProps","platform","React","useContext","ActionSheetContext","onItemClick","noop","isDesktop","Component","href","isCompact","SizeType","COMPACT","ANDROID","disabled","VKCOM","defaultProps"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { getClassName } from '../../helpers/getClassName';\nimport Tappable from '../Tappable/Tappable';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasReactNode, noop } from '../../lib/utils';\nimport Subhead from '../Typography/Subhead/Subhead';\nimport Title from '../Typography/Title/Title';\nimport Text from '../Typography/Text/Text';\nimport { ANDROID, VKCOM } from '../../lib/platform';\nimport { Icon16Done, Icon24Done } from '@vkontakte/icons';\nimport { ActionSheetContext } from '../ActionSheet/ActionSheetContext';\nimport Caption from '../Typography/Caption/Caption';\nimport { withAdaptivity, AdaptivityProps, SizeType } from '../../hoc/withAdaptivity';\nimport './ActionSheetItem.css';\n\nexport interface ActionSheetItemProps extends\n React.HTMLAttributes<HTMLElement>,\n React.AnchorHTMLAttributes<HTMLElement>,\n Pick<React.InputHTMLAttributes<HTMLInputElement>, 'name' | 'checked' | 'value'>,\n AdaptivityProps {\n mode?: 'default' | 'destructive' | 'cancel';\n before?: React.ReactNode;\n meta?: React.ReactNode;\n subtitle?: React.ReactNode;\n autoclose?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n}\n\nconst ActionSheetItem: React.FC<ActionSheetItemProps> = ({\n children,\n autoclose,\n mode,\n meta,\n subtitle,\n before,\n selectable,\n value,\n name,\n checked,\n defaultChecked,\n onChange,\n onClick,\n sizeY,\n ...restProps\n}: ActionSheetItemProps) => {\n const platform = usePlatform();\n const { onItemClick = () => noop, isDesktop } = React.useContext(ActionSheetContext);\n\n let Component: React.ElementType = restProps.href ? 'a' : 'div';\n\n if (selectable) {\n Component = 'label';\n }\n\n const isCompact = hasReactNode(subtitle) || hasReactNode(meta) || selectable;\n\n return (\n <Tappable\n {...restProps}\n onClick={selectable ? onClick : onItemClick(onClick, autoclose)}\n activeMode=\"ActionSheetItem--active\"\n vkuiClass={\n classNames(\n getClassName('ActionSheetItem', platform),\n `ActionSheetItem--${mode}`,\n `ActionSheetItem--sizeY-${sizeY}`,\n {\n 'ActionSheetItem--compact': isCompact,\n 'ActionSheetItem--desktop': isDesktop,\n 'ActionSheetItem--withSubtitle': hasReactNode(subtitle),\n },\n )\n }\n Component={Component}\n >\n {hasReactNode(before) && <div vkuiClass=\"ActionSheetItem__before\">{before}</div>}\n <div vkuiClass=\"ActionSheetItem__container\">\n <div vkuiClass=\"ActionSheetItem__content\">\n {sizeY === SizeType.COMPACT ?\n <React.Fragment>\n <Text\n weight={mode === 'cancel' ? 'medium' : 'regular'}\n vkuiClass=\"ActionSheetItem__children\"\n >\n {children}\n </Text>\n {hasReactNode(meta) &&\n <Text\n weight=\"regular\"\n vkuiClass=\"ActionSheetItem__meta\"\n >\n {meta}\n </Text>\n }\n </React.Fragment>\n :\n <React.Fragment>\n <Title\n weight={mode === 'cancel' ? 'medium' : 'regular'}\n level={isCompact || hasReactNode(before) || platform === ANDROID ? '3' : '2'}\n vkuiClass=\"ActionSheetItem__children\"\n >\n {children}\n </Title>\n {hasReactNode(meta) &&\n <Title\n weight=\"regular\"\n level={isCompact || hasReactNode(before) || platform === ANDROID ? '3' : '2'}\n vkuiClass=\"ActionSheetItem__meta\"\n >\n {meta}\n </Title>\n }\n </React.Fragment>\n }\n </div>\n {hasReactNode(subtitle) && (sizeY === SizeType.COMPACT ?\n <Caption weight=\"regular\" vkuiClass=\"ActionSheetItem__subtitle\" level=\"1\">{subtitle}</Caption>\n :\n <Subhead weight=\"regular\" vkuiClass=\"ActionSheetItem__subtitle\">{subtitle}</Subhead>\n )}\n </div>\n {selectable &&\n <div vkuiClass=\"ActionSheetItem__after\">\n <input\n type=\"radio\"\n vkuiClass=\"ActionSheetItem__radio\"\n name={name}\n value={value}\n onChange={onChange}\n onClick={onItemClick(noop, autoclose)}\n defaultChecked={defaultChecked}\n checked={checked}\n disabled={restProps.disabled}\n />\n <div vkuiClass=\"ActionSheetItem__marker\">\n {platform === VKCOM ? <Icon24Done /> : <Icon16Done />}\n </div>\n </div>\n }\n </Tappable>\n );\n};\n\nActionSheetItem.defaultProps = {\n mode: 'default',\n};\n\nexport default withAdaptivity(ActionSheetItem, { sizeY: true });\n"],"file":"ActionSheetItem.js"}
1
+ {"version":3,"sources":["../../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"names":["ActionSheetItem","children","autoclose","mode","meta","subtitle","before","selectable","value","name","checked","defaultChecked","onChange","onClick","sizeY","onImmediateClick","restProps","platform","React","useContext","ActionSheetContext","onItemClick","noop","isDesktop","Component","href","isCompact","SizeType","COMPACT","ANDROID","disabled","VKCOM","defaultProps"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { getClassName } from '../../helpers/getClassName';\nimport Tappable from '../Tappable/Tappable';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasReactNode, noop } from '../../lib/utils';\nimport Subhead from '../Typography/Subhead/Subhead';\nimport Title from '../Typography/Title/Title';\nimport Text from '../Typography/Text/Text';\nimport { ANDROID, VKCOM } from '../../lib/platform';\nimport { Icon16Done, Icon24Done } from '@vkontakte/icons';\nimport { ActionSheetContext } from '../ActionSheet/ActionSheetContext';\nimport Caption from '../Typography/Caption/Caption';\nimport { withAdaptivity, AdaptivityProps, SizeType } from '../../hoc/withAdaptivity';\nimport './ActionSheetItem.css';\n\nexport interface ActionSheetItemProps extends\n React.HTMLAttributes<HTMLElement>,\n React.AnchorHTMLAttributes<HTMLElement>,\n Pick<React.InputHTMLAttributes<HTMLInputElement>, 'name' | 'checked' | 'value'>,\n AdaptivityProps {\n mode?: 'default' | 'destructive' | 'cancel';\n before?: React.ReactNode;\n meta?: React.ReactNode;\n subtitle?: React.ReactNode;\n autoclose?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n /**\n * Если autoclose === true, onClick будет вызван после завершения анимации скрытия и после вызова onClose.\n * Из этого следует, что в объекте события значения полей типа `currentTarget` будут не определены.\n * Если вам нужен объект события именно на момент клика, используйте `onImmediateClick`.\n */\n onClick?: React.MouseEventHandler<HTMLElement>;\n onImmediateClick?: React.MouseEventHandler<HTMLElement>;\n}\n\nconst ActionSheetItem: React.FC<ActionSheetItemProps> = ({\n children,\n autoclose,\n mode,\n meta,\n subtitle,\n before,\n selectable,\n value,\n name,\n checked,\n defaultChecked,\n onChange,\n onClick,\n sizeY,\n onImmediateClick,\n ...restProps\n}: ActionSheetItemProps) => {\n const platform = usePlatform();\n const { onItemClick = () => noop, isDesktop } = React.useContext(ActionSheetContext);\n\n let Component: React.ElementType = restProps.href ? 'a' : 'div';\n\n if (selectable) {\n Component = 'label';\n }\n\n const isCompact = hasReactNode(subtitle) || hasReactNode(meta) || selectable;\n\n return (\n <Tappable\n {...restProps}\n onClick={selectable ? onClick : onItemClick(onClick, onImmediateClick, autoclose)}\n activeMode=\"ActionSheetItem--active\"\n vkuiClass={\n classNames(\n getClassName('ActionSheetItem', platform),\n `ActionSheetItem--${mode}`,\n `ActionSheetItem--sizeY-${sizeY}`,\n {\n 'ActionSheetItem--compact': isCompact,\n 'ActionSheetItem--desktop': isDesktop,\n 'ActionSheetItem--withSubtitle': hasReactNode(subtitle),\n },\n )\n }\n Component={Component}\n >\n {hasReactNode(before) && <div vkuiClass=\"ActionSheetItem__before\">{before}</div>}\n <div vkuiClass=\"ActionSheetItem__container\">\n <div vkuiClass=\"ActionSheetItem__content\">\n {sizeY === SizeType.COMPACT ?\n <React.Fragment>\n <Text\n weight={mode === 'cancel' ? 'medium' : 'regular'}\n vkuiClass=\"ActionSheetItem__children\"\n >\n {children}\n </Text>\n {hasReactNode(meta) &&\n <Text\n weight=\"regular\"\n vkuiClass=\"ActionSheetItem__meta\"\n >\n {meta}\n </Text>\n }\n </React.Fragment>\n :\n <React.Fragment>\n <Title\n weight={mode === 'cancel' ? 'medium' : 'regular'}\n level={isCompact || hasReactNode(before) || platform === ANDROID ? '3' : '2'}\n vkuiClass=\"ActionSheetItem__children\"\n >\n {children}\n </Title>\n {hasReactNode(meta) &&\n <Title\n weight=\"regular\"\n level={isCompact || hasReactNode(before) || platform === ANDROID ? '3' : '2'}\n vkuiClass=\"ActionSheetItem__meta\"\n >\n {meta}\n </Title>\n }\n </React.Fragment>\n }\n </div>\n {hasReactNode(subtitle) && (sizeY === SizeType.COMPACT ?\n <Caption weight=\"regular\" vkuiClass=\"ActionSheetItem__subtitle\" level=\"1\">{subtitle}</Caption>\n :\n <Subhead weight=\"regular\" vkuiClass=\"ActionSheetItem__subtitle\">{subtitle}</Subhead>\n )}\n </div>\n {selectable &&\n <div vkuiClass=\"ActionSheetItem__after\">\n <input\n type=\"radio\"\n vkuiClass=\"ActionSheetItem__radio\"\n name={name}\n value={value}\n onChange={onChange}\n onClick={onItemClick(noop, noop, autoclose)}\n defaultChecked={defaultChecked}\n checked={checked}\n disabled={restProps.disabled}\n />\n <div vkuiClass=\"ActionSheetItem__marker\">\n {platform === VKCOM ? <Icon24Done /> : <Icon16Done />}\n </div>\n </div>\n }\n </Tappable>\n );\n};\n\nActionSheetItem.defaultProps = {\n mode: 'default',\n};\n\nexport default withAdaptivity(ActionSheetItem, { sizeY: true });\n"],"file":"ActionSheetItem.js"}
@@ -32,10 +32,15 @@ export interface AdaptivityProps extends SizeProps {
32
32
  * @ignore
33
33
  */
34
34
  hasMouse?: boolean;
35
+ /**
36
+ * @ignore
37
+ */
38
+ deviceHasHover?: boolean;
35
39
  }
36
40
  export interface AdaptivityContextInterface extends SizeProps {
37
41
  viewWidth?: ViewWidth;
38
42
  viewHeight?: ViewHeight;
39
43
  hasMouse?: boolean;
44
+ deviceHasHover?: boolean;
40
45
  }
41
46
  export declare const AdaptivityContext: React.Context<AdaptivityContextInterface>;
@@ -9,6 +9,8 @@ exports.AdaptivityContext = exports.ViewHeight = exports.ViewWidth = exports.Siz
9
9
 
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
 
12
+ var _vkjs = require("@vkontakte/vkjs");
13
+
12
14
  var SizeType;
13
15
  exports.SizeType = SizeType;
14
16
 
@@ -39,7 +41,9 @@ exports.ViewHeight = ViewHeight;
39
41
 
40
42
  var AdaptivityContext = /*#__PURE__*/React.createContext({
41
43
  sizeX: SizeType.COMPACT,
42
- sizeY: SizeType.REGULAR
44
+ sizeY: SizeType.REGULAR,
45
+ hasMouse: _vkjs.hasMouse,
46
+ deviceHasHover: _vkjs.hasHover
43
47
  });
44
48
  exports.AdaptivityContext = AdaptivityContext;
45
49
  //# sourceMappingURL=AdaptivityContext.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/AdaptivityProvider/AdaptivityContext.tsx"],"names":["SizeType","ViewWidth","ViewHeight","AdaptivityContext","React","createContext","sizeX","COMPACT","sizeY","REGULAR"],"mappings":";;;;;;;;;AAAA;;IAEYA,Q;;;WAAAA,Q;AAAAA,EAAAA,Q;AAAAA,EAAAA,Q;GAAAA,Q,wBAAAA,Q;;IAKAC,S;;;WAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;GAAAA,S,yBAAAA,S;;IAQAC,U;;;WAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,0BAAAA,U;;AAgCL,IAAMC,iBAAiB,gBAAGC,KAAK,CAACC,aAAN,CAAgD;AAC/EC,EAAAA,KAAK,EAAEN,QAAQ,CAACO,OAD+D;AAE/EC,EAAAA,KAAK,EAAER,QAAQ,CAACS;AAF+D,CAAhD,CAA1B","sourcesContent":["import * as React from 'react';\n\nexport enum SizeType {\n COMPACT = 'compact',\n REGULAR = 'regular',\n}\n\nexport enum ViewWidth {\n SMALL_MOBILE = 1,\n MOBILE,\n SMALL_TABLET,\n TABLET,\n DESKTOP,\n}\n\nexport enum ViewHeight {\n EXTRA_SMALL = 1,\n SMALL,\n MEDIUM\n}\n\nexport interface SizeProps {\n sizeX?: SizeType;\n sizeY?: SizeType;\n}\n\nexport interface AdaptivityProps extends SizeProps {\n /**\n * @ignore\n */\n viewWidth?: ViewWidth;\n /**\n * @ignore\n */\n viewHeight?: ViewHeight;\n /**\n * @ignore\n */\n hasMouse?: boolean;\n}\n\nexport interface AdaptivityContextInterface extends SizeProps {\n viewWidth?: ViewWidth;\n viewHeight?: ViewHeight;\n hasMouse?: boolean;\n}\n\nexport const AdaptivityContext = React.createContext<AdaptivityContextInterface>({\n sizeX: SizeType.COMPACT,\n sizeY: SizeType.REGULAR,\n});\n"],"file":"AdaptivityContext.js"}
1
+ {"version":3,"sources":["../../../../src/components/AdaptivityProvider/AdaptivityContext.tsx"],"names":["SizeType","ViewWidth","ViewHeight","AdaptivityContext","React","createContext","sizeX","COMPACT","sizeY","REGULAR","hasMouse","deviceHasHover","hasHover"],"mappings":";;;;;;;;;AAAA;;AACA;;IAEYA,Q;;;WAAAA,Q;AAAAA,EAAAA,Q;AAAAA,EAAAA,Q;GAAAA,Q,wBAAAA,Q;;IAKAC,S;;;WAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;GAAAA,S,yBAAAA,S;;IAQAC,U;;;WAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,0BAAAA,U;;AAqCL,IAAMC,iBAAiB,gBAAGC,KAAK,CAACC,aAAN,CAAgD;AAC/EC,EAAAA,KAAK,EAAEN,QAAQ,CAACO,OAD+D;AAE/EC,EAAAA,KAAK,EAAER,QAAQ,CAACS,OAF+D;AAG/EC,EAAAA,QAAQ,EAARA,cAH+E;AAI/EC,EAAAA,cAAc,EAAEC;AAJ+D,CAAhD,CAA1B","sourcesContent":["import * as React from 'react';\nimport { hasHover, hasMouse } from '@vkontakte/vkjs';\n\nexport enum SizeType {\n COMPACT = 'compact',\n REGULAR = 'regular',\n}\n\nexport enum ViewWidth {\n SMALL_MOBILE = 1,\n MOBILE,\n SMALL_TABLET,\n TABLET,\n DESKTOP,\n}\n\nexport enum ViewHeight {\n EXTRA_SMALL = 1,\n SMALL,\n MEDIUM\n}\n\nexport interface SizeProps {\n sizeX?: SizeType;\n sizeY?: SizeType;\n}\n\nexport interface AdaptivityProps extends SizeProps {\n /**\n * @ignore\n */\n viewWidth?: ViewWidth;\n /**\n * @ignore\n */\n viewHeight?: ViewHeight;\n /**\n * @ignore\n */\n hasMouse?: boolean;\n /**\n * @ignore\n */\n deviceHasHover?: boolean;\n}\n\nexport interface AdaptivityContextInterface extends SizeProps {\n viewWidth?: ViewWidth;\n viewHeight?: ViewHeight;\n hasMouse?: boolean;\n deviceHasHover?: boolean;\n}\n\nexport const AdaptivityContext = React.createContext<AdaptivityContextInterface>({\n sizeX: SizeType.COMPACT,\n sizeY: SizeType.REGULAR,\n hasMouse,\n deviceHasHover: hasHover,\n});\n"],"file":"AdaptivityContext.js"}