@vkontakte/vkui 4.28.1 → 4.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1055) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +5136 -9779
  4. package/.cache/ts/src/components/Button/Button.d.ts +1 -2
  5. package/.cache/ts/src/components/Cell/Cell.d.ts +1 -1
  6. package/.cache/ts/src/components/ChipsInput/ChipsInput.d.ts +1 -2
  7. package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  8. package/.cache/ts/src/components/ClickPopper/ClickPopper.d.ts +1 -1
  9. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +2 -2
  10. package/.cache/ts/src/components/CustomSelectOption/CustomSelectOption.d.ts +35 -6
  11. package/.cache/ts/src/components/Gallery/Gallery.d.ts +9 -1
  12. package/.cache/ts/src/components/GridAvatar/GridAvatar.d.ts +1 -0
  13. package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +1 -2
  14. package/.cache/ts/src/components/Input/Input.d.ts +1 -2
  15. package/.cache/ts/src/components/ModalCard/ModalCard.d.ts +1 -1
  16. package/.cache/ts/src/components/ModalCardBase/ModalCardBase.d.ts +5 -1
  17. package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +16 -1
  18. package/.cache/ts/src/components/ModalRoot/ModalRoot.d.ts +14 -2
  19. package/.cache/ts/src/components/ModalRoot/ModalRootAdaptive.d.ts +15 -3
  20. package/.cache/ts/src/components/ModalRoot/ModalRootDesktop.d.ts +14 -2
  21. package/.cache/ts/src/components/ModalRoot/types.d.ts +16 -1
  22. package/.cache/ts/src/components/ModalRoot/useModalManager.d.ts +6 -5
  23. package/.cache/ts/src/components/Pagination/Pagination.d.ts +3 -3
  24. package/.cache/ts/src/components/Select/Select.d.ts +1 -2
  25. package/.cache/ts/src/components/Touch/TouchContext.d.ts +1 -1
  26. package/.cache/ts/src/components/Typography/Paragraph/Paragraph.d.ts +10 -0
  27. package/.cache/ts/src/components/Typography/Subhead/Subhead.d.ts +1 -2
  28. package/.cache/ts/src/components/Typography/Title/Title.d.ts +1 -2
  29. package/.cache/ts/src/hooks/useBridgeAdaptivity.d.ts +6 -0
  30. package/.cache/ts/src/hooks/useKeyboard.d.ts +1 -1
  31. package/.cache/ts/src/hooks/usePagination.d.ts +3 -3
  32. package/.cache/ts/src/index.d.ts +20 -9
  33. package/.cache/ts/src/lib/date.d.ts +29 -0
  34. package/.cache/ts/src/lib/getNavId.d.ts +2 -1
  35. package/.cache/ts/src/lib/warnOnce.d.ts +2 -1
  36. package/.cache/ts/src/testing/utils.d.ts +1 -0
  37. package/.cache/ts/src/tokenized/index.d.ts +22 -4
  38. package/.eslintrc.json +8 -2
  39. package/dist/cjs/components/ActionSheet/ActionSheet.js +1 -1
  40. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  41. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js +2 -1
  42. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  43. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -1
  44. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  45. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +7 -6
  46. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  47. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +44 -11
  48. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  49. package/dist/cjs/components/Alert/Alert.js +7 -6
  50. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  51. package/dist/cjs/components/AppRoot/AppRoot.js +3 -2
  52. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  53. package/dist/cjs/components/Avatar/Avatar.js +4 -1
  54. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  55. package/dist/cjs/components/Banner/Banner.js +5 -4
  56. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  57. package/dist/cjs/components/Button/Button.d.ts +1 -2
  58. package/dist/cjs/components/Button/Button.js +36 -41
  59. package/dist/cjs/components/Button/Button.js.map +1 -1
  60. package/dist/cjs/components/Calendar/Calendar.js +5 -5
  61. package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
  62. package/dist/cjs/components/CalendarDay/CalendarDay.js +4 -1
  63. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  64. package/dist/cjs/components/CalendarDays/CalendarDays.js +3 -3
  65. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
  66. package/dist/cjs/components/CalendarHeader/CalendarHeader.js +15 -15
  67. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
  68. package/dist/cjs/components/CalendarRange/CalendarRange.js +12 -15
  69. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  70. package/dist/cjs/components/CalendarTime/CalendarTime.js +8 -10
  71. package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
  72. package/dist/cjs/components/CardScroll/CardScroll.js +3 -2
  73. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  74. package/dist/cjs/components/Cell/Cell.d.ts +1 -1
  75. package/dist/cjs/components/Cell/Cell.js +4 -3
  76. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  77. package/dist/cjs/components/CellButton/CellButton.js +1 -0
  78. package/dist/cjs/components/CellButton/CellButton.js.map +1 -1
  79. package/dist/cjs/components/Chip/Chip.js +1 -0
  80. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  81. package/dist/cjs/components/ChipsInput/ChipsInput.d.ts +1 -2
  82. package/dist/cjs/components/ChipsInput/ChipsInput.js +4 -9
  83. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  84. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  85. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +8 -12
  86. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  87. package/dist/cjs/components/ClickPopper/ClickPopper.d.ts +1 -1
  88. package/dist/cjs/components/ClickPopper/ClickPopper.js.map +1 -1
  89. package/dist/cjs/components/ContentCard/ContentCard.js +4 -3
  90. package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
  91. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +2 -2
  92. package/dist/cjs/components/CustomSelect/CustomSelect.js +24 -33
  93. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  94. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -5
  95. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  96. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.d.ts +35 -6
  97. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +24 -14
  98. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  99. package/dist/cjs/components/DateInput/DateInput.js +5 -5
  100. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  101. package/dist/cjs/components/DatePicker/DatePicker.js +6 -6
  102. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  103. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +7 -7
  104. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  105. package/dist/cjs/components/File/File.js +2 -2
  106. package/dist/cjs/components/File/File.js.map +1 -1
  107. package/dist/cjs/components/FixedLayout/FixedLayout.js +2 -1
  108. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  109. package/dist/cjs/components/FormField/FormField.js +2 -6
  110. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  111. package/dist/cjs/components/FormItem/FormItem.js +4 -3
  112. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  113. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  114. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  115. package/dist/cjs/components/Gallery/Gallery.d.ts +9 -1
  116. package/dist/cjs/components/Gallery/Gallery.js +10 -2
  117. package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
  118. package/dist/cjs/components/GridAvatar/GridAvatar.d.ts +1 -0
  119. package/dist/cjs/components/GridAvatar/GridAvatar.js +6 -6
  120. package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -1
  121. package/dist/cjs/components/Group/Group.js +2 -1
  122. package/dist/cjs/components/Group/Group.js.map +1 -1
  123. package/dist/cjs/components/Header/Header.js +10 -7
  124. package/dist/cjs/components/Header/Header.js.map +1 -1
  125. package/dist/cjs/components/HorizontalCell/HorizontalCell.js +2 -2
  126. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  127. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +1 -2
  128. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +22 -21
  129. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  130. package/dist/cjs/components/InfoRow/InfoRow.js +2 -2
  131. package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
  132. package/dist/cjs/components/Input/Input.d.ts +1 -2
  133. package/dist/cjs/components/Input/Input.js +11 -15
  134. package/dist/cjs/components/Input/Input.js.map +1 -1
  135. package/dist/cjs/components/List/List.js +1 -0
  136. package/dist/cjs/components/List/List.js.map +1 -1
  137. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js +1 -0
  138. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  139. package/dist/cjs/components/ModalCard/ModalCard.d.ts +1 -1
  140. package/dist/cjs/components/ModalCard/ModalCard.js +1 -0
  141. package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
  142. package/dist/cjs/components/ModalCardBase/ModalCardBase.d.ts +5 -1
  143. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +10 -4
  144. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  145. package/dist/cjs/components/ModalPage/ModalPage.d.ts +16 -1
  146. package/dist/cjs/components/ModalPage/ModalPage.js +5 -1
  147. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  148. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +1 -0
  149. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  150. package/dist/cjs/components/ModalRoot/ModalRoot.d.ts +14 -2
  151. package/dist/cjs/components/ModalRoot/ModalRoot.js +14 -11
  152. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  153. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.d.ts +15 -3
  154. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  155. package/dist/cjs/components/ModalRoot/ModalRootDesktop.d.ts +14 -2
  156. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +10 -7
  157. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  158. package/dist/cjs/components/ModalRoot/types.d.ts +16 -1
  159. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  160. package/dist/cjs/components/ModalRoot/useModalManager.d.ts +6 -5
  161. package/dist/cjs/components/ModalRoot/useModalManager.js +54 -16
  162. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
  163. package/dist/cjs/components/NativeSelect/NativeSelect.js +2 -1
  164. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  165. package/dist/cjs/components/Pagination/Pagination.d.ts +3 -3
  166. package/dist/cjs/components/Pagination/Pagination.js +3 -3
  167. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  168. package/dist/cjs/components/Panel/Panel.js +2 -1
  169. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  170. package/dist/cjs/components/PanelHeader/PanelHeader.js +1 -0
  171. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  172. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js +1 -0
  173. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  174. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +5 -4
  175. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  176. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +1 -0
  177. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  178. package/dist/cjs/components/Placeholder/Placeholder.js +4 -3
  179. package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
  180. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js +1 -0
  181. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  182. package/dist/cjs/components/Popper/Popper.js +2 -2
  183. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  184. package/dist/cjs/components/PromoBanner/PromoBanner.js +2 -2
  185. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  186. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +2 -1
  187. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  188. package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.js +1 -0
  189. package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  190. package/dist/cjs/components/RichCell/RichCell.js +3 -2
  191. package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
  192. package/dist/cjs/components/RichTooltip/RichTooltip.js +2 -1
  193. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
  194. package/dist/cjs/components/Root/Root.js +8 -7
  195. package/dist/cjs/components/Root/Root.js.map +1 -1
  196. package/dist/cjs/components/Search/Search.js +3 -2
  197. package/dist/cjs/components/Search/Search.js.map +1 -1
  198. package/dist/cjs/components/SegmentedControl/SegmentedControl.js +19 -13
  199. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  200. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +2 -1
  201. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  202. package/dist/cjs/components/Select/Select.d.ts +1 -2
  203. package/dist/cjs/components/Select/Select.js +7 -9
  204. package/dist/cjs/components/Select/Select.js.map +1 -1
  205. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +2 -1
  206. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  207. package/dist/cjs/components/Separator/Separator.js +3 -1
  208. package/dist/cjs/components/Separator/Separator.js.map +1 -1
  209. package/dist/cjs/components/SimpleCell/SimpleCell.js +5 -4
  210. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  211. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js +6 -2
  212. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
  213. package/dist/cjs/components/SliderSwitch/SliderSwitch.js +1 -0
  214. package/dist/cjs/components/SliderSwitch/SliderSwitch.js.map +1 -1
  215. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js +1 -0
  216. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  217. package/dist/cjs/components/Snackbar/Snackbar.js +3 -2
  218. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  219. package/dist/cjs/components/Spacing/Spacing.js +2 -1
  220. package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
  221. package/dist/cjs/components/SplitCol/SplitCol.js +2 -1
  222. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  223. package/dist/cjs/components/SplitLayout/SplitLayout.js +2 -1
  224. package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
  225. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +2 -2
  226. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  227. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +4 -3
  228. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  229. package/dist/cjs/components/Switch/Switch.js +1 -0
  230. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  231. package/dist/cjs/components/Tabbar/Tabbar.js +1 -0
  232. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  233. package/dist/cjs/components/TabbarItem/TabbarItem.js +2 -1
  234. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  235. package/dist/cjs/components/TabsItem/TabsItem.js +3 -2
  236. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  237. package/dist/cjs/components/Tappable/Tappable.js +5 -4
  238. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  239. package/dist/cjs/components/TextTooltip/TextTooltip.js +3 -3
  240. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  241. package/dist/cjs/components/Tooltip/Tooltip.js +6 -6
  242. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  243. package/dist/cjs/components/Touch/Touch.js +9 -3
  244. package/dist/cjs/components/Touch/Touch.js.map +1 -1
  245. package/dist/cjs/components/Touch/TouchContext.d.ts +1 -1
  246. package/dist/cjs/components/Touch/TouchContext.js +1 -1
  247. package/dist/cjs/components/Touch/TouchContext.js.map +1 -1
  248. package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts +10 -0
  249. package/dist/cjs/components/Typography/Paragraph/Paragraph.js +42 -0
  250. package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -0
  251. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +1 -2
  252. package/dist/cjs/components/Typography/Subhead/Subhead.js +4 -6
  253. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  254. package/dist/cjs/components/Typography/Text/Text.js +1 -1
  255. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  256. package/dist/cjs/components/Typography/Title/Title.d.ts +1 -2
  257. package/dist/cjs/components/Typography/Title/Title.js +5 -11
  258. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  259. package/dist/cjs/components/UsersStack/UsersStack.js +3 -2
  260. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  261. package/dist/cjs/components/View/View.js +5 -0
  262. package/dist/cjs/components/View/View.js.map +1 -1
  263. package/dist/cjs/components/View/ViewInfinite.js +5 -0
  264. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  265. package/dist/cjs/components/View/utils.js +5 -2
  266. package/dist/cjs/components/View/utils.js.map +1 -1
  267. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +3 -2
  268. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  269. package/dist/cjs/helpers/scheme.js +2 -2
  270. package/dist/cjs/helpers/scheme.js.map +1 -1
  271. package/dist/cjs/hooks/useBridgeAdaptivity.d.ts +6 -0
  272. package/dist/cjs/hooks/useBridgeAdaptivity.js +85 -0
  273. package/dist/cjs/hooks/useBridgeAdaptivity.js.map +1 -0
  274. package/dist/cjs/hooks/useCalendar.js +6 -6
  275. package/dist/cjs/hooks/useCalendar.js.map +1 -1
  276. package/dist/cjs/hooks/useKeyboard.d.ts +1 -1
  277. package/dist/cjs/hooks/useKeyboard.js +1 -1
  278. package/dist/cjs/hooks/useKeyboard.js.map +1 -1
  279. package/dist/cjs/hooks/usePagination.d.ts +3 -3
  280. package/dist/cjs/hooks/usePagination.js +3 -3
  281. package/dist/cjs/hooks/usePagination.js.map +1 -1
  282. package/dist/cjs/hooks/usePatchChildrenRef.js +1 -1
  283. package/dist/cjs/hooks/usePatchChildrenRef.js.map +1 -1
  284. package/dist/cjs/hooks/useWaitTransitionFinish.js +6 -1
  285. package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
  286. package/dist/cjs/index.d.ts +20 -9
  287. package/dist/cjs/index.js +26 -18
  288. package/dist/cjs/index.js.map +1 -1
  289. package/dist/cjs/lib/calendar.js +12 -23
  290. package/dist/cjs/lib/calendar.js.map +1 -1
  291. package/dist/cjs/lib/date.d.ts +29 -0
  292. package/dist/cjs/lib/date.js +286 -0
  293. package/dist/cjs/lib/date.js.map +1 -0
  294. package/dist/cjs/lib/getNavId.d.ts +2 -1
  295. package/dist/cjs/lib/getNavId.js +1 -1
  296. package/dist/cjs/lib/getNavId.js.map +1 -1
  297. package/dist/cjs/lib/warnOnce.d.ts +2 -1
  298. package/dist/cjs/lib/warnOnce.js +3 -1
  299. package/dist/cjs/lib/warnOnce.js.map +1 -1
  300. package/dist/cjs/tokenized/index.d.ts +22 -4
  301. package/dist/cjs/tokenized/index.js +80 -10
  302. package/dist/cjs/tokenized/index.js.map +1 -1
  303. package/dist/components/ActionSheet/ActionSheet.js +1 -1
  304. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  305. package/dist/components/ActionSheet/ActionSheetDropdown.js +2 -1
  306. package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  307. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -1
  308. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  309. package/dist/components/ActionSheetItem/ActionSheetItem.js +4 -3
  310. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  311. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +43 -11
  312. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  313. package/dist/components/Alert/Alert.js +4 -3
  314. package/dist/components/Alert/Alert.js.map +1 -1
  315. package/dist/components/AppRoot/AppRoot.js +3 -2
  316. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  317. package/dist/components/Avatar/Avatar.js +4 -1
  318. package/dist/components/Avatar/Avatar.js.map +1 -1
  319. package/dist/components/Banner/Banner.js +3 -2
  320. package/dist/components/Banner/Banner.js.map +1 -1
  321. package/dist/components/Button/Button.d.ts +1 -2
  322. package/dist/components/Button/Button.js +29 -33
  323. package/dist/components/Button/Button.js.map +1 -1
  324. package/dist/components/Calendar/Calendar.js +3 -3
  325. package/dist/components/Calendar/Calendar.js.map +1 -1
  326. package/dist/components/CalendarDay/CalendarDay.js +4 -1
  327. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  328. package/dist/components/CalendarDays/CalendarDays.js +1 -1
  329. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  330. package/dist/components/CalendarHeader/CalendarHeader.js +8 -8
  331. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  332. package/dist/components/CalendarRange/CalendarRange.js +2 -5
  333. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  334. package/dist/components/CalendarTime/CalendarTime.js +3 -3
  335. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  336. package/dist/components/CardScroll/CardScroll.js +2 -1
  337. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  338. package/dist/components/Cell/Cell.d.ts +1 -1
  339. package/dist/components/Cell/Cell.js +4 -3
  340. package/dist/components/Cell/Cell.js.map +1 -1
  341. package/dist/components/CellButton/CellButton.js +1 -0
  342. package/dist/components/CellButton/CellButton.js.map +1 -1
  343. package/dist/components/Chip/Chip.js +1 -0
  344. package/dist/components/Chip/Chip.js.map +1 -1
  345. package/dist/components/ChipsInput/ChipsInput.d.ts +1 -2
  346. package/dist/components/ChipsInput/ChipsInput.js +3 -10
  347. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  348. package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  349. package/dist/components/ChipsSelect/ChipsSelect.js +3 -6
  350. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  351. package/dist/components/ClickPopper/ClickPopper.d.ts +1 -1
  352. package/dist/components/ClickPopper/ClickPopper.js.map +1 -1
  353. package/dist/components/ContentCard/ContentCard.js +3 -2
  354. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  355. package/dist/components/CustomSelect/CustomSelect.d.ts +2 -2
  356. package/dist/components/CustomSelect/CustomSelect.js +20 -27
  357. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  358. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -5
  359. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  360. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts +35 -6
  361. package/dist/components/CustomSelectOption/CustomSelectOption.js +19 -15
  362. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  363. package/dist/components/DateInput/DateInput.js +3 -3
  364. package/dist/components/DateInput/DateInput.js.map +1 -1
  365. package/dist/components/DatePicker/DatePicker.js +2 -2
  366. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  367. package/dist/components/DateRangeInput/DateRangeInput.js +2 -2
  368. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  369. package/dist/components/File/File.js +1 -1
  370. package/dist/components/File/File.js.map +1 -1
  371. package/dist/components/FixedLayout/FixedLayout.js +2 -1
  372. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  373. package/dist/components/FormField/FormField.js +2 -6
  374. package/dist/components/FormField/FormField.js.map +1 -1
  375. package/dist/components/FormItem/FormItem.js +3 -2
  376. package/dist/components/FormItem/FormItem.js.map +1 -1
  377. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  378. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  379. package/dist/components/Gallery/Gallery.d.ts +9 -1
  380. package/dist/components/Gallery/Gallery.js +10 -2
  381. package/dist/components/Gallery/Gallery.js.map +1 -1
  382. package/dist/components/GridAvatar/GridAvatar.d.ts +1 -0
  383. package/dist/components/GridAvatar/GridAvatar.js +5 -6
  384. package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
  385. package/dist/components/Group/Group.js +2 -1
  386. package/dist/components/Group/Group.js.map +1 -1
  387. package/dist/components/Header/Header.js +7 -4
  388. package/dist/components/Header/Header.js.map +1 -1
  389. package/dist/components/HorizontalCell/HorizontalCell.js +1 -1
  390. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  391. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +1 -2
  392. package/dist/components/HorizontalScroll/HorizontalScroll.js +20 -18
  393. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  394. package/dist/components/InfoRow/InfoRow.js +1 -1
  395. package/dist/components/InfoRow/InfoRow.js.map +1 -1
  396. package/dist/components/Input/Input.d.ts +1 -2
  397. package/dist/components/Input/Input.js +8 -10
  398. package/dist/components/Input/Input.js.map +1 -1
  399. package/dist/components/List/List.js +1 -0
  400. package/dist/components/List/List.js.map +1 -1
  401. package/dist/components/MiniInfoCell/MiniInfoCell.js +1 -0
  402. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  403. package/dist/components/ModalCard/ModalCard.d.ts +1 -1
  404. package/dist/components/ModalCard/ModalCard.js +1 -0
  405. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  406. package/dist/components/ModalCardBase/ModalCardBase.d.ts +5 -1
  407. package/dist/components/ModalCardBase/ModalCardBase.js +9 -3
  408. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  409. package/dist/components/ModalPage/ModalPage.d.ts +16 -1
  410. package/dist/components/ModalPage/ModalPage.js +5 -1
  411. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  412. package/dist/components/ModalPageHeader/ModalPageHeader.js +1 -0
  413. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  414. package/dist/components/ModalRoot/ModalRoot.d.ts +14 -2
  415. package/dist/components/ModalRoot/ModalRoot.js +14 -11
  416. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  417. package/dist/components/ModalRoot/ModalRootAdaptive.d.ts +15 -3
  418. package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  419. package/dist/components/ModalRoot/ModalRootDesktop.d.ts +14 -2
  420. package/dist/components/ModalRoot/ModalRootDesktop.js +10 -7
  421. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  422. package/dist/components/ModalRoot/types.d.ts +16 -1
  423. package/dist/components/ModalRoot/types.js.map +1 -1
  424. package/dist/components/ModalRoot/useModalManager.d.ts +6 -5
  425. package/dist/components/ModalRoot/useModalManager.js +54 -16
  426. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  427. package/dist/components/NativeSelect/NativeSelect.js +2 -1
  428. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  429. package/dist/components/Pagination/Pagination.d.ts +3 -3
  430. package/dist/components/Pagination/Pagination.js +1 -1
  431. package/dist/components/Pagination/Pagination.js.map +1 -1
  432. package/dist/components/Panel/Panel.js +2 -1
  433. package/dist/components/Panel/Panel.js.map +1 -1
  434. package/dist/components/PanelHeader/PanelHeader.js +1 -0
  435. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  436. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +1 -0
  437. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  438. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +4 -3
  439. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  440. package/dist/components/PanelHeaderContext/PanelHeaderContext.js +1 -0
  441. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  442. package/dist/components/Placeholder/Placeholder.js +3 -2
  443. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  444. package/dist/components/PopoutWrapper/PopoutWrapper.js +1 -0
  445. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  446. package/dist/components/Popper/Popper.js +2 -2
  447. package/dist/components/Popper/Popper.js.map +1 -1
  448. package/dist/components/PromoBanner/PromoBanner.js +1 -1
  449. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  450. package/dist/components/PullToRefresh/PullToRefresh.js +2 -1
  451. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  452. package/dist/components/PullToRefresh/PullToRefreshSpinner.js +1 -0
  453. package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  454. package/dist/components/RichCell/RichCell.js +2 -1
  455. package/dist/components/RichCell/RichCell.js.map +1 -1
  456. package/dist/components/RichTooltip/RichTooltip.js +2 -1
  457. package/dist/components/RichTooltip/RichTooltip.js.map +1 -1
  458. package/dist/components/Root/Root.js +8 -7
  459. package/dist/components/Root/Root.js.map +1 -1
  460. package/dist/components/Search/Search.js +2 -1
  461. package/dist/components/Search/Search.js.map +1 -1
  462. package/dist/components/SegmentedControl/SegmentedControl.js +19 -13
  463. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  464. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +2 -1
  465. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  466. package/dist/components/Select/Select.d.ts +1 -2
  467. package/dist/components/Select/Select.js +4 -5
  468. package/dist/components/Select/Select.js.map +1 -1
  469. package/dist/components/SelectMimicry/SelectMimicry.js +2 -1
  470. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  471. package/dist/components/Separator/Separator.js +3 -1
  472. package/dist/components/Separator/Separator.js.map +1 -1
  473. package/dist/components/SimpleCell/SimpleCell.js +3 -2
  474. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  475. package/dist/components/SimpleCheckbox/SimpleCheckbox.js +6 -2
  476. package/dist/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
  477. package/dist/components/SliderSwitch/SliderSwitch.js +1 -0
  478. package/dist/components/SliderSwitch/SliderSwitch.js.map +1 -1
  479. package/dist/components/SliderSwitch/SliderSwitchButton.js +1 -0
  480. package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  481. package/dist/components/Snackbar/Snackbar.js +2 -1
  482. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  483. package/dist/components/Spacing/Spacing.js +2 -1
  484. package/dist/components/Spacing/Spacing.js.map +1 -1
  485. package/dist/components/SplitCol/SplitCol.js +2 -1
  486. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  487. package/dist/components/SplitLayout/SplitLayout.js +2 -1
  488. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  489. package/dist/components/SubnavigationBar/SubnavigationBar.js +1 -1
  490. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  491. package/dist/components/SubnavigationButton/SubnavigationButton.js +3 -2
  492. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  493. package/dist/components/Switch/Switch.js +1 -0
  494. package/dist/components/Switch/Switch.js.map +1 -1
  495. package/dist/components/Tabbar/Tabbar.js +1 -0
  496. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  497. package/dist/components/TabbarItem/TabbarItem.js +2 -1
  498. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  499. package/dist/components/TabsItem/TabsItem.js +2 -1
  500. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  501. package/dist/components/Tappable/Tappable.js +5 -4
  502. package/dist/components/Tappable/Tappable.js.map +1 -1
  503. package/dist/components/TextTooltip/TextTooltip.js +1 -1
  504. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  505. package/dist/components/Tooltip/Tooltip.js +4 -4
  506. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  507. package/dist/components/Touch/Touch.js +9 -3
  508. package/dist/components/Touch/Touch.js.map +1 -1
  509. package/dist/components/Touch/TouchContext.d.ts +1 -1
  510. package/dist/components/Touch/TouchContext.js +1 -1
  511. package/dist/components/Touch/TouchContext.js.map +1 -1
  512. package/dist/components/Typography/Paragraph/Paragraph.d.ts +10 -0
  513. package/dist/components/Typography/Paragraph/Paragraph.js +25 -0
  514. package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -0
  515. package/dist/components/Typography/Subhead/Subhead.d.ts +1 -2
  516. package/dist/components/Typography/Subhead/Subhead.js +3 -7
  517. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  518. package/dist/components/Typography/Text/Text.js +1 -1
  519. package/dist/components/Typography/Text/Text.js.map +1 -1
  520. package/dist/components/Typography/Title/Title.d.ts +1 -2
  521. package/dist/components/Typography/Title/Title.js +3 -9
  522. package/dist/components/Typography/Title/Title.js.map +1 -1
  523. package/dist/components/UsersStack/UsersStack.js +2 -1
  524. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  525. package/dist/components/View/View.js +5 -0
  526. package/dist/components/View/View.js.map +1 -1
  527. package/dist/components/View/ViewInfinite.js +5 -0
  528. package/dist/components/View/ViewInfinite.js.map +1 -1
  529. package/dist/components/View/utils.js +5 -2
  530. package/dist/components/View/utils.js.map +1 -1
  531. package/dist/components/WriteBarIcon/WriteBarIcon.js +3 -2
  532. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  533. package/dist/components.css +21 -6
  534. package/dist/components.css.map +1 -1
  535. package/dist/cssm/components/ActionSheet/ActionSheet.js +1 -1
  536. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  537. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +2 -1
  538. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  539. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -1
  540. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  541. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +4 -3
  542. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  543. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +43 -11
  544. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  545. package/dist/cssm/components/Alert/Alert.css +1 -1
  546. package/dist/cssm/components/Alert/Alert.js +4 -3
  547. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  548. package/dist/cssm/components/AppRoot/AppRoot.js +3 -2
  549. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  550. package/dist/cssm/components/Avatar/Avatar.js +4 -1
  551. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  552. package/dist/cssm/components/Banner/Banner.js +3 -2
  553. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  554. package/dist/cssm/components/Button/Button.d.ts +1 -2
  555. package/dist/cssm/components/Button/Button.js +29 -33
  556. package/dist/cssm/components/Button/Button.js.map +1 -1
  557. package/dist/cssm/components/Calendar/Calendar.js +3 -3
  558. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  559. package/dist/cssm/components/CalendarDay/CalendarDay.css +1 -1
  560. package/dist/cssm/components/CalendarDay/CalendarDay.js +4 -1
  561. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  562. package/dist/cssm/components/CalendarDays/CalendarDays.js +1 -1
  563. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  564. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +8 -8
  565. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  566. package/dist/cssm/components/CalendarRange/CalendarRange.js +2 -5
  567. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  568. package/dist/cssm/components/CalendarTime/CalendarTime.js +3 -3
  569. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  570. package/dist/cssm/components/CardScroll/CardScroll.js +2 -1
  571. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  572. package/dist/cssm/components/Cell/Cell.d.ts +1 -1
  573. package/dist/cssm/components/Cell/Cell.js +4 -3
  574. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  575. package/dist/cssm/components/CellButton/CellButton.js +1 -0
  576. package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
  577. package/dist/cssm/components/Chip/Chip.js +1 -0
  578. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  579. package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
  580. package/dist/cssm/components/ChipsInput/ChipsInput.d.ts +1 -2
  581. package/dist/cssm/components/ChipsInput/ChipsInput.js +3 -10
  582. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  583. package/dist/cssm/components/ChipsSelect/ChipsSelect.css +1 -1
  584. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  585. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +3 -6
  586. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  587. package/dist/cssm/components/ClickPopper/ClickPopper.d.ts +1 -1
  588. package/dist/cssm/components/ClickPopper/ClickPopper.js.map +1 -1
  589. package/dist/cssm/components/ContentCard/ContentCard.js +3 -2
  590. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  591. package/dist/cssm/components/CustomSelect/CustomSelect.css +1 -1
  592. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +2 -2
  593. package/dist/cssm/components/CustomSelect/CustomSelect.js +20 -27
  594. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  595. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.css +3 -1
  596. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -5
  597. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  598. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.css +3 -1
  599. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.d.ts +35 -6
  600. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +19 -15
  601. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  602. package/dist/cssm/components/DateInput/DateInput.css +1 -1
  603. package/dist/cssm/components/DateInput/DateInput.js +3 -3
  604. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  605. package/dist/cssm/components/DatePicker/DatePicker.js +2 -2
  606. package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
  607. package/dist/cssm/components/DateRangeInput/DateRangeInput.css +1 -1
  608. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +2 -2
  609. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  610. package/dist/cssm/components/File/File.js +1 -1
  611. package/dist/cssm/components/File/File.js.map +1 -1
  612. package/dist/cssm/components/FixedLayout/FixedLayout.js +2 -1
  613. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  614. package/dist/cssm/components/FormField/FormField.css +5 -1
  615. package/dist/cssm/components/FormField/FormField.js +2 -6
  616. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  617. package/dist/cssm/components/FormItem/FormItem.js +3 -2
  618. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  619. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  620. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  621. package/dist/cssm/components/FormStatus/FormStatus.css +1 -1
  622. package/dist/cssm/components/Gallery/Gallery.d.ts +9 -1
  623. package/dist/cssm/components/Gallery/Gallery.js +10 -2
  624. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  625. package/dist/cssm/components/GridAvatar/GridAvatar.css +1 -1
  626. package/dist/cssm/components/GridAvatar/GridAvatar.d.ts +1 -0
  627. package/dist/cssm/components/GridAvatar/GridAvatar.js +5 -6
  628. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  629. package/dist/cssm/components/Group/Group.js +2 -1
  630. package/dist/cssm/components/Group/Group.js.map +1 -1
  631. package/dist/cssm/components/Header/Header.js +7 -4
  632. package/dist/cssm/components/Header/Header.js.map +1 -1
  633. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +1 -1
  634. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  635. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts +1 -2
  636. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +20 -18
  637. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  638. package/dist/cssm/components/InfoRow/InfoRow.js +1 -1
  639. package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
  640. package/dist/cssm/components/Input/Input.css +1 -1
  641. package/dist/cssm/components/Input/Input.d.ts +1 -2
  642. package/dist/cssm/components/Input/Input.js +8 -10
  643. package/dist/cssm/components/Input/Input.js.map +1 -1
  644. package/dist/cssm/components/InputLike/InputLike.css +1 -1
  645. package/dist/cssm/components/InputLike/InputLikeDivider.css +1 -1
  646. package/dist/cssm/components/List/List.js +1 -0
  647. package/dist/cssm/components/List/List.js.map +1 -1
  648. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +1 -0
  649. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  650. package/dist/cssm/components/ModalCard/ModalCard.css +1 -1
  651. package/dist/cssm/components/ModalCard/ModalCard.d.ts +1 -1
  652. package/dist/cssm/components/ModalCard/ModalCard.js +1 -0
  653. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  654. package/dist/cssm/components/ModalCardBase/ModalCardBase.css +1 -1
  655. package/dist/cssm/components/ModalCardBase/ModalCardBase.d.ts +5 -1
  656. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +9 -3
  657. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  658. package/dist/cssm/components/ModalPage/ModalPage.d.ts +16 -1
  659. package/dist/cssm/components/ModalPage/ModalPage.js +5 -1
  660. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  661. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +1 -0
  662. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  663. package/dist/cssm/components/ModalRoot/ModalRoot.d.ts +14 -2
  664. package/dist/cssm/components/ModalRoot/ModalRoot.js +14 -11
  665. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  666. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.d.ts +15 -3
  667. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  668. package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts +14 -2
  669. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +10 -7
  670. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  671. package/dist/cssm/components/ModalRoot/types.d.ts +16 -1
  672. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  673. package/dist/cssm/components/ModalRoot/useModalManager.d.ts +6 -5
  674. package/dist/cssm/components/ModalRoot/useModalManager.js +54 -16
  675. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  676. package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -1
  677. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  678. package/dist/cssm/components/Pagination/Pagination.css +1 -1
  679. package/dist/cssm/components/Pagination/Pagination.d.ts +3 -3
  680. package/dist/cssm/components/Pagination/Pagination.js +1 -1
  681. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  682. package/dist/cssm/components/Panel/Panel.js +2 -1
  683. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  684. package/dist/cssm/components/PanelHeader/PanelHeader.css +1 -1
  685. package/dist/cssm/components/PanelHeader/PanelHeader.js +1 -0
  686. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  687. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +1 -0
  688. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  689. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.css +1 -1
  690. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +4 -3
  691. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  692. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +1 -1
  693. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +1 -0
  694. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  695. package/dist/cssm/components/Placeholder/Placeholder.js +3 -2
  696. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  697. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +1 -0
  698. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  699. package/dist/cssm/components/Popper/Popper.js +2 -2
  700. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  701. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -1
  702. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  703. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +2 -1
  704. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  705. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js +1 -0
  706. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  707. package/dist/cssm/components/Removable/Removable.css +1 -1
  708. package/dist/cssm/components/RichCell/RichCell.js +2 -1
  709. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  710. package/dist/cssm/components/RichTooltip/RichTooltip.js +2 -1
  711. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
  712. package/dist/cssm/components/Root/Root.css +1 -1
  713. package/dist/cssm/components/Root/Root.js +8 -7
  714. package/dist/cssm/components/Root/Root.js.map +1 -1
  715. package/dist/cssm/components/Search/Search.css +1 -1
  716. package/dist/cssm/components/Search/Search.js +2 -1
  717. package/dist/cssm/components/Search/Search.js.map +1 -1
  718. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +19 -13
  719. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  720. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -1
  721. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +2 -1
  722. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  723. package/dist/cssm/components/Select/Select.css +1 -1
  724. package/dist/cssm/components/Select/Select.d.ts +1 -2
  725. package/dist/cssm/components/Select/Select.js +4 -5
  726. package/dist/cssm/components/Select/Select.js.map +1 -1
  727. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +2 -1
  728. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  729. package/dist/cssm/components/Separator/Separator.js +3 -1
  730. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  731. package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
  732. package/dist/cssm/components/SimpleCell/SimpleCell.js +3 -2
  733. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  734. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js +6 -2
  735. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
  736. package/dist/cssm/components/SliderSwitch/SliderSwitch.js +1 -0
  737. package/dist/cssm/components/SliderSwitch/SliderSwitch.js.map +1 -1
  738. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js +1 -0
  739. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  740. package/dist/cssm/components/Snackbar/Snackbar.js +2 -1
  741. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  742. package/dist/cssm/components/Spacing/Spacing.js +2 -1
  743. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  744. package/dist/cssm/components/SplitCol/SplitCol.js +2 -1
  745. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  746. package/dist/cssm/components/SplitLayout/SplitLayout.css +1 -1
  747. package/dist/cssm/components/SplitLayout/SplitLayout.js +2 -1
  748. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  749. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -1
  750. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  751. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +3 -2
  752. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  753. package/dist/cssm/components/Switch/Switch.js +1 -0
  754. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  755. package/dist/cssm/components/Tabbar/Tabbar.js +1 -0
  756. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  757. package/dist/cssm/components/TabbarItem/TabbarItem.css +1 -1
  758. package/dist/cssm/components/TabbarItem/TabbarItem.js +2 -1
  759. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  760. package/dist/cssm/components/Tabs/Tabs.css +1 -1
  761. package/dist/cssm/components/TabsItem/TabsItem.js +2 -1
  762. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  763. package/dist/cssm/components/Tappable/Tappable.css +1 -1
  764. package/dist/cssm/components/Tappable/Tappable.js +5 -4
  765. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  766. package/dist/cssm/components/TextTooltip/TextTooltip.js +1 -1
  767. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  768. package/dist/cssm/components/Textarea/Textarea.css +1 -1
  769. package/dist/cssm/components/Tooltip/Tooltip.js +4 -4
  770. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  771. package/dist/cssm/components/Touch/Touch.js +9 -3
  772. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  773. package/dist/cssm/components/Touch/TouchContext.d.ts +1 -1
  774. package/dist/cssm/components/Touch/TouchContext.js +1 -1
  775. package/dist/cssm/components/Touch/TouchContext.js.map +1 -1
  776. package/dist/cssm/components/Typography/Caption/Caption.css +1 -1
  777. package/dist/cssm/components/Typography/Headline/Headline.css +1 -1
  778. package/dist/cssm/components/Typography/Paragraph/Paragraph.css +1 -0
  779. package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts +10 -0
  780. package/dist/cssm/components/Typography/Paragraph/Paragraph.js +26 -0
  781. package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -0
  782. package/dist/cssm/components/Typography/Subhead/Subhead.css +1 -1
  783. package/dist/cssm/components/Typography/Subhead/Subhead.d.ts +1 -2
  784. package/dist/cssm/components/Typography/Subhead/Subhead.js +3 -7
  785. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  786. package/dist/cssm/components/Typography/Text/Text.css +1 -1
  787. package/dist/cssm/components/Typography/Text/Text.js +1 -1
  788. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  789. package/dist/cssm/components/Typography/Title/Title.css +1 -1
  790. package/dist/cssm/components/Typography/Title/Title.d.ts +1 -2
  791. package/dist/cssm/components/Typography/Title/Title.js +3 -9
  792. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  793. package/dist/cssm/components/UsersStack/UsersStack.js +2 -1
  794. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  795. package/dist/cssm/components/View/View.css +1 -1
  796. package/dist/cssm/components/View/View.js +5 -0
  797. package/dist/cssm/components/View/View.js.map +1 -1
  798. package/dist/cssm/components/View/ViewIOS.css +1 -1
  799. package/dist/cssm/components/View/ViewInfinite.js +5 -0
  800. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  801. package/dist/cssm/components/View/utils.js +5 -2
  802. package/dist/cssm/components/View/utils.js.map +1 -1
  803. package/dist/cssm/components/WriteBar/WriteBar.css +1 -1
  804. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +3 -2
  805. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  806. package/dist/cssm/helpers/scheme.js +2 -2
  807. package/dist/cssm/helpers/scheme.js.map +1 -1
  808. package/dist/cssm/hooks/useBridgeAdaptivity.d.ts +6 -0
  809. package/dist/cssm/hooks/useBridgeAdaptivity.js +68 -0
  810. package/dist/cssm/hooks/useBridgeAdaptivity.js.map +1 -0
  811. package/dist/cssm/hooks/useCalendar.js +1 -1
  812. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  813. package/dist/cssm/hooks/useKeyboard.d.ts +1 -1
  814. package/dist/cssm/hooks/useKeyboard.js +1 -1
  815. package/dist/cssm/hooks/useKeyboard.js.map +1 -1
  816. package/dist/cssm/hooks/usePagination.d.ts +3 -3
  817. package/dist/cssm/hooks/usePagination.js +3 -3
  818. package/dist/cssm/hooks/usePagination.js.map +1 -1
  819. package/dist/cssm/hooks/usePatchChildrenRef.js +1 -1
  820. package/dist/cssm/hooks/usePatchChildrenRef.js.map +1 -1
  821. package/dist/cssm/hooks/useWaitTransitionFinish.js +5 -1
  822. package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
  823. package/dist/cssm/index.d.ts +20 -9
  824. package/dist/cssm/index.js +11 -13
  825. package/dist/cssm/index.js.map +1 -1
  826. package/dist/cssm/lib/calendar.js +4 -15
  827. package/dist/cssm/lib/calendar.js.map +1 -1
  828. package/dist/cssm/lib/date.d.ts +29 -0
  829. package/dist/cssm/lib/date.js +223 -0
  830. package/dist/cssm/lib/date.js.map +1 -0
  831. package/dist/cssm/lib/getNavId.d.ts +2 -1
  832. package/dist/cssm/lib/getNavId.js +1 -1
  833. package/dist/cssm/lib/getNavId.js.map +1 -1
  834. package/dist/cssm/lib/warnOnce.d.ts +2 -1
  835. package/dist/cssm/lib/warnOnce.js +3 -1
  836. package/dist/cssm/lib/warnOnce.js.map +1 -1
  837. package/dist/cssm/styles/common.css +1 -1
  838. package/dist/cssm/styles/components.css +21 -6
  839. package/dist/cssm/styles/constants.css +8 -1
  840. package/dist/cssm/styles/themes.css +1 -1
  841. package/dist/cssm/styles/unstable.css +1 -1
  842. package/dist/cssm/tokenized/index.d.ts +22 -4
  843. package/dist/cssm/tokenized/index.js +13 -4
  844. package/dist/cssm/tokenized/index.js.map +1 -1
  845. package/dist/helpers/scheme.js +2 -2
  846. package/dist/helpers/scheme.js.map +1 -1
  847. package/dist/hooks/useBridgeAdaptivity.d.ts +6 -0
  848. package/dist/hooks/useBridgeAdaptivity.js +68 -0
  849. package/dist/hooks/useBridgeAdaptivity.js.map +1 -0
  850. package/dist/hooks/useCalendar.js +1 -1
  851. package/dist/hooks/useCalendar.js.map +1 -1
  852. package/dist/hooks/useKeyboard.d.ts +1 -1
  853. package/dist/hooks/useKeyboard.js +1 -1
  854. package/dist/hooks/useKeyboard.js.map +1 -1
  855. package/dist/hooks/usePagination.d.ts +3 -3
  856. package/dist/hooks/usePagination.js +3 -3
  857. package/dist/hooks/usePagination.js.map +1 -1
  858. package/dist/hooks/usePatchChildrenRef.js +1 -1
  859. package/dist/hooks/usePatchChildrenRef.js.map +1 -1
  860. package/dist/hooks/useWaitTransitionFinish.js +5 -1
  861. package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
  862. package/dist/index.d.ts +20 -9
  863. package/dist/index.js +11 -13
  864. package/dist/index.js.map +1 -1
  865. package/dist/lib/calendar.js +4 -15
  866. package/dist/lib/calendar.js.map +1 -1
  867. package/dist/lib/date.d.ts +29 -0
  868. package/dist/lib/date.js +223 -0
  869. package/dist/lib/date.js.map +1 -0
  870. package/dist/lib/getNavId.d.ts +2 -1
  871. package/dist/lib/getNavId.js +1 -1
  872. package/dist/lib/getNavId.js.map +1 -1
  873. package/dist/lib/warnOnce.d.ts +2 -1
  874. package/dist/lib/warnOnce.js +3 -1
  875. package/dist/lib/warnOnce.js.map +1 -1
  876. package/dist/tokenized/index.d.ts +22 -4
  877. package/dist/tokenized/index.js +13 -4
  878. package/dist/tokenized/index.js.map +1 -1
  879. package/dist/unstable.css +1 -1
  880. package/dist/unstable.css.map +1 -1
  881. package/dist/vkui.css +22 -7
  882. package/dist/vkui.css.map +1 -1
  883. package/eslint-plugin-vkui/index.js +64 -0
  884. package/eslint-plugin-vkui/package.json +5 -0
  885. package/jest.unit.config.js +4 -1
  886. package/package.json +4 -3
  887. package/postcss-plugin-vk-sans/__tests__/custom_properties.css +4 -0
  888. package/postcss-plugin-vk-sans/index.js +343 -0
  889. package/src/components/ActionSheet/ActionSheet.tsx +1 -1
  890. package/src/components/ActionSheet/ActionSheetDropdown.tsx +1 -0
  891. package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +1 -1
  892. package/src/components/ActionSheetItem/ActionSheetItem.tsx +3 -2
  893. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +50 -19
  894. package/src/components/Alert/Alert.tsx +5 -4
  895. package/src/components/AppRoot/AppRoot.tsx +2 -1
  896. package/src/components/Avatar/Avatar.tsx +3 -0
  897. package/src/components/Banner/Banner.tsx +3 -2
  898. package/src/components/Button/Button.css +7 -7
  899. package/src/components/Button/Button.tsx +25 -36
  900. package/src/components/Calendar/Calendar.tsx +4 -3
  901. package/src/components/Calendar/Readme.md +2 -2
  902. package/src/components/CalendarDay/CalendarDay.tsx +3 -0
  903. package/src/components/CalendarDays/CalendarDays.tsx +1 -1
  904. package/src/components/CalendarHeader/CalendarHeader.tsx +11 -10
  905. package/src/components/CalendarRange/CalendarRange.tsx +2 -5
  906. package/src/components/CalendarRange/Readme.md +2 -2
  907. package/src/components/CalendarTime/CalendarTime.tsx +3 -3
  908. package/src/components/CardScroll/CardScroll.tsx +3 -1
  909. package/src/components/Cell/Cell.tsx +4 -3
  910. package/src/components/CellButton/CellButton.tsx +1 -0
  911. package/src/components/Chip/Chip.tsx +1 -0
  912. package/src/components/ChipsInput/ChipsInput.css +4 -4
  913. package/src/components/ChipsInput/ChipsInput.tsx +7 -8
  914. package/src/components/ChipsSelect/ChipsSelect.css +1 -1
  915. package/src/components/ChipsSelect/ChipsSelect.tsx +9 -7
  916. package/src/components/ClickPopper/ClickPopper.tsx +1 -1
  917. package/src/components/ContentCard/ContentCard.tsx +2 -1
  918. package/src/components/CustomSelect/CustomSelect.css +1 -1
  919. package/src/components/CustomSelect/CustomSelect.tsx +23 -20
  920. package/src/components/CustomSelectDropdown/CustomSelectDropdown.css +10 -5
  921. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +6 -5
  922. package/src/components/CustomSelectOption/CustomSelectOption.css +17 -5
  923. package/src/components/CustomSelectOption/CustomSelectOption.tsx +55 -17
  924. package/src/components/CustomSelectOption/Readme.md +47 -28
  925. package/src/components/DateInput/DateInput.css +1 -1
  926. package/src/components/DateInput/DateInput.tsx +3 -3
  927. package/src/components/DateInput/Readme.md +1 -1
  928. package/src/components/DatePicker/DatePicker.tsx +2 -2
  929. package/src/components/DateRangeInput/DateRangeInput.tsx +3 -3
  930. package/src/components/DateRangeInput/Readme.md +1 -1
  931. package/src/components/Epic/Readme.md +5 -1
  932. package/src/components/File/File.tsx +1 -1
  933. package/src/components/FixedLayout/FixedLayout.tsx +1 -0
  934. package/src/components/FormField/FormField.css +20 -45
  935. package/src/components/FormField/FormField.tsx +5 -6
  936. package/src/components/FormItem/FormItem.tsx +2 -1
  937. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +1 -0
  938. package/src/components/Gallery/Gallery.tsx +14 -2
  939. package/src/components/GridAvatar/GridAvatar.css +10 -13
  940. package/src/components/GridAvatar/GridAvatar.tsx +12 -24
  941. package/src/components/Group/Group.tsx +1 -0
  942. package/src/components/Header/Header.tsx +9 -3
  943. package/src/components/HorizontalCell/HorizontalCell.tsx +1 -1
  944. package/src/components/HorizontalScroll/HorizontalScroll.tsx +41 -39
  945. package/src/components/InfoRow/InfoRow.tsx +1 -1
  946. package/src/components/Input/Input.css +4 -4
  947. package/src/components/Input/Input.tsx +5 -9
  948. package/src/components/InputLike/InputLike.css +1 -1
  949. package/src/components/InputLike/InputLikeDivider.css +1 -1
  950. package/src/components/List/List.tsx +1 -0
  951. package/src/components/MiniInfoCell/MiniInfoCell.tsx +1 -0
  952. package/src/components/ModalCard/ModalCard.css +0 -10
  953. package/src/components/ModalCard/ModalCard.tsx +1 -0
  954. package/src/components/ModalCardBase/ModalCardBase.css +10 -0
  955. package/src/components/ModalCardBase/ModalCardBase.tsx +15 -2
  956. package/src/components/ModalPage/ModalPage.tsx +19 -0
  957. package/src/components/ModalPageHeader/ModalPageHeader.tsx +1 -0
  958. package/src/components/ModalRoot/ModalRoot.tsx +33 -10
  959. package/src/components/ModalRoot/ModalRootAdaptive.tsx +17 -2
  960. package/src/components/ModalRoot/ModalRootDesktop.tsx +25 -7
  961. package/src/components/ModalRoot/Readme.md +112 -0
  962. package/src/components/ModalRoot/types.ts +16 -1
  963. package/src/components/ModalRoot/useModalManager.tsx +60 -15
  964. package/src/components/NativeSelect/NativeSelect.tsx +1 -0
  965. package/src/components/Pagination/Pagination.tsx +4 -4
  966. package/src/components/Pagination/Readme.md +1 -1
  967. package/src/components/Panel/Panel.tsx +1 -0
  968. package/src/components/PanelHeader/PanelHeader.tsx +1 -0
  969. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +1 -0
  970. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +4 -2
  971. package/src/components/PanelHeaderContext/PanelHeaderContext.tsx +1 -0
  972. package/src/components/Placeholder/Placeholder.tsx +2 -1
  973. package/src/components/PopoutWrapper/PopoutWrapper.tsx +1 -0
  974. package/src/components/Popper/Popper.tsx +2 -2
  975. package/src/components/PromoBanner/PromoBanner.tsx +1 -1
  976. package/src/components/PullToRefresh/PullToRefresh.tsx +1 -0
  977. package/src/components/PullToRefresh/PullToRefreshSpinner.tsx +1 -0
  978. package/src/components/RichCell/RichCell.tsx +2 -1
  979. package/src/components/RichTooltip/Readme.md +2 -2
  980. package/src/components/RichTooltip/RichTooltip.tsx +1 -0
  981. package/src/components/Root/Root.css +4 -11
  982. package/src/components/Root/Root.tsx +7 -6
  983. package/src/components/Search/Search.tsx +2 -1
  984. package/src/components/SegmentedControl/SegmentedControl.tsx +20 -10
  985. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -1
  986. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +1 -0
  987. package/src/components/Select/Select.css +2 -2
  988. package/src/components/Select/Select.tsx +3 -4
  989. package/src/components/SelectMimicry/SelectMimicry.tsx +1 -0
  990. package/src/components/Separator/Separator.tsx +2 -0
  991. package/src/components/SimpleCell/SimpleCell.tsx +3 -2
  992. package/src/components/SimpleCheckbox/SimpleCheckbox.tsx +7 -2
  993. package/src/components/SliderSwitch/SliderSwitch.tsx +1 -0
  994. package/src/components/SliderSwitch/SliderSwitchButton.tsx +1 -0
  995. package/src/components/Snackbar/Snackbar.tsx +2 -1
  996. package/src/components/Spacing/Spacing.tsx +1 -0
  997. package/src/components/SplitCol/SplitCol.tsx +1 -0
  998. package/src/components/SplitLayout/SplitLayout.tsx +1 -0
  999. package/src/components/SubnavigationBar/SubnavigationBar.tsx +2 -1
  1000. package/src/components/SubnavigationButton/SubnavigationButton.tsx +2 -1
  1001. package/src/components/Switch/Switch.tsx +1 -0
  1002. package/src/components/Tabbar/Tabbar.tsx +1 -0
  1003. package/src/components/TabbarItem/TabbarItem.css +1 -0
  1004. package/src/components/TabbarItem/TabbarItem.tsx +1 -0
  1005. package/src/components/Tabs/Readme.md +7 -7
  1006. package/src/components/TabsItem/TabsItem.tsx +2 -1
  1007. package/src/components/Tappable/Tappable.css +5 -0
  1008. package/src/components/Tappable/Tappable.tsx +5 -2
  1009. package/src/components/TextTooltip/TextTooltip.tsx +1 -1
  1010. package/src/components/Tooltip/Tooltip.tsx +5 -4
  1011. package/src/components/Touch/Touch.tsx +6 -3
  1012. package/src/components/Touch/TouchContext.ts +1 -1
  1013. package/src/components/Typography/Caption/Caption.css +3 -3
  1014. package/src/components/Typography/Paragraph/Paragraph.css +17 -0
  1015. package/src/components/Typography/Paragraph/Paragraph.tsx +42 -0
  1016. package/src/components/Typography/Paragraph/Readme.md +19 -0
  1017. package/src/components/Typography/Subhead/Subhead.tsx +3 -7
  1018. package/src/components/Typography/Text/Text.tsx +1 -1
  1019. package/src/components/Typography/Title/Title.tsx +7 -10
  1020. package/src/components/UsersStack/UsersStack.tsx +2 -1
  1021. package/src/components/View/Readme.md +1 -1
  1022. package/src/components/View/View.css +1 -1
  1023. package/src/components/View/View.tsx +4 -0
  1024. package/src/components/View/ViewIOS.css +2 -2
  1025. package/src/components/View/ViewInfinite.tsx +4 -0
  1026. package/src/components/View/utils.ts +2 -1
  1027. package/src/components/WriteBarIcon/WriteBarIcon.tsx +3 -1
  1028. package/src/helpers/scheme.ts +3 -2
  1029. package/src/hooks/useBridgeAdaptivity.ts +83 -0
  1030. package/src/hooks/useCalendar.ts +1 -1
  1031. package/src/hooks/useKeyboard.ts +1 -1
  1032. package/src/hooks/usePagination.ts +5 -5
  1033. package/src/hooks/usePatchChildrenRef.ts +2 -2
  1034. package/src/hooks/useWaitTransitionFinish.ts +7 -1
  1035. package/src/index.ts +20 -9
  1036. package/src/lib/calendar.ts +7 -7
  1037. package/src/lib/date.ts +274 -0
  1038. package/src/lib/getNavId.ts +4 -2
  1039. package/src/lib/warnOnce.ts +9 -3
  1040. package/src/styles/components.css +1 -0
  1041. package/src/styles/constants.css +8 -1
  1042. package/src/testing/utils.tsx +10 -1
  1043. package/src/tokenized/index.ts +31 -4
  1044. package/tsconfig.json +2 -0
  1045. package/.cache/ts/src/helpers/typography.d.ts +0 -1
  1046. package/dist/cjs/helpers/typography.d.ts +0 -1
  1047. package/dist/cjs/helpers/typography.js +0 -25
  1048. package/dist/cjs/helpers/typography.js.map +0 -1
  1049. package/dist/cssm/helpers/typography.d.ts +0 -1
  1050. package/dist/cssm/helpers/typography.js +0 -18
  1051. package/dist/cssm/helpers/typography.js.map +0 -1
  1052. package/dist/helpers/typography.d.ts +0 -1
  1053. package/dist/helpers/typography.js +0 -18
  1054. package/dist/helpers/typography.js.map +0 -1
  1055. package/src/helpers/typography.ts +0 -24
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SliderSwitch/SliderSwitchButton.tsx"],"names":["React","Tappable","getClassName","classNames","usePlatform","Text","SliderSwitchButton","props","active","hovered","children","getRootRef","restProps","platform","useState","focus","setFocus","toggleFocus"],"mappings":";;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,QAAP;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AAEA,SAASC,WAAT;AACA,OAAOC,IAAP;;AAUA;AACA;AACA;AACA,OAAO,IAAMC,kBAAwD,GAAG,SAA3DA,kBAA2D,CACtEC,KADsE,EAEnE;AAAA;;AACH,MAAQC,MAAR,GAAgED,KAAhE,CAAQC,MAAR;AAAA,MAAgBC,OAAhB,GAAgEF,KAAhE,CAAgBE,OAAhB;AAAA,MAAyBC,QAAzB,GAAgEH,KAAhE,CAAyBG,QAAzB;AAAA,MAAmCC,UAAnC,GAAgEJ,KAAhE,CAAmCI,UAAnC;AAAA,MAAkDC,SAAlD,4BAAgEL,KAAhE;;AACA,MAAMM,QAAQ,GAAGT,WAAW,EAA5B;;AACA,wBAA0BJ,KAAK,CAACc,QAAN,CAAe,KAAf,CAA1B;AAAA;AAAA,MAAOC,KAAP;AAAA,MAAcC,QAAd;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBD,IAAAA,QAAQ,CAAC,CAACD,KAAF,CAAR;AACD,GAFD;;AAIA,SACE,oBAAC,QAAD,eACMH,SADN;AAEE,IAAA,SAAS,EAAET,UAAU,CAACD,YAAY,CAAC,sBAAD,EAAyBW,QAAzB,CAAb,kDAClB,8BADkB,EACeL,MADf,gCAElB,6BAFkB,EAEc,CAACA,MAAD,IAAWC,OAFzB,gCAGlB,mCAHkB,EAGoBD,MAAM,IAAIC,OAH9B,gCAIlB,6BAJkB,EAIcM,KAAK,IAAI,CAACN,OAJxB,gBAFvB;AAQE,IAAA,SAAS,EAAC,QARZ;AASE,IAAA,IAAI,EAAC,QATP;AAUE,IAAA,UAAU,EAAEE,UAVd;AAWE,oBAAcH,MAXhB;AAYE,IAAA,OAAO,EAAES,WAZX;AAaE,IAAA,MAAM,EAAEA,WAbV;AAcE,IAAA,QAAQ,EAAE,CAdZ;AAeE,IAAA,SAAS,EAAE,KAfb;AAgBE,IAAA,SAAS,EAAC;AAhBZ,MAkBE,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAC;AAAb,KAAuBP,QAAvB,CAlBF,CADF;AAsBD,CAjCM","sourcesContent":["import * as React from \"react\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasRootRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport Text from \"../Typography/Text/Text\";\nimport \"./SliderSwitch.css\";\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement> {\n active?: boolean;\n hovered?: boolean;\n}\n\n/**\n * @deprecated Этот компонент устарел и будет удален в 5.0.0.\n */\nexport const SliderSwitchButton: React.FunctionComponent<ButtonProps> = (\n props: ButtonProps\n) => {\n const { active, hovered, children, getRootRef, ...restProps } = props;\n const platform = usePlatform();\n const [focus, setFocus] = React.useState(false);\n\n const toggleFocus = () => {\n setFocus(!focus);\n };\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(getClassName(\"SliderSwitch__button\", platform), {\n [\"SliderSwitch__button--active\"]: active,\n [\"SliderSwitch__button--hover\"]: !active && hovered,\n [\"SliderSwitch__button--activeHover\"]: active && hovered,\n [\"SliderSwitch__button--focus\"]: focus && !hovered,\n })}\n Component=\"button\"\n type=\"button\"\n getRootRef={getRootRef}\n aria-pressed={active}\n onFocus={toggleFocus}\n onBlur={toggleFocus}\n tabIndex={0}\n hasActive={false}\n hoverMode=\"opacity\"\n >\n <Text weight=\"medium\">{children}</Text>\n </Tappable>\n );\n};\n"],"file":"SliderSwitchButton.js"}
1
+ {"version":3,"sources":["../../../src/components/SliderSwitch/SliderSwitchButton.tsx"],"names":["React","Tappable","getClassName","classNames","usePlatform","Text","SliderSwitchButton","props","active","hovered","children","getRootRef","restProps","platform","useState","focus","setFocus","toggleFocus"],"mappings":";;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,QAAP;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AAEA,SAASC,WAAT;AACA,OAAOC,IAAP;;AAUA;AACA;AACA;AACA,OAAO,IAAMC,kBAAwD,GAAG,SAA3DA,kBAA2D,CACtEC,KADsE,EAEnE;AAAA;;AACH,MAAQC,MAAR,GAAgED,KAAhE,CAAQC,MAAR;AAAA,MAAgBC,OAAhB,GAAgEF,KAAhE,CAAgBE,OAAhB;AAAA,MAAyBC,QAAzB,GAAgEH,KAAhE,CAAyBG,QAAzB;AAAA,MAAmCC,UAAnC,GAAgEJ,KAAhE,CAAmCI,UAAnC;AAAA,MAAkDC,SAAlD,4BAAgEL,KAAhE;;AACA,MAAMM,QAAQ,GAAGT,WAAW,EAA5B;;AACA,wBAA0BJ,KAAK,CAACc,QAAN,CAAe,KAAf,CAA1B;AAAA;AAAA,MAAOC,KAAP;AAAA,MAAcC,QAAd;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBD,IAAAA,QAAQ,CAAC,CAACD,KAAF,CAAR;AACD,GAFD;;AAIA,SACE,oBAAC,QAAD,eACMH,SADN;AAEE;AACA,IAAA,SAAS,EAAET,UAAU,CAACD,YAAY,CAAC,sBAAD,EAAyBW,QAAzB,CAAb,kDAClB,8BADkB,EACeL,MADf,gCAElB,6BAFkB,EAEc,CAACA,MAAD,IAAWC,OAFzB,gCAGlB,mCAHkB,EAGoBD,MAAM,IAAIC,OAH9B,gCAIlB,6BAJkB,EAIcM,KAAK,IAAI,CAACN,OAJxB,gBAHvB;AASE,IAAA,SAAS,EAAC,QATZ;AAUE,IAAA,IAAI,EAAC,QAVP;AAWE,IAAA,UAAU,EAAEE,UAXd;AAYE,oBAAcH,MAZhB;AAaE,IAAA,OAAO,EAAES,WAbX;AAcE,IAAA,MAAM,EAAEA,WAdV;AAeE,IAAA,QAAQ,EAAE,CAfZ;AAgBE,IAAA,SAAS,EAAE,KAhBb;AAiBE,IAAA,SAAS,EAAC;AAjBZ,MAmBE,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAC;AAAb,KAAuBP,QAAvB,CAnBF,CADF;AAuBD,CAlCM","sourcesContent":["import * as React from \"react\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasRootRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport Text from \"../Typography/Text/Text\";\nimport \"./SliderSwitch.css\";\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement> {\n active?: boolean;\n hovered?: boolean;\n}\n\n/**\n * @deprecated Этот компонент устарел и будет удален в 5.0.0.\n */\nexport const SliderSwitchButton: React.FunctionComponent<ButtonProps> = (\n props: ButtonProps\n) => {\n const { active, hovered, children, getRootRef, ...restProps } = props;\n const platform = usePlatform();\n const [focus, setFocus] = React.useState(false);\n\n const toggleFocus = () => {\n setFocus(!focus);\n };\n\n return (\n <Tappable\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"SliderSwitch__button\", platform), {\n [\"SliderSwitch__button--active\"]: active,\n [\"SliderSwitch__button--hover\"]: !active && hovered,\n [\"SliderSwitch__button--activeHover\"]: active && hovered,\n [\"SliderSwitch__button--focus\"]: focus && !hovered,\n })}\n Component=\"button\"\n type=\"button\"\n getRootRef={getRootRef}\n aria-pressed={active}\n onFocus={toggleFocus}\n onBlur={toggleFocus}\n tabIndex={0}\n hasActive={false}\n hoverMode=\"opacity\"\n >\n <Text weight=\"medium\">{children}</Text>\n </Tappable>\n );\n};\n"],"file":"SliderSwitchButton.js"}
@@ -11,7 +11,7 @@ import { ANDROID, VKCOM } from "../../lib/platform";
11
11
  import { rubber } from "../../lib/touch";
12
12
  import { withAdaptivity, ViewWidth } from "../../hoc/withAdaptivity";
13
13
  import Text from "../Typography/Text/Text";
14
- import Button from "../Button/Button";
14
+ import { Button } from "../Button/Button";
15
15
  import { AppRootPortal } from "../AppRoot/AppRootPortal";
16
16
  import { useWaitTransitionFinish } from "../../hooks/useWaitTransitionFinish";
17
17
  import { usePlatform } from "../../hooks/usePlatform";
@@ -139,6 +139,7 @@ var SnackbarComponent = function SnackbarComponent(props) {
139
139
  }, [closeTimeout]);
140
140
  var resolvedLayout = after || isDesktop ? "vertical" : layout;
141
141
  return createScopedElement(AppRootPortal, null, createScopedElement("div", _extends({}, restProps, {
142
+ // eslint-disable-next-line vkui/no-object-expression-in-arguments
142
143
  vkuiClass: classNames(getClassName("Snackbar", platform), "Snackbar--l-".concat(resolvedLayout), {
143
144
  "Snackbar--closing": closing,
144
145
  "Snackbar--touched": touched,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Snackbar/Snackbar.tsx"],"names":["React","Touch","classNames","getClassName","ANDROID","VKCOM","rubber","withAdaptivity","ViewWidth","Text","Button","AppRootPortal","useWaitTransitionFinish","usePlatform","useTimeout","SnackbarComponent","props","children","layout","action","before","after","viewWidth","duration","onActionClick","onClose","restProps","platform","waitTransitionFinish","useState","closing","setClosing","touched","setTouched","shiftXPercentRef","useRef","shiftXCurrentRef","bodyElRef","innerElRef","animationFrameRef","isDesktop","SMALL_TABLET","transitionFinishDurationFallback","close","current","handleActionClick","e","closeTimeout","setBodyTransform","percent","cancelAnimationFrame","requestAnimationFrame","style","transform","onTouchStart","clear","onTouchMoveX","event","shiftX","originalEvent","preventDefault","offsetWidth","onTouchEnd","callback","shiftXCurrent","expectTranslateY","set","useEffect","resolvedLayout","displayName","defaultProps","Snackbar"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasPlatform } from \"../../types\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { ANDROID, VKCOM } from \"../../lib/platform\";\nimport { rubber } from \"../../lib/touch\";\nimport { withAdaptivity, ViewWidth } from \"../../hoc/withAdaptivity\";\nimport Text from \"../Typography/Text/Text\";\nimport Button from \"../Button/Button\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./Snackbar.css\";\n\nexport interface SnackbarProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n AdaptivityProps {\n /**\n * Название кнопки действия в уведомлении\n */\n action?: string | React.ComponentType;\n\n /**\n * Будет вызвано при клике на кнопку действия\n */\n onActionClick?: (e: React.MouseEvent) => void;\n\n /**\n * Цветная иконка 24x24 пикселя\n */\n before?: React.ReactNode;\n /**\n * Контент в правой части, может быть `<Avatar size={32} />`\n */\n after?: React.ReactNode;\n /**\n * Варианты расположения кнопки\n */\n layout?: \"vertical\" | \"horizontal\";\n /**\n * Время в миллисекундах, через которое плашка скроется\n */\n duration?: number;\n /**\n * Обработчик закрытия уведомления\n */\n onClose: () => void;\n}\n\nconst SnackbarComponent: React.FC<\n SnackbarProps & AdaptivityContextInterface\n> = (props) => {\n const {\n children,\n layout,\n action,\n before,\n after,\n viewWidth,\n duration = 0,\n onActionClick,\n onClose,\n ...restProps\n } = props;\n\n const platform = usePlatform();\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n\n const [closing, setClosing] = React.useState(false);\n const [touched, setTouched] = React.useState(false);\n\n const shiftXPercentRef = React.useRef<number>(0);\n const shiftXCurrentRef = React.useRef<number>(0);\n\n const bodyElRef = React.useRef<HTMLDivElement | null>(null);\n const innerElRef = React.useRef<HTMLDivElement | null>(null);\n\n const animationFrameRef = React.useRef<ReturnType<\n typeof requestAnimationFrame\n > | null>(null);\n\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET;\n const transitionFinishDurationFallback =\n platform === ANDROID || platform === VKCOM ? 400 : 320;\n\n const close = () => {\n setClosing(true);\n waitTransitionFinish(\n innerElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n };\n\n const handleActionClick: React.MouseEventHandler<HTMLElement> = (e) => {\n close();\n\n if (action && typeof onActionClick === \"function\") {\n onActionClick(e);\n }\n };\n\n const closeTimeout = useTimeout(close, duration);\n\n const setBodyTransform = (percent: number) => {\n if (animationFrameRef.current !== null) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n animationFrameRef.current = requestAnimationFrame(() => {\n if (bodyElRef.current) {\n bodyElRef.current.style.transform = `translate3d(${percent}%, 0, 0)`;\n }\n });\n };\n\n const onTouchStart = closeTimeout.clear;\n\n const onTouchMoveX = (event: TouchEvent) => {\n const { shiftX, originalEvent } = event;\n originalEvent.preventDefault();\n\n if (!touched) {\n setTouched(true);\n }\n\n shiftXPercentRef.current =\n (shiftX / (bodyElRef.current?.offsetWidth ?? 0)) * 100;\n shiftXCurrentRef.current = rubber(\n shiftXPercentRef.current,\n 72,\n 1.2,\n platform === ANDROID || platform === VKCOM\n );\n\n setBodyTransform(shiftXCurrentRef.current);\n };\n\n const onTouchEnd = (e: TouchEvent) => {\n let callback: VoidFunction | undefined;\n\n if (touched) {\n let shiftXCurrent = shiftXCurrentRef.current;\n const expectTranslateY = (shiftXCurrent / e.duration) * 240 * 0.6;\n shiftXCurrent = shiftXCurrent + expectTranslateY;\n\n if (isDesktop && shiftXCurrent <= -50) {\n closeTimeout.clear();\n waitTransitionFinish(\n bodyElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n setBodyTransform(-120);\n } else if (!isDesktop && shiftXCurrent >= 50) {\n closeTimeout.clear();\n waitTransitionFinish(\n bodyElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n setBodyTransform(120);\n } else {\n callback = () => {\n closeTimeout.set();\n setBodyTransform(0);\n };\n }\n } else {\n closeTimeout.set();\n }\n\n setTouched(false);\n callback && requestAnimationFrame(callback);\n };\n\n React.useEffect(() => closeTimeout.set(), [closeTimeout]);\n\n const resolvedLayout = after || isDesktop ? \"vertical\" : layout;\n\n return (\n <AppRootPortal>\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"Snackbar\", platform),\n `Snackbar--l-${resolvedLayout}`,\n {\n \"Snackbar--closing\": closing,\n \"Snackbar--touched\": touched,\n \"Snackbar--desktop\": isDesktop,\n }\n )}\n >\n <Touch\n vkuiClass=\"Snackbar__in\"\n getRootRef={innerElRef}\n onStart={onTouchStart}\n onMoveX={onTouchMoveX}\n onEnd={onTouchEnd}\n >\n <div vkuiClass=\"Snackbar__body\" ref={bodyElRef}>\n {before && <div vkuiClass=\"Snackbar__before\">{before}</div>}\n\n <div vkuiClass=\"Snackbar__content\">\n <Text weight=\"regular\" vkuiClass=\"Snackbar__content-text\">\n {children}\n </Text>\n\n {action && (\n <Button\n align=\"left\"\n hasHover={false}\n mode=\"tertiary\"\n size=\"s\"\n vkuiClass=\"Snackbar__action\"\n onClick={handleActionClick}\n >\n {action}\n </Button>\n )}\n </div>\n\n {after && <div vkuiClass=\"Snackbar__after\">{after}</div>}\n </div>\n </Touch>\n </div>\n </AppRootPortal>\n );\n};\n\nSnackbarComponent.displayName = \"Snackbar\";\n\nSnackbarComponent.defaultProps = {\n duration: 4000,\n layout: \"horizontal\",\n};\n\nexport const Snackbar = withAdaptivity(SnackbarComponent, {\n viewWidth: true,\n});\n"],"file":"Snackbar.js"}
1
+ {"version":3,"sources":["../../../src/components/Snackbar/Snackbar.tsx"],"names":["React","Touch","classNames","getClassName","ANDROID","VKCOM","rubber","withAdaptivity","ViewWidth","Text","Button","AppRootPortal","useWaitTransitionFinish","usePlatform","useTimeout","SnackbarComponent","props","children","layout","action","before","after","viewWidth","duration","onActionClick","onClose","restProps","platform","waitTransitionFinish","useState","closing","setClosing","touched","setTouched","shiftXPercentRef","useRef","shiftXCurrentRef","bodyElRef","innerElRef","animationFrameRef","isDesktop","SMALL_TABLET","transitionFinishDurationFallback","close","current","handleActionClick","e","closeTimeout","setBodyTransform","percent","cancelAnimationFrame","requestAnimationFrame","style","transform","onTouchStart","clear","onTouchMoveX","event","shiftX","originalEvent","preventDefault","offsetWidth","onTouchEnd","callback","shiftXCurrent","expectTranslateY","set","useEffect","resolvedLayout","displayName","defaultProps","Snackbar"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasPlatform } from \"../../types\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { ANDROID, VKCOM } from \"../../lib/platform\";\nimport { rubber } from \"../../lib/touch\";\nimport { withAdaptivity, ViewWidth } from \"../../hoc/withAdaptivity\";\nimport Text from \"../Typography/Text/Text\";\nimport { Button } from \"../Button/Button\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./Snackbar.css\";\n\nexport interface SnackbarProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n AdaptivityProps {\n /**\n * Название кнопки действия в уведомлении\n */\n action?: string | React.ComponentType;\n\n /**\n * Будет вызвано при клике на кнопку действия\n */\n onActionClick?: (e: React.MouseEvent) => void;\n\n /**\n * Цветная иконка 24x24 пикселя\n */\n before?: React.ReactNode;\n /**\n * Контент в правой части, может быть `<Avatar size={32} />`\n */\n after?: React.ReactNode;\n /**\n * Варианты расположения кнопки\n */\n layout?: \"vertical\" | \"horizontal\";\n /**\n * Время в миллисекундах, через которое плашка скроется\n */\n duration?: number;\n /**\n * Обработчик закрытия уведомления\n */\n onClose: () => void;\n}\n\nconst SnackbarComponent: React.FC<\n SnackbarProps & AdaptivityContextInterface\n> = (props) => {\n const {\n children,\n layout,\n action,\n before,\n after,\n viewWidth,\n duration = 0,\n onActionClick,\n onClose,\n ...restProps\n } = props;\n\n const platform = usePlatform();\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n\n const [closing, setClosing] = React.useState(false);\n const [touched, setTouched] = React.useState(false);\n\n const shiftXPercentRef = React.useRef<number>(0);\n const shiftXCurrentRef = React.useRef<number>(0);\n\n const bodyElRef = React.useRef<HTMLDivElement | null>(null);\n const innerElRef = React.useRef<HTMLDivElement | null>(null);\n\n const animationFrameRef = React.useRef<ReturnType<\n typeof requestAnimationFrame\n > | null>(null);\n\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET;\n const transitionFinishDurationFallback =\n platform === ANDROID || platform === VKCOM ? 400 : 320;\n\n const close = () => {\n setClosing(true);\n waitTransitionFinish(\n innerElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n };\n\n const handleActionClick: React.MouseEventHandler<HTMLElement> = (e) => {\n close();\n\n if (action && typeof onActionClick === \"function\") {\n onActionClick(e);\n }\n };\n\n const closeTimeout = useTimeout(close, duration);\n\n const setBodyTransform = (percent: number) => {\n if (animationFrameRef.current !== null) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n animationFrameRef.current = requestAnimationFrame(() => {\n if (bodyElRef.current) {\n bodyElRef.current.style.transform = `translate3d(${percent}%, 0, 0)`;\n }\n });\n };\n\n const onTouchStart = closeTimeout.clear;\n\n const onTouchMoveX = (event: TouchEvent) => {\n const { shiftX, originalEvent } = event;\n originalEvent.preventDefault();\n\n if (!touched) {\n setTouched(true);\n }\n\n shiftXPercentRef.current =\n (shiftX / (bodyElRef.current?.offsetWidth ?? 0)) * 100;\n shiftXCurrentRef.current = rubber(\n shiftXPercentRef.current,\n 72,\n 1.2,\n platform === ANDROID || platform === VKCOM\n );\n\n setBodyTransform(shiftXCurrentRef.current);\n };\n\n const onTouchEnd = (e: TouchEvent) => {\n let callback: VoidFunction | undefined;\n\n if (touched) {\n let shiftXCurrent = shiftXCurrentRef.current;\n const expectTranslateY = (shiftXCurrent / e.duration) * 240 * 0.6;\n shiftXCurrent = shiftXCurrent + expectTranslateY;\n\n if (isDesktop && shiftXCurrent <= -50) {\n closeTimeout.clear();\n waitTransitionFinish(\n bodyElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n setBodyTransform(-120);\n } else if (!isDesktop && shiftXCurrent >= 50) {\n closeTimeout.clear();\n waitTransitionFinish(\n bodyElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n setBodyTransform(120);\n } else {\n callback = () => {\n closeTimeout.set();\n setBodyTransform(0);\n };\n }\n } else {\n closeTimeout.set();\n }\n\n setTouched(false);\n callback && requestAnimationFrame(callback);\n };\n\n React.useEffect(() => closeTimeout.set(), [closeTimeout]);\n\n const resolvedLayout = after || isDesktop ? \"vertical\" : layout;\n\n return (\n <AppRootPortal>\n <div\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"Snackbar\", platform),\n `Snackbar--l-${resolvedLayout}`,\n {\n \"Snackbar--closing\": closing,\n \"Snackbar--touched\": touched,\n \"Snackbar--desktop\": isDesktop,\n }\n )}\n >\n <Touch\n vkuiClass=\"Snackbar__in\"\n getRootRef={innerElRef}\n onStart={onTouchStart}\n onMoveX={onTouchMoveX}\n onEnd={onTouchEnd}\n >\n <div vkuiClass=\"Snackbar__body\" ref={bodyElRef}>\n {before && <div vkuiClass=\"Snackbar__before\">{before}</div>}\n\n <div vkuiClass=\"Snackbar__content\">\n <Text weight=\"regular\" vkuiClass=\"Snackbar__content-text\">\n {children}\n </Text>\n\n {action && (\n <Button\n align=\"left\"\n hasHover={false}\n mode=\"tertiary\"\n size=\"s\"\n vkuiClass=\"Snackbar__action\"\n onClick={handleActionClick}\n >\n {action}\n </Button>\n )}\n </div>\n\n {after && <div vkuiClass=\"Snackbar__after\">{after}</div>}\n </div>\n </Touch>\n </div>\n </AppRootPortal>\n );\n};\n\nSnackbarComponent.displayName = \"Snackbar\";\n\nSnackbarComponent.defaultProps = {\n duration: 4000,\n layout: \"horizontal\",\n};\n\nexport const Snackbar = withAdaptivity(SnackbarComponent, {\n viewWidth: true,\n});\n"],"file":"Snackbar.js"}
@@ -19,7 +19,8 @@ export var Spacing = function Spacing(_ref) {
19
19
  }, style);
20
20
 
21
21
  return createScopedElement("div", _extends({}, restProps, {
22
- "aria-hidden": "true",
22
+ "aria-hidden": "true" // eslint-disable-next-line vkui/no-object-expression-in-arguments
23
+ ,
23
24
  vkuiClass: classNames(getClassName("Spacing", platform), {
24
25
  "Spacing--separator": !!separator,
25
26
  "Spacing--separator-center": separator === true || separator === "center",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Spacing/Spacing.tsx"],"names":["classNames","usePlatform","getClassName","Spacing","size","separator","style","restProps","platform","styles","height","defaultProps"],"mappings":";;;;;AACA,SAASA,UAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AAmBA,OAAO,IAAMC,OAA+B,GAAG,SAAlCA,OAAkC,OAK3B;AAAA,MAJlBC,IAIkB,QAJlBA,IAIkB;AAAA,MAHlBC,SAGkB,QAHlBA,SAGkB;AAAA,MAFlBC,KAEkB,QAFlBA,KAEkB;AAAA,MADfC,SACe;;AAClB,MAAMC,QAAQ,GAAGP,WAAW,EAA5B;;AACA,MAAMQ,MAAM;AACVC,IAAAA,MAAM,EAAEN;AADE,KAEPE,KAFO,CAAZ;;AAKA,SACE,wCACMC,SADN;AAEE,mBAAY,MAFd;AAGE,IAAA,SAAS,EAAEP,UAAU,CAACE,YAAY,CAAC,SAAD,EAAYM,QAAZ,CAAb,EAAoC;AACvD,4BAAsB,CAAC,CAACH,SAD+B;AAEvD,mCACEA,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,QAHiB;AAIvD,gCAA0BA,SAAS,KAAK,KAJe;AAKvD,mCAA6BA,SAAS,KAAK;AALY,KAApC,CAHvB;AAUE,IAAA,KAAK,EAAEI;AAVT,KADF;AAcD,CA1BM;AA4BPN,OAAO,CAACQ,YAAR,GAAuB;AACrBP,EAAAA,IAAI,EAAE;AADe,CAAvB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport \"./Spacing.css\";\n\nexport interface SpacingProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Высота спэйсинга\n */\n size?: number;\n /**\n * Настройка положения сепаратора:\n *\n * - separator=false (default) - без сепаратора\n * - separator=true | separator='center' - сепаратор располагается по середине\n * - separator='top'\n * - separator='bottom'\n */\n separator?: boolean | \"top\" | \"bottom\" | \"center\";\n}\n\nexport const Spacing: React.FC<SpacingProps> = ({\n size,\n separator,\n style,\n ...restProps\n}: SpacingProps) => {\n const platform = usePlatform();\n const styles = {\n height: size,\n ...style,\n };\n\n return (\n <div\n {...restProps}\n aria-hidden=\"true\"\n vkuiClass={classNames(getClassName(\"Spacing\", platform), {\n \"Spacing--separator\": !!separator,\n \"Spacing--separator-center\":\n separator === true || separator === \"center\",\n \"Spacing--separator-top\": separator === \"top\",\n \"Spacing--separator-bottom\": separator === \"bottom\",\n })}\n style={styles}\n />\n );\n};\n\nSpacing.defaultProps = {\n size: 8,\n};\n"],"file":"Spacing.js"}
1
+ {"version":3,"sources":["../../../src/components/Spacing/Spacing.tsx"],"names":["classNames","usePlatform","getClassName","Spacing","size","separator","style","restProps","platform","styles","height","defaultProps"],"mappings":";;;;;AACA,SAASA,UAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AAmBA,OAAO,IAAMC,OAA+B,GAAG,SAAlCA,OAAkC,OAK3B;AAAA,MAJlBC,IAIkB,QAJlBA,IAIkB;AAAA,MAHlBC,SAGkB,QAHlBA,SAGkB;AAAA,MAFlBC,KAEkB,QAFlBA,KAEkB;AAAA,MADfC,SACe;;AAClB,MAAMC,QAAQ,GAAGP,WAAW,EAA5B;;AACA,MAAMQ,MAAM;AACVC,IAAAA,MAAM,EAAEN;AADE,KAEPE,KAFO,CAAZ;;AAKA,SACE,wCACMC,SADN;AAEE,mBAAY,MAFd,CAGE;AAHF;AAIE,IAAA,SAAS,EAAEP,UAAU,CAACE,YAAY,CAAC,SAAD,EAAYM,QAAZ,CAAb,EAAoC;AACvD,4BAAsB,CAAC,CAACH,SAD+B;AAEvD,mCACEA,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,QAHiB;AAIvD,gCAA0BA,SAAS,KAAK,KAJe;AAKvD,mCAA6BA,SAAS,KAAK;AALY,KAApC,CAJvB;AAWE,IAAA,KAAK,EAAEI;AAXT,KADF;AAeD,CA3BM;AA6BPN,OAAO,CAACQ,YAAR,GAAuB;AACrBP,EAAAA,IAAI,EAAE;AADe,CAAvB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport \"./Spacing.css\";\n\nexport interface SpacingProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Высота спэйсинга\n */\n size?: number;\n /**\n * Настройка положения сепаратора:\n *\n * - separator=false (default) - без сепаратора\n * - separator=true | separator='center' - сепаратор располагается по середине\n * - separator='top'\n * - separator='bottom'\n */\n separator?: boolean | \"top\" | \"bottom\" | \"center\";\n}\n\nexport const Spacing: React.FC<SpacingProps> = ({\n size,\n separator,\n style,\n ...restProps\n}: SpacingProps) => {\n const platform = usePlatform();\n const styles = {\n height: size,\n ...style,\n };\n\n return (\n <div\n {...restProps}\n aria-hidden=\"true\"\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"Spacing\", platform), {\n \"Spacing--separator\": !!separator,\n \"Spacing--separator-center\":\n separator === true || separator === \"center\",\n \"Spacing--separator-top\": separator === \"top\",\n \"Spacing--separator-bottom\": separator === \"bottom\",\n })}\n style={styles}\n />\n );\n};\n\nSpacing.defaultProps = {\n size: 8,\n};\n"],"file":"Spacing.js"}
@@ -34,7 +34,8 @@ export var SplitCol = function SplitCol(props) {
34
34
  maxWidth: maxWidth,
35
35
  minWidth: minWidth
36
36
  }),
37
- ref: baseRef,
37
+ ref: baseRef // eslint-disable-next-line vkui/no-object-expression-in-arguments
38
+ ,
38
39
  vkuiClass: classNames("SplitCol", {
39
40
  "SplitCol--spaced": spaced,
40
41
  "SplitCol--fixed": fixed
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SplitCol/SplitCol.tsx"],"names":["React","classNames","SplitColContext","createContext","colRef","animate","SplitCol","props","children","width","maxWidth","minWidth","spaced","fixed","style","restProps","baseRef","useRef","contextValue","useMemo"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AAQA,OAAO,IAAMC,eAAe,gBAAGF,KAAK,CAACG,aAAN,CAA0C;AACvEC,EAAAA,MAAM,EAAE,IAD+D;AAEvEC,EAAAA,OAAO,EAAE;AAF8D,CAA1C,CAAxB;AAoBP,OAAO,IAAMC,QAAiC,GAAG,SAApCA,QAAoC,CAACC,KAAD,EAA0B;AACzE,MACEC,QADF,GAUID,KAVJ,CACEC,QADF;AAAA,MAEEC,KAFF,GAUIF,KAVJ,CAEEE,KAFF;AAAA,MAGEC,QAHF,GAUIH,KAVJ,CAGEG,QAHF;AAAA,MAIEC,QAJF,GAUIJ,KAVJ,CAIEI,QAJF;AAAA,MAKEC,MALF,GAUIL,KAVJ,CAKEK,MALF;AAAA,uBAUIL,KAVJ,CAMEF,OANF;AAAA,MAMEA,OANF,+BAMY,KANZ;AAAA,MAOEQ,KAPF,GAUIN,KAVJ,CAOEM,KAPF;AAAA,MAQEC,KARF,GAUIP,KAVJ,CAQEO,KARF;AAAA,MASKC,SATL,4BAUIR,KAVJ;;AAWA,MAAMS,OAAO,GAAGhB,KAAK,CAACiB,MAAN,CAA6B,IAA7B,CAAhB;AAEA,MAAMC,YAAY,GAAGlB,KAAK,CAACmB,OAAN,CAAc,YAAM;AACvC,WAAO;AACLf,MAAAA,MAAM,EAAEY,OADH;AAELX,MAAAA,OAAO,EAAPA;AAFK,KAAP;AAID,GALoB,EAKlB,CAACW,OAAD,EAAUX,OAAV,CALkB,CAArB;AAOA,SACE,wCACMU,SADN;AAEE,IAAA,KAAK,kCACAD,KADA;AAEHL,MAAAA,KAAK,EAAEA,KAFJ;AAGHC,MAAAA,QAAQ,EAAEA,QAHP;AAIHC,MAAAA,QAAQ,EAAEA;AAJP,MAFP;AAQE,IAAA,GAAG,EAAEK,OARP;AASE,IAAA,SAAS,EAAEf,UAAU,CAAC,UAAD,EAAa;AAChC,0BAAoBW,MADY;AAEhC,yBAAmBC;AAFa,KAAb;AATvB,MAcE,oBAAC,eAAD,CAAiB,QAAjB;AAA0B,IAAA,KAAK,EAAEK;AAAjC,KACGL,KAAK,GACJ;AAAK,IAAA,SAAS,EAAC;AAAf,KAAuCL,QAAvC,CADI,GAGJA,QAJJ,CAdF,CADF;AAwBD,CA7CM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport \"./SplitCol.css\";\n\nexport interface SplitColContextProps {\n colRef: React.RefObject<HTMLDivElement> | null;\n animate: boolean;\n}\n\nexport const SplitColContext = React.createContext<SplitColContextProps>({\n colRef: null,\n animate: true,\n});\n\nexport interface SplitColProps extends React.HTMLAttributes<HTMLDivElement> {\n width?: number | string;\n maxWidth?: number | string;\n minWidth?: number | string;\n /**\n * Если false, то переходы между Panel происходят без анимации\n */\n animate?: boolean;\n /**\n * Если true, то добавляются боковые отступы фиксированной величины\n */\n spaced?: boolean;\n fixed?: boolean;\n}\n\nexport const SplitCol: React.FC<SplitColProps> = (props: SplitColProps) => {\n const {\n children,\n width,\n maxWidth,\n minWidth,\n spaced,\n animate = false,\n fixed,\n style,\n ...restProps\n } = props;\n const baseRef = React.useRef<HTMLDivElement>(null);\n\n const contextValue = React.useMemo(() => {\n return {\n colRef: baseRef,\n animate,\n };\n }, [baseRef, animate]);\n\n return (\n <div\n {...restProps}\n style={{\n ...style,\n width: width,\n maxWidth: maxWidth,\n minWidth: minWidth,\n }}\n ref={baseRef}\n vkuiClass={classNames(\"SplitCol\", {\n \"SplitCol--spaced\": spaced,\n \"SplitCol--fixed\": fixed,\n })}\n >\n <SplitColContext.Provider value={contextValue}>\n {fixed ? (\n <div vkuiClass=\"SplitCol__fixedInner\">{children}</div>\n ) : (\n children\n )}\n </SplitColContext.Provider>\n </div>\n );\n};\n"],"file":"SplitCol.js"}
1
+ {"version":3,"sources":["../../../src/components/SplitCol/SplitCol.tsx"],"names":["React","classNames","SplitColContext","createContext","colRef","animate","SplitCol","props","children","width","maxWidth","minWidth","spaced","fixed","style","restProps","baseRef","useRef","contextValue","useMemo"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AAQA,OAAO,IAAMC,eAAe,gBAAGF,KAAK,CAACG,aAAN,CAA0C;AACvEC,EAAAA,MAAM,EAAE,IAD+D;AAEvEC,EAAAA,OAAO,EAAE;AAF8D,CAA1C,CAAxB;AAoBP,OAAO,IAAMC,QAAiC,GAAG,SAApCA,QAAoC,CAACC,KAAD,EAA0B;AACzE,MACEC,QADF,GAUID,KAVJ,CACEC,QADF;AAAA,MAEEC,KAFF,GAUIF,KAVJ,CAEEE,KAFF;AAAA,MAGEC,QAHF,GAUIH,KAVJ,CAGEG,QAHF;AAAA,MAIEC,QAJF,GAUIJ,KAVJ,CAIEI,QAJF;AAAA,MAKEC,MALF,GAUIL,KAVJ,CAKEK,MALF;AAAA,uBAUIL,KAVJ,CAMEF,OANF;AAAA,MAMEA,OANF,+BAMY,KANZ;AAAA,MAOEQ,KAPF,GAUIN,KAVJ,CAOEM,KAPF;AAAA,MAQEC,KARF,GAUIP,KAVJ,CAQEO,KARF;AAAA,MASKC,SATL,4BAUIR,KAVJ;;AAWA,MAAMS,OAAO,GAAGhB,KAAK,CAACiB,MAAN,CAA6B,IAA7B,CAAhB;AAEA,MAAMC,YAAY,GAAGlB,KAAK,CAACmB,OAAN,CAAc,YAAM;AACvC,WAAO;AACLf,MAAAA,MAAM,EAAEY,OADH;AAELX,MAAAA,OAAO,EAAPA;AAFK,KAAP;AAID,GALoB,EAKlB,CAACW,OAAD,EAAUX,OAAV,CALkB,CAArB;AAOA,SACE,wCACMU,SADN;AAEE,IAAA,KAAK,kCACAD,KADA;AAEHL,MAAAA,KAAK,EAAEA,KAFJ;AAGHC,MAAAA,QAAQ,EAAEA,QAHP;AAIHC,MAAAA,QAAQ,EAAEA;AAJP,MAFP;AAQE,IAAA,GAAG,EAAEK,OARP,CASE;AATF;AAUE,IAAA,SAAS,EAAEf,UAAU,CAAC,UAAD,EAAa;AAChC,0BAAoBW,MADY;AAEhC,yBAAmBC;AAFa,KAAb;AAVvB,MAeE,oBAAC,eAAD,CAAiB,QAAjB;AAA0B,IAAA,KAAK,EAAEK;AAAjC,KACGL,KAAK,GACJ;AAAK,IAAA,SAAS,EAAC;AAAf,KAAuCL,QAAvC,CADI,GAGJA,QAJJ,CAfF,CADF;AAyBD,CA9CM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport \"./SplitCol.css\";\n\nexport interface SplitColContextProps {\n colRef: React.RefObject<HTMLDivElement> | null;\n animate: boolean;\n}\n\nexport const SplitColContext = React.createContext<SplitColContextProps>({\n colRef: null,\n animate: true,\n});\n\nexport interface SplitColProps extends React.HTMLAttributes<HTMLDivElement> {\n width?: number | string;\n maxWidth?: number | string;\n minWidth?: number | string;\n /**\n * Если false, то переходы между Panel происходят без анимации\n */\n animate?: boolean;\n /**\n * Если true, то добавляются боковые отступы фиксированной величины\n */\n spaced?: boolean;\n fixed?: boolean;\n}\n\nexport const SplitCol: React.FC<SplitColProps> = (props: SplitColProps) => {\n const {\n children,\n width,\n maxWidth,\n minWidth,\n spaced,\n animate = false,\n fixed,\n style,\n ...restProps\n } = props;\n const baseRef = React.useRef<HTMLDivElement>(null);\n\n const contextValue = React.useMemo(() => {\n return {\n colRef: baseRef,\n animate,\n };\n }, [baseRef, animate]);\n\n return (\n <div\n {...restProps}\n style={{\n ...style,\n width: width,\n maxWidth: maxWidth,\n minWidth: minWidth,\n }}\n ref={baseRef}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"SplitCol\", {\n \"SplitCol--spaced\": spaced,\n \"SplitCol--fixed\": fixed,\n })}\n >\n <SplitColContext.Provider value={contextValue}>\n {fixed ? (\n <div vkuiClass=\"SplitCol__fixedInner\">{children}</div>\n ) : (\n children\n )}\n </SplitColContext.Provider>\n </div>\n );\n};\n"],"file":"SplitCol.js"}
@@ -22,7 +22,8 @@ export var SplitLayout = function SplitLayout(_ref) {
22
22
  modal: modal,
23
23
  getRootRef: getRootRef
24
24
  }, header, createScopedElement("div", _extends({}, restProps, {
25
- ref: getRef,
25
+ ref: getRef // eslint-disable-next-line vkui/no-object-expression-in-arguments
26
+ ,
26
27
  vkuiClass: classNames("SplitLayout__inner", {
27
28
  "SplitLayout__inner--header": !!header
28
29
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SplitLayout/SplitLayout.tsx"],"names":["getClassName","classNames","PopoutRoot","usePlatform","SplitLayout","popout","modal","header","children","getRootRef","getRef","restProps","platform"],"mappings":";;;;AACA,SAASA,YAAT;AACA,SAASC,UAAT;AAEA,SAASC,UAAT;AACA,SAASC,WAAT;AAkBA,OAAO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,OAQ/B;AAAA,MAPtBC,MAOsB,QAPtBA,MAOsB;AAAA,MANtBC,KAMsB,QANtBA,KAMsB;AAAA,MALtBC,MAKsB,QALtBA,MAKsB;AAAA,MAJtBC,QAIsB,QAJtBA,QAIsB;AAAA,MAHtBC,UAGsB,QAHtBA,UAGsB;AAAA,MAFtBC,MAEsB,QAFtBA,MAEsB;AAAA,MADnBC,SACmB;;AACtB,MAAMC,QAAQ,GAAGT,WAAW,EAA5B;AAEA,SACE,oBAAC,UAAD;AACE,IAAA,SAAS,EAAEH,YAAY,CAAC,aAAD,EAAgBY,QAAhB,CADzB;AAEE,IAAA,MAAM,EAAEP,MAFV;AAGE,IAAA,KAAK,EAAEC,KAHT;AAIE,IAAA,UAAU,EAAEG;AAJd,KAMGF,MANH,EAOE,wCACMI,SADN;AAEE,IAAA,GAAG,EAAED,MAFP;AAGE,IAAA,SAAS,EAAET,UAAU,CAAC,oBAAD,EAAuB;AAC1C,oCAA8B,CAAC,CAACM;AADU,KAAvB;AAHvB,MAOGC,QAPH,CAPF,CADF;AAmBD,CA9BM","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { PopoutRoot } from \"../PopoutRoot/PopoutRoot\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport \"./SplitLayout.css\";\n\nexport interface SplitLayoutProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n header?: React.ReactNode;\n}\n\nexport const SplitLayout: React.FC<SplitLayoutProps> = ({\n popout,\n modal,\n header,\n children,\n getRootRef,\n getRef,\n ...restProps\n}: SplitLayoutProps) => {\n const platform = usePlatform();\n\n return (\n <PopoutRoot\n vkuiClass={getClassName(\"SplitLayout\", platform)}\n popout={popout}\n modal={modal}\n getRootRef={getRootRef}\n >\n {header}\n <div\n {...restProps}\n ref={getRef}\n vkuiClass={classNames(\"SplitLayout__inner\", {\n \"SplitLayout__inner--header\": !!header,\n })}\n >\n {children}\n </div>\n </PopoutRoot>\n );\n};\n"],"file":"SplitLayout.js"}
1
+ {"version":3,"sources":["../../../src/components/SplitLayout/SplitLayout.tsx"],"names":["getClassName","classNames","PopoutRoot","usePlatform","SplitLayout","popout","modal","header","children","getRootRef","getRef","restProps","platform"],"mappings":";;;;AACA,SAASA,YAAT;AACA,SAASC,UAAT;AAEA,SAASC,UAAT;AACA,SAASC,WAAT;AAkBA,OAAO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,OAQ/B;AAAA,MAPtBC,MAOsB,QAPtBA,MAOsB;AAAA,MANtBC,KAMsB,QANtBA,KAMsB;AAAA,MALtBC,MAKsB,QALtBA,MAKsB;AAAA,MAJtBC,QAIsB,QAJtBA,QAIsB;AAAA,MAHtBC,UAGsB,QAHtBA,UAGsB;AAAA,MAFtBC,MAEsB,QAFtBA,MAEsB;AAAA,MADnBC,SACmB;;AACtB,MAAMC,QAAQ,GAAGT,WAAW,EAA5B;AAEA,SACE,oBAAC,UAAD;AACE,IAAA,SAAS,EAAEH,YAAY,CAAC,aAAD,EAAgBY,QAAhB,CADzB;AAEE,IAAA,MAAM,EAAEP,MAFV;AAGE,IAAA,KAAK,EAAEC,KAHT;AAIE,IAAA,UAAU,EAAEG;AAJd,KAMGF,MANH,EAOE,wCACMI,SADN;AAEE,IAAA,GAAG,EAAED,MAFP,CAGE;AAHF;AAIE,IAAA,SAAS,EAAET,UAAU,CAAC,oBAAD,EAAuB;AAC1C,oCAA8B,CAAC,CAACM;AADU,KAAvB;AAJvB,MAQGC,QARH,CAPF,CADF;AAoBD,CA/BM","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { PopoutRoot } from \"../PopoutRoot/PopoutRoot\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport \"./SplitLayout.css\";\n\nexport interface SplitLayoutProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n header?: React.ReactNode;\n}\n\nexport const SplitLayout: React.FC<SplitLayoutProps> = ({\n popout,\n modal,\n header,\n children,\n getRootRef,\n getRef,\n ...restProps\n}: SplitLayoutProps) => {\n const platform = usePlatform();\n\n return (\n <PopoutRoot\n vkuiClass={getClassName(\"SplitLayout\", platform)}\n popout={popout}\n modal={modal}\n getRootRef={getRootRef}\n >\n {header}\n <div\n {...restProps}\n ref={getRef}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"SplitLayout__inner\", {\n \"SplitLayout__inner--header\": !!header,\n })}\n >\n {children}\n </div>\n </PopoutRoot>\n );\n};\n"],"file":"SplitLayout.js"}
@@ -5,7 +5,7 @@ import { createScopedElement } from "../../lib/jsxRuntime";
5
5
  import { usePlatform } from "../../hooks/usePlatform";
6
6
  import { classNames } from "../../lib/classNames";
7
7
  import { getClassName } from "../../helpers/getClassName";
8
- import HorizontalScroll from "../HorizontalScroll/HorizontalScroll";
8
+ import { HorizontalScroll } from "../HorizontalScroll/HorizontalScroll";
9
9
 
10
10
  var defaultScrollToLeft = function defaultScrollToLeft(x) {
11
11
  return x - 240;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SubnavigationBar/SubnavigationBar.tsx"],"names":["usePlatform","classNames","getClassName","HorizontalScroll","defaultScrollToLeft","x","defaultScrollToRight","SubnavigationBar","mode","children","showArrows","getScrollToLeft","getScrollToRight","scrollAnimationDuration","restProps","platform","ScrollWrapper","scrollWrapperProps"],"mappings":";;;;AACA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,OAAOC,gBAAP;;AAkBA,IAAMC,mBAA0C,GAAG,SAA7CA,mBAA6C,CAACC,CAAD;AAAA,SAAOA,CAAC,GAAG,GAAX;AAAA,CAAnD;;AAEA,IAAMC,oBAA2C,GAAG,SAA9CA,oBAA8C,CAACD,CAAD;AAAA,SAAOA,CAAC,GAAG,GAAX;AAAA,CAApD;;AAEA,OAAO,IAAME,gBAAiD,GAAG,SAApDA,gBAAoD,OAQpC;AAAA,uBAP3BC,IAO2B;AAAA,MAP3BA,IAO2B,0BAPpB,UAOoB;AAAA,MAN3BC,QAM2B,QAN3BA,QAM2B;AAAA,6BAL3BC,UAK2B;AAAA,MAL3BA,UAK2B,gCALd,IAKc;AAAA,kCAJ3BC,eAI2B;AAAA,MAJ3BA,eAI2B,qCAJTP,mBAIS;AAAA,mCAH3BQ,gBAG2B;AAAA,MAH3BA,gBAG2B,sCAHRN,oBAGQ;AAAA,MAF3BO,uBAE2B,QAF3BA,uBAE2B;AAAA,MADxBC,SACwB;;AAC3B,MAAMC,QAAQ,GAAGf,WAAW,EAA5B;AAEA,MAAIgB,aAAJ;AACA,MAAIC,kBAAkB,GAAG,EAAzB;;AAEA,MAAIT,IAAI,KAAK,OAAb,EAAsB;AACpBQ,IAAAA,aAAa,GAAG,KAAhB;AACD,GAFD,MAEO;AACLA,IAAAA,aAAa,GAAGb,gBAAhB;AACAc,IAAAA,kBAAkB,GAAG;AACnBP,MAAAA,UAAU,EAAVA,UADmB;AAEnBC,MAAAA,eAAe,EAAfA,eAFmB;AAGnBC,MAAAA,gBAAgB,EAAhBA,gBAHmB;AAInBC,MAAAA,uBAAuB,EAAvBA;AAJmB,KAArB;AAMD;;AAED,SACE,wCACMC,SADN;AAEE,IAAA,SAAS,EAAEb,UAAU,CACnBC,YAAY,CAAC,kBAAD,EAAqBa,QAArB,CADO,8BAEEP,IAFF;AAFvB,MAOE,oBAAC,aAAD;AAAe,IAAA,SAAS,EAAC;AAAzB,KAAoDS,kBAApD,GACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6CR,QAA7C,CADF,CAPF,CADF;AAaD,CAvCM","sourcesContent":["import * as React from \"react\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport HorizontalScroll, {\n HorizontalScrollProps,\n ScrollPositionHandler,\n} from \"../HorizontalScroll/HorizontalScroll\";\nimport \"./SubnavigationBar.css\";\n\nexport interface SubnavigationBarProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<\n HorizontalScrollProps,\n | \"showArrows\"\n | \"getScrollToLeft\"\n | \"getScrollToRight\"\n | \"scrollAnimationDuration\"\n > {\n mode?: \"fixed\" | \"overflow\";\n}\n\nconst defaultScrollToLeft: ScrollPositionHandler = (x) => x - 240;\n\nconst defaultScrollToRight: ScrollPositionHandler = (x) => x + 240;\n\nexport const SubnavigationBar: React.FC<SubnavigationBarProps> = ({\n mode = \"overflow\",\n children,\n showArrows = true,\n getScrollToLeft = defaultScrollToLeft,\n getScrollToRight = defaultScrollToRight,\n scrollAnimationDuration,\n ...restProps\n}: SubnavigationBarProps) => {\n const platform = usePlatform();\n\n let ScrollWrapper: React.ElementType;\n let scrollWrapperProps = {};\n\n if (mode === \"fixed\") {\n ScrollWrapper = \"div\";\n } else {\n ScrollWrapper = HorizontalScroll;\n scrollWrapperProps = {\n showArrows,\n getScrollToLeft,\n getScrollToRight,\n scrollAnimationDuration,\n };\n }\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"SubnavigationBar\", platform),\n `SubnavigationBar--${mode}`\n )}\n >\n <ScrollWrapper vkuiClass=\"SubnavigationBar__in\" {...scrollWrapperProps}>\n <div vkuiClass=\"SubnavigationBar__scrollIn\">{children}</div>\n </ScrollWrapper>\n </div>\n );\n};\n"],"file":"SubnavigationBar.js"}
1
+ {"version":3,"sources":["../../../src/components/SubnavigationBar/SubnavigationBar.tsx"],"names":["usePlatform","classNames","getClassName","HorizontalScroll","defaultScrollToLeft","x","defaultScrollToRight","SubnavigationBar","mode","children","showArrows","getScrollToLeft","getScrollToRight","scrollAnimationDuration","restProps","platform","ScrollWrapper","scrollWrapperProps"],"mappings":";;;;AACA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SACEC,gBADF;;AAmBA,IAAMC,mBAA0C,GAAG,SAA7CA,mBAA6C,CAACC,CAAD;AAAA,SAAOA,CAAC,GAAG,GAAX;AAAA,CAAnD;;AAEA,IAAMC,oBAA2C,GAAG,SAA9CA,oBAA8C,CAACD,CAAD;AAAA,SAAOA,CAAC,GAAG,GAAX;AAAA,CAApD;;AAEA,OAAO,IAAME,gBAAiD,GAAG,SAApDA,gBAAoD,OAQpC;AAAA,uBAP3BC,IAO2B;AAAA,MAP3BA,IAO2B,0BAPpB,UAOoB;AAAA,MAN3BC,QAM2B,QAN3BA,QAM2B;AAAA,6BAL3BC,UAK2B;AAAA,MAL3BA,UAK2B,gCALd,IAKc;AAAA,kCAJ3BC,eAI2B;AAAA,MAJ3BA,eAI2B,qCAJTP,mBAIS;AAAA,mCAH3BQ,gBAG2B;AAAA,MAH3BA,gBAG2B,sCAHRN,oBAGQ;AAAA,MAF3BO,uBAE2B,QAF3BA,uBAE2B;AAAA,MADxBC,SACwB;;AAC3B,MAAMC,QAAQ,GAAGf,WAAW,EAA5B;AAEA,MAAIgB,aAAJ;AACA,MAAIC,kBAAkB,GAAG,EAAzB;;AAEA,MAAIT,IAAI,KAAK,OAAb,EAAsB;AACpBQ,IAAAA,aAAa,GAAG,KAAhB;AACD,GAFD,MAEO;AACLA,IAAAA,aAAa,GAAGb,gBAAhB;AACAc,IAAAA,kBAAkB,GAAG;AACnBP,MAAAA,UAAU,EAAVA,UADmB;AAEnBC,MAAAA,eAAe,EAAfA,eAFmB;AAGnBC,MAAAA,gBAAgB,EAAhBA,gBAHmB;AAInBC,MAAAA,uBAAuB,EAAvBA;AAJmB,KAArB;AAMD;;AAED,SACE,wCACMC,SADN;AAEE,IAAA,SAAS,EAAEb,UAAU,CACnBC,YAAY,CAAC,kBAAD,EAAqBa,QAArB,CADO,8BAEEP,IAFF;AAFvB,MAOE,oBAAC,aAAD;AAAe,IAAA,SAAS,EAAC;AAAzB,KAAoDS,kBAApD,GACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6CR,QAA7C,CADF,CAPF,CADF;AAaD,CAvCM","sourcesContent":["import * as React from \"react\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport {\n HorizontalScroll,\n HorizontalScrollProps,\n ScrollPositionHandler,\n} from \"../HorizontalScroll/HorizontalScroll\";\nimport \"./SubnavigationBar.css\";\n\nexport interface SubnavigationBarProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<\n HorizontalScrollProps,\n | \"showArrows\"\n | \"getScrollToLeft\"\n | \"getScrollToRight\"\n | \"scrollAnimationDuration\"\n > {\n mode?: \"fixed\" | \"overflow\";\n}\n\nconst defaultScrollToLeft: ScrollPositionHandler = (x) => x - 240;\n\nconst defaultScrollToRight: ScrollPositionHandler = (x) => x + 240;\n\nexport const SubnavigationBar: React.FC<SubnavigationBarProps> = ({\n mode = \"overflow\",\n children,\n showArrows = true,\n getScrollToLeft = defaultScrollToLeft,\n getScrollToRight = defaultScrollToRight,\n scrollAnimationDuration,\n ...restProps\n}: SubnavigationBarProps) => {\n const platform = usePlatform();\n\n let ScrollWrapper: React.ElementType;\n let scrollWrapperProps = {};\n\n if (mode === \"fixed\") {\n ScrollWrapper = \"div\";\n } else {\n ScrollWrapper = HorizontalScroll;\n scrollWrapperProps = {\n showArrows,\n getScrollToLeft,\n getScrollToRight,\n scrollAnimationDuration,\n };\n }\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"SubnavigationBar\", platform),\n `SubnavigationBar--${mode}`\n )}\n >\n <ScrollWrapper vkuiClass=\"SubnavigationBar__in\" {...scrollWrapperProps}>\n <div vkuiClass=\"SubnavigationBar__scrollIn\">{children}</div>\n </ScrollWrapper>\n </div>\n );\n};\n"],"file":"SubnavigationBar.js"}
@@ -10,7 +10,7 @@ import Tappable from "../Tappable/Tappable";
10
10
  import { Icon16Dropdown } from "@vkontakte/icons";
11
11
  import { usePlatform } from "../../hooks/usePlatform";
12
12
  import { Caption } from "../Typography/Caption/Caption";
13
- import Subhead from "../Typography/Subhead/Subhead";
13
+ import { Subhead } from "../Typography/Subhead/Subhead";
14
14
 
15
15
  var SubnavigationButtonTypography = function SubnavigationButtonTypography(_ref) {
16
16
  var textLevel = _ref.textLevel,
@@ -39,7 +39,8 @@ export var SubnavigationButton = function SubnavigationButton(props) {
39
39
 
40
40
  return createScopedElement(Tappable, _extends({}, restProps, {
41
41
  hasActive: false,
42
- focusVisibleMode: "outside",
42
+ focusVisibleMode: "outside" // eslint-disable-next-line vkui/no-object-expression-in-arguments
43
+ ,
43
44
  vkuiClass: classNames(getClassName("SubnavigationButton", platform), "SubnavigationButton--".concat(size), {
44
45
  "SubnavigationButton--selected": selected
45
46
  }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"names":["classNames","getClassName","getTitleFromChildren","hasReactNode","Tappable","Icon16Dropdown","usePlatform","Caption","Subhead","SubnavigationButtonTypography","textLevel","restProps","SubnavigationButton","props","platform","size","selected","before","after","expandable","children","defaultProps"],"mappings":";;;;;AAEA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,SAASC,oBAAT,EAA+BC,YAA/B;AACA,OAAOC,QAAP;AACA,SAASC,cAAT,QAA+B,kBAA/B;AACA,SAASC,WAAT;AACA,SAASC,OAAT;AACA,OAAOC,OAAP;;AAwBA,IAAMC,6BAAoE,GAAG,SAAvEA,6BAAuE,OAG1C;AAAA,MAFjCC,SAEiC,QAFjCA,SAEiC;AAAA,MAD9BC,SAC8B;;AACjC,MAAID,SAAS,KAAK,CAAlB,EAAqB;AACnB,WAAO,oBAAC,OAAD,EAAaC,SAAb,CAAP;AACD;;AAED,SAAO,oBAAC,OAAD;AAAS,IAAA,KAAK,EAAED,SAAS,KAAK,CAAd,GAAkB,GAAlB,GAAwB;AAAxC,KAAiDC,SAAjD,EAAP;AACD,CATD;;AAWA,OAAO,IAAMC,mBAAuD,GAAG,SAA1DA,mBAA0D,CACrEC,KADqE,EAElE;AACH,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;;AACA,MACES,IADF,GASIF,KATJ,CACEE,IADF;AAAA,MAEEC,QAFF,GASIH,KATJ,CAEEG,QAFF;AAAA,MAGEN,SAHF,GASIG,KATJ,CAGEH,SAHF;AAAA,MAIEO,MAJF,GASIJ,KATJ,CAIEI,MAJF;AAAA,MAKEC,KALF,GASIL,KATJ,CAKEK,KALF;AAAA,MAMEC,UANF,GASIN,KATJ,CAMEM,UANF;AAAA,MAOEC,QAPF,GASIP,KATJ,CAOEO,QAPF;AAAA,MAQKT,SARL,4BASIE,KATJ;;AAWA,SACE,oBAAC,QAAD,eACMF,SADN;AAEE,IAAA,SAAS,EAAE,KAFb;AAGE,IAAA,gBAAgB,EAAC,SAHnB;AAIE,IAAA,SAAS,EAAEX,UAAU,CACnBC,YAAY,CAAC,qBAAD,EAAwBa,QAAxB,CADO,iCAEKC,IAFL,GAGnB;AACE,uCAAiCC;AADnC,KAHmB,CAJvB;AAWE,kBAAYd,oBAAoB,CAACkB,QAAD;AAXlC,MAaE;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGjB,YAAY,CAACc,MAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA+CA,MAA/C,CAFJ,EAIE,oBAAC,6BAAD;AACE,IAAA,SAAS,EAAEP,SADb;AAEE,IAAA,SAAS,EAAC,4BAFZ;AAGE,IAAA,SAAS,EAAC;AAHZ,KAKGU,QALH,CAJF,EAWGjB,YAAY,CAACe,KAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA8CA,KAA9C,CAZJ,EAcGC,UAAU,IACT,oBAAC,cAAD;AAAgB,IAAA,SAAS,EAAC;AAA1B,IAfJ,CAbF,CADF;AAkCD,CAjDM;AAmDPP,mBAAmB,CAACS,YAApB,GAAmC;AACjCN,EAAAA,IAAI,EAAE,GAD2B;AAEjCL,EAAAA,SAAS,EAAE;AAFsB,CAAnC","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { getTitleFromChildren, hasReactNode } from \"../../lib/utils\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { Icon16Dropdown } from \"@vkontakte/icons\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport \"./SubnavigationButton.css\";\n\nexport interface SubnavigationButtonProps extends Omit<TappableProps, \"size\"> {\n size?: \"m\" | \"l\";\n selected?: boolean;\n /**\n * Размер шрифта. Этим свойством рекомендуется пользоваться, чтобы отрегулировать размер шрифта у кнопок в `<SubnavigationBar mode=\"fixed\" />`\n */\n textLevel?: 1 | 2 | 3;\n /**\n * Рекомендуется использовать только иконки с размером 24\n */\n before?: React.ReactNode;\n /**\n * Рекомендуется использовать только `<Counter size=\"s\" />` или `<Badge />`\n */\n after?: React.ReactNode;\n expandable?: boolean;\n}\n\ntype SubnavButtonTypographyProps = Pick<SubnavigationButtonProps, \"textLevel\"> &\n HasComponent;\n\nconst SubnavigationButtonTypography: React.FC<SubnavButtonTypographyProps> = ({\n textLevel,\n ...restProps\n}: SubnavButtonTypographyProps) => {\n if (textLevel === 1) {\n return <Subhead {...restProps} />;\n }\n\n return <Caption level={textLevel === 2 ? \"1\" : \"2\"} {...restProps} />;\n};\n\nexport const SubnavigationButton: React.FC<SubnavigationButtonProps> = (\n props: SubnavigationButtonProps\n) => {\n const platform = usePlatform();\n const {\n size,\n selected,\n textLevel,\n before,\n after,\n expandable,\n children,\n ...restProps\n } = props;\n\n return (\n <Tappable\n {...restProps}\n hasActive={false}\n focusVisibleMode=\"outside\"\n vkuiClass={classNames(\n getClassName(\"SubnavigationButton\", platform),\n `SubnavigationButton--${size}`,\n {\n \"SubnavigationButton--selected\": selected,\n }\n )}\n aria-label={getTitleFromChildren(children)}\n >\n <span vkuiClass=\"SubnavigationButton__in\">\n {hasReactNode(before) && (\n <span vkuiClass=\"SubnavigationButton__before\">{before}</span>\n )}\n <SubnavigationButtonTypography\n textLevel={textLevel}\n vkuiClass=\"SubnavigationButton__label\"\n Component=\"span\"\n >\n {children}\n </SubnavigationButtonTypography>\n {hasReactNode(after) && (\n <span vkuiClass=\"SubnavigationButton__after\">{after}</span>\n )}\n {expandable && (\n <Icon16Dropdown vkuiClass=\"SubnavigationButton__expandableIcon\" />\n )}\n </span>\n </Tappable>\n );\n};\n\nSubnavigationButton.defaultProps = {\n size: \"m\",\n textLevel: 1,\n};\n"],"file":"SubnavigationButton.js"}
1
+ {"version":3,"sources":["../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"names":["classNames","getClassName","getTitleFromChildren","hasReactNode","Tappable","Icon16Dropdown","usePlatform","Caption","Subhead","SubnavigationButtonTypography","textLevel","restProps","SubnavigationButton","props","platform","size","selected","before","after","expandable","children","defaultProps"],"mappings":";;;;;AAEA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,SAASC,oBAAT,EAA+BC,YAA/B;AACA,OAAOC,QAAP;AACA,SAASC,cAAT,QAA+B,kBAA/B;AACA,SAASC,WAAT;AACA,SAASC,OAAT;AACA,SAASC,OAAT;;AAwBA,IAAMC,6BAAoE,GAAG,SAAvEA,6BAAuE,OAG1C;AAAA,MAFjCC,SAEiC,QAFjCA,SAEiC;AAAA,MAD9BC,SAC8B;;AACjC,MAAID,SAAS,KAAK,CAAlB,EAAqB;AACnB,WAAO,oBAAC,OAAD,EAAaC,SAAb,CAAP;AACD;;AAED,SAAO,oBAAC,OAAD;AAAS,IAAA,KAAK,EAAED,SAAS,KAAK,CAAd,GAAkB,GAAlB,GAAwB;AAAxC,KAAiDC,SAAjD,EAAP;AACD,CATD;;AAWA,OAAO,IAAMC,mBAAuD,GAAG,SAA1DA,mBAA0D,CACrEC,KADqE,EAElE;AACH,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;;AACA,MACES,IADF,GASIF,KATJ,CACEE,IADF;AAAA,MAEEC,QAFF,GASIH,KATJ,CAEEG,QAFF;AAAA,MAGEN,SAHF,GASIG,KATJ,CAGEH,SAHF;AAAA,MAIEO,MAJF,GASIJ,KATJ,CAIEI,MAJF;AAAA,MAKEC,KALF,GASIL,KATJ,CAKEK,KALF;AAAA,MAMEC,UANF,GASIN,KATJ,CAMEM,UANF;AAAA,MAOEC,QAPF,GASIP,KATJ,CAOEO,QAPF;AAAA,MAQKT,SARL,4BASIE,KATJ;;AAWA,SACE,oBAAC,QAAD,eACMF,SADN;AAEE,IAAA,SAAS,EAAE,KAFb;AAGE,IAAA,gBAAgB,EAAC,SAHnB,CAIE;AAJF;AAKE,IAAA,SAAS,EAAEX,UAAU,CACnBC,YAAY,CAAC,qBAAD,EAAwBa,QAAxB,CADO,iCAEKC,IAFL,GAGnB;AACE,uCAAiCC;AADnC,KAHmB,CALvB;AAYE,kBAAYd,oBAAoB,CAACkB,QAAD;AAZlC,MAcE;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGjB,YAAY,CAACc,MAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA+CA,MAA/C,CAFJ,EAIE,oBAAC,6BAAD;AACE,IAAA,SAAS,EAAEP,SADb;AAEE,IAAA,SAAS,EAAC,4BAFZ;AAGE,IAAA,SAAS,EAAC;AAHZ,KAKGU,QALH,CAJF,EAWGjB,YAAY,CAACe,KAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA8CA,KAA9C,CAZJ,EAcGC,UAAU,IACT,oBAAC,cAAD;AAAgB,IAAA,SAAS,EAAC;AAA1B,IAfJ,CAdF,CADF;AAmCD,CAlDM;AAoDPP,mBAAmB,CAACS,YAApB,GAAmC;AACjCN,EAAAA,IAAI,EAAE,GAD2B;AAEjCL,EAAAA,SAAS,EAAE;AAFsB,CAAnC","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { getTitleFromChildren, hasReactNode } from \"../../lib/utils\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { Icon16Dropdown } from \"@vkontakte/icons\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport \"./SubnavigationButton.css\";\n\nexport interface SubnavigationButtonProps extends Omit<TappableProps, \"size\"> {\n size?: \"m\" | \"l\";\n selected?: boolean;\n /**\n * Размер шрифта. Этим свойством рекомендуется пользоваться, чтобы отрегулировать размер шрифта у кнопок в `<SubnavigationBar mode=\"fixed\" />`\n */\n textLevel?: 1 | 2 | 3;\n /**\n * Рекомендуется использовать только иконки с размером 24\n */\n before?: React.ReactNode;\n /**\n * Рекомендуется использовать только `<Counter size=\"s\" />` или `<Badge />`\n */\n after?: React.ReactNode;\n expandable?: boolean;\n}\n\ntype SubnavButtonTypographyProps = Pick<SubnavigationButtonProps, \"textLevel\"> &\n HasComponent;\n\nconst SubnavigationButtonTypography: React.FC<SubnavButtonTypographyProps> = ({\n textLevel,\n ...restProps\n}: SubnavButtonTypographyProps) => {\n if (textLevel === 1) {\n return <Subhead {...restProps} />;\n }\n\n return <Caption level={textLevel === 2 ? \"1\" : \"2\"} {...restProps} />;\n};\n\nexport const SubnavigationButton: React.FC<SubnavigationButtonProps> = (\n props: SubnavigationButtonProps\n) => {\n const platform = usePlatform();\n const {\n size,\n selected,\n textLevel,\n before,\n after,\n expandable,\n children,\n ...restProps\n } = props;\n\n return (\n <Tappable\n {...restProps}\n hasActive={false}\n focusVisibleMode=\"outside\"\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"SubnavigationButton\", platform),\n `SubnavigationButton--${size}`,\n {\n \"SubnavigationButton--selected\": selected,\n }\n )}\n aria-label={getTitleFromChildren(children)}\n >\n <span vkuiClass=\"SubnavigationButton__in\">\n {hasReactNode(before) && (\n <span vkuiClass=\"SubnavigationButton__before\">{before}</span>\n )}\n <SubnavigationButtonTypography\n textLevel={textLevel}\n vkuiClass=\"SubnavigationButton__label\"\n Component=\"span\"\n >\n {children}\n </SubnavigationButtonTypography>\n {hasReactNode(after) && (\n <span vkuiClass=\"SubnavigationButton__after\">{after}</span>\n )}\n {expandable && (\n <Icon16Dropdown vkuiClass=\"SubnavigationButton__expandableIcon\" />\n )}\n </span>\n </Tappable>\n );\n};\n\nSubnavigationButton.defaultProps = {\n size: \"m\",\n textLevel: 1,\n};\n"],"file":"SubnavigationButton.js"}
@@ -27,6 +27,7 @@ export var Switch = function Switch(_ref) {
27
27
  onFocus = _useFocusVisible.onFocus;
28
28
 
29
29
  return createScopedElement("label", {
30
+ // eslint-disable-next-line vkui/no-object-expression-in-arguments
30
31
  vkuiClass: classNames(getClassName("Switch", platform), "Switch--sizeY-".concat(sizeY), {
31
32
  "Switch--disabled": restProps.disabled,
32
33
  "Switch--focus-visible": focusVisible
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Switch/Switch.tsx"],"names":["getClassName","classNames","callMultiple","usePlatform","useAdaptivity","VisuallyHiddenInput","useFocusVisible","FocusVisible","Switch","style","className","getRootRef","restProps","platform","sizeY","focusVisible","onBlur","onFocus","disabled"],"mappings":";;;;AACA,SAASA,YAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AAEA,SAASC,aAAT;AACA,SACEC,mBADF;AAIA,SAASC,eAAT;AACA,SAASC,YAAT;AAOA,OAAO,IAAMC,MAA6B,GAAG,SAAhCA,MAAgC,OAK1B;AAAA,MAJjBC,KAIiB,QAJjBA,KAIiB;AAAA,MAHjBC,SAGiB,QAHjBA,SAGiB;AAAA,MAFjBC,UAEiB,QAFjBA,UAEiB;AAAA,MADdC,SACc;;AACjB,MAAMC,QAAQ,GAAGV,WAAW,EAA5B;;AACA,uBAAkBC,aAAa,EAA/B;AAAA,MAAQU,KAAR,kBAAQA,KAAR;;AACA,yBAA0CR,eAAe,EAAzD;AAAA,MAAQS,YAAR,oBAAQA,YAAR;AAAA,MAAsBC,MAAtB,oBAAsBA,MAAtB;AAAA,MAA8BC,OAA9B,oBAA8BA,OAA9B;;AAEA,SACE;AACE,IAAA,SAAS,EAAEhB,UAAU,CACnBD,YAAY,CAAC,QAAD,EAAWa,QAAX,CADO,0BAEFC,KAFE,GAGnB;AACE,0BAAoBF,SAAS,CAACM,QADhC;AAEE,+BAAyBH;AAF3B,KAHmB,CADvB;AASE,IAAA,SAAS,EAAEL,SATb;AAUE,IAAA,KAAK,EAAED,KAVT;AAWE,IAAA,GAAG,EAAEE,UAXP;AAYE,IAAA,IAAI,EAAC;AAZP,KAcE,oBAAC,mBAAD,eACMC,SADN;AAEE,IAAA,IAAI,EAAC,UAFP;AAGE,IAAA,SAAS,EAAC,cAHZ;AAIE,IAAA,MAAM,EAAEV,YAAY,CAACc,MAAD,EAASJ,SAAS,CAACI,MAAnB,CAJtB;AAKE,IAAA,OAAO,EAAEd,YAAY,CAACe,OAAD,EAAUL,SAAS,CAACK,OAApB;AALvB,KAdF,EAqBE;AAAM,IAAA,IAAI,EAAC,cAAX;AAA0B,IAAA,SAAS,EAAC;AAApC,IArBF,EAsBE,oBAAC,YAAD;AAAc,IAAA,IAAI,EAAC;AAAnB,IAtBF,CADF;AA0BD,CApCM","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { callMultiple } from \"../../lib/callMultiple\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { HasRootRef } from \"../../types\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport {\n VisuallyHiddenInput,\n VisuallyHiddenInputProps,\n} from \"../VisuallyHiddenInput/VisuallyHiddenInput\";\nimport { useFocusVisible } from \"../../hooks/useFocusVisible\";\nimport { FocusVisible } from \"../FocusVisible/FocusVisible\";\nimport \"./Switch.css\";\n\nexport interface SwitchProps\n extends VisuallyHiddenInputProps,\n HasRootRef<HTMLLabelElement> {}\n\nexport const Switch: React.FC<SwitchProps> = ({\n style,\n className,\n getRootRef,\n ...restProps\n}: SwitchProps) => {\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n\n return (\n <label\n vkuiClass={classNames(\n getClassName(\"Switch\", platform),\n `Switch--sizeY-${sizeY}`,\n {\n \"Switch--disabled\": restProps.disabled,\n \"Switch--focus-visible\": focusVisible,\n }\n )}\n className={className}\n style={style}\n ref={getRootRef}\n role=\"presentation\"\n >\n <VisuallyHiddenInput\n {...restProps}\n type=\"checkbox\"\n vkuiClass=\"Switch__self\"\n onBlur={callMultiple(onBlur, restProps.onBlur)}\n onFocus={callMultiple(onFocus, restProps.onFocus)}\n />\n <span role=\"presentation\" vkuiClass=\"Switch__pseudo\" />\n <FocusVisible mode=\"outside\" />\n </label>\n );\n};\n"],"file":"Switch.js"}
1
+ {"version":3,"sources":["../../../src/components/Switch/Switch.tsx"],"names":["getClassName","classNames","callMultiple","usePlatform","useAdaptivity","VisuallyHiddenInput","useFocusVisible","FocusVisible","Switch","style","className","getRootRef","restProps","platform","sizeY","focusVisible","onBlur","onFocus","disabled"],"mappings":";;;;AACA,SAASA,YAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AAEA,SAASC,aAAT;AACA,SACEC,mBADF;AAIA,SAASC,eAAT;AACA,SAASC,YAAT;AAOA,OAAO,IAAMC,MAA6B,GAAG,SAAhCA,MAAgC,OAK1B;AAAA,MAJjBC,KAIiB,QAJjBA,KAIiB;AAAA,MAHjBC,SAGiB,QAHjBA,SAGiB;AAAA,MAFjBC,UAEiB,QAFjBA,UAEiB;AAAA,MADdC,SACc;;AACjB,MAAMC,QAAQ,GAAGV,WAAW,EAA5B;;AACA,uBAAkBC,aAAa,EAA/B;AAAA,MAAQU,KAAR,kBAAQA,KAAR;;AACA,yBAA0CR,eAAe,EAAzD;AAAA,MAAQS,YAAR,oBAAQA,YAAR;AAAA,MAAsBC,MAAtB,oBAAsBA,MAAtB;AAAA,MAA8BC,OAA9B,oBAA8BA,OAA9B;;AAEA,SACE;AACE;AACA,IAAA,SAAS,EAAEhB,UAAU,CACnBD,YAAY,CAAC,QAAD,EAAWa,QAAX,CADO,0BAEFC,KAFE,GAGnB;AACE,0BAAoBF,SAAS,CAACM,QADhC;AAEE,+BAAyBH;AAF3B,KAHmB,CAFvB;AAUE,IAAA,SAAS,EAAEL,SAVb;AAWE,IAAA,KAAK,EAAED,KAXT;AAYE,IAAA,GAAG,EAAEE,UAZP;AAaE,IAAA,IAAI,EAAC;AAbP,KAeE,oBAAC,mBAAD,eACMC,SADN;AAEE,IAAA,IAAI,EAAC,UAFP;AAGE,IAAA,SAAS,EAAC,cAHZ;AAIE,IAAA,MAAM,EAAEV,YAAY,CAACc,MAAD,EAASJ,SAAS,CAACI,MAAnB,CAJtB;AAKE,IAAA,OAAO,EAAEd,YAAY,CAACe,OAAD,EAAUL,SAAS,CAACK,OAApB;AALvB,KAfF,EAsBE;AAAM,IAAA,IAAI,EAAC,cAAX;AAA0B,IAAA,SAAS,EAAC;AAApC,IAtBF,EAuBE,oBAAC,YAAD;AAAc,IAAA,IAAI,EAAC;AAAnB,IAvBF,CADF;AA2BD,CArCM","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { callMultiple } from \"../../lib/callMultiple\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { HasRootRef } from \"../../types\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport {\n VisuallyHiddenInput,\n VisuallyHiddenInputProps,\n} from \"../VisuallyHiddenInput/VisuallyHiddenInput\";\nimport { useFocusVisible } from \"../../hooks/useFocusVisible\";\nimport { FocusVisible } from \"../FocusVisible/FocusVisible\";\nimport \"./Switch.css\";\n\nexport interface SwitchProps\n extends VisuallyHiddenInputProps,\n HasRootRef<HTMLLabelElement> {}\n\nexport const Switch: React.FC<SwitchProps> = ({\n style,\n className,\n getRootRef,\n ...restProps\n}: SwitchProps) => {\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n\n return (\n <label\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"Switch\", platform),\n `Switch--sizeY-${sizeY}`,\n {\n \"Switch--disabled\": restProps.disabled,\n \"Switch--focus-visible\": focusVisible,\n }\n )}\n className={className}\n style={style}\n ref={getRootRef}\n role=\"presentation\"\n >\n <VisuallyHiddenInput\n {...restProps}\n type=\"checkbox\"\n vkuiClass=\"Switch__self\"\n onBlur={callMultiple(onBlur, restProps.onBlur)}\n onFocus={callMultiple(onFocus, restProps.onFocus)}\n />\n <span role=\"presentation\" vkuiClass=\"Switch__pseudo\" />\n <FocusVisible mode=\"outside\" />\n </label>\n );\n};\n"],"file":"Switch.js"}
@@ -27,6 +27,7 @@ var Tabbar = function Tabbar(props) {
27
27
  };
28
28
 
29
29
  return createScopedElement("div", _extends({
30
+ // eslint-disable-next-line vkui/no-object-expression-in-arguments
30
31
  vkuiClass: classNames(getClassName("Tabbar", platform), "Tabbar--l-".concat(getItemsLayout()), {
31
32
  "Tabbar--shadow": shadow
32
33
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Tabbar/Tabbar.tsx"],"names":["React","getClassName","classNames","usePlatform","Tabbar","props","children","shadow","itemsLayout","restProps","platform","getItemsLayout","Children","count","defaultProps"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AACA,SAASC,WAAT;;AAWA,IAAMC,MAA4C,GAAG,SAA/CA,MAA+C,CAACC,KAAD,EAAwB;AAC3E,MAAQC,QAAR,GAAwDD,KAAxD,CAAQC,QAAR;AAAA,MAAkBC,MAAlB,GAAwDF,KAAxD,CAAkBE,MAAlB;AAAA,MAA0BC,WAA1B,GAAwDH,KAAxD,CAA0BG,WAA1B;AAAA,MAA0CC,SAA1C,4BAAwDJ,KAAxD;;AACA,MAAMK,QAAQ,GAAGP,WAAW,EAA5B;;AAEA,MAAMQ,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3B,YAAQH,WAAR;AACE,WAAK,YAAL;AACA,WAAK,UAAL;AACE,eAAOA,WAAP;;AACF;AACE,eAAOR,KAAK,CAACY,QAAN,CAAeC,KAAf,CAAqBP,QAArB,IAAiC,CAAjC,GAAqC,UAArC,GAAkD,YAAzD;AALJ;AAOD,GARD;;AAUA,SACE;AACE,IAAA,SAAS,EAAEJ,UAAU,CACnBD,YAAY,CAAC,QAAD,EAAWS,QAAX,CADO,sBAENC,cAAc,EAFR,GAGnB;AACE,wBAAkBJ;AADpB,KAHmB;AADvB,KAQME,SARN,GAUE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6BH,QAA7B,CAVF,CADF;AAcD,CA5BD;;AA8BAF,MAAM,CAACU,YAAP,GAAsB;AACpBP,EAAAA,MAAM,EAAE;AADY,CAAtB,C,CAIA;;AACA,eAAeH,MAAf","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport \"./Tabbar.css\";\n\nexport interface TabbarProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Флаг для показа/скрытия верхней тени (Android) или границы (iOS)\n */\n shadow?: boolean;\n itemsLayout?: \"vertical\" | \"horizontal\" | \"auto\";\n}\n\nconst Tabbar: React.FunctionComponent<TabbarProps> = (props: TabbarProps) => {\n const { children, shadow, itemsLayout, ...restProps } = props;\n const platform = usePlatform();\n\n const getItemsLayout = () => {\n switch (itemsLayout) {\n case \"horizontal\":\n case \"vertical\":\n return itemsLayout;\n default:\n return React.Children.count(children) > 2 ? \"vertical\" : \"horizontal\";\n }\n };\n\n return (\n <div\n vkuiClass={classNames(\n getClassName(\"Tabbar\", platform),\n `Tabbar--l-${getItemsLayout()}`,\n {\n \"Tabbar--shadow\": shadow,\n }\n )}\n {...restProps}\n >\n <div vkuiClass=\"Tabbar__in\">{children}</div>\n </div>\n );\n};\n\nTabbar.defaultProps = {\n shadow: true,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Tabbar;\n"],"file":"Tabbar.js"}
1
+ {"version":3,"sources":["../../../src/components/Tabbar/Tabbar.tsx"],"names":["React","getClassName","classNames","usePlatform","Tabbar","props","children","shadow","itemsLayout","restProps","platform","getItemsLayout","Children","count","defaultProps"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AACA,SAASC,WAAT;;AAWA,IAAMC,MAA4C,GAAG,SAA/CA,MAA+C,CAACC,KAAD,EAAwB;AAC3E,MAAQC,QAAR,GAAwDD,KAAxD,CAAQC,QAAR;AAAA,MAAkBC,MAAlB,GAAwDF,KAAxD,CAAkBE,MAAlB;AAAA,MAA0BC,WAA1B,GAAwDH,KAAxD,CAA0BG,WAA1B;AAAA,MAA0CC,SAA1C,4BAAwDJ,KAAxD;;AACA,MAAMK,QAAQ,GAAGP,WAAW,EAA5B;;AAEA,MAAMQ,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3B,YAAQH,WAAR;AACE,WAAK,YAAL;AACA,WAAK,UAAL;AACE,eAAOA,WAAP;;AACF;AACE,eAAOR,KAAK,CAACY,QAAN,CAAeC,KAAf,CAAqBP,QAArB,IAAiC,CAAjC,GAAqC,UAArC,GAAkD,YAAzD;AALJ;AAOD,GARD;;AAUA,SACE;AACE;AACA,IAAA,SAAS,EAAEJ,UAAU,CACnBD,YAAY,CAAC,QAAD,EAAWS,QAAX,CADO,sBAENC,cAAc,EAFR,GAGnB;AACE,wBAAkBJ;AADpB,KAHmB;AAFvB,KASME,SATN,GAWE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6BH,QAA7B,CAXF,CADF;AAeD,CA7BD;;AA+BAF,MAAM,CAACU,YAAP,GAAsB;AACpBP,EAAAA,MAAM,EAAE;AADY,CAAtB,C,CAIA;;AACA,eAAeH,MAAf","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport \"./Tabbar.css\";\n\nexport interface TabbarProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Флаг для показа/скрытия верхней тени (Android) или границы (iOS)\n */\n shadow?: boolean;\n itemsLayout?: \"vertical\" | \"horizontal\" | \"auto\";\n}\n\nconst Tabbar: React.FunctionComponent<TabbarProps> = (props: TabbarProps) => {\n const { children, shadow, itemsLayout, ...restProps } = props;\n const platform = usePlatform();\n\n const getItemsLayout = () => {\n switch (itemsLayout) {\n case \"horizontal\":\n case \"vertical\":\n return itemsLayout;\n default:\n return React.Children.count(children) > 2 ? \"vertical\" : \"horizontal\";\n }\n };\n\n return (\n <div\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"Tabbar\", platform),\n `Tabbar--l-${getItemsLayout()}`,\n {\n \"Tabbar--shadow\": shadow,\n }\n )}\n {...restProps}\n >\n <div vkuiClass=\"Tabbar__in\">{children}</div>\n </div>\n );\n};\n\nTabbar.defaultProps = {\n shadow: true,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Tabbar;\n"],"file":"Tabbar.js"}
@@ -32,7 +32,8 @@ var TabbarItem = function TabbarItem(_ref) {
32
32
 
33
33
  return createScopedElement(Component, _extends({}, restProps, {
34
34
  disabled: disabled,
35
- href: href,
35
+ href: href // eslint-disable-next-line vkui/no-object-expression-in-arguments
36
+ ,
36
37
  vkuiClass: classNames(getClassName("TabbarItem", platform), {
37
38
  "TabbarItem--selected": selected,
38
39
  "TabbarItem--text": !!text
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/TabbarItem/TabbarItem.tsx"],"names":["getClassName","Counter","classNames","usePlatform","hasReactNode","Tappable","Platform","warnOnce","warn","TabbarItem","children","selected","label","indicator","text","href","Component","disabled","restProps","platform","process","env","NODE_ENV","IOS"],"mappings":";;;;AACA,SAASA,YAAT;AACA,OAAOC,OAAP;AACA,SAASC,UAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,OAAOC,QAAP;AACA,SAASC,QAAT;AAEA,SAASC,QAAT;AAsBA,IAAMC,IAAI,GAAGD,QAAQ,CAAC,YAAD,CAArB;;AACA,IAAME,UAAoD,GAAG,SAAvDA,UAAuD,OAUtC;AAAA,MATrBC,QASqB,QATrBA,QASqB;AAAA,MARrBC,QAQqB,QARrBA,QAQqB;AAAA,MAPrBC,KAOqB,QAPrBA,KAOqB;AAAA,MANrBC,SAMqB,QANrBA,SAMqB;AAAA,MALrBC,IAKqB,QALrBA,IAKqB;AAAA,MAJrBC,IAIqB,QAJrBA,IAIqB;AAAA,4BAHrBC,SAGqB;AAAA,MAHrBA,SAGqB,+BAHTD,IAAI,GAAG,GAAH,GAAS,QAGJ;AAAA,MAFrBE,QAEqB,QAFrBA,QAEqB;AAAA,MADlBC,SACkB;;AACrB,MAAMC,QAAQ,GAAGhB,WAAW,EAA5B;;AAEA,MAAIS,KAAK,IAAIQ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAtC,EAAqD;AACnDd,IAAAA,IAAI,CACF,yEADE,CAAJ;AAGD;;AAED,SACE,oBAAC,SAAD,eACMU,SADN;AAEE,IAAA,QAAQ,EAAED,QAFZ;AAGE,IAAA,IAAI,EAAEF,IAHR;AAIE,IAAA,SAAS,EAAEb,UAAU,CAACF,YAAY,CAAC,YAAD,EAAemB,QAAf,CAAb,EAAuC;AAC1D,8BAAwBR,QADkC;AAE1D,0BAAoB,CAAC,CAACG;AAFoC,KAAvC;AAJvB,MASE,oBAAC,QAAD;AACE,IAAA,IAAI,EAAC,cADP;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,QAAQ,EAAEG,QAHZ;AAIE,IAAA,UAAU,EACRE,QAAQ,KAAKb,QAAQ,CAACiB,GAAtB,GACI,8BADJ,GAEI,YAPR;AASE,IAAA,iBAAiB,EAAEJ,QAAQ,KAAKb,QAAQ,CAACiB,GAAtB,GAA4B,CAA5B,GAAgC,GATrD;AAUE,IAAA,QAAQ,EAAE,KAVZ;AAWE,IAAA,SAAS,EAAC;AAXZ,IATF,EAsBE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGb,QADH,EAEE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGN,YAAY,CAACS,SAAD,CAAZ,IAA2BA,SAD9B,EAEG,CAACA,SAAD,IAAcD,KAAd,IACC,oBAAC,OAAD;AAAS,IAAA,IAAI,EAAC,GAAd;AAAkB,IAAA,IAAI,EAAC;AAAvB,KACGA,KADH,CAHJ,CAFF,CADF,EAYGE,IAAI,IAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAmCA,IAAnC,CAZX,CAtBF,CADF;AAuCD,CA1DD,C,CA4DA;;;AACA,eAAeL,UAAf","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Counter from \"../Counter/Counter\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { Platform } from \"../../lib/platform\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./TabbarItem.css\";\n\nexport interface TabbarItemProps\n extends Omit<React.AllHTMLAttributes<HTMLElement>, \"label\">, // TODO убрать Omit после удаления свойства label\n HasRootRef<HTMLElement>,\n HasComponent {\n selected?: boolean;\n /**\n * Тест рядом с иконкой\n */\n text?: React.ReactNode;\n /**\n * Индикатор над иконкой. Принимает `<Badge mode=\"prominent\" />` или `<Counter size=\"s\" mode=\"prominent\" />`\n */\n indicator?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте `indicator`\n */\n label?: React.ReactNode;\n}\n\nconst warn = warnOnce(\"TabbarItem\");\nconst TabbarItem: React.FunctionComponent<TabbarItemProps> = ({\n children,\n selected,\n label,\n indicator,\n text,\n href,\n Component = href ? \"a\" : \"button\",\n disabled,\n ...restProps\n}: TabbarItemProps) => {\n const platform = usePlatform();\n\n if (label && process.env.NODE_ENV === \"development\") {\n warn(\n \"Свойство label устарело и будет удалено в 5.0.0. Используйте indicator.\"\n );\n }\n\n return (\n <Component\n {...restProps}\n disabled={disabled}\n href={href}\n vkuiClass={classNames(getClassName(\"TabbarItem\", platform), {\n \"TabbarItem--selected\": selected,\n \"TabbarItem--text\": !!text,\n })}\n >\n <Tappable\n role=\"presentation\"\n Component=\"div\"\n disabled={disabled}\n activeMode={\n platform === Platform.IOS\n ? \"TabbarItem__tappable--active\"\n : \"background\"\n }\n activeEffectDelay={platform === Platform.IOS ? 0 : 300}\n hasHover={false}\n vkuiClass=\"TabbarItem__tappable\"\n />\n <div vkuiClass=\"TabbarItem__in\">\n <div vkuiClass=\"TabbarItem__icon\">\n {children}\n <div vkuiClass=\"TabbarItem__label\">\n {hasReactNode(indicator) && indicator}\n {!indicator && label && (\n <Counter size=\"s\" mode=\"prominent\">\n {label}\n </Counter>\n )}\n </div>\n </div>\n {text && <div vkuiClass=\"TabbarItem__text\">{text}</div>}\n </div>\n </Component>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default TabbarItem;\n"],"file":"TabbarItem.js"}
1
+ {"version":3,"sources":["../../../src/components/TabbarItem/TabbarItem.tsx"],"names":["getClassName","Counter","classNames","usePlatform","hasReactNode","Tappable","Platform","warnOnce","warn","TabbarItem","children","selected","label","indicator","text","href","Component","disabled","restProps","platform","process","env","NODE_ENV","IOS"],"mappings":";;;;AACA,SAASA,YAAT;AACA,OAAOC,OAAP;AACA,SAASC,UAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,OAAOC,QAAP;AACA,SAASC,QAAT;AAEA,SAASC,QAAT;AAsBA,IAAMC,IAAI,GAAGD,QAAQ,CAAC,YAAD,CAArB;;AACA,IAAME,UAAoD,GAAG,SAAvDA,UAAuD,OAUtC;AAAA,MATrBC,QASqB,QATrBA,QASqB;AAAA,MARrBC,QAQqB,QARrBA,QAQqB;AAAA,MAPrBC,KAOqB,QAPrBA,KAOqB;AAAA,MANrBC,SAMqB,QANrBA,SAMqB;AAAA,MALrBC,IAKqB,QALrBA,IAKqB;AAAA,MAJrBC,IAIqB,QAJrBA,IAIqB;AAAA,4BAHrBC,SAGqB;AAAA,MAHrBA,SAGqB,+BAHTD,IAAI,GAAG,GAAH,GAAS,QAGJ;AAAA,MAFrBE,QAEqB,QAFrBA,QAEqB;AAAA,MADlBC,SACkB;;AACrB,MAAMC,QAAQ,GAAGhB,WAAW,EAA5B;;AAEA,MAAIS,KAAK,IAAIQ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAtC,EAAqD;AACnDd,IAAAA,IAAI,CACF,yEADE,CAAJ;AAGD;;AAED,SACE,oBAAC,SAAD,eACMU,SADN;AAEE,IAAA,QAAQ,EAAED,QAFZ;AAGE,IAAA,IAAI,EAAEF,IAHR,CAIE;AAJF;AAKE,IAAA,SAAS,EAAEb,UAAU,CAACF,YAAY,CAAC,YAAD,EAAemB,QAAf,CAAb,EAAuC;AAC1D,8BAAwBR,QADkC;AAE1D,0BAAoB,CAAC,CAACG;AAFoC,KAAvC;AALvB,MAUE,oBAAC,QAAD;AACE,IAAA,IAAI,EAAC,cADP;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,QAAQ,EAAEG,QAHZ;AAIE,IAAA,UAAU,EACRE,QAAQ,KAAKb,QAAQ,CAACiB,GAAtB,GACI,8BADJ,GAEI,YAPR;AASE,IAAA,iBAAiB,EAAEJ,QAAQ,KAAKb,QAAQ,CAACiB,GAAtB,GAA4B,CAA5B,GAAgC,GATrD;AAUE,IAAA,QAAQ,EAAE,KAVZ;AAWE,IAAA,SAAS,EAAC;AAXZ,IAVF,EAuBE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGb,QADH,EAEE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGN,YAAY,CAACS,SAAD,CAAZ,IAA2BA,SAD9B,EAEG,CAACA,SAAD,IAAcD,KAAd,IACC,oBAAC,OAAD;AAAS,IAAA,IAAI,EAAC,GAAd;AAAkB,IAAA,IAAI,EAAC;AAAvB,KACGA,KADH,CAHJ,CAFF,CADF,EAYGE,IAAI,IAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAmCA,IAAnC,CAZX,CAvBF,CADF;AAwCD,CA3DD,C,CA6DA;;;AACA,eAAeL,UAAf","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Counter from \"../Counter/Counter\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { Platform } from \"../../lib/platform\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./TabbarItem.css\";\n\nexport interface TabbarItemProps\n extends Omit<React.AllHTMLAttributes<HTMLElement>, \"label\">, // TODO убрать Omit после удаления свойства label\n HasRootRef<HTMLElement>,\n HasComponent {\n selected?: boolean;\n /**\n * Тест рядом с иконкой\n */\n text?: React.ReactNode;\n /**\n * Индикатор над иконкой. Принимает `<Badge mode=\"prominent\" />` или `<Counter size=\"s\" mode=\"prominent\" />`\n */\n indicator?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте `indicator`\n */\n label?: React.ReactNode;\n}\n\nconst warn = warnOnce(\"TabbarItem\");\nconst TabbarItem: React.FunctionComponent<TabbarItemProps> = ({\n children,\n selected,\n label,\n indicator,\n text,\n href,\n Component = href ? \"a\" : \"button\",\n disabled,\n ...restProps\n}: TabbarItemProps) => {\n const platform = usePlatform();\n\n if (label && process.env.NODE_ENV === \"development\") {\n warn(\n \"Свойство label устарело и будет удалено в 5.0.0. Используйте indicator.\"\n );\n }\n\n return (\n <Component\n {...restProps}\n disabled={disabled}\n href={href}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"TabbarItem\", platform), {\n \"TabbarItem--selected\": selected,\n \"TabbarItem--text\": !!text,\n })}\n >\n <Tappable\n role=\"presentation\"\n Component=\"div\"\n disabled={disabled}\n activeMode={\n platform === Platform.IOS\n ? \"TabbarItem__tappable--active\"\n : \"background\"\n }\n activeEffectDelay={platform === Platform.IOS ? 0 : 300}\n hasHover={false}\n vkuiClass=\"TabbarItem__tappable\"\n />\n <div vkuiClass=\"TabbarItem__in\">\n <div vkuiClass=\"TabbarItem__icon\">\n {children}\n <div vkuiClass=\"TabbarItem__label\">\n {hasReactNode(indicator) && indicator}\n {!indicator && label && (\n <Counter size=\"s\" mode=\"prominent\">\n {label}\n </Counter>\n )}\n </div>\n </div>\n {text && <div vkuiClass=\"TabbarItem__text\">{text}</div>}\n </div>\n </Component>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default TabbarItem;\n"],"file":"TabbarItem.js"}
@@ -11,7 +11,7 @@ import { usePlatform } from "../../hooks/usePlatform";
11
11
  import { hasReactNode } from "../../lib/utils";
12
12
  import { TabsModeContext } from "../Tabs/Tabs";
13
13
  import Headline from "../Typography/Headline/Headline";
14
- import Subhead from "../Typography/Subhead/Subhead";
14
+ import { Subhead } from "../Typography/Subhead/Subhead";
15
15
  import Text from "../Typography/Text/Text";
16
16
 
17
17
  var TabsItem = function TabsItem(_ref) {
@@ -29,6 +29,7 @@ var TabsItem = function TabsItem(_ref) {
29
29
  }
30
30
 
31
31
  return createScopedElement(Tappable, _extends({}, restProps, {
32
+ // eslint-disable-next-line vkui/no-object-expression-in-arguments
32
33
  vkuiClass: classNames(getClassName("TabsItem", platform), {
33
34
  "TabsItem--selected": selected
34
35
  }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/TabsItem/TabsItem.tsx"],"names":["React","getClassName","Tappable","classNames","VKCOM","usePlatform","hasReactNode","TabsModeContext","Headline","Subhead","Text","TabsItem","children","selected","after","restProps","platform","mode","useContext","TypographyComponent","defaultProps"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT;AACA,OAAOC,QAAP;AACA,SAASC,UAAT;AACA,SAASC,KAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAAoBC,eAApB;AACA,OAAOC,QAAP;AACA,OAAOC,OAAP;AACA,OAAOC,IAAP;;AAQA,IAAMC,QAAiC,GAAG,SAApCA,QAAoC,OAKrB;AAAA,MAJnBC,QAImB,QAJnBA,QAImB;AAAA,MAHnBC,QAGmB,QAHnBA,QAGmB;AAAA,MAFnBC,KAEmB,QAFnBA,KAEmB;AAAA,MADhBC,SACgB;;AACnB,MAAMC,QAAQ,GAAGX,WAAW,EAA5B;AACA,MAAMY,IAAuB,GAAGjB,KAAK,CAACkB,UAAN,CAAiBX,eAAjB,CAAhC;AAEA,MAAIY,mBAAmB,GACrBF,IAAI,KAAK,SAAT,IAAsBA,IAAI,KAAK,WAA/B,GAA6CR,OAA7C,GAAuDD,QADzD;;AAGA,MAAIQ,QAAQ,KAAKZ,KAAjB,EAAwB;AACtBe,IAAAA,mBAAmB,GAAGT,IAAtB;AACD;;AAED,SACE,oBAAC,QAAD,eACMK,SADN;AAEE,IAAA,SAAS,EAAEZ,UAAU,CAACF,YAAY,CAAC,UAAD,EAAae,QAAb,CAAb,EAAqC;AACxD,4BAAsBH;AADkC,KAArC,CAFvB;AAKE,IAAA,SAAS,EAAEI,IAAI,KAAK,WALtB;AAME,IAAA,UAAU,EAAC,kBANb;AAOE,IAAA,gBAAgB,EAAEA,IAAI,KAAK,WAAT,GAAuB,SAAvB,GAAmC;AAPvD,MASE,oBAAC,mBAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,SAAS,EAAC,cAFZ;AAGE,IAAA,MAAM,EAAC;AAHT,KAKGL,QALH,CATF,EAgBGN,YAAY,CAACQ,KAAD,CAAZ,IAAuB;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCA,KAAlC,CAhB1B,CADF;AAoBD,CApCD;;AAsCAH,QAAQ,CAACS,YAAT,GAAwB;AACtBP,EAAAA,QAAQ,EAAE;AADY,CAAxB,C,CAIA;;AACA,eAAeF,QAAf","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { classNames } from \"../../lib/classNames\";\nimport { VKCOM } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { TabsProps, TabsModeContext } from \"../Tabs/Tabs\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport Text from \"../Typography/Text/Text\";\nimport \"./TabsItem.css\";\n\nexport interface TabsItemProps extends React.HTMLAttributes<HTMLElement> {\n after?: React.ReactNode;\n selected?: boolean;\n}\n\nconst TabsItem: React.FC<TabsItemProps> = ({\n children,\n selected,\n after,\n ...restProps\n}: TabsItemProps) => {\n const platform = usePlatform();\n const mode: TabsProps[\"mode\"] = React.useContext(TabsModeContext);\n\n let TypographyComponent =\n mode === \"buttons\" || mode === \"segmented\" ? Subhead : Headline;\n\n if (platform === VKCOM) {\n TypographyComponent = Text;\n }\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(getClassName(\"TabsItem\", platform), {\n \"TabsItem--selected\": selected,\n })}\n hasActive={mode === \"segmented\"}\n activeMode=\"TabsItem--active\"\n focusVisibleMode={mode === \"segmented\" ? \"outside\" : \"inside\"}\n >\n <TypographyComponent\n Component=\"span\"\n vkuiClass=\"TabsItem__in\"\n weight=\"medium\"\n >\n {children}\n </TypographyComponent>\n {hasReactNode(after) && <div vkuiClass=\"TabsItem__after\">{after}</div>}\n </Tappable>\n );\n};\n\nTabsItem.defaultProps = {\n selected: false,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default TabsItem;\n"],"file":"TabsItem.js"}
1
+ {"version":3,"sources":["../../../src/components/TabsItem/TabsItem.tsx"],"names":["React","getClassName","Tappable","classNames","VKCOM","usePlatform","hasReactNode","TabsModeContext","Headline","Subhead","Text","TabsItem","children","selected","after","restProps","platform","mode","useContext","TypographyComponent","defaultProps"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT;AACA,OAAOC,QAAP;AACA,SAASC,UAAT;AACA,SAASC,KAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAAoBC,eAApB;AACA,OAAOC,QAAP;AACA,SAASC,OAAT;AACA,OAAOC,IAAP;;AAQA,IAAMC,QAAiC,GAAG,SAApCA,QAAoC,OAKrB;AAAA,MAJnBC,QAImB,QAJnBA,QAImB;AAAA,MAHnBC,QAGmB,QAHnBA,QAGmB;AAAA,MAFnBC,KAEmB,QAFnBA,KAEmB;AAAA,MADhBC,SACgB;;AACnB,MAAMC,QAAQ,GAAGX,WAAW,EAA5B;AACA,MAAMY,IAAuB,GAAGjB,KAAK,CAACkB,UAAN,CAAiBX,eAAjB,CAAhC;AAEA,MAAIY,mBAAmB,GACrBF,IAAI,KAAK,SAAT,IAAsBA,IAAI,KAAK,WAA/B,GAA6CR,OAA7C,GAAuDD,QADzD;;AAGA,MAAIQ,QAAQ,KAAKZ,KAAjB,EAAwB;AACtBe,IAAAA,mBAAmB,GAAGT,IAAtB;AACD;;AAED,SACE,oBAAC,QAAD,eACMK,SADN;AAEE;AACA,IAAA,SAAS,EAAEZ,UAAU,CAACF,YAAY,CAAC,UAAD,EAAae,QAAb,CAAb,EAAqC;AACxD,4BAAsBH;AADkC,KAArC,CAHvB;AAME,IAAA,SAAS,EAAEI,IAAI,KAAK,WANtB;AAOE,IAAA,UAAU,EAAC,kBAPb;AAQE,IAAA,gBAAgB,EAAEA,IAAI,KAAK,WAAT,GAAuB,SAAvB,GAAmC;AARvD,MAUE,oBAAC,mBAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,SAAS,EAAC,cAFZ;AAGE,IAAA,MAAM,EAAC;AAHT,KAKGL,QALH,CAVF,EAiBGN,YAAY,CAACQ,KAAD,CAAZ,IAAuB;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCA,KAAlC,CAjB1B,CADF;AAqBD,CArCD;;AAuCAH,QAAQ,CAACS,YAAT,GAAwB;AACtBP,EAAAA,QAAQ,EAAE;AADY,CAAxB,C,CAIA;;AACA,eAAeF,QAAf","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { classNames } from \"../../lib/classNames\";\nimport { VKCOM } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { TabsProps, TabsModeContext } from \"../Tabs/Tabs\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport Text from \"../Typography/Text/Text\";\nimport \"./TabsItem.css\";\n\nexport interface TabsItemProps extends React.HTMLAttributes<HTMLElement> {\n after?: React.ReactNode;\n selected?: boolean;\n}\n\nconst TabsItem: React.FC<TabsItemProps> = ({\n children,\n selected,\n after,\n ...restProps\n}: TabsItemProps) => {\n const platform = usePlatform();\n const mode: TabsProps[\"mode\"] = React.useContext(TabsModeContext);\n\n let TypographyComponent =\n mode === \"buttons\" || mode === \"segmented\" ? Subhead : Headline;\n\n if (platform === VKCOM) {\n TypographyComponent = Text;\n }\n\n return (\n <Tappable\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"TabsItem\", platform), {\n \"TabsItem--selected\": selected,\n })}\n hasActive={mode === \"segmented\"}\n activeMode=\"TabsItem--active\"\n focusVisibleMode={mode === \"segmented\" ? \"outside\" : \"inside\"}\n >\n <TypographyComponent\n Component=\"span\"\n vkuiClass=\"TabsItem__in\"\n weight=\"medium\"\n >\n {children}\n </TypographyComponent>\n {hasReactNode(after) && <div vkuiClass=\"TabsItem__after\">{after}</div>}\n </Tappable>\n );\n};\n\nTabsItem.defaultProps = {\n selected: false,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default TabsItem;\n"],"file":"TabsItem.js"}
@@ -266,11 +266,12 @@ var Tappable = function Tappable(_ref) {
266
266
  } // отключить без задержки при длинном тапе
267
267
 
268
268
 
269
- var activeDuraion = duration - ACTIVE_DELAY;
270
- stop(activeDuraion >= 100 ? 0 : activeEffectDelay - activeDuraion);
271
- }
269
+ var activeDuration = duration - ACTIVE_DELAY;
270
+ stop(activeDuration >= 100 ? 0 : activeEffectDelay - activeDuration);
271
+ } // eslint-disable-next-line vkui/no-object-expression-in-arguments
272
+
272
273
 
273
- var classes = classNames(getClassName("Tappable", platform), "Tappable--sizeX-".concat(sizeX), hasHover && hovered && !isPresetHoverMode && hoverMode, hasActive && active && !isPresetActiveMode && activeMode, focusVisible && !isPresetFocusVisibleMode && focusVisibleMode, (_classNames = {
274
+ var classes = classNames(getClassName("Tappable", platform), "Tappable--sizeX-".concat(sizeX), hasHover && "Tappable--hasHover", hasActive && "Tappable--hasActive", hasHover && hovered && !isPresetHoverMode && hoverMode, hasActive && active && !isPresetActiveMode && activeMode, focusVisible && !isPresetFocusVisibleMode && focusVisibleMode, (_classNames = {
274
275
  "Tappable--active": hasActive && active,
275
276
  "Tappable--mouse": hasMouse
276
277
  }, _defineProperty(_classNames, "Tappable--hover-".concat(hoverMode), hasHover && hovered && isPresetHoverMode), _defineProperty(_classNames, "Tappable--active-".concat(activeMode), hasActive && active && isPresetActiveMode), _defineProperty(_classNames, "Tappable--focus-visible", focusVisible), _classNames));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Tappable/Tappable.tsx"],"names":["React","mitt","noop","Touch","TouchRootContext","classNames","getClassName","ANDROID","getOffsetRect","coordX","coordY","withAdaptivity","shouldTriggerClickOnEnterOrSpace","useIsomorphicLayoutEffect","FocusVisible","useTimeout","useExternRef","usePlatform","useFocusVisible","callMultiple","useBooleanState","ACTIVE_DELAY","ACTIVE_EFFECT_DELAY","activeBus","TapState","none","pending","active","exiting","TappableContext","createContext","onHoverChange","useActivity","hasActive","stopDelay","id","useMemo","Math","round","random","toString","useState","activity","setActivity","_stop","start","delayStart","activeTimeout","stopTimeout","set","clear","emit","onActiveChange","activeId","on","off","stop","delay","Tappable","children","Component","onClick","_onKeyDown","onKeyDown","activeEffectDelay","stopPropagation","getRootRef","sizeX","hasMouse","deviceHasHover","hasHover","_hasHover","hoverMode","_hasActive","activeMode","focusVisibleMode","onEnter","onLeave","props","href","useContext","insideTouchRoot","platform","focusVisible","onBlur","onFocus","clicks","setClicks","childHover","setChildHover","_hovered","value","setHoveredTrue","setTrue","setHoveredFalse","setFalse","hovered","disabled","isCustomElement","contentEditable","isPresetHoverMode","includes","isPresetActiveMode","isPresetFocusVisibleMode","containerRef","childContext","useRef","current","e","preventDefault","click","onStart","originalEvent","touches","length","top","left","x","y","Date","now","onMove","isSlide","onEnd","duration","activeDuraion","classes","handlers","role","undefined","map","wave","filter","c","Wave","onClear","timeout","useEffect"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport mitt from \"mitt\";\nimport { noop } from \"@vkontakte/vkjs\";\nimport { Touch, TouchEvent, TouchProps } from \"../Touch/Touch\";\nimport TouchRootContext from \"../Touch/TouchContext\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { ANDROID } from \"../../lib/platform\";\nimport { getOffsetRect } from \"../../lib/offset\";\nimport { coordX, coordY } from \"../../lib/touch\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { shouldTriggerClickOnEnterOrSpace } from \"../../lib/accessibility\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { FocusVisible, FocusVisibleMode } from \"../FocusVisible/FocusVisible\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useFocusVisible } from \"../../hooks/useFocusVisible\";\nimport { callMultiple } from \"../../lib/callMultiple\";\nimport { useBooleanState } from \"../../hooks/useBooleanState\";\nimport \"./Tappable.css\";\n\nexport interface TappableProps\n extends Omit<\n React.AllHTMLAttributes<HTMLElement>,\n | \"onTouchStart\"\n | \"onTouchMove\"\n | \"onTouchEnd\"\n | \"onTouchCancel\"\n | \"onMouseDown\"\n | \"onMouseMove\"\n | \"onMouseUp\"\n | \"onMouseLeave\"\n >,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n HasComponent,\n Pick<TouchProps, \"onStart\" | \"onEnd\" | \"onMove\"> {\n /**\n * Длительность показа active-состояния\n */\n activeEffectDelay?: number;\n stopPropagation?: boolean;\n /**\n * Указывает, должен ли компонент реагировать на hover-состояние\n */\n hasHover?: boolean;\n /**\n * Указывает, должен ли компонент реагировать на active-состояние\n */\n hasActive?: boolean;\n /**\n * Стиль подсветки active-состояния. Если передать произвольную строку, она добавится как css-класс во время active\n */\n activeMode?: \"opacity\" | \"background\" | string;\n /**\n * Стиль подсветки hover-состояния. Если передать произвольную строку, она добавится как css-класс во время hover\n */\n hoverMode?: \"opacity\" | \"background\" | string;\n /**\n * Стиль аутлайна focus visible. Если передать произвольную строку, она добавится как css-класс во время focus-visible\n */\n focusVisibleMode?: FocusVisibleMode | string;\n onEnter?: (outputEvent: MouseEvent) => void;\n onLeave?: (outputEvent: MouseEvent) => void;\n}\n\ninterface Wave {\n x: number;\n y: number;\n id: string;\n}\n\nexport interface RootComponentProps extends TouchProps {\n ref?: React.Ref<HTMLElement>;\n}\n\nexport const ACTIVE_DELAY = 70;\nexport const ACTIVE_EFFECT_DELAY = 600;\n\nconst activeBus = mitt<{ active: string }>();\nconst TapState = { none: 0, pending: 1, active: 2, exiting: 3 } as const;\n\ntype TappableContextInterface = { onHoverChange: (s: boolean) => void };\nconst TappableContext = React.createContext<TappableContextInterface>({\n onHoverChange: noop,\n});\n\nfunction useActivity(hasActive: boolean, stopDelay: number) {\n const id = React.useMemo(\n () => Math.round(Math.random() * 1e8).toString(16),\n []\n );\n\n const [activity, setActivity] = React.useState<\n typeof TapState[keyof typeof TapState]\n >(TapState.none);\n const _stop = () => setActivity(TapState.none);\n const start = () => hasActive && setActivity(TapState.active);\n const delayStart = () => {\n hasActive && setActivity(TapState.pending);\n };\n\n const activeTimeout = useTimeout(start, ACTIVE_DELAY);\n const stopTimeout = useTimeout(_stop, stopDelay);\n\n useIsomorphicLayoutEffect(() => {\n if (activity === TapState.pending) {\n activeTimeout.set();\n return activeTimeout.clear;\n }\n if (activity === TapState.exiting) {\n return stopTimeout.clear;\n }\n if (activity === TapState.active) {\n activeBus.emit(\"active\", id);\n }\n return noop;\n }, [activity]);\n\n useIsomorphicLayoutEffect(() => {\n if (activity === TapState.none) {\n return noop;\n }\n const onActiveChange = (activeId: string) => {\n activeId !== id && _stop();\n };\n activeBus.on(\"active\", onActiveChange);\n return () => activeBus.off(\"active\", onActiveChange);\n }, [activity === TapState.none]);\n\n useIsomorphicLayoutEffect(() => {\n !hasActive && _stop();\n }, [hasActive]);\n\n const stop = (delay?: number) => {\n if (delay) {\n setActivity(TapState.exiting);\n return stopTimeout.set(delay);\n }\n _stop();\n };\n\n return [activity, { delayStart, start, stop }] as const;\n}\n\nconst Tappable: React.FC<TappableProps> = ({\n children,\n Component,\n onClick,\n onKeyDown: _onKeyDown,\n activeEffectDelay = ACTIVE_EFFECT_DELAY,\n stopPropagation = false,\n getRootRef,\n sizeX,\n hasMouse,\n deviceHasHover,\n hasHover: _hasHover = true,\n hoverMode = \"background\",\n hasActive: _hasActive = true,\n activeMode = \"background\",\n focusVisibleMode = \"inside\",\n onEnter,\n onLeave,\n ...props\n}: TappableProps) => {\n Component = Component || ((props.href ? \"a\" : \"div\") as React.ElementType);\n\n const { onHoverChange } = React.useContext(TappableContext);\n const insideTouchRoot = React.useContext(TouchRootContext);\n const platform = usePlatform();\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n\n const [clicks, setClicks] = React.useState<Wave[]>([]);\n const [childHover, setChildHover] = React.useState(false);\n const {\n value: _hovered,\n setTrue: setHoveredTrue,\n setFalse: setHoveredFalse,\n } = useBooleanState(false);\n\n const hovered = _hovered && !props.disabled;\n const hasActive = _hasActive && !childHover && !props.disabled;\n const hasHover = deviceHasHover && _hasHover && !childHover;\n const isCustomElement =\n Component !== \"a\" && Component !== \"button\" && !props.contentEditable;\n const isPresetHoverMode = [\"opacity\", \"background\"].includes(hoverMode);\n const isPresetActiveMode = [\"opacity\", \"background\"].includes(activeMode);\n const isPresetFocusVisibleMode = [\"inside\", \"outside\"].includes(\n focusVisibleMode\n );\n\n const [activity, { start, stop, delayStart }] = useActivity(\n hasActive,\n activeEffectDelay\n );\n const active = activity === TapState.active || activity === TapState.exiting;\n\n const containerRef = useExternRef(getRootRef);\n\n // hover propagation\n const childContext = React.useRef({ onHoverChange: setChildHover }).current;\n useIsomorphicLayoutEffect(() => {\n if (!hovered) {\n return noop;\n }\n onHoverChange(true);\n return () => onHoverChange(false);\n }, [hovered]);\n\n /*\n * [a11y]\n * Обрабатывает событие onkeydown\n * для кастомных доступных элементов:\n * - role=\"link\" (активация по Enter)\n * - role=\"button\" (активация по Space и Enter)\n */\n function onKeyDown(e: React.KeyboardEvent<HTMLElement>) {\n if (isCustomElement && shouldTriggerClickOnEnterOrSpace(e)) {\n e.preventDefault();\n containerRef.current?.click();\n }\n }\n\n function onStart({ originalEvent }: TouchEvent) {\n if (hasActive) {\n if (originalEvent.touches && originalEvent.touches.length > 1) {\n // r сожалению я так и не понял, что это делает и можно ли упихнуть его в Touch\n return stop();\n }\n\n if (platform === ANDROID) {\n const { top, left } = getOffsetRect(containerRef.current);\n const x = coordX(originalEvent) - (left ?? 0);\n const y = coordY(originalEvent) - (top ?? 0);\n setClicks([...clicks, { x, y, id: Date.now().toString() }]);\n }\n\n delayStart();\n }\n }\n\n function onMove({ isSlide }: TouchEvent) {\n if (isSlide) {\n stop();\n }\n }\n\n function onEnd({ duration }: TouchEvent) {\n if (activity === TapState.none) {\n return;\n }\n if (activity === TapState.pending) {\n // активировать при коротком тапе\n start();\n }\n\n // отключить без задержки при длинном тапе\n const activeDuraion = duration - ACTIVE_DELAY;\n stop(activeDuraion >= 100 ? 0 : activeEffectDelay - activeDuraion);\n }\n\n const classes = classNames(\n getClassName(\"Tappable\", platform),\n `Tappable--sizeX-${sizeX}`,\n hasHover && hovered && !isPresetHoverMode && hoverMode,\n hasActive && active && !isPresetActiveMode && activeMode,\n focusVisible && !isPresetFocusVisibleMode && focusVisibleMode,\n {\n \"Tappable--active\": hasActive && active,\n \"Tappable--mouse\": hasMouse,\n [`Tappable--hover-${hoverMode}`]:\n hasHover && hovered && isPresetHoverMode,\n [`Tappable--active-${activeMode}`]:\n hasActive && active && isPresetActiveMode,\n \"Tappable--focus-visible\": focusVisible,\n }\n );\n\n const handlers: RootComponentProps = {\n onStart: callMultiple(onStart, props.onStart),\n onMove: callMultiple(onMove, props.onMove),\n onEnd: callMultiple(onEnd, props.onEnd),\n onClick,\n onKeyDown: callMultiple(onKeyDown, _onKeyDown),\n };\n const role = props.href ? \"link\" : \"button\";\n\n return (\n <Touch\n onEnter={callMultiple(setHoveredTrue, onEnter)}\n onLeave={callMultiple(setHoveredFalse, onLeave)}\n type={Component === \"button\" ? \"button\" : undefined}\n tabIndex={isCustomElement && !props.disabled ? 0 : undefined}\n role={isCustomElement ? role : undefined}\n aria-disabled={isCustomElement ? props.disabled : undefined}\n stopPropagation={stopPropagation && !insideTouchRoot && !props.disabled}\n {...props}\n slideThreshold={20}\n usePointerHover\n vkuiClass={classes}\n Component={Component}\n getRootRef={containerRef}\n onBlur={callMultiple(onBlur, props.onBlur)}\n onFocus={callMultiple(onFocus, props.onFocus)}\n {...(props.disabled ? {} : handlers)}\n >\n <TappableContext.Provider value={childContext}>\n {children}\n </TappableContext.Provider>\n {platform === ANDROID &&\n !hasMouse &&\n hasActive &&\n activeMode === \"background\" && (\n <span aria-hidden=\"true\" vkuiClass=\"Tappable__waves\">\n {clicks.map((wave) => (\n <Wave\n {...wave}\n key={wave.id}\n onClear={() =>\n setClicks(clicks.filter((c) => c.id !== wave.id))\n }\n />\n ))}\n </span>\n )}\n {hasHover && hoverMode === \"background\" && (\n <span aria-hidden=\"true\" vkuiClass=\"Tappable__hoverShadow\" />\n )}\n {!props.disabled && isPresetFocusVisibleMode && (\n <FocusVisible mode={focusVisibleMode as FocusVisibleMode} />\n )}\n </Touch>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(Tappable, {\n sizeX: true,\n hasMouse: true,\n deviceHasHover: true,\n});\n\nfunction Wave({ x, y, onClear }: Wave & { onClear: VoidFunction }) {\n const timeout = useTimeout(onClear, 225);\n React.useEffect(() => timeout.set(), [timeout]);\n return <span vkuiClass=\"Tappable__wave\" style={{ top: y, left: x }} />;\n}\n"],"file":"Tappable.js"}
1
+ {"version":3,"sources":["../../../src/components/Tappable/Tappable.tsx"],"names":["React","mitt","noop","Touch","TouchRootContext","classNames","getClassName","ANDROID","getOffsetRect","coordX","coordY","withAdaptivity","shouldTriggerClickOnEnterOrSpace","useIsomorphicLayoutEffect","FocusVisible","useTimeout","useExternRef","usePlatform","useFocusVisible","callMultiple","useBooleanState","ACTIVE_DELAY","ACTIVE_EFFECT_DELAY","activeBus","TapState","none","pending","active","exiting","TappableContext","createContext","onHoverChange","useActivity","hasActive","stopDelay","id","useMemo","Math","round","random","toString","useState","activity","setActivity","_stop","start","delayStart","activeTimeout","stopTimeout","set","clear","emit","onActiveChange","activeId","on","off","stop","delay","Tappable","children","Component","onClick","_onKeyDown","onKeyDown","activeEffectDelay","stopPropagation","getRootRef","sizeX","hasMouse","deviceHasHover","hasHover","_hasHover","hoverMode","_hasActive","activeMode","focusVisibleMode","onEnter","onLeave","props","href","useContext","insideTouchRoot","platform","focusVisible","onBlur","onFocus","clicks","setClicks","childHover","setChildHover","_hovered","value","setHoveredTrue","setTrue","setHoveredFalse","setFalse","hovered","disabled","isCustomElement","contentEditable","isPresetHoverMode","includes","isPresetActiveMode","isPresetFocusVisibleMode","containerRef","childContext","useRef","current","e","preventDefault","click","onStart","originalEvent","touches","length","top","left","x","y","Date","now","onMove","isSlide","onEnd","duration","activeDuration","classes","handlers","role","undefined","map","wave","filter","c","Wave","onClear","timeout","useEffect"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport mitt from \"mitt\";\nimport { noop } from \"@vkontakte/vkjs\";\nimport { Touch, TouchEvent, TouchProps } from \"../Touch/Touch\";\nimport TouchRootContext from \"../Touch/TouchContext\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { ANDROID } from \"../../lib/platform\";\nimport { getOffsetRect } from \"../../lib/offset\";\nimport { coordX, coordY } from \"../../lib/touch\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { shouldTriggerClickOnEnterOrSpace } from \"../../lib/accessibility\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { FocusVisible, FocusVisibleMode } from \"../FocusVisible/FocusVisible\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useFocusVisible } from \"../../hooks/useFocusVisible\";\nimport { callMultiple } from \"../../lib/callMultiple\";\nimport { useBooleanState } from \"../../hooks/useBooleanState\";\nimport \"./Tappable.css\";\n\nexport interface TappableProps\n extends Omit<\n React.AllHTMLAttributes<HTMLElement>,\n | \"onTouchStart\"\n | \"onTouchMove\"\n | \"onTouchEnd\"\n | \"onTouchCancel\"\n | \"onMouseDown\"\n | \"onMouseMove\"\n | \"onMouseUp\"\n | \"onMouseLeave\"\n >,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n HasComponent,\n Pick<TouchProps, \"onStart\" | \"onEnd\" | \"onMove\"> {\n /**\n * Длительность показа active-состояния\n */\n activeEffectDelay?: number;\n stopPropagation?: boolean;\n /**\n * Указывает, должен ли компонент реагировать на hover-состояние\n */\n hasHover?: boolean;\n /**\n * Указывает, должен ли компонент реагировать на active-состояние\n */\n hasActive?: boolean;\n /**\n * Стиль подсветки active-состояния. Если передать произвольную строку, она добавится как css-класс во время active\n */\n activeMode?: \"opacity\" | \"background\" | string;\n /**\n * Стиль подсветки hover-состояния. Если передать произвольную строку, она добавится как css-класс во время hover\n */\n hoverMode?: \"opacity\" | \"background\" | string;\n /**\n * Стиль аутлайна focus visible. Если передать произвольную строку, она добавится как css-класс во время focus-visible\n */\n focusVisibleMode?: FocusVisibleMode | string;\n onEnter?: (outputEvent: MouseEvent) => void;\n onLeave?: (outputEvent: MouseEvent) => void;\n}\n\ninterface Wave {\n x: number;\n y: number;\n id: string;\n}\n\nexport interface RootComponentProps extends TouchProps {\n ref?: React.Ref<HTMLElement>;\n}\n\nexport const ACTIVE_DELAY = 70;\nexport const ACTIVE_EFFECT_DELAY = 600;\n\nconst activeBus = mitt<{ active: string }>();\nconst TapState = { none: 0, pending: 1, active: 2, exiting: 3 } as const;\n\ntype TappableContextInterface = { onHoverChange: (s: boolean) => void };\nconst TappableContext = React.createContext<TappableContextInterface>({\n onHoverChange: noop,\n});\n\nfunction useActivity(hasActive: boolean, stopDelay: number) {\n const id = React.useMemo(\n () => Math.round(Math.random() * 1e8).toString(16),\n []\n );\n\n const [activity, setActivity] = React.useState<\n typeof TapState[keyof typeof TapState]\n >(TapState.none);\n const _stop = () => setActivity(TapState.none);\n const start = () => hasActive && setActivity(TapState.active);\n const delayStart = () => {\n hasActive && setActivity(TapState.pending);\n };\n\n const activeTimeout = useTimeout(start, ACTIVE_DELAY);\n const stopTimeout = useTimeout(_stop, stopDelay);\n\n useIsomorphicLayoutEffect(() => {\n if (activity === TapState.pending) {\n activeTimeout.set();\n return activeTimeout.clear;\n }\n if (activity === TapState.exiting) {\n return stopTimeout.clear;\n }\n if (activity === TapState.active) {\n activeBus.emit(\"active\", id);\n }\n return noop;\n }, [activity]);\n\n useIsomorphicLayoutEffect(() => {\n if (activity === TapState.none) {\n return noop;\n }\n const onActiveChange = (activeId: string) => {\n activeId !== id && _stop();\n };\n activeBus.on(\"active\", onActiveChange);\n return () => activeBus.off(\"active\", onActiveChange);\n }, [activity === TapState.none]);\n\n useIsomorphicLayoutEffect(() => {\n !hasActive && _stop();\n }, [hasActive]);\n\n const stop = (delay?: number) => {\n if (delay) {\n setActivity(TapState.exiting);\n return stopTimeout.set(delay);\n }\n _stop();\n };\n\n return [activity, { delayStart, start, stop }] as const;\n}\n\nconst Tappable: React.FC<TappableProps> = ({\n children,\n Component,\n onClick,\n onKeyDown: _onKeyDown,\n activeEffectDelay = ACTIVE_EFFECT_DELAY,\n stopPropagation = false,\n getRootRef,\n sizeX,\n hasMouse,\n deviceHasHover,\n hasHover: _hasHover = true,\n hoverMode = \"background\",\n hasActive: _hasActive = true,\n activeMode = \"background\",\n focusVisibleMode = \"inside\",\n onEnter,\n onLeave,\n ...props\n}: TappableProps) => {\n Component = Component || ((props.href ? \"a\" : \"div\") as React.ElementType);\n\n const { onHoverChange } = React.useContext(TappableContext);\n const insideTouchRoot = React.useContext(TouchRootContext);\n const platform = usePlatform();\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n\n const [clicks, setClicks] = React.useState<Wave[]>([]);\n const [childHover, setChildHover] = React.useState(false);\n const {\n value: _hovered,\n setTrue: setHoveredTrue,\n setFalse: setHoveredFalse,\n } = useBooleanState(false);\n\n const hovered = _hovered && !props.disabled;\n const hasActive = _hasActive && !childHover && !props.disabled;\n const hasHover = deviceHasHover && _hasHover && !childHover;\n const isCustomElement =\n Component !== \"a\" && Component !== \"button\" && !props.contentEditable;\n const isPresetHoverMode = [\"opacity\", \"background\"].includes(hoverMode);\n const isPresetActiveMode = [\"opacity\", \"background\"].includes(activeMode);\n const isPresetFocusVisibleMode = [\"inside\", \"outside\"].includes(\n focusVisibleMode\n );\n\n const [activity, { start, stop, delayStart }] = useActivity(\n hasActive,\n activeEffectDelay\n );\n const active = activity === TapState.active || activity === TapState.exiting;\n\n const containerRef = useExternRef(getRootRef);\n\n // hover propagation\n const childContext = React.useRef({ onHoverChange: setChildHover }).current;\n useIsomorphicLayoutEffect(() => {\n if (!hovered) {\n return noop;\n }\n onHoverChange(true);\n return () => onHoverChange(false);\n }, [hovered]);\n\n /*\n * [a11y]\n * Обрабатывает событие onkeydown\n * для кастомных доступных элементов:\n * - role=\"link\" (активация по Enter)\n * - role=\"button\" (активация по Space и Enter)\n */\n function onKeyDown(e: React.KeyboardEvent<HTMLElement>) {\n if (isCustomElement && shouldTriggerClickOnEnterOrSpace(e)) {\n e.preventDefault();\n containerRef.current?.click();\n }\n }\n\n function onStart({ originalEvent }: TouchEvent) {\n if (hasActive) {\n if (originalEvent.touches && originalEvent.touches.length > 1) {\n // r сожалению я так и не понял, что это делает и можно ли упихнуть его в Touch\n return stop();\n }\n\n if (platform === ANDROID) {\n const { top, left } = getOffsetRect(containerRef.current);\n const x = coordX(originalEvent) - (left ?? 0);\n const y = coordY(originalEvent) - (top ?? 0);\n setClicks([...clicks, { x, y, id: Date.now().toString() }]);\n }\n\n delayStart();\n }\n }\n\n function onMove({ isSlide }: TouchEvent) {\n if (isSlide) {\n stop();\n }\n }\n\n function onEnd({ duration }: TouchEvent) {\n if (activity === TapState.none) {\n return;\n }\n if (activity === TapState.pending) {\n // активировать при коротком тапе\n start();\n }\n\n // отключить без задержки при длинном тапе\n const activeDuration = duration - ACTIVE_DELAY;\n stop(activeDuration >= 100 ? 0 : activeEffectDelay - activeDuration);\n }\n\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n const classes = classNames(\n getClassName(\"Tappable\", platform),\n `Tappable--sizeX-${sizeX}`,\n hasHover && `Tappable--hasHover`,\n hasActive && `Tappable--hasActive`,\n hasHover && hovered && !isPresetHoverMode && hoverMode,\n hasActive && active && !isPresetActiveMode && activeMode,\n focusVisible && !isPresetFocusVisibleMode && focusVisibleMode,\n {\n \"Tappable--active\": hasActive && active,\n \"Tappable--mouse\": hasMouse,\n [`Tappable--hover-${hoverMode}`]:\n hasHover && hovered && isPresetHoverMode,\n [`Tappable--active-${activeMode}`]:\n hasActive && active && isPresetActiveMode,\n \"Tappable--focus-visible\": focusVisible,\n }\n );\n\n const handlers: RootComponentProps = {\n onStart: callMultiple(onStart, props.onStart),\n onMove: callMultiple(onMove, props.onMove),\n onEnd: callMultiple(onEnd, props.onEnd),\n onClick,\n onKeyDown: callMultiple(onKeyDown, _onKeyDown),\n };\n const role = props.href ? \"link\" : \"button\";\n\n return (\n <Touch\n onEnter={callMultiple(setHoveredTrue, onEnter)}\n onLeave={callMultiple(setHoveredFalse, onLeave)}\n type={Component === \"button\" ? \"button\" : undefined}\n tabIndex={isCustomElement && !props.disabled ? 0 : undefined}\n role={isCustomElement ? role : undefined}\n aria-disabled={isCustomElement ? props.disabled : undefined}\n stopPropagation={stopPropagation && !insideTouchRoot && !props.disabled}\n {...props}\n slideThreshold={20}\n usePointerHover\n vkuiClass={classes}\n Component={Component}\n getRootRef={containerRef}\n onBlur={callMultiple(onBlur, props.onBlur)}\n onFocus={callMultiple(onFocus, props.onFocus)}\n {...(props.disabled ? {} : handlers)}\n >\n <TappableContext.Provider value={childContext}>\n {children}\n </TappableContext.Provider>\n {platform === ANDROID &&\n !hasMouse &&\n hasActive &&\n activeMode === \"background\" && (\n <span aria-hidden=\"true\" vkuiClass=\"Tappable__waves\">\n {clicks.map((wave) => (\n <Wave\n {...wave}\n key={wave.id}\n onClear={() =>\n setClicks(clicks.filter((c) => c.id !== wave.id))\n }\n />\n ))}\n </span>\n )}\n {hasHover && hoverMode === \"background\" && (\n <span aria-hidden=\"true\" vkuiClass=\"Tappable__hoverShadow\" />\n )}\n {!props.disabled && isPresetFocusVisibleMode && (\n <FocusVisible mode={focusVisibleMode as FocusVisibleMode} />\n )}\n </Touch>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(Tappable, {\n sizeX: true,\n hasMouse: true,\n deviceHasHover: true,\n});\n\nfunction Wave({ x, y, onClear }: Wave & { onClear: VoidFunction }) {\n const timeout = useTimeout(onClear, 225);\n React.useEffect(() => timeout.set(), [timeout]);\n return <span vkuiClass=\"Tappable__wave\" style={{ top: y, left: x }} />;\n}\n"],"file":"Tappable.js"}
@@ -7,7 +7,7 @@ import { HoverPopper } from "../HoverPopper/HoverPopper";
7
7
  import { getClassName } from "../../helpers/getClassName";
8
8
  import { usePlatform } from "../../hooks/usePlatform";
9
9
  import { hasReactNode } from "../../lib/utils";
10
- import Subhead from "../Typography/Subhead/Subhead";
10
+ import { Subhead } from "../Typography/Subhead/Subhead";
11
11
  import { prefixClass } from "../../lib/prefixClass";
12
12
  export var TextTooltip = function TextTooltip(_ref) {
13
13
  var children = _ref.children,