@vkontakte/vkui 5.3.2 → 5.4.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 (792) hide show
  1. package/dist/cjs/components/Accordion/Accordion.d.ts +2 -2
  2. package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
  3. package/dist/cjs/components/Accordion/AccordionSummary.d.ts +1 -1
  4. package/dist/cjs/components/Accordion/AccordionSummary.js.map +1 -1
  5. package/dist/cjs/components/ActionSheet/types.d.ts +1 -1
  6. package/dist/cjs/components/ActionSheet/types.js.map +1 -1
  7. package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
  8. package/dist/cjs/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +4 -4
  9. package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
  10. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  11. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  12. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  13. package/dist/cjs/components/AppRoot/AppRootPortal.d.ts +3 -3
  14. package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
  15. package/dist/cjs/components/AppRoot/ScrollContext.d.ts +2 -2
  16. package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
  17. package/dist/cjs/components/Button/Button.d.ts +1 -0
  18. package/dist/cjs/components/Button/Button.js +2 -2
  19. package/dist/cjs/components/Button/Button.js.map +1 -1
  20. package/dist/cjs/components/Card/Card.js +1 -3
  21. package/dist/cjs/components/Card/Card.js.map +1 -1
  22. package/dist/cjs/components/CardGrid/CardGrid.js +4 -4
  23. package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
  24. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
  25. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +10 -6
  26. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  27. package/dist/cjs/components/Checkbox/Checkbox.d.ts +2 -1
  28. package/dist/cjs/components/Checkbox/Checkbox.js +12 -8
  29. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  30. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  31. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +3 -2
  32. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  33. package/dist/cjs/components/Counter/Counter.js +3 -5
  34. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  35. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +3 -0
  36. package/dist/cjs/components/CustomSelect/CustomSelect.js +1 -1
  37. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  38. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +1 -1
  39. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  40. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +1 -1
  41. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  42. package/dist/cjs/components/Epic/ScrollSaver.d.ts +3 -3
  43. package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
  44. package/dist/cjs/components/File/File.js +4 -3
  45. package/dist/cjs/components/File/File.js.map +1 -1
  46. package/dist/cjs/components/FixedLayout/FixedLayout.js +1 -1
  47. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  48. package/dist/cjs/components/FocusVisible/FocusVisible.d.ts +4 -2
  49. package/dist/cjs/components/FocusVisible/FocusVisible.js +4 -3
  50. package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
  51. package/dist/cjs/components/FormField/FormField.js +10 -1
  52. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  53. package/dist/cjs/components/FormItem/FormItem.d.ts +3 -1
  54. package/dist/cjs/components/FormItem/FormItem.js +2 -1
  55. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  56. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
  57. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  58. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  59. package/dist/cjs/components/Group/Group.d.ts +5 -3
  60. package/dist/cjs/components/Group/Group.js +2 -2
  61. package/dist/cjs/components/Group/Group.js.map +1 -1
  62. package/dist/cjs/components/Header/Header.js +20 -16
  63. package/dist/cjs/components/Header/Header.js.map +1 -1
  64. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
  65. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +4 -1
  66. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  67. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
  68. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js +6 -2
  69. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  70. package/dist/cjs/components/HoverPopper/HoverPopper.d.ts +1 -1
  71. package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
  72. package/dist/cjs/components/IconButton/IconButton.d.ts +3 -3
  73. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  74. package/dist/cjs/components/LocaleProvider/LocaleProvider.d.ts +2 -2
  75. package/dist/cjs/components/LocaleProvider/LocaleProvider.js.map +1 -1
  76. package/dist/cjs/components/ModalPage/ModalPage.d.ts +1 -1
  77. package/dist/cjs/components/ModalPage/ModalPage.js +19 -3
  78. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  79. package/dist/cjs/components/ModalPage/ModalPageContext.d.ts +5 -0
  80. package/dist/cjs/components/{Typography/types.js → ModalPage/ModalPageContext.js} +8 -1
  81. package/dist/cjs/components/ModalPage/ModalPageContext.js.map +1 -0
  82. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +6 -1
  83. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  84. package/dist/cjs/components/ModalRoot/ModalRoot.d.ts +2 -27
  85. package/dist/cjs/components/ModalRoot/ModalRoot.js +13 -22
  86. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  87. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
  88. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  89. package/dist/cjs/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
  90. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +145 -219
  91. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  92. package/dist/cjs/components/ModalRoot/types.d.ts +28 -0
  93. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  94. package/dist/cjs/components/ModalRoot/useModalManager.d.ts +6 -5
  95. package/dist/cjs/components/ModalRoot/useModalManager.js +3 -3
  96. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
  97. package/dist/cjs/components/NativeSelect/NativeSelect.d.ts +6 -2
  98. package/dist/cjs/components/NativeSelect/NativeSelect.js +6 -3
  99. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  100. package/dist/cjs/components/Panel/Panel.js +2 -2
  101. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  102. package/dist/cjs/components/PanelHeader/PanelHeader.d.ts +11 -2
  103. package/dist/cjs/components/PanelHeader/PanelHeader.js +17 -7
  104. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  105. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  106. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  107. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  108. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
  109. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  110. package/dist/cjs/components/PlatformProvider/PlatformProvider.d.ts +1 -1
  111. package/dist/cjs/components/PlatformProvider/PlatformProvider.js.map +1 -1
  112. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  113. package/dist/cjs/components/Popover/Popover.d.ts +3 -2
  114. package/dist/cjs/components/Popover/Popover.js +5 -3
  115. package/dist/cjs/components/Popover/Popover.js.map +1 -1
  116. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  117. package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +3 -4
  118. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  119. package/dist/cjs/components/Radio/Radio.d.ts +2 -1
  120. package/dist/cjs/components/Radio/Radio.js +14 -8
  121. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  122. package/dist/cjs/components/Removable/Removable.d.ts +7 -2
  123. package/dist/cjs/components/Removable/Removable.js +4 -3
  124. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  125. package/dist/cjs/components/Root/Root.js.map +1 -1
  126. package/dist/cjs/components/Search/Search.d.ts +3 -1
  127. package/dist/cjs/components/Search/Search.js +42 -57
  128. package/dist/cjs/components/Search/Search.js.map +1 -1
  129. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
  130. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +8 -4
  131. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  132. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +1 -1
  133. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  134. package/dist/cjs/components/SelectTypography/SelectTypography.d.ts +2 -3
  135. package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
  136. package/dist/cjs/components/SimpleCell/SimpleCell.js +8 -5
  137. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  138. package/dist/cjs/components/Spacing/Spacing.d.ts +2 -2
  139. package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
  140. package/dist/cjs/components/SplitCol/SplitCol.js +1 -0
  141. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  142. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +1 -3
  143. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  144. package/dist/cjs/components/Switch/Switch.d.ts +4 -5
  145. package/dist/cjs/components/Switch/Switch.js +12 -8
  146. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  147. package/dist/cjs/components/Tabbar/Tabbar.js +2 -4
  148. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  149. package/dist/cjs/components/TabbarItem/TabbarItem.js +1 -1
  150. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  151. package/dist/cjs/components/Tappable/Tappable.d.ts +2 -3
  152. package/dist/cjs/components/Tappable/Tappable.js +1 -0
  153. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  154. package/dist/cjs/components/Typography/Caption/Caption.d.ts +2 -2
  155. package/dist/cjs/components/Typography/Caption/Caption.js +10 -13
  156. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  157. package/dist/cjs/components/Typography/Footnote/Footnote.d.ts +2 -2
  158. package/dist/cjs/components/Typography/Footnote/Footnote.js +10 -13
  159. package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
  160. package/dist/cjs/components/Typography/Headline/Headline.d.ts +3 -4
  161. package/dist/cjs/components/Typography/Headline/Headline.js +9 -12
  162. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  163. package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts +3 -5
  164. package/dist/cjs/components/Typography/Paragraph/Paragraph.js +8 -13
  165. package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
  166. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +2 -2
  167. package/dist/cjs/components/Typography/Subhead/Subhead.js +9 -12
  168. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  169. package/dist/cjs/components/Typography/Text/Text.d.ts +3 -5
  170. package/dist/cjs/components/Typography/Text/Text.js +8 -13
  171. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  172. package/dist/cjs/components/Typography/Title/Title.d.ts +2 -2
  173. package/dist/cjs/components/Typography/Title/Title.js +10 -13
  174. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  175. package/dist/cjs/components/Typography/Typography.d.ts +16 -0
  176. package/dist/cjs/components/Typography/Typography.js +35 -0
  177. package/dist/cjs/components/Typography/Typography.js.map +1 -0
  178. package/dist/cjs/components/UsersStack/UsersStack.d.ts +2 -2
  179. package/dist/cjs/components/UsersStack/UsersStack.js +2 -1
  180. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  181. package/dist/cjs/components/View/View.js +1 -1
  182. package/dist/cjs/components/View/View.js.map +1 -1
  183. package/dist/cjs/components/View/ViewInfinite.js +1 -1
  184. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  185. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
  186. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js +29 -0
  187. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
  188. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
  189. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js +5 -0
  190. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  191. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +2 -2
  192. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  193. package/dist/cjs/helpers/getPlatformClassName.js +1 -1
  194. package/dist/cjs/helpers/getPlatformClassName.js.map +1 -1
  195. package/dist/cjs/hooks/useFocusWithin.d.ts +2 -0
  196. package/dist/cjs/hooks/useFocusWithin.js +38 -0
  197. package/dist/cjs/hooks/useFocusWithin.js.map +1 -0
  198. package/dist/cjs/hooks/useId.js +1 -1
  199. package/dist/cjs/hooks/useId.js.map +1 -1
  200. package/dist/cjs/hooks/useWaitTransitionFinish.d.ts +1 -1
  201. package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
  202. package/dist/cjs/index.d.ts +4 -2
  203. package/dist/cjs/index.js +8 -0
  204. package/dist/cjs/index.js.map +1 -1
  205. package/dist/cjs/lib/utils.js +2 -2
  206. package/dist/cjs/lib/utils.js.map +1 -1
  207. package/dist/components/Accordion/Accordion.d.ts +2 -2
  208. package/dist/components/Accordion/Accordion.js +2 -2
  209. package/dist/components/Accordion/Accordion.js.map +1 -1
  210. package/dist/components/Accordion/AccordionSummary.d.ts +1 -1
  211. package/dist/components/Accordion/AccordionSummary.js +1 -1
  212. package/dist/components/Accordion/AccordionSummary.js.map +1 -1
  213. package/dist/components/ActionSheet/types.d.ts +1 -1
  214. package/dist/components/ActionSheet/types.js.map +1 -1
  215. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
  216. package/dist/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +5 -2
  217. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
  218. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  219. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  220. package/dist/components/Alert/Alert.js.map +1 -1
  221. package/dist/components/AppRoot/AppRootPortal.d.ts +3 -3
  222. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  223. package/dist/components/AppRoot/ScrollContext.d.ts +2 -2
  224. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  225. package/dist/components/Button/Button.d.ts +1 -0
  226. package/dist/components/Button/Button.js +2 -2
  227. package/dist/components/Button/Button.js.map +1 -1
  228. package/dist/components/Card/Card.js +1 -3
  229. package/dist/components/Card/Card.js.map +1 -1
  230. package/dist/components/CardGrid/CardGrid.js +4 -4
  231. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  232. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
  233. package/dist/components/Cell/CellCheckbox/CellCheckbox.js +10 -6
  234. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  235. package/dist/components/Checkbox/Checkbox.d.ts +2 -1
  236. package/dist/components/Checkbox/Checkbox.js +12 -8
  237. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  238. package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  239. package/dist/components/ChipsSelect/ChipsSelect.js +3 -2
  240. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  241. package/dist/components/Counter/Counter.js +4 -6
  242. package/dist/components/Counter/Counter.js.map +1 -1
  243. package/dist/components/CustomSelect/CustomSelect.d.ts +3 -0
  244. package/dist/components/CustomSelect/CustomSelect.js +1 -1
  245. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  246. package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -1
  247. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  248. package/dist/components/DateRangeInput/DateRangeInput.js +1 -1
  249. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  250. package/dist/components/Epic/ScrollSaver.d.ts +3 -3
  251. package/dist/components/Epic/ScrollSaver.js.map +1 -1
  252. package/dist/components/File/File.js +4 -3
  253. package/dist/components/File/File.js.map +1 -1
  254. package/dist/components/FixedLayout/FixedLayout.js +1 -1
  255. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  256. package/dist/components/FocusVisible/FocusVisible.d.ts +4 -2
  257. package/dist/components/FocusVisible/FocusVisible.js +4 -3
  258. package/dist/components/FocusVisible/FocusVisible.js.map +1 -1
  259. package/dist/components/FormField/FormField.js +10 -1
  260. package/dist/components/FormField/FormField.js.map +1 -1
  261. package/dist/components/FormItem/FormItem.d.ts +3 -1
  262. package/dist/components/FormItem/FormItem.js +2 -1
  263. package/dist/components/FormItem/FormItem.js.map +1 -1
  264. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
  265. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  266. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  267. package/dist/components/Group/Group.d.ts +5 -3
  268. package/dist/components/Group/Group.js +5 -3
  269. package/dist/components/Group/Group.js.map +1 -1
  270. package/dist/components/Header/Header.js +20 -16
  271. package/dist/components/Header/Header.js.map +1 -1
  272. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
  273. package/dist/components/HorizontalScroll/HorizontalScroll.js +4 -1
  274. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  275. package/dist/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
  276. package/dist/components/HorizontalScroll/HorizontalScrollArrow.js +6 -2
  277. package/dist/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  278. package/dist/components/HoverPopper/HoverPopper.d.ts +1 -1
  279. package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
  280. package/dist/components/IconButton/IconButton.d.ts +3 -3
  281. package/dist/components/IconButton/IconButton.js.map +1 -1
  282. package/dist/components/LocaleProvider/LocaleProvider.d.ts +2 -2
  283. package/dist/components/LocaleProvider/LocaleProvider.js +2 -2
  284. package/dist/components/LocaleProvider/LocaleProvider.js.map +1 -1
  285. package/dist/components/ModalPage/ModalPage.d.ts +1 -1
  286. package/dist/components/ModalPage/ModalPage.js +19 -3
  287. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  288. package/dist/components/ModalPage/ModalPageContext.d.ts +5 -0
  289. package/dist/components/ModalPage/ModalPageContext.js +4 -0
  290. package/dist/components/ModalPage/ModalPageContext.js.map +1 -0
  291. package/dist/components/ModalPageHeader/ModalPageHeader.js +6 -1
  292. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  293. package/dist/components/ModalRoot/ModalRoot.d.ts +2 -27
  294. package/dist/components/ModalRoot/ModalRoot.js +13 -22
  295. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  296. package/dist/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
  297. package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  298. package/dist/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
  299. package/dist/components/ModalRoot/ModalRootDesktop.js +149 -223
  300. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  301. package/dist/components/ModalRoot/types.d.ts +28 -0
  302. package/dist/components/ModalRoot/types.js.map +1 -1
  303. package/dist/components/ModalRoot/useModalManager.d.ts +6 -5
  304. package/dist/components/ModalRoot/useModalManager.js +3 -3
  305. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  306. package/dist/components/NativeSelect/NativeSelect.d.ts +6 -2
  307. package/dist/components/NativeSelect/NativeSelect.js +6 -3
  308. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  309. package/dist/components/Panel/Panel.js +2 -2
  310. package/dist/components/Panel/Panel.js.map +1 -1
  311. package/dist/components/PanelHeader/PanelHeader.d.ts +11 -2
  312. package/dist/components/PanelHeader/PanelHeader.js +17 -7
  313. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  314. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  315. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  316. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  317. package/dist/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
  318. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  319. package/dist/components/PlatformProvider/PlatformProvider.d.ts +1 -1
  320. package/dist/components/PlatformProvider/PlatformProvider.js +1 -1
  321. package/dist/components/PlatformProvider/PlatformProvider.js.map +1 -1
  322. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  323. package/dist/components/Popover/Popover.d.ts +3 -2
  324. package/dist/components/Popover/Popover.js +5 -3
  325. package/dist/components/Popover/Popover.js.map +1 -1
  326. package/dist/components/PromoBanner/PromoBanner.js +1 -0
  327. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  328. package/dist/components/PullToRefresh/PullToRefresh.d.ts +3 -4
  329. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  330. package/dist/components/Radio/Radio.d.ts +2 -1
  331. package/dist/components/Radio/Radio.js +14 -8
  332. package/dist/components/Radio/Radio.js.map +1 -1
  333. package/dist/components/Removable/Removable.d.ts +7 -2
  334. package/dist/components/Removable/Removable.js +4 -3
  335. package/dist/components/Removable/Removable.js.map +1 -1
  336. package/dist/components/Root/Root.js.map +1 -1
  337. package/dist/components/Search/Search.d.ts +3 -1
  338. package/dist/components/Search/Search.js +42 -57
  339. package/dist/components/Search/Search.js.map +1 -1
  340. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
  341. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +8 -4
  342. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  343. package/dist/components/SelectMimicry/SelectMimicry.js +1 -1
  344. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  345. package/dist/components/SelectTypography/SelectTypography.d.ts +2 -3
  346. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  347. package/dist/components/SimpleCell/SimpleCell.js +8 -5
  348. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  349. package/dist/components/Spacing/Spacing.d.ts +2 -2
  350. package/dist/components/Spacing/Spacing.js.map +1 -1
  351. package/dist/components/SplitCol/SplitCol.js +1 -0
  352. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  353. package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -3
  354. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  355. package/dist/components/Switch/Switch.d.ts +4 -5
  356. package/dist/components/Switch/Switch.js +12 -8
  357. package/dist/components/Switch/Switch.js.map +1 -1
  358. package/dist/components/Tabbar/Tabbar.js +2 -4
  359. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  360. package/dist/components/TabbarItem/TabbarItem.js +1 -1
  361. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  362. package/dist/components/Tappable/Tappable.d.ts +2 -3
  363. package/dist/components/Tappable/Tappable.js +1 -0
  364. package/dist/components/Tappable/Tappable.js.map +1 -1
  365. package/dist/components/Typography/Caption/Caption.d.ts +2 -2
  366. package/dist/components/Typography/Caption/Caption.js +10 -13
  367. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  368. package/dist/components/Typography/Footnote/Footnote.d.ts +2 -2
  369. package/dist/components/Typography/Footnote/Footnote.js +10 -13
  370. package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
  371. package/dist/components/Typography/Headline/Headline.d.ts +3 -4
  372. package/dist/components/Typography/Headline/Headline.js +9 -12
  373. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  374. package/dist/components/Typography/Paragraph/Paragraph.d.ts +3 -5
  375. package/dist/components/Typography/Paragraph/Paragraph.js +8 -13
  376. package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
  377. package/dist/components/Typography/Subhead/Subhead.d.ts +2 -2
  378. package/dist/components/Typography/Subhead/Subhead.js +9 -12
  379. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  380. package/dist/components/Typography/Text/Text.d.ts +3 -5
  381. package/dist/components/Typography/Text/Text.js +8 -13
  382. package/dist/components/Typography/Text/Text.js.map +1 -1
  383. package/dist/components/Typography/Title/Title.d.ts +2 -2
  384. package/dist/components/Typography/Title/Title.js +10 -13
  385. package/dist/components/Typography/Title/Title.js.map +1 -1
  386. package/dist/components/Typography/Typography.d.ts +16 -0
  387. package/dist/components/Typography/Typography.js +24 -0
  388. package/dist/components/Typography/Typography.js.map +1 -0
  389. package/dist/components/UsersStack/UsersStack.d.ts +2 -2
  390. package/dist/components/UsersStack/UsersStack.js +2 -1
  391. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  392. package/dist/components/View/View.js +1 -1
  393. package/dist/components/View/View.js.map +1 -1
  394. package/dist/components/View/ViewInfinite.js +1 -1
  395. package/dist/components/View/ViewInfinite.js.map +1 -1
  396. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
  397. package/dist/components/VisuallyHidden/VisuallyHidden.js +25 -0
  398. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
  399. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
  400. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js +9 -4
  401. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  402. package/dist/components/WriteBarIcon/WriteBarIcon.js +2 -2
  403. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  404. package/dist/components.css +49 -49
  405. package/dist/components.css.map +1 -1
  406. package/dist/components.js.tmp +3803 -3693
  407. package/dist/cssm/components/Accordion/Accordion.d.ts +2 -2
  408. package/dist/cssm/components/Accordion/Accordion.js +2 -2
  409. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  410. package/dist/cssm/components/Accordion/Accordion.module.css +13 -1
  411. package/dist/cssm/components/Accordion/AccordionSummary.d.ts +1 -1
  412. package/dist/cssm/components/Accordion/AccordionSummary.js +1 -1
  413. package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
  414. package/dist/cssm/components/ActionSheet/ActionSheet.module.css +115 -1
  415. package/dist/cssm/components/ActionSheet/types.d.ts +1 -1
  416. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  417. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +241 -1
  418. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
  419. package/dist/cssm/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +5 -2
  420. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
  421. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  422. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  423. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  424. package/dist/cssm/components/Alert/Alert.module.css +287 -1
  425. package/dist/cssm/components/AppRoot/AppRoot.module.css +23 -1
  426. package/dist/cssm/components/AppRoot/AppRootPortal.d.ts +3 -3
  427. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  428. package/dist/cssm/components/AppRoot/ScrollContext.d.ts +2 -2
  429. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  430. package/dist/cssm/components/Avatar/Avatar.module.css +55 -1
  431. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.module.css +29 -1
  432. package/dist/cssm/components/Badge/Badge.module.css +27 -1
  433. package/dist/cssm/components/Banner/Banner.module.css +167 -1
  434. package/dist/cssm/components/BaseGallery/BaseGallery.module.css +82 -1
  435. package/dist/cssm/components/Button/Button.d.ts +1 -0
  436. package/dist/cssm/components/Button/Button.js +2 -1
  437. package/dist/cssm/components/Button/Button.js.map +1 -1
  438. package/dist/cssm/components/Button/Button.module.css +676 -1
  439. package/dist/cssm/components/ButtonGroup/ButtonGroup.module.css +77 -1
  440. package/dist/cssm/components/Calendar/Calendar.module.css +30 -1
  441. package/dist/cssm/components/CalendarDay/CalendarDay.module.css +84 -1
  442. package/dist/cssm/components/CalendarDays/CalendarDays.module.css +31 -1
  443. package/dist/cssm/components/CalendarHeader/CalendarHeader.module.css +41 -1
  444. package/dist/cssm/components/CalendarRange/CalendarRange.module.css +26 -1
  445. package/dist/cssm/components/CalendarTime/CalendarTime.module.css +19 -1
  446. package/dist/cssm/components/Card/Card.js +1 -3
  447. package/dist/cssm/components/Card/Card.js.map +1 -1
  448. package/dist/cssm/components/Card/Card.module.css +131 -3
  449. package/dist/cssm/components/CardGrid/CardGrid.js +4 -4
  450. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  451. package/dist/cssm/components/CardGrid/CardGrid.module.css +59 -1
  452. package/dist/cssm/components/CardScroll/CardScroll.module.css +64 -1
  453. package/dist/cssm/components/Cell/Cell.module.css +63 -1
  454. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
  455. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +7 -5
  456. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  457. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.module.css +13 -1
  458. package/dist/cssm/components/Cell/CellDragger/CellDragger.module.css +4 -1
  459. package/dist/cssm/components/CellButton/CellButton.module.css +57 -1
  460. package/dist/cssm/components/Checkbox/Checkbox.d.ts +2 -1
  461. package/dist/cssm/components/Checkbox/Checkbox.js +10 -7
  462. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  463. package/dist/cssm/components/Checkbox/Checkbox.module.css +172 -1
  464. package/dist/cssm/components/Chip/Chip.module.css +67 -1
  465. package/dist/cssm/components/ChipsInput/ChipsInput.module.css +3 -1
  466. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +115 -1
  467. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  468. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -2
  469. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  470. package/dist/cssm/components/ChipsSelect/ChipsSelect.module.css +27 -1
  471. package/dist/cssm/components/ContentCard/ContentCard.module.css +31 -1
  472. package/dist/cssm/components/Counter/Counter.js +4 -6
  473. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  474. package/dist/cssm/components/Counter/Counter.module.css +72 -3
  475. package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +86 -1
  476. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +3 -0
  477. package/dist/cssm/components/CustomSelect/CustomSelect.js +1 -1
  478. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  479. package/dist/cssm/components/CustomSelect/CustomSelect.module.css +58 -1
  480. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.module.css +43 -1
  481. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
  482. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  483. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +81 -1
  484. package/dist/cssm/components/DateInput/DateInput.module.css +30 -1
  485. package/dist/cssm/components/DatePicker/DatePicker.module.css +30 -1
  486. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +1 -1
  487. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  488. package/dist/cssm/components/DateRangeInput/DateRangeInput.module.css +26 -1
  489. package/dist/cssm/components/Div/Div.module.css +4 -1
  490. package/dist/cssm/components/Epic/Epic.module.css +4 -1
  491. package/dist/cssm/components/Epic/ScrollSaver.d.ts +3 -3
  492. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  493. package/dist/cssm/components/File/File.js +4 -3
  494. package/dist/cssm/components/File/File.js.map +1 -1
  495. package/dist/cssm/components/FixedLayout/FixedLayout.js +1 -1
  496. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  497. package/dist/cssm/components/FixedLayout/FixedLayout.module.css +58 -1
  498. package/dist/cssm/components/FocusVisible/FocusVisible.d.ts +4 -2
  499. package/dist/cssm/components/FocusVisible/FocusVisible.js +4 -3
  500. package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
  501. package/dist/cssm/components/FocusVisible/FocusVisible.module.css +104 -1
  502. package/dist/cssm/components/Footer/Footer.module.css +9 -1
  503. package/dist/cssm/components/FormField/FormField.js +10 -1
  504. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  505. package/dist/cssm/components/FormField/FormField.module.css +211 -1
  506. package/dist/cssm/components/FormItem/FormItem.d.ts +3 -1
  507. package/dist/cssm/components/FormItem/FormItem.js +2 -1
  508. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  509. package/dist/cssm/components/FormItem/FormItem.module.css +104 -1
  510. package/dist/cssm/components/FormLayout/FormLayout.module.css +18 -1
  511. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
  512. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  513. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  514. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +61 -1
  515. package/dist/cssm/components/FormStatus/FormStatus.module.css +3 -1
  516. package/dist/cssm/components/Gradient/Gradient.module.css +23 -1
  517. package/dist/cssm/components/GridAvatar/GridAvatar.module.css +37 -1
  518. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +9 -1
  519. package/dist/cssm/components/Group/Group.d.ts +5 -3
  520. package/dist/cssm/components/Group/Group.js +5 -3
  521. package/dist/cssm/components/Group/Group.js.map +1 -1
  522. package/dist/cssm/components/Group/Group.module.css +166 -1
  523. package/dist/cssm/components/Header/Header.js +23 -18
  524. package/dist/cssm/components/Header/Header.js.map +1 -1
  525. package/dist/cssm/components/Header/Header.module.css +207 -1
  526. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +79 -1
  527. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
  528. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +3 -1
  529. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  530. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +59 -1
  531. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
  532. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js +5 -2
  533. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  534. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.module.css +67 -1
  535. package/dist/cssm/components/HoverPopper/HoverPopper.d.ts +1 -1
  536. package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
  537. package/dist/cssm/components/IconButton/IconButton.d.ts +3 -3
  538. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  539. package/dist/cssm/components/IconButton/IconButton.module.css +152 -1
  540. package/dist/cssm/components/Image/ImageBadge/ImageBadge.module.css +10 -1
  541. package/dist/cssm/components/ImageBase/ImageBase.module.css +131 -1
  542. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +28 -1
  543. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +36 -1
  544. package/dist/cssm/components/InfoRow/InfoRow.module.css +17 -1
  545. package/dist/cssm/components/Input/Input.module.css +101 -1
  546. package/dist/cssm/components/InputLike/InputLike.module.css +31 -1
  547. package/dist/cssm/components/Link/Link.module.css +43 -1
  548. package/dist/cssm/components/List/List.module.css +3 -1
  549. package/dist/cssm/components/LocaleProvider/LocaleProvider.d.ts +2 -2
  550. package/dist/cssm/components/LocaleProvider/LocaleProvider.js +2 -2
  551. package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
  552. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +78 -1
  553. package/dist/cssm/components/ModalCard/ModalCard.module.css +62 -1
  554. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +102 -1
  555. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.module.css +38 -1
  556. package/dist/cssm/components/ModalPage/ModalPage.d.ts +1 -1
  557. package/dist/cssm/components/ModalPage/ModalPage.js +17 -3
  558. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  559. package/dist/cssm/components/ModalPage/ModalPage.module.css +151 -1
  560. package/dist/cssm/components/ModalPage/ModalPageContext.d.ts +5 -0
  561. package/dist/cssm/components/ModalPage/ModalPageContext.js +4 -0
  562. package/dist/cssm/components/ModalPage/ModalPageContext.js.map +1 -0
  563. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +6 -1
  564. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  565. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +18 -1
  566. package/dist/cssm/components/ModalRoot/ModalRoot.d.ts +2 -27
  567. package/dist/cssm/components/ModalRoot/ModalRoot.js +12 -18
  568. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  569. package/dist/cssm/components/ModalRoot/ModalRoot.module.css +65 -1
  570. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
  571. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  572. package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
  573. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +106 -125
  574. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  575. package/dist/cssm/components/ModalRoot/types.d.ts +28 -0
  576. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  577. package/dist/cssm/components/ModalRoot/useModalManager.d.ts +6 -5
  578. package/dist/cssm/components/ModalRoot/useModalManager.js +3 -3
  579. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  580. package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +6 -2
  581. package/dist/cssm/components/NativeSelect/NativeSelect.js +4 -3
  582. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  583. package/dist/cssm/components/Pagination/Pagination.module.css +83 -1
  584. package/dist/cssm/components/Panel/Panel.js +2 -2
  585. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  586. package/dist/cssm/components/Panel/Panel.module.css +177 -1
  587. package/dist/cssm/components/PanelHeader/PanelHeader.d.ts +11 -2
  588. package/dist/cssm/components/PanelHeader/PanelHeader.js +16 -7
  589. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  590. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +321 -1
  591. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  592. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  593. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +111 -1
  594. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  595. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +96 -1
  596. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
  597. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  598. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.module.css +169 -1
  599. package/dist/cssm/components/Placeholder/Placeholder.module.css +41 -1
  600. package/dist/cssm/components/PlatformProvider/PlatformProvider.d.ts +1 -1
  601. package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
  602. package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
  603. package/dist/cssm/components/PopoutRoot/PopoutRoot.module.css +32 -1
  604. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +1 -1
  605. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  606. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.module.css +96 -1
  607. package/dist/cssm/components/Popover/Popover.d.ts +3 -2
  608. package/dist/cssm/components/Popover/Popover.js +3 -2
  609. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  610. package/dist/cssm/components/Popover/Popover.module.css +28 -1
  611. package/dist/cssm/components/Popper/Popper.module.css +16 -1
  612. package/dist/cssm/components/PopperArrow/PopperArrow.module.css +23 -1
  613. package/dist/cssm/components/Progress/Progress.module.css +12 -1
  614. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -0
  615. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  616. package/dist/cssm/components/PromoBanner/PromoBanner.module.css +39 -1
  617. package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts +3 -4
  618. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  619. package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +101 -1
  620. package/dist/cssm/components/Radio/Radio.d.ts +2 -1
  621. package/dist/cssm/components/Radio/Radio.js +11 -7
  622. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  623. package/dist/cssm/components/Radio/Radio.module.css +140 -1
  624. package/dist/cssm/components/RadioGroup/RadioGroup.module.css +13 -1
  625. package/dist/cssm/components/Removable/Removable.d.ts +7 -2
  626. package/dist/cssm/components/Removable/Removable.js +2 -2
  627. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  628. package/dist/cssm/components/Removable/Removable.module.css +153 -1
  629. package/dist/cssm/components/RichCell/RichCell.module.css +144 -1
  630. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.module.css +11 -1
  631. package/dist/cssm/components/RichTooltip/RichTooltip.module.css +57 -1
  632. package/dist/cssm/components/Root/Root.js +4 -4
  633. package/dist/cssm/components/Root/Root.js.map +1 -1
  634. package/dist/cssm/components/Root/Root.module.css +136 -1
  635. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +66 -1
  636. package/dist/cssm/components/Search/Search.d.ts +3 -1
  637. package/dist/cssm/components/Search/Search.js +38 -54
  638. package/dist/cssm/components/Search/Search.js.map +1 -1
  639. package/dist/cssm/components/Search/Search.module.css +156 -1
  640. package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +64 -1
  641. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
  642. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +7 -4
  643. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  644. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +52 -1
  645. package/dist/cssm/components/Select/Select.module.css +87 -1
  646. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -1
  647. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  648. package/dist/cssm/components/SelectTypography/SelectTypography.d.ts +2 -3
  649. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  650. package/dist/cssm/components/SelectTypography/SelectTypography.module.css +30 -1
  651. package/dist/cssm/components/Separator/Separator.module.css +48 -1
  652. package/dist/cssm/components/SimpleCell/SimpleCell.js +8 -5
  653. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  654. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +223 -1
  655. package/dist/cssm/components/Slider/Slider.module.css +134 -1
  656. package/dist/cssm/components/Snackbar/Snackbar.module.css +165 -1
  657. package/dist/cssm/components/Spacing/Spacing.d.ts +2 -2
  658. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  659. package/dist/cssm/components/Spacing/Spacing.module.css +4 -1
  660. package/dist/cssm/components/Spinner/Spinner.module.css +36 -1
  661. package/dist/cssm/components/SplitCol/SplitCol.js +1 -0
  662. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  663. package/dist/cssm/components/SplitCol/SplitCol.module.css +51 -1
  664. package/dist/cssm/components/SplitLayout/SplitLayout.module.css +29 -1
  665. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.module.css +16 -1
  666. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -3
  667. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  668. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.module.css +166 -1
  669. package/dist/cssm/components/Switch/Switch.d.ts +4 -5
  670. package/dist/cssm/components/Switch/Switch.js +11 -8
  671. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  672. package/dist/cssm/components/Switch/Switch.module.css +200 -1
  673. package/dist/cssm/components/Tabbar/Tabbar.js +2 -4
  674. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  675. package/dist/cssm/components/Tabbar/Tabbar.module.css +34 -1
  676. package/dist/cssm/components/TabbarItem/TabbarItem.js +1 -1
  677. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  678. package/dist/cssm/components/TabbarItem/TabbarItem.module.css +118 -1
  679. package/dist/cssm/components/Tabs/Tabs.module.css +62 -1
  680. package/dist/cssm/components/TabsItem/TabsItem.module.css +229 -1
  681. package/dist/cssm/components/Tappable/Tappable.d.ts +2 -3
  682. package/dist/cssm/components/Tappable/Tappable.js +1 -0
  683. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  684. package/dist/cssm/components/Tappable/Tappable.module.css +142 -1
  685. package/dist/cssm/components/TextTooltip/TextTooltip.module.css +58 -1
  686. package/dist/cssm/components/Textarea/Textarea.module.css +87 -1
  687. package/dist/cssm/components/Tooltip/Tooltip.module.css +57 -1
  688. package/dist/cssm/components/Typography/Caption/Caption.d.ts +2 -2
  689. package/dist/cssm/components/Typography/Caption/Caption.js +9 -10
  690. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  691. package/dist/cssm/components/Typography/Caption/Caption.module.css +45 -1
  692. package/dist/cssm/components/Typography/Footnote/Footnote.d.ts +2 -2
  693. package/dist/cssm/components/Typography/Footnote/Footnote.js +7 -10
  694. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  695. package/dist/cssm/components/Typography/Footnote/Footnote.module.css +14 -1
  696. package/dist/cssm/components/Typography/Headline/Headline.d.ts +3 -4
  697. package/dist/cssm/components/Typography/Headline/Headline.js +9 -10
  698. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  699. package/dist/cssm/components/Typography/Headline/Headline.module.css +48 -1
  700. package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts +3 -5
  701. package/dist/cssm/components/Typography/Paragraph/Paragraph.js +8 -10
  702. package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
  703. package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +6 -1
  704. package/dist/cssm/components/Typography/Subhead/Subhead.d.ts +2 -2
  705. package/dist/cssm/components/Typography/Subhead/Subhead.js +8 -9
  706. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  707. package/dist/cssm/components/Typography/Subhead/Subhead.module.css +18 -1
  708. package/dist/cssm/components/Typography/Text/Text.d.ts +3 -5
  709. package/dist/cssm/components/Typography/Text/Text.js +8 -10
  710. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  711. package/dist/cssm/components/Typography/Text/Text.module.css +29 -1
  712. package/dist/cssm/components/Typography/Title/Title.d.ts +2 -2
  713. package/dist/cssm/components/Typography/Title/Title.js +9 -10
  714. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  715. package/dist/cssm/components/Typography/Title/Title.module.css +20 -1
  716. package/dist/cssm/components/Typography/Typography.d.ts +16 -0
  717. package/dist/cssm/components/Typography/Typography.js +14 -0
  718. package/dist/cssm/components/Typography/Typography.js.map +1 -0
  719. package/dist/cssm/components/Typography/Typography.module.css +18 -0
  720. package/dist/cssm/components/UsersStack/UsersStack.d.ts +2 -2
  721. package/dist/cssm/components/UsersStack/UsersStack.js +2 -1
  722. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  723. package/dist/cssm/components/UsersStack/UsersStack.module.css +77 -1
  724. package/dist/cssm/components/View/View.js +6 -7
  725. package/dist/cssm/components/View/View.js.map +1 -1
  726. package/dist/cssm/components/View/View.module.css +228 -1
  727. package/dist/cssm/components/View/ViewInfinite.js +6 -7
  728. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  729. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
  730. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +19 -0
  731. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
  732. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +10 -0
  733. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
  734. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +9 -4
  735. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  736. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.module.css +10 -1
  737. package/dist/cssm/components/WriteBar/WriteBar.module.css +119 -1
  738. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +2 -2
  739. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  740. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +66 -1
  741. package/dist/cssm/helpers/getPlatformClassName.js +1 -1
  742. package/dist/cssm/helpers/getPlatformClassName.js.map +1 -1
  743. package/dist/cssm/hooks/useFocusWithin.d.ts +2 -0
  744. package/dist/cssm/hooks/useFocusWithin.js +26 -0
  745. package/dist/cssm/hooks/useFocusWithin.js.map +1 -0
  746. package/dist/cssm/hooks/useId.js +1 -1
  747. package/dist/cssm/hooks/useId.js.map +1 -1
  748. package/dist/cssm/hooks/useWaitTransitionFinish.d.ts +1 -1
  749. package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
  750. package/dist/cssm/index.d.ts +4 -2
  751. package/dist/cssm/index.js +2 -1
  752. package/dist/cssm/index.js.map +1 -1
  753. package/dist/cssm/lib/utils.js +2 -2
  754. package/dist/cssm/lib/utils.js.map +1 -1
  755. package/dist/cssm/styles/adaptivity.module.css +87 -1
  756. package/dist/cssm/styles/common.css +36 -1
  757. package/dist/cssm/styles/constants.css +86 -1
  758. package/dist/cssm/styles/themes.css +1039 -1
  759. package/dist/helpers/getPlatformClassName.js +1 -1
  760. package/dist/helpers/getPlatformClassName.js.map +1 -1
  761. package/dist/hooks/useFocusWithin.d.ts +2 -0
  762. package/dist/hooks/useFocusWithin.js +27 -0
  763. package/dist/hooks/useFocusWithin.js.map +1 -0
  764. package/dist/hooks/useId.js +1 -1
  765. package/dist/hooks/useId.js.map +1 -1
  766. package/dist/hooks/useWaitTransitionFinish.d.ts +1 -1
  767. package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
  768. package/dist/index.d.ts +4 -2
  769. package/dist/index.js +2 -0
  770. package/dist/index.js.map +1 -1
  771. package/dist/lib/utils.js +2 -2
  772. package/dist/lib/utils.js.map +1 -1
  773. package/dist/vkui.css +50 -50
  774. package/dist/vkui.css.map +1 -1
  775. package/dist/vkui.js.tmp +3803 -3693
  776. package/package.json +24 -17
  777. package/dist/cjs/components/Typography/types.d.ts +0 -11
  778. package/dist/cjs/components/Typography/types.js.map +0 -1
  779. package/dist/cjs/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
  780. package/dist/cjs/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
  781. package/dist/components/Typography/types.d.ts +0 -11
  782. package/dist/components/Typography/types.js +0 -3
  783. package/dist/components/Typography/types.js.map +0 -1
  784. package/dist/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
  785. package/dist/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
  786. package/dist/cssm/components/Typography/types.d.ts +0 -11
  787. package/dist/cssm/components/Typography/types.js +0 -3
  788. package/dist/cssm/components/Typography/types.js.map +0 -1
  789. package/dist/cssm/components/View/ViewIOS.module.css +0 -1
  790. package/dist/cssm/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
  791. package/dist/cssm/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
  792. package/dist/cssm/styles/animations.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePatchChildrenRef } from '../../hooks/usePatchChildrenRef';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useDOM } from '../../lib/dom';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { Popper, PopperCommonProps } from '../Popper/Popper';\nimport styles from './Popover.module.css';\n\nexport interface PopoverProps extends Omit<PopperCommonProps, 'arrow' | 'arrowClassName'> {\n /**\n * Механика вызова всплывающего окна.\n *\n * - `\"click\"` – показывается/скрывается только при нажатии.\n * - `\"hover\"` – помимо нажатия, будет показываться/скрывается при наведении/отведении мыши.\n *\n * > ⚠️`\"hover\"` на тач-устройствах будет работать как `\"click\"`, с одним лишь нюансом, что не будет закрываться\n * > при повторном нажатии на целевой элемент. Для закрытия необходимо нажать на область вне целевого элемента\n * > и выпадающего окна.\n */\n action?: 'click' | 'hover';\n /**\n * Если передан, то всплывающее окно будет показан/скрыт в зависимости от значения свойства.\n */\n shown?: boolean;\n /**\n * Количество миллисекунд, после которых произойдёт показ всплывающего окна.\n *\n * > Используется только для `action=\"hover\"` при наведении/отведении мыши.\n */\n showDelay?: number;\n /**\n * Количество миллисекунд, после которых произойдёт скрытие всплывающего окна.\n *\n * > Используется только для `action=\"hover\"` при наведении/отведении мыши.\n */\n hideDelay?: number;\n /**\n * Содержимое всплывающего окна.\n */\n content?: React.ReactNode;\n /**\n * Целевой элемент. Всплывающее окно появится возле него.\n *\n * > ⚠️ Если это пользовательский компонент, то он должен предоставлять параметры либо `getRootRef`, либо `ref` для получения ссылки на DOM-узел.\n */\n children?: React.ReactElement;\n /**\n * Вызывается при каждом изменении видимости всплывающего окна.\n */\n onShownChange?(shown: boolean): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popover\n */\nexport const Popover = ({\n action = 'click',\n shown: shownProp,\n showDelay = 150,\n hideDelay = 150,\n offsetDistance = 8,\n content,\n children,\n style: styleProp,\n className,\n getRef,\n onShownChange,\n ...restProps\n}: PopoverProps) => {\n const { document } = useDOM();\n\n const hoverable = action === 'hover';\n const hovered = React.useRef(false);\n const [computedShown, setComputedShown] = React.useState(shownProp || false);\n const [dropdownNode, setPopperNode] = React.useState<HTMLElement | null>(null);\n\n const shown = typeof shownProp === 'boolean' ? shownProp : computedShown;\n\n const patchedPopperRef = useExternRef<HTMLDivElement>(setPopperNode, getRef);\n\n const [childRef, child] = usePatchChildrenRef(children);\n\n const setShown = (value: boolean) => {\n if (typeof shownProp !== 'boolean') {\n setComputedShown(value);\n }\n typeof onShownChange === 'function' && onShownChange(value);\n };\n\n const showTimeout = useTimeout(() => setShown(true), showDelay);\n\n const hideTimeout = useTimeout(() => setShown(false), hideDelay);\n\n const handleTargetEnter = () => {\n hovered.current = true;\n hideTimeout.clear();\n showTimeout.set();\n };\n\n const handleTargetClick = () => {\n if (hovered.current && shown) {\n return;\n }\n setShown(!shown);\n };\n\n const handleTargetLeave = () => {\n hovered.current = false;\n showTimeout.clear();\n hideTimeout.set();\n };\n\n const handleContentKeyDownEscape = () => {\n setShown(false);\n };\n\n const handleOutsideClick = (e: MouseEvent) => {\n if (\n dropdownNode &&\n !childRef.current?.contains(e.target as Node) &&\n !dropdownNode.contains(e.target as Node)\n ) {\n setShown(false);\n }\n };\n\n useGlobalEventListener(document, 'click', handleOutsideClick, {\n capture: true,\n passive: true,\n });\n const targetEnterListener = useEventListener('mouseenter', handleTargetEnter);\n const targetClickEvent = useEventListener('click', handleTargetClick);\n const targetLeaveListener = useEventListener('mouseleave', handleTargetLeave);\n\n React.useEffect(() => {\n if (!childRef.current) {\n return;\n }\n\n targetClickEvent.add(childRef.current);\n }, [childRef, targetClickEvent]);\n\n React.useEffect(() => {\n if (!childRef.current) {\n return;\n }\n\n if (hoverable) {\n targetEnterListener.add(childRef.current);\n targetLeaveListener.add(childRef.current);\n }\n\n return () => {\n targetEnterListener.remove();\n targetLeaveListener.remove();\n };\n }, [childRef, hoverable, targetEnterListener, targetLeaveListener]);\n\n return (\n <React.Fragment>\n {child}\n {shown && (\n <Popper\n {...restProps}\n className={classNames(styles['Popover'], className)}\n targetRef={childRef}\n getRef={patchedPopperRef}\n offsetDistance={offsetDistance}\n style={\n // Reason: Typescript ругается на CSS Custom Properties в объекте\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n {\n ...styleProp,\n '--vkui_internal--popover_safe_zone_padding': `${offsetDistance}px`,\n } as React.CSSProperties\n }\n renderContent={({ className: wrapperClassName }) => (\n <FocusTrap className={wrapperClassName} onClose={handleContentKeyDownEscape}>\n {content}\n </FocusTrap>\n )}\n onMouseOver={hoverable ? hideTimeout.clear : undefined}\n onMouseOut={hoverable ? handleTargetLeave : undefined}\n />\n )}\n </React.Fragment>\n );\n};\n"],"names":["Popover","action","shown","shownProp","showDelay","hideDelay","offsetDistance","content","children","style","styleProp","className","getRef","onShownChange","restProps","document","useDOM","hoverable","hovered","React","useRef","useState","computedShown","setComputedShown","dropdownNode","setPopperNode","patchedPopperRef","useExternRef","usePatchChildrenRef","childRef","child","setShown","value","showTimeout","useTimeout","hideTimeout","handleTargetEnter","current","clear","set","handleTargetClick","handleTargetLeave","handleContentKeyDownEscape","handleOutsideClick","e","contains","target","useGlobalEventListener","capture","passive","targetEnterListener","useEventListener","targetClickEvent","targetLeaveListener","useEffect","add","remove","Fragment","Popper","classNames","targetRef","renderContent","wrapperClassName","FocusTrap","onClose","onMouseOver","undefined","onMouseOut"],"mappings":";;;;+BA2DaA;;;eAAAA;;;;;;;;2DA3DU;oBACI;gCACM;4BACJ;sCACU;mCACH;0BACT;mBACJ;yBACG;sBACgB;AAkDnC,IAAMA,UAAU,iBAaH;+BAZlBC,QAAAA,oCAAS,yBACTC,AAAOC,mBAAPD,iCACAE,WAAAA,0CAAY,kDACZC,WAAAA,0CAAY,uDACZC,gBAAAA,oDAAiB,2BACjBC,iBAAAA,SACAC,kBAAAA,UACAC,AAAOC,mBAAPD,OACAE,mBAAAA,WACAC,gBAAAA,QACAC,uBAAAA,eACGC;QAXHb;QACAC;QACAE;QACAC;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;QACAC;;IAGA,IAAM,AAAEE,WAAaC,IAAAA,WAAM,IAAnBD;IAER,IAAME,YAAYhB,WAAW;IAC7B,IAAMiB,UAAUC,OAAMC,MAAM,CAAC,KAAK;IAClC,IAA0CD,iCAAAA,OAAME,QAAQ,CAAClB,aAAa,KAAK,OAApEmB,gBAAmCH,oBAApBI,mBAAoBJ;IAC1C,IAAsCA,kCAAAA,OAAME,QAAQ,CAAqB,IAAI,OAAtEG,eAA+BL,qBAAjBM,gBAAiBN;IAEtC,IAAMjB,QAAQ,OAAOC,cAAc,YAAYA,YAAYmB,aAAa;IAExE,IAAMI,mBAAmBC,IAAAA,0BAAY,EAAiBF,eAAeb;IAErE,IAA0BgB,uCAAAA,IAAAA,wCAAmB,EAACpB,eAAvCqB,WAAmBD,0BAATE,QAASF;IAE1B,IAAMG,WAAW,SAACC,OAAmB;QACnC,IAAI,OAAO7B,cAAc,WAAW;YAClCoB,iBAAiBS;QACnB,CAAC;QACD,OAAOnB,kBAAkB,cAAcA,cAAcmB;IACvD;IAEA,IAAMC,cAAcC,IAAAA,sBAAU,EAAC;eAAMH,SAAS,IAAI;OAAG3B;IAErD,IAAM+B,cAAcD,IAAAA,sBAAU,EAAC;eAAMH,SAAS,KAAK;OAAG1B;IAEtD,IAAM+B,oBAAoB,WAAM;QAC9BlB,QAAQmB,OAAO,GAAG,IAAI;QACtBF,YAAYG,KAAK;QACjBL,YAAYM,GAAG;IACjB;IAEA,IAAMC,oBAAoB,WAAM;QAC9B,IAAItB,QAAQmB,OAAO,IAAInC,OAAO;YAC5B;QACF,CAAC;QACD6B,SAAS,CAAC7B;IACZ;IAEA,IAAMuC,oBAAoB,WAAM;QAC9BvB,QAAQmB,OAAO,GAAG,KAAK;QACvBJ,YAAYK,KAAK;QACjBH,YAAYI,GAAG;IACjB;IAEA,IAAMG,6BAA6B,WAAM;QACvCX,SAAS,KAAK;IAChB;IAEA,IAAMY,qBAAqB,SAACC,GAAkB;YAGzCf;QAFH,IACEL,gBACA,EAACK,CAAAA,oBAAAA,SAASQ,OAAO,cAAhBR,+BAAAA,KAAAA,IAAAA,kBAAkBgB,SAASD,EAAEE,MAAM,MACpC,CAACtB,aAAaqB,QAAQ,CAACD,EAAEE,MAAM,GAC/B;YACAf,SAAS,KAAK;QAChB,CAAC;IACH;IAEAgB,IAAAA,8CAAsB,EAAChC,UAAU,SAAS4B,oBAAoB;QAC5DK,SAAS,IAAI;QACbC,SAAS,IAAI;IACf;IACA,IAAMC,sBAAsBC,IAAAA,kCAAgB,EAAC,cAAcf;IAC3D,IAAMgB,mBAAmBD,IAAAA,kCAAgB,EAAC,SAASX;IACnD,IAAMa,sBAAsBF,IAAAA,kCAAgB,EAAC,cAAcV;IAE3DtB,OAAMmC,SAAS,CAAC,WAAM;QACpB,IAAI,CAACzB,SAASQ,OAAO,EAAE;YACrB;QACF,CAAC;QAEDe,iBAAiBG,GAAG,CAAC1B,SAASQ,OAAO;IACvC,GAAG;QAACR;QAAUuB;KAAiB;IAE/BjC,OAAMmC,SAAS,CAAC,WAAM;QACpB,IAAI,CAACzB,SAASQ,OAAO,EAAE;YACrB;QACF,CAAC;QAED,IAAIpB,WAAW;YACbiC,oBAAoBK,GAAG,CAAC1B,SAASQ,OAAO;YACxCgB,oBAAoBE,GAAG,CAAC1B,SAASQ,OAAO;QAC1C,CAAC;QAED,OAAO,WAAM;YACXa,oBAAoBM,MAAM;YAC1BH,oBAAoBG,MAAM;QAC5B;IACF,GAAG;QAAC3B;QAAUZ;QAAWiC;QAAqBG;KAAoB;IAElE,qBACE,qBAAClC,OAAMsC,QAAQ,QACZ3B,OACA5B,uBACC,qBAACwD,cAAM,uCACD5C;QACJH,WAAWgD,IAAAA,gBAAU,iBAAoBhD;QACzCiD,WAAW/B;QACXjB,QAAQc;QACRpB,gBAAgBA;QAChBG,OACE,iEAAiE;QACjE,yEAAyE;QACzE,qCACKC;YACH,8CAA8C,AAAC,GAAiB,OAAfJ,gBAAe;;QAGpEuD,eAAe;gBAAGlD,AAAWmD,yBAAXnD;iCAChB,qBAACoD,oBAAS;gBAACpD,WAAWmD;gBAAkBE,SAAStB;eAC9CnC;;QAGL0D,aAAahD,YAAYkB,YAAYG,KAAK,GAAG4B,SAAS;QACtDC,YAAYlD,YAAYwB,oBAAoByB,SAAS;;AAK/D"}
1
+ {"version":3,"sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePatchChildrenRef } from '../../hooks/usePatchChildrenRef';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useDOM } from '../../lib/dom';\nimport { FocusTrap, FocusTrapProps } from '../FocusTrap/FocusTrap';\nimport { Popper, PopperCommonProps } from '../Popper/Popper';\nimport styles from './Popover.module.css';\n\nexport interface PopoverProps\n extends Omit<PopperCommonProps, 'arrow' | 'arrowClassName' | 'content'>,\n Pick<FocusTrapProps, 'restoreFocus'> {\n /**\n * Механика вызова всплывающего окна.\n *\n * - `\"click\"` – показывается/скрывается только при нажатии.\n * - `\"hover\"` – помимо нажатия, будет показываться/скрывается при наведении/отведении мыши.\n *\n * > ⚠️`\"hover\"` на тач-устройствах будет работать как `\"click\"`, с одним лишь нюансом, что не будет закрываться\n * > при повторном нажатии на целевой элемент. Для закрытия необходимо нажать на область вне целевого элемента\n * > и выпадающего окна.\n */\n action?: 'click' | 'hover';\n /**\n * Если передан, то всплывающее окно будет показан/скрыт в зависимости от значения свойства.\n */\n shown?: boolean;\n /**\n * Количество миллисекунд, после которых произойдёт показ всплывающего окна.\n *\n * > Используется только для `action=\"hover\"` при наведении/отведении мыши.\n */\n showDelay?: number;\n /**\n * Количество миллисекунд, после которых произойдёт скрытие всплывающего окна.\n *\n * > Используется только для `action=\"hover\"` при наведении/отведении мыши.\n */\n hideDelay?: number;\n /**\n * Содержимое всплывающего окна.\n */\n content?: React.ReactNode;\n /**\n * Целевой элемент. Всплывающее окно появится возле него.\n *\n * > ⚠️ Если это пользовательский компонент, то он должен предоставлять параметры либо `getRootRef`, либо `ref` для получения ссылки на DOM-узел.\n */\n children?: React.ReactElement;\n /**\n * Вызывается при каждом изменении видимости всплывающего окна.\n */\n onShownChange?(shown: boolean): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popover\n */\nexport const Popover = ({\n action = 'click',\n shown: shownProp,\n showDelay = 150,\n hideDelay = 150,\n offsetDistance = 8,\n content,\n children,\n style: styleProp,\n className,\n getRef,\n onShownChange,\n restoreFocus = true,\n ...restProps\n}: PopoverProps) => {\n const { document } = useDOM();\n\n const hoverable = action === 'hover';\n const hovered = React.useRef(false);\n const [computedShown, setComputedShown] = React.useState(shownProp || false);\n const [dropdownNode, setPopperNode] = React.useState<HTMLElement | null>(null);\n\n const shown = typeof shownProp === 'boolean' ? shownProp : computedShown;\n\n const patchedPopperRef = useExternRef<HTMLDivElement>(setPopperNode, getRef);\n\n const [childRef, child] = usePatchChildrenRef(children);\n\n const setShown = (value: boolean) => {\n if (typeof shownProp !== 'boolean') {\n setComputedShown(value);\n }\n typeof onShownChange === 'function' && onShownChange(value);\n };\n\n const showTimeout = useTimeout(() => setShown(true), showDelay);\n\n const hideTimeout = useTimeout(() => setShown(false), hideDelay);\n\n const handleTargetEnter = () => {\n hovered.current = true;\n hideTimeout.clear();\n showTimeout.set();\n };\n\n const handleTargetClick = () => {\n if (hovered.current && shown) {\n return;\n }\n setShown(!shown);\n };\n\n const handleTargetLeave = () => {\n hovered.current = false;\n showTimeout.clear();\n hideTimeout.set();\n };\n\n const handleContentKeyDownEscape = () => {\n setShown(false);\n };\n\n const handleOutsideClick = (e: MouseEvent) => {\n if (\n dropdownNode &&\n !childRef.current?.contains(e.target as Node) &&\n !dropdownNode.contains(e.target as Node)\n ) {\n setShown(false);\n }\n };\n\n useGlobalEventListener(document, 'click', handleOutsideClick, {\n capture: true,\n passive: true,\n });\n const targetEnterListener = useEventListener('mouseenter', handleTargetEnter);\n const targetClickEvent = useEventListener('click', handleTargetClick);\n const targetLeaveListener = useEventListener('mouseleave', handleTargetLeave);\n\n React.useEffect(() => {\n if (!childRef.current) {\n return;\n }\n\n targetClickEvent.add(childRef.current);\n }, [childRef, targetClickEvent]);\n\n React.useEffect(() => {\n if (!childRef.current) {\n return;\n }\n\n if (hoverable) {\n targetEnterListener.add(childRef.current);\n targetLeaveListener.add(childRef.current);\n }\n\n return () => {\n targetEnterListener.remove();\n targetLeaveListener.remove();\n };\n }, [childRef, hoverable, targetEnterListener, targetLeaveListener]);\n\n return (\n <React.Fragment>\n {child}\n {shown && (\n <Popper\n {...restProps}\n className={classNames(styles['Popover'], className)}\n targetRef={childRef}\n getRef={patchedPopperRef}\n offsetDistance={offsetDistance}\n style={\n // Reason: Typescript ругается на CSS Custom Properties в объекте\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n {\n ...styleProp,\n '--vkui_internal--popover_safe_zone_padding': `${offsetDistance}px`,\n } as React.CSSProperties\n }\n renderContent={({ className: wrapperClassName }) => (\n <FocusTrap\n className={wrapperClassName}\n onClose={handleContentKeyDownEscape}\n restoreFocus={restoreFocus}\n >\n {content}\n </FocusTrap>\n )}\n onMouseOver={hoverable ? hideTimeout.clear : undefined}\n onMouseOut={hoverable ? handleTargetLeave : undefined}\n />\n )}\n </React.Fragment>\n );\n};\n"],"names":["Popover","action","shown","shownProp","showDelay","hideDelay","offsetDistance","content","children","style","styleProp","className","getRef","onShownChange","restoreFocus","restProps","document","useDOM","hoverable","hovered","React","useRef","useState","computedShown","setComputedShown","dropdownNode","setPopperNode","patchedPopperRef","useExternRef","usePatchChildrenRef","childRef","child","setShown","value","showTimeout","useTimeout","hideTimeout","handleTargetEnter","current","clear","set","handleTargetClick","handleTargetLeave","handleContentKeyDownEscape","handleOutsideClick","e","contains","target","useGlobalEventListener","capture","passive","targetEnterListener","useEventListener","targetClickEvent","targetLeaveListener","useEffect","add","remove","Fragment","Popper","classNames","targetRef","renderContent","wrapperClassName","FocusTrap","onClose","onMouseOver","undefined","onMouseOut"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/PromoBanner/PromoBanner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Dismiss } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { Button } from '../Button/Button';\nimport { Image } from '../Image/Image';\nimport { SimpleCell } from '../SimpleCell/SimpleCell';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './PromoBanner.module.css';\n\nconst warn = warnOnce('PromoBanner');\n\ntype StatsType =\n | 'playbackStarted' // Начало показа\n | 'click'; // Клик по баннеру\n\ntype BannerData = {\n title?: string;\n url_types?: string;\n bannerID?: string;\n imageWidth?: number;\n imageHeight?: number;\n imageLink?: string;\n trackingLink?: string;\n type?: string;\n iconWidth?: number;\n domain?: string;\n ctaText?: string;\n advertisingLabel?: string;\n iconLink?: string;\n statistics?: Array<{ type: StatsType; url: string }>;\n openInBrowser?: boolean;\n iconHeight?: number;\n directLink?: boolean;\n navigationType?: string;\n description?: string;\n ageRestrictions?: string;\n};\n\nexport interface PromoBannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Данные рекламного баннера, полученные из VKWebAppGetAds */\n bannerData: BannerData;\n /** Флаг скрытия кнопки закрытия рекламы */\n isCloseButtonHidden?: boolean;\n /** Хандлер закрытия рекламы */\n onClose: () => void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PromoBanner\n * @deprecated v5.3.1\n *\n * Используйте событие [VKWebAppShowBannerAd](https://dev.vk.com/mini-apps/monetization/ad/banners)\n */\nexport const PromoBanner = ({\n bannerData = {},\n onClose,\n isCloseButtonHidden,\n className,\n ...restProps\n}: PromoBannerProps) => {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Компонент устарел и будет удален в v6. Используйте событие VKWebAppShowBannerAd https://dev.vk.com/mini-apps/monetization/ad/banners',\n );\n }\n\n const [currentPixel, setCurrentPixel] = React.useState('');\n\n const statsPixels = React.useMemo(\n () =>\n (bannerData.statistics\n ? bannerData.statistics.reduce((acc, item) => ({ ...acc, [item.type]: item.url }), {})\n : {}) as Record<StatsType, string | void>,\n [bannerData.statistics],\n );\n\n const onClick = React.useCallback(\n () => setCurrentPixel(statsPixels.click || ''),\n [statsPixels.click],\n );\n\n React.useEffect(() => {\n if (statsPixels.playbackStarted) {\n setCurrentPixel(statsPixels.playbackStarted);\n }\n }, [statsPixels.playbackStarted]);\n\n return (\n <div className={classNames(styles['PromoBanner'], className)} {...restProps}>\n <div className={styles['PromoBanner__head']}>\n <Footnote>{bannerData.advertisingLabel || 'Advertisement'}</Footnote>\n {bannerData.ageRestrictions && (\n <Footnote className={styles['PromoBanner__age']}>{bannerData.ageRestrictions}</Footnote>\n )}\n\n {!isCloseButtonHidden && (\n <div className={styles['PromoBanner__close']} onClick={onClose}>\n <Icon24Dismiss />\n </div>\n )}\n </div>\n <SimpleCell\n href={bannerData.trackingLink}\n onClick={onClick}\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n before={\n bannerData.iconLink && (\n <Image\n size={48}\n src={bannerData.iconLink}\n alt={bannerData.title}\n data-testid={process.env.NODE_ENV === 'test' ? 'avatar' : undefined}\n />\n )\n }\n after={\n bannerData.ctaText && (\n <Button\n mode=\"outline\"\n data-testid={process.env.NODE_ENV === 'test' ? 'button-ctaText' : undefined}\n >\n {bannerData.ctaText}\n </Button>\n )\n }\n subtitle={bannerData.domain}\n >\n {bannerData.title}\n </SimpleCell>\n\n {currentPixel.length > 0 && (\n <div className={styles['PromoBanner__pixels']}>\n <img src={currentPixel} alt=\"\" />\n </div>\n )}\n </div>\n );\n};\n"],"names":["PromoBanner","warn","warnOnce","bannerData","onClose","isCloseButtonHidden","className","restProps","process","env","NODE_ENV","React","useState","currentPixel","setCurrentPixel","statsPixels","useMemo","statistics","reduce","acc","item","type","url","onClick","useCallback","click","useEffect","playbackStarted","div","classNames","Footnote","advertisingLabel","ageRestrictions","Icon24Dismiss","SimpleCell","href","trackingLink","rel","target","before","iconLink","Image","size","src","alt","title","data-testid","undefined","after","ctaText","Button","mode","subtitle","domain","length","img"],"mappings":";;;;+BAsDaA;;;eAAAA;;;;;;;;;2DAtDU;qBACO;oBACH;wBACF;sBACF;qBACD;0BACK;wBACF;AAGzB,IAAMC,OAAOC,IAAAA,kBAAQ,EAAC;AA4Cf,IAAMF,cAAc,iBAMH;mCALtBG,YAAAA,4CAAa,CAAC,uBACdC,iBAAAA,SACAC,6BAAAA,qBACAC,mBAAAA,WACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAIE,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1CT,KACE;IAEJ,CAAC;IAED,IAAwCU,iCAAAA,OAAMC,QAAQ,CAAC,SAAhDC,eAAiCF,oBAAnBG,kBAAmBH;IAExC,IAAMI,cAAcJ,OAAMK,OAAO,CAC/B;eACGb,WAAWc,UAAU,GAClBd,WAAWc,UAAU,CAACC,MAAM,CAAC,SAACC,KAAKC;mBAAU,qCAAKD,MAAK,oBAACC,KAAKC,IAAI,EAAGD,KAAKE,GAAG;WAAK,CAAC,KAClF,CAAC,CAAC;OACR;QAACnB,WAAWc,UAAU;KAAC;IAGzB,IAAMM,UAAUZ,OAAMa,WAAW,CAC/B;eAAMV,gBAAgBC,YAAYU,KAAK,IAAI;OAC3C;QAACV,YAAYU,KAAK;KAAC;IAGrBd,OAAMe,SAAS,CAAC,WAAM;QACpB,IAAIX,YAAYY,eAAe,EAAE;YAC/Bb,gBAAgBC,YAAYY,eAAe;QAC7C,CAAC;IACH,GAAG;QAACZ,YAAYY,eAAe;KAAC;IAEhC,qBACE,qBAACC;QAAItB,WAAWuB,IAAAA,gBAAU,qBAAwBvB;OAAgBC,0BAChE,qBAACqB;QAAItB,SAAS;qBACZ,qBAACwB,kBAAQ,QAAE3B,WAAW4B,gBAAgB,IAAI,kBACzC5B,WAAW6B,eAAe,kBACzB,qBAACF,kBAAQ;QAACxB,SAAS;OAA+BH,WAAW6B,eAAe,GAG7E,CAAC3B,qCACA,qBAACuB;QAAItB,SAAS;QAAgCiB,SAASnB;qBACrD,qBAAC6B,oBAAa,yBAIpB,qBAACC,sBAAU;QACTC,MAAMhC,WAAWiC,YAAY;QAC7Bb,SAASA;QACTc,KAAI;QACJC,QAAO;QACPC,QACEpC,WAAWqC,QAAQ,kBACjB,qBAACC,YAAK;YACJC,MAAM;YACNC,KAAKxC,WAAWqC,QAAQ;YACxBI,KAAKzC,WAAW0C,KAAK;YACrBC,eAAatC,QAAQC,GAAG,CAACC,QAAQ,KAAK,SAAS,WAAWqC,SAAS;;QAIzEC,OACE7C,WAAW8C,OAAO,kBAChB,qBAACC,cAAM;YACLC,MAAK;YACLL,eAAatC,QAAQC,GAAG,CAACC,QAAQ,KAAK,SAAS,mBAAmBqC,SAAS;WAE1E5C,WAAW8C,OAAO;QAIzBG,UAAUjD,WAAWkD,MAAM;OAE1BlD,WAAW0C,KAAK,GAGlBhC,aAAayC,MAAM,GAAG,mBACrB,qBAAC1B;QAAItB,SAAS;qBACZ,qBAACiD;QAAIZ,KAAK9B;QAAc+B,KAAI;;AAKtC"}
1
+ {"version":3,"sources":["../../../../src/components/PromoBanner/PromoBanner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Dismiss } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { Button } from '../Button/Button';\nimport { Image } from '../Image/Image';\nimport { SimpleCell } from '../SimpleCell/SimpleCell';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './PromoBanner.module.css';\n\nconst warn = warnOnce('PromoBanner');\n\ntype StatsType =\n | 'playbackStarted' // Начало показа\n | 'click'; // Клик по баннеру\n\ntype BannerData = {\n title?: string;\n url_types?: string;\n bannerID?: string;\n imageWidth?: number;\n imageHeight?: number;\n imageLink?: string;\n trackingLink?: string;\n type?: string;\n iconWidth?: number;\n domain?: string;\n ctaText?: string;\n advertisingLabel?: string;\n iconLink?: string;\n statistics?: Array<{ type: StatsType; url: string }>;\n openInBrowser?: boolean;\n iconHeight?: number;\n directLink?: boolean;\n navigationType?: string;\n description?: string;\n ageRestrictions?: string;\n};\n\nexport interface PromoBannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Данные рекламного баннера, полученные из VKWebAppGetAds */\n bannerData: BannerData;\n /** Флаг скрытия кнопки закрытия рекламы */\n isCloseButtonHidden?: boolean;\n /** Хандлер закрытия рекламы */\n onClose: () => void;\n}\n\n// TODO [>=6]: Удалить компонент\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PromoBanner\n * @deprecated v5.3.1\n *\n * Используйте событие [VKWebAppShowBannerAd](https://dev.vk.com/mini-apps/monetization/ad/banners)\n */\nexport const PromoBanner = ({\n bannerData = {},\n onClose,\n isCloseButtonHidden,\n className,\n ...restProps\n}: PromoBannerProps) => {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Компонент устарел и будет удален в v6. Используйте событие VKWebAppShowBannerAd https://dev.vk.com/mini-apps/monetization/ad/banners',\n );\n }\n\n const [currentPixel, setCurrentPixel] = React.useState('');\n\n const statsPixels = React.useMemo(\n () =>\n (bannerData.statistics\n ? bannerData.statistics.reduce((acc, item) => ({ ...acc, [item.type]: item.url }), {})\n : {}) as Record<StatsType, string | void>,\n [bannerData.statistics],\n );\n\n const onClick = React.useCallback(\n () => setCurrentPixel(statsPixels.click || ''),\n [statsPixels.click],\n );\n\n React.useEffect(() => {\n if (statsPixels.playbackStarted) {\n setCurrentPixel(statsPixels.playbackStarted);\n }\n }, [statsPixels.playbackStarted]);\n\n return (\n <div className={classNames(styles['PromoBanner'], className)} {...restProps}>\n <div className={styles['PromoBanner__head']}>\n <Footnote>{bannerData.advertisingLabel || 'Advertisement'}</Footnote>\n {bannerData.ageRestrictions && (\n <Footnote className={styles['PromoBanner__age']}>{bannerData.ageRestrictions}</Footnote>\n )}\n\n {!isCloseButtonHidden && (\n <div className={styles['PromoBanner__close']} onClick={onClose}>\n <Icon24Dismiss />\n </div>\n )}\n </div>\n <SimpleCell\n href={bannerData.trackingLink}\n onClick={onClick}\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n before={\n bannerData.iconLink && (\n <Image\n size={48}\n src={bannerData.iconLink}\n alt={bannerData.title}\n data-testid={process.env.NODE_ENV === 'test' ? 'avatar' : undefined}\n />\n )\n }\n after={\n bannerData.ctaText && (\n <Button\n mode=\"outline\"\n data-testid={process.env.NODE_ENV === 'test' ? 'button-ctaText' : undefined}\n >\n {bannerData.ctaText}\n </Button>\n )\n }\n subtitle={bannerData.domain}\n >\n {bannerData.title}\n </SimpleCell>\n\n {currentPixel.length > 0 && (\n <div className={styles['PromoBanner__pixels']}>\n <img src={currentPixel} alt=\"\" />\n </div>\n )}\n </div>\n );\n};\n"],"names":["PromoBanner","warn","warnOnce","bannerData","onClose","isCloseButtonHidden","className","restProps","process","env","NODE_ENV","React","useState","currentPixel","setCurrentPixel","statsPixels","useMemo","statistics","reduce","acc","item","type","url","onClick","useCallback","click","useEffect","playbackStarted","div","classNames","Footnote","advertisingLabel","ageRestrictions","Icon24Dismiss","SimpleCell","href","trackingLink","rel","target","before","iconLink","Image","size","src","alt","title","data-testid","undefined","after","ctaText","Button","mode","subtitle","domain","length","img"],"mappings":";;;;+BAwDaA;;;eAAAA;;;;;;;;;2DAxDU;qBACO;oBACH;wBACF;sBACF;qBACD;0BACK;wBACF;AAGzB,IAAMC,OAAOC,IAAAA,kBAAQ,EAAC;AA8Cf,IAAMF,cAAc,iBAMH;mCALtBG,YAAAA,4CAAa,CAAC,uBACdC,iBAAAA,SACAC,6BAAAA,qBACAC,mBAAAA,WACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAIE,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1CT,KACE;IAEJ,CAAC;IAED,IAAwCU,iCAAAA,OAAMC,QAAQ,CAAC,SAAhDC,eAAiCF,oBAAnBG,kBAAmBH;IAExC,IAAMI,cAAcJ,OAAMK,OAAO,CAC/B;eACGb,WAAWc,UAAU,GAClBd,WAAWc,UAAU,CAACC,MAAM,CAAC,SAACC,KAAKC;mBAAU,qCAAKD,MAAK,oBAACC,KAAKC,IAAI,EAAGD,KAAKE,GAAG;WAAK,CAAC,KAClF,CAAC,CAAC;OACR;QAACnB,WAAWc,UAAU;KAAC;IAGzB,IAAMM,UAAUZ,OAAMa,WAAW,CAC/B;eAAMV,gBAAgBC,YAAYU,KAAK,IAAI;OAC3C;QAACV,YAAYU,KAAK;KAAC;IAGrBd,OAAMe,SAAS,CAAC,WAAM;QACpB,IAAIX,YAAYY,eAAe,EAAE;YAC/Bb,gBAAgBC,YAAYY,eAAe;QAC7C,CAAC;IACH,GAAG;QAACZ,YAAYY,eAAe;KAAC;IAEhC,qBACE,qBAACC;QAAItB,WAAWuB,IAAAA,gBAAU,qBAAwBvB;OAAgBC,0BAChE,qBAACqB;QAAItB,SAAS;qBACZ,qBAACwB,kBAAQ,QAAE3B,WAAW4B,gBAAgB,IAAI,kBACzC5B,WAAW6B,eAAe,kBACzB,qBAACF,kBAAQ;QAACxB,SAAS;OAA+BH,WAAW6B,eAAe,GAG7E,CAAC3B,qCACA,qBAACuB;QAAItB,SAAS;QAAgCiB,SAASnB;qBACrD,qBAAC6B,oBAAa,yBAIpB,qBAACC,sBAAU;QACTC,MAAMhC,WAAWiC,YAAY;QAC7Bb,SAASA;QACTc,KAAI;QACJC,QAAO;QACPC,QACEpC,WAAWqC,QAAQ,kBACjB,qBAACC,YAAK;YACJC,MAAM;YACNC,KAAKxC,WAAWqC,QAAQ;YACxBI,KAAKzC,WAAW0C,KAAK;YACrBC,eAAatC,QAAQC,GAAG,CAACC,QAAQ,KAAK,SAAS,WAAWqC,SAAS;;QAIzEC,OACE7C,WAAW8C,OAAO,kBAChB,qBAACC,cAAM;YACLC,MAAK;YACLL,eAAatC,QAAQC,GAAG,CAACC,QAAQ,KAAK,SAAS,mBAAmBqC,SAAS;WAE1E5C,WAAW8C,OAAO;QAIzBG,UAAUjD,WAAWkD,MAAM;OAE1BlD,WAAW0C,KAAK,GAGlBhC,aAAayC,MAAM,GAAG,mBACrB,qBAAC1B;QAAItB,SAAS;qBACZ,qBAACiD;QAAIZ,KAAK9B;QAAc+B,KAAI;;AAKtC"}
@@ -1,9 +1,9 @@
1
- import * as React from 'react';
1
+ /// <reference types="react" />
2
2
  import { DOMProps } from '../../lib/dom';
3
- import { AnyFunction } from '../../types';
3
+ import { AnyFunction, HasChildren } from '../../types';
4
4
  import { ScrollContextInterface } from '../AppRoot/ScrollContext';
5
5
  import { TouchProps } from '../Touch/Touch';
6
- export interface PullToRefreshProps extends DOMProps, TouchProps {
6
+ export interface PullToRefreshProps extends DOMProps, TouchProps, HasChildren {
7
7
  /**
8
8
  * Будет вызвана для обновления контента (прим.: функция должна быть мемоизированным коллбэком)
9
9
  */
@@ -14,7 +14,6 @@ export interface PullToRefreshProps extends DOMProps, TouchProps {
14
14
  isFetching?: boolean;
15
15
  /** @ignore */
16
16
  scroll?: ScrollContextInterface;
17
- children?: React.ReactNode;
18
17
  }
19
18
  /**
20
19
  * @see https://vkcom.github.io/VKUI/#/PullToRefresh
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/PullToRefresh/PullToRefresh.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { DOMProps, useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport { runTapticImpactOccurred } from '../../lib/taptic';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { AnyFunction } from '../../types';\nimport { ScrollContextInterface, useScroll } from '../AppRoot/ScrollContext';\nimport { FixedLayout } from '../FixedLayout/FixedLayout';\nimport { Touch, TouchEvent, TouchProps } from '../Touch/Touch';\nimport TouchRootContext from '../Touch/TouchContext';\nimport { PullToRefreshSpinner } from './PullToRefreshSpinner';\nimport styles from './PullToRefresh.module.css';\n\nfunction cancelEvent(event: any) {\n if (!event) {\n return false;\n }\n while (event.originalEvent) {\n event = event.originalEvent;\n }\n if (event.preventDefault && event.cancelable) {\n event.preventDefault();\n }\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n return false;\n}\n\nexport interface PullToRefreshProps extends DOMProps, TouchProps {\n /**\n * Будет вызвана для обновления контента (прим.: функция должна быть мемоизированным коллбэком)\n */\n onRefresh: AnyFunction;\n /**\n * Определяет, выполняется ли обновление. Для скрытия спиннера после получения контента необходимо передать `false`\n */\n isFetching?: boolean;\n /** @ignore */\n scroll?: ScrollContextInterface;\n children?: React.ReactNode;\n}\n\nconst TOUCH_MOVE_EVENT_PARAMS = {\n cancelable: true,\n passive: false,\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PullToRefresh\n */\nexport const PullToRefresh = ({\n children,\n isFetching,\n onRefresh,\n className,\n ...restProps\n}: PullToRefreshProps) => {\n const platform = usePlatform();\n const scroll = useScroll();\n const { document } = useDOM();\n const prevIsFetching = usePrevious(isFetching);\n\n const initParams = React.useMemo(\n () => ({\n start: platform === Platform.IOS ? -10 : -45,\n max: platform === Platform.IOS ? 50 : 80,\n maxY: platform === Platform.IOS ? 400 : 80,\n refreshing: platform === Platform.IOS ? 36 : 50,\n positionMultiplier: platform === Platform.IOS ? 0.21 : 1,\n }),\n [platform],\n );\n\n const [spinnerY, setSpinnerY] = React.useState(initParams.start);\n const [watching, setWatching] = React.useState(false);\n const [refreshing, setRefreshing] = React.useState(false);\n const [canRefresh, setCanRefresh] = React.useState(false);\n const [touchDown, setTouchDown] = React.useState(false);\n const prevTouchDown = usePrevious(touchDown);\n\n const touchY = React.useRef(0);\n const [contentShift, setContentShift] = React.useState(0);\n const [spinnerProgress, setSpinnerProgress] = React.useState(0);\n\n const onWindowTouchMove = (event: Event) => {\n if (refreshing) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n useGlobalEventListener(document, 'touchmove', onWindowTouchMove, TOUCH_MOVE_EVENT_PARAMS);\n\n const resetRefreshingState = React.useCallback(() => {\n setWatching(false);\n setCanRefresh(false);\n setRefreshing(false);\n setSpinnerY(initParams.start);\n setSpinnerProgress(0);\n setContentShift(0);\n }, [initParams]);\n\n const onRefreshingFinish = React.useCallback(() => {\n if (!touchDown) {\n resetRefreshingState();\n }\n }, [touchDown, resetRefreshingState]);\n\n const { set: setWaitFetchingTimeout, clear: clearWaitFetchingTimeout } = useTimeout(\n onRefreshingFinish,\n 1000,\n );\n\n useIsomorphicLayoutEffect(() => {\n if (prevIsFetching !== undefined && prevIsFetching && !isFetching) {\n onRefreshingFinish();\n }\n }, [prevIsFetching, isFetching, onRefreshingFinish]);\n\n useIsomorphicLayoutEffect(() => {\n if (prevIsFetching !== undefined && !prevIsFetching && isFetching) {\n clearWaitFetchingTimeout();\n }\n }, [isFetching, prevIsFetching, clearWaitFetchingTimeout]);\n\n const runRefreshing = React.useCallback(() => {\n if (!refreshing && onRefresh) {\n // cleanup if the consumer does not start fetching in 1s\n setWaitFetchingTimeout();\n\n setRefreshing(true);\n setSpinnerY((prevSpinnerY) =>\n platform === Platform.IOS ? prevSpinnerY : initParams.refreshing,\n );\n\n onRefresh();\n runTapticImpactOccurred('light');\n }\n }, [refreshing, onRefresh, setWaitFetchingTimeout, platform, initParams.refreshing]);\n\n useIsomorphicLayoutEffect(() => {\n if (prevTouchDown !== undefined && prevTouchDown && !touchDown) {\n if (!refreshing && canRefresh) {\n runRefreshing();\n } else if (refreshing && !isFetching) {\n // only iOS can start refresh before gesture end\n resetRefreshingState();\n } else {\n // refreshing && isFetching: refresh in progress\n // OR !refreshing && !canRefresh: pull was not strong enough\n setSpinnerY(refreshing ? initParams.refreshing : initParams.start);\n setSpinnerProgress(0);\n setContentShift(0);\n }\n }\n }, [\n initParams,\n prevIsFetching,\n isFetching,\n onRefreshingFinish,\n prevTouchDown,\n touchDown,\n refreshing,\n canRefresh,\n runRefreshing,\n ]);\n\n const onTouchStart = (e: TouchEvent) => {\n if (refreshing) {\n cancelEvent(e);\n }\n setTouchDown(true);\n };\n\n const onTouchMove = (e: TouchEvent) => {\n const { isY, shiftY } = e;\n const { start, max } = initParams;\n const pageYOffset = scroll?.getScroll().y;\n\n if (watching && touchDown) {\n cancelEvent(e);\n\n const { positionMultiplier, maxY } = initParams;\n\n const shift = Math.max(0, shiftY - touchY.current);\n\n const currentY = clamp(start + shift * positionMultiplier, start, maxY);\n const progress = currentY > -10 ? Math.abs((currentY + 10) / max) * 80 : 0;\n\n setSpinnerY(currentY);\n setSpinnerProgress(clamp(progress, 0, 80));\n setCanRefresh(progress > 80);\n setContentShift((currentY + 10) * 2.3);\n\n if (progress > 85 && !refreshing && platform === Platform.IOS) {\n runRefreshing();\n }\n } else if (isY && pageYOffset === 0 && shiftY > 0 && !refreshing && touchDown) {\n cancelEvent(e);\n\n touchY.current = shiftY;\n setWatching(true);\n setSpinnerY(start);\n setSpinnerProgress(0);\n }\n };\n\n const onTouchEnd = () => {\n setWatching(false);\n setTouchDown(false);\n };\n\n const spinnerTransform = `translate3d(0, ${spinnerY}px, 0)`;\n let contentTransform = '';\n\n if (platform === Platform.IOS && refreshing && !touchDown) {\n contentTransform = 'translate3d(0, 100px, 0)';\n } else if (platform === Platform.IOS && (contentShift || refreshing)) {\n contentTransform = `translate3d(0, ${contentShift}px, 0)`;\n }\n\n return (\n <TouchRootContext.Provider value={true}>\n <Touch\n {...restProps}\n onStart={onTouchStart}\n onMove={onTouchMove}\n onEnd={onTouchEnd}\n className={classNames(\n styles['PullToRefresh'],\n platform === Platform.IOS && styles['PullToRefresh--ios'],\n watching && styles['PullToRefresh--watching'],\n refreshing && styles['PullToRefresh--refreshing'],\n className,\n )}\n >\n <FixedLayout className={styles['PullToRefresh__controls']}>\n <PullToRefreshSpinner\n style={{\n transform: spinnerTransform,\n WebkitTransform: spinnerTransform,\n opacity: watching || refreshing || canRefresh ? 1 : 0,\n }}\n on={refreshing}\n progress={refreshing ? undefined : spinnerProgress}\n />\n </FixedLayout>\n\n <div\n className={styles['PullToRefresh__content']}\n style={{\n transform: contentTransform,\n WebkitTransform: contentTransform,\n }}\n >\n {children}\n </div>\n </Touch>\n </TouchRootContext.Provider>\n );\n};\n"],"names":["PullToRefresh","cancelEvent","event","originalEvent","preventDefault","cancelable","stopPropagation","TOUCH_MOVE_EVENT_PARAMS","passive","children","isFetching","onRefresh","className","restProps","platform","usePlatform","scroll","useScroll","document","useDOM","prevIsFetching","usePrevious","initParams","React","useMemo","start","Platform","IOS","max","maxY","refreshing","positionMultiplier","useState","spinnerY","setSpinnerY","watching","setWatching","setRefreshing","canRefresh","setCanRefresh","touchDown","setTouchDown","prevTouchDown","touchY","useRef","contentShift","setContentShift","spinnerProgress","setSpinnerProgress","onWindowTouchMove","useGlobalEventListener","resetRefreshingState","useCallback","onRefreshingFinish","useTimeout","set","setWaitFetchingTimeout","clear","clearWaitFetchingTimeout","useIsomorphicLayoutEffect","undefined","runRefreshing","prevSpinnerY","runTapticImpactOccurred","onTouchStart","e","onTouchMove","isY","shiftY","pageYOffset","getScroll","y","shift","Math","current","currentY","clamp","progress","abs","onTouchEnd","spinnerTransform","contentTransform","TouchRootContext","Provider","value","Touch","onStart","onMove","onEnd","classNames","FixedLayout","PullToRefreshSpinner","style","transform","WebkitTransform","opacity","on","div"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/PullToRefresh/PullToRefresh.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { DOMProps, useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport { runTapticImpactOccurred } from '../../lib/taptic';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { AnyFunction, HasChildren } from '../../types';\nimport { ScrollContextInterface, useScroll } from '../AppRoot/ScrollContext';\nimport { FixedLayout } from '../FixedLayout/FixedLayout';\nimport { Touch, TouchEvent, TouchProps } from '../Touch/Touch';\nimport TouchRootContext from '../Touch/TouchContext';\nimport { PullToRefreshSpinner } from './PullToRefreshSpinner';\nimport styles from './PullToRefresh.module.css';\n\nfunction cancelEvent(event: any) {\n if (!event) {\n return false;\n }\n while (event.originalEvent) {\n event = event.originalEvent;\n }\n if (event.preventDefault && event.cancelable) {\n event.preventDefault();\n }\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n return false;\n}\n\nexport interface PullToRefreshProps extends DOMProps, TouchProps, HasChildren {\n /**\n * Будет вызвана для обновления контента (прим.: функция должна быть мемоизированным коллбэком)\n */\n onRefresh: AnyFunction;\n /**\n * Определяет, выполняется ли обновление. Для скрытия спиннера после получения контента необходимо передать `false`\n */\n isFetching?: boolean;\n /** @ignore */\n scroll?: ScrollContextInterface;\n}\n\nconst TOUCH_MOVE_EVENT_PARAMS = {\n cancelable: true,\n passive: false,\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PullToRefresh\n */\nexport const PullToRefresh = ({\n children,\n isFetching,\n onRefresh,\n className,\n ...restProps\n}: PullToRefreshProps) => {\n const platform = usePlatform();\n const scroll = useScroll();\n const { document } = useDOM();\n const prevIsFetching = usePrevious(isFetching);\n\n const initParams = React.useMemo(\n () => ({\n start: platform === Platform.IOS ? -10 : -45,\n max: platform === Platform.IOS ? 50 : 80,\n maxY: platform === Platform.IOS ? 400 : 80,\n refreshing: platform === Platform.IOS ? 36 : 50,\n positionMultiplier: platform === Platform.IOS ? 0.21 : 1,\n }),\n [platform],\n );\n\n const [spinnerY, setSpinnerY] = React.useState(initParams.start);\n const [watching, setWatching] = React.useState(false);\n const [refreshing, setRefreshing] = React.useState(false);\n const [canRefresh, setCanRefresh] = React.useState(false);\n const [touchDown, setTouchDown] = React.useState(false);\n const prevTouchDown = usePrevious(touchDown);\n\n const touchY = React.useRef(0);\n const [contentShift, setContentShift] = React.useState(0);\n const [spinnerProgress, setSpinnerProgress] = React.useState(0);\n\n const onWindowTouchMove = (event: Event) => {\n if (refreshing) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n useGlobalEventListener(document, 'touchmove', onWindowTouchMove, TOUCH_MOVE_EVENT_PARAMS);\n\n const resetRefreshingState = React.useCallback(() => {\n setWatching(false);\n setCanRefresh(false);\n setRefreshing(false);\n setSpinnerY(initParams.start);\n setSpinnerProgress(0);\n setContentShift(0);\n }, [initParams]);\n\n const onRefreshingFinish = React.useCallback(() => {\n if (!touchDown) {\n resetRefreshingState();\n }\n }, [touchDown, resetRefreshingState]);\n\n const { set: setWaitFetchingTimeout, clear: clearWaitFetchingTimeout } = useTimeout(\n onRefreshingFinish,\n 1000,\n );\n\n useIsomorphicLayoutEffect(() => {\n if (prevIsFetching !== undefined && prevIsFetching && !isFetching) {\n onRefreshingFinish();\n }\n }, [prevIsFetching, isFetching, onRefreshingFinish]);\n\n useIsomorphicLayoutEffect(() => {\n if (prevIsFetching !== undefined && !prevIsFetching && isFetching) {\n clearWaitFetchingTimeout();\n }\n }, [isFetching, prevIsFetching, clearWaitFetchingTimeout]);\n\n const runRefreshing = React.useCallback(() => {\n if (!refreshing && onRefresh) {\n // cleanup if the consumer does not start fetching in 1s\n setWaitFetchingTimeout();\n\n setRefreshing(true);\n setSpinnerY((prevSpinnerY) =>\n platform === Platform.IOS ? prevSpinnerY : initParams.refreshing,\n );\n\n onRefresh();\n runTapticImpactOccurred('light');\n }\n }, [refreshing, onRefresh, setWaitFetchingTimeout, platform, initParams.refreshing]);\n\n useIsomorphicLayoutEffect(() => {\n if (prevTouchDown !== undefined && prevTouchDown && !touchDown) {\n if (!refreshing && canRefresh) {\n runRefreshing();\n } else if (refreshing && !isFetching) {\n // only iOS can start refresh before gesture end\n resetRefreshingState();\n } else {\n // refreshing && isFetching: refresh in progress\n // OR !refreshing && !canRefresh: pull was not strong enough\n setSpinnerY(refreshing ? initParams.refreshing : initParams.start);\n setSpinnerProgress(0);\n setContentShift(0);\n }\n }\n }, [\n initParams,\n prevIsFetching,\n isFetching,\n onRefreshingFinish,\n prevTouchDown,\n touchDown,\n refreshing,\n canRefresh,\n runRefreshing,\n ]);\n\n const onTouchStart = (e: TouchEvent) => {\n if (refreshing) {\n cancelEvent(e);\n }\n setTouchDown(true);\n };\n\n const onTouchMove = (e: TouchEvent) => {\n const { isY, shiftY } = e;\n const { start, max } = initParams;\n const pageYOffset = scroll?.getScroll().y;\n\n if (watching && touchDown) {\n cancelEvent(e);\n\n const { positionMultiplier, maxY } = initParams;\n\n const shift = Math.max(0, shiftY - touchY.current);\n\n const currentY = clamp(start + shift * positionMultiplier, start, maxY);\n const progress = currentY > -10 ? Math.abs((currentY + 10) / max) * 80 : 0;\n\n setSpinnerY(currentY);\n setSpinnerProgress(clamp(progress, 0, 80));\n setCanRefresh(progress > 80);\n setContentShift((currentY + 10) * 2.3);\n\n if (progress > 85 && !refreshing && platform === Platform.IOS) {\n runRefreshing();\n }\n } else if (isY && pageYOffset === 0 && shiftY > 0 && !refreshing && touchDown) {\n cancelEvent(e);\n\n touchY.current = shiftY;\n setWatching(true);\n setSpinnerY(start);\n setSpinnerProgress(0);\n }\n };\n\n const onTouchEnd = () => {\n setWatching(false);\n setTouchDown(false);\n };\n\n const spinnerTransform = `translate3d(0, ${spinnerY}px, 0)`;\n let contentTransform = '';\n\n if (platform === Platform.IOS && refreshing && !touchDown) {\n contentTransform = 'translate3d(0, 100px, 0)';\n } else if (platform === Platform.IOS && (contentShift || refreshing)) {\n contentTransform = `translate3d(0, ${contentShift}px, 0)`;\n }\n\n return (\n <TouchRootContext.Provider value={true}>\n <Touch\n {...restProps}\n onStart={onTouchStart}\n onMove={onTouchMove}\n onEnd={onTouchEnd}\n className={classNames(\n styles['PullToRefresh'],\n platform === Platform.IOS && styles['PullToRefresh--ios'],\n watching && styles['PullToRefresh--watching'],\n refreshing && styles['PullToRefresh--refreshing'],\n className,\n )}\n >\n <FixedLayout className={styles['PullToRefresh__controls']}>\n <PullToRefreshSpinner\n style={{\n transform: spinnerTransform,\n WebkitTransform: spinnerTransform,\n opacity: watching || refreshing || canRefresh ? 1 : 0,\n }}\n on={refreshing}\n progress={refreshing ? undefined : spinnerProgress}\n />\n </FixedLayout>\n\n <div\n className={styles['PullToRefresh__content']}\n style={{\n transform: contentTransform,\n WebkitTransform: contentTransform,\n }}\n >\n {children}\n </div>\n </Touch>\n </TouchRootContext.Provider>\n );\n};\n"],"names":["PullToRefresh","cancelEvent","event","originalEvent","preventDefault","cancelable","stopPropagation","TOUCH_MOVE_EVENT_PARAMS","passive","children","isFetching","onRefresh","className","restProps","platform","usePlatform","scroll","useScroll","document","useDOM","prevIsFetching","usePrevious","initParams","React","useMemo","start","Platform","IOS","max","maxY","refreshing","positionMultiplier","useState","spinnerY","setSpinnerY","watching","setWatching","setRefreshing","canRefresh","setCanRefresh","touchDown","setTouchDown","prevTouchDown","touchY","useRef","contentShift","setContentShift","spinnerProgress","setSpinnerProgress","onWindowTouchMove","useGlobalEventListener","resetRefreshingState","useCallback","onRefreshingFinish","useTimeout","set","setWaitFetchingTimeout","clear","clearWaitFetchingTimeout","useIsomorphicLayoutEffect","undefined","runRefreshing","prevSpinnerY","runTapticImpactOccurred","onTouchStart","e","onTouchMove","isY","shiftY","pageYOffset","getScroll","y","shift","Math","current","currentY","clamp","progress","abs","onTouchEnd","spinnerTransform","contentTransform","TouchRootContext","Provider","value","Touch","onStart","onMove","onEnd","classNames","FixedLayout","PullToRefreshSpinner","style","transform","WebkitTransform","opacity","on","div"],"mappings":"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"}
@@ -2,8 +2,9 @@ import * as React from 'react';
2
2
  import { HasRef, HasRootRef } from '../../types';
3
3
  export interface RadioProps extends React.InputHTMLAttributes<HTMLInputElement>, HasRef<HTMLInputElement>, HasRootRef<HTMLLabelElement> {
4
4
  description?: React.ReactNode;
5
+ titleAfter?: React.ReactNode;
5
6
  }
6
7
  /**
7
8
  * @see https://vkcom.github.io/VKUI/#/Radio
8
9
  */
9
- export declare const Radio: ({ children, description, style, className, getRootRef, ...restProps }: RadioProps) => JSX.Element;
10
+ export declare const Radio: ({ children, description, style, className, getRootRef, titleAfter, getRef, ...restProps }: RadioProps) => JSX.Element;
@@ -21,7 +21,7 @@ var _adaptivity = require("../../lib/adaptivity");
21
21
  var _platform = require("../../lib/platform");
22
22
  var _tappable = require("../Tappable/Tappable");
23
23
  var _footnote = require("../Typography/Footnote/Footnote");
24
- var _visuallyHiddenInput = require("../VisuallyHiddenInput/VisuallyHiddenInput");
24
+ var _visuallyHidden = require("../VisuallyHidden/VisuallyHidden");
25
25
  var sizeYClassNames = _defineProperty({
26
26
  none: "vkuiRadio--sizeY-none"
27
27
  }, _adaptivity.SizeType.COMPACT, "vkuiRadio--sizeY-compact");
@@ -46,12 +46,14 @@ var RadioIcon = function(props) {
46
46
  }));
47
47
  };
48
48
  var Radio = function(_param) {
49
- var children = _param.children, description = _param.description, style = _param.style, className = _param.className, getRootRef = _param.getRootRef, restProps = _objectWithoutProperties(_param, [
49
+ var children = _param.children, description = _param.description, style = _param.style, className = _param.className, getRootRef = _param.getRootRef, titleAfter = _param.titleAfter, getRef = _param.getRef, restProps = _objectWithoutProperties(_param, [
50
50
  "children",
51
51
  "description",
52
52
  "style",
53
53
  "className",
54
- "getRootRef"
54
+ "getRootRef",
55
+ "titleAfter",
56
+ "getRef"
55
57
  ]);
56
58
  var platform = (0, _usePlatform.usePlatform)();
57
59
  var _useAdaptivity1 = (0, _useAdaptivity.useAdaptivity)(), _useAdaptivity_sizeY = _useAdaptivity1.sizeY, sizeY = _useAdaptivity_sizeY === void 0 ? "none" : _useAdaptivity_sizeY;
@@ -62,9 +64,11 @@ var Radio = function(_param) {
62
64
  activeEffectDelay: platform === _platform.Platform.IOS ? 100 : _tappable.ACTIVE_EFFECT_DELAY,
63
65
  disabled: restProps.disabled,
64
66
  getRootRef: getRootRef
65
- }, /*#__PURE__*/ _react.createElement(_visuallyHiddenInput.VisuallyHiddenInput, _objectSpreadProps(_objectSpread({}, restProps), {
66
- className: "vkuiRadio__input",
67
- type: "radio"
67
+ }, /*#__PURE__*/ _react.createElement(_visuallyHidden.VisuallyHidden, _objectSpreadProps(_objectSpread({}, restProps), {
68
+ Component: "input",
69
+ type: "radio",
70
+ getRootRef: getRef,
71
+ className: "vkuiRadio__input"
68
72
  })), /*#__PURE__*/ _react.createElement("div", {
69
73
  className: "vkuiRadio__container"
70
74
  }, /*#__PURE__*/ _react.createElement(RadioIcon, {
@@ -72,8 +76,10 @@ var Radio = function(_param) {
72
76
  }), /*#__PURE__*/ _react.createElement("div", {
73
77
  className: "vkuiRadio__content"
74
78
  }, /*#__PURE__*/ _react.createElement("div", {
75
- className: "vkuiRadio__children"
76
- }, children), (0, _vkjs.hasReactNode)(description) && /*#__PURE__*/ _react.createElement(_footnote.Footnote, {
79
+ className: "vkuiRadio__title"
80
+ }, /*#__PURE__*/ _react.createElement("span", null, children), /*#__PURE__*/ _react.createElement("div", {
81
+ className: "vkuiRadio__titleAfter"
82
+ }, titleAfter)), (0, _vkjs.hasReactNode)(description) && /*#__PURE__*/ _react.createElement(_footnote.Footnote, {
77
83
  className: "vkuiRadio__description"
78
84
  }, description))));
79
85
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { HasRef, HasRootRef } from '../../types';\nimport { ACTIVE_EFFECT_DELAY, Tappable } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { VisuallyHiddenInput } from '../VisuallyHiddenInput/VisuallyHiddenInput';\nimport styles from './Radio.module.css';\n\nconst sizeYClassNames = {\n none: styles['Radio--sizeY-none'],\n [SizeType.COMPACT]: styles['Radio--sizeY-compact'],\n};\n\nconst RadioIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" aria-hidden {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"11\" stroke=\"currentColor\" strokeWidth=\"2\" fill=\"none\" />\n <circle cx=\"12\" cy=\"12\" r=\"7.5\" className={styles['Radio__pin']} fill=\"currentColor\" />\n </svg>\n );\n};\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLLabelElement> {\n description?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Radio\n */\nexport const Radio = ({\n children,\n description,\n style,\n className,\n getRootRef,\n ...restProps\n}: RadioProps) => {\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Tappable\n Component=\"label\"\n style={style}\n className={classNames(\n styles['Radio'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n className,\n )}\n activeEffectDelay={platform === Platform.IOS ? 100 : ACTIVE_EFFECT_DELAY}\n disabled={restProps.disabled}\n getRootRef={getRootRef}\n >\n <VisuallyHiddenInput {...restProps} className={styles['Radio__input']} type=\"radio\" />\n <div className={styles['Radio__container']}>\n <RadioIcon className={styles['Radio__icon']} />\n <div className={styles['Radio__content']}>\n <div className={styles['Radio__children']}>{children}</div>\n {hasReactNode(description) && (\n <Footnote className={styles['Radio__description']}>{description}</Footnote>\n )}\n </div>\n </div>\n </Tappable>\n );\n};\n"],"names":["Radio","sizeYClassNames","none","SizeType","COMPACT","RadioIcon","props","svg","xmlns","viewBox","aria-hidden","circle","cx","cy","r","stroke","strokeWidth","fill","className","children","description","style","getRootRef","restProps","platform","usePlatform","useAdaptivity","sizeY","Tappable","Component","classNames","REGULAR","activeEffectDelay","Platform","IOS","ACTIVE_EFFECT_DELAY","disabled","VisuallyHiddenInput","type","div","hasReactNode","Footnote"],"mappings":";;;;+BAoCaA;;;eAAAA;;;;;;;;2DApCU;oBACkB;6BACX;2BACF;0BACH;wBACA;wBAEqB;wBACrB;mCACW;AAGpC,IAAMC;IACJC,IAAI;GACHC,oBAAQ,CAACC,OAAO;AAGnB,IAAMC,YAAY,SAACC,OAAyC;IAC1D,qBACE,qBAACC;QAAIC,OAAM;QAA6BC,SAAQ;QAAYC,eAAAA,IAAW;OAAKJ,sBAC1E,qBAACK;QAAOC,IAAG;QAAKC,IAAG;QAAKC,GAAE;QAAKC,QAAO;QAAeC,aAAY;QAAIC,MAAK;sBAC1E,qBAACN;QAAOC,IAAG;QAAKC,IAAG;QAAKC,GAAE;QAAMI,SAAS;QAAwBD,MAAK;;AAG5E;AAYO,IAAMjB,QAAQ,iBAOH;QANhBmB,kBAAAA,UACAC,qBAAAA,aACAC,eAAAA,OACAH,mBAAAA,WACAI,oBAAAA,YACGC;QALHJ;QACAC;QACAC;QACAH;QACAI;;IAGA,IAAME,WAAWC,IAAAA,wBAAW;IAC5B,IAA2BC,kBAAAA,IAAAA,4BAAa,4BAAbA,gBAAnBC,OAAAA,0CAAQ;IAEhB,qBACE,qBAACC,kBAAQ;QACPC,WAAU;QACVR,OAAOA;QACPH,WAAWY,IAAAA,gBAAU,eAEnBH,UAAUxB,oBAAQ,CAAC4B,OAAO,IAAI9B,eAAe,CAAC0B,MAAM,EACpDT;QAEFc,mBAAmBR,aAAaS,kBAAQ,CAACC,GAAG,GAAG,MAAMC,6BAAmB;QACxEC,UAAUb,UAAUa,QAAQ;QAC5Bd,YAAYA;qBAEZ,qBAACe,wCAAmB,uCAAKd;QAAWL,SAAS;QAA0BoB,MAAK;uBAC5E,qBAACC;QAAIrB,SAAS;qBACZ,qBAACb;QAAUa,SAAS;sBACpB,qBAACqB;QAAIrB,SAAS;qBACZ,qBAACqB;QAAIrB,SAAS;OAA8BC,WAC3CqB,IAAAA,kBAAY,EAACpB,8BACZ,qBAACqB,kBAAQ;QAACvB,SAAS;OAAiCE;AAMhE"}
1
+ {"version":3,"sources":["../../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { HasRef, HasRootRef } from '../../types';\nimport { ACTIVE_EFFECT_DELAY, Tappable } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Radio.module.css';\n\nconst sizeYClassNames = {\n none: styles['Radio--sizeY-none'],\n [SizeType.COMPACT]: styles['Radio--sizeY-compact'],\n};\n\nconst RadioIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" aria-hidden {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"11\" stroke=\"currentColor\" strokeWidth=\"2\" fill=\"none\" />\n <circle cx=\"12\" cy=\"12\" r=\"7.5\" className={styles['Radio__pin']} fill=\"currentColor\" />\n </svg>\n );\n};\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLLabelElement> {\n description?: React.ReactNode;\n titleAfter?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Radio\n */\nexport const Radio = ({\n children,\n description,\n style,\n className,\n getRootRef,\n titleAfter,\n getRef,\n ...restProps\n}: RadioProps) => {\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Tappable\n Component=\"label\"\n style={style}\n className={classNames(\n styles['Radio'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n className,\n )}\n activeEffectDelay={platform === Platform.IOS ? 100 : ACTIVE_EFFECT_DELAY}\n disabled={restProps.disabled}\n getRootRef={getRootRef}\n >\n <VisuallyHidden\n {...restProps}\n Component=\"input\"\n type=\"radio\"\n getRootRef={getRef}\n className={styles['Radio__input']}\n />\n <div className={styles['Radio__container']}>\n <RadioIcon className={styles['Radio__icon']} />\n <div className={styles['Radio__content']}>\n <div className={styles['Radio__title']}>\n <span>{children}</span>\n <div className={styles['Radio__titleAfter']}>{titleAfter}</div>\n </div>\n {hasReactNode(description) && (\n <Footnote className={styles['Radio__description']}>{description}</Footnote>\n )}\n </div>\n </div>\n </Tappable>\n );\n};\n"],"names":["Radio","sizeYClassNames","none","SizeType","COMPACT","RadioIcon","props","svg","xmlns","viewBox","aria-hidden","circle","cx","cy","r","stroke","strokeWidth","fill","className","children","description","style","getRootRef","titleAfter","getRef","restProps","platform","usePlatform","useAdaptivity","sizeY","Tappable","Component","classNames","REGULAR","activeEffectDelay","Platform","IOS","ACTIVE_EFFECT_DELAY","disabled","VisuallyHidden","type","div","span","hasReactNode","Footnote"],"mappings":";;;;+BAqCaA;;;eAAAA;;;;;;;;2DArCU;oBACkB;6BACX;2BACF;0BACH;wBACA;wBAEqB;wBACrB;8BACM;AAG/B,IAAMC;IACJC,IAAI;GACHC,oBAAQ,CAACC,OAAO;AAGnB,IAAMC,YAAY,SAACC,OAAyC;IAC1D,qBACE,qBAACC;QAAIC,OAAM;QAA6BC,SAAQ;QAAYC,eAAAA,IAAW;OAAKJ,sBAC1E,qBAACK;QAAOC,IAAG;QAAKC,IAAG;QAAKC,GAAE;QAAKC,QAAO;QAAeC,aAAY;QAAIC,MAAK;sBAC1E,qBAACN;QAAOC,IAAG;QAAKC,IAAG;QAAKC,GAAE;QAAMI,SAAS;QAAwBD,MAAK;;AAG5E;AAaO,IAAMjB,QAAQ,iBASH;QARhBmB,kBAAAA,UACAC,qBAAAA,aACAC,eAAAA,OACAH,mBAAAA,WACAI,oBAAAA,YACAC,oBAAAA,YACAC,gBAAAA,QACGC;QAPHN;QACAC;QACAC;QACAH;QACAI;QACAC;QACAC;;IAGA,IAAME,WAAWC,IAAAA,wBAAW;IAC5B,IAA2BC,kBAAAA,IAAAA,4BAAa,4BAAbA,gBAAnBC,OAAAA,0CAAQ;IAEhB,qBACE,qBAACC,kBAAQ;QACPC,WAAU;QACVV,OAAOA;QACPH,WAAWc,IAAAA,gBAAU,eAEnBH,UAAU1B,oBAAQ,CAAC8B,OAAO,IAAIhC,eAAe,CAAC4B,MAAM,EACpDX;QAEFgB,mBAAmBR,aAAaS,kBAAQ,CAACC,GAAG,GAAG,MAAMC,6BAAmB;QACxEC,UAAUb,UAAUa,QAAQ;QAC5BhB,YAAYA;qBAEZ,qBAACiB,8BAAc,uCACTd;QACJM,WAAU;QACVS,MAAK;QACLlB,YAAYE;QACZN,SAAS;uBAEX,qBAACuB;QAAIvB,SAAS;qBACZ,qBAACb;QAAUa,SAAS;sBACpB,qBAACuB;QAAIvB,SAAS;qBACZ,qBAACuB;QAAIvB,SAAS;qBACZ,qBAACwB,cAAMvB,yBACP,qBAACsB;QAAIvB,SAAS;OAAgCK,cAE/CoB,IAAAA,kBAAY,EAACvB,8BACZ,qBAACwB,kBAAQ;QAAC1B,SAAS;OAAiCE;AAMhE"}
@@ -10,14 +10,19 @@ export interface RemovableProps {
10
10
  */
11
11
  onRemove?: (e: React.MouseEvent, rootEl?: HTMLElement | null) => void;
12
12
  }
13
- interface RemovableOwnProps extends React.AllHTMLAttributes<HTMLElement>, RemovableProps, HasRootRef<HTMLDivElement> {
13
+ interface RemovableOwnProps extends React.HTMLAttributes<HTMLDivElement>, RemovableProps, HasRootRef<HTMLDivElement> {
14
14
  /**
15
15
  * Расположение кнопки удаления.
16
16
  */
17
17
  align?: 'start' | 'center';
18
+ /**
19
+ * Скрывает кнопку, но оставляет отступ.
20
+ * @since 5.4.0
21
+ */
22
+ indent?: boolean;
18
23
  }
19
24
  /**
20
25
  * @see https://vkcom.github.io/VKUI/#/Removable
21
26
  */
22
- export declare const Removable: ({ getRootRef, children, onRemove, removePlaceholder, align, className, ...restProps }: RemovableOwnProps) => JSX.Element;
27
+ export declare const Removable: ({ getRootRef, children, onRemove, removePlaceholder, align, className, indent, ...restProps }: RemovableOwnProps) => JSX.Element;
23
28
  export {};
@@ -88,13 +88,14 @@ var _tappable = require("../Tappable/Tappable");
88
88
  }, removePlaceholder)));
89
89
  };
90
90
  var Removable = function(_param) {
91
- var getRootRef = _param.getRootRef, children = _param.children, _param_onRemove = _param.onRemove, onRemove = _param_onRemove === void 0 ? _vkjs.noop : _param_onRemove, _param_removePlaceholder = _param.removePlaceholder, removePlaceholder = _param_removePlaceholder === void 0 ? "Удалить" : _param_removePlaceholder, _param_align = _param.align, align = _param_align === void 0 ? "center" : _param_align, className = _param.className, restProps = _objectWithoutProperties(_param, [
91
+ var getRootRef = _param.getRootRef, children = _param.children, _param_onRemove = _param.onRemove, onRemove = _param_onRemove === void 0 ? _vkjs.noop : _param_onRemove, _param_removePlaceholder = _param.removePlaceholder, removePlaceholder = _param_removePlaceholder === void 0 ? "Удалить" : _param_removePlaceholder, _param_align = _param.align, align = _param_align === void 0 ? "center" : _param_align, className = _param.className, _param_indent = _param.indent, indent = _param_indent === void 0 ? false : _param_indent, restProps = _objectWithoutProperties(_param, [
92
92
  "getRootRef",
93
93
  "children",
94
94
  "onRemove",
95
95
  "removePlaceholder",
96
96
  "align",
97
- "className"
97
+ "className",
98
+ "indent"
98
99
  ]);
99
100
  var platform = (0, _usePlatform.usePlatform)();
100
101
  var ref = (0, _useExternRef.useExternRef)(getRootRef);
@@ -105,7 +106,7 @@ var Removable = function(_param) {
105
106
  var removePlaceholderString = (0, _utils.getTitleFromChildren)(removePlaceholder);
106
107
  return /*#__PURE__*/ _react.createElement("div", _objectSpreadProps(_objectSpread({}, restProps), {
107
108
  ref: ref,
108
- className: (0, _vkjs.classNames)(platform === _platform.Platform.IOS && "vkuiRemovable--ios", align === "start" && "vkuiRemovable--align-start", className)
109
+ className: (0, _vkjs.classNames)(platform === _platform.Platform.IOS && "vkuiRemovable--ios", align === "start" && "vkuiRemovable--align-start", indent && "vkuiRemovable--indent", className)
109
110
  }), platform !== _platform.Platform.IOS && /*#__PURE__*/ _react.createElement("div", {
110
111
  className: (0, _vkjs.classNames)("vkuiRemovable__content", "vkuiInternalRemovable__content")
111
112
  }, children, /*#__PURE__*/ _react.createElement(_iconButton.IconButton, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Removable/Removable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport { getTitleFromChildren } from '../../lib/utils';\nimport { HasRootRef } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Tappable } from '../Tappable/Tappable';\nimport styles from './Removable.module.css';\n\nexport interface RemovableProps {\n /**\n * iOS only. Текст в выезжающей кнопке для удаления ячейки.\n */\n removePlaceholder?: React.ReactNode;\n /**\n * Коллбэк срабатывает при клике на контрол удаления.\n */\n onRemove?: (e: React.MouseEvent, rootEl?: HTMLElement | null) => void;\n}\n\ninterface RemovableIosOwnProps extends RemovableProps {\n removePlaceholderString?: string;\n children?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/RemovableIos\n */\nconst RemovableIos = ({\n onRemove,\n removePlaceholder,\n removePlaceholderString,\n children,\n}: RemovableIosOwnProps) => {\n const { window } = useDOM();\n\n const removeButtonRef = React.useRef<HTMLElement>(null);\n const disabledRef = React.useRef(true);\n const [removeOffset, updateRemoveOffset] = React.useState(0);\n\n useGlobalEventListener(\n window,\n 'click',\n () => {\n if (removeOffset > 0) {\n updateRemoveOffset(0);\n }\n },\n { capture: true },\n );\n\n const onRemoveTransitionEnd = () => {\n if (removeOffset > 0) {\n removeButtonRef?.current?.focus();\n } else {\n disabledRef.current = true;\n }\n };\n\n const onRemoveActivateClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!removeButtonRef.current) {\n return;\n }\n const { offsetWidth } = removeButtonRef.current;\n disabledRef.current = false;\n updateRemoveOffset(offsetWidth);\n };\n\n return (\n <div\n className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}\n style={{ transform: `translateX(-${removeOffset ?? 0}px)` }}\n onTransitionEnd={onRemoveTransitionEnd}\n >\n <IconButton\n hasActive={false}\n hasHover={false}\n aria-label={removePlaceholderString}\n className={classNames(styles['Removable__action'], styles['Removable__toggle'])}\n onClick={onRemoveActivateClick}\n disabled={removeOffset > 0}\n >\n <i className={styles['Removable__toggle-in']} role=\"presentation\" />\n </IconButton>\n {children}\n\n <span className={styles['Removable__offset']} aria-hidden />\n\n <Tappable\n Component=\"button\"\n hasActive={false}\n hasHover={false}\n disabled={disabledRef.current}\n getRootRef={removeButtonRef}\n className={styles['Removable__remove']}\n onClick={onRemove}\n >\n <span className={styles['Removable__remove-in']}>{removePlaceholder}</span>\n </Tappable>\n </div>\n );\n};\n\ninterface RemovableOwnProps\n extends React.AllHTMLAttributes<HTMLElement>,\n RemovableProps,\n HasRootRef<HTMLDivElement> {\n /**\n * Расположение кнопки удаления.\n */\n align?: 'start' | 'center';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Removable\n */\nexport const Removable = ({\n getRootRef,\n children,\n onRemove = noop,\n removePlaceholder = 'Удалить',\n align = 'center',\n className,\n ...restProps\n}: RemovableOwnProps) => {\n const platform = usePlatform();\n\n const ref = useExternRef(getRootRef);\n\n const onRemoveClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onRemove(e);\n };\n\n const removePlaceholderString: string = getTitleFromChildren(removePlaceholder);\n\n return (\n <div\n {...restProps}\n ref={ref}\n className={classNames(\n platform === Platform.IOS && styles['Removable--ios'],\n align === 'start' && styles['Removable--align-start'],\n className,\n )}\n >\n {platform !== Platform.IOS && (\n <div className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}>\n {children}\n\n <IconButton\n activeMode=\"opacity\"\n hoverMode=\"opacity\"\n className={styles['Removable__action']}\n onClick={onRemoveClick}\n aria-label={removePlaceholderString}\n >\n <Icon24Cancel role=\"presentation\" />\n </IconButton>\n\n <span className={styles['Removable__offset']} aria-hidden />\n </div>\n )}\n\n {platform === Platform.IOS && (\n <RemovableIos\n onRemove={onRemoveClick}\n removePlaceholder={removePlaceholder}\n removePlaceholderString={removePlaceholderString}\n >\n {children}\n </RemovableIos>\n )}\n </div>\n );\n};\n"],"names":["Removable","RemovableIos","onRemove","removePlaceholder","removePlaceholderString","children","window","useDOM","removeButtonRef","React","useRef","disabledRef","useState","removeOffset","updateRemoveOffset","useGlobalEventListener","capture","onRemoveTransitionEnd","current","focus","onRemoveActivateClick","e","stopPropagation","offsetWidth","div","className","classNames","style","transform","onTransitionEnd","IconButton","hasActive","hasHover","aria-label","onClick","disabled","i","role","span","aria-hidden","Tappable","Component","getRootRef","noop","align","restProps","platform","usePlatform","ref","useExternRef","onRemoveClick","preventDefault","getTitleFromChildren","Platform","IOS","activeMode","hoverMode","Icon24Cancel"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Removable/Removable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport { getTitleFromChildren } from '../../lib/utils';\nimport { HasChildren, HasRootRef } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Tappable } from '../Tappable/Tappable';\nimport styles from './Removable.module.css';\n\nexport interface RemovableProps {\n /**\n * iOS only. Текст в выезжающей кнопке для удаления ячейки.\n */\n removePlaceholder?: React.ReactNode;\n /**\n * Коллбэк срабатывает при клике на контрол удаления.\n */\n onRemove?: (e: React.MouseEvent, rootEl?: HTMLElement | null) => void;\n}\n\ninterface RemovableIosOwnProps extends RemovableProps, HasChildren {\n removePlaceholderString?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/RemovableIos\n */\nconst RemovableIos = ({\n onRemove,\n removePlaceholder,\n removePlaceholderString,\n children,\n}: RemovableIosOwnProps) => {\n const { window } = useDOM();\n\n const removeButtonRef = React.useRef<HTMLElement>(null);\n const disabledRef = React.useRef(true);\n const [removeOffset, updateRemoveOffset] = React.useState(0);\n\n useGlobalEventListener(\n window,\n 'click',\n () => {\n if (removeOffset > 0) {\n updateRemoveOffset(0);\n }\n },\n { capture: true },\n );\n\n const onRemoveTransitionEnd = () => {\n if (removeOffset > 0) {\n removeButtonRef?.current?.focus();\n } else {\n disabledRef.current = true;\n }\n };\n\n const onRemoveActivateClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!removeButtonRef.current) {\n return;\n }\n const { offsetWidth } = removeButtonRef.current;\n disabledRef.current = false;\n updateRemoveOffset(offsetWidth);\n };\n\n return (\n <div\n className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}\n style={{ transform: `translateX(-${removeOffset ?? 0}px)` }}\n onTransitionEnd={onRemoveTransitionEnd}\n >\n <IconButton\n hasActive={false}\n hasHover={false}\n aria-label={removePlaceholderString}\n className={classNames(styles['Removable__action'], styles['Removable__toggle'])}\n onClick={onRemoveActivateClick}\n disabled={removeOffset > 0}\n >\n <i className={styles['Removable__toggle-in']} role=\"presentation\" />\n </IconButton>\n {children}\n\n <span className={styles['Removable__offset']} aria-hidden />\n\n <Tappable\n Component=\"button\"\n hasActive={false}\n hasHover={false}\n disabled={disabledRef.current}\n getRootRef={removeButtonRef}\n className={styles['Removable__remove']}\n onClick={onRemove}\n >\n <span className={styles['Removable__remove-in']}>{removePlaceholder}</span>\n </Tappable>\n </div>\n );\n};\n\ninterface RemovableOwnProps\n extends React.HTMLAttributes<HTMLDivElement>,\n RemovableProps,\n HasRootRef<HTMLDivElement> {\n /**\n * Расположение кнопки удаления.\n */\n align?: 'start' | 'center';\n /**\n * Скрывает кнопку, но оставляет отступ.\n * @since 5.4.0\n */\n indent?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Removable\n */\nexport const Removable = ({\n getRootRef,\n children,\n onRemove = noop,\n removePlaceholder = 'Удалить',\n align = 'center',\n className,\n indent = false,\n ...restProps\n}: RemovableOwnProps) => {\n const platform = usePlatform();\n\n const ref = useExternRef(getRootRef);\n\n const onRemoveClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onRemove(e);\n };\n\n const removePlaceholderString: string = getTitleFromChildren(removePlaceholder);\n\n return (\n <div\n {...restProps}\n ref={ref}\n className={classNames(\n platform === Platform.IOS && styles['Removable--ios'],\n align === 'start' && styles['Removable--align-start'],\n indent && styles['Removable--indent'],\n className,\n )}\n >\n {platform !== Platform.IOS && (\n <div className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}>\n {children}\n\n <IconButton\n activeMode=\"opacity\"\n hoverMode=\"opacity\"\n className={styles['Removable__action']}\n onClick={onRemoveClick}\n aria-label={removePlaceholderString}\n >\n <Icon24Cancel role=\"presentation\" />\n </IconButton>\n\n <span className={styles['Removable__offset']} aria-hidden />\n </div>\n )}\n\n {platform === Platform.IOS && (\n <RemovableIos\n onRemove={onRemoveClick}\n removePlaceholder={removePlaceholder}\n removePlaceholderString={removePlaceholderString}\n >\n {children}\n </RemovableIos>\n )}\n </div>\n );\n};\n"],"names":["Removable","RemovableIos","onRemove","removePlaceholder","removePlaceholderString","children","window","useDOM","removeButtonRef","React","useRef","disabledRef","useState","removeOffset","updateRemoveOffset","useGlobalEventListener","capture","onRemoveTransitionEnd","current","focus","onRemoveActivateClick","e","stopPropagation","offsetWidth","div","className","classNames","style","transform","onTransitionEnd","IconButton","hasActive","hasHover","aria-label","onClick","disabled","i","role","span","aria-hidden","Tappable","Component","getRootRef","noop","align","indent","restProps","platform","usePlatform","ref","useExternRef","onRemoveClick","preventDefault","getTitleFromChildren","Platform","IOS","activeMode","hoverMode","Icon24Cancel"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Root/Root.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ScrollContext } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { SplitColContext } from '../SplitCol/SplitColContext';\nimport styles from './Root.module.css';\n\nexport interface RootProps extends React.HTMLAttributes<HTMLDivElement>, NavIdProps {\n activeView: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n}\n\nexport interface RootState {\n activeView: string;\n transition: boolean;\n isBack?: boolean;\n prevView?: string;\n}\n\nconst warn = warnOnce('Root');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Root\n */\nexport const Root = ({\n children,\n activeView: _activeView,\n onTransition,\n nav,\n className,\n ...restProps\n}: RootProps) => {\n const scroll = React.useContext(ScrollContext);\n const platform = usePlatform();\n const { document } = useDOM();\n const scrolls = React.useRef<Record<string, number>>({}).current;\n const viewNodes = React.useRef<Record<string, HTMLElement | null>>({}).current;\n\n const { transitionMotionEnabled = true } = useConfigProvider();\n const { animate } = React.useContext(SplitColContext);\n const disableAnimation = !transitionMotionEnabled || !animate;\n\n const views = React.Children.toArray(children) as React.ReactElement[];\n\n const [{ prevView, activeView, transition, isBack }, _setState] = React.useState<RootState>({\n activeView: _activeView,\n transition: false,\n });\n const transitionTo = (panel: string) => {\n if (panel !== activeView) {\n const viewIds = views.map((view) => getNavId(view.props, warn));\n const isBack = viewIds.indexOf(panel) < viewIds.indexOf(activeView);\n scrolls[activeView] = scroll.getScroll().y;\n _setState({\n activeView: panel,\n prevView: activeView,\n transition: !disableAnimation,\n isBack,\n });\n }\n };\n const finishTransition = React.useCallback(\n () => _setState({ activeView, prevView, isBack, transition: false }),\n [activeView, isBack, prevView],\n );\n\n useIsomorphicLayoutEffect(() => {\n (document!.activeElement as HTMLElement).blur();\n }, [activeView]);\n\n // Нужен переход\n useIsomorphicLayoutEffect(() => transitionTo(_activeView), [_activeView]);\n useIsomorphicLayoutEffect(() => {\n if (!transition && prevView) {\n // Закончился переход\n scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);\n onTransition &&\n onTransition({\n isBack: Boolean(isBack),\n from: prevView,\n to: activeView,\n });\n }\n }, [transition, prevView]);\n\n const fallbackTransition = useTimeout(finishTransition, platform === Platform.IOS ? 600 : 300);\n React.useEffect(() => {\n if (!transition) {\n fallbackTransition.clear();\n return;\n }\n fallbackTransition.set();\n }, [fallbackTransition, transition]);\n\n const onAnimationEnd = (e: React.AnimationEvent) => {\n if (\n [\n 'vkui-root-android-animation-hide-back',\n 'vkui-root-android-animation-show-forward',\n 'vkui-root-ios-animation-hide-back',\n 'vkui-root-ios-animation-show-forward',\n ].includes(e.animationName)\n ) {\n finishTransition();\n }\n };\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['Root'],\n platform === Platform.IOS && styles['Root--ios'],\n transition && styles['Root--transition'],\n className,\n )}\n >\n {views.map((view) => {\n const viewId = getNavId(view.props, warn);\n if (viewId !== activeView && !(transition && viewId === prevView)) {\n return null;\n }\n const isTransitionTarget = transition && viewId === (isBack ? prevView : activeView);\n const compensateScroll =\n transition && (viewId === prevView || (isBack && viewId === activeView));\n return (\n <div\n key={viewId}\n ref={(e) => viewId && (viewNodes[viewId] = e)}\n onAnimationEnd={isTransitionTarget ? onAnimationEnd : undefined}\n className={classNames(\n styles['Root__view'],\n transition && viewId === prevView && isBack && styles['Root__view--hide-back'],\n transition && viewId === prevView && !isBack && styles['Root__view--hide-forward'],\n transition && viewId === activeView && isBack && styles['Root__view--show-back'],\n transition && viewId === activeView && !isBack && styles['Root__view--show-forward'],\n )}\n >\n <NavTransitionProvider entering={transition && viewId === activeView}>\n <div\n className={styles['Root__scrollCompensation']}\n style={{\n marginTop: compensateScroll ? viewId && -(scrolls[viewId] ?? 0) : undefined,\n }}\n >\n {view}\n </div>\n </NavTransitionProvider>\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["Root","warn","warnOnce","children","activeView","_activeView","onTransition","nav","className","restProps","scroll","React","useContext","ScrollContext","platform","usePlatform","document","useDOM","scrolls","useRef","current","viewNodes","useConfigProvider","transitionMotionEnabled","animate","SplitColContext","disableAnimation","views","Children","toArray","useState","transition","prevView","isBack","_setState","transitionTo","panel","viewIds","map","view","getNavId","props","indexOf","getScroll","y","finishTransition","useCallback","useIsomorphicLayoutEffect","activeElement","blur","scrollTo","Boolean","from","to","fallbackTransition","useTimeout","Platform","IOS","useEffect","clear","set","onAnimationEnd","e","includes","animationName","div","classNames","viewId","isTransitionTarget","compensateScroll","key","ref","undefined","NavTransitionProvider","entering","style","marginTop"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Root/Root.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ScrollContext } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { SplitColContext } from '../SplitCol/SplitColContext';\nimport styles from './Root.module.css';\n\nexport interface RootProps extends React.HTMLAttributes<HTMLDivElement>, NavIdProps {\n activeView: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n}\n\nexport interface RootState {\n activeView: string;\n transition: boolean;\n isBack?: boolean;\n prevView?: string;\n}\n\nconst warn = warnOnce('Root');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Root\n */\nexport const Root = ({\n children,\n activeView: _activeView,\n onTransition,\n nav,\n className,\n ...restProps\n}: RootProps) => {\n const scroll = React.useContext(ScrollContext);\n const platform = usePlatform();\n const { document } = useDOM();\n const scrolls = React.useRef<Record<string, number>>({}).current;\n const viewNodes = React.useRef<Record<string, HTMLElement | null>>({}).current;\n\n const { transitionMotionEnabled = true } = useConfigProvider();\n const { animate } = React.useContext(SplitColContext);\n const disableAnimation = !transitionMotionEnabled || !animate;\n\n const views = React.Children.toArray(children) as React.ReactElement[];\n\n const [{ prevView, activeView, transition, isBack }, _setState] = React.useState<RootState>({\n activeView: _activeView,\n transition: false,\n });\n const transitionTo = (panel: string) => {\n if (panel !== activeView) {\n const viewIds = views.map((view) => getNavId(view.props, warn));\n const isBack = viewIds.indexOf(panel) < viewIds.indexOf(activeView);\n scrolls[activeView] = scroll.getScroll().y;\n _setState({\n activeView: panel,\n prevView: activeView,\n transition: !disableAnimation,\n isBack,\n });\n }\n };\n const finishTransition = React.useCallback(\n () => _setState({ activeView, prevView, isBack, transition: false }),\n [activeView, isBack, prevView],\n );\n\n useIsomorphicLayoutEffect(() => {\n (document!.activeElement as HTMLElement).blur();\n }, [activeView]);\n\n // Нужен переход\n useIsomorphicLayoutEffect(() => transitionTo(_activeView), [_activeView]);\n useIsomorphicLayoutEffect(() => {\n if (!transition && prevView) {\n // Закончился переход\n scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);\n onTransition &&\n onTransition({\n isBack: Boolean(isBack),\n from: prevView,\n to: activeView,\n });\n }\n }, [transition, prevView]);\n\n const fallbackTransition = useTimeout(finishTransition, platform === Platform.IOS ? 600 : 300);\n React.useEffect(() => {\n if (!transition) {\n fallbackTransition.clear();\n return;\n }\n fallbackTransition.set();\n }, [fallbackTransition, transition]);\n\n const onAnimationEnd = (e: React.AnimationEvent) => {\n if (\n [\n styles['vkui-root-android-animation-hide-back'],\n styles['vkui-root-android-animation-show-forward'],\n styles['vkui-root-ios-animation-hide-back'],\n styles['vkui-root-ios-animation-show-forward'],\n ].includes(e.animationName)\n ) {\n finishTransition();\n }\n };\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['Root'],\n platform === Platform.IOS && styles['Root--ios'],\n transition && styles['Root--transition'],\n className,\n )}\n >\n {views.map((view) => {\n const viewId = getNavId(view.props, warn);\n if (viewId !== activeView && !(transition && viewId === prevView)) {\n return null;\n }\n const isTransitionTarget = transition && viewId === (isBack ? prevView : activeView);\n const compensateScroll =\n transition && (viewId === prevView || (isBack && viewId === activeView));\n return (\n <div\n key={viewId}\n ref={(e) => viewId && (viewNodes[viewId] = e)}\n onAnimationEnd={isTransitionTarget ? onAnimationEnd : undefined}\n className={classNames(\n styles['Root__view'],\n transition && viewId === prevView && isBack && styles['Root__view--hide-back'],\n transition && viewId === prevView && !isBack && styles['Root__view--hide-forward'],\n transition && viewId === activeView && isBack && styles['Root__view--show-back'],\n transition && viewId === activeView && !isBack && styles['Root__view--show-forward'],\n )}\n >\n <NavTransitionProvider entering={transition && viewId === activeView}>\n <div\n className={styles['Root__scrollCompensation']}\n style={{\n marginTop: compensateScroll ? viewId && -(scrolls[viewId] ?? 0) : undefined,\n }}\n >\n {view}\n </div>\n </NavTransitionProvider>\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["Root","warn","warnOnce","children","activeView","_activeView","onTransition","nav","className","restProps","scroll","React","useContext","ScrollContext","platform","usePlatform","document","useDOM","scrolls","useRef","current","viewNodes","useConfigProvider","transitionMotionEnabled","animate","SplitColContext","disableAnimation","views","Children","toArray","useState","transition","prevView","isBack","_setState","transitionTo","panel","viewIds","map","view","getNavId","props","indexOf","getScroll","y","finishTransition","useCallback","useIsomorphicLayoutEffect","activeElement","blur","scrollTo","Boolean","from","to","fallbackTransition","useTimeout","Platform","IOS","useEffect","clear","set","onAnimationEnd","e","includes","animationName","div","classNames","viewId","isTransitionTarget","compensateScroll","key","ref","undefined","NavTransitionProvider","entering","style","marginTop"],"mappings":"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"}
@@ -10,8 +10,10 @@ export interface SearchProps extends React.InputHTMLAttributes<HTMLInputElement>
10
10
  icon?: React.ReactNode;
11
11
  onIconClick?: (e: VKUITouchEvent) => void;
12
12
  defaultValue?: string;
13
+ iconAriaLabel?: string;
14
+ clearAriaLabel?: string;
13
15
  }
14
16
  /**
15
17
  * @see https://vkcom.github.io/VKUI/#/Search
16
18
  */
17
- export declare const Search: ({ before, className, defaultValue, placeholder, after, getRef, icon, onIconClick, style, autoComplete, onChange: onChangeProp, value: valueProp, ...inputProps }: SearchProps) => JSX.Element;
19
+ export declare const Search: ({ before, className, defaultValue, placeholder, after, getRef, icon, onIconClick, style, autoComplete, onChange: onChangeProp, value: valueProp, iconAriaLabel, clearAriaLabel, ...inputProps }: SearchProps) => JSX.Element;