@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
@@ -8,6 +8,7 @@ import { SimpleCell } from '../SimpleCell/SimpleCell';
8
8
  import { Footnote } from '../Typography/Footnote/Footnote';
9
9
  import styles from './PromoBanner.module.css';
10
10
  const warn = warnOnce('PromoBanner');
11
+ // TODO [>=6]: Удалить компонент
11
12
  /**
12
13
  * @see https://vkcom.github.io/VKUI/#/PromoBanner
13
14
  * @deprecated v5.3.1
@@ -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":["React","Icon24Dismiss","classNames","warnOnce","Button","Image","SimpleCell","Footnote","styles","warn","PromoBanner","bannerData","onClose","isCloseButtonHidden","className","restProps","process","env","NODE_ENV","currentPixel","setCurrentPixel","useState","statsPixels","useMemo","statistics","reduce","acc","item","type","url","onClick","useCallback","click","useEffect","playbackStarted","div","advertisingLabel","ageRestrictions","href","trackingLink","rel","target","before","iconLink","size","src","alt","title","data-testid","undefined","after","ctaText","mode","subtitle","domain","length","img"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,KAAK,QAAQ,iBAAiB;AACvC,SAASC,UAAU,QAAQ,2BAA2B;AACtD,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,OAAOC,YAAY,2BAA2B;AAE9C,MAAMC,OAAON,SAAS;AAsCtB;;;;;CAKC,GACD,OAAO,MAAMO,cAAc,CAAC,EAC1BC,YAAa,CAAC,EAAC,EACfC,QAAO,EACPC,oBAAmB,EACnBC,UAAS,EACT,GAAGC,WACc,GAAK;IACtB,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1CT,KACE;IAEJ,CAAC;IAED,MAAM,CAACU,cAAcC,gBAAgB,GAAGpB,MAAMqB,QAAQ,CAAC;IAEvD,MAAMC,cAActB,MAAMuB,OAAO,CAC/B,IACGZ,WAAWa,UAAU,GAClBb,WAAWa,UAAU,CAACC,MAAM,CAAC,CAACC,KAAKC,OAAU,CAAA;gBAAE,GAAGD,GAAG;gBAAE,CAACC,KAAKC,IAAI,CAAC,EAAED,KAAKE,GAAG;YAAC,CAAA,GAAI,CAAC,KAClF,CAAC,CAAC,EACR;QAAClB,WAAWa,UAAU;KAAC;IAGzB,MAAMM,UAAU9B,MAAM+B,WAAW,CAC/B,IAAMX,gBAAgBE,YAAYU,KAAK,IAAI,KAC3C;QAACV,YAAYU,KAAK;KAAC;IAGrBhC,MAAMiC,SAAS,CAAC,IAAM;QACpB,IAAIX,YAAYY,eAAe,EAAE;YAC/Bd,gBAAgBE,YAAYY,eAAe;QAC7C,CAAC;IACH,GAAG;QAACZ,YAAYY,eAAe;KAAC;IAEhC,qBACE,oBAACC;QAAIrB,WAAWZ,WAAWM,MAAM,CAAC,cAAc,EAAEM;QAAa,GAAGC,SAAS;qBACzE,oBAACoB;QAAIrB,WAAWN,MAAM,CAAC,oBAAoB;qBACzC,oBAACD,gBAAUI,WAAWyB,gBAAgB,IAAI,kBACzCzB,WAAW0B,eAAe,kBACzB,oBAAC9B;QAASO,WAAWN,MAAM,CAAC,mBAAmB;OAAGG,WAAW0B,eAAe,GAG7E,CAACxB,qCACA,oBAACsB;QAAIrB,WAAWN,MAAM,CAAC,qBAAqB;QAAEsB,SAASlB;qBACrD,oBAACX,sCAIP,oBAACK;QACCgC,MAAM3B,WAAW4B,YAAY;QAC7BT,SAASA;QACTU,KAAI;QACJC,QAAO;QACPC,QACE/B,WAAWgC,QAAQ,kBACjB,oBAACtC;YACCuC,MAAM;YACNC,KAAKlC,WAAWgC,QAAQ;YACxBG,KAAKnC,WAAWoC,KAAK;YACrBC,eAAahC,QAAQC,GAAG,CAACC,QAAQ,KAAK,SAAS,WAAW+B,SAAS;;QAIzEC,OACEvC,WAAWwC,OAAO,kBAChB,oBAAC/C;YACCgD,MAAK;YACLJ,eAAahC,QAAQC,GAAG,CAACC,QAAQ,KAAK,SAAS,mBAAmB+B,SAAS;WAE1EtC,WAAWwC,OAAO;QAIzBE,UAAU1C,WAAW2C,MAAM;OAE1B3C,WAAWoC,KAAK,GAGlB5B,aAAaoC,MAAM,GAAG,mBACrB,oBAACpB;QAAIrB,WAAWN,MAAM,CAAC,sBAAsB;qBAC3C,oBAACgD;QAAIX,KAAK1B;QAAc2B,KAAI;;AAKtC,EAAE"}
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":["React","Icon24Dismiss","classNames","warnOnce","Button","Image","SimpleCell","Footnote","styles","warn","PromoBanner","bannerData","onClose","isCloseButtonHidden","className","restProps","process","env","NODE_ENV","currentPixel","setCurrentPixel","useState","statsPixels","useMemo","statistics","reduce","acc","item","type","url","onClick","useCallback","click","useEffect","playbackStarted","div","advertisingLabel","ageRestrictions","href","trackingLink","rel","target","before","iconLink","size","src","alt","title","data-testid","undefined","after","ctaText","mode","subtitle","domain","length","img"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,KAAK,QAAQ,iBAAiB;AACvC,SAASC,UAAU,QAAQ,2BAA2B;AACtD,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,OAAOC,YAAY,2BAA2B;AAE9C,MAAMC,OAAON,SAAS;AAsCtB,gCAAgC;AAEhC;;;;;CAKC,GACD,OAAO,MAAMO,cAAc,CAAC,EAC1BC,YAAa,CAAC,EAAC,EACfC,QAAO,EACPC,oBAAmB,EACnBC,UAAS,EACT,GAAGC,WACc,GAAK;IACtB,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1CT,KACE;IAEJ,CAAC;IAED,MAAM,CAACU,cAAcC,gBAAgB,GAAGpB,MAAMqB,QAAQ,CAAC;IAEvD,MAAMC,cAActB,MAAMuB,OAAO,CAC/B,IACGZ,WAAWa,UAAU,GAClBb,WAAWa,UAAU,CAACC,MAAM,CAAC,CAACC,KAAKC,OAAU,CAAA;gBAAE,GAAGD,GAAG;gBAAE,CAACC,KAAKC,IAAI,CAAC,EAAED,KAAKE,GAAG;YAAC,CAAA,GAAI,CAAC,KAClF,CAAC,CAAC,EACR;QAAClB,WAAWa,UAAU;KAAC;IAGzB,MAAMM,UAAU9B,MAAM+B,WAAW,CAC/B,IAAMX,gBAAgBE,YAAYU,KAAK,IAAI,KAC3C;QAACV,YAAYU,KAAK;KAAC;IAGrBhC,MAAMiC,SAAS,CAAC,IAAM;QACpB,IAAIX,YAAYY,eAAe,EAAE;YAC/Bd,gBAAgBE,YAAYY,eAAe;QAC7C,CAAC;IACH,GAAG;QAACZ,YAAYY,eAAe;KAAC;IAEhC,qBACE,oBAACC;QAAIrB,WAAWZ,WAAWM,MAAM,CAAC,cAAc,EAAEM;QAAa,GAAGC,SAAS;qBACzE,oBAACoB;QAAIrB,WAAWN,MAAM,CAAC,oBAAoB;qBACzC,oBAACD,gBAAUI,WAAWyB,gBAAgB,IAAI,kBACzCzB,WAAW0B,eAAe,kBACzB,oBAAC9B;QAASO,WAAWN,MAAM,CAAC,mBAAmB;OAAGG,WAAW0B,eAAe,GAG7E,CAACxB,qCACA,oBAACsB;QAAIrB,WAAWN,MAAM,CAAC,qBAAqB;QAAEsB,SAASlB;qBACrD,oBAACX,sCAIP,oBAACK;QACCgC,MAAM3B,WAAW4B,YAAY;QAC7BT,SAASA;QACTU,KAAI;QACJC,QAAO;QACPC,QACE/B,WAAWgC,QAAQ,kBACjB,oBAACtC;YACCuC,MAAM;YACNC,KAAKlC,WAAWgC,QAAQ;YACxBG,KAAKnC,WAAWoC,KAAK;YACrBC,eAAahC,QAAQC,GAAG,CAACC,QAAQ,KAAK,SAAS,WAAW+B,SAAS;;QAIzEC,OACEvC,WAAWwC,OAAO,kBAChB,oBAAC/C;YACCgD,MAAK;YACLJ,eAAahC,QAAQC,GAAG,CAACC,QAAQ,KAAK,SAAS,mBAAmB+B,SAAS;WAE1EtC,WAAWwC,OAAO;QAIzBE,UAAU1C,WAAW2C,MAAM;OAE1B3C,WAAWoC,KAAK,GAGlB5B,aAAaoC,MAAM,GAAG,mBACrB,oBAACpB;QAAIrB,WAAWN,MAAM,CAAC,sBAAsB;qBAC3C,oBAACgD;QAAIX,KAAK1B;QAAc2B,KAAI;;AAKtC,EAAE"}
@@ -1 +1,39 @@
1
- .vkuiPromoBanner{background:#fff;background:var(--vkui--color_background_content);box-sizing:border-box;color:#000;color:var(--vkui--color_text_primary);outline:1px solid rgba(0,0,0,.12);outline:var(--vkui_internal--thin_border) solid var(--vkui--color_separator_primary_alpha);padding-bottom:10px;position:relative;width:100%}.vkuiPromoBanner__head{color:#818c99;color:var(--vkui--color_text_secondary);display:flex;padding:14px 16px 10px;padding:14px var(--vkui--size_base_padding_horizontal--regular) 10px}.vkuiPromoBanner__age{margin-left:6px}.vkuiPromoBanner__close{align-items:center;color:#99a2ad;color:var(--vkui--color_icon_secondary);display:flex;height:48px;justify-content:center;position:absolute;right:0;top:0;width:48px}.vkuiPromoBanner__close:active{opacity:.7}.vkuiPromoBanner__pixels{display:none}
1
+ .PromoBanner {
2
+ width: 100%;
3
+ box-sizing: border-box;
4
+ outline: var(--vkui_internal--thin_border) solid var(--vkui--color_separator_primary_alpha);
5
+ color: var(--vkui--color_text_primary);
6
+ background: var(--vkui--color_background_content);
7
+ padding-bottom: 10px;
8
+ position: relative;
9
+ }
10
+
11
+ .PromoBanner__head {
12
+ display: flex;
13
+ color: var(--vkui--color_text_secondary);
14
+ padding: 14px var(--vkui--size_base_padding_horizontal--regular) 10px;
15
+ }
16
+
17
+ .PromoBanner__age {
18
+ margin-left: 6px;
19
+ }
20
+
21
+ .PromoBanner__close {
22
+ position: absolute;
23
+ top: 0;
24
+ right: 0;
25
+ width: 48px;
26
+ height: 48px;
27
+ color: var(--vkui--color_icon_secondary);
28
+ display: flex;
29
+ justify-content: center;
30
+ align-items: center;
31
+ }
32
+
33
+ .PromoBanner__close:active {
34
+ opacity: 0.7;
35
+ }
36
+
37
+ .PromoBanner__pixels {
38
+ display: none;
39
+ }
@@ -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":["React","classNames","clamp","useGlobalEventListener","usePlatform","usePrevious","useTimeout","useDOM","Platform","runTapticImpactOccurred","useIsomorphicLayoutEffect","useScroll","FixedLayout","Touch","TouchRootContext","PullToRefreshSpinner","styles","cancelEvent","event","originalEvent","preventDefault","cancelable","stopPropagation","TOUCH_MOVE_EVENT_PARAMS","passive","PullToRefresh","children","isFetching","onRefresh","className","restProps","platform","scroll","document","prevIsFetching","initParams","useMemo","start","IOS","max","maxY","refreshing","positionMultiplier","spinnerY","setSpinnerY","useState","watching","setWatching","setRefreshing","canRefresh","setCanRefresh","touchDown","setTouchDown","prevTouchDown","touchY","useRef","contentShift","setContentShift","spinnerProgress","setSpinnerProgress","onWindowTouchMove","resetRefreshingState","useCallback","onRefreshingFinish","set","setWaitFetchingTimeout","clear","clearWaitFetchingTimeout","undefined","runRefreshing","prevSpinnerY","onTouchStart","e","onTouchMove","isY","shiftY","pageYOffset","getScroll","y","shift","Math","current","currentY","progress","abs","onTouchEnd","spinnerTransform","contentTransform","Provider","value","onStart","onMove","onEnd","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":["React","classNames","clamp","useGlobalEventListener","usePlatform","usePrevious","useTimeout","useDOM","Platform","runTapticImpactOccurred","useIsomorphicLayoutEffect","useScroll","FixedLayout","Touch","TouchRootContext","PullToRefreshSpinner","styles","cancelEvent","event","originalEvent","preventDefault","cancelable","stopPropagation","TOUCH_MOVE_EVENT_PARAMS","passive","PullToRefresh","children","isFetching","onRefresh","className","restProps","platform","scroll","document","prevIsFetching","initParams","useMemo","start","IOS","max","maxY","refreshing","positionMultiplier","spinnerY","setSpinnerY","useState","watching","setWatching","setRefreshing","canRefresh","setCanRefresh","touchDown","setTouchDown","prevTouchDown","touchY","useRef","contentShift","setContentShift","spinnerProgress","setSpinnerProgress","onWindowTouchMove","resetRefreshingState","useCallback","onRefreshingFinish","set","setWaitFetchingTimeout","clear","clearWaitFetchingTimeout","undefined","runRefreshing","prevSpinnerY","onTouchStart","e","onTouchMove","isY","shiftY","pageYOffset","getScroll","y","shift","Math","current","currentY","progress","abs","onTouchEnd","spinnerTransform","contentTransform","Provider","value","onStart","onMove","onEnd","style","transform","WebkitTransform","opacity","on","div"],"mappings":"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"}
@@ -1 +1,101 @@
1
- .vkuiPullToRefresh{flex-grow:1}.vkuiPullToRefresh--refreshing{pointer-events:none;touch-action:none}.vkuiPullToRefresh__controls{pointer-events:none;width:100%;z-index:1;z-index:var(--vkui_internal--z_index_pull_to_refresh)}.vkuiPullToRefresh__spinner{align-items:center;background:#fff;background:var(--vkui--color_background_modal);border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.2);box-sizing:border-box;color:#2688eb;color:var(--vkui--color_icon_accent);display:flex;height:40px;justify-content:center;margin:auto;opacity:0;transition:transform .3s cubic-bezier(.1,0,.25,1),opacity .22s ease-out;width:40px}.vkuiPullToRefresh--ios .vkuiPullToRefresh__spinner{background:none;border-radius:0;box-shadow:none;color:#818c99;color:var(--vkui--color_icon_medium)}.vkuiPullToRefresh--watching .vkuiPullToRefresh__spinner{transition:opacity .22s ease-out}.vkuiPullToRefresh__spinner-self{stroke:currentColor}.vkuiPullToRefresh--ios.vkuiPullToRefresh--refreshing .vkuiPullToRefresh__spinner-self{animation:vkui-PullToRefreshToRefreshing .38s ease-out}.vkuiPullToRefresh__spinner-path{transform:rotate(-90deg);transform-origin:center center;transition:stroke-dashoffset 167ms ease-out}.vkuiPullToRefresh--refreshing .vkuiPullToRefresh__spinner-path,.vkuiPullToRefresh--watching .vkuiPullToRefresh__spinner-path{transition:none}.vkuiPullToRefresh__spinner--on .vkuiPullToRefresh__spinner-path{animation:vkui-rotator .7s linear infinite;animation:vkui-rotator var(--vkui_internal--duration) linear infinite}.vkuiPullToRefresh__content{overflow:hidden;transition:transform .4s cubic-bezier(.4,0,.2,1);transition:transform .4s var(--vkui--animation_easing_platform)}.vkuiPullToRefresh--watching .vkuiPullToRefresh__content{transition:none}@keyframes vkui-PullToRefreshToRefreshing{0%{transform:scale(1)}30%{transform:scale(.6)}90%{transform:scale(1.1)}to{transform:scale(1)}}
1
+ .PullToRefresh {
2
+ flex-grow: 1;
3
+ }
4
+
5
+ .PullToRefresh--refreshing {
6
+ touch-action: none;
7
+ pointer-events: none;
8
+ }
9
+
10
+ .PullToRefresh__controls {
11
+ width: 100%;
12
+ pointer-events: none;
13
+ z-index: var(--vkui_internal--z_index_pull_to_refresh);
14
+ }
15
+
16
+ .PullToRefresh__spinner {
17
+ display: flex;
18
+ margin: auto;
19
+ width: 40px;
20
+ height: 40px;
21
+ align-items: center;
22
+ justify-content: center;
23
+ box-sizing: border-box;
24
+ transition: transform 300ms cubic-bezier(0.1, 0, 0.25, 1), opacity 220ms ease-out;
25
+ opacity: 0;
26
+ background: var(--vkui--color_background_modal);
27
+ border-radius: 50%;
28
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
29
+ color: var(--vkui--color_icon_accent);
30
+ }
31
+
32
+ .PullToRefresh--ios .PullToRefresh__spinner {
33
+ border-radius: 0;
34
+ box-shadow: none;
35
+ background: none;
36
+ color: var(--vkui--color_icon_medium);
37
+ }
38
+
39
+ .PullToRefresh--watching .PullToRefresh__spinner {
40
+ transition: opacity 220ms ease-out;
41
+ }
42
+
43
+ .PullToRefresh__spinner-self {
44
+ stroke: currentColor;
45
+ }
46
+
47
+ .PullToRefresh--ios.PullToRefresh--refreshing .PullToRefresh__spinner-self {
48
+ animation: vkui-PullToRefreshToRefreshing 380ms ease-out;
49
+ }
50
+
51
+ .PullToRefresh__spinner-path {
52
+ transform: rotate(-90deg);
53
+ transform-origin: center center;
54
+ transition: stroke-dashoffset 167ms ease-out;
55
+ }
56
+
57
+ .PullToRefresh--watching .PullToRefresh__spinner-path,
58
+ .PullToRefresh--refreshing .PullToRefresh__spinner-path {
59
+ transition: none;
60
+ }
61
+
62
+ .PullToRefresh__spinner--on .PullToRefresh__spinner-path {
63
+ animation: vkui-ptr-rotator var(--vkui_internal--duration) linear infinite;
64
+ }
65
+
66
+ .PullToRefresh__content {
67
+ overflow: hidden;
68
+ transition: transform 400ms var(--vkui--animation_easing_platform);
69
+ }
70
+
71
+ .PullToRefresh--watching .PullToRefresh__content {
72
+ transition: none;
73
+ }
74
+
75
+ @keyframes vkui-PullToRefreshToRefreshing {
76
+ 0% {
77
+ transform: scale(1);
78
+ }
79
+
80
+ 30% {
81
+ transform: scale(0.6);
82
+ }
83
+
84
+ 90% {
85
+ transform: scale(1.1);
86
+ }
87
+
88
+ 100% {
89
+ transform: scale(1);
90
+ }
91
+ }
92
+
93
+ @keyframes vkui-ptr-rotator {
94
+ 0% {
95
+ transform: rotate(0deg);
96
+ }
97
+
98
+ 100% {
99
+ transform: rotate(360deg);
100
+ }
101
+ }
@@ -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;
@@ -6,7 +6,7 @@ import { SizeType } from '../../lib/adaptivity';
6
6
  import { Platform } from '../../lib/platform';
7
7
  import { ACTIVE_EFFECT_DELAY, Tappable } from '../Tappable/Tappable';
8
8
  import { Footnote } from '../Typography/Footnote/Footnote';
9
- import { VisuallyHiddenInput } from '../VisuallyHiddenInput/VisuallyHiddenInput';
9
+ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
10
10
  import styles from './Radio.module.css';
11
11
  const sizeYClassNames = {
12
12
  none: styles['Radio--sizeY-none'],
@@ -35,7 +35,7 @@ const RadioIcon = (props)=>{
35
35
  };
36
36
  /**
37
37
  * @see https://vkcom.github.io/VKUI/#/Radio
38
- */ export const Radio = ({ children , description , style , className , getRootRef , ...restProps })=>{
38
+ */ export const Radio = ({ children , description , style , className , getRootRef , titleAfter , getRef , ...restProps })=>{
39
39
  const platform = usePlatform();
40
40
  const { sizeY ='none' } = useAdaptivity();
41
41
  return /*#__PURE__*/ React.createElement(Tappable, {
@@ -45,10 +45,12 @@ const RadioIcon = (props)=>{
45
45
  activeEffectDelay: platform === Platform.IOS ? 100 : ACTIVE_EFFECT_DELAY,
46
46
  disabled: restProps.disabled,
47
47
  getRootRef: getRootRef
48
- }, /*#__PURE__*/ React.createElement(VisuallyHiddenInput, {
48
+ }, /*#__PURE__*/ React.createElement(VisuallyHidden, {
49
49
  ...restProps,
50
- className: styles['Radio__input'],
51
- type: "radio"
50
+ Component: "input",
51
+ type: "radio",
52
+ getRootRef: getRef,
53
+ className: styles['Radio__input']
52
54
  }), /*#__PURE__*/ React.createElement("div", {
53
55
  className: styles['Radio__container']
54
56
  }, /*#__PURE__*/ React.createElement(RadioIcon, {
@@ -56,8 +58,10 @@ const RadioIcon = (props)=>{
56
58
  }), /*#__PURE__*/ React.createElement("div", {
57
59
  className: styles['Radio__content']
58
60
  }, /*#__PURE__*/ React.createElement("div", {
59
- className: styles['Radio__children']
60
- }, children), hasReactNode(description) && /*#__PURE__*/ React.createElement(Footnote, {
61
+ className: styles['Radio__title']
62
+ }, /*#__PURE__*/ React.createElement("span", null, children), /*#__PURE__*/ React.createElement("div", {
63
+ className: styles['Radio__titleAfter']
64
+ }, titleAfter)), hasReactNode(description) && /*#__PURE__*/ React.createElement(Footnote, {
61
65
  className: styles['Radio__description']
62
66
  }, description))));
63
67
  };
@@ -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":["React","classNames","hasReactNode","useAdaptivity","usePlatform","SizeType","Platform","ACTIVE_EFFECT_DELAY","Tappable","Footnote","VisuallyHiddenInput","styles","sizeYClassNames","none","COMPACT","RadioIcon","props","svg","xmlns","viewBox","aria-hidden","circle","cx","cy","r","stroke","strokeWidth","fill","className","Radio","children","description","style","getRootRef","restProps","platform","sizeY","Component","REGULAR","activeEffectDelay","IOS","disabled","type","div"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,mBAAmB,EAAEC,QAAQ,QAAQ,uBAAuB;AACrE,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,mBAAmB,QAAQ,6CAA6C;AACjF,OAAOC,YAAY,qBAAqB;AAExC,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,oBAAoB;IACjC,CAACN,SAASS,OAAO,CAAC,EAAEH,MAAM,CAAC,uBAAuB;AACpD;AAEA,MAAMI,YAAY,CAACC,QAAyC;IAC1D,qBACE,oBAACC;QAAIC,OAAM;QAA6BC,SAAQ;QAAYC,eAAAA,IAAW;QAAE,GAAGJ,KAAK;qBAC/E,oBAACK;QAAOC,IAAG;QAAKC,IAAG;QAAKC,GAAE;QAAKC,QAAO;QAAeC,aAAY;QAAIC,MAAK;sBAC1E,oBAACN;QAAOC,IAAG;QAAKC,IAAG;QAAKC,GAAE;QAAMI,WAAWjB,MAAM,CAAC,aAAa;QAAEgB,MAAK;;AAG5E;AASA;;CAEC,GACD,OAAO,MAAME,QAAQ,CAAC,EACpBC,SAAQ,EACRC,YAAW,EACXC,MAAK,EACLJ,UAAS,EACTK,WAAU,EACV,GAAGC,WACQ,GAAK;IAChB,MAAMC,WAAW/B;IACjB,MAAM,EAAEgC,OAAQ,OAAM,EAAE,GAAGjC;IAE3B,qBACE,oBAACK;QACC6B,WAAU;QACVL,OAAOA;QACPJ,WAAW3B,WACTU,MAAM,CAAC,QAAQ,EACfyB,UAAU/B,SAASiC,OAAO,IAAI1B,eAAe,CAACwB,MAAM,EACpDR;QAEFW,mBAAmBJ,aAAa7B,SAASkC,GAAG,GAAG,MAAMjC,mBAAmB;QACxEkC,UAAUP,UAAUO,QAAQ;QAC5BR,YAAYA;qBAEZ,oBAACvB;QAAqB,GAAGwB,SAAS;QAAEN,WAAWjB,MAAM,CAAC,eAAe;QAAE+B,MAAK;sBAC5E,oBAACC;QAAIf,WAAWjB,MAAM,CAAC,mBAAmB;qBACxC,oBAACI;QAAUa,WAAWjB,MAAM,CAAC,cAAc;sBAC3C,oBAACgC;QAAIf,WAAWjB,MAAM,CAAC,iBAAiB;qBACtC,oBAACgC;QAAIf,WAAWjB,MAAM,CAAC,kBAAkB;OAAGmB,WAC3C5B,aAAa6B,8BACZ,oBAACtB;QAASmB,WAAWjB,MAAM,CAAC,qBAAqB;OAAGoB;AAMhE,EAAE"}
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":["React","classNames","hasReactNode","useAdaptivity","usePlatform","SizeType","Platform","ACTIVE_EFFECT_DELAY","Tappable","Footnote","VisuallyHidden","styles","sizeYClassNames","none","COMPACT","RadioIcon","props","svg","xmlns","viewBox","aria-hidden","circle","cx","cy","r","stroke","strokeWidth","fill","className","Radio","children","description","style","getRootRef","titleAfter","getRef","restProps","platform","sizeY","Component","REGULAR","activeEffectDelay","IOS","disabled","type","div","span"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,mBAAmB,EAAEC,QAAQ,QAAQ,uBAAuB;AACrE,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,cAAc,QAAQ,mCAAmC;AAClE,OAAOC,YAAY,qBAAqB;AAExC,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,oBAAoB;IACjC,CAACN,SAASS,OAAO,CAAC,EAAEH,MAAM,CAAC,uBAAuB;AACpD;AAEA,MAAMI,YAAY,CAACC,QAAyC;IAC1D,qBACE,oBAACC;QAAIC,OAAM;QAA6BC,SAAQ;QAAYC,eAAAA,IAAW;QAAE,GAAGJ,KAAK;qBAC/E,oBAACK;QAAOC,IAAG;QAAKC,IAAG;QAAKC,GAAE;QAAKC,QAAO;QAAeC,aAAY;QAAIC,MAAK;sBAC1E,oBAACN;QAAOC,IAAG;QAAKC,IAAG;QAAKC,GAAE;QAAMI,WAAWjB,MAAM,CAAC,aAAa;QAAEgB,MAAK;;AAG5E;AAUA;;CAEC,GACD,OAAO,MAAME,QAAQ,CAAC,EACpBC,SAAQ,EACRC,YAAW,EACXC,MAAK,EACLJ,UAAS,EACTK,WAAU,EACVC,WAAU,EACVC,OAAM,EACN,GAAGC,WACQ,GAAK;IAChB,MAAMC,WAAWjC;IACjB,MAAM,EAAEkC,OAAQ,OAAM,EAAE,GAAGnC;IAE3B,qBACE,oBAACK;QACC+B,WAAU;QACVP,OAAOA;QACPJ,WAAW3B,WACTU,MAAM,CAAC,QAAQ,EACf2B,UAAUjC,SAASmC,OAAO,IAAI5B,eAAe,CAAC0B,MAAM,EACpDV;QAEFa,mBAAmBJ,aAAa/B,SAASoC,GAAG,GAAG,MAAMnC,mBAAmB;QACxEoC,UAAUP,UAAUO,QAAQ;QAC5BV,YAAYA;qBAEZ,oBAACvB;QACE,GAAG0B,SAAS;QACbG,WAAU;QACVK,MAAK;QACLX,YAAYE;QACZP,WAAWjB,MAAM,CAAC,eAAe;sBAEnC,oBAACkC;QAAIjB,WAAWjB,MAAM,CAAC,mBAAmB;qBACxC,oBAACI;QAAUa,WAAWjB,MAAM,CAAC,cAAc;sBAC3C,oBAACkC;QAAIjB,WAAWjB,MAAM,CAAC,iBAAiB;qBACtC,oBAACkC;QAAIjB,WAAWjB,MAAM,CAAC,eAAe;qBACpC,oBAACmC,cAAMhB,yBACP,oBAACe;QAAIjB,WAAWjB,MAAM,CAAC,oBAAoB;OAAGuB,cAE/ChC,aAAa6B,8BACZ,oBAACtB;QAASmB,WAAWjB,MAAM,CAAC,qBAAqB;OAAGoB;AAMhE,EAAE"}
@@ -1 +1,140 @@
1
- .vkuiRadio{display:block;font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_family_base);padding:0 16px;padding:0 var(--vkui--size_base_padding_horizontal--regular)}.vkuiFormItem .vkuiRadio{box-sizing:initial;margin:0 calc(-1 * 16px);margin:0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular));width:100%}.vkuiRadio__container{align-items:center;display:flex;justify-content:flex-start}.vkuiRadio__input:disabled~.vkuiRadio__container{opacity:.64;opacity:var(--vkui--opacity_disable_accessibility)}.vkuiRadio__icon{color:#b8c1cc;color:var(--vkui--color_icon_tertiary);flex-shrink:0;height:22px;margin-right:14px;transition:color .15s cubic-bezier(.4,0,.2,1);transition:color .15s var(--vkui--animation_easing_platform);width:22px}.vkuiRadio__input:checked~.vkuiRadio__container .vkuiRadio__icon{color:#2688eb;color:var(--vkui--color_icon_accent)}.vkuiRadio__icon .vkuiRadio__pin{transform:scale(0);transform-origin:12px 12px;transition:transform .15s cubic-bezier(.4,0,.2,1);transition:transform .15s var(--vkui--animation_easing_platform)}.vkuiRadio__input:checked~.vkuiRadio__container .vkuiRadio__icon .vkuiRadio__pin{transform:none}.vkuiRadio__content{color:#000;color:var(--vkui--color_text_primary);display:block;flex-grow:1;max-width:100%}.vkuiRadio__description{color:#818c99;color:var(--vkui--color_text_secondary);display:block;margin-bottom:12px;margin-top:2px}.vkuiRadio__children{margin-top:12px}.vkuiRadio__children:last-child{margin-bottom:12px}.vkuiRadio--sizeY-compact .vkuiRadio__children{margin-top:8px}.vkuiRadio--sizeY-compact .vkuiRadio__children:last-child{margin-bottom:8px}.vkuiRadio--sizeY-compact .vkuiRadio__description{margin-bottom:7px}.vkuiRadio--sizeY-compact .vkuiRadio__icon{height:18px;width:18px}.vkuiRadio--sizeY-compact .vkuiRadio__icon:after{height:12px;width:12px}@media (max-height:414.9px),(pointer:fine) and (min-width:768px){.vkuiRadio--sizeY-none .vkuiRadio__children{margin-top:8px}.vkuiRadio--sizeY-none .vkuiRadio__children:last-child{margin-bottom:8px}.vkuiRadio--sizeY-none .vkuiRadio__description{margin-bottom:7px}.vkuiRadio--sizeY-none .vkuiRadio__icon{height:18px;width:18px}.vkuiRadio--sizeY-none .vkuiRadio__icon:after{height:12px;width:12px}}.vkuiInternalRadioGroup .vkuiRadio{box-sizing:border-box;flex:1;margin:0}
1
+ .Radio {
2
+ display: block;
3
+ padding: 0 var(--vkui--size_base_padding_horizontal--regular);
4
+ font-family: var(--vkui--font_family_base);
5
+ }
6
+
7
+ /**
8
+ * CMP:
9
+ * FormItem
10
+ */
11
+
12
+ :global(.vkuiInternalFormItem) .Radio {
13
+ width: 100%;
14
+ box-sizing: content-box;
15
+ margin: 0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular));
16
+ }
17
+
18
+ .Radio__container {
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: flex-start;
22
+ }
23
+
24
+ .Radio__input:disabled ~ .Radio__container {
25
+ opacity: var(--vkui--opacity_disable_accessibility);
26
+ }
27
+
28
+ .Radio__icon {
29
+ flex-shrink: 0;
30
+ width: 22px;
31
+ height: 22px;
32
+ margin-right: 14px;
33
+ color: var(--vkui--color_icon_tertiary);
34
+ transition: color 0.15s var(--vkui--animation_easing_platform);
35
+ }
36
+
37
+ .Radio__input:checked ~ .Radio__container .Radio__icon {
38
+ color: var(--vkui--color_icon_accent);
39
+ }
40
+
41
+ .Radio__icon .Radio__pin {
42
+ transform-origin: 12px 12px;
43
+ transform: scale(0);
44
+ transition: transform 0.15s var(--vkui--animation_easing_platform);
45
+ }
46
+
47
+ .Radio__input:checked ~ .Radio__container .Radio__icon .Radio__pin {
48
+ transform: none;
49
+ }
50
+
51
+ .Radio__content {
52
+ display: block;
53
+ flex-grow: 1;
54
+ max-width: 100%;
55
+ color: var(--vkui--color_text_primary);
56
+ }
57
+
58
+ .Radio__description {
59
+ display: block;
60
+ color: var(--vkui--color_text_secondary);
61
+ margin-bottom: 12px;
62
+ margin-top: 2px;
63
+ }
64
+
65
+ .Radio__title {
66
+ display: flex;
67
+ justify-content: space-between;
68
+ align-items: center;
69
+ margin-top: 12px;
70
+ }
71
+
72
+ .Radio__title:last-child {
73
+ margin-bottom: 12px;
74
+ }
75
+
76
+ .Radio__titleAfter {
77
+ margin-left: 4px;
78
+ color: var(--vkui--color_icon_tertiary);
79
+ }
80
+
81
+ /**
82
+ * sizeY COMPACT
83
+ */
84
+
85
+ .Radio--sizeY-compact .Radio__title {
86
+ margin-top: 8px;
87
+ }
88
+
89
+ .Radio--sizeY-compact .Radio__title:last-child {
90
+ margin-bottom: 8px;
91
+ }
92
+
93
+ .Radio--sizeY-compact .Radio__description {
94
+ margin-bottom: 7px;
95
+ }
96
+
97
+ .Radio--sizeY-compact .Radio__icon {
98
+ width: 18px;
99
+ height: 18px;
100
+ }
101
+
102
+ .Radio--sizeY-compact .Radio__icon::after {
103
+ width: 12px;
104
+ height: 12px;
105
+ }
106
+
107
+ @media (pointer: fine) and (min-width: 768px),(max-height: 414.9px) {
108
+ .Radio--sizeY-none .Radio__title {
109
+ margin-top: 8px;
110
+ }
111
+
112
+ .Radio--sizeY-none .Radio__title:last-child {
113
+ margin-bottom: 8px;
114
+ }
115
+
116
+ .Radio--sizeY-none .Radio__description {
117
+ margin-bottom: 7px;
118
+ }
119
+
120
+ .Radio--sizeY-none .Radio__icon {
121
+ width: 18px;
122
+ height: 18px;
123
+ }
124
+
125
+ .Radio--sizeY-none .Radio__icon::after {
126
+ width: 12px;
127
+ height: 12px;
128
+ }
129
+ }
130
+
131
+ /**
132
+ * CMP:
133
+ * RadioGroup
134
+ */
135
+
136
+ :global(.vkuiInternalRadioGroup) .Radio {
137
+ flex: 1;
138
+ margin: 0;
139
+ box-sizing: border-box;
140
+ }
@@ -1 +1,13 @@
1
- .vkuiRadioGroup--mode-horizontal{display:flex}.vkuiInternalFormItem .vkuiRadioGroup{box-sizing:initial;margin:0 calc(-1 * 16px);margin:0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular))}
1
+ .RadioGroup--mode-horizontal {
2
+ display: flex;
3
+ }
4
+
5
+ /**
6
+ * CMP:
7
+ * FormItem
8
+ */
9
+
10
+ :global(.vkuiInternalFormItem) .RadioGroup {
11
+ margin: 0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular));
12
+ box-sizing: content-box;
13
+ }
@@ -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 {};
@@ -73,7 +73,7 @@ import styles from './Removable.module.css';
73
73
  };
74
74
  /**
75
75
  * @see https://vkcom.github.io/VKUI/#/Removable
76
- */ export const Removable = ({ getRootRef , children , onRemove =noop , removePlaceholder ='Удалить' , align ='center' , className , ...restProps })=>{
76
+ */ export const Removable = ({ getRootRef , children , onRemove =noop , removePlaceholder ='Удалить' , align ='center' , className , indent =false , ...restProps })=>{
77
77
  const platform = usePlatform();
78
78
  const ref = useExternRef(getRootRef);
79
79
  const onRemoveClick = (e)=>{
@@ -84,7 +84,7 @@ import styles from './Removable.module.css';
84
84
  return /*#__PURE__*/ React.createElement("div", {
85
85
  ...restProps,
86
86
  ref: ref,
87
- className: classNames(platform === Platform.IOS && styles['Removable--ios'], align === 'start' && styles['Removable--align-start'], className)
87
+ className: classNames(platform === Platform.IOS && styles['Removable--ios'], align === 'start' && styles['Removable--align-start'], indent && styles['Removable--indent'], className)
88
88
  }, platform !== Platform.IOS && /*#__PURE__*/ React.createElement("div", {
89
89
  className: classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')
90
90
  }, children, /*#__PURE__*/ React.createElement(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":["React","Icon24Cancel","classNames","noop","useExternRef","useGlobalEventListener","usePlatform","useDOM","Platform","getTitleFromChildren","IconButton","Tappable","styles","RemovableIos","onRemove","removePlaceholder","removePlaceholderString","children","window","removeButtonRef","useRef","disabledRef","removeOffset","updateRemoveOffset","useState","capture","onRemoveTransitionEnd","current","focus","onRemoveActivateClick","e","stopPropagation","offsetWidth","div","className","style","transform","onTransitionEnd","hasActive","hasHover","aria-label","onClick","disabled","i","role","span","aria-hidden","Component","getRootRef","Removable","align","restProps","platform","ref","onRemoveClick","preventDefault","IOS","activeMode","hoverMode"],"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":["React","Icon24Cancel","classNames","noop","useExternRef","useGlobalEventListener","usePlatform","useDOM","Platform","getTitleFromChildren","IconButton","Tappable","styles","RemovableIos","onRemove","removePlaceholder","removePlaceholderString","children","window","removeButtonRef","useRef","disabledRef","removeOffset","updateRemoveOffset","useState","capture","onRemoveTransitionEnd","current","focus","onRemoveActivateClick","e","stopPropagation","offsetWidth","div","className","style","transform","onTransitionEnd","hasActive","hasHover","aria-label","onClick","disabled","i","role","span","aria-hidden","Component","getRootRef","Removable","align","indent","restProps","platform","ref","onRemoveClick","preventDefault","IOS","activeMode","hoverMode"],"mappings":"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"}