@vkontakte/vkui 4.20.0 → 4.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (520) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +414 -116
  4. package/.cache/ts/src/components/Avatar/Avatar.d.ts +2 -0
  5. package/.cache/ts/src/components/Cell/Cell.d.ts +11 -0
  6. package/.cache/ts/src/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
  7. package/.cache/ts/src/components/Cell/CellDragger/CellDragger.d.ts +6 -0
  8. package/.cache/ts/src/components/Cell/useDraggable.d.ts +13 -0
  9. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +0 -1
  10. package/.cache/ts/src/components/DropdownIcon/DropdownIcon.d.ts +3 -0
  11. package/.cache/ts/src/components/FocusTrap/FocusTrap.d.ts +2 -3
  12. package/.cache/ts/src/components/FormField/FormField.d.ts +2 -3
  13. package/.cache/ts/src/components/FormItem/FormItem.d.ts +2 -3
  14. package/.cache/ts/src/components/FormLayout/FormLayout.d.ts +2 -4
  15. package/.cache/ts/src/components/GridAvatar/GridAvatar.d.ts +9 -0
  16. package/.cache/ts/src/components/HorizontalCell/HorizontalCell.d.ts +2 -3
  17. package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
  18. package/.cache/ts/src/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
  19. package/.cache/ts/src/components/Link/Link.d.ts +1 -2
  20. package/.cache/ts/src/components/ModalRoot/types.d.ts +0 -1
  21. package/.cache/ts/src/components/ModalRoot/useModalManager.d.ts +37 -0
  22. package/.cache/ts/src/components/Removable/Removable.d.ts +2 -1
  23. package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +2 -2
  24. package/.cache/ts/src/components/SplitCol/SplitCol.d.ts +3 -3
  25. package/.cache/ts/src/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
  26. package/.cache/ts/src/components/Switch/Switch.d.ts +2 -3
  27. package/.cache/ts/src/components/TabbarItem/TabbarItem.d.ts +3 -1
  28. package/.cache/ts/src/components/Tappable/Tappable.d.ts +2 -3
  29. package/.cache/ts/src/components/Touch/Touch.d.ts +16 -17
  30. package/.cache/ts/src/components/Typography/Caption/Caption.d.ts +2 -2
  31. package/.cache/ts/src/components/Typography/Headline/Headline.d.ts +2 -2
  32. package/.cache/ts/src/components/Typography/Subhead/Subhead.d.ts +2 -2
  33. package/.cache/ts/src/components/Typography/Text/Text.d.ts +2 -3
  34. package/.cache/ts/src/components/Typography/Title/Title.d.ts +2 -2
  35. package/.cache/ts/src/components/View/utils.d.ts +2 -0
  36. package/.cache/ts/src/index.d.ts +4 -0
  37. package/.cache/ts/src/lib/accessibility.d.ts +1 -1
  38. package/.cache/ts/src/lib/supportEvents.d.ts +3 -1
  39. package/.cache/ts/src/types.d.ts +3 -0
  40. package/dist/cjs/components/ActionSheet/ActionSheet.js +7 -9
  41. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  42. package/dist/cjs/components/Avatar/Avatar.d.ts +2 -0
  43. package/dist/cjs/components/Avatar/Avatar.js +7 -3
  44. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  45. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  46. package/dist/cjs/components/Button/Button.js.map +1 -1
  47. package/dist/cjs/components/CardScroll/CardScroll.js +1 -1
  48. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  49. package/dist/cjs/components/Cell/Cell.d.ts +11 -0
  50. package/dist/cjs/components/Cell/Cell.js +109 -182
  51. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  52. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
  53. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +50 -0
  54. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
  55. package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts +6 -0
  56. package/dist/cjs/components/Cell/CellDragger/CellDragger.js +53 -0
  57. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -0
  58. package/dist/cjs/components/Cell/useDraggable.d.ts +13 -0
  59. package/dist/cjs/components/Cell/useDraggable.js +142 -0
  60. package/dist/cjs/components/Cell/useDraggable.js.map +1 -0
  61. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +2 -2
  62. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  63. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  64. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +0 -1
  65. package/dist/cjs/components/CustomSelect/CustomSelect.js +2 -3
  66. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  67. package/dist/cjs/components/DropdownIcon/DropdownIcon.d.ts +3 -0
  68. package/dist/cjs/components/DropdownIcon/DropdownIcon.js +37 -0
  69. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -0
  70. package/dist/cjs/components/FocusTrap/FocusTrap.d.ts +2 -3
  71. package/dist/cjs/components/FocusTrap/FocusTrap.js +3 -5
  72. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  73. package/dist/cjs/components/FormField/FormField.d.ts +2 -3
  74. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  75. package/dist/cjs/components/FormItem/FormItem.d.ts +2 -3
  76. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  77. package/dist/cjs/components/FormLayout/FormLayout.d.ts +2 -4
  78. package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
  79. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
  80. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  81. package/dist/cjs/components/GridAvatar/GridAvatar.d.ts +9 -0
  82. package/dist/cjs/components/GridAvatar/GridAvatar.js +61 -0
  83. package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -0
  84. package/dist/cjs/components/Header/Header.js.map +1 -1
  85. package/dist/cjs/components/HorizontalCell/HorizontalCell.d.ts +2 -3
  86. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  87. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
  88. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +10 -13
  89. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  90. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
  91. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js +64 -0
  92. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
  93. package/dist/cjs/components/Link/Link.d.ts +1 -2
  94. package/dist/cjs/components/Link/Link.js.map +1 -1
  95. package/dist/cjs/components/ModalRoot/ModalRoot.js +170 -373
  96. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  97. package/dist/cjs/components/ModalRoot/ModalRootContext.js +0 -3
  98. package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
  99. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +59 -241
  100. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  101. package/dist/cjs/components/ModalRoot/types.d.ts +0 -1
  102. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  103. package/dist/cjs/components/ModalRoot/useModalManager.d.ts +37 -0
  104. package/dist/cjs/components/ModalRoot/useModalManager.js +213 -0
  105. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -0
  106. package/dist/cjs/components/NativeSelect/NativeSelect.js +2 -2
  107. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  108. package/dist/cjs/components/Removable/Removable.d.ts +2 -1
  109. package/dist/cjs/components/Removable/Removable.js +75 -66
  110. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  111. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +2 -2
  112. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  113. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +2 -2
  114. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  115. package/dist/cjs/components/SplitCol/SplitCol.d.ts +3 -3
  116. package/dist/cjs/components/SplitCol/SplitCol.js +2 -4
  117. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  118. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
  119. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +38 -11
  120. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  121. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  122. package/dist/cjs/components/Switch/Switch.d.ts +2 -3
  123. package/dist/cjs/components/Switch/Switch.js +18 -8
  124. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  125. package/dist/cjs/components/Tabbar/Tabbar.js +3 -1
  126. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  127. package/dist/cjs/components/TabbarItem/TabbarItem.d.ts +3 -1
  128. package/dist/cjs/components/TabbarItem/TabbarItem.js +29 -11
  129. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  130. package/dist/cjs/components/Tappable/Tappable.d.ts +2 -3
  131. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  132. package/dist/cjs/components/Textarea/Textarea.js +9 -7
  133. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  134. package/dist/cjs/components/Touch/Touch.d.ts +16 -17
  135. package/dist/cjs/components/Touch/Touch.js +21 -7
  136. package/dist/cjs/components/Touch/Touch.js.map +1 -1
  137. package/dist/cjs/components/Typography/Caption/Caption.d.ts +2 -2
  138. package/dist/cjs/components/Typography/Caption/Caption.js +4 -2
  139. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  140. package/dist/cjs/components/Typography/Headline/Headline.d.ts +2 -2
  141. package/dist/cjs/components/Typography/Headline/Headline.js +2 -1
  142. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  143. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +2 -2
  144. package/dist/cjs/components/Typography/Subhead/Subhead.js +2 -1
  145. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  146. package/dist/cjs/components/Typography/Text/Text.d.ts +2 -3
  147. package/dist/cjs/components/Typography/Text/Text.js +2 -1
  148. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  149. package/dist/cjs/components/Typography/Title/Title.d.ts +2 -2
  150. package/dist/cjs/components/Typography/Title/Title.js +9 -4
  151. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  152. package/dist/cjs/components/View/View.js +68 -75
  153. package/dist/cjs/components/View/View.js.map +1 -1
  154. package/dist/cjs/components/View/ViewInfinite.js +78 -85
  155. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  156. package/dist/cjs/components/View/utils.d.ts +2 -0
  157. package/dist/cjs/components/View/utils.js +13 -0
  158. package/dist/cjs/components/View/utils.js.map +1 -0
  159. package/dist/cjs/index.d.ts +4 -0
  160. package/dist/cjs/index.js +16 -0
  161. package/dist/cjs/index.js.map +1 -1
  162. package/dist/cjs/lib/accessibility.d.ts +1 -1
  163. package/dist/cjs/lib/accessibility.js.map +1 -1
  164. package/dist/cjs/lib/prefixClass.js +7 -6
  165. package/dist/cjs/lib/prefixClass.js.map +1 -1
  166. package/dist/cjs/lib/supportEvents.d.ts +3 -1
  167. package/dist/cjs/lib/supportEvents.js +1 -4
  168. package/dist/cjs/lib/supportEvents.js.map +1 -1
  169. package/dist/cjs/types.d.ts +3 -0
  170. package/dist/components/ActionSheet/ActionSheet.js +6 -9
  171. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  172. package/dist/components/Avatar/Avatar.d.ts +2 -0
  173. package/dist/components/Avatar/Avatar.js +4 -2
  174. package/dist/components/Avatar/Avatar.js.map +1 -1
  175. package/dist/components/Banner/Banner.js.map +1 -1
  176. package/dist/components/Button/Button.js.map +1 -1
  177. package/dist/components/CardScroll/CardScroll.js +1 -1
  178. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  179. package/dist/components/Cell/Cell.d.ts +11 -0
  180. package/dist/components/Cell/Cell.js +103 -177
  181. package/dist/components/Cell/Cell.js.map +1 -1
  182. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
  183. package/dist/components/Cell/CellCheckbox/CellCheckbox.js +31 -0
  184. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
  185. package/dist/components/Cell/CellDragger/CellDragger.d.ts +6 -0
  186. package/dist/components/Cell/CellDragger/CellDragger.js +30 -0
  187. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -0
  188. package/dist/components/Cell/useDraggable.d.ts +13 -0
  189. package/dist/components/Cell/useDraggable.js +126 -0
  190. package/dist/components/Cell/useDraggable.js.map +1 -0
  191. package/dist/components/ChipsSelect/ChipsSelect.js +2 -2
  192. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  193. package/dist/components/Counter/Counter.js.map +1 -1
  194. package/dist/components/CustomSelect/CustomSelect.d.ts +0 -1
  195. package/dist/components/CustomSelect/CustomSelect.js +3 -5
  196. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  197. package/dist/components/DropdownIcon/DropdownIcon.d.ts +3 -0
  198. package/dist/components/DropdownIcon/DropdownIcon.js +19 -0
  199. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -0
  200. package/dist/components/FocusTrap/FocusTrap.d.ts +2 -3
  201. package/dist/components/FocusTrap/FocusTrap.js +3 -5
  202. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  203. package/dist/components/FormField/FormField.d.ts +2 -3
  204. package/dist/components/FormField/FormField.js.map +1 -1
  205. package/dist/components/FormItem/FormItem.d.ts +2 -3
  206. package/dist/components/FormItem/FormItem.js.map +1 -1
  207. package/dist/components/FormLayout/FormLayout.d.ts +2 -4
  208. package/dist/components/FormLayout/FormLayout.js.map +1 -1
  209. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
  210. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  211. package/dist/components/GridAvatar/GridAvatar.d.ts +9 -0
  212. package/dist/components/GridAvatar/GridAvatar.js +41 -0
  213. package/dist/components/GridAvatar/GridAvatar.js.map +1 -0
  214. package/dist/components/Header/Header.js.map +1 -1
  215. package/dist/components/HorizontalCell/HorizontalCell.d.ts +2 -3
  216. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  217. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
  218. package/dist/components/HorizontalScroll/HorizontalScroll.js +10 -12
  219. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  220. package/dist/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
  221. package/dist/components/InitialsAvatar/InitialsAvatar.js +46 -0
  222. package/dist/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
  223. package/dist/components/Link/Link.d.ts +1 -2
  224. package/dist/components/Link/Link.js.map +1 -1
  225. package/dist/components/ModalRoot/ModalRoot.js +167 -376
  226. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  227. package/dist/components/ModalRoot/ModalRootContext.js +0 -3
  228. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  229. package/dist/components/ModalRoot/ModalRootDesktop.js +58 -244
  230. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  231. package/dist/components/ModalRoot/types.d.ts +0 -1
  232. package/dist/components/ModalRoot/types.js.map +1 -1
  233. package/dist/components/ModalRoot/useModalManager.d.ts +37 -0
  234. package/dist/components/ModalRoot/useModalManager.js +189 -0
  235. package/dist/components/ModalRoot/useModalManager.js.map +1 -0
  236. package/dist/components/NativeSelect/NativeSelect.js +2 -2
  237. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  238. package/dist/components/Removable/Removable.d.ts +2 -1
  239. package/dist/components/Removable/Removable.js +73 -64
  240. package/dist/components/Removable/Removable.js.map +1 -1
  241. package/dist/components/SelectMimicry/SelectMimicry.js +2 -2
  242. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  243. package/dist/components/SimpleCell/SimpleCell.d.ts +2 -2
  244. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  245. package/dist/components/SplitCol/SplitCol.d.ts +3 -3
  246. package/dist/components/SplitCol/SplitCol.js +2 -4
  247. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  248. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
  249. package/dist/components/SubnavigationBar/SubnavigationBar.js +38 -11
  250. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  251. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  252. package/dist/components/Switch/Switch.d.ts +2 -3
  253. package/dist/components/Switch/Switch.js +15 -8
  254. package/dist/components/Switch/Switch.js.map +1 -1
  255. package/dist/components/Tabbar/Tabbar.js +3 -1
  256. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  257. package/dist/components/TabbarItem/TabbarItem.d.ts +3 -1
  258. package/dist/components/TabbarItem/TabbarItem.js +26 -10
  259. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  260. package/dist/components/Tappable/Tappable.d.ts +2 -3
  261. package/dist/components/Tappable/Tappable.js.map +1 -1
  262. package/dist/components/Textarea/Textarea.js +9 -6
  263. package/dist/components/Textarea/Textarea.js.map +1 -1
  264. package/dist/components/Touch/Touch.d.ts +16 -17
  265. package/dist/components/Touch/Touch.js +21 -7
  266. package/dist/components/Touch/Touch.js.map +1 -1
  267. package/dist/components/Typography/Caption/Caption.d.ts +2 -2
  268. package/dist/components/Typography/Caption/Caption.js +4 -2
  269. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  270. package/dist/components/Typography/Headline/Headline.d.ts +2 -2
  271. package/dist/components/Typography/Headline/Headline.js +2 -1
  272. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  273. package/dist/components/Typography/Subhead/Subhead.d.ts +2 -2
  274. package/dist/components/Typography/Subhead/Subhead.js +2 -1
  275. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  276. package/dist/components/Typography/Text/Text.d.ts +2 -3
  277. package/dist/components/Typography/Text/Text.js +2 -1
  278. package/dist/components/Typography/Text/Text.js.map +1 -1
  279. package/dist/components/Typography/Title/Title.d.ts +2 -2
  280. package/dist/components/Typography/Title/Title.js +9 -4
  281. package/dist/components/Typography/Title/Title.js.map +1 -1
  282. package/dist/components/View/View.js +67 -75
  283. package/dist/components/View/View.js.map +1 -1
  284. package/dist/components/View/ViewInfinite.js +79 -87
  285. package/dist/components/View/ViewInfinite.js.map +1 -1
  286. package/dist/components/View/utils.d.ts +2 -0
  287. package/dist/components/View/utils.js +6 -0
  288. package/dist/components/View/utils.js.map +1 -0
  289. package/dist/components.css +1 -1
  290. package/dist/components.css.map +1 -1
  291. package/dist/cssm/components/ActionSheet/ActionSheet.js +6 -9
  292. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  293. package/dist/cssm/components/Avatar/Avatar.js +4 -2
  294. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  295. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  296. package/dist/cssm/components/Button/Button.css +1 -1
  297. package/dist/cssm/components/Button/Button.js.map +1 -1
  298. package/dist/cssm/components/CardScroll/CardScroll.js +1 -1
  299. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  300. package/dist/cssm/components/Cell/Cell.css +1 -1
  301. package/dist/cssm/components/Cell/Cell.js +103 -177
  302. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  303. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -0
  304. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +32 -0
  305. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
  306. package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -0
  307. package/dist/cssm/components/Cell/CellDragger/CellDragger.js +31 -0
  308. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -0
  309. package/dist/cssm/components/Cell/useDraggable.js +126 -0
  310. package/dist/cssm/components/Cell/useDraggable.js.map +1 -0
  311. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -2
  312. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  313. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  314. package/dist/cssm/components/CustomSelect/CustomSelect.js +3 -5
  315. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  316. package/dist/cssm/components/DropdownIcon/DropdownIcon.css +1 -0
  317. package/dist/cssm/components/DropdownIcon/DropdownIcon.js +20 -0
  318. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -0
  319. package/dist/cssm/components/FocusTrap/FocusTrap.js +3 -5
  320. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  321. package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
  322. package/dist/cssm/components/FormField/FormField.css +1 -1
  323. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  324. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  325. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  326. package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
  327. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  328. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
  329. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  330. package/dist/cssm/components/Gallery/Gallery.css +1 -1
  331. package/dist/cssm/components/GridAvatar/GridAvatar.css +1 -0
  332. package/dist/cssm/components/GridAvatar/GridAvatar.js +42 -0
  333. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -0
  334. package/dist/cssm/components/Header/Header.js.map +1 -1
  335. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  336. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +10 -12
  337. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  338. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +1 -1
  339. package/dist/cssm/components/IconButton/IconButton.css +1 -1
  340. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.css +1 -0
  341. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js +52 -0
  342. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
  343. package/dist/cssm/components/Link/Link.js.map +1 -1
  344. package/dist/cssm/components/ModalRoot/ModalRoot.js +167 -376
  345. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  346. package/dist/cssm/components/ModalRoot/ModalRootContext.js +0 -3
  347. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  348. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +58 -244
  349. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  350. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  351. package/dist/cssm/components/ModalRoot/useModalManager.js +189 -0
  352. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -0
  353. package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -2
  354. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  355. package/dist/cssm/components/Removable/Removable.css +1 -1
  356. package/dist/cssm/components/Removable/Removable.js +73 -64
  357. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  358. package/dist/cssm/components/Search/Search.css +1 -1
  359. package/dist/cssm/components/Select/Select.css +1 -1
  360. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +2 -2
  361. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  362. package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
  363. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  364. package/dist/cssm/components/SplitCol/SplitCol.js +2 -4
  365. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  366. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +38 -11
  367. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  368. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  369. package/dist/cssm/components/Switch/Switch.css +1 -1
  370. package/dist/cssm/components/Switch/Switch.js +15 -8
  371. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  372. package/dist/cssm/components/Tabbar/Tabbar.css +1 -1
  373. package/dist/cssm/components/Tabbar/Tabbar.js +3 -1
  374. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  375. package/dist/cssm/components/TabbarItem/TabbarItem.css +1 -1
  376. package/dist/cssm/components/TabbarItem/TabbarItem.js +26 -10
  377. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  378. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  379. package/dist/cssm/components/Textarea/Textarea.js +9 -6
  380. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  381. package/dist/cssm/components/Touch/Touch.js +21 -7
  382. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  383. package/dist/cssm/components/Typography/Caption/Caption.js +4 -2
  384. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  385. package/dist/cssm/components/Typography/Headline/Headline.js +2 -1
  386. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  387. package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -1
  388. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  389. package/dist/cssm/components/Typography/Text/Text.js +2 -1
  390. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  391. package/dist/cssm/components/Typography/Title/Title.js +9 -4
  392. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  393. package/dist/cssm/components/View/View.js +67 -75
  394. package/dist/cssm/components/View/View.js.map +1 -1
  395. package/dist/cssm/components/View/ViewInfinite.js +79 -87
  396. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  397. package/dist/cssm/components/View/utils.js +6 -0
  398. package/dist/cssm/components/View/utils.js.map +1 -0
  399. package/dist/cssm/index.js +2 -0
  400. package/dist/cssm/index.js.map +1 -1
  401. package/dist/cssm/lib/accessibility.js.map +1 -1
  402. package/dist/cssm/lib/prefixClass.js +7 -6
  403. package/dist/cssm/lib/prefixClass.js.map +1 -1
  404. package/dist/cssm/lib/supportEvents.js +1 -4
  405. package/dist/cssm/lib/supportEvents.js.map +1 -1
  406. package/dist/cssm/styles/components.css +1 -1
  407. package/dist/cssm/styles/themes.css +1 -1
  408. package/dist/cssm/styles/vkcom_light.css +1 -1
  409. package/dist/index.d.ts +4 -0
  410. package/dist/index.js +2 -0
  411. package/dist/index.js.map +1 -1
  412. package/dist/lib/accessibility.d.ts +1 -1
  413. package/dist/lib/accessibility.js.map +1 -1
  414. package/dist/lib/prefixClass.js +7 -6
  415. package/dist/lib/prefixClass.js.map +1 -1
  416. package/dist/lib/supportEvents.d.ts +3 -1
  417. package/dist/lib/supportEvents.js +1 -4
  418. package/dist/lib/supportEvents.js.map +1 -1
  419. package/dist/types.d.ts +3 -0
  420. package/dist/vkui.css +2 -2
  421. package/dist/vkui.css.map +1 -1
  422. package/package.json +8 -4
  423. package/src/components/ActionSheet/ActionSheet.tsx +4 -5
  424. package/src/components/ActionSheet/Readme.md +18 -14
  425. package/src/components/Alert/Readme.md +15 -11
  426. package/src/components/Avatar/Avatar.tsx +5 -2
  427. package/src/components/Banner/Banner.tsx +4 -5
  428. package/src/components/Button/Button.css +26 -53
  429. package/src/components/Button/Button.tsx +2 -3
  430. package/src/components/Card/Readme.md +6 -6
  431. package/src/components/CardScroll/CardScroll.tsx +4 -1
  432. package/src/components/Cell/Cell.css +21 -58
  433. package/src/components/Cell/Cell.tsx +101 -162
  434. package/src/components/Cell/CellCheckbox/CellCheckbox.css +17 -0
  435. package/src/components/Cell/CellCheckbox/CellCheckbox.tsx +42 -0
  436. package/src/components/Cell/CellDragger/CellDragger.css +4 -0
  437. package/src/components/Cell/CellDragger/CellDragger.tsx +40 -0
  438. package/src/components/Cell/Readme.md +89 -51
  439. package/src/components/Cell/useDraggable.tsx +112 -0
  440. package/src/components/ChipsSelect/ChipsSelect.tsx +2 -2
  441. package/src/components/Counter/Counter.tsx +2 -2
  442. package/src/components/CustomSelect/CustomSelect.tsx +3 -4
  443. package/src/components/DropdownIcon/DropdownIcon.css +3 -0
  444. package/src/components/DropdownIcon/DropdownIcon.tsx +20 -0
  445. package/src/components/Epic/Readme.md +2 -1
  446. package/src/components/FocusTrap/FocusTrap.tsx +13 -11
  447. package/src/components/FocusVisible/FocusVisible.css +12 -4
  448. package/src/components/FormField/FormField.css +0 -1
  449. package/src/components/FormField/FormField.tsx +2 -2
  450. package/src/components/FormItem/FormItem.css +13 -14
  451. package/src/components/FormItem/FormItem.tsx +2 -3
  452. package/src/components/FormLayout/FormLayout.tsx +2 -4
  453. package/src/components/FormLayoutGroup/FormLayoutGroup.css +11 -7
  454. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +10 -1
  455. package/src/components/Gallery/Gallery.css +2 -3
  456. package/src/components/Gallery/Readme.md +89 -109
  457. package/src/components/GridAvatar/GridAvatar.css +37 -0
  458. package/src/components/GridAvatar/GridAvatar.tsx +55 -0
  459. package/src/components/GridAvatar/Readme.md +12 -0
  460. package/src/components/Group/Readme.md +18 -14
  461. package/src/components/Header/Header.tsx +4 -4
  462. package/src/components/HorizontalCell/HorizontalCell.tsx +3 -3
  463. package/src/components/HorizontalScroll/HorizontalScroll.tsx +14 -18
  464. package/src/components/HorizontalScroll/HorizontalScrollArrow.css +2 -2
  465. package/src/components/IconButton/IconButton.css +7 -0
  466. package/src/components/InitialsAvatar/InitialsAvatar.css +53 -0
  467. package/src/components/InitialsAvatar/InitialsAvatar.tsx +90 -0
  468. package/src/components/InitialsAvatar/Readme.md +14 -0
  469. package/src/components/Link/Link.tsx +1 -1
  470. package/src/components/MiniInfoCell/Readme.md +66 -62
  471. package/src/components/ModalDismissButton/Readme.md +13 -10
  472. package/src/components/ModalRoot/ModalRoot.tsx +159 -349
  473. package/src/components/ModalRoot/ModalRootContext.tsx +0 -1
  474. package/src/components/ModalRoot/ModalRootDesktop.tsx +54 -240
  475. package/src/components/ModalRoot/Readme.md +35 -27
  476. package/src/components/ModalRoot/types.ts +0 -1
  477. package/src/components/ModalRoot/useModalManager.tsx +174 -0
  478. package/src/components/NativeSelect/NativeSelect.tsx +2 -2
  479. package/src/components/Removable/Removable.css +16 -63
  480. package/src/components/Removable/Removable.tsx +84 -64
  481. package/src/components/ScreenSpinner/Readme.md +13 -9
  482. package/src/components/Search/Search.css +1 -1
  483. package/src/components/Select/Select.css +1 -1
  484. package/src/components/SelectMimicry/SelectMimicry.tsx +2 -2
  485. package/src/components/SimpleCell/SimpleCell.css +10 -18
  486. package/src/components/SimpleCell/SimpleCell.tsx +3 -5
  487. package/src/components/SplitCol/SplitCol.tsx +4 -8
  488. package/src/components/SplitLayout/Readme.md +2 -2
  489. package/src/components/SubnavigationBar/Readme.md +90 -86
  490. package/src/components/SubnavigationBar/SubnavigationBar.tsx +32 -14
  491. package/src/components/SubnavigationButton/SubnavigationButton.tsx +2 -3
  492. package/src/components/Switch/Readme.md +6 -6
  493. package/src/components/Switch/Switch.css +46 -15
  494. package/src/components/Switch/Switch.tsx +16 -8
  495. package/src/components/Tabbar/Tabbar.css +15 -4
  496. package/src/components/Tabbar/Tabbar.tsx +3 -1
  497. package/src/components/TabbarItem/Readme.md +72 -0
  498. package/src/components/TabbarItem/TabbarItem.css +65 -14
  499. package/src/components/TabbarItem/TabbarItem.tsx +46 -22
  500. package/src/components/Tappable/Tappable.tsx +2 -3
  501. package/src/components/Textarea/Readme.md +3 -0
  502. package/src/components/Textarea/Textarea.tsx +10 -6
  503. package/src/components/Touch/Touch.tsx +38 -25
  504. package/src/components/Typography/Caption/Caption.tsx +4 -4
  505. package/src/components/Typography/Headline/Headline.tsx +3 -3
  506. package/src/components/Typography/Subhead/Subhead.tsx +3 -3
  507. package/src/components/Typography/Text/Text.tsx +3 -4
  508. package/src/components/Typography/Title/Title.tsx +9 -5
  509. package/src/components/View/Readme.md +42 -56
  510. package/src/components/View/View.tsx +46 -61
  511. package/src/components/View/ViewInfinite.tsx +52 -67
  512. package/src/components/View/utils.ts +8 -0
  513. package/src/index.ts +4 -0
  514. package/src/lib/accessibility.ts +2 -2
  515. package/src/lib/prefixClass.ts +9 -6
  516. package/src/lib/supportEvents.ts +1 -4
  517. package/src/styles/components.css +4 -0
  518. package/src/styles/vkcom_light.css +3 -3
  519. package/src/testing/utils.tsx +34 -1
  520. package/src/types.ts +4 -0
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { VKUITouchEvent } from '../../lib/touch';
3
- import { HasRootRef } from '../../types';
4
- export interface TouchProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLElement> {
3
+ import { HasComponent, HasRootRef } from '../../types';
4
+ export interface TouchProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLElement>, HasComponent {
5
5
  /**
6
6
  * Привязать onEnter и onLeave через pointer-events - работает на disabled-инпутах
7
7
  */
@@ -9,7 +9,6 @@ export interface TouchProps extends React.AllHTMLAttributes<HTMLElement>, HasRoo
9
9
  useCapture?: boolean;
10
10
  slideThreshold?: number;
11
11
  noSlideClick?: boolean;
12
- Component?: React.ElementType;
13
12
  onEnter?: HoverHandler;
14
13
  onLeave?: HoverHandler;
15
14
  onStart?: TouchEventHandler;
@@ -24,20 +23,20 @@ export interface TouchProps extends React.AllHTMLAttributes<HTMLElement>, HasRoo
24
23
  stopPropagation?: boolean;
25
24
  }
26
25
  export interface Gesture {
27
- startX?: number;
28
- startY?: number;
29
- startT?: Date;
30
- duration?: number;
31
- isPressed?: boolean;
32
- isY?: boolean;
33
- isX?: boolean;
34
- isSlideX?: boolean;
35
- isSlideY?: boolean;
36
- isSlide?: boolean;
37
- shiftX?: number;
38
- shiftY?: number;
39
- shiftXAbs?: number;
40
- shiftYAbs?: number;
26
+ startX: number;
27
+ startY: number;
28
+ startT: Date;
29
+ duration: number;
30
+ isPressed: boolean;
31
+ isY: boolean;
32
+ isX: boolean;
33
+ isSlideX: boolean;
34
+ isSlideY: boolean;
35
+ isSlide: boolean;
36
+ shiftX: number;
37
+ shiftY: number;
38
+ shiftXAbs: number;
39
+ shiftYAbs: number;
41
40
  }
42
41
  export interface TouchEvent extends Gesture {
43
42
  originalEvent: VKUITouchEvent;
@@ -63,7 +63,7 @@ var Touch = function Touch(_ref) {
63
63
 
64
64
  var events = React.useMemo(_touch.getSupportedEvents, []);
65
65
  var didSlide = React.useRef(false);
66
- var gesture = React.useRef({});
66
+ var gesture = React.useRef(null);
67
67
 
68
68
  var handle = function handle(e, handers) {
69
69
  stopPropagation && e.stopPropagation();
@@ -79,12 +79,7 @@ var Touch = function Touch(_ref) {
79
79
  var enterHandler = (0, _useEventListener.useEventListener)(usePointerHover ? 'pointerenter' : 'mouseenter', onEnter);
80
80
  var leaveHandler = (0, _useEventListener.useEventListener)(usePointerHover ? 'pointerleave' : 'mouseleave', onLeave);
81
81
  var startHandler = (0, _useEventListener.useEventListener)(events[0], function (e) {
82
- gesture.current = {
83
- startX: (0, _touch.coordX)(e),
84
- startY: (0, _touch.coordY)(e),
85
- startT: new Date(),
86
- isPressed: true
87
- };
82
+ gesture.current = initGesture((0, _touch.coordX)(e), (0, _touch.coordY)(e));
88
83
  handle(e, [onStart, onStartX, onStartY]); // 1 line, 2 bad specs, 2 workarounds:
89
84
 
90
85
  subscribe((0, _touch.touchEnabled)() // Touch events fire on initial target, and won't bubble if its removed
@@ -230,4 +225,23 @@ var Touch = function Touch(_ref) {
230
225
  };
231
226
 
232
227
  exports.Touch = Touch;
228
+
229
+ function initGesture(startX, startY) {
230
+ return {
231
+ startX: startX,
232
+ startY: startY,
233
+ startT: new Date(),
234
+ duration: 0,
235
+ isPressed: true,
236
+ isY: false,
237
+ isX: false,
238
+ isSlideX: false,
239
+ isSlideY: false,
240
+ isSlide: false,
241
+ shiftX: 0,
242
+ shiftY: 0,
243
+ shiftXAbs: 0,
244
+ shiftYAbs: 0
245
+ };
246
+ }
233
247
  //# sourceMappingURL=Touch.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Touch/Touch.tsx"],"names":["Touch","onStart","onStartX","onStartY","_onMove","onMove","onMoveX","onMoveY","onLeave","onEnter","_onEnd","onEnd","onEndX","onEndY","onClickCapture","usePointerHover","slideThreshold","useCapture","Component","getRootRef","noSlideClick","stopPropagation","restProps","document","events","React","useMemo","getSupportedEvents","didSlide","useRef","gesture","handle","e","handers","forEach","cb","duration","Date","now","current","startT","getTime","originalEvent","enterHandler","leaveHandler","startHandler","startX","startY","isPressed","subscribe","target","capture","passive","containerRef","el","add","isX","isY","shiftX","shiftY","shiftXAbs","Math","abs","shiftYAbs","touches","length","willBeX","willBeY","willBeSlidedX","willBeSlidedY","Object","assign","isSlideX","isSlideY","isSlide","listenerParams","listeners","l","onDragStart","tagName","preventDefault","postGestureClick","closest"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getSupportedEvents, coordX, coordY, touchEnabled, VKUITouchEvent } from '../../lib/touch';\nimport { HasRootRef } from '../../types';\nimport { useDOM } from '../../lib/dom';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\n\nexport interface TouchProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLElement> {\n /**\n * Привязать onEnter и onLeave через pointer-events - работает на disabled-инпутах\n */\n usePointerHover?: boolean;\n useCapture?: boolean;\n slideThreshold?: number;\n noSlideClick?: boolean;\n Component?: React.ElementType;\n onEnter?: HoverHandler;\n onLeave?: HoverHandler;\n onStart?: TouchEventHandler;\n onStartX?: TouchEventHandler;\n onStartY?: TouchEventHandler;\n onMove?: TouchEventHandler;\n onMoveX?: TouchEventHandler;\n onMoveY?: TouchEventHandler;\n onEnd?: TouchEventHandler;\n onEndX?: TouchEventHandler;\n onEndY?: TouchEventHandler;\n stopPropagation?: boolean;\n}\n\nexport interface Gesture {\n startX?: number;\n startY?: number;\n startT?: Date;\n duration?: number;\n isPressed?: boolean;\n isY?: boolean;\n isX?: boolean;\n isSlideX?: boolean;\n isSlideY?: boolean;\n isSlide?: boolean;\n shiftX?: number;\n shiftY?: number;\n shiftXAbs?: number;\n shiftYAbs?: number;\n}\n\nexport interface TouchEvent extends Gesture {\n originalEvent: VKUITouchEvent;\n}\n\ntype HoverHandler = (outputEvent: MouseEvent) => void;\nexport type TouchEventHandler = (e: TouchEvent) => void;\nexport type ClickHandler = (e: React.MouseEvent<HTMLElement>) => void;\nexport type DragHandler = (e: React.DragEvent<HTMLElement>) => void;\n\nexport const Touch: React.FC<TouchProps> = ({\n onStart,\n onStartX,\n onStartY,\n onMove: _onMove,\n onMoveX,\n onMoveY,\n onLeave,\n onEnter,\n onEnd: _onEnd,\n onEndX,\n onEndY,\n onClickCapture,\n usePointerHover,\n slideThreshold = 5,\n useCapture = false,\n Component = 'div',\n getRootRef,\n noSlideClick = false,\n stopPropagation = false,\n ...restProps\n}: TouchProps) => {\n const { document } = useDOM();\n const events = React.useMemo(getSupportedEvents, []);\n const didSlide = React.useRef(false);\n const gesture = React.useRef<Partial<Gesture>>({});\n const handle = (e: VKUITouchEvent, handers: TouchEventHandler[]) => {\n stopPropagation && e.stopPropagation();\n handers.forEach((cb) => {\n const duration = Date.now() - gesture.current.startT.getTime();\n cb && cb({ ...gesture.current, duration, originalEvent: e });\n });\n };\n\n const enterHandler = useEventListener(usePointerHover ? 'pointerenter' : 'mouseenter', onEnter);\n const leaveHandler = useEventListener(usePointerHover ? 'pointerleave' : 'mouseleave', onLeave);\n const startHandler = useEventListener(events[0], (e: VKUITouchEvent) => {\n gesture.current = {\n startX: coordX(e),\n startY: coordY(e),\n startT: new Date(),\n isPressed: true,\n };\n\n handle(e, [onStart, onStartX, onStartY]);\n // 1 line, 2 bad specs, 2 workarounds:\n subscribe(touchEnabled()\n // Touch events fire on initial target, and won't bubble if its removed\n // see: #235, #1968, https://stackoverflow.com/a/45760014\n ? e.target as HTMLElement\n // Mouse events fire on the element under pointer, so we lose move / end\n // if pointer goes outside container.\n // Can be fixed by PointerEvents' setPointerCapture later\n : document);\n }, { capture: useCapture, passive: false });\n const containerRef = useExternRef(getRootRef);\n\n useIsomorphicLayoutEffect(() => {\n const el = containerRef.current;\n enterHandler.add(el);\n leaveHandler.add(el);\n startHandler.add(el);\n }, [Component]);\n\n function onMove(e: VKUITouchEvent) {\n const { isPressed, isX, isY, startX, startY } = gesture.current;\n\n if (isPressed) {\n // смещения\n const shiftX = coordX(e) - startX;\n const shiftY = coordY(e) - startY;\n\n // абсолютные значения смещений\n const shiftXAbs = Math.abs(shiftX);\n const shiftYAbs = Math.abs(shiftY);\n\n // Если определяем мультитач, то прерываем жест\n if (!!e.touches && e.touches.length > 1) {\n return onEnd(e);\n }\n\n // если мы ещё не определились\n if (!isX && !isY) {\n const willBeX = shiftXAbs >= slideThreshold && shiftXAbs > shiftYAbs;\n const willBeY = shiftYAbs >= slideThreshold && shiftYAbs > shiftXAbs;\n const willBeSlidedX = willBeX && (!!onMoveX || !!_onMove);\n const willBeSlidedY = willBeY && (!!onMoveY || !!_onMove);\n\n Object.assign(gesture.current, {\n isY: willBeY,\n isX: willBeX,\n isSlideX: willBeSlidedX,\n isSlideY: willBeSlidedY,\n isSlide: willBeSlidedX || willBeSlidedY,\n });\n }\n\n if (gesture.current.isSlide) {\n Object.assign(gesture.current, {\n shiftX,\n shiftY,\n shiftXAbs,\n shiftYAbs,\n });\n\n handle(e, [_onMove, gesture.current.isSlideX && onMoveX, gesture.current.isSlideY && onMoveY]);\n }\n }\n }\n\n function onEnd(e: VKUITouchEvent) {\n const { isPressed, isSlide, isSlideX, isSlideY } = gesture.current;\n\n if (isPressed) {\n handle(e, [_onEnd, isSlideY && onEndY, isSlideX && onEndX]);\n }\n\n didSlide.current = isSlide;\n gesture.current = {};\n\n // Если это был тач-евент, симулируем отмену hover\n if (touchEnabled()) {\n onLeave && onLeave(e);\n }\n subscribe(null);\n }\n\n const listenerParams = { capture: useCapture, passive: false };\n const listeners = [\n useEventListener(events[1], onMove, listenerParams),\n useEventListener(events[2], onEnd, listenerParams),\n useEventListener(events[3], onEnd, listenerParams),\n ];\n function subscribe(el: HTMLElement | Document | null) {\n listeners.forEach((l) => l.add(el));\n }\n\n /**\n * Обработчик событий dragstart\n * Отменяет нативное браузерное поведение для вложенных ссылок и изображений\n */\n const onDragStart = (e: React.DragEvent<HTMLElement>) => {\n const target = e.target as HTMLElement;\n if (target.tagName === 'A' || target.tagName === 'IMG') {\n e.preventDefault();\n }\n };\n\n /**\n * Обработчик клика по компоненту\n * Отменяет переход по вложенной ссылке, если был зафиксирован свайп\n */\n const postGestureClick: typeof onClickCapture = (e) => {\n if (!didSlide.current) {\n return onClickCapture && onClickCapture(e);\n }\n // eslint-disable-next-line no-restricted-properties\n if ((e.target as HTMLElement).closest('a')) {\n e.preventDefault();\n }\n if (noSlideClick) {\n e.stopPropagation();\n } else {\n onClickCapture && onClickCapture(e);\n }\n didSlide.current = false;\n };\n\n return (\n <Component\n {...restProps}\n onDragStart={onDragStart}\n onClickCapture={postGestureClick}\n ref={containerRef}\n />\n );\n};\n"],"file":"Touch.js"}
1
+ {"version":3,"sources":["../../../../src/components/Touch/Touch.tsx"],"names":["Touch","onStart","onStartX","onStartY","_onMove","onMove","onMoveX","onMoveY","onLeave","onEnter","_onEnd","onEnd","onEndX","onEndY","onClickCapture","usePointerHover","slideThreshold","useCapture","Component","getRootRef","noSlideClick","stopPropagation","restProps","document","events","React","useMemo","getSupportedEvents","didSlide","useRef","gesture","handle","e","handers","forEach","cb","duration","Date","now","current","startT","getTime","originalEvent","enterHandler","leaveHandler","startHandler","initGesture","subscribe","target","capture","passive","containerRef","el","add","isPressed","isX","isY","startX","startY","shiftX","shiftY","shiftXAbs","Math","abs","shiftYAbs","touches","length","willBeX","willBeY","willBeSlidedX","willBeSlidedY","Object","assign","isSlideX","isSlideY","isSlide","listenerParams","listeners","l","onDragStart","tagName","preventDefault","postGestureClick","closest"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;AAkDO,IAAMA,KAA2B,GAAG,SAA9BA,KAA8B,OAqBzB;AAAA,MApBhBC,OAoBgB,QApBhBA,OAoBgB;AAAA,MAnBhBC,QAmBgB,QAnBhBA,QAmBgB;AAAA,MAlBhBC,QAkBgB,QAlBhBA,QAkBgB;AAAA,MAjBRC,OAiBQ,QAjBhBC,MAiBgB;AAAA,MAhBhBC,OAgBgB,QAhBhBA,OAgBgB;AAAA,MAfhBC,OAegB,QAfhBA,OAegB;AAAA,MAdhBC,OAcgB,QAdhBA,OAcgB;AAAA,MAbhBC,OAagB,QAbhBA,OAagB;AAAA,MAZTC,MAYS,QAZhBC,KAYgB;AAAA,MAXhBC,MAWgB,QAXhBA,MAWgB;AAAA,MAVhBC,MAUgB,QAVhBA,MAUgB;AAAA,MAThBC,cASgB,QAThBA,cASgB;AAAA,MARhBC,eAQgB,QARhBA,eAQgB;AAAA,iCAPhBC,cAOgB;AAAA,MAPhBA,cAOgB,oCAPC,CAOD;AAAA,6BANhBC,UAMgB;AAAA,MANhBA,UAMgB,gCANH,KAMG;AAAA,4BALhBC,SAKgB;AAAA,MALhBA,SAKgB,+BALJ,KAKI;AAAA,MAJhBC,UAIgB,QAJhBA,UAIgB;AAAA,+BAHhBC,YAGgB;AAAA,MAHhBA,YAGgB,kCAHD,KAGC;AAAA,kCAFhBC,eAEgB;AAAA,MAFhBA,eAEgB,qCAFE,KAEF;AAAA,MADbC,SACa;;AAChB,gBAAqB,kBAArB;AAAA,MAAQC,QAAR,WAAQA,QAAR;;AACA,MAAMC,MAAM,GAAGC,KAAK,CAACC,OAAN,CAAcC,yBAAd,EAAkC,EAAlC,CAAf;AACA,MAAMC,QAAQ,GAAGH,KAAK,CAACI,MAAN,CAAa,KAAb,CAAjB;AACA,MAAMC,OAAO,GAAGL,KAAK,CAACI,MAAN,CAA+B,IAA/B,CAAhB;;AACA,MAAME,MAAM,GAAG,SAATA,MAAS,CAACC,CAAD,EAAoBC,OAApB,EAAqD;AAClEZ,IAAAA,eAAe,IAAIW,CAAC,CAACX,eAAF,EAAnB;AACAY,IAAAA,OAAO,CAACC,OAAR,CAAgB,UAACC,EAAD,EAAQ;AACtB,UAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAL,KAAaR,OAAO,CAACS,OAAR,CAAgBC,MAAhB,CAAuBC,OAAvB,EAA9B;AACAN,MAAAA,EAAE,IAAIA,EAAE,6DAAML,OAAO,CAACS,OAAd;AAAkCH,QAAAA,QAAQ,EAARA,QAAlC;AAA4CM,QAAAA,aAAa,EAAEV;AAA3D,SAAR;AACD,KAHD;AAID,GAND;;AAQA,MAAMW,YAAY,GAAG,wCAAiB5B,eAAe,GAAG,cAAH,GAAoB,YAApD,EAAkEN,OAAlE,CAArB;AACA,MAAMmC,YAAY,GAAG,wCAAiB7B,eAAe,GAAG,cAAH,GAAoB,YAApD,EAAkEP,OAAlE,CAArB;AACA,MAAMqC,YAAY,GAAG,wCAAiBrB,MAAM,CAAC,CAAD,CAAvB,EAA4B,UAACQ,CAAD,EAAuB;AACtEF,IAAAA,OAAO,CAACS,OAAR,GAAkBO,WAAW,CAAC,mBAAOd,CAAP,CAAD,EAAY,mBAAOA,CAAP,CAAZ,CAA7B;AAEAD,IAAAA,MAAM,CAACC,CAAD,EAAI,CAAC/B,OAAD,EAAUC,QAAV,EAAoBC,QAApB,CAAJ,CAAN,CAHsE,CAItE;;AACA4C,IAAAA,SAAS,CAAC,2BACR;AACA;AAFQ,MAGNf,CAAC,CAACgB,MAHI,CAIR;AACA;AACA;AANQ,MAONzB,QAPK,CAAT;AAQD,GAboB,EAalB;AAAE0B,IAAAA,OAAO,EAAEhC,UAAX;AAAuBiC,IAAAA,OAAO,EAAE;AAAhC,GAbkB,CAArB;AAcA,MAAMC,YAAY,GAAG,gCAAahC,UAAb,CAArB;AAEA,4DAA0B,YAAM;AAC9B,QAAMiC,EAAE,GAAGD,YAAY,CAACZ,OAAxB;AACAI,IAAAA,YAAY,CAACU,GAAb,CAAiBD,EAAjB;AACAR,IAAAA,YAAY,CAACS,GAAb,CAAiBD,EAAjB;AACAP,IAAAA,YAAY,CAACQ,GAAb,CAAiBD,EAAjB;AACD,GALD,EAKG,CAAClC,SAAD,CALH;;AAOA,WAASb,MAAT,CAAgB2B,CAAhB,EAAmC;AACjC,2BAAgDF,OAAO,CAACS,OAAxD;AAAA,QAAQe,SAAR,oBAAQA,SAAR;AAAA,QAAmBC,GAAnB,oBAAmBA,GAAnB;AAAA,QAAwBC,GAAxB,oBAAwBA,GAAxB;AAAA,QAA6BC,MAA7B,oBAA6BA,MAA7B;AAAA,QAAqCC,MAArC,oBAAqCA,MAArC;;AAEA,QAAIJ,SAAJ,EAAe;AACb;AACA,UAAMK,MAAM,GAAG,mBAAO3B,CAAP,IAAYyB,MAA3B;AACA,UAAMG,MAAM,GAAG,mBAAO5B,CAAP,IAAY0B,MAA3B,CAHa,CAKb;;AACA,UAAMG,SAAS,GAAGC,IAAI,CAACC,GAAL,CAASJ,MAAT,CAAlB;AACA,UAAMK,SAAS,GAAGF,IAAI,CAACC,GAAL,CAASH,MAAT,CAAlB,CAPa,CASb;;AACA,UAAI,CAAC,CAAC5B,CAAC,CAACiC,OAAJ,IAAejC,CAAC,CAACiC,OAAF,CAAUC,MAAV,GAAmB,CAAtC,EAAyC;AACvC,eAAOvD,KAAK,CAACqB,CAAD,CAAZ;AACD,OAZY,CAcb;;;AACA,UAAI,CAACuB,GAAD,IAAQ,CAACC,GAAb,EAAkB;AAChB,YAAMW,OAAO,GAAGN,SAAS,IAAI7C,cAAb,IAA+B6C,SAAS,GAAGG,SAA3D;AACA,YAAMI,OAAO,GAAGJ,SAAS,IAAIhD,cAAb,IAA+BgD,SAAS,GAAGH,SAA3D;AACA,YAAMQ,aAAa,GAAGF,OAAO,KAAK,CAAC,CAAC7D,OAAF,IAAa,CAAC,CAACF,OAApB,CAA7B;AACA,YAAMkE,aAAa,GAAGF,OAAO,KAAK,CAAC,CAAC7D,OAAF,IAAa,CAAC,CAACH,OAApB,CAA7B;AAEAmE,QAAAA,MAAM,CAACC,MAAP,CAAc1C,OAAO,CAACS,OAAtB,EAA+B;AAC7BiB,UAAAA,GAAG,EAAEY,OADwB;AAE7Bb,UAAAA,GAAG,EAAEY,OAFwB;AAG7BM,UAAAA,QAAQ,EAAEJ,aAHmB;AAI7BK,UAAAA,QAAQ,EAAEJ,aAJmB;AAK7BK,UAAAA,OAAO,EAAEN,aAAa,IAAIC;AALG,SAA/B;AAOD;;AAED,UAAIxC,OAAO,CAACS,OAAR,CAAgBoC,OAApB,EAA6B;AAC3BJ,QAAAA,MAAM,CAACC,MAAP,CAAc1C,OAAO,CAACS,OAAtB,EAA+B;AAC7BoB,UAAAA,MAAM,EAANA,MAD6B;AAE7BC,UAAAA,MAAM,EAANA,MAF6B;AAG7BC,UAAAA,SAAS,EAATA,SAH6B;AAI7BG,UAAAA,SAAS,EAATA;AAJ6B,SAA/B;AAOAjC,QAAAA,MAAM,CAACC,CAAD,EAAI,CAAC5B,OAAD,EAAU0B,OAAO,CAACS,OAAR,CAAgBkC,QAAhB,IAA4BnE,OAAtC,EAA+CwB,OAAO,CAACS,OAAR,CAAgBmC,QAAhB,IAA4BnE,OAA3E,CAAJ,CAAN;AACD;AACF;AACF;;AAED,WAASI,KAAT,CAAeqB,CAAf,EAAkC;AAChC,4BAAmDF,OAAO,CAACS,OAA3D;AAAA,QAAQe,SAAR,qBAAQA,SAAR;AAAA,QAAmBqB,OAAnB,qBAAmBA,OAAnB;AAAA,QAA4BF,QAA5B,qBAA4BA,QAA5B;AAAA,QAAsCC,QAAtC,qBAAsCA,QAAtC;;AAEA,QAAIpB,SAAJ,EAAe;AACbvB,MAAAA,MAAM,CAACC,CAAD,EAAI,CAACtB,MAAD,EAASgE,QAAQ,IAAI7D,MAArB,EAA6B4D,QAAQ,IAAI7D,MAAzC,CAAJ,CAAN;AACD;;AAEDgB,IAAAA,QAAQ,CAACW,OAAT,GAAmBoC,OAAnB;AACA7C,IAAAA,OAAO,CAACS,OAAR,GAAkB,EAAlB,CARgC,CAUhC;;AACA,QAAI,0BAAJ,EAAoB;AAClB/B,MAAAA,OAAO,IAAIA,OAAO,CAACwB,CAAD,CAAlB;AACD;;AACDe,IAAAA,SAAS,CAAC,IAAD,CAAT;AACD;;AAED,MAAM6B,cAAc,GAAG;AAAE3B,IAAAA,OAAO,EAAEhC,UAAX;AAAuBiC,IAAAA,OAAO,EAAE;AAAhC,GAAvB;AACA,MAAM2B,SAAS,GAAG,CAChB,wCAAiBrD,MAAM,CAAC,CAAD,CAAvB,EAA4BnB,MAA5B,EAAoCuE,cAApC,CADgB,EAEhB,wCAAiBpD,MAAM,CAAC,CAAD,CAAvB,EAA4Bb,KAA5B,EAAmCiE,cAAnC,CAFgB,EAGhB,wCAAiBpD,MAAM,CAAC,CAAD,CAAvB,EAA4Bb,KAA5B,EAAmCiE,cAAnC,CAHgB,CAAlB;;AAKA,WAAS7B,SAAT,CAAmBK,EAAnB,EAAsD;AACpDyB,IAAAA,SAAS,CAAC3C,OAAV,CAAkB,UAAC4C,CAAD;AAAA,aAAOA,CAAC,CAACzB,GAAF,CAAMD,EAAN,CAAP;AAAA,KAAlB;AACD;AAED;AACF;AACA;AACA;;;AACE,MAAM2B,WAAW,GAAG,SAAdA,WAAc,CAAC/C,CAAD,EAAqC;AACvD,QAAMgB,MAAM,GAAGhB,CAAC,CAACgB,MAAjB;;AACA,QAAIA,MAAM,CAACgC,OAAP,KAAmB,GAAnB,IAA0BhC,MAAM,CAACgC,OAAP,KAAmB,KAAjD,EAAwD;AACtDhD,MAAAA,CAAC,CAACiD,cAAF;AACD;AACF,GALD;AAOA;AACF;AACA;AACA;;;AACE,MAAMC,gBAAuC,GAAG,SAA1CA,gBAA0C,CAAClD,CAAD,EAAO;AACrD,QAAI,CAACJ,QAAQ,CAACW,OAAd,EAAuB;AACrB,aAAOzB,cAAc,IAAIA,cAAc,CAACkB,CAAD,CAAvC;AACD,KAHoD,CAIrD;;;AACA,QAAKA,CAAC,CAACgB,MAAH,CAA0BmC,OAA1B,CAAkC,GAAlC,CAAJ,EAA4C;AAC1CnD,MAAAA,CAAC,CAACiD,cAAF;AACD;;AACD,QAAI7D,YAAJ,EAAkB;AAChBY,MAAAA,CAAC,CAACX,eAAF;AACD,KAFD,MAEO;AACLP,MAAAA,cAAc,IAAIA,cAAc,CAACkB,CAAD,CAAhC;AACD;;AACDJ,IAAAA,QAAQ,CAACW,OAAT,GAAmB,KAAnB;AACD,GAdD;;AAgBA,SACE,qCAAC,SAAD,6BACMjB,SADN;AAEE,IAAA,WAAW,EAAEyD,WAFf;AAGE,IAAA,cAAc,EAAEG,gBAHlB;AAIE,IAAA,GAAG,EAAE/B;AAJP,KADF;AAQD,CA3KM;;;;AA6KP,SAASL,WAAT,CAAqBW,MAArB,EAAqCC,MAArC,EAA8D;AAC5D,SAAO;AACLD,IAAAA,MAAM,EAANA,MADK;AAELC,IAAAA,MAAM,EAANA,MAFK;AAGLlB,IAAAA,MAAM,EAAE,IAAIH,IAAJ,EAHH;AAILD,IAAAA,QAAQ,EAAE,CAJL;AAKLkB,IAAAA,SAAS,EAAE,IALN;AAMLE,IAAAA,GAAG,EAAE,KANA;AAOLD,IAAAA,GAAG,EAAE,KAPA;AAQLkB,IAAAA,QAAQ,EAAE,KARL;AASLC,IAAAA,QAAQ,EAAE,KATL;AAULC,IAAAA,OAAO,EAAE,KAVJ;AAWLhB,IAAAA,MAAM,EAAE,CAXH;AAYLC,IAAAA,MAAM,EAAE,CAZH;AAaLC,IAAAA,SAAS,EAAE,CAbN;AAcLG,IAAAA,SAAS,EAAE;AAdN,GAAP;AAgBD","sourcesContent":["import * as React from 'react';\nimport { getSupportedEvents, coordX, coordY, touchEnabled, VKUITouchEvent } from '../../lib/touch';\nimport { HasComponent, HasRootRef } from '../../types';\nimport { useDOM } from '../../lib/dom';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\n\nexport interface TouchProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLElement>, HasComponent {\n /**\n * Привязать onEnter и onLeave через pointer-events - работает на disabled-инпутах\n */\n usePointerHover?: boolean;\n useCapture?: boolean;\n slideThreshold?: number;\n noSlideClick?: boolean;\n onEnter?: HoverHandler;\n onLeave?: HoverHandler;\n onStart?: TouchEventHandler;\n onStartX?: TouchEventHandler;\n onStartY?: TouchEventHandler;\n onMove?: TouchEventHandler;\n onMoveX?: TouchEventHandler;\n onMoveY?: TouchEventHandler;\n onEnd?: TouchEventHandler;\n onEndX?: TouchEventHandler;\n onEndY?: TouchEventHandler;\n stopPropagation?: boolean;\n}\n\nexport interface Gesture {\n startX: number;\n startY: number;\n startT: Date;\n duration: number;\n isPressed: boolean;\n isY: boolean;\n isX: boolean;\n isSlideX: boolean;\n isSlideY: boolean;\n isSlide: boolean;\n shiftX: number;\n shiftY: number;\n shiftXAbs: number;\n shiftYAbs: number;\n}\n\nexport interface TouchEvent extends Gesture {\n originalEvent: VKUITouchEvent;\n}\n\ntype HoverHandler = (outputEvent: MouseEvent) => void;\nexport type TouchEventHandler = (e: TouchEvent) => void;\nexport type ClickHandler = (e: React.MouseEvent<HTMLElement>) => void;\nexport type DragHandler = (e: React.DragEvent<HTMLElement>) => void;\n\nexport const Touch: React.FC<TouchProps> = ({\n onStart,\n onStartX,\n onStartY,\n onMove: _onMove,\n onMoveX,\n onMoveY,\n onLeave,\n onEnter,\n onEnd: _onEnd,\n onEndX,\n onEndY,\n onClickCapture,\n usePointerHover,\n slideThreshold = 5,\n useCapture = false,\n Component = 'div',\n getRootRef,\n noSlideClick = false,\n stopPropagation = false,\n ...restProps\n}: TouchProps) => {\n const { document } = useDOM();\n const events = React.useMemo(getSupportedEvents, []);\n const didSlide = React.useRef(false);\n const gesture = React.useRef<Partial<Gesture>>(null);\n const handle = (e: VKUITouchEvent, handers: TouchEventHandler[]) => {\n stopPropagation && e.stopPropagation();\n handers.forEach((cb) => {\n const duration = Date.now() - gesture.current.startT.getTime();\n cb && cb({ ...gesture.current as Gesture, duration, originalEvent: e });\n });\n };\n\n const enterHandler = useEventListener(usePointerHover ? 'pointerenter' : 'mouseenter', onEnter);\n const leaveHandler = useEventListener(usePointerHover ? 'pointerleave' : 'mouseleave', onLeave);\n const startHandler = useEventListener(events[0], (e: VKUITouchEvent) => {\n gesture.current = initGesture(coordX(e), coordY(e));\n\n handle(e, [onStart, onStartX, onStartY]);\n // 1 line, 2 bad specs, 2 workarounds:\n subscribe(touchEnabled()\n // Touch events fire on initial target, and won't bubble if its removed\n // see: #235, #1968, https://stackoverflow.com/a/45760014\n ? e.target as HTMLElement\n // Mouse events fire on the element under pointer, so we lose move / end\n // if pointer goes outside container.\n // Can be fixed by PointerEvents' setPointerCapture later\n : document);\n }, { capture: useCapture, passive: false });\n const containerRef = useExternRef(getRootRef);\n\n useIsomorphicLayoutEffect(() => {\n const el = containerRef.current;\n enterHandler.add(el);\n leaveHandler.add(el);\n startHandler.add(el);\n }, [Component]);\n\n function onMove(e: VKUITouchEvent) {\n const { isPressed, isX, isY, startX, startY } = gesture.current;\n\n if (isPressed) {\n // смещения\n const shiftX = coordX(e) - startX;\n const shiftY = coordY(e) - startY;\n\n // абсолютные значения смещений\n const shiftXAbs = Math.abs(shiftX);\n const shiftYAbs = Math.abs(shiftY);\n\n // Если определяем мультитач, то прерываем жест\n if (!!e.touches && e.touches.length > 1) {\n return onEnd(e);\n }\n\n // если мы ещё не определились\n if (!isX && !isY) {\n const willBeX = shiftXAbs >= slideThreshold && shiftXAbs > shiftYAbs;\n const willBeY = shiftYAbs >= slideThreshold && shiftYAbs > shiftXAbs;\n const willBeSlidedX = willBeX && (!!onMoveX || !!_onMove);\n const willBeSlidedY = willBeY && (!!onMoveY || !!_onMove);\n\n Object.assign(gesture.current, {\n isY: willBeY,\n isX: willBeX,\n isSlideX: willBeSlidedX,\n isSlideY: willBeSlidedY,\n isSlide: willBeSlidedX || willBeSlidedY,\n });\n }\n\n if (gesture.current.isSlide) {\n Object.assign(gesture.current, {\n shiftX,\n shiftY,\n shiftXAbs,\n shiftYAbs,\n });\n\n handle(e, [_onMove, gesture.current.isSlideX && onMoveX, gesture.current.isSlideY && onMoveY]);\n }\n }\n }\n\n function onEnd(e: VKUITouchEvent) {\n const { isPressed, isSlide, isSlideX, isSlideY } = gesture.current;\n\n if (isPressed) {\n handle(e, [_onEnd, isSlideY && onEndY, isSlideX && onEndX]);\n }\n\n didSlide.current = isSlide;\n gesture.current = {};\n\n // Если это был тач-евент, симулируем отмену hover\n if (touchEnabled()) {\n onLeave && onLeave(e);\n }\n subscribe(null);\n }\n\n const listenerParams = { capture: useCapture, passive: false };\n const listeners = [\n useEventListener(events[1], onMove, listenerParams),\n useEventListener(events[2], onEnd, listenerParams),\n useEventListener(events[3], onEnd, listenerParams),\n ];\n function subscribe(el: HTMLElement | Document | null) {\n listeners.forEach((l) => l.add(el));\n }\n\n /**\n * Обработчик событий dragstart\n * Отменяет нативное браузерное поведение для вложенных ссылок и изображений\n */\n const onDragStart = (e: React.DragEvent<HTMLElement>) => {\n const target = e.target as HTMLElement;\n if (target.tagName === 'A' || target.tagName === 'IMG') {\n e.preventDefault();\n }\n };\n\n /**\n * Обработчик клика по компоненту\n * Отменяет переход по вложенной ссылке, если был зафиксирован свайп\n */\n const postGestureClick: typeof onClickCapture = (e) => {\n if (!didSlide.current) {\n return onClickCapture && onClickCapture(e);\n }\n // eslint-disable-next-line no-restricted-properties\n if ((e.target as HTMLElement).closest('a')) {\n e.preventDefault();\n }\n if (noSlideClick) {\n e.stopPropagation();\n } else {\n onClickCapture && onClickCapture(e);\n }\n didSlide.current = false;\n };\n\n return (\n <Component\n {...restProps}\n onDragStart={onDragStart}\n onClickCapture={postGestureClick}\n ref={containerRef}\n />\n );\n};\n\nfunction initGesture(startX: number, startY: number): Gesture {\n return {\n startX,\n startY,\n startT: new Date(),\n duration: 0,\n isPressed: true,\n isY: false,\n isX: false,\n isSlideX: false,\n isSlideY: false,\n isSlide: false,\n shiftX: 0,\n shiftY: 0,\n shiftXAbs: 0,\n shiftYAbs: 0,\n };\n}\n"],"file":"Touch.js"}
@@ -1,10 +1,10 @@
1
1
  import * as React from 'react';
2
+ import { HasComponent } from '../../../types';
2
3
  import './Caption.css';
3
- export interface CaptionProps extends React.AllHTMLAttributes<HTMLElement> {
4
+ export interface CaptionProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {
4
5
  weight: 'regular' | 'medium' | 'semibold' | 'bold';
5
6
  level: '1' | '2' | '3' | '4';
6
7
  caps?: boolean;
7
- Component?: React.ElementType;
8
8
  }
9
9
  declare const Caption: React.FC<CaptionProps>;
10
10
  export default Caption;
@@ -23,8 +23,10 @@ var _excluded = ["children", "weight", "level", "caps", "Component"];
23
23
 
24
24
  var Caption = function Caption(_ref) {
25
25
  var children = _ref.children,
26
- weight = _ref.weight,
27
- level = _ref.level,
26
+ _ref$weight = _ref.weight,
27
+ weight = _ref$weight === void 0 ? 'regular' : _ref$weight,
28
+ _ref$level = _ref.level,
29
+ level = _ref$level === void 0 ? '1' : _ref$level,
28
30
  caps = _ref.caps,
29
31
  _ref$Component = _ref.Component,
30
32
  Component = _ref$Component === void 0 ? 'span' : _ref$Component,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Typography/Caption/Caption.tsx"],"names":["Caption","children","weight","level","caps","Component","restProps","platform"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;AAUA,IAAMA,OAA+B,GAAG,SAAlCA,OAAkC,OAOpB;AAAA,MANlBC,QAMkB,QANlBA,QAMkB;AAAA,MALlBC,MAKkB,QALlBA,MAKkB;AAAA,MAJlBC,KAIkB,QAJlBA,KAIkB;AAAA,MAHlBC,IAGkB,QAHlBA,IAGkB;AAAA,4BAFlBC,SAEkB;AAAA,MAFlBA,SAEkB,+BAFN,MAEM;AAAA,MADfC,SACe;AAClB,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,SACE,qCAAC,SAAD,6BACMD,SADN;AAEE,IAAA,SAAS,EACP,4BACE,gCAAa,SAAb,EAAwBC,QAAxB,CADF,uBAEgBL,MAFhB,wBAGgBC,KAHhB,GAIE;AACE,uBAAiBC;AADnB,KAJF;AAHJ,MAaGH,QAbH,CADF;AAiBD,CA3BD;;eA6BeD,O","sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport './Caption.css';\n\nexport interface CaptionProps extends React.AllHTMLAttributes<HTMLElement> {\n weight: 'regular' | 'medium' | 'semibold' | 'bold';\n level: '1' | '2' | '3' | '4';\n caps?: boolean;\n Component?: React.ElementType;\n}\n\nconst Caption: React.FC<CaptionProps> = ({\n children,\n weight,\n level,\n caps,\n Component = 'span',\n ...restProps\n}: CaptionProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n vkuiClass={\n classNames(\n getClassName('Caption', platform),\n `Caption--w-${weight}`,\n `Caption--l-${level}`,\n {\n 'Caption--caps': caps,\n },\n )\n }\n >\n {children}\n </Component>\n );\n};\n\nexport default Caption;\n"],"file":"Caption.js"}
1
+ {"version":3,"sources":["../../../../../src/components/Typography/Caption/Caption.tsx"],"names":["Caption","children","weight","level","caps","Component","restProps","platform"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;AASA,IAAMA,OAA+B,GAAG,SAAlCA,OAAkC,OAOpB;AAAA,MANlBC,QAMkB,QANlBA,QAMkB;AAAA,yBALlBC,MAKkB;AAAA,MALlBA,MAKkB,4BALT,SAKS;AAAA,wBAJlBC,KAIkB;AAAA,MAJlBA,KAIkB,2BAJV,GAIU;AAAA,MAHlBC,IAGkB,QAHlBA,IAGkB;AAAA,4BAFlBC,SAEkB;AAAA,MAFlBA,SAEkB,+BAFN,MAEM;AAAA,MADfC,SACe;AAClB,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,SACE,qCAAC,SAAD,6BACMD,SADN;AAEE,IAAA,SAAS,EACP,4BACE,gCAAa,SAAb,EAAwBC,QAAxB,CADF,uBAEgBL,MAFhB,wBAGgBC,KAHhB,GAIE;AACE,uBAAiBC;AADnB,KAJF;AAHJ,MAaGH,QAbH,CADF;AAiBD,CA3BD;;eA6BeD,O","sourcesContent":["import * as React from 'react';\nimport { HasComponent } from '../../../types';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport './Caption.css';\n\nexport interface CaptionProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {\n weight: 'regular' | 'medium' | 'semibold' | 'bold';\n level: '1' | '2' | '3' | '4';\n caps?: boolean;\n}\n\nconst Caption: React.FC<CaptionProps> = ({\n children,\n weight = 'regular',\n level = '1',\n caps,\n Component = 'span',\n ...restProps\n}: CaptionProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n vkuiClass={\n classNames(\n getClassName('Caption', platform),\n `Caption--w-${weight}`,\n `Caption--l-${level}`,\n {\n 'Caption--caps': caps,\n },\n )\n }\n >\n {children}\n </Component>\n );\n};\n\nexport default Caption;\n"],"file":"Caption.js"}
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
+ import { HasComponent } from '../../../types';
2
3
  import './Headline.css';
3
- export interface HeadlineProps extends React.AllHTMLAttributes<HTMLElement> {
4
+ export interface HeadlineProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {
4
5
  weight: 'regular' | 'medium' | 'semibold';
5
- Component?: React.ElementType;
6
6
  }
7
7
  declare const Headline: React.FC<HeadlineProps>;
8
8
  export default Headline;
@@ -23,7 +23,8 @@ var _excluded = ["children", "weight", "Component"];
23
23
 
24
24
  var Headline = function Headline(_ref) {
25
25
  var children = _ref.children,
26
- weight = _ref.weight,
26
+ _ref$weight = _ref.weight,
27
+ weight = _ref$weight === void 0 ? 'regular' : _ref$weight,
27
28
  _ref$Component = _ref.Component,
28
29
  Component = _ref$Component === void 0 ? 'h3' : _ref$Component,
29
30
  restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Typography/Headline/Headline.tsx"],"names":["Headline","children","weight","Component","restProps","platform"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;AAQA,IAAMA,QAAiC,GAAG,SAApCA,QAAoC,OAKrB;AAAA,MAJnBC,QAImB,QAJnBA,QAImB;AAAA,MAHnBC,MAGmB,QAHnBA,MAGmB;AAAA,4BAFnBC,SAEmB;AAAA,MAFnBA,SAEmB,+BAFP,IAEO;AAAA,MADhBC,SACgB;AACnB,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,SACE,qCAAC,SAAD,6BACMD,SADN;AAEE,IAAA,SAAS,EAAE,4BAAW,gCAAa,UAAb,EAAyBC,QAAzB,CAAX,wBAA8DH,MAA9D;AAFb,MAIGD,QAJH,CADF;AAQD,CAhBD;;eAkBeD,Q","sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport './Headline.css';\n\nexport interface HeadlineProps extends React.AllHTMLAttributes<HTMLElement> {\n weight: 'regular' | 'medium' | 'semibold';\n Component?: React.ElementType;\n}\n\nconst Headline: React.FC<HeadlineProps> = ({\n children,\n weight,\n Component = 'h3',\n ...restProps\n}: HeadlineProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n vkuiClass={classNames(getClassName('Headline', platform), `Headline--w-${weight}`)}\n >\n {children}\n </Component>\n );\n};\n\nexport default Headline;\n"],"file":"Headline.js"}
1
+ {"version":3,"sources":["../../../../../src/components/Typography/Headline/Headline.tsx"],"names":["Headline","children","weight","Component","restProps","platform"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;AAOA,IAAMA,QAAiC,GAAG,SAApCA,QAAoC,OAKrB;AAAA,MAJnBC,QAImB,QAJnBA,QAImB;AAAA,yBAHnBC,MAGmB;AAAA,MAHnBA,MAGmB,4BAHV,SAGU;AAAA,4BAFnBC,SAEmB;AAAA,MAFnBA,SAEmB,+BAFP,IAEO;AAAA,MADhBC,SACgB;AACnB,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,SACE,qCAAC,SAAD,6BACMD,SADN;AAEE,IAAA,SAAS,EAAE,4BAAW,gCAAa,UAAb,EAAyBC,QAAzB,CAAX,wBAA8DH,MAA9D;AAFb,MAIGD,QAJH,CADF;AAQD,CAhBD;;eAkBeD,Q","sourcesContent":["import * as React from 'react';\nimport { HasComponent } from '../../../types';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport './Headline.css';\n\nexport interface HeadlineProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {\n weight: 'regular' | 'medium' | 'semibold';\n}\n\nconst Headline: React.FC<HeadlineProps> = ({\n children,\n weight = 'regular',\n Component = 'h3',\n ...restProps\n}: HeadlineProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n vkuiClass={classNames(getClassName('Headline', platform), `Headline--w-${weight}`)}\n >\n {children}\n </Component>\n );\n};\n\nexport default Headline;\n"],"file":"Headline.js"}
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
+ import { HasComponent } from '../../../types';
2
3
  import './Subhead.css';
3
- export interface SubheadProps extends React.AllHTMLAttributes<HTMLElement> {
4
+ export interface SubheadProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {
4
5
  weight: 'regular' | 'medium' | 'semibold' | 'bold';
5
- Component?: React.ElementType;
6
6
  }
7
7
  declare const Subhead: React.FC<SubheadProps>;
8
8
  export default Subhead;
@@ -23,7 +23,8 @@ var _excluded = ["children", "weight", "Component"];
23
23
 
24
24
  var Subhead = function Subhead(_ref) {
25
25
  var children = _ref.children,
26
- weight = _ref.weight,
26
+ _ref$weight = _ref.weight,
27
+ weight = _ref$weight === void 0 ? 'regular' : _ref$weight,
27
28
  _ref$Component = _ref.Component,
28
29
  Component = _ref$Component === void 0 ? 'h4' : _ref$Component,
29
30
  restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Typography/Subhead/Subhead.tsx"],"names":["Subhead","children","weight","Component","restProps","platform"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;AAQA,IAAMA,OAA+B,GAAG,SAAlCA,OAAkC,OAKpB;AAAA,MAJlBC,QAIkB,QAJlBA,QAIkB;AAAA,MAHlBC,MAGkB,QAHlBA,MAGkB;AAAA,4BAFlBC,SAEkB;AAAA,MAFlBA,SAEkB,+BAFN,IAEM;AAAA,MADfC,SACe;AAClB,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,SACE,qCAAC,SAAD,6BACMD,SADN;AAEE,IAAA,SAAS,EAAE,4BAAW,gCAAa,SAAb,EAAwBC,QAAxB,CAAX,uBAA4DH,MAA5D;AAFb,MAIGD,QAJH,CADF;AAQD,CAhBD;;eAkBeD,O","sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport './Subhead.css';\n\nexport interface SubheadProps extends React.AllHTMLAttributes<HTMLElement> {\n weight: 'regular' | 'medium' | 'semibold' | 'bold';\n Component?: React.ElementType;\n}\n\nconst Subhead: React.FC<SubheadProps> = ({\n children,\n weight,\n Component = 'h4',\n ...restProps\n}: SubheadProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n vkuiClass={classNames(getClassName('Subhead', platform), `Subhead--w-${weight}`)}\n >\n {children}\n </Component>\n );\n};\n\nexport default Subhead;\n"],"file":"Subhead.js"}
1
+ {"version":3,"sources":["../../../../../src/components/Typography/Subhead/Subhead.tsx"],"names":["Subhead","children","weight","Component","restProps","platform"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;AAOA,IAAMA,OAA+B,GAAG,SAAlCA,OAAkC,OAKpB;AAAA,MAJlBC,QAIkB,QAJlBA,QAIkB;AAAA,yBAHlBC,MAGkB;AAAA,MAHlBA,MAGkB,4BAHT,SAGS;AAAA,4BAFlBC,SAEkB;AAAA,MAFlBA,SAEkB,+BAFN,IAEM;AAAA,MADfC,SACe;AAClB,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,SACE,qCAAC,SAAD,6BACMD,SADN;AAEE,IAAA,SAAS,EAAE,4BAAW,gCAAa,SAAb,EAAwBC,QAAxB,CAAX,uBAA4DH,MAA5D;AAFb,MAIGD,QAJH,CADF;AAQD,CAhBD;;eAkBeD,O","sourcesContent":["import * as React from 'react';\nimport { HasComponent } from '../../../types';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport './Subhead.css';\n\nexport interface SubheadProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {\n weight: 'regular' | 'medium' | 'semibold' | 'bold';\n}\n\nconst Subhead: React.FC<SubheadProps> = ({\n children,\n weight = 'regular',\n Component = 'h4',\n ...restProps\n}: SubheadProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n vkuiClass={classNames(getClassName('Subhead', platform), `Subhead--w-${weight}`)}\n >\n {children}\n </Component>\n );\n};\n\nexport default Subhead;\n"],"file":"Subhead.js"}
@@ -1,9 +1,8 @@
1
1
  import * as React from 'react';
2
- import { HasRootRef } from '../../../types';
2
+ import { HasComponent, HasRootRef } from '../../../types';
3
3
  import './Text.css';
4
- export interface TextProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLDivElement> {
4
+ export interface TextProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLElement>, HasComponent {
5
5
  weight: 'regular' | 'medium' | 'semibold';
6
- Component?: React.ElementType;
7
6
  }
8
7
  declare const Text: React.FC<TextProps>;
9
8
  export default Text;
@@ -26,7 +26,8 @@ var warn = (0, _warnOnce.warnOnce)('Text');
26
26
 
27
27
  var Text = function Text(_ref) {
28
28
  var children = _ref.children,
29
- weight = _ref.weight,
29
+ _ref$weight = _ref.weight,
30
+ weight = _ref$weight === void 0 ? 'regular' : _ref$weight,
30
31
  _ref$Component = _ref.Component,
31
32
  Component = _ref$Component === void 0 ? 'span' : _ref$Component,
32
33
  getRootRef = _ref.getRootRef,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Typography/Text/Text.tsx"],"names":["warn","Text","children","weight","Component","getRootRef","restProps","platform","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA;;;AAQA,IAAMA,IAAI,GAAG,wBAAS,MAAT,CAAb;;AACA,IAAMC,IAAyB,GAAG,SAA5BA,IAA4B,OAMjB;AAAA,MALfC,QAKe,QALfA,QAKe;AAAA,MAJfC,MAIe,QAJfA,MAIe;AAAA,4BAHfC,SAGe;AAAA,MAHfA,SAGe,+BAHH,MAGG;AAAA,MAFfC,UAEe,QAFfA,UAEe;AAAA,MADZC,SACY;AACf,MAAMC,QAAQ,GAAG,+BAAjB;;AAEA,MAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,OAAON,SAAP,KAAqB,QAA/D,IAA2EC,UAA/E,EAA2F;AACzFL,IAAAA,IAAI,CAAC,iDAAD,CAAJ;AACD;;AAED,SACE,qCAAC,SAAD,6BACMM,SADN;AAEE,IAAA,GAAG,EAAED,UAFP;AAGE,IAAA,SAAS,EAAE,4BAAW,gCAAa,MAAb,EAAqBE,QAArB,CAAX,oBAAsDJ,MAAtD;AAHb,MAKGD,QALH,CADF;AASD,CAtBD;;eAwBeD,I","sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport { HasRootRef } from '../../../types';\nimport { warnOnce } from '../../../lib/warnOnce';\nimport './Text.css';\n\nexport interface TextProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLDivElement> {\n weight: 'regular' | 'medium' | 'semibold';\n Component?: React.ElementType;\n}\n\nconst warn = warnOnce('Text');\nconst Text: React.FC<TextProps> = ({\n children,\n weight,\n Component = 'span',\n getRootRef,\n ...restProps\n}: TextProps) => {\n const platform = usePlatform();\n\n if (process.env.NODE_ENV === 'development' && typeof Component !== 'string' && getRootRef) {\n warn('getRootRef can only be used with DOM components');\n }\n\n return (\n <Component\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(getClassName('Text', platform), `Text--w-${weight}`)}\n >\n {children}\n </Component>\n );\n};\n\nexport default Text;\n"],"file":"Text.js"}
1
+ {"version":3,"sources":["../../../../../src/components/Typography/Text/Text.tsx"],"names":["warn","Text","children","weight","Component","getRootRef","restProps","platform","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA;;;AAOA,IAAMA,IAAI,GAAG,wBAAS,MAAT,CAAb;;AACA,IAAMC,IAAyB,GAAG,SAA5BA,IAA4B,OAMjB;AAAA,MALfC,QAKe,QALfA,QAKe;AAAA,yBAJfC,MAIe;AAAA,MAJfA,MAIe,4BAJN,SAIM;AAAA,4BAHfC,SAGe;AAAA,MAHfA,SAGe,+BAHH,MAGG;AAAA,MAFfC,UAEe,QAFfA,UAEe;AAAA,MADZC,SACY;AACf,MAAMC,QAAQ,GAAG,+BAAjB;;AAEA,MAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,OAAON,SAAP,KAAqB,QAA/D,IAA2EC,UAA/E,EAA2F;AACzFL,IAAAA,IAAI,CAAC,iDAAD,CAAJ;AACD;;AAED,SACE,qCAAC,SAAD,6BACMM,SADN;AAEE,IAAA,GAAG,EAAED,UAFP;AAGE,IAAA,SAAS,EAAE,4BAAW,gCAAa,MAAb,EAAqBE,QAArB,CAAX,oBAAsDJ,MAAtD;AAHb,MAKGD,QALH,CADF;AASD,CAtBD;;eAwBeD,I","sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport { HasComponent, HasRootRef } from '../../../types';\nimport { warnOnce } from '../../../lib/warnOnce';\nimport './Text.css';\n\nexport interface TextProps extends React.AllHTMLAttributes<HTMLElement>, HasRootRef<HTMLElement>, HasComponent {\n weight: 'regular' | 'medium' | 'semibold';\n}\n\nconst warn = warnOnce('Text');\nconst Text: React.FC<TextProps> = ({\n children,\n weight = 'regular',\n Component = 'span',\n getRootRef,\n ...restProps\n}: TextProps) => {\n const platform = usePlatform();\n\n if (process.env.NODE_ENV === 'development' && typeof Component !== 'string' && getRootRef) {\n warn('getRootRef can only be used with DOM components');\n }\n\n return (\n <Component\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(getClassName('Text', platform), `Text--w-${weight}`)}\n >\n {children}\n </Component>\n );\n};\n\nexport default Text;\n"],"file":"Text.js"}
@@ -1,9 +1,9 @@
1
1
  import * as React from 'react';
2
+ import { HasComponent } from '../../../types';
2
3
  import './Title.css';
3
- export interface TitleProps extends React.AllHTMLAttributes<HTMLElement> {
4
+ export interface TitleProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {
4
5
  weight: 'heavy' | 'bold' | 'semibold' | 'medium' | 'regular';
5
6
  level: '1' | '2' | '3';
6
- Component?: React.ElementType;
7
7
  }
8
8
  declare const Title: React.FC<TitleProps>;
9
9
  export default Title;
@@ -27,13 +27,18 @@ var _excluded = ["children", "weight", "level", "Component"];
27
27
 
28
28
  var Title = function Title(_ref) {
29
29
  var children = _ref.children,
30
- weight = _ref.weight,
31
- level = _ref.level,
32
- _ref$Component = _ref.Component,
33
- Component = _ref$Component === void 0 ? 'h' + level : _ref$Component,
30
+ _ref$weight = _ref.weight,
31
+ weight = _ref$weight === void 0 ? 'regular' : _ref$weight,
32
+ _ref$level = _ref.level,
33
+ level = _ref$level === void 0 ? '1' : _ref$level,
34
+ Component = _ref.Component,
34
35
  restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
35
36
  var platform = (0, _usePlatform.usePlatform)();
36
37
 
38
+ if (!Component) {
39
+ Component = 'h' + level;
40
+ }
41
+
37
42
  if (platform === _platform.ANDROID && level === '3') {
38
43
  var headlineWeight = weight === 'regular' ? weight : 'medium';
39
44
  return (0, _jsxRuntime.createScopedElement)(_Headline.default, (0, _extends2.default)({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Typography/Title/Title.tsx"],"names":["Title","children","weight","level","Component","restProps","platform","ANDROID","headlineWeight"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AASA,IAAMA,KAA2B,GAAG,SAA9BA,KAA8B,OAMlB;AAAA,MALhBC,QAKgB,QALhBA,QAKgB;AAAA,MAJhBC,MAIgB,QAJhBA,MAIgB;AAAA,MAHhBC,KAGgB,QAHhBA,KAGgB;AAAA,4BAFhBC,SAEgB;AAAA,MAFhBA,SAEgB,+BAFH,MAAMD,KAEH;AAAA,MADbE,SACa;AAChB,MAAMC,QAAQ,GAAG,+BAAjB;;AAEA,MAAIA,QAAQ,KAAKC,iBAAb,IAAwBJ,KAAK,KAAK,GAAtC,EAA2C;AACzC,QAAMK,cAAuC,GAAGN,MAAM,KAAK,SAAX,GAAuBA,MAAvB,GAAgC,QAAhF;AAEA,WACE,qCAAC,iBAAD;AACE,MAAA,SAAS,EAAEE;AADb,OAEMC,SAFN;AAGE,MAAA,MAAM,EAAEG;AAHV,QAKGP,QALH,CADF;AASD;;AAED,SACE,qCAAC,SAAD,6BACMI,SADN;AAEE,IAAA,SAAS,EACP,4BACE,gCAAa,OAAb,EAAsBC,QAAtB,CADF,qBAEcJ,MAFd,sBAGcC,KAHd;AAHJ,MAUGF,QAVH,CADF;AAcD,CArCD;;eAuCeD,K","sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport { ANDROID } from '../../../lib/platform';\nimport Headline, { HeadlineProps } from '../Headline/Headline';\nimport './Title.css';\n\nexport interface TitleProps extends React.AllHTMLAttributes<HTMLElement> {\n weight: 'heavy' | 'bold' | 'semibold' | 'medium' | 'regular';\n level: '1' | '2' | '3';\n Component?: React.ElementType;\n}\n\nconst Title: React.FC<TitleProps> = ({\n children,\n weight,\n level,\n Component = ('h' + level) as React.ElementType,\n ...restProps\n}: TitleProps) => {\n const platform = usePlatform();\n\n if (platform === ANDROID && level === '3') {\n const headlineWeight: HeadlineProps['weight'] = weight === 'regular' ? weight : 'medium';\n\n return (\n <Headline\n Component={Component}\n {...restProps}\n weight={headlineWeight}\n >\n {children}\n </Headline>\n );\n }\n\n return (\n <Component\n {...restProps}\n vkuiClass={\n classNames(\n getClassName('Title', platform),\n `Title--w-${weight}`,\n `Title--l-${level}`,\n )\n }\n >\n {children}\n </Component>\n );\n};\n\nexport default Title;\n"],"file":"Title.js"}
1
+ {"version":3,"sources":["../../../../../src/components/Typography/Title/Title.tsx"],"names":["Title","children","weight","level","Component","restProps","platform","ANDROID","headlineWeight"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;AAQA,IAAMA,KAA2B,GAAG,SAA9BA,KAA8B,OAMlB;AAAA,MALhBC,QAKgB,QALhBA,QAKgB;AAAA,yBAJhBC,MAIgB;AAAA,MAJhBA,MAIgB,4BAJP,SAIO;AAAA,wBAHhBC,KAGgB;AAAA,MAHhBA,KAGgB,2BAHR,GAGQ;AAAA,MAFhBC,SAEgB,QAFhBA,SAEgB;AAAA,MADbC,SACa;AAChB,MAAMC,QAAQ,GAAG,+BAAjB;;AAEA,MAAI,CAACF,SAAL,EAAgB;AACdA,IAAAA,SAAS,GAAI,MAAMD,KAAnB;AACD;;AAED,MAAIG,QAAQ,KAAKC,iBAAb,IAAwBJ,KAAK,KAAK,GAAtC,EAA2C;AACzC,QAAMK,cAAuC,GAAGN,MAAM,KAAK,SAAX,GAAuBA,MAAvB,GAAgC,QAAhF;AAEA,WACE,qCAAC,iBAAD;AACE,MAAA,SAAS,EAAEE;AADb,OAEMC,SAFN;AAGE,MAAA,MAAM,EAAEG;AAHV,QAKGP,QALH,CADF;AASD;;AAED,SACE,qCAAC,SAAD,6BACMI,SADN;AAEE,IAAA,SAAS,EACP,4BACE,gCAAa,OAAb,EAAsBC,QAAtB,CADF,qBAEcJ,MAFd,sBAGcC,KAHd;AAHJ,MAUGF,QAVH,CADF;AAcD,CAzCD;;eA2CeD,K","sourcesContent":["import * as React from 'react';\nimport { HasComponent } from '../../../types';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { classNames } from '../../../lib/classNames';\nimport { getClassName } from '../../../helpers/getClassName';\nimport { ANDROID } from '../../../lib/platform';\nimport Headline, { HeadlineProps } from '../Headline/Headline';\nimport './Title.css';\n\nexport interface TitleProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {\n weight: 'heavy' | 'bold' | 'semibold' | 'medium' | 'regular';\n level: '1' | '2' | '3';\n}\n\nconst Title: React.FC<TitleProps> = ({\n children,\n weight = 'regular',\n level = '1',\n Component,\n ...restProps\n}: TitleProps) => {\n const platform = usePlatform();\n\n if (!Component) {\n Component = ('h' + level) as React.ElementType;\n }\n\n if (platform === ANDROID && level === '3') {\n const headlineWeight: HeadlineProps['weight'] = weight === 'regular' ? weight : 'medium';\n\n return (\n <Headline\n Component={Component}\n {...restProps}\n weight={headlineWeight}\n >\n {children}\n </Headline>\n );\n }\n\n return (\n <Component\n {...restProps}\n vkuiClass={\n classNames(\n getClassName('Title', platform),\n `Title--w-${weight}`,\n `Title--l-${level}`,\n )\n }\n >\n {children}\n </Component>\n );\n};\n\nexport default Title;\n"],"file":"Title.js"}
@@ -59,6 +59,8 @@ var _getNavId = require("../../lib/getNavId");
59
59
 
60
60
  var _warnOnce = require("../../lib/warnOnce");
61
61
 
62
+ var _utils = require("./utils");
63
+
62
64
  var _excluded = ["popout", "modal", "platform", "activePanel", "splitCol", "configProvider", "history", "nav", "onTransition", "onSwipeBack", "onSwipeBackStart", "onSwipeBackCancel", "window", "document", "scroll"];
63
65
  var warn = (0, _warnOnce.warnOnce)('View');
64
66
  var SwipeBackResults;
@@ -70,7 +72,6 @@ var SwipeBackResults;
70
72
 
71
73
  var scrollsCache = {};
72
74
  exports.scrollsCache = scrollsCache;
73
- var swipeBackExcludedTags = ['input', 'textarea'];
74
75
 
75
76
  var View = /*#__PURE__*/function (_React$Component) {
76
77
  (0, _inherits2.default)(View, _React$Component);
@@ -88,29 +89,7 @@ var View = /*#__PURE__*/function (_React$Component) {
88
89
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "panelNodes", {});
89
90
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "transitionEndHandler", function (e) {
90
91
  if (!e || ['vkui-animation-ios-next-forward', 'vkui-animation-ios-prev-back', 'vkui-animation-view-next-forward', 'vkui-animation-view-prev-back'].includes(e.animationName)) {
91
- var activePanel = _this.props.activePanel;
92
- var isBack = _this.state.isBack;
93
- var prevPanel = _this.state.prevPanel;
94
-
95
- if (isBack) {
96
- _this.scrolls[prevPanel] = 0;
97
- }
98
-
99
- _this.setState({
100
- prevPanel: null,
101
- nextPanel: null,
102
- visiblePanels: [activePanel],
103
- activePanel: activePanel,
104
- animated: false,
105
- isBack: undefined
106
- }, function () {
107
- isBack && _this.props.scroll.scrollTo(0, _this.scrolls[activePanel]);
108
- _this.props.onTransition && _this.props.onTransition({
109
- isBack: isBack,
110
- from: prevPanel,
111
- to: activePanel
112
- });
113
- });
92
+ _this.flushTransition(_this.state.prevPanel, _this.state.isBack);
114
93
  }
115
94
  });
116
95
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "swipingBackTransitionEndHandler", function (e) {
@@ -129,9 +108,7 @@ var View = /*#__PURE__*/function (_React$Component) {
129
108
  }
130
109
  });
131
110
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onMoveX", function (e) {
132
- var target = e.originalEvent.target;
133
-
134
- if (target && typeof target.tagName === 'string' && swipeBackExcludedTags.includes(target.tagName.toLowerCase())) {
111
+ if ((0, _utils.swipeBackExcluded)(e)) {
135
112
  return;
136
113
  }
137
114
 
@@ -254,16 +231,26 @@ var View = /*#__PURE__*/function (_React$Component) {
254
231
  return id === prevProps.activePanel || id === _this2.props.activePanel;
255
232
  });
256
233
  var isBack = firstLayerId === this.props.activePanel;
257
- this.blurActiveElement();
258
234
  this.scrolls[prevProps.activePanel] = this.props.scroll.getScroll().y;
259
- this.setState({
260
- visiblePanels: [prevProps.activePanel, this.props.activePanel],
261
- prevPanel: prevProps.activePanel,
262
- nextPanel: this.props.activePanel,
263
- activePanel: null,
264
- animated: true,
265
- isBack: isBack
266
- });
235
+
236
+ if (this.shouldDisableTransitionMotion()) {
237
+ this.flushTransition(prevProps.activePanel, isBack);
238
+ } else {
239
+ this.blurActiveElement();
240
+ this.setState({
241
+ visiblePanels: [prevProps.activePanel, this.props.activePanel],
242
+ prevPanel: prevProps.activePanel,
243
+ nextPanel: this.props.activePanel,
244
+ activePanel: null,
245
+ animated: true,
246
+ isBack: isBack
247
+ }); // Фолбек анимации перехода
248
+
249
+ if (!_supportEvents.animationEvent.supported) {
250
+ clearTimeout(this.animationFinishTimeout);
251
+ this.animationFinishTimeout = setTimeout(this.transitionEndHandler, this.props.platform === _platform.ANDROID || this.props.platform === _platform.VKCOM ? 300 : 600);
252
+ }
253
+ }
267
254
  } // Закончилась анимация свайпа назад
268
255
 
269
256
 
@@ -289,15 +276,6 @@ var View = /*#__PURE__*/function (_React$Component) {
289
276
  to: nextPanel
290
277
  });
291
278
  });
292
- } // Начался переход
293
-
294
-
295
- if (!prevState.animated && this.state.animated) {
296
- var _this$state = this.state,
297
- _prevPanel = _this$state.prevPanel,
298
- _nextPanel = _this$state.nextPanel,
299
- _isBack = _this$state.isBack;
300
- this.waitAnimationFinish(this.pickPanel(_isBack ? _prevPanel : _nextPanel), this.transitionEndHandler);
301
279
  } // Начался свайп назад
302
280
 
303
281
 
@@ -343,22 +321,6 @@ var View = /*#__PURE__*/function (_React$Component) {
343
321
  this.transitionFinishTimeout = setTimeout(eventHandler, this.props.platform === _platform.ANDROID || this.props.platform === _platform.VKCOM ? 300 : 600);
344
322
  }
345
323
  }
346
- }, {
347
- key: "waitAnimationFinish",
348
- value: function waitAnimationFinish(elem, eventHandler) {
349
- if (this.shouldDisableTransitionMotion()) {
350
- eventHandler();
351
- return;
352
- }
353
-
354
- if (_supportEvents.animationEvent.supported) {
355
- elem.removeEventListener(_supportEvents.animationEvent.name, eventHandler);
356
- elem.addEventListener(_supportEvents.animationEvent.name, eventHandler);
357
- } else {
358
- clearTimeout(this.animationFinishTimeout);
359
- this.animationFinishTimeout = setTimeout(eventHandler, this.props.platform === _platform.ANDROID || this.props.platform === _platform.VKCOM ? 300 : 600);
360
- }
361
- }
362
324
  }, {
363
325
  key: "blurActiveElement",
364
326
  value: function blurActiveElement() {
@@ -371,6 +333,34 @@ var View = /*#__PURE__*/function (_React$Component) {
371
333
  value: function pickPanel(id) {
372
334
  return this.panelNodes[id];
373
335
  }
336
+ }, {
337
+ key: "flushTransition",
338
+ value: function flushTransition(prevPanel, isBack) {
339
+ var _this3 = this;
340
+
341
+ var activePanel = this.props.activePanel;
342
+
343
+ if (isBack) {
344
+ this.scrolls[prevPanel] = 0;
345
+ }
346
+
347
+ this.setState({
348
+ prevPanel: null,
349
+ nextPanel: null,
350
+ visiblePanels: [activePanel],
351
+ activePanel: activePanel,
352
+ animated: false,
353
+ isBack: undefined
354
+ }, function () {
355
+ _this3.props.scroll.scrollTo(0, isBack ? _this3.scrolls[activePanel] : 0);
356
+
357
+ _this3.props.onTransition && _this3.props.onTransition({
358
+ isBack: isBack,
359
+ from: prevPanel,
360
+ to: activePanel
361
+ });
362
+ });
363
+ }
374
364
  }, {
375
365
  key: "onSwipeBackSuccess",
376
366
  value: function onSwipeBackSuccess() {
@@ -433,7 +423,7 @@ var View = /*#__PURE__*/function (_React$Component) {
433
423
  }, {
434
424
  key: "render",
435
425
  value: function render() {
436
- var _this3 = this;
426
+ var _this4 = this;
437
427
 
438
428
  var _this$props2 = this.props,
439
429
  popout = _this$props2.popout,
@@ -452,23 +442,24 @@ var View = /*#__PURE__*/function (_React$Component) {
452
442
  document = _this$props2.document,
453
443
  scroll = _this$props2.scroll,
454
444
  restProps = (0, _objectWithoutProperties2.default)(_this$props2, _excluded);
455
- var _this$state2 = this.state,
456
- prevPanel = _this$state2.prevPanel,
457
- nextPanel = _this$state2.nextPanel,
458
- activePanel = _this$state2.activePanel,
459
- swipeBackPrevPanel = _this$state2.swipeBackPrevPanel,
460
- swipeBackNextPanel = _this$state2.swipeBackNextPanel,
461
- swipeBackResult = _this$state2.swipeBackResult,
462
- isBack = _this$state2.isBack;
445
+ var _this$state = this.state,
446
+ prevPanel = _this$state.prevPanel,
447
+ nextPanel = _this$state.nextPanel,
448
+ activePanel = _this$state.activePanel,
449
+ swipeBackPrevPanel = _this$state.swipeBackPrevPanel,
450
+ swipeBackNextPanel = _this$state.swipeBackNextPanel,
451
+ swipeBackResult = _this$state.swipeBackResult,
452
+ isBack = _this$state.isBack,
453
+ animated = _this$state.animated;
463
454
  var hasPopout = !!popout;
464
455
  var hasModal = !!modal;
465
456
  var panels = this.panels.filter(function (panel) {
466
457
  var panelId = (0, _getNavId.getNavId)(panel.props, warn);
467
- return _this3.state.visiblePanels.includes(panelId) || panelId === swipeBackPrevPanel || panelId === swipeBackNextPanel;
458
+ return _this4.state.visiblePanels.includes(panelId) || panelId === swipeBackPrevPanel || panelId === swipeBackNextPanel;
468
459
  });
469
460
  var disableAnimation = this.shouldDisableTransitionMotion();
470
461
  var modifiers = {
471
- 'View--animated': !disableAnimation && this.state.animated,
462
+ 'View--animated': !disableAnimation && animated,
472
463
  'View--swiping-back': !disableAnimation && this.state.swipingBack,
473
464
  'View--no-motion': disableAnimation
474
465
  };
@@ -483,6 +474,7 @@ var View = /*#__PURE__*/function (_React$Component) {
483
474
  }, panels.map(function (panel) {
484
475
  var panelId = (0, _getNavId.getNavId)(panel.props, warn);
485
476
  var isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;
477
+ var isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);
486
478
  var compensateScroll = isPrev || panelId === swipeBackNextPanel || panelId === nextPanel && isBack;
487
479
  return (0, _jsxRuntime.createScopedElement)("div", {
488
480
  vkuiClass: (0, _classNames.classNames)('View__panel', {
@@ -494,15 +486,16 @@ var View = /*#__PURE__*/function (_React$Component) {
494
486
  'View__panel--swipe-back-success': swipeBackResult === SwipeBackResults.success,
495
487
  'View__panel--swipe-back-failed': swipeBackResult === SwipeBackResults.fail
496
488
  }),
489
+ onAnimationEnd: isTransitionTarget ? _this4.transitionEndHandler : null,
497
490
  ref: function ref(el) {
498
- return _this3.panelNodes[panelId] = el;
491
+ return _this4.panelNodes[panelId] = el;
499
492
  },
500
- style: _this3.calcPanelSwipeStyles(panelId),
493
+ style: _this4.calcPanelSwipeStyles(panelId),
501
494
  key: panelId
502
495
  }, (0, _jsxRuntime.createScopedElement)("div", {
503
496
  vkuiClass: "View__panel-in",
504
497
  style: {
505
- marginTop: compensateScroll ? -_this3.scrolls[panelId] : null
498
+ marginTop: compensateScroll ? -_this4.scrolls[panelId] : null
506
499
  }
507
500
  }, (0, _jsxRuntime.createScopedElement)(_NavTransitionContext.NavTransitionProvider, {
508
501
  entering: panelId === nextPanel || panelId === swipeBackNextPanel