@vkontakte/vkui 7.4.4 → 7.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (963) hide show
  1. package/README.md +2 -2
  2. package/dist/components/Accordion/Accordion.d.ts +8 -1
  3. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  4. package/dist/components/Accordion/Accordion.js +9 -4
  5. package/dist/components/Accordion/Accordion.js.map +1 -1
  6. package/dist/components/Accordion/AccordionContent.d.ts +1 -1
  7. package/dist/components/Accordion/AccordionContent.d.ts.map +1 -1
  8. package/dist/components/Accordion/AccordionContent.js +4 -1
  9. package/dist/components/Accordion/AccordionContent.js.map +1 -1
  10. package/dist/components/Accordion/AccordionContext.d.ts +5 -0
  11. package/dist/components/Accordion/AccordionContext.d.ts.map +1 -1
  12. package/dist/components/Accordion/AccordionContext.js +12 -0
  13. package/dist/components/Accordion/AccordionContext.js.map +1 -1
  14. package/dist/components/ActionSheet/ActionSheet.d.ts +1 -1
  15. package/dist/components/ActionSheet/ActionSheet.js +1 -1
  16. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  17. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +1 -1
  18. package/dist/components/ActionSheetItem/ActionSheetItem.js +1 -1
  19. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  20. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +1 -1
  21. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js +1 -1
  22. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
  23. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
  24. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +1 -1
  25. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  26. package/dist/components/Alert/Alert.d.ts +1 -1
  27. package/dist/components/Alert/Alert.js +1 -1
  28. package/dist/components/Alert/Alert.js.map +1 -1
  29. package/dist/components/AppRoot/AppRoot.d.ts +3 -3
  30. package/dist/components/AppRoot/AppRoot.js +1 -1
  31. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  32. package/dist/components/AspectRatio/AspectRatio.d.ts +1 -1
  33. package/dist/components/AspectRatio/AspectRatio.js +1 -1
  34. package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
  35. package/dist/components/Avatar/Avatar.d.ts +1 -1
  36. package/dist/components/Avatar/Avatar.js +1 -1
  37. package/dist/components/Avatar/Avatar.js.map +1 -1
  38. package/dist/components/Badge/Badge.d.ts +1 -1
  39. package/dist/components/Badge/Badge.js +1 -1
  40. package/dist/components/Badge/Badge.js.map +1 -1
  41. package/dist/components/Banner/Banner.d.ts +3 -3
  42. package/dist/components/Banner/Banner.js +1 -1
  43. package/dist/components/Banner/Banner.js.map +1 -1
  44. package/dist/components/Button/Button.d.ts +1 -1
  45. package/dist/components/Button/Button.js +1 -1
  46. package/dist/components/Button/Button.js.map +1 -1
  47. package/dist/components/ButtonGroup/ButtonGroup.d.ts +1 -1
  48. package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
  49. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  50. package/dist/components/Calendar/Calendar.d.ts +1 -1
  51. package/dist/components/Calendar/Calendar.js +1 -1
  52. package/dist/components/Calendar/Calendar.js.map +1 -1
  53. package/dist/components/CalendarRange/CalendarRange.d.ts +1 -1
  54. package/dist/components/CalendarRange/CalendarRange.js +1 -1
  55. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  56. package/dist/components/Card/Card.d.ts +1 -1
  57. package/dist/components/Card/Card.js +1 -1
  58. package/dist/components/Card/Card.js.map +1 -1
  59. package/dist/components/CardGrid/CardGrid.d.ts +1 -1
  60. package/dist/components/CardGrid/CardGrid.js +1 -1
  61. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  62. package/dist/components/CardScroll/CardScroll.d.ts +1 -1
  63. package/dist/components/CardScroll/CardScroll.js +1 -1
  64. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  65. package/dist/components/Cell/Cell.d.ts +1 -1
  66. package/dist/components/Cell/Cell.js +1 -1
  67. package/dist/components/Cell/Cell.js.map +1 -1
  68. package/dist/components/CellButton/CellButton.d.ts +1 -1
  69. package/dist/components/CellButton/CellButton.js +1 -1
  70. package/dist/components/CellButton/CellButton.js.map +1 -1
  71. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +1 -1
  72. package/dist/components/CellButtonGroup/CellButtonGroup.js +1 -1
  73. package/dist/components/CellButtonGroup/CellButtonGroup.js.map +1 -1
  74. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  75. package/dist/components/Checkbox/Checkbox.js +1 -1
  76. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  77. package/dist/components/ChipsInput/ChipsInput.d.ts +1 -1
  78. package/dist/components/ChipsInput/ChipsInput.js +1 -1
  79. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  80. package/dist/components/ChipsInputBase/Chip/Chip.d.ts +1 -1
  81. package/dist/components/ChipsInputBase/Chip/Chip.js +1 -1
  82. package/dist/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  83. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +1 -1
  84. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts.map +1 -1
  85. package/dist/components/ChipsInputBase/ChipsInputBase.js +64 -37
  86. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  87. package/dist/components/ChipsInputBase/helpers.d.ts.map +1 -1
  88. package/dist/components/ChipsInputBase/helpers.js +2 -0
  89. package/dist/components/ChipsInputBase/helpers.js.map +1 -1
  90. package/dist/components/ChipsInputBase/types.d.ts +5 -1
  91. package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
  92. package/dist/components/ChipsInputBase/types.js.map +1 -1
  93. package/dist/components/ChipsSelect/ChipsSelect.d.ts +2 -2
  94. package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  95. package/dist/components/ChipsSelect/ChipsSelect.js +7 -5
  96. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  97. package/dist/components/Clickable/Clickable.d.ts.map +1 -1
  98. package/dist/components/Clickable/Clickable.js +110 -18
  99. package/dist/components/Clickable/Clickable.js.map +1 -1
  100. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.d.ts +1 -1
  101. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js +1 -1
  102. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
  103. package/dist/components/ConfigProvider/ConfigProvider.d.ts +1 -1
  104. package/dist/components/ConfigProvider/ConfigProvider.js +1 -1
  105. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  106. package/dist/components/ContentBadge/ContentBadge.d.ts +1 -1
  107. package/dist/components/ContentBadge/ContentBadge.js +1 -1
  108. package/dist/components/ContentBadge/ContentBadge.js.map +1 -1
  109. package/dist/components/ContentCard/ContentCard.d.ts +1 -1
  110. package/dist/components/ContentCard/ContentCard.js +1 -1
  111. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  112. package/dist/components/Counter/Counter.d.ts +1 -1
  113. package/dist/components/Counter/Counter.js +1 -1
  114. package/dist/components/Counter/Counter.js.map +1 -1
  115. package/dist/components/CustomScrollView/CustomScrollView.d.ts +1 -1
  116. package/dist/components/CustomScrollView/CustomScrollView.js +1 -1
  117. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  118. package/dist/components/CustomSelect/CustomSelect.d.ts +2 -2
  119. package/dist/components/CustomSelect/CustomSelect.js +1 -1
  120. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  121. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts +3 -3
  122. package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -1
  123. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  124. package/dist/components/DateInput/DateInput.d.ts +1 -1
  125. package/dist/components/DateInput/DateInput.js +2 -3
  126. package/dist/components/DateInput/DateInput.js.map +1 -1
  127. package/dist/components/DateRangeInput/DateRangeInput.d.ts +1 -1
  128. package/dist/components/DateRangeInput/DateRangeInput.js +1 -1
  129. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  130. package/dist/components/DirectionProvider/DirectionProvider.d.ts +1 -1
  131. package/dist/components/DirectionProvider/DirectionProvider.js +1 -1
  132. package/dist/components/DirectionProvider/DirectionProvider.js.map +1 -1
  133. package/dist/components/Div/Div.d.ts +1 -1
  134. package/dist/components/Div/Div.js +1 -1
  135. package/dist/components/Div/Div.js.map +1 -1
  136. package/dist/components/DropZone/DropZone.d.ts +1 -1
  137. package/dist/components/DropZone/DropZone.js +1 -1
  138. package/dist/components/DropZone/DropZone.js.map +1 -1
  139. package/dist/components/Epic/Epic.d.ts +1 -1
  140. package/dist/components/Epic/Epic.js +1 -1
  141. package/dist/components/Epic/Epic.js.map +1 -1
  142. package/dist/components/Epic/ScrollSaver.d.ts +0 -3
  143. package/dist/components/Epic/ScrollSaver.d.ts.map +1 -1
  144. package/dist/components/Epic/ScrollSaver.js +1 -3
  145. package/dist/components/Epic/ScrollSaver.js.map +1 -1
  146. package/dist/components/File/File.d.ts +1 -1
  147. package/dist/components/File/File.js +1 -1
  148. package/dist/components/File/File.js.map +1 -1
  149. package/dist/components/FixedLayout/FixedLayout.d.ts +1 -1
  150. package/dist/components/FixedLayout/FixedLayout.js +1 -1
  151. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  152. package/dist/components/Flex/Flex.d.ts +3 -0
  153. package/dist/components/Flex/Flex.d.ts.map +1 -1
  154. package/dist/components/Flex/Flex.js +3 -1
  155. package/dist/components/Flex/Flex.js.map +1 -1
  156. package/dist/components/FocusTrap/FocusTrap.d.ts +0 -3
  157. package/dist/components/FocusTrap/FocusTrap.d.ts.map +1 -1
  158. package/dist/components/FocusTrap/FocusTrap.js +1 -3
  159. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  160. package/dist/components/Footer/Footer.d.ts +1 -1
  161. package/dist/components/Footer/Footer.js +1 -1
  162. package/dist/components/Footer/Footer.js.map +1 -1
  163. package/dist/components/FormField/FormField.d.ts +3 -3
  164. package/dist/components/FormField/FormField.js +1 -1
  165. package/dist/components/FormField/FormField.js.map +1 -1
  166. package/dist/components/FormItem/FormItem.d.ts +1 -1
  167. package/dist/components/FormItem/FormItem.js +1 -1
  168. package/dist/components/FormItem/FormItem.js.map +1 -1
  169. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +1 -1
  170. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +1 -1
  171. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  172. package/dist/components/FormStatus/FormStatus.d.ts +1 -1
  173. package/dist/components/FormStatus/FormStatus.js +1 -1
  174. package/dist/components/FormStatus/FormStatus.js.map +1 -1
  175. package/dist/components/Gallery/Gallery.d.ts +1 -1
  176. package/dist/components/Gallery/Gallery.js +1 -1
  177. package/dist/components/Gallery/Gallery.js.map +1 -1
  178. package/dist/components/Gradient/Gradient.d.ts +1 -1
  179. package/dist/components/Gradient/Gradient.js +1 -1
  180. package/dist/components/Gradient/Gradient.js.map +1 -1
  181. package/dist/components/GridAvatar/GridAvatar.d.ts +1 -1
  182. package/dist/components/GridAvatar/GridAvatar.js +1 -1
  183. package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
  184. package/dist/components/Group/Group.d.ts +1 -1
  185. package/dist/components/Group/Group.js +1 -1
  186. package/dist/components/Group/Group.js.map +1 -1
  187. package/dist/components/Header/Header.d.ts +1 -1
  188. package/dist/components/Header/Header.js +1 -1
  189. package/dist/components/Header/Header.js.map +1 -1
  190. package/dist/components/HorizontalCell/HorizontalCell.d.ts +1 -1
  191. package/dist/components/HorizontalCell/HorizontalCell.js +1 -1
  192. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  193. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +3 -0
  194. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts.map +1 -1
  195. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js +3 -1
  196. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -1
  197. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
  198. package/dist/components/HorizontalScroll/HorizontalScroll.js +1 -1
  199. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  200. package/dist/components/IconButton/IconButton.d.ts +1 -1
  201. package/dist/components/IconButton/IconButton.js +1 -1
  202. package/dist/components/IconButton/IconButton.js.map +1 -1
  203. package/dist/components/Image/Image.d.ts +1 -1
  204. package/dist/components/Image/Image.js +1 -1
  205. package/dist/components/Image/Image.js.map +1 -1
  206. package/dist/components/ImageBase/ImageBase.d.ts +1 -1
  207. package/dist/components/ImageBase/ImageBase.js +1 -1
  208. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  209. package/dist/components/InfoRow/InfoRow.d.ts +1 -1
  210. package/dist/components/InfoRow/InfoRow.js +1 -1
  211. package/dist/components/InfoRow/InfoRow.js.map +1 -1
  212. package/dist/components/Input/Input.d.ts +1 -1
  213. package/dist/components/Input/Input.js +1 -1
  214. package/dist/components/Input/Input.js.map +1 -1
  215. package/dist/components/Link/Link.d.ts +1 -1
  216. package/dist/components/Link/Link.js +1 -1
  217. package/dist/components/Link/Link.js.map +1 -1
  218. package/dist/components/List/List.d.ts +1 -1
  219. package/dist/components/List/List.js +1 -1
  220. package/dist/components/List/List.js.map +1 -1
  221. package/dist/components/LocaleProvider/LocaleProvider.d.ts +1 -1
  222. package/dist/components/LocaleProvider/LocaleProvider.js +1 -1
  223. package/dist/components/LocaleProvider/LocaleProvider.js.map +1 -1
  224. package/dist/components/Mark/Mark.d.ts +1 -1
  225. package/dist/components/Mark/Mark.js +1 -1
  226. package/dist/components/Mark/Mark.js.map +1 -1
  227. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts +1 -1
  228. package/dist/components/MiniInfoCell/MiniInfoCell.js +1 -1
  229. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  230. package/dist/components/ModalCard/ModalCard.d.ts +1 -1
  231. package/dist/components/ModalCard/ModalCard.js +1 -1
  232. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  233. package/dist/components/ModalCardBase/ModalCardBase.d.ts +3 -3
  234. package/dist/components/ModalCardBase/ModalCardBase.js +1 -1
  235. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  236. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +1 -1
  237. package/dist/components/ModalDismissButton/ModalDismissButton.js +1 -1
  238. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  239. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts +1 -1
  240. package/dist/components/ModalOutsideButton/ModalOutsideButton.js +1 -1
  241. package/dist/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -1
  242. package/dist/components/ModalPage/ModalPage.d.ts +1 -1
  243. package/dist/components/ModalPage/ModalPage.js +1 -1
  244. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  245. package/dist/components/ModalPage/ModalPageBase.d.ts.map +1 -1
  246. package/dist/components/ModalPage/ModalPageBase.js +2 -2
  247. package/dist/components/ModalPage/ModalPageBase.js.map +1 -1
  248. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts +1 -1
  249. package/dist/components/ModalPageHeader/ModalPageHeader.js +1 -1
  250. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  251. package/dist/components/ModalRoot/ModalRoot.d.ts +1 -1
  252. package/dist/components/ModalRoot/ModalRoot.js +1 -1
  253. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  254. package/dist/components/NativeSelect/NativeSelect.d.ts +1 -1
  255. package/dist/components/NativeSelect/NativeSelect.js +1 -1
  256. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  257. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +1 -1
  258. package/dist/components/OnboardingTooltip/OnboardingTooltip.js +1 -1
  259. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  260. package/dist/components/Pagination/Pagination.d.ts +3 -3
  261. package/dist/components/Pagination/Pagination.js +1 -1
  262. package/dist/components/Pagination/Pagination.js.map +1 -1
  263. package/dist/components/Panel/Panel.d.ts +3 -3
  264. package/dist/components/Panel/Panel.js +1 -1
  265. package/dist/components/Panel/Panel.js.map +1 -1
  266. package/dist/components/PanelHeader/PanelHeader.d.ts +1 -1
  267. package/dist/components/PanelHeader/PanelHeader.js +1 -1
  268. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  269. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  270. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +1 -1
  271. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  272. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts +1 -1
  273. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  274. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  275. package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts +1 -1
  276. package/dist/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
  277. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  278. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts +1 -1
  279. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +1 -1
  280. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  281. package/dist/components/PanelHeaderContext/PanelHeaderContext.d.ts +1 -1
  282. package/dist/components/PanelHeaderContext/PanelHeaderContext.js +1 -1
  283. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  284. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +1 -1
  285. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
  286. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  287. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +1 -1
  288. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
  289. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  290. package/dist/components/PanelSpinner/PanelSpinner.d.ts +1 -1
  291. package/dist/components/PanelSpinner/PanelSpinner.js +1 -1
  292. package/dist/components/PanelSpinner/PanelSpinner.js.map +1 -1
  293. package/dist/components/Placeholder/Placeholder.d.ts +1 -1
  294. package/dist/components/Placeholder/Placeholder.js +1 -1
  295. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  296. package/dist/components/PlatformProvider/PlatformProvider.d.ts +1 -1
  297. package/dist/components/PlatformProvider/PlatformProvider.js +1 -1
  298. package/dist/components/PlatformProvider/PlatformProvider.js.map +1 -1
  299. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +1 -1
  300. package/dist/components/PopoutWrapper/PopoutWrapper.js +1 -1
  301. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  302. package/dist/components/Popover/Popover.d.ts +1 -1
  303. package/dist/components/Popover/Popover.js +1 -1
  304. package/dist/components/Popover/Popover.js.map +1 -1
  305. package/dist/components/Popper/Popper.d.ts +1 -1
  306. package/dist/components/Popper/Popper.js +1 -1
  307. package/dist/components/Popper/Popper.js.map +1 -1
  308. package/dist/components/Progress/Progress.d.ts +1 -1
  309. package/dist/components/Progress/Progress.js +1 -1
  310. package/dist/components/Progress/Progress.js.map +1 -1
  311. package/dist/components/PullToRefresh/PullToRefresh.d.ts +1 -1
  312. package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
  313. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  314. package/dist/components/Radio/Radio.d.ts +1 -1
  315. package/dist/components/Radio/Radio.js +1 -1
  316. package/dist/components/Radio/Radio.js.map +1 -1
  317. package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
  318. package/dist/components/RadioGroup/RadioGroup.js +1 -1
  319. package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
  320. package/dist/components/RichCell/RichCell.d.ts +3 -3
  321. package/dist/components/RichCell/RichCell.js +1 -1
  322. package/dist/components/RichCell/RichCell.js.map +1 -1
  323. package/dist/components/Root/Root.d.ts +1 -1
  324. package/dist/components/Root/Root.js +1 -1
  325. package/dist/components/Root/Root.js.map +1 -1
  326. package/dist/components/ScreenSpinner/ScreenSpinner.d.ts +1 -1
  327. package/dist/components/ScreenSpinner/ScreenSpinner.js +1 -1
  328. package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  329. package/dist/components/ScrollArrow/ScrollArrow.d.ts +1 -1
  330. package/dist/components/ScrollArrow/ScrollArrow.js +1 -1
  331. package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
  332. package/dist/components/Search/Search.d.ts +1 -1
  333. package/dist/components/Search/Search.js +1 -1
  334. package/dist/components/Search/Search.js.map +1 -1
  335. package/dist/components/SegmentedControl/SegmentedControl.d.ts +1 -1
  336. package/dist/components/SegmentedControl/SegmentedControl.js +1 -1
  337. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  338. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +0 -3
  339. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  340. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +1 -3
  341. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  342. package/dist/components/Select/Select.d.ts +1 -1
  343. package/dist/components/Select/Select.js +1 -1
  344. package/dist/components/Select/Select.js.map +1 -1
  345. package/dist/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  346. package/dist/components/SelectMimicry/SelectMimicry.js +1 -1
  347. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  348. package/dist/components/SelectionControl/SelectionControl.d.ts +1 -1
  349. package/dist/components/SelectionControl/SelectionControl.js +1 -1
  350. package/dist/components/SelectionControl/SelectionControl.js.map +1 -1
  351. package/dist/components/Separator/Separator.d.ts +1 -1
  352. package/dist/components/Separator/Separator.js +1 -1
  353. package/dist/components/Separator/Separator.js.map +1 -1
  354. package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
  355. package/dist/components/SimpleCell/SimpleCell.js +1 -1
  356. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  357. package/dist/components/SimpleGrid/SimpleGrid.d.ts +3 -0
  358. package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
  359. package/dist/components/SimpleGrid/SimpleGrid.js +3 -1
  360. package/dist/components/SimpleGrid/SimpleGrid.js.map +1 -1
  361. package/dist/components/Skeleton/Skeleton.d.ts +3 -0
  362. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  363. package/dist/components/Skeleton/Skeleton.js +3 -0
  364. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  365. package/dist/components/Slider/Slider.d.ts +1 -1
  366. package/dist/components/Slider/Slider.js +1 -1
  367. package/dist/components/Slider/Slider.js.map +1 -1
  368. package/dist/components/Snackbar/Snackbar.d.ts +1 -1
  369. package/dist/components/Snackbar/Snackbar.js +1 -1
  370. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  371. package/dist/components/Spacing/Spacing.d.ts +1 -1
  372. package/dist/components/Spacing/Spacing.js +1 -1
  373. package/dist/components/Spacing/Spacing.js.map +1 -1
  374. package/dist/components/Spinner/Spinner.d.ts +1 -1
  375. package/dist/components/Spinner/Spinner.js +1 -1
  376. package/dist/components/Spinner/Spinner.js.map +1 -1
  377. package/dist/components/SplitCol/SplitCol.d.ts +1 -1
  378. package/dist/components/SplitCol/SplitCol.js +1 -1
  379. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  380. package/dist/components/SplitLayout/SplitLayout.d.ts +1 -1
  381. package/dist/components/SplitLayout/SplitLayout.js +1 -1
  382. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  383. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +1 -1
  384. package/dist/components/SubnavigationBar/SubnavigationBar.js +1 -1
  385. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  386. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts +1 -1
  387. package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -1
  388. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  389. package/dist/components/Switch/Switch.d.ts +1 -1
  390. package/dist/components/Switch/Switch.js +1 -1
  391. package/dist/components/Switch/Switch.js.map +1 -1
  392. package/dist/components/Tabbar/Tabbar.d.ts +1 -1
  393. package/dist/components/Tabbar/Tabbar.js +1 -1
  394. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  395. package/dist/components/TabbarItem/TabbarItem.d.ts +1 -1
  396. package/dist/components/TabbarItem/TabbarItem.js +1 -1
  397. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  398. package/dist/components/Tabs/Tabs.d.ts +1 -1
  399. package/dist/components/Tabs/Tabs.js +1 -1
  400. package/dist/components/Tabs/Tabs.js.map +1 -1
  401. package/dist/components/TabsItem/TabsItem.d.ts +3 -3
  402. package/dist/components/TabsItem/TabsItem.js +1 -1
  403. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  404. package/dist/components/Textarea/Textarea.d.ts +1 -1
  405. package/dist/components/Textarea/Textarea.js +1 -1
  406. package/dist/components/Textarea/Textarea.js.map +1 -1
  407. package/dist/components/ToolButton/ToolButton.d.ts +1 -1
  408. package/dist/components/ToolButton/ToolButton.js +1 -1
  409. package/dist/components/ToolButton/ToolButton.js.map +1 -1
  410. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  411. package/dist/components/Tooltip/Tooltip.js +1 -1
  412. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  413. package/dist/components/TooltipBase/TooltipBase.d.ts +0 -2
  414. package/dist/components/TooltipBase/TooltipBase.d.ts.map +1 -1
  415. package/dist/components/TooltipBase/TooltipBase.js +0 -2
  416. package/dist/components/TooltipBase/TooltipBase.js.map +1 -1
  417. package/dist/components/Touch/Touch.d.ts +1 -1
  418. package/dist/components/Touch/Touch.js +1 -1
  419. package/dist/components/Touch/Touch.js.map +1 -1
  420. package/dist/components/Typography/Caption/Caption.d.ts +1 -1
  421. package/dist/components/Typography/Caption/Caption.js +1 -1
  422. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  423. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts +1 -1
  424. package/dist/components/Typography/DisplayTitle/DisplayTitle.js +1 -1
  425. package/dist/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
  426. package/dist/components/Typography/EllipsisText/EllipsisText.d.ts +1 -1
  427. package/dist/components/Typography/EllipsisText/EllipsisText.js +1 -1
  428. package/dist/components/Typography/EllipsisText/EllipsisText.js.map +1 -1
  429. package/dist/components/Typography/Footnote/Footnote.d.ts +1 -1
  430. package/dist/components/Typography/Footnote/Footnote.js +1 -1
  431. package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
  432. package/dist/components/Typography/Headline/Headline.d.ts +1 -1
  433. package/dist/components/Typography/Headline/Headline.js +1 -1
  434. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  435. package/dist/components/Typography/Paragraph/Paragraph.d.ts +1 -1
  436. package/dist/components/Typography/Paragraph/Paragraph.js +1 -1
  437. package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
  438. package/dist/components/Typography/Subhead/Subhead.d.ts +1 -1
  439. package/dist/components/Typography/Subhead/Subhead.js +1 -1
  440. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  441. package/dist/components/Typography/Text/Text.d.ts +1 -1
  442. package/dist/components/Typography/Text/Text.js +1 -1
  443. package/dist/components/Typography/Text/Text.js.map +1 -1
  444. package/dist/components/Typography/Title/Title.d.ts +1 -1
  445. package/dist/components/Typography/Title/Title.js +1 -1
  446. package/dist/components/Typography/Title/Title.js.map +1 -1
  447. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts +4 -1
  448. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts.map +1 -1
  449. package/dist/components/UnstyledTextField/UnstyledTextField.js +4 -1
  450. package/dist/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
  451. package/dist/components/UsersStack/UsersStack.d.ts +1 -1
  452. package/dist/components/UsersStack/UsersStack.js +1 -1
  453. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  454. package/dist/components/View/View.d.ts +1 -1
  455. package/dist/components/View/View.js +1 -1
  456. package/dist/components/View/View.js.map +1 -1
  457. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  458. package/dist/components/VisuallyHidden/VisuallyHidden.js +1 -1
  459. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  460. package/dist/components/WriteBar/WriteBar.d.ts +1 -1
  461. package/dist/components/WriteBar/WriteBar.js +1 -1
  462. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  463. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts +1 -1
  464. package/dist/components/WriteBarIcon/WriteBarIcon.js +1 -1
  465. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  466. package/dist/components.css +1 -1
  467. package/dist/components.css.map +1 -1
  468. package/dist/cssm/components/Accordion/Accordion.js +6 -2
  469. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  470. package/dist/cssm/components/Accordion/AccordionContent.js +4 -1
  471. package/dist/cssm/components/Accordion/AccordionContent.js.map +1 -1
  472. package/dist/cssm/components/Accordion/AccordionContext.js +12 -0
  473. package/dist/cssm/components/Accordion/AccordionContext.js.map +1 -1
  474. package/dist/cssm/components/ActionSheet/ActionSheet.js +1 -1
  475. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  476. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +1 -1
  477. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  478. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js +1 -1
  479. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
  480. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +1 -1
  481. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  482. package/dist/cssm/components/Alert/Alert.js +1 -1
  483. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  484. package/dist/cssm/components/AppRoot/AppRoot.js +1 -1
  485. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  486. package/dist/cssm/components/AspectRatio/AspectRatio.js +1 -1
  487. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  488. package/dist/cssm/components/Avatar/Avatar.js +1 -1
  489. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  490. package/dist/cssm/components/Badge/Badge.js +1 -1
  491. package/dist/cssm/components/Badge/Badge.js.map +1 -1
  492. package/dist/cssm/components/Banner/Banner.js +1 -1
  493. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  494. package/dist/cssm/components/Button/Button.js +1 -1
  495. package/dist/cssm/components/Button/Button.js.map +1 -1
  496. package/dist/cssm/components/ButtonGroup/ButtonGroup.js +1 -1
  497. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  498. package/dist/cssm/components/Calendar/Calendar.js +1 -1
  499. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  500. package/dist/cssm/components/CalendarRange/CalendarRange.js +1 -1
  501. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  502. package/dist/cssm/components/Card/Card.js +1 -1
  503. package/dist/cssm/components/Card/Card.js.map +1 -1
  504. package/dist/cssm/components/CardGrid/CardGrid.js +1 -1
  505. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  506. package/dist/cssm/components/CardScroll/CardScroll.js +1 -1
  507. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  508. package/dist/cssm/components/Cell/Cell.js +1 -1
  509. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  510. package/dist/cssm/components/CellButton/CellButton.js +1 -1
  511. package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
  512. package/dist/cssm/components/CellButtonGroup/CellButtonGroup.js +1 -1
  513. package/dist/cssm/components/CellButtonGroup/CellButtonGroup.js.map +1 -1
  514. package/dist/cssm/components/Checkbox/Checkbox.js +1 -1
  515. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  516. package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -1
  517. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  518. package/dist/cssm/components/ChipsInputBase/Chip/Chip.js +1 -1
  519. package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  520. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +59 -34
  521. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  522. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +17 -3
  523. package/dist/cssm/components/ChipsInputBase/helpers.js +2 -0
  524. package/dist/cssm/components/ChipsInputBase/helpers.js.map +1 -1
  525. package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
  526. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +5 -4
  527. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  528. package/dist/cssm/components/Clickable/Clickable.js +77 -14
  529. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  530. package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js +1 -1
  531. package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
  532. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +1 -1
  533. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  534. package/dist/cssm/components/ContentBadge/ContentBadge.js +1 -1
  535. package/dist/cssm/components/ContentBadge/ContentBadge.js.map +1 -1
  536. package/dist/cssm/components/ContentCard/ContentCard.js +1 -1
  537. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  538. package/dist/cssm/components/Counter/Counter.js +1 -1
  539. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  540. package/dist/cssm/components/CustomScrollView/CustomScrollView.js +1 -1
  541. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  542. package/dist/cssm/components/CustomSelect/CustomSelect.js +1 -1
  543. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  544. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
  545. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  546. package/dist/cssm/components/DateInput/DateInput.js +2 -3
  547. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  548. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +1 -1
  549. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  550. package/dist/cssm/components/DirectionProvider/DirectionProvider.js +1 -1
  551. package/dist/cssm/components/DirectionProvider/DirectionProvider.js.map +1 -1
  552. package/dist/cssm/components/Div/Div.js +1 -1
  553. package/dist/cssm/components/Div/Div.js.map +1 -1
  554. package/dist/cssm/components/DropZone/DropZone.js +1 -1
  555. package/dist/cssm/components/DropZone/DropZone.js.map +1 -1
  556. package/dist/cssm/components/Epic/Epic.js +1 -1
  557. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  558. package/dist/cssm/components/Epic/ScrollSaver.js +1 -3
  559. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  560. package/dist/cssm/components/File/File.js +1 -1
  561. package/dist/cssm/components/File/File.js.map +1 -1
  562. package/dist/cssm/components/FixedLayout/FixedLayout.js +1 -1
  563. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  564. package/dist/cssm/components/Flex/Flex.js +3 -1
  565. package/dist/cssm/components/Flex/Flex.js.map +1 -1
  566. package/dist/cssm/components/FocusTrap/FocusTrap.js +1 -3
  567. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  568. package/dist/cssm/components/Footer/Footer.js +1 -1
  569. package/dist/cssm/components/Footer/Footer.js.map +1 -1
  570. package/dist/cssm/components/FormField/FormField.js +1 -1
  571. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  572. package/dist/cssm/components/FormItem/FormItem.js +1 -1
  573. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  574. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +1 -1
  575. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  576. package/dist/cssm/components/FormStatus/FormStatus.js +1 -1
  577. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  578. package/dist/cssm/components/Gallery/Gallery.js +1 -1
  579. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  580. package/dist/cssm/components/Gradient/Gradient.js +1 -1
  581. package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
  582. package/dist/cssm/components/GridAvatar/GridAvatar.js +1 -1
  583. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  584. package/dist/cssm/components/Group/Group.js +1 -1
  585. package/dist/cssm/components/Group/Group.js.map +1 -1
  586. package/dist/cssm/components/Header/Header.js +1 -1
  587. package/dist/cssm/components/Header/Header.js.map +1 -1
  588. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +1 -1
  589. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  590. package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js +3 -1
  591. package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -1
  592. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +1 -1
  593. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  594. package/dist/cssm/components/IconButton/IconButton.js +1 -1
  595. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  596. package/dist/cssm/components/Image/Image.js +1 -1
  597. package/dist/cssm/components/Image/Image.js.map +1 -1
  598. package/dist/cssm/components/ImageBase/ImageBase.js +1 -1
  599. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  600. package/dist/cssm/components/InfoRow/InfoRow.js +1 -1
  601. package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
  602. package/dist/cssm/components/Input/Input.js +1 -1
  603. package/dist/cssm/components/Input/Input.js.map +1 -1
  604. package/dist/cssm/components/Link/Link.js +1 -1
  605. package/dist/cssm/components/Link/Link.js.map +1 -1
  606. package/dist/cssm/components/List/List.js +1 -1
  607. package/dist/cssm/components/List/List.js.map +1 -1
  608. package/dist/cssm/components/LocaleProvider/LocaleProvider.js +1 -1
  609. package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
  610. package/dist/cssm/components/Mark/Mark.js +1 -1
  611. package/dist/cssm/components/Mark/Mark.js.map +1 -1
  612. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +1 -1
  613. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  614. package/dist/cssm/components/ModalCard/ModalCard.js +1 -1
  615. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  616. package/dist/cssm/components/ModalCard/ModalCard.module.css +14 -9
  617. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +1 -1
  618. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  619. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -1
  620. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  621. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js +1 -1
  622. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -1
  623. package/dist/cssm/components/ModalPage/ModalPage.js +1 -1
  624. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  625. package/dist/cssm/components/ModalPage/ModalPage.module.css +6 -2
  626. package/dist/cssm/components/ModalPage/ModalPageBase.js +2 -2
  627. package/dist/cssm/components/ModalPage/ModalPageBase.js.map +1 -1
  628. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +1 -1
  629. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  630. package/dist/cssm/components/ModalRoot/ModalRoot.js +1 -1
  631. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  632. package/dist/cssm/components/NativeSelect/NativeSelect.js +1 -1
  633. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  634. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +1 -1
  635. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  636. package/dist/cssm/components/Pagination/Pagination.js +1 -1
  637. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  638. package/dist/cssm/components/Panel/Panel.js +1 -1
  639. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  640. package/dist/cssm/components/PanelHeader/PanelHeader.js +1 -1
  641. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  642. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +1 -1
  643. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  644. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  645. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  646. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
  647. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  648. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +1 -1
  649. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  650. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +1 -1
  651. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  652. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
  653. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  654. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
  655. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  656. package/dist/cssm/components/PanelSpinner/PanelSpinner.js +1 -1
  657. package/dist/cssm/components/PanelSpinner/PanelSpinner.js.map +1 -1
  658. package/dist/cssm/components/Placeholder/Placeholder.js +1 -1
  659. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  660. package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
  661. package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
  662. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +1 -1
  663. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  664. package/dist/cssm/components/Popover/Popover.js +1 -1
  665. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  666. package/dist/cssm/components/Popper/Popper.js +1 -1
  667. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  668. package/dist/cssm/components/Progress/Progress.js +1 -1
  669. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  670. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +1 -1
  671. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  672. package/dist/cssm/components/Radio/Radio.js +1 -1
  673. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  674. package/dist/cssm/components/RadioGroup/RadioGroup.js +1 -1
  675. package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
  676. package/dist/cssm/components/RichCell/RichCell.js +1 -1
  677. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  678. package/dist/cssm/components/Root/Root.js +1 -1
  679. package/dist/cssm/components/Root/Root.js.map +1 -1
  680. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +1 -1
  681. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  682. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +1 -1
  683. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  684. package/dist/cssm/components/Search/Search.js +1 -1
  685. package/dist/cssm/components/Search/Search.js.map +1 -1
  686. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +1 -1
  687. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  688. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +1 -3
  689. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  690. package/dist/cssm/components/Select/Select.js +1 -1
  691. package/dist/cssm/components/Select/Select.js.map +1 -1
  692. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -1
  693. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  694. package/dist/cssm/components/SelectionControl/SelectionControl.js +1 -1
  695. package/dist/cssm/components/SelectionControl/SelectionControl.js.map +1 -1
  696. package/dist/cssm/components/Separator/Separator.js +1 -1
  697. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  698. package/dist/cssm/components/SimpleCell/SimpleCell.js +1 -1
  699. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  700. package/dist/cssm/components/SimpleGrid/SimpleGrid.js +3 -1
  701. package/dist/cssm/components/SimpleGrid/SimpleGrid.js.map +1 -1
  702. package/dist/cssm/components/Skeleton/Skeleton.js +3 -0
  703. package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
  704. package/dist/cssm/components/Slider/Slider.js +1 -1
  705. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  706. package/dist/cssm/components/Snackbar/Snackbar.js +1 -1
  707. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  708. package/dist/cssm/components/Spacing/Spacing.js +1 -1
  709. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  710. package/dist/cssm/components/Spinner/Spinner.js +1 -1
  711. package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
  712. package/dist/cssm/components/SplitCol/SplitCol.js +1 -1
  713. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  714. package/dist/cssm/components/SplitLayout/SplitLayout.js +1 -1
  715. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  716. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -1
  717. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  718. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -1
  719. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  720. package/dist/cssm/components/Switch/Switch.js +1 -1
  721. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  722. package/dist/cssm/components/Tabbar/Tabbar.js +1 -1
  723. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  724. package/dist/cssm/components/TabbarItem/TabbarItem.js +1 -1
  725. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  726. package/dist/cssm/components/Tabs/Tabs.js +1 -1
  727. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  728. package/dist/cssm/components/TabsItem/TabsItem.js +1 -1
  729. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  730. package/dist/cssm/components/Textarea/Textarea.js +1 -1
  731. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  732. package/dist/cssm/components/ToolButton/ToolButton.js +1 -1
  733. package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
  734. package/dist/cssm/components/Tooltip/Tooltip.js +1 -1
  735. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  736. package/dist/cssm/components/TooltipBase/TooltipBase.js +0 -2
  737. package/dist/cssm/components/TooltipBase/TooltipBase.js.map +1 -1
  738. package/dist/cssm/components/Touch/Touch.js +1 -1
  739. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  740. package/dist/cssm/components/Typography/Caption/Caption.js +1 -1
  741. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  742. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js +1 -1
  743. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
  744. package/dist/cssm/components/Typography/EllipsisText/EllipsisText.js +1 -1
  745. package/dist/cssm/components/Typography/EllipsisText/EllipsisText.js.map +1 -1
  746. package/dist/cssm/components/Typography/Footnote/Footnote.js +1 -1
  747. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  748. package/dist/cssm/components/Typography/Headline/Headline.js +1 -1
  749. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  750. package/dist/cssm/components/Typography/Paragraph/Paragraph.js +1 -1
  751. package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
  752. package/dist/cssm/components/Typography/Subhead/Subhead.js +1 -1
  753. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  754. package/dist/cssm/components/Typography/Text/Text.js +1 -1
  755. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  756. package/dist/cssm/components/Typography/Title/Title.js +1 -1
  757. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  758. package/dist/cssm/components/UnstyledTextField/UnstyledTextField.js +4 -1
  759. package/dist/cssm/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
  760. package/dist/cssm/components/UsersStack/UsersStack.js +1 -1
  761. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  762. package/dist/cssm/components/View/View.js +1 -1
  763. package/dist/cssm/components/View/View.js.map +1 -1
  764. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +1 -1
  765. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  766. package/dist/cssm/components/WriteBar/WriteBar.js +1 -1
  767. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  768. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +1 -1
  769. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  770. package/dist/cssm/hooks/useAdaptivity.js +1 -1
  771. package/dist/cssm/hooks/useAdaptivity.js.map +1 -1
  772. package/dist/cssm/index.js +1 -1
  773. package/dist/cssm/index.js.map +1 -1
  774. package/dist/cssm/lib/SSR.js +1 -1
  775. package/dist/cssm/lib/SSR.js.map +1 -1
  776. package/dist/cssm/lib/accessibility.js +4 -0
  777. package/dist/cssm/lib/accessibility.js.map +1 -1
  778. package/dist/hooks/useAdaptivity.d.ts +1 -1
  779. package/dist/hooks/useAdaptivity.js +1 -1
  780. package/dist/hooks/useAdaptivity.js.map +1 -1
  781. package/dist/index.d.ts +1 -1
  782. package/dist/index.d.ts.map +1 -1
  783. package/dist/index.js +1 -1
  784. package/dist/index.js.map +1 -1
  785. package/dist/lib/SSR.d.ts +1 -1
  786. package/dist/lib/SSR.js +1 -1
  787. package/dist/lib/SSR.js.map +1 -1
  788. package/dist/lib/accessibility.d.ts +1 -1
  789. package/dist/lib/accessibility.d.ts.map +1 -1
  790. package/dist/lib/accessibility.js +4 -0
  791. package/dist/lib/accessibility.js.map +1 -1
  792. package/dist/vkui.css +1 -1
  793. package/dist/vkui.css.map +1 -1
  794. package/package.json +5 -4
  795. package/src/components/Accordion/Accordion.tsx +13 -4
  796. package/src/components/Accordion/AccordionContent.tsx +5 -1
  797. package/src/components/Accordion/AccordionContext.tsx +17 -0
  798. package/src/components/ActionSheet/ActionSheet.tsx +1 -1
  799. package/src/components/ActionSheetItem/ActionSheetItem.tsx +1 -1
  800. package/src/components/AdaptiveIconRenderer/AdaptiveIconRenderer.tsx +1 -1
  801. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +1 -1
  802. package/src/components/Alert/Alert.tsx +1 -1
  803. package/src/components/AppRoot/AppRoot.mdx +1 -1
  804. package/src/components/AppRoot/AppRoot.tsx +3 -3
  805. package/src/components/AspectRatio/AspectRatio.tsx +1 -1
  806. package/src/components/Avatar/Avatar.tsx +1 -1
  807. package/src/components/Badge/Badge.tsx +1 -1
  808. package/src/components/Banner/Banner.tsx +3 -3
  809. package/src/components/Button/Button.tsx +1 -1
  810. package/src/components/ButtonGroup/ButtonGroup.tsx +1 -1
  811. package/src/components/Calendar/Calendar.tsx +1 -1
  812. package/src/components/CalendarRange/CalendarRange.tsx +1 -1
  813. package/src/components/Card/Card.tsx +1 -1
  814. package/src/components/CardGrid/CardGrid.tsx +1 -1
  815. package/src/components/CardScroll/CardScroll.tsx +1 -1
  816. package/src/components/Cell/Cell.tsx +1 -1
  817. package/src/components/CellButton/CellButton.tsx +1 -1
  818. package/src/components/CellButtonGroup/CellButtonGroup.tsx +1 -1
  819. package/src/components/Checkbox/Checkbox.tsx +1 -1
  820. package/src/components/ChipsInput/ChipsInput.tsx +1 -1
  821. package/src/components/ChipsInputBase/Chip/Chip.tsx +1 -1
  822. package/src/components/ChipsInputBase/ChipsInputBase.module.css +15 -3
  823. package/src/components/ChipsInputBase/ChipsInputBase.module.css.d.ts.map +1 -1
  824. package/src/components/ChipsInputBase/ChipsInputBase.tsx +68 -37
  825. package/src/components/ChipsInputBase/helpers.ts +2 -0
  826. package/src/components/ChipsInputBase/types.ts +5 -1
  827. package/src/components/ChipsSelect/ChipsSelect.tsx +5 -2
  828. package/src/components/Clickable/Clickable.tsx +141 -32
  829. package/src/components/ColorSchemeProvider/ColorSchemeProvider.tsx +1 -1
  830. package/src/components/ConfigProvider/ConfigProvider.tsx +1 -1
  831. package/src/components/ContentBadge/ContentBadge.tsx +1 -1
  832. package/src/components/ContentCard/ContentCard.tsx +1 -1
  833. package/src/components/Counter/Counter.tsx +1 -1
  834. package/src/components/CustomScrollView/CustomScrollView.tsx +1 -1
  835. package/src/components/CustomSelect/CustomSelect.tsx +2 -2
  836. package/src/components/CustomSelectOption/CustomSelectOption.tsx +3 -3
  837. package/src/components/DateInput/DateInput.tsx +1 -1
  838. package/src/components/DateRangeInput/DateRangeInput.tsx +1 -1
  839. package/src/components/DirectionProvider/DirectionProvider.tsx +1 -1
  840. package/src/components/Div/Div.tsx +1 -1
  841. package/src/components/DropZone/DropZone.tsx +1 -1
  842. package/src/components/Epic/Epic.tsx +1 -1
  843. package/src/components/Epic/ScrollSaver.tsx +0 -3
  844. package/src/components/File/File.tsx +1 -1
  845. package/src/components/FixedLayout/FixedLayout.tsx +1 -1
  846. package/src/components/Flex/Flex.tsx +3 -0
  847. package/src/components/FocusTrap/FocusTrap.tsx +0 -3
  848. package/src/components/Footer/Footer.tsx +1 -1
  849. package/src/components/FormField/FormField.tsx +3 -3
  850. package/src/components/FormItem/FormItem.tsx +1 -1
  851. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +1 -1
  852. package/src/components/FormStatus/FormStatus.tsx +1 -1
  853. package/src/components/Gallery/Gallery.tsx +1 -1
  854. package/src/components/Gradient/Gradient.tsx +1 -1
  855. package/src/components/GridAvatar/GridAvatar.tsx +1 -1
  856. package/src/components/Group/Group.tsx +1 -1
  857. package/src/components/Header/Header.tsx +1 -1
  858. package/src/components/HorizontalCell/HorizontalCell.tsx +1 -1
  859. package/src/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.tsx +3 -0
  860. package/src/components/HorizontalScroll/HorizontalScroll.tsx +1 -1
  861. package/src/components/IconButton/IconButton.tsx +1 -1
  862. package/src/components/Image/Image.tsx +1 -1
  863. package/src/components/ImageBase/ImageBase.tsx +1 -1
  864. package/src/components/InfoRow/InfoRow.tsx +1 -1
  865. package/src/components/Input/Input.tsx +1 -1
  866. package/src/components/Link/Link.tsx +1 -1
  867. package/src/components/List/List.tsx +1 -1
  868. package/src/components/LocaleProvider/LocaleProvider.tsx +1 -1
  869. package/src/components/Mark/Mark.tsx +1 -1
  870. package/src/components/MiniInfoCell/MiniInfoCell.tsx +1 -1
  871. package/src/components/ModalCard/ModalCard.module.css +14 -8
  872. package/src/components/ModalCard/ModalCard.module.css.d.ts.map +1 -1
  873. package/src/components/ModalCard/ModalCard.tsx +1 -1
  874. package/src/components/ModalCardBase/ModalCardBase.tsx +3 -3
  875. package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -1
  876. package/src/components/ModalOutsideButton/ModalOutsideButton.tsx +1 -1
  877. package/src/components/ModalPage/ModalPage.module.css +5 -1
  878. package/src/components/ModalPage/ModalPage.module.css.d.ts.map +1 -1
  879. package/src/components/ModalPage/ModalPage.tsx +1 -1
  880. package/src/components/ModalPage/ModalPageBase.tsx +7 -2
  881. package/src/components/ModalPageHeader/ModalPageHeader.tsx +1 -1
  882. package/src/components/ModalRoot/ModalRoot.tsx +1 -1
  883. package/src/components/NativeSelect/NativeSelect.tsx +1 -1
  884. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +1 -1
  885. package/src/components/Pagination/Pagination.tsx +3 -3
  886. package/src/components/Panel/Panel.tsx +3 -3
  887. package/src/components/PanelHeader/PanelHeader.tsx +1 -1
  888. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +1 -1
  889. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +1 -1
  890. package/src/components/PanelHeaderClose/PanelHeaderClose.tsx +1 -1
  891. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +1 -1
  892. package/src/components/PanelHeaderContext/PanelHeaderContext.tsx +1 -1
  893. package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +1 -1
  894. package/src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx +1 -1
  895. package/src/components/PanelSpinner/PanelSpinner.tsx +1 -1
  896. package/src/components/Placeholder/Placeholder.tsx +1 -1
  897. package/src/components/PlatformProvider/PlatformProvider.tsx +1 -1
  898. package/src/components/PopoutWrapper/PopoutWrapper.tsx +1 -1
  899. package/src/components/Popover/Popover.tsx +1 -1
  900. package/src/components/Popper/Popper.tsx +1 -1
  901. package/src/components/Progress/Progress.tsx +1 -1
  902. package/src/components/PullToRefresh/PullToRefresh.tsx +1 -1
  903. package/src/components/Radio/Radio.tsx +1 -1
  904. package/src/components/RadioGroup/RadioGroup.tsx +1 -1
  905. package/src/components/RichCell/RichCell.tsx +3 -3
  906. package/src/components/Root/Root.tsx +1 -1
  907. package/src/components/ScreenSpinner/ScreenSpinner.tsx +1 -1
  908. package/src/components/ScrollArrow/ScrollArrow.tsx +1 -1
  909. package/src/components/Search/Search.tsx +1 -1
  910. package/src/components/SegmentedControl/SegmentedControl.tsx +1 -1
  911. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +0 -3
  912. package/src/components/Select/Select.tsx +1 -1
  913. package/src/components/SelectMimicry/SelectMimicry.tsx +1 -1
  914. package/src/components/SelectionControl/SelectionControl.tsx +1 -1
  915. package/src/components/Separator/Separator.tsx +1 -1
  916. package/src/components/SimpleCell/SimpleCell.tsx +1 -1
  917. package/src/components/SimpleGrid/SimpleGrid.tsx +3 -0
  918. package/src/components/Skeleton/Skeleton.tsx +3 -0
  919. package/src/components/Slider/Slider.tsx +1 -1
  920. package/src/components/Snackbar/Snackbar.tsx +1 -1
  921. package/src/components/Spacing/Spacing.tsx +1 -1
  922. package/src/components/Spinner/Spinner.tsx +1 -1
  923. package/src/components/SplitCol/SplitCol.tsx +1 -1
  924. package/src/components/SplitLayout/SplitLayout.tsx +1 -1
  925. package/src/components/SubnavigationBar/SubnavigationBar.tsx +1 -1
  926. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -1
  927. package/src/components/Switch/Switch.tsx +1 -1
  928. package/src/components/Tabbar/Tabbar.tsx +1 -1
  929. package/src/components/TabbarItem/TabbarItem.tsx +1 -1
  930. package/src/components/Tabs/Tabs.tsx +1 -1
  931. package/src/components/TabsItem/TabsItem.tsx +3 -3
  932. package/src/components/Textarea/Textarea.tsx +1 -1
  933. package/src/components/ToolButton/ToolButton.tsx +1 -1
  934. package/src/components/Tooltip/Tooltip.tsx +1 -1
  935. package/src/components/TooltipBase/TooltipBase.tsx +0 -2
  936. package/src/components/Touch/Touch.tsx +1 -1
  937. package/src/components/Typography/Caption/Caption.tsx +1 -1
  938. package/src/components/Typography/DisplayTitle/DisplayTitle.tsx +1 -1
  939. package/src/components/Typography/EllipsisText/EllipsisText.tsx +1 -1
  940. package/src/components/Typography/Footnote/Footnote.tsx +1 -1
  941. package/src/components/Typography/Headline/Headline.tsx +1 -1
  942. package/src/components/Typography/Paragraph/Paragraph.tsx +1 -1
  943. package/src/components/Typography/Subhead/Subhead.tsx +1 -1
  944. package/src/components/Typography/Text/Text.tsx +1 -1
  945. package/src/components/Typography/Title/Title.tsx +1 -1
  946. package/src/components/UnstyledTextField/UnstyledTextField.mdx +1 -1
  947. package/src/components/UnstyledTextField/UnstyledTextField.tsx +4 -1
  948. package/src/components/UsersStack/UsersStack.tsx +1 -1
  949. package/src/components/View/View.tsx +1 -1
  950. package/src/components/VisuallyHidden/VisuallyHidden.tsx +1 -1
  951. package/src/components/WriteBar/WriteBar.tsx +1 -1
  952. package/src/components/WriteBarIcon/WriteBarIcon.tsx +1 -1
  953. package/src/hooks/useAdaptivity.ts +1 -1
  954. package/src/index.ts +1 -1
  955. package/src/lib/SSR.tsx +1 -1
  956. package/src/lib/accessibility.ts +6 -2
  957. package/dist/components/Clickable/RealClickable.d.ts +0 -6
  958. package/dist/components/Clickable/RealClickable.d.ts.map +0 -1
  959. package/dist/components/Clickable/RealClickable.js +0 -91
  960. package/dist/components/Clickable/RealClickable.js.map +0 -1
  961. package/dist/cssm/components/Clickable/RealClickable.js +0 -61
  962. package/dist/cssm/components/Clickable/RealClickable.js.map +0 -1
  963. package/src/components/Clickable/RealClickable.tsx +0 -100
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ChipsSelect/ChipsSelect.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { type MouseEventHandler } from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalOnEventOutside } from '../../hooks/useGlobalOnClickOutside';\nimport { Keys } from '../../lib/accessibility';\nimport type { Placement } from '../../lib/floating';\nimport { defaultFilterFn } from '../../lib/select';\nimport { ChipsInputBase } from '../ChipsInputBase/ChipsInputBase';\nimport {\n getNewOptionDataDefault,\n getOptionLabelDefault,\n getOptionValueDefault,\n renderChipDefault,\n} from '../ChipsInputBase/constants';\nimport type { ChipOption, ChipsInputBaseProps } from '../ChipsInputBase/types';\nimport {\n CustomSelectDropdown,\n type CustomSelectDropdownProps,\n} from '../CustomSelectDropdown/CustomSelectDropdown';\nimport {\n CustomSelectOption,\n type CustomSelectOptionProps,\n} from '../CustomSelectOption/CustomSelectOption';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport type { FormFieldProps } from '../FormField/FormField';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport {\n DEFAULT_EMPTY_TEXT,\n DEFAULT_SELECTED_BEHAVIOR,\n FOCUS_ACTION_NEXT,\n FOCUS_ACTION_PREV,\n isCreateNewOptionPreset,\n isEmptyOptionPreset,\n isNotServicePreset,\n renderOptionDefault,\n} from './constants';\nimport type { FocusActionType, OptionPreset } from './types';\nimport { useChipsSelect, type UseChipsSelectProps } from './useChipsSelect';\nimport styles from './ChipsSelect.module.css';\n\nconst findIndexAfter = <O extends ChipOption>(\n options: Array<OptionPreset<O>> = [],\n startIndex = -1,\n) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex(\n (option, i) => i > startIndex && (!isNotServicePreset(option) || !option.disabled),\n );\n};\n\nconst findIndexBefore = <O extends ChipOption>(\n options: Array<OptionPreset<O>> = [],\n endIndex: number = options.length,\n) => {\n let result = -1;\n if (endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!isNotServicePreset(option) || !option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nexport interface ChipsSelectProps<O extends ChipOption>\n extends ChipsInputBaseProps<O>,\n UseChipsSelectProps<O>,\n Pick<FormFieldProps, 'status' | 'mode' | 'before'>,\n Pick<CustomSelectDropdownProps, 'overscrollBehavior'> {\n /**\n * Расположение выпадающего списка.\n */\n placement?: 'top' | 'bottom';\n /**\n * Отрисовка Spinner вместо списка опций в выпадающем списке.\n */\n fetching?: boolean;\n /**\n * Закрытие выпадающего списка после выбора элемента.\n */\n closeAfterSelect?: boolean;\n /**\n * Ширина раскрывающегося списка зависит от контента.\n */\n dropdownAutoWidth?: boolean;\n /**\n * Принудительно использовать портал.\n */\n forceDropdownPortal?: boolean;\n /**\n * Передает атрибут `data-testid` для дропдауна.\n */\n dropdownTestId?: string;\n /**\n * Иконка раскрывающегося списка.\n */\n icon?: React.ReactNode;\n /**\n * Добавляет значение в список на событие `onBlur` (использовать вместе с `creatable`).\n */\n addOnBlur?: boolean;\n /**\n * Отключает максимальную высоту по умолчанию.\n */\n noMaxHeight?: boolean;\n /**\n * Функция для отрисовки кастомной опции в выпадающем списке.\n */\n renderOption?: (props: CustomSelectOptionProps, option: O) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Событие срабатывающее перед `onChange`.\n */\n onChangeStart?: (event: React.MouseEvent | React.KeyboardEvent, option: O) => void;\n\n /**\n * Отступ от выпадающего списка.\n */\n dropdownOffsetDistance?: number;\n\n /**\n * Если `true`, то справа будет отображаться кнопка для очистки значения.\n */\n allowClearButton?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ChipsSelect\n */\nexport const ChipsSelect = <Option extends ChipOption>({\n // FormFieldProps\n id: labelledbyId,\n getRootRef,\n className,\n status = 'default',\n icon: dropdownIconProp,\n onChangeStart,\n\n // CustomSelectDropdownProps\n options: optionsProp,\n placement: placementProp = 'bottom',\n closeAfterSelect = true,\n selectedBehavior = DEFAULT_SELECTED_BEHAVIOR,\n emptyText = DEFAULT_EMPTY_TEXT,\n creatable = false,\n fetching = false,\n dropdownAutoWidth,\n forceDropdownPortal,\n noMaxHeight = false,\n filterFn = defaultFilterFn,\n sortFn = false,\n dropdownTestId,\n onClose,\n onOpen,\n overscrollBehavior,\n renderDropdown,\n\n // ChipsInputProps\n getRef,\n value: valueProp,\n defaultValue,\n inputValue: inputValueProp,\n defaultInputValue,\n disabled,\n readOnly,\n getOptionValue = getOptionValueDefault,\n getOptionLabel = getOptionLabelDefault,\n getNewOptionData = getNewOptionDataDefault,\n renderChip = renderChipDefault,\n renderOption = renderOptionDefault,\n onChange,\n onFocus: onFocusProp,\n onInputChange: onInputChangeProp,\n onBlur: onBlurProp,\n onKeyDown: onKeyDownProp,\n dropdownOffsetDistance = 0,\n allowClearButton,\n clearButtonTestId,\n delimiter,\n ...restProps\n}: ChipsSelectProps<Option>): React.ReactNode => {\n const {\n // Связано с ChipsInputProps\n // option\n value,\n addOptionFromInput,\n addOption,\n removeOption,\n clearOptions,\n // input\n inputRef: inputRefHook,\n inputValue,\n clearInput,\n onInputChange,\n\n // Связано с CustomSelectDropdownProps\n options,\n opened,\n setOpened,\n focusedOption,\n focusedOptionIndex,\n setFocusedOption,\n setFocusedOptionIndex,\n } = useChipsSelect({\n // option\n value: valueProp,\n defaultValue,\n onChange,\n getOptionValue,\n getOptionLabel,\n getNewOptionData,\n\n // input\n inputValue: inputValueProp,\n defaultInputValue,\n onInputChange: onInputChangeProp,\n\n // dropdown\n options: optionsProp,\n emptyText,\n creatable,\n filterFn,\n sortFn,\n selectedBehavior,\n onClose,\n onOpen,\n\n // other\n disabled,\n delimiter,\n });\n\n // Связано с ChipsInputProps\n const rootRef = useExternRef(getRootRef);\n const inputRef = useExternRef(getRef, inputRefHook);\n\n // Связано с CustomSelectDropdownProps\n const [dropdownVerticalPlacement, setDropdownVerticalPlacement] = React.useState<\n 'top' | 'bottom'\n >(placementProp);\n\n const onDropdownPlacementChange = React.useCallback((placement: Placement) => {\n if (placement.startsWith('top')) {\n setDropdownVerticalPlacement('top');\n } else if (placement.startsWith('bottom')) {\n setDropdownVerticalPlacement('bottom');\n }\n }, []);\n\n const dropdownId = React.useId();\n const dropdownCurrentItemId =\n focusedOptionIndex !== null ? `${dropdownId}-${focusedOptionIndex}` : undefined;\n const dropdownScrollBoxRef = React.useRef<HTMLDivElement>(null);\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (onFocusProp) {\n onFocusProp(event);\n }\n\n if (!readOnly) {\n setOpened(true);\n setFocusedOptionIndex(null);\n }\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (onBlurProp) {\n onBlurProp(event);\n }\n\n // Не добавляем значение, если его нужно выбрать строго из списка\n if (!readOnly && !event.defaultPrevented && !creatable) {\n event.preventDefault();\n }\n };\n\n const chipsSelectOptions = React.useRef<HTMLElement[]>([]).current;\n\n const scrollToElement = (index: number, center = false) => {\n const dropdown = dropdownScrollBoxRef.current;\n const item = chipsSelectOptions[index];\n\n /* istanbul ignore if: невозможный кейс (в SSR вызова этой функции не будет) */\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n /* istanbul ignore next: нет представления как воспроизвести */\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n };\n\n const focusOptionByIndex = (index: number, oldIndex: number | null) => {\n if (index === oldIndex) {\n /* istanbul ignore next: нет представления как воспроизвести */\n return;\n }\n\n const option = options[index];\n\n if (isNotServicePreset(option) && option.disabled) {\n return;\n }\n\n scrollToElement(index);\n setFocusedOptionIndex(index);\n };\n\n const focusOption = (nextIndex: number | null, type: FocusActionType) => {\n let index = nextIndex === null ? -1 : nextIndex;\n\n if (type === FOCUS_ACTION_NEXT) {\n const nextIndex = findIndexAfter(options, index);\n index = nextIndex === -1 ? findIndexAfter(options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === FOCUS_ACTION_PREV) {\n const beforeIndex = findIndexBefore(options, index);\n index = beforeIndex === -1 ? findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n focusOptionByIndex(index, focusedOptionIndex);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (onKeyDownProp) {\n onKeyDownProp(event);\n }\n\n if (event.defaultPrevented || readOnly) {\n return;\n }\n\n switch (event.key) {\n case Keys.ARROW_UP:\n case Keys.ARROW_DOWN:\n event.preventDefault();\n\n if (!opened) {\n setOpened(true);\n focusOption(null, FOCUS_ACTION_NEXT);\n } else {\n focusOption(\n focusedOptionIndex,\n event.key === Keys.ARROW_UP ? FOCUS_ACTION_PREV : FOCUS_ACTION_NEXT,\n );\n }\n break;\n case Keys.ENTER: {\n if (!opened) {\n break;\n }\n if (focusedOptionIndex != null) {\n const foundOption = options[focusedOptionIndex];\n if (foundOption && isNotServicePreset(foundOption)) {\n event.preventDefault();\n\n if (onChangeStart) {\n onChangeStart(event, foundOption);\n }\n\n addOption(foundOption);\n setFocusedOptionIndex(null);\n clearInput();\n if (closeAfterSelect) {\n setOpened(false);\n }\n\n break;\n }\n }\n\n if (!creatable) {\n event.preventDefault();\n }\n break;\n }\n case Keys.ESCAPE:\n case Keys.TAB:\n if (opened) {\n setOpened(false);\n }\n }\n };\n\n React.useEffect(() => {\n if (focusedOptionIndex === null) {\n setFocusedOption(null);\n } else {\n const foundFocusedOptionIndex = options[focusedOptionIndex];\n\n if (foundFocusedOptionIndex && isNotServicePreset(foundFocusedOptionIndex)) {\n setFocusedOption(foundFocusedOptionIndex);\n }\n }\n }, [options, focusedOptionIndex, setFocusedOption]);\n\n const onDropdownMouseLeave = React.useCallback(() => {\n setFocusedOptionIndex(null);\n }, [setFocusedOptionIndex]);\n\n const handleClickOutside = React.useCallback(() => {\n setOpened(false);\n }, [setOpened]);\n\n useGlobalOnEventOutside(\n 'mousedown', // см. https://github.com/VKCOM/VKUI/pull/8582\n handleClickOutside,\n opened ? rootRef : null,\n opened ? dropdownScrollBoxRef : null,\n );\n\n const onDropdownIconClick: MouseEventHandler<SVGSVGElement> = React.useCallback(\n (e) => {\n if (opened) {\n e.preventDefault();\n setOpened(false);\n }\n },\n [opened, setOpened],\n );\n\n const dropdownContent = React.useMemo(() => {\n const defaultDropdownContent = options.map((option, index) => {\n const dropdownItemId = `${dropdownId}-${index}`;\n\n if (isEmptyOptionPreset(option)) {\n return (\n <Footnote key=\"empty-text\" className={styles.empty}>\n {option.placeholder}\n </Footnote>\n );\n }\n if (isCreateNewOptionPreset(option)) {\n return (\n <CustomSelectOption\n key=\"create-new-option\"\n id={dropdownItemId}\n hovered={focusedOptionIndex === index}\n onMouseDown={() => addOptionFromInput(inputValue)}\n onMouseEnter={() => setFocusedOptionIndex(index)}\n >\n {option.actionText}\n </CustomSelectOption>\n );\n }\n return (\n <React.Fragment key={`${typeof option.value}-${option.value}`}>\n {renderOption(\n {\n id: dropdownItemId,\n disabled: option.disabled,\n hovered: focusedOption\n ? getOptionValue(option) === getOptionValue(focusedOption)\n : false,\n children: option.label,\n selected: !!value.find(\n (selectedOption: Option) =>\n getOptionValue(selectedOption) === getOptionValue(option),\n ),\n getRootRef(node) {\n if (node) {\n chipsSelectOptions[index] = node;\n }\n },\n onMouseDown(event: React.MouseEvent<HTMLDivElement>) {\n if (option.disabled) {\n return;\n }\n if (onChangeStart) {\n onChangeStart(event, option);\n }\n\n if (!event.defaultPrevented) {\n closeAfterSelect && setOpened(false);\n addOption(option);\n clearInput();\n }\n },\n onMouseEnter() {\n setFocusedOptionIndex(index);\n },\n },\n option,\n )}\n </React.Fragment>\n );\n });\n\n if (renderDropdown) {\n return renderDropdown({\n defaultDropdownContent,\n });\n }\n return defaultDropdownContent;\n }, [\n addOption,\n addOptionFromInput,\n chipsSelectOptions,\n clearInput,\n closeAfterSelect,\n dropdownId,\n focusedOption,\n focusedOptionIndex,\n getOptionValue,\n inputValue,\n onChangeStart,\n options,\n renderDropdown,\n renderOption,\n setFocusedOptionIndex,\n setOpened,\n value,\n ]);\n\n const openedClassNames = React.useMemo(\n () =>\n (opened &&\n dropdownOffsetDistance === 0 &&\n (dropdownVerticalPlacement.includes('top') ? styles.popUp : styles.popDown)) ||\n undefined,\n [dropdownOffsetDistance, opened, dropdownVerticalPlacement],\n );\n\n const clearButtonShown = allowClearButton && (!!value.length || !!inputValue.length);\n\n return (\n <>\n <ChipsInputBase\n {...restProps}\n disabled={disabled}\n readOnly={readOnly}\n clearButtonShown={clearButtonShown}\n clearButtonTestId={clearButtonTestId}\n // FormFieldProps\n id={labelledbyId}\n getRootRef={rootRef}\n className={classNames(styles.host, openedClassNames, className)}\n status={status}\n after={\n dropdownIconProp || (\n <DropdownIcon\n opened={opened}\n onClick={onDropdownIconClick}\n className={classNames(\n styles.dropdownIcon,\n clearButtonShown && styles.dropdownIconWithOffset,\n )}\n />\n )\n }\n // option\n value={value}\n onAddChipOption={addOptionFromInput}\n onRemoveChipOption={removeOption}\n renderChip={renderChip}\n onClear={clearOptions}\n // input\n getRef={inputRef}\n inputValue={inputValue}\n onInputChange={onInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n // a11y\n role=\"combobox\"\n aria-expanded={opened}\n aria-autocomplete=\"list\"\n aria-controls={opened ? dropdownId : undefined}\n aria-activedescendant={opened ? dropdownCurrentItemId : undefined}\n aria-haspopup=\"listbox\"\n />\n {opened && (\n <CustomSelectDropdown\n data-testid={dropdownTestId}\n targetRef={rootRef}\n placement={dropdownVerticalPlacement}\n scrollBoxRef={dropdownScrollBoxRef}\n onPlacementChange={onDropdownPlacementChange}\n onMouseLeave={onDropdownMouseLeave}\n fetching={fetching}\n autoWidth={dropdownAutoWidth}\n forcePortal={forceDropdownPortal}\n noMaxHeight={noMaxHeight}\n offsetDistance={dropdownOffsetDistance}\n overscrollBehavior={overscrollBehavior}\n // a11y\n id={dropdownId}\n role=\"listbox\"\n aria-labelledby={labelledbyId}\n >\n {dropdownContent}\n </CustomSelectDropdown>\n )}\n </>\n );\n};\n"],"names":["React","classNames","useExternRef","useGlobalOnEventOutside","Keys","defaultFilterFn","ChipsInputBase","getNewOptionDataDefault","getOptionLabelDefault","getOptionValueDefault","renderChipDefault","CustomSelectDropdown","CustomSelectOption","DropdownIcon","Footnote","DEFAULT_EMPTY_TEXT","DEFAULT_SELECTED_BEHAVIOR","FOCUS_ACTION_NEXT","FOCUS_ACTION_PREV","isCreateNewOptionPreset","isEmptyOptionPreset","isNotServicePreset","renderOptionDefault","useChipsSelect","findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","ChipsSelect","id","labelledbyId","getRootRef","className","status","icon","dropdownIconProp","onChangeStart","optionsProp","placement","placementProp","closeAfterSelect","selectedBehavior","emptyText","creatable","fetching","dropdownAutoWidth","forceDropdownPortal","noMaxHeight","filterFn","sortFn","dropdownTestId","onClose","onOpen","overscrollBehavior","renderDropdown","getRef","value","valueProp","defaultValue","inputValue","inputValueProp","defaultInputValue","readOnly","getOptionValue","getOptionLabel","getNewOptionData","renderChip","renderOption","onChange","onFocus","onFocusProp","onInputChange","onInputChangeProp","onBlur","onBlurProp","onKeyDown","onKeyDownProp","dropdownOffsetDistance","allowClearButton","clearButtonTestId","delimiter","restProps","addOptionFromInput","addOption","removeOption","clearOptions","inputRef","inputRefHook","clearInput","opened","setOpened","focusedOption","focusedOptionIndex","setFocusedOption","setFocusedOptionIndex","rootRef","dropdownVerticalPlacement","setDropdownVerticalPlacement","useState","onDropdownPlacementChange","useCallback","startsWith","dropdownId","useId","dropdownCurrentItemId","undefined","dropdownScrollBoxRef","useRef","handleFocus","event","handleBlur","defaultPrevented","preventDefault","chipsSelectOptions","current","scrollToElement","index","center","dropdown","item","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","focusOptionByIndex","oldIndex","focusOption","nextIndex","type","beforeIndex","handleKeyDown","key","ARROW_UP","ARROW_DOWN","ENTER","foundOption","ESCAPE","TAB","useEffect","foundFocusedOptionIndex","onDropdownMouseLeave","handleClickOutside","onDropdownIconClick","e","dropdownContent","useMemo","defaultDropdownContent","map","dropdownItemId","placeholder","hovered","onMouseDown","onMouseEnter","actionText","Fragment","children","label","selected","find","selectedOption","node","openedClassNames","includes","clearButtonShown","after","onClick","onAddChipOption","onRemoveChipOption","onClear","role","aria-expanded","aria-autocomplete","aria-controls","aria-activedescendant","aria-haspopup","data-testid","targetRef","scrollBoxRef","onPlacementChange","onMouseLeave","autoWidth","forcePortal","offsetDistance","aria-labelledby"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/ChipsSelect/ChipsSelect.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { type MouseEventHandler } from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalOnEventOutside } from '../../hooks/useGlobalOnClickOutside';\nimport { Keys } from '../../lib/accessibility';\nimport type { Placement } from '../../lib/floating';\nimport { defaultFilterFn } from '../../lib/select';\nimport { ChipsInputBase } from '../ChipsInputBase/ChipsInputBase';\nimport {\n getNewOptionDataDefault,\n getOptionLabelDefault,\n getOptionValueDefault,\n renderChipDefault,\n} from '../ChipsInputBase/constants';\nimport type { ChipOption, ChipsInputBaseProps } from '../ChipsInputBase/types';\nimport {\n CustomSelectDropdown,\n type CustomSelectDropdownProps,\n} from '../CustomSelectDropdown/CustomSelectDropdown';\nimport {\n CustomSelectOption,\n type CustomSelectOptionProps,\n} from '../CustomSelectOption/CustomSelectOption';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport type { FormFieldProps } from '../FormField/FormField';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport {\n DEFAULT_EMPTY_TEXT,\n DEFAULT_SELECTED_BEHAVIOR,\n FOCUS_ACTION_NEXT,\n FOCUS_ACTION_PREV,\n isCreateNewOptionPreset,\n isEmptyOptionPreset,\n isNotServicePreset,\n renderOptionDefault,\n} from './constants';\nimport type { FocusActionType, OptionPreset } from './types';\nimport { useChipsSelect, type UseChipsSelectProps } from './useChipsSelect';\nimport styles from './ChipsSelect.module.css';\n\nconst findIndexAfter = <O extends ChipOption>(\n options: Array<OptionPreset<O>> = [],\n startIndex = -1,\n) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex(\n (option, i) => i > startIndex && (!isNotServicePreset(option) || !option.disabled),\n );\n};\n\nconst findIndexBefore = <O extends ChipOption>(\n options: Array<OptionPreset<O>> = [],\n endIndex: number = options.length,\n) => {\n let result = -1;\n if (endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!isNotServicePreset(option) || !option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nexport interface ChipsSelectProps<O extends ChipOption>\n extends ChipsInputBaseProps<O>,\n UseChipsSelectProps<O>,\n Pick<FormFieldProps, 'status' | 'mode' | 'before'>,\n Pick<CustomSelectDropdownProps, 'overscrollBehavior'> {\n /**\n * Расположение выпадающего списка.\n */\n placement?: 'top' | 'bottom';\n /**\n * Отрисовка Spinner вместо списка опций в выпадающем списке.\n */\n fetching?: boolean;\n /**\n * Закрытие выпадающего списка после выбора элемента.\n */\n closeAfterSelect?: boolean;\n /**\n * Ширина раскрывающегося списка зависит от контента.\n */\n dropdownAutoWidth?: boolean;\n /**\n * Принудительно использовать портал.\n */\n forceDropdownPortal?: boolean;\n /**\n * Передает атрибут `data-testid` для дропдауна.\n */\n dropdownTestId?: string;\n /**\n * Иконка раскрывающегося списка.\n */\n icon?: React.ReactNode;\n /**\n * Добавляет значение в список на событие `onBlur` (использовать вместе с `creatable`).\n */\n addOnBlur?: boolean;\n /**\n * Отключает максимальную высоту по умолчанию.\n */\n noMaxHeight?: boolean;\n /**\n * Функция для отрисовки кастомной опции в выпадающем списке.\n */\n renderOption?: (props: CustomSelectOptionProps, option: O) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Событие срабатывающее перед `onChange`.\n */\n onChangeStart?: (event: React.MouseEvent | React.KeyboardEvent, option: O) => void;\n\n /**\n * Отступ от выпадающего списка.\n */\n dropdownOffsetDistance?: number;\n\n /**\n * Если `true`, то справа будет отображаться кнопка для очистки значения.\n */\n allowClearButton?: boolean;\n}\n\n/**\n * @see https://vkui.io/components/chips-select\n */\nexport const ChipsSelect = <Option extends ChipOption>({\n // FormFieldProps\n id: labelledbyId,\n getRootRef,\n className,\n status = 'default',\n icon: dropdownIconProp,\n onChangeStart,\n\n // CustomSelectDropdownProps\n options: optionsProp,\n placement: placementProp = 'bottom',\n closeAfterSelect = true,\n selectedBehavior = DEFAULT_SELECTED_BEHAVIOR,\n emptyText = DEFAULT_EMPTY_TEXT,\n creatable = false,\n fetching = false,\n dropdownAutoWidth,\n forceDropdownPortal,\n noMaxHeight = false,\n filterFn = defaultFilterFn,\n sortFn = false,\n dropdownTestId,\n onClose,\n onOpen,\n overscrollBehavior,\n renderDropdown,\n\n // ChipsInputProps\n getRef,\n value: valueProp,\n defaultValue,\n inputValue: inputValueProp,\n defaultInputValue,\n disabled,\n readOnly,\n getOptionValue = getOptionValueDefault,\n getOptionLabel = getOptionLabelDefault,\n getNewOptionData = getNewOptionDataDefault,\n renderChip = renderChipDefault,\n renderOption = renderOptionDefault,\n onChange,\n onFocus: onFocusProp,\n onInputChange: onInputChangeProp,\n onBlur: onBlurProp,\n onKeyDown: onKeyDownProp,\n dropdownOffsetDistance = 0,\n allowClearButton,\n clearButtonTestId,\n delimiter,\n\n // a11y\n chipsListLabel,\n ...restProps\n}: ChipsSelectProps<Option>): React.ReactNode => {\n const {\n // Связано с ChipsInputProps\n // option\n value,\n addOptionFromInput,\n addOption,\n removeOption,\n clearOptions,\n // input\n inputRef: inputRefHook,\n inputValue,\n clearInput,\n onInputChange,\n\n // Связано с CustomSelectDropdownProps\n options,\n opened,\n setOpened,\n focusedOption,\n focusedOptionIndex,\n setFocusedOption,\n setFocusedOptionIndex,\n } = useChipsSelect({\n // option\n value: valueProp,\n defaultValue,\n onChange,\n getOptionValue,\n getOptionLabel,\n getNewOptionData,\n\n // input\n inputValue: inputValueProp,\n defaultInputValue,\n onInputChange: onInputChangeProp,\n\n // dropdown\n options: optionsProp,\n emptyText,\n creatable,\n filterFn,\n sortFn,\n selectedBehavior,\n onClose,\n onOpen,\n\n // other\n disabled,\n delimiter,\n });\n\n // Связано с ChipsInputProps\n const rootRef = useExternRef(getRootRef);\n const inputRef = useExternRef(getRef, inputRefHook);\n\n // Связано с CustomSelectDropdownProps\n const [dropdownVerticalPlacement, setDropdownVerticalPlacement] = React.useState<\n 'top' | 'bottom'\n >(placementProp);\n\n const onDropdownPlacementChange = React.useCallback((placement: Placement) => {\n if (placement.startsWith('top')) {\n setDropdownVerticalPlacement('top');\n } else if (placement.startsWith('bottom')) {\n setDropdownVerticalPlacement('bottom');\n }\n }, []);\n\n const dropdownId = React.useId();\n const dropdownCurrentItemId =\n focusedOptionIndex !== null ? `${dropdownId}-${focusedOptionIndex}` : undefined;\n const dropdownScrollBoxRef = React.useRef<HTMLDivElement>(null);\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (onFocusProp) {\n onFocusProp(event);\n }\n\n if (!readOnly) {\n setOpened(true);\n setFocusedOptionIndex(null);\n }\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (onBlurProp) {\n onBlurProp(event);\n }\n\n // Не добавляем значение, если его нужно выбрать строго из списка\n if (!readOnly && !event.defaultPrevented && !creatable) {\n event.preventDefault();\n }\n };\n\n const chipsSelectOptions = React.useRef<HTMLElement[]>([]).current;\n\n const scrollToElement = (index: number, center = false) => {\n const dropdown = dropdownScrollBoxRef.current;\n const item = chipsSelectOptions[index];\n\n /* istanbul ignore if: невозможный кейс (в SSR вызова этой функции не будет) */\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n /* istanbul ignore next: нет представления как воспроизвести */\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n };\n\n const focusOptionByIndex = (index: number, oldIndex: number | null) => {\n if (index === oldIndex) {\n /* istanbul ignore next: нет представления как воспроизвести */\n return;\n }\n\n const option = options[index];\n\n if (isNotServicePreset(option) && option.disabled) {\n return;\n }\n\n scrollToElement(index);\n setFocusedOptionIndex(index);\n };\n\n const focusOption = (nextIndex: number | null, type: FocusActionType) => {\n let index = nextIndex === null ? -1 : nextIndex;\n\n if (type === FOCUS_ACTION_NEXT) {\n const nextIndex = findIndexAfter(options, index);\n index = nextIndex === -1 ? findIndexAfter(options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === FOCUS_ACTION_PREV) {\n const beforeIndex = findIndexBefore(options, index);\n index = beforeIndex === -1 ? findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n focusOptionByIndex(index, focusedOptionIndex);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (onKeyDownProp) {\n onKeyDownProp(event);\n }\n\n if (event.defaultPrevented || readOnly) {\n return;\n }\n\n switch (event.key) {\n case Keys.ARROW_UP:\n case Keys.ARROW_DOWN:\n event.preventDefault();\n\n if (!opened) {\n setOpened(true);\n focusOption(null, FOCUS_ACTION_NEXT);\n } else {\n focusOption(\n focusedOptionIndex,\n event.key === Keys.ARROW_UP ? FOCUS_ACTION_PREV : FOCUS_ACTION_NEXT,\n );\n }\n break;\n case Keys.ENTER: {\n if (!opened) {\n break;\n }\n if (focusedOptionIndex != null) {\n const foundOption = options[focusedOptionIndex];\n if (foundOption && isNotServicePreset(foundOption)) {\n event.preventDefault();\n\n if (onChangeStart) {\n onChangeStart(event, foundOption);\n }\n\n addOption(foundOption);\n setFocusedOptionIndex(null);\n clearInput();\n if (closeAfterSelect) {\n setOpened(false);\n }\n\n break;\n }\n }\n\n if (!creatable) {\n event.preventDefault();\n }\n break;\n }\n case Keys.ESCAPE:\n case Keys.TAB:\n if (opened) {\n setOpened(false);\n }\n }\n };\n\n React.useEffect(() => {\n if (focusedOptionIndex === null) {\n setFocusedOption(null);\n } else {\n const foundFocusedOptionIndex = options[focusedOptionIndex];\n\n if (foundFocusedOptionIndex && isNotServicePreset(foundFocusedOptionIndex)) {\n setFocusedOption(foundFocusedOptionIndex);\n }\n }\n }, [options, focusedOptionIndex, setFocusedOption]);\n\n const onDropdownMouseLeave = React.useCallback(() => {\n setFocusedOptionIndex(null);\n }, [setFocusedOptionIndex]);\n\n const handleClickOutside = React.useCallback(() => {\n setOpened(false);\n }, [setOpened]);\n\n useGlobalOnEventOutside(\n 'mousedown', // см. https://github.com/VKCOM/VKUI/pull/8582\n handleClickOutside,\n opened ? rootRef : null,\n opened ? dropdownScrollBoxRef : null,\n );\n\n const onDropdownIconClick: MouseEventHandler<SVGSVGElement> = React.useCallback(\n (e) => {\n if (opened) {\n e.preventDefault();\n setOpened(false);\n }\n },\n [opened, setOpened],\n );\n\n const dropdownContent = React.useMemo(() => {\n const defaultDropdownContent = options.map((option, index) => {\n const dropdownItemId = `${dropdownId}-${index}`;\n\n if (isEmptyOptionPreset(option)) {\n return (\n <Footnote key=\"empty-text\" className={styles.empty}>\n {option.placeholder}\n </Footnote>\n );\n }\n if (isCreateNewOptionPreset(option)) {\n return (\n <CustomSelectOption\n key=\"create-new-option\"\n id={dropdownItemId}\n hovered={focusedOptionIndex === index}\n onMouseDown={() => addOptionFromInput(inputValue)}\n onMouseEnter={() => setFocusedOptionIndex(index)}\n >\n {option.actionText}\n </CustomSelectOption>\n );\n }\n return (\n <React.Fragment key={`${typeof option.value}-${option.value}`}>\n {renderOption(\n {\n id: dropdownItemId,\n disabled: option.disabled,\n hovered: focusedOption\n ? getOptionValue(option) === getOptionValue(focusedOption)\n : false,\n children: option.label,\n selected: !!value.find(\n (selectedOption: Option) =>\n getOptionValue(selectedOption) === getOptionValue(option),\n ),\n getRootRef(node) {\n if (node) {\n chipsSelectOptions[index] = node;\n }\n },\n onMouseDown(event: React.MouseEvent<HTMLDivElement>) {\n if (option.disabled) {\n return;\n }\n if (onChangeStart) {\n onChangeStart(event, option);\n }\n\n if (!event.defaultPrevented) {\n closeAfterSelect && setOpened(false);\n addOption(option);\n clearInput();\n }\n },\n onMouseEnter() {\n setFocusedOptionIndex(index);\n },\n },\n option,\n )}\n </React.Fragment>\n );\n });\n\n if (renderDropdown) {\n return renderDropdown({\n defaultDropdownContent,\n });\n }\n return defaultDropdownContent;\n }, [\n addOption,\n addOptionFromInput,\n chipsSelectOptions,\n clearInput,\n closeAfterSelect,\n dropdownId,\n focusedOption,\n focusedOptionIndex,\n getOptionValue,\n inputValue,\n onChangeStart,\n options,\n renderDropdown,\n renderOption,\n setFocusedOptionIndex,\n setOpened,\n value,\n ]);\n\n const openedClassNames = React.useMemo(\n () =>\n (opened &&\n dropdownOffsetDistance === 0 &&\n (dropdownVerticalPlacement.includes('top') ? styles.popUp : styles.popDown)) ||\n undefined,\n [dropdownOffsetDistance, opened, dropdownVerticalPlacement],\n );\n\n const clearButtonShown = allowClearButton && (!!value.length || !!inputValue.length);\n\n return (\n <>\n <ChipsInputBase\n {...restProps}\n disabled={disabled}\n readOnly={readOnly}\n clearButtonShown={clearButtonShown}\n clearButtonTestId={clearButtonTestId}\n // FormFieldProps\n id={labelledbyId}\n getRootRef={rootRef}\n className={classNames(styles.host, openedClassNames, className)}\n status={status}\n after={\n dropdownIconProp || (\n <DropdownIcon\n opened={opened}\n onClick={onDropdownIconClick}\n className={classNames(\n styles.dropdownIcon,\n clearButtonShown && styles.dropdownIconWithOffset,\n )}\n />\n )\n }\n // option\n value={value}\n onAddChipOption={addOptionFromInput}\n onRemoveChipOption={removeOption}\n renderChip={renderChip}\n onClear={clearOptions}\n // input\n getRef={inputRef}\n inputValue={inputValue}\n onInputChange={onInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n // a11y\n role=\"combobox\"\n aria-expanded={opened}\n aria-autocomplete=\"list\"\n aria-activedescendant={opened ? dropdownCurrentItemId : undefined}\n aria-haspopup=\"listbox\"\n chipsListLabel={chipsListLabel}\n />\n {opened && (\n <CustomSelectDropdown\n data-testid={dropdownTestId}\n targetRef={rootRef}\n placement={dropdownVerticalPlacement}\n scrollBoxRef={dropdownScrollBoxRef}\n onPlacementChange={onDropdownPlacementChange}\n onMouseLeave={onDropdownMouseLeave}\n fetching={fetching}\n autoWidth={dropdownAutoWidth}\n forcePortal={forceDropdownPortal}\n noMaxHeight={noMaxHeight}\n offsetDistance={dropdownOffsetDistance}\n overscrollBehavior={overscrollBehavior}\n // a11y\n id={dropdownId}\n role=\"listbox\"\n aria-labelledby={labelledbyId}\n >\n {dropdownContent}\n </CustomSelectDropdown>\n )}\n </>\n );\n};\n"],"names":["React","classNames","useExternRef","useGlobalOnEventOutside","Keys","defaultFilterFn","ChipsInputBase","getNewOptionDataDefault","getOptionLabelDefault","getOptionValueDefault","renderChipDefault","CustomSelectDropdown","CustomSelectOption","DropdownIcon","Footnote","DEFAULT_EMPTY_TEXT","DEFAULT_SELECTED_BEHAVIOR","FOCUS_ACTION_NEXT","FOCUS_ACTION_PREV","isCreateNewOptionPreset","isEmptyOptionPreset","isNotServicePreset","renderOptionDefault","useChipsSelect","findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","ChipsSelect","id","labelledbyId","getRootRef","className","status","icon","dropdownIconProp","onChangeStart","optionsProp","placement","placementProp","closeAfterSelect","selectedBehavior","emptyText","creatable","fetching","dropdownAutoWidth","forceDropdownPortal","noMaxHeight","filterFn","sortFn","dropdownTestId","onClose","onOpen","overscrollBehavior","renderDropdown","getRef","value","valueProp","defaultValue","inputValue","inputValueProp","defaultInputValue","readOnly","getOptionValue","getOptionLabel","getNewOptionData","renderChip","renderOption","onChange","onFocus","onFocusProp","onInputChange","onInputChangeProp","onBlur","onBlurProp","onKeyDown","onKeyDownProp","dropdownOffsetDistance","allowClearButton","clearButtonTestId","delimiter","chipsListLabel","restProps","addOptionFromInput","addOption","removeOption","clearOptions","inputRef","inputRefHook","clearInput","opened","setOpened","focusedOption","focusedOptionIndex","setFocusedOption","setFocusedOptionIndex","rootRef","dropdownVerticalPlacement","setDropdownVerticalPlacement","useState","onDropdownPlacementChange","useCallback","startsWith","dropdownId","useId","dropdownCurrentItemId","undefined","dropdownScrollBoxRef","useRef","handleFocus","event","handleBlur","defaultPrevented","preventDefault","chipsSelectOptions","current","scrollToElement","index","center","dropdown","item","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","focusOptionByIndex","oldIndex","focusOption","nextIndex","type","beforeIndex","handleKeyDown","key","ARROW_UP","ARROW_DOWN","ENTER","foundOption","ESCAPE","TAB","useEffect","foundFocusedOptionIndex","onDropdownMouseLeave","handleClickOutside","onDropdownIconClick","e","dropdownContent","useMemo","defaultDropdownContent","map","dropdownItemId","placeholder","hovered","onMouseDown","onMouseEnter","actionText","Fragment","children","label","selected","find","selectedOption","node","openedClassNames","includes","clearButtonShown","after","onClick","onAddChipOption","onRemoveChipOption","onClear","role","aria-expanded","aria-autocomplete","aria-activedescendant","aria-haspopup","data-testid","targetRef","scrollBoxRef","onPlacementChange","onMouseLeave","autoWidth","forcePortal","offsetDistance","aria-labelledby"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Clickable.d.ts","sourceRoot":"","sources":["../../../src/components/Clickable/Clickable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAExF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,WAAW,CAC7C,SAAQ,kBAAkB,CAAC,CAAC,CAAC,EAC3B,qBAAqB,EACrB,UAAU;IACZ;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CACtC;AAuBD;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAWnE;AAiDD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EAAG,OAAO,cAAc,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,SAmB9D,CAAC"}
1
+ {"version":3,"file":"Clickable.d.ts","sourceRoot":"","sources":["../../../src/components/Clickable/Clickable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAIlF,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAyI7C,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,WAAW,CAC7C,SAAQ,kBAAkB,CAAC,CAAC,CAAC,EAC3B,qBAAqB,EACrB,UAAU;IACZ;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAWnE;AAiDD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EAAG,OAAO,cAAc,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,SAU9D,CAAC"}
@@ -1,13 +1,17 @@
1
+ 'use client';
1
2
  import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
3
+ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
2
4
  import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
3
5
  import { jsx as _jsx } from "react/jsx-runtime";
4
6
  import * as React from "react";
5
- import { classNames } from "@vkontakte/vkjs";
7
+ import { classNames, noop } from "@vkontakte/vkjs";
8
+ import { useFocusVisible } from "../../hooks/useFocusVisible.js";
9
+ import { useFocusVisibleClassName } from "../../hooks/useFocusVisibleClassName.js";
10
+ import { mergeCalls } from "../../lib/mergeCalls.js";
11
+ import { clickByKeyboardHandler } from "../../lib/utils.js";
6
12
  import { RootComponent } from "../RootComponent/RootComponent.js";
7
- import { RealClickable } from "./RealClickable.js";
8
- /**
9
- * Некликабельный компонент. Отключаем возможность нажимать на компонент.
10
- */ const NonClickable = (_param)=>{
13
+ import { ClickableLockStateContext, DEFAULT_ACTIVE_EFFECT_DELAY, useState } from "./useState.js";
14
+ function nonClickableProps(_param) {
11
15
  var { href, onClick, onClickCapture, activeClassName, hoverClassName, hasActive, hasHover, hovered, unlockParentHover, activated, activeEffectDelay, focusVisibleMode, DefaultComponent, Component } = _param, restProps = _object_without_properties(_param, [
12
16
  "href",
13
17
  "onClick",
@@ -24,10 +28,99 @@ import { RealClickable } from "./RealClickable.js";
24
28
  "DefaultComponent",
25
29
  "Component"
26
30
  ]);
27
- return /*#__PURE__*/ _jsx(RootComponent, _object_spread({
31
+ return _object_spread_props(_object_spread({
28
32
  Component: Component || DefaultComponent
29
- }, restProps));
30
- };
33
+ }, restProps), {
34
+ lockStateContextValue: {
35
+ lockHoverStateBubbling: undefined,
36
+ lockActiveStateBubbling: undefined
37
+ }
38
+ });
39
+ }
40
+ function useClickableProps(_param) {
41
+ var { baseClassName, focusVisibleMode = 'inside', activeClassName, hoverClassName, activeEffectDelay = DEFAULT_ACTIVE_EFFECT_DELAY, hasHover = true, hasActive = true, hovered, activated, hasHoverWithChildren, unlockParentHover, onPointerEnter, onPointerLeave, onPointerDown, onPointerCancel, onPointerUp, onBlur, onFocus, onKeyDown, DefaultComponent } = _param, restProps = _object_without_properties(_param, [
42
+ "baseClassName",
43
+ "focusVisibleMode",
44
+ "activeClassName",
45
+ "hoverClassName",
46
+ "activeEffectDelay",
47
+ "hasHover",
48
+ "hasActive",
49
+ "hovered",
50
+ "activated",
51
+ "hasHoverWithChildren",
52
+ "unlockParentHover",
53
+ "onPointerEnter",
54
+ "onPointerLeave",
55
+ "onPointerDown",
56
+ "onPointerCancel",
57
+ "onPointerUp",
58
+ "onBlur",
59
+ "onFocus",
60
+ "onKeyDown",
61
+ "DefaultComponent"
62
+ ]);
63
+ const _useFocusVisible = useFocusVisible(), { focusVisible } = _useFocusVisible, focusEvents = _object_without_properties(_useFocusVisible, [
64
+ "focusVisible"
65
+ ]);
66
+ const focusVisibleClassNames = useFocusVisibleClassName({
67
+ focusVisible,
68
+ mode: focusVisibleMode
69
+ });
70
+ const _useState = useState({
71
+ activeClassName,
72
+ hoverClassName,
73
+ activeEffectDelay,
74
+ hasHover,
75
+ hasActive,
76
+ hovered,
77
+ activated,
78
+ unlockParentHover
79
+ }), { stateClassName, setLockHoverBubblingImmediate, setLockActiveBubblingImmediate } = _useState, stateEvents = _object_without_properties(_useState, [
80
+ "stateClassName",
81
+ "setLockHoverBubblingImmediate",
82
+ "setLockActiveBubblingImmediate"
83
+ ]);
84
+ const handlers = mergeCalls(focusEvents, stateEvents, {
85
+ onKeyDown: clickByKeyboardHandler
86
+ }, {
87
+ onPointerEnter,
88
+ onPointerLeave,
89
+ onPointerDown,
90
+ onPointerCancel,
91
+ onPointerUp,
92
+ onBlur,
93
+ onFocus,
94
+ onKeyDown
95
+ });
96
+ const lockStateContextValue = React.useMemo(()=>({
97
+ lockHoverStateBubbling: hasHoverWithChildren ? noop : setLockHoverBubblingImmediate,
98
+ lockActiveStateBubbling: setLockActiveBubblingImmediate
99
+ }), [
100
+ setLockHoverBubblingImmediate,
101
+ setLockActiveBubblingImmediate,
102
+ hasHoverWithChildren
103
+ ]);
104
+ return _object_spread_props(_object_spread({
105
+ baseClassName: classNames(baseClassName, "vkuiClickable__realClickable", focusVisibleClassNames, stateClassName)
106
+ }, handlers, restProps), {
107
+ lockStateContextValue
108
+ });
109
+ }
110
+ function useProps(props) {
111
+ const commonProps = component(props);
112
+ const isClickable = checkClickable(props);
113
+ const { baseClassName, disabled, Component } = props, restProps = _object_without_properties(props, [
114
+ "baseClassName",
115
+ "disabled",
116
+ "Component"
117
+ ]);
118
+ const nextProps = _object_spread({
119
+ baseClassName: classNames(baseClassName, "vkuiClickable__host")
120
+ }, commonProps, restProps);
121
+ const clickableProps = useClickableProps(nextProps);
122
+ return isClickable ? clickableProps : nonClickableProps(nextProps);
123
+ }
31
124
  /**
32
125
  * Проверяем, является ли компонент кликабельным.
33
126
  */ export function checkClickable(props) {
@@ -77,17 +170,16 @@ import { RealClickable } from "./RealClickable.js";
77
170
  * - стейты наведения и нажатия
78
171
  * - a11y компонентов.
79
172
  */ export const Clickable = (props)=>{
80
- const commonProps = component(props);
81
- const isClickable = checkClickable(props);
82
- const Component = isClickable ? RealClickable : NonClickable;
83
- const { baseClassName, disabled, Component: ignore } = props, restProps = _object_without_properties(props, [
84
- "baseClassName",
85
- "disabled",
86
- "Component"
173
+ const _useProps = useProps(props), { lockStateContextValue, children } = _useProps, restProps = _object_without_properties(_useProps, [
174
+ "lockStateContextValue",
175
+ "children"
87
176
  ]);
88
- return /*#__PURE__*/ _jsx(Component, _object_spread({
89
- baseClassName: classNames(baseClassName, "vkuiClickable__host")
90
- }, commonProps, restProps));
177
+ return /*#__PURE__*/ _jsx(RootComponent, _object_spread_props(_object_spread({}, restProps), {
178
+ children: /*#__PURE__*/ _jsx(ClickableLockStateContext.Provider, {
179
+ value: lockStateContextValue,
180
+ children: children
181
+ })
182
+ }));
91
183
  };
92
184
 
93
185
  //# sourceMappingURL=Clickable.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Clickable/Clickable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { type FocusVisibleModeProps } from '../../hooks/useFocusVisibleClassName';\nimport { RootComponent, type RootComponentProps } from '../RootComponent/RootComponent';\nimport { RealClickable } from './RealClickable';\nimport { type StateProps } from './useState';\nimport styles from './Clickable.module.css';\n\nexport interface ClickableProps<T = HTMLElement>\n extends RootComponentProps<T>,\n FocusVisibleModeProps,\n StateProps {\n /**\n * Компонент который будет при передаче `onClick`. По умолчанию `\"div\"`.\n */\n DefaultComponent?: React.ElementType;\n}\n\n/**\n * Некликабельный компонент. Отключаем возможность нажимать на компонент.\n */\nconst NonClickable = <T,>({\n href,\n onClick,\n onClickCapture,\n activeClassName,\n hoverClassName,\n hasActive,\n hasHover,\n hovered,\n unlockParentHover,\n activated,\n activeEffectDelay,\n focusVisibleMode,\n DefaultComponent,\n Component,\n ...restProps\n}: ClickableProps<T>) => <RootComponent Component={Component || DefaultComponent} {...restProps} />;\n\n/**\n * Проверяем, является ли компонент кликабельным.\n */\nexport function checkClickable<T>(props: ClickableProps<T>): boolean {\n return (\n (props.href !== undefined ||\n props.onClick !== undefined ||\n props.onClickCapture !== undefined ||\n props.Component === 'a' ||\n props.Component === 'button' ||\n props.Component === 'label' ||\n props.Component === 'input') &&\n !props.disabled\n );\n}\n\n/**\n * Определяет правильный компонент и его свойства.\n *\n * - если передан Component, используем его\n * - при передаче `href` превратится в `a`,\n * - при передаче `onClick` превратится в `div` c `role=\"button\"` и `tabIndex=\"0\"`.\n * - иначе используется `div`.\n */\nfunction component<T>({\n Component,\n DefaultComponent = 'div',\n onClick,\n onClickCapture,\n href,\n disabled,\n}: ClickableProps<T>): RootComponentProps<T> {\n if (Component !== undefined) {\n return { Component, disabled };\n } else if (href !== undefined) {\n return {\n Component: 'a',\n\n /**\n * Если ссылка отключена, добавляем атрибуты для доступности.\n *\n * - Тег `a` не поддерживает атрибут disabled, поэтому используем `aria-disabled`\n * - Тег `a` без `href` не является ссылкой, поэтому добавляем `role=\"link\"`.\n *\n * @see см. https://w3c.github.io/html-aria/#example-communicate-a-disabled-link-with-aria.\n *\n */\n ...(disabled && {\n 'aria-disabled': true,\n 'role': 'link',\n }),\n };\n } else if (onClick !== undefined || onClickCapture !== undefined) {\n return {\n Component: DefaultComponent,\n role: 'button',\n ...(disabled ? { 'aria-disabled': true } : { tabIndex: 0 }),\n };\n }\n\n return {};\n}\n\n/**\n * Базовый кликабельный корневой компонент.\n *\n * - при передаче `href` превратится в `a`,\n * - при передаче `onClick` превратится в `div` c `role=\"button\"` и `tabIndex=\"0\"`.\n * - иначе используется `div`.\n *\n * Отвечает за:\n *\n * - стейты наведения и нажатия\n * - a11y компонентов.\n */\nexport const Clickable = <T,>(props: ClickableProps<T>): React.ReactNode => {\n const commonProps = component(props);\n const isClickable = checkClickable(props);\n const Component = isClickable ? RealClickable : NonClickable;\n\n const {\n baseClassName,\n disabled, // Игнорируем disabled из пропсов, т.к. он обрабатывается в commonProps\n Component: ignore,\n ...restProps\n } = props;\n\n return (\n <Component\n baseClassName={classNames(baseClassName, styles.host)}\n {...commonProps}\n {...restProps}\n />\n );\n};\n"],"names":["React","classNames","RootComponent","RealClickable","NonClickable","href","onClick","onClickCapture","activeClassName","hoverClassName","hasActive","hasHover","hovered","unlockParentHover","activated","activeEffectDelay","focusVisibleMode","DefaultComponent","Component","restProps","checkClickable","props","undefined","disabled","component","role","tabIndex","Clickable","commonProps","isClickable","baseClassName","ignore"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAiC,oCAAiC;AACxF,SAASC,aAAa,QAAQ,qBAAkB;AAchD;;CAEC,GACD,MAAMC,eAAe;QAAK,EACxBC,IAAI,EACJC,OAAO,EACPC,cAAc,EACdC,eAAe,EACfC,cAAc,EACdC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,iBAAiB,EACjBC,SAAS,EACTC,iBAAiB,EACjBC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAS,EAES,WADfC;QAdHd;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;yBAEuB,KAAChB;QAAcgB,WAAWA,aAAaD;OAAsBE;;AAEtF;;CAEC,GACD,OAAO,SAASC,eAAkBC,KAAwB;IACxD,OACE,AAACA,CAAAA,MAAMhB,IAAI,KAAKiB,aACdD,MAAMf,OAAO,KAAKgB,aAClBD,MAAMd,cAAc,KAAKe,aACzBD,MAAMH,SAAS,KAAK,OACpBG,MAAMH,SAAS,KAAK,YACpBG,MAAMH,SAAS,KAAK,WACpBG,MAAMH,SAAS,KAAK,OAAM,KAC5B,CAACG,MAAME,QAAQ;AAEnB;AAEA;;;;;;;CAOC,GACD,SAASC,UAAa,EACpBN,SAAS,EACTD,mBAAmB,KAAK,EACxBX,OAAO,EACPC,cAAc,EACdF,IAAI,EACJkB,QAAQ,EACU;IAClB,IAAIL,cAAcI,WAAW;QAC3B,OAAO;YAAEJ;YAAWK;QAAS;IAC/B,OAAO,IAAIlB,SAASiB,WAAW;QAC7B,OAAO;YACLJ,WAAW;WAWPK,YAAY;YACd,iBAAiB;YACjB,QAAQ;QACV;IAEJ,OAAO,IAAIjB,YAAYgB,aAAaf,mBAAmBe,WAAW;QAChE,OAAO;YACLJ,WAAWD;YACXQ,MAAM;WACFF,WAAW;YAAE,iBAAiB;QAAK,IAAI;YAAEG,UAAU;QAAE;IAE7D;IAEA,OAAO,CAAC;AACV;AAEA;;;;;;;;;;;CAWC,GACD,OAAO,MAAMC,YAAY,CAAKN;IAC5B,MAAMO,cAAcJ,UAAUH;IAC9B,MAAMQ,cAAcT,eAAeC;IACnC,MAAMH,YAAYW,cAAc1B,gBAAgBC;IAEhD,MAAM,EACJ0B,aAAa,EACbP,QAAQ,EACRL,WAAWa,MAAM,EAElB,GAAGV,OADCF,uCACDE;QAJFS;QACAP;QACAL;;IAIF,qBACE,KAACA;QACCY,eAAe7B,WAAW6B;OACtBF,aACAT;AAGV,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Clickable/Clickable.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useFocusVisible } from '../../hooks/useFocusVisible';\nimport { type FocusVisibleModeProps } from '../../hooks/useFocusVisibleClassName';\nimport { useFocusVisibleClassName } from '../../hooks/useFocusVisibleClassName';\nimport { mergeCalls } from '../../lib/mergeCalls';\nimport { clickByKeyboardHandler } from '../../lib/utils';\nimport { RootComponent, type RootComponentProps } from '../RootComponent/RootComponent';\nimport { type StateProps } from './useState';\nimport { ClickableLockStateContext, DEFAULT_ACTIVE_EFFECT_DELAY, useState } from './useState';\nimport styles from './Clickable.module.css';\n\nfunction nonClickableProps<T>({\n href,\n onClick,\n onClickCapture,\n activeClassName,\n hoverClassName,\n hasActive,\n hasHover,\n hovered,\n unlockParentHover,\n activated,\n activeEffectDelay,\n focusVisibleMode,\n DefaultComponent,\n Component,\n ...restProps\n}: ClickableProps<T>) {\n return {\n Component: Component || DefaultComponent,\n ...restProps,\n lockStateContextValue: {\n lockHoverStateBubbling: undefined,\n lockActiveStateBubbling: undefined,\n },\n };\n}\n\nfunction useClickableProps<T>({\n baseClassName,\n focusVisibleMode = 'inside',\n activeClassName,\n hoverClassName,\n activeEffectDelay = DEFAULT_ACTIVE_EFFECT_DELAY,\n hasHover = true,\n hasActive = true,\n hovered,\n activated,\n hasHoverWithChildren,\n unlockParentHover,\n onPointerEnter,\n onPointerLeave,\n onPointerDown,\n onPointerCancel,\n onPointerUp,\n onBlur,\n onFocus,\n onKeyDown,\n DefaultComponent,\n ...restProps\n}: ClickableProps<T>) {\n const { focusVisible, ...focusEvents } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({ focusVisible, mode: focusVisibleMode });\n\n const {\n stateClassName,\n setLockHoverBubblingImmediate,\n setLockActiveBubblingImmediate,\n ...stateEvents\n } = useState({\n activeClassName,\n hoverClassName,\n activeEffectDelay,\n hasHover,\n hasActive,\n hovered,\n activated,\n unlockParentHover,\n });\n\n const handlers = mergeCalls(\n focusEvents,\n stateEvents,\n { onKeyDown: clickByKeyboardHandler },\n {\n onPointerEnter,\n onPointerLeave,\n onPointerDown,\n onPointerCancel,\n onPointerUp,\n onBlur,\n onFocus,\n onKeyDown,\n },\n );\n\n const lockStateContextValue = React.useMemo(\n () => ({\n lockHoverStateBubbling: hasHoverWithChildren ? noop : setLockHoverBubblingImmediate,\n lockActiveStateBubbling: setLockActiveBubblingImmediate,\n }),\n [setLockHoverBubblingImmediate, setLockActiveBubblingImmediate, hasHoverWithChildren],\n );\n\n return {\n baseClassName: classNames(\n baseClassName,\n styles.realClickable,\n focusVisibleClassNames,\n stateClassName,\n ),\n ...handlers,\n ...restProps,\n lockStateContextValue,\n };\n}\n\nfunction useProps<T>(props: ClickableProps<T>): RootComponentProps<T> & {\n lockStateContextValue: {\n lockHoverStateBubbling: undefined | ((...args: any[]) => void);\n lockActiveStateBubbling: undefined | ((...args: any[]) => void);\n };\n} {\n const commonProps = component(props);\n const isClickable = checkClickable(props);\n\n const {\n baseClassName,\n disabled, // Игнорируем disabled из пропсов, т.к. он обрабатывается в commonProps\n Component,\n ...restProps\n } = props;\n\n const nextProps = {\n baseClassName: classNames(baseClassName, styles.host),\n ...commonProps,\n ...restProps,\n };\n\n const clickableProps = useClickableProps(nextProps);\n\n return isClickable ? clickableProps : nonClickableProps(nextProps);\n}\n\nexport interface ClickableProps<T = HTMLElement>\n extends RootComponentProps<T>,\n FocusVisibleModeProps,\n StateProps {\n /**\n * Компонент который будет при передаче `onClick`. По умолчанию `\"div\"`.\n */\n DefaultComponent?: React.ElementType;\n}\n\n/**\n * Проверяем, является ли компонент кликабельным.\n */\nexport function checkClickable<T>(props: ClickableProps<T>): boolean {\n return (\n (props.href !== undefined ||\n props.onClick !== undefined ||\n props.onClickCapture !== undefined ||\n props.Component === 'a' ||\n props.Component === 'button' ||\n props.Component === 'label' ||\n props.Component === 'input') &&\n !props.disabled\n );\n}\n\n/**\n * Определяет правильный компонент и его свойства.\n *\n * - если передан Component, используем его\n * - при передаче `href` превратится в `a`,\n * - при передаче `onClick` превратится в `div` c `role=\"button\"` и `tabIndex=\"0\"`.\n * - иначе используется `div`.\n */\nfunction component<T>({\n Component,\n DefaultComponent = 'div',\n onClick,\n onClickCapture,\n href,\n disabled,\n}: ClickableProps<T>): RootComponentProps<T> {\n if (Component !== undefined) {\n return { Component, disabled };\n } else if (href !== undefined) {\n return {\n Component: 'a',\n\n /**\n * Если ссылка отключена, добавляем атрибуты для доступности.\n *\n * - Тег `a` не поддерживает атрибут disabled, поэтому используем `aria-disabled`\n * - Тег `a` без `href` не является ссылкой, поэтому добавляем `role=\"link\"`.\n *\n * @see см. https://w3c.github.io/html-aria/#example-communicate-a-disabled-link-with-aria.\n *\n */\n ...(disabled && {\n 'aria-disabled': true,\n 'role': 'link',\n }),\n };\n } else if (onClick !== undefined || onClickCapture !== undefined) {\n return {\n Component: DefaultComponent,\n role: 'button',\n ...(disabled ? { 'aria-disabled': true } : { tabIndex: 0 }),\n };\n }\n\n return {};\n}\n\n/**\n * Базовый кликабельный корневой компонент.\n *\n * - при передаче `href` превратится в `a`,\n * - при передаче `onClick` превратится в `div` c `role=\"button\"` и `tabIndex=\"0\"`.\n * - иначе используется `div`.\n *\n * Отвечает за:\n *\n * - стейты наведения и нажатия\n * - a11y компонентов.\n */\nexport const Clickable = <T,>(props: ClickableProps<T>): React.ReactNode => {\n const { lockStateContextValue, children, ...restProps } = useProps(props);\n\n return (\n <RootComponent {...restProps}>\n <ClickableLockStateContext.Provider value={lockStateContextValue}>\n {children}\n </ClickableLockStateContext.Provider>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","noop","useFocusVisible","useFocusVisibleClassName","mergeCalls","clickByKeyboardHandler","RootComponent","ClickableLockStateContext","DEFAULT_ACTIVE_EFFECT_DELAY","useState","nonClickableProps","href","onClick","onClickCapture","activeClassName","hoverClassName","hasActive","hasHover","hovered","unlockParentHover","activated","activeEffectDelay","focusVisibleMode","DefaultComponent","Component","restProps","lockStateContextValue","lockHoverStateBubbling","undefined","lockActiveStateBubbling","useClickableProps","baseClassName","hasHoverWithChildren","onPointerEnter","onPointerLeave","onPointerDown","onPointerCancel","onPointerUp","onBlur","onFocus","onKeyDown","focusVisible","focusEvents","focusVisibleClassNames","mode","stateClassName","setLockHoverBubblingImmediate","setLockActiveBubblingImmediate","stateEvents","handlers","useMemo","useProps","props","commonProps","component","isClickable","checkClickable","disabled","nextProps","clickableProps","role","tabIndex","Clickable","children","Provider","value"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,eAAe,QAAQ,iCAA8B;AAE9D,SAASC,wBAAwB,QAAQ,0CAAuC;AAChF,SAASC,UAAU,QAAQ,0BAAuB;AAClD,SAASC,sBAAsB,QAAQ,qBAAkB;AACzD,SAASC,aAAa,QAAiC,oCAAiC;AAExF,SAASC,yBAAyB,EAAEC,2BAA2B,EAAEC,QAAQ,QAAQ,gBAAa;AAG9F,SAASC,kBAAqB;QAAA,EAC5BC,IAAI,EACJC,OAAO,EACPC,cAAc,EACdC,eAAe,EACfC,cAAc,EACdC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,iBAAiB,EACjBC,SAAS,EACTC,iBAAiB,EACjBC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAS,EAES,GAhBU,QAezBC,uCAfyB;QAC5Bd;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,OAAO;QACLA,WAAWA,aAAaD;OACrBE;QACHC,uBAAuB;YACrBC,wBAAwBC;YACxBC,yBAAyBD;QAC3B;;AAEJ;AAEA,SAASE,kBAAqB;QAAA,EAC5BC,aAAa,EACbT,mBAAmB,QAAQ,EAC3BR,eAAe,EACfC,cAAc,EACdM,oBAAoBb,2BAA2B,EAC/CS,WAAW,IAAI,EACfD,YAAY,IAAI,EAChBE,OAAO,EACPE,SAAS,EACTY,oBAAoB,EACpBb,iBAAiB,EACjBc,cAAc,EACdC,cAAc,EACdC,aAAa,EACbC,eAAe,EACfC,WAAW,EACXC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTjB,gBAAgB,EAEE,GAtBU,QAqBzBE,uCArByB;QAC5BM;QACAT;QACAR;QACAC;QACAM;QACAJ;QACAD;QACAE;QACAE;QACAY;QACAb;QACAc;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAjB;;IAGA,MAAyCrB,mBAAAA,mBAAnC,EAAEuC,YAAY,EAAkB,GAAGvC,kBAAhBwC,yCAAgBxC;QAAjCuC;;IACR,MAAME,yBAAyBxC,yBAAyB;QAAEsC;QAAcG,MAAMtB;IAAiB;IAE/F,MAKIb,YAAAA,SAAS;QACXK;QACAC;QACAM;QACAJ;QACAD;QACAE;QACAE;QACAD;IACF,IAdM,EACJ0B,cAAc,EACdC,6BAA6B,EAC7BC,8BAA8B,EAE/B,GAAGtC,WADCuC,yCACDvC;QAJFoC;QACAC;QACAC;;IAaF,MAAME,WAAW7C,WACfsC,aACAM,aACA;QAAER,WAAWnC;IAAuB,GACpC;QACE4B;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;IACF;IAGF,MAAMd,wBAAwB3B,MAAMmD,OAAO,CACzC,IAAO,CAAA;YACLvB,wBAAwBK,uBAAuB/B,OAAO6C;YACtDjB,yBAAyBkB;QAC3B,CAAA,GACA;QAACD;QAA+BC;QAAgCf;KAAqB;IAGvF,OAAO;QACLD,eAAe/B,WACb+B,+CAEAY,wBACAE;OAECI,UACAxB;QACHC;;AAEJ;AAEA,SAASyB,SAAYC,KAAwB;IAM3C,MAAMC,cAAcC,UAAUF;IAC9B,MAAMG,cAAcC,eAAeJ;IAEnC,MAAM,EACJrB,aAAa,EACb0B,QAAQ,EACRjC,SAAS,EAEV,GAAG4B,OADC3B,uCACD2B;QAJFrB;QACA0B;QACAjC;;IAIF,MAAMkC,YAAY;QAChB3B,eAAe/B,WAAW+B;OACvBsB,aACA5B;IAGL,MAAMkC,iBAAiB7B,kBAAkB4B;IAEzC,OAAOH,cAAcI,iBAAiBjD,kBAAkBgD;AAC1D;AAYA;;CAEC,GACD,OAAO,SAASF,eAAkBJ,KAAwB;IACxD,OACE,AAACA,CAAAA,MAAMzC,IAAI,KAAKiB,aACdwB,MAAMxC,OAAO,KAAKgB,aAClBwB,MAAMvC,cAAc,KAAKe,aACzBwB,MAAM5B,SAAS,KAAK,OACpB4B,MAAM5B,SAAS,KAAK,YACpB4B,MAAM5B,SAAS,KAAK,WACpB4B,MAAM5B,SAAS,KAAK,OAAM,KAC5B,CAAC4B,MAAMK,QAAQ;AAEnB;AAEA;;;;;;;CAOC,GACD,SAASH,UAAa,EACpB9B,SAAS,EACTD,mBAAmB,KAAK,EACxBX,OAAO,EACPC,cAAc,EACdF,IAAI,EACJ8C,QAAQ,EACU;IAClB,IAAIjC,cAAcI,WAAW;QAC3B,OAAO;YAAEJ;YAAWiC;QAAS;IAC/B,OAAO,IAAI9C,SAASiB,WAAW;QAC7B,OAAO;YACLJ,WAAW;WAWPiC,YAAY;YACd,iBAAiB;YACjB,QAAQ;QACV;IAEJ,OAAO,IAAI7C,YAAYgB,aAAaf,mBAAmBe,WAAW;QAChE,OAAO;YACLJ,WAAWD;YACXqC,MAAM;WACFH,WAAW;YAAE,iBAAiB;QAAK,IAAI;YAAEI,UAAU;QAAE;IAE7D;IAEA,OAAO,CAAC;AACV;AAEA;;;;;;;;;;;CAWC,GACD,OAAO,MAAMC,YAAY,CAAKV;IAC5B,MAA0DD,YAAAA,SAASC,QAA7D,EAAE1B,qBAAqB,EAAEqC,QAAQ,EAAgB,GAAGZ,WAAd1B,uCAAc0B;QAAlDzB;QAAuBqC;;IAE/B,qBACE,KAACzD,uDAAkBmB;kBACjB,cAAA,KAAClB,0BAA0ByD,QAAQ;YAACC,OAAOvC;sBACxCqC;;;AAIT,EAAE"}
@@ -11,7 +11,7 @@ export interface ColorSchemeProviderProps {
11
11
  children: React.ReactNode;
12
12
  }
13
13
  /**
14
- * @see https://vkcom.github.io/VKUI/#/ColorSchemeProvider
14
+ * @see https://vkui.io/components/color-scheme-provider
15
15
  */
16
16
  export declare const ColorSchemeProvider: ({ value, children, }: ColorSchemeProviderProps) => React.ReactNode;
17
17
  //# sourceMappingURL=ColorSchemeProvider.d.ts.map
@@ -4,7 +4,7 @@ import { IconAppearanceProvider } from "@vkontakte/icons";
4
4
  import { TokensClassProvider } from "../../lib/tokens/TokensClassProvider.js";
5
5
  import { ConfigProviderOverride } from "../ConfigProvider/ConfigProviderOverride.js";
6
6
  /**
7
- * @see https://vkcom.github.io/VKUI/#/ColorSchemeProvider
7
+ * @see https://vkui.io/components/color-scheme-provider
8
8
  */ export const ColorSchemeProvider = ({ value, children })=>{
9
9
  return /*#__PURE__*/ _jsx(ConfigProviderOverride, {
10
10
  colorScheme: value,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ColorSchemeProvider/ColorSchemeProvider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { IconAppearanceProvider } from '@vkontakte/icons';\nimport type { ColorSchemeType } from '../../lib/colorScheme';\nimport { TokensClassProvider } from '../../lib/tokens/TokensClassProvider';\nimport { ConfigProviderOverride } from '../ConfigProvider/ConfigProviderOverride';\n\nexport interface ColorSchemeProviderProps {\n /**\n * Цветовая схема.\n */\n value: ColorSchemeType;\n /**\n * Содержимое.\n */\n children: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ColorSchemeProvider\n */\nexport const ColorSchemeProvider = ({\n value,\n children,\n}: ColorSchemeProviderProps): React.ReactNode => {\n return (\n <ConfigProviderOverride colorScheme={value}>\n <IconAppearanceProvider value={value}>\n <TokensClassProvider>{children}</TokensClassProvider>\n </IconAppearanceProvider>\n </ConfigProviderOverride>\n );\n};\n"],"names":["React","IconAppearanceProvider","TokensClassProvider","ConfigProviderOverride","ColorSchemeProvider","value","children","colorScheme"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ,mBAAmB;AAE1D,SAASC,mBAAmB,QAAQ,0CAAuC;AAC3E,SAASC,sBAAsB,QAAQ,8CAA2C;AAalF;;CAEC,GACD,OAAO,MAAMC,sBAAsB,CAAC,EAClCC,KAAK,EACLC,QAAQ,EACiB;IACzB,qBACE,KAACH;QAAuBI,aAAaF;kBACnC,cAAA,KAACJ;YAAuBI,OAAOA;sBAC7B,cAAA,KAACH;0BAAqBI;;;;AAI9B,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/ColorSchemeProvider/ColorSchemeProvider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { IconAppearanceProvider } from '@vkontakte/icons';\nimport type { ColorSchemeType } from '../../lib/colorScheme';\nimport { TokensClassProvider } from '../../lib/tokens/TokensClassProvider';\nimport { ConfigProviderOverride } from '../ConfigProvider/ConfigProviderOverride';\n\nexport interface ColorSchemeProviderProps {\n /**\n * Цветовая схема.\n */\n value: ColorSchemeType;\n /**\n * Содержимое.\n */\n children: React.ReactNode;\n}\n\n/**\n * @see https://vkui.io/components/color-scheme-provider\n */\nexport const ColorSchemeProvider = ({\n value,\n children,\n}: ColorSchemeProviderProps): React.ReactNode => {\n return (\n <ConfigProviderOverride colorScheme={value}>\n <IconAppearanceProvider value={value}>\n <TokensClassProvider>{children}</TokensClassProvider>\n </IconAppearanceProvider>\n </ConfigProviderOverride>\n );\n};\n"],"names":["React","IconAppearanceProvider","TokensClassProvider","ConfigProviderOverride","ColorSchemeProvider","value","children","colorScheme"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ,mBAAmB;AAE1D,SAASC,mBAAmB,QAAQ,0CAAuC;AAC3E,SAASC,sBAAsB,QAAQ,8CAA2C;AAalF;;CAEC,GACD,OAAO,MAAMC,sBAAsB,CAAC,EAClCC,KAAK,EACLC,QAAQ,EACiB;IACzB,qBACE,KAACH;QAAuBI,aAAaF;kBACnC,cAAA,KAACJ;YAAuBI,OAAOA;sBAC7B,cAAA,KAACH;0BAAqBI;;;;AAI9B,EAAE"}
@@ -7,7 +7,7 @@ export interface ConfigProviderProps extends Partial<ConfigProviderContextInterf
7
7
  children: React.ReactNode;
8
8
  }
9
9
  /**
10
- * @see https://vkcom.github.io/VKUI/#/ConfigProvider
10
+ * @see https://vkui.io/components/config-provider
11
11
  */
12
12
  export declare const ConfigProvider: (propsRaw: ConfigProviderProps) => React.ReactNode;
13
13
  //# sourceMappingURL=ConfigProvider.d.ts.map
@@ -10,7 +10,7 @@ import { TokensClassProvider } from "../../lib/tokens/TokensClassProvider.js";
10
10
  import { excludeKeysWithUndefined } from "../../lib/utils.js";
11
11
  import { ConfigProviderContext, useConfigProvider, useConfigProviderContextMemo } from "./ConfigProviderContext.js";
12
12
  /**
13
- * @see https://vkcom.github.io/VKUI/#/ConfigProvider
13
+ * @see https://vkui.io/components/config-provider
14
14
  */ export const ConfigProvider = (propsRaw)=>{
15
15
  const props = excludeKeysWithUndefined(propsRaw);
16
16
  const parentConfig = useConfigProvider();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ConfigProvider/ConfigProvider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { IconAppearanceProvider } from '@vkontakte/icons';\nimport { useAutoDetectColorScheme } from '../../hooks/useAutoDetectColorScheme';\nimport { useAutoDetectDirection } from '../../hooks/useAutoDetectDirection';\nimport { TokensClassProvider } from '../../lib/tokens/TokensClassProvider';\nimport { excludeKeysWithUndefined } from '../../lib/utils';\nimport {\n ConfigProviderContext,\n type ConfigProviderContextInterface,\n useConfigProvider,\n useConfigProviderContextMemo,\n} from './ConfigProviderContext';\n\nexport interface ConfigProviderProps extends Partial<ConfigProviderContextInterface> {\n /**\n * Содержимое.\n */\n children: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ConfigProvider\n */\nexport const ConfigProvider = (propsRaw: ConfigProviderProps): React.ReactNode => {\n const props = excludeKeysWithUndefined(propsRaw);\n const parentConfig = useConfigProvider();\n\n const mergeProps = {\n ...parentConfig,\n ...props,\n };\n\n const colorScheme = useAutoDetectColorScheme(mergeProps.colorScheme);\n const direction = useAutoDetectDirection(mergeProps.direction);\n\n const configContext = useConfigProviderContextMemo({\n ...mergeProps,\n colorScheme,\n direction,\n });\n\n return (\n <ConfigProviderContext.Provider value={configContext}>\n <IconAppearanceProvider value={colorScheme}>\n <TokensClassProvider>{mergeProps.children}</TokensClassProvider>\n </IconAppearanceProvider>\n </ConfigProviderContext.Provider>\n );\n};\n"],"names":["React","IconAppearanceProvider","useAutoDetectColorScheme","useAutoDetectDirection","TokensClassProvider","excludeKeysWithUndefined","ConfigProviderContext","useConfigProvider","useConfigProviderContextMemo","ConfigProvider","propsRaw","props","parentConfig","mergeProps","colorScheme","direction","configContext","Provider","value","children"],"mappings":"AAAA;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ,mBAAmB;AAC1D,SAASC,wBAAwB,QAAQ,0CAAuC;AAChF,SAASC,sBAAsB,QAAQ,wCAAqC;AAC5E,SAASC,mBAAmB,QAAQ,0CAAuC;AAC3E,SAASC,wBAAwB,QAAQ,qBAAkB;AAC3D,SACEC,qBAAqB,EAErBC,iBAAiB,EACjBC,4BAA4B,QACvB,6BAA0B;AASjC;;CAEC,GACD,OAAO,MAAMC,iBAAiB,CAACC;IAC7B,MAAMC,QAAQN,yBAAyBK;IACvC,MAAME,eAAeL;IAErB,MAAMM,aAAa,mBACdD,cACAD;IAGL,MAAMG,cAAcZ,yBAAyBW,WAAWC,WAAW;IACnE,MAAMC,YAAYZ,uBAAuBU,WAAWE,SAAS;IAE7D,MAAMC,gBAAgBR,6BAA6B,wCAC9CK;QACHC;QACAC;;IAGF,qBACE,KAACT,sBAAsBW,QAAQ;QAACC,OAAOF;kBACrC,cAAA,KAACf;YAAuBiB,OAAOJ;sBAC7B,cAAA,KAACV;0BAAqBS,WAAWM,QAAQ;;;;AAIjD,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/ConfigProvider/ConfigProvider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { IconAppearanceProvider } from '@vkontakte/icons';\nimport { useAutoDetectColorScheme } from '../../hooks/useAutoDetectColorScheme';\nimport { useAutoDetectDirection } from '../../hooks/useAutoDetectDirection';\nimport { TokensClassProvider } from '../../lib/tokens/TokensClassProvider';\nimport { excludeKeysWithUndefined } from '../../lib/utils';\nimport {\n ConfigProviderContext,\n type ConfigProviderContextInterface,\n useConfigProvider,\n useConfigProviderContextMemo,\n} from './ConfigProviderContext';\n\nexport interface ConfigProviderProps extends Partial<ConfigProviderContextInterface> {\n /**\n * Содержимое.\n */\n children: React.ReactNode;\n}\n\n/**\n * @see https://vkui.io/components/config-provider\n */\nexport const ConfigProvider = (propsRaw: ConfigProviderProps): React.ReactNode => {\n const props = excludeKeysWithUndefined(propsRaw);\n const parentConfig = useConfigProvider();\n\n const mergeProps = {\n ...parentConfig,\n ...props,\n };\n\n const colorScheme = useAutoDetectColorScheme(mergeProps.colorScheme);\n const direction = useAutoDetectDirection(mergeProps.direction);\n\n const configContext = useConfigProviderContextMemo({\n ...mergeProps,\n colorScheme,\n direction,\n });\n\n return (\n <ConfigProviderContext.Provider value={configContext}>\n <IconAppearanceProvider value={colorScheme}>\n <TokensClassProvider>{mergeProps.children}</TokensClassProvider>\n </IconAppearanceProvider>\n </ConfigProviderContext.Provider>\n );\n};\n"],"names":["React","IconAppearanceProvider","useAutoDetectColorScheme","useAutoDetectDirection","TokensClassProvider","excludeKeysWithUndefined","ConfigProviderContext","useConfigProvider","useConfigProviderContextMemo","ConfigProvider","propsRaw","props","parentConfig","mergeProps","colorScheme","direction","configContext","Provider","value","children"],"mappings":"AAAA;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ,mBAAmB;AAC1D,SAASC,wBAAwB,QAAQ,0CAAuC;AAChF,SAASC,sBAAsB,QAAQ,wCAAqC;AAC5E,SAASC,mBAAmB,QAAQ,0CAAuC;AAC3E,SAASC,wBAAwB,QAAQ,qBAAkB;AAC3D,SACEC,qBAAqB,EAErBC,iBAAiB,EACjBC,4BAA4B,QACvB,6BAA0B;AASjC;;CAEC,GACD,OAAO,MAAMC,iBAAiB,CAACC;IAC7B,MAAMC,QAAQN,yBAAyBK;IACvC,MAAME,eAAeL;IAErB,MAAMM,aAAa,mBACdD,cACAD;IAGL,MAAMG,cAAcZ,yBAAyBW,WAAWC,WAAW;IACnE,MAAMC,YAAYZ,uBAAuBU,WAAWE,SAAS;IAE7D,MAAMC,gBAAgBR,6BAA6B,wCAC9CK;QACHC;QACAC;;IAGF,qBACE,KAACT,sBAAsBW,QAAQ;QAACC,OAAOF;kBACrC,cAAA,KAACf;YAAuBiB,OAAOJ;sBAC7B,cAAA,KAACV;0BAAqBS,WAAWM,QAAQ;;;;AAIjD,EAAE"}
@@ -36,7 +36,7 @@ export interface ContentBadgeProps extends HTMLAttributesWithRootRef<HTMLDivElem
36
36
  * Используйте `ContentBadge.SlotIcon` для размещения иконок внутри `ContentBadge`.
37
37
  *
38
38
  * @since 6.1.0
39
- * @see https://vkcom.github.io/VKUI/#/ContentBadge
39
+ * @see https://vkui.io/components/content-badge
40
40
  */
41
41
  export declare const ContentBadge: React.FC<ContentBadgeProps> & {
42
42
  IconSlot: typeof ContentBadgeIconSlot;
@@ -48,7 +48,7 @@ const sizeClassNames = {
48
48
  * Используйте `ContentBadge.SlotIcon` для размещения иконок внутри `ContentBadge`.
49
49
  *
50
50
  * @since 6.1.0
51
- * @see https://vkcom.github.io/VKUI/#/ContentBadge
51
+ * @see https://vkui.io/components/content-badge
52
52
  */ export const ContentBadge = (_param)=>{
53
53
  var { appearance = 'accent', mode = 'primary', capsule, size = 'm', weight = '2', className, children } = _param, restProps = _object_without_properties(_param, [
54
54
  "appearance",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ContentBadge/ContentBadge.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport type { TypographyProps } from '../Typography/Typography';\nimport { ContentBadgeContext } from './ContentBadgeContext';\nimport { ContentBadgeIconSlot } from './ContentBadgeIconSlot';\nimport type { ContentBadgeModeType, ContentBadgeSizeType } from './types';\nimport styles from './ContentBadge.module.css';\n\nconst appearanceClassNames = {\n 'accent': {\n primary: styles.primaryAccent,\n secondary: styles.secondaryAccent,\n outline: styles.outlineAccent,\n },\n 'neutral': {\n primary: styles.primaryNeutral,\n secondary: styles.secondaryNeutral,\n outline: styles.outlineNeutral,\n },\n 'accent-green': {\n primary: styles.primaryAccentGreen,\n secondary: styles.secondaryAccentGreen,\n outline: styles.outlineAccentGreen,\n },\n 'accent-red': {\n primary: styles.primaryAccentRed,\n secondary: styles.secondaryAccentRed,\n outline: styles.outlineAccentRed,\n },\n 'overlay': {\n primary: styles.primaryOverlay,\n secondary: styles.secondaryOverlay,\n outline: styles.outlineOverlay,\n },\n};\n\nconst sizeClassNames = {\n s: styles.sizeS,\n m: styles.sizeM,\n l: styles.sizeL,\n};\n\nexport interface ContentBadgeProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n Pick<TypographyProps, 'weight'> {\n /**\n * Вид отображения.\n */\n mode?: ContentBadgeModeType;\n /**\n * Цвет оформления.\n */\n appearance?: 'accent' | 'neutral' | 'accent-green' | 'accent-red' | 'overlay';\n /**\n * Включает приближение значения закругления к форме круга.\n *\n * > Note: игнорируется при size=\"s\".\n */\n capsule?: boolean;\n /**\n * Определяет отступы и размер текста.\n *\n * Соответствие размеров иконок в слоте `<ContentBadge.SlotIcon />`:\n *\n * - size=\"s\" – ⚠️ не поддерживает иконки;\n * - size=\"m\" – при **одиночной** иконке `16x16`, в остальных случаях `12x12`;\n * - size=\"l\" – при **одиночной** иконке `20x20`, в остальных случаях `16x16`.\n */\n size?: ContentBadgeSizeType;\n}\n\n/**\n * Компонент, который позволяет добавить текстовые или иконочные бейджи. Как правило, используются\n * поверх других элементов или рядом с ними.\n *\n * Используйте `ContentBadge.SlotIcon` для размещения иконок внутри `ContentBadge`.\n *\n * @since 6.1.0\n * @see https://vkcom.github.io/VKUI/#/ContentBadge\n */\nexport const ContentBadge: React.FC<ContentBadgeProps> & {\n IconSlot: typeof ContentBadgeIconSlot;\n /**\n * @deprecated Since 7.3.4. Используйте `IconSlot`.\n */\n SlotIcon: typeof ContentBadgeIconSlot;\n} = ({\n appearance = 'accent',\n mode = 'primary',\n capsule,\n size = 'm',\n weight = '2',\n className,\n children,\n ...restProps\n}: ContentBadgeProps) => {\n const TypographyComponent = size === 'l' ? Footnote : Caption;\n\n return (\n <TypographyComponent\n {...restProps}\n weight={weight}\n normalize\n className={classNames(\n className,\n styles.host,\n size !== 's' && capsule && styles.capsule,\n mode === 'outline' && styles.modeOutline,\n appearanceClassNames[appearance][mode],\n sizeClassNames[size],\n )}\n >\n <ContentBadgeContext.Provider\n value={{ isSingleChild: React.Children.count(children) === 1, size }}\n >\n {children}\n </ContentBadgeContext.Provider>\n </TypographyComponent>\n );\n};\n\nContentBadge.IconSlot = ContentBadgeIconSlot;\nContentBadge.SlotIcon = ContentBadgeIconSlot;\n\nif (process.env.NODE_ENV !== 'production') {\n defineComponentDisplayNames(ContentBadge.IconSlot, 'ContentBadge.IconSlot');\n defineComponentDisplayNames(ContentBadge.SlotIcon, 'ContentBadge.SlotIcon');\n}\n"],"names":["React","classNames","defineComponentDisplayNames","Caption","Footnote","ContentBadgeContext","ContentBadgeIconSlot","appearanceClassNames","primary","secondary","outline","sizeClassNames","s","m","l","ContentBadge","appearance","mode","capsule","size","weight","className","children","restProps","TypographyComponent","normalize","Provider","value","isSingleChild","Children","count","IconSlot","SlotIcon","process","env","NODE_ENV"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,2BAA2B,QAAQ,iDAA8C;AAE1F,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAE3D,SAASC,mBAAmB,QAAQ,2BAAwB;AAC5D,SAASC,oBAAoB,QAAQ,4BAAyB;AAI9D,MAAMC,uBAAuB;IAC3B,UAAU;QACRC,OAAO;QACPC,SAAS;QACTC,OAAO;IACT;IACA,WAAW;QACTF,OAAO;QACPC,SAAS;QACTC,OAAO;IACT;IACA,gBAAgB;QACdF,OAAO;QACPC,SAAS;QACTC,OAAO;IACT;IACA,cAAc;QACZF,OAAO;QACPC,SAAS;QACTC,OAAO;IACT;IACA,WAAW;QACTF,OAAO;QACPC,SAAS;QACTC,OAAO;IACT;AACF;AAEA,MAAMC,iBAAiB;IACrBC,CAAC;IACDC,CAAC;IACDC,CAAC;AACH;AA+BA;;;;;;;;CAQC,GACD,OAAO,MAAMC,eAMT;QAAC,EACHC,aAAa,QAAQ,EACrBC,OAAO,SAAS,EAChBC,OAAO,EACPC,OAAO,GAAG,EACVC,SAAS,GAAG,EACZC,SAAS,EACTC,QAAQ,EAEU,WADfC;QAPHP;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,sBAAsBL,SAAS,MAAMf,WAAWD;IAEtD,qBACE,KAACqB,6DACKD;QACJH,QAAQA;QACRK,SAAS;QACTJ,WAAWpB,WACToB,qCAEAF,SAAS,OAAOD,wCAChBD,SAAS,8CACTV,oBAAoB,CAACS,WAAW,CAACC,KAAK,EACtCN,cAAc,CAACQ,KAAK;kBAGtB,cAAA,KAACd,oBAAoBqB,QAAQ;YAC3BC,OAAO;gBAAEC,eAAe5B,MAAM6B,QAAQ,CAACC,KAAK,CAACR,cAAc;gBAAGH;YAAK;sBAElEG;;;AAIT,EAAE;AAEFP,aAAagB,QAAQ,GAAGzB;AACxBS,aAAaiB,QAAQ,GAAG1B;AAExB,IAAI2B,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;IACzCjC,4BAA4Ba,aAAagB,QAAQ,EAAE;IACnD7B,4BAA4Ba,aAAaiB,QAAQ,EAAE;AACrD"}
1
+ {"version":3,"sources":["../../../src/components/ContentBadge/ContentBadge.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport type { TypographyProps } from '../Typography/Typography';\nimport { ContentBadgeContext } from './ContentBadgeContext';\nimport { ContentBadgeIconSlot } from './ContentBadgeIconSlot';\nimport type { ContentBadgeModeType, ContentBadgeSizeType } from './types';\nimport styles from './ContentBadge.module.css';\n\nconst appearanceClassNames = {\n 'accent': {\n primary: styles.primaryAccent,\n secondary: styles.secondaryAccent,\n outline: styles.outlineAccent,\n },\n 'neutral': {\n primary: styles.primaryNeutral,\n secondary: styles.secondaryNeutral,\n outline: styles.outlineNeutral,\n },\n 'accent-green': {\n primary: styles.primaryAccentGreen,\n secondary: styles.secondaryAccentGreen,\n outline: styles.outlineAccentGreen,\n },\n 'accent-red': {\n primary: styles.primaryAccentRed,\n secondary: styles.secondaryAccentRed,\n outline: styles.outlineAccentRed,\n },\n 'overlay': {\n primary: styles.primaryOverlay,\n secondary: styles.secondaryOverlay,\n outline: styles.outlineOverlay,\n },\n};\n\nconst sizeClassNames = {\n s: styles.sizeS,\n m: styles.sizeM,\n l: styles.sizeL,\n};\n\nexport interface ContentBadgeProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n Pick<TypographyProps, 'weight'> {\n /**\n * Вид отображения.\n */\n mode?: ContentBadgeModeType;\n /**\n * Цвет оформления.\n */\n appearance?: 'accent' | 'neutral' | 'accent-green' | 'accent-red' | 'overlay';\n /**\n * Включает приближение значения закругления к форме круга.\n *\n * > Note: игнорируется при size=\"s\".\n */\n capsule?: boolean;\n /**\n * Определяет отступы и размер текста.\n *\n * Соответствие размеров иконок в слоте `<ContentBadge.SlotIcon />`:\n *\n * - size=\"s\" – ⚠️ не поддерживает иконки;\n * - size=\"m\" – при **одиночной** иконке `16x16`, в остальных случаях `12x12`;\n * - size=\"l\" – при **одиночной** иконке `20x20`, в остальных случаях `16x16`.\n */\n size?: ContentBadgeSizeType;\n}\n\n/**\n * Компонент, который позволяет добавить текстовые или иконочные бейджи. Как правило, используются\n * поверх других элементов или рядом с ними.\n *\n * Используйте `ContentBadge.SlotIcon` для размещения иконок внутри `ContentBadge`.\n *\n * @since 6.1.0\n * @see https://vkui.io/components/content-badge\n */\nexport const ContentBadge: React.FC<ContentBadgeProps> & {\n IconSlot: typeof ContentBadgeIconSlot;\n /**\n * @deprecated Since 7.3.4. Используйте `IconSlot`.\n */\n SlotIcon: typeof ContentBadgeIconSlot;\n} = ({\n appearance = 'accent',\n mode = 'primary',\n capsule,\n size = 'm',\n weight = '2',\n className,\n children,\n ...restProps\n}: ContentBadgeProps) => {\n const TypographyComponent = size === 'l' ? Footnote : Caption;\n\n return (\n <TypographyComponent\n {...restProps}\n weight={weight}\n normalize\n className={classNames(\n className,\n styles.host,\n size !== 's' && capsule && styles.capsule,\n mode === 'outline' && styles.modeOutline,\n appearanceClassNames[appearance][mode],\n sizeClassNames[size],\n )}\n >\n <ContentBadgeContext.Provider\n value={{ isSingleChild: React.Children.count(children) === 1, size }}\n >\n {children}\n </ContentBadgeContext.Provider>\n </TypographyComponent>\n );\n};\n\nContentBadge.IconSlot = ContentBadgeIconSlot;\nContentBadge.SlotIcon = ContentBadgeIconSlot;\n\nif (process.env.NODE_ENV !== 'production') {\n defineComponentDisplayNames(ContentBadge.IconSlot, 'ContentBadge.IconSlot');\n defineComponentDisplayNames(ContentBadge.SlotIcon, 'ContentBadge.SlotIcon');\n}\n"],"names":["React","classNames","defineComponentDisplayNames","Caption","Footnote","ContentBadgeContext","ContentBadgeIconSlot","appearanceClassNames","primary","secondary","outline","sizeClassNames","s","m","l","ContentBadge","appearance","mode","capsule","size","weight","className","children","restProps","TypographyComponent","normalize","Provider","value","isSingleChild","Children","count","IconSlot","SlotIcon","process","env","NODE_ENV"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,2BAA2B,QAAQ,iDAA8C;AAE1F,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAE3D,SAASC,mBAAmB,QAAQ,2BAAwB;AAC5D,SAASC,oBAAoB,QAAQ,4BAAyB;AAI9D,MAAMC,uBAAuB;IAC3B,UAAU;QACRC,OAAO;QACPC,SAAS;QACTC,OAAO;IACT;IACA,WAAW;QACTF,OAAO;QACPC,SAAS;QACTC,OAAO;IACT;IACA,gBAAgB;QACdF,OAAO;QACPC,SAAS;QACTC,OAAO;IACT;IACA,cAAc;QACZF,OAAO;QACPC,SAAS;QACTC,OAAO;IACT;IACA,WAAW;QACTF,OAAO;QACPC,SAAS;QACTC,OAAO;IACT;AACF;AAEA,MAAMC,iBAAiB;IACrBC,CAAC;IACDC,CAAC;IACDC,CAAC;AACH;AA+BA;;;;;;;;CAQC,GACD,OAAO,MAAMC,eAMT;QAAC,EACHC,aAAa,QAAQ,EACrBC,OAAO,SAAS,EAChBC,OAAO,EACPC,OAAO,GAAG,EACVC,SAAS,GAAG,EACZC,SAAS,EACTC,QAAQ,EAEU,WADfC;QAPHP;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,sBAAsBL,SAAS,MAAMf,WAAWD;IAEtD,qBACE,KAACqB,6DACKD;QACJH,QAAQA;QACRK,SAAS;QACTJ,WAAWpB,WACToB,qCAEAF,SAAS,OAAOD,wCAChBD,SAAS,8CACTV,oBAAoB,CAACS,WAAW,CAACC,KAAK,EACtCN,cAAc,CAACQ,KAAK;kBAGtB,cAAA,KAACd,oBAAoBqB,QAAQ;YAC3BC,OAAO;gBAAEC,eAAe5B,MAAM6B,QAAQ,CAACC,KAAK,CAACR,cAAc;gBAAGH;YAAK;sBAElEG;;;AAIT,EAAE;AAEFP,aAAagB,QAAQ,GAAGzB;AACxBS,aAAaiB,QAAQ,GAAG1B;AAExB,IAAI2B,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;IACzCjC,4BAA4Ba,aAAagB,QAAQ,EAAE;IACnD7B,4BAA4Ba,aAAaiB,QAAQ,EAAE;AACrD"}
@@ -38,7 +38,7 @@ export interface ContentCardProps extends HasRootRef<HTMLDivElement>, HasCompone
38
38
  imageObjectFit?: React.CSSProperties['objectFit'];
39
39
  }
40
40
  /**
41
- * @see https://vkcom.github.io/VKUI/#/ContentCard
41
+ * @see https://vkui.io/components/content-card
42
42
  */
43
43
  export declare const ContentCard: ({ overTitle, title, titleComponent, description, caption, className, mode, style, getRootRef, getRef, maxHeight, src, srcSet, alt, width, height, crossOrigin, decoding, loading, referrerPolicy, sizes, useMap, fetchPriority, imageObjectFit, hasHover, hasActive, Component, ...restProps }: ContentCardProps) => React.ReactNode;
44
44
  //# sourceMappingURL=ContentCard.d.ts.map
@@ -12,7 +12,7 @@ import { Footnote } from "../Typography/Footnote/Footnote.js";
12
12
  import { Headline } from "../Typography/Headline/Headline.js";
13
13
  import { Text } from "../Typography/Text/Text.js";
14
14
  /**
15
- * @see https://vkcom.github.io/VKUI/#/ContentCard
15
+ * @see https://vkui.io/components/content-card
16
16
  */ export const ContentCard = (_param)=>{
17
17
  var { overTitle, title, titleComponent = 'span', description, caption, // card props
18
18
  className, mode = 'shadow', style, getRootRef, // img props
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ContentCard/ContentCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { getFetchPriorityProp } from '../../lib/utils';\nimport type { HasComponent, HasRef, HasRootRef } from '../../types';\nimport { Card, type CardProps } from '../Card/Card';\nimport { Tappable, type TappableOmitProps } from '../Tappable/Tappable';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './ContentCard.module.css';\n\nexport interface ContentCardProps\n extends HasRootRef<HTMLDivElement>,\n HasComponent,\n Omit<TappableOmitProps, 'getRootRef' | 'crossOrigin' | 'title'>,\n Omit<React.ImgHTMLAttributes<HTMLImageElement>, keyof React.HTMLAttributes<HTMLImageElement>>,\n HasRef<HTMLImageElement> {\n /**\n Текст над заголовком.\n */\n overTitle?: React.ReactNode;\n /**\n Заголовок.\n */\n title?: React.ReactNode;\n /**\n Позволяет поменять тег используемый для заголовка.\n */\n titleComponent?: React.ElementType;\n /**\n Текст.\n */\n description?: React.ReactNode;\n /**\n Нижний текст.\n */\n caption?: React.ReactNode;\n /**\n Максимальная высота изображения.\n */\n maxHeight?: number;\n /**\n * Внешний вид карточки.\n */\n mode?: CardProps['mode'];\n /**\n * Пользовательское значения стиля `object-fit` для картинки\n * Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/object-fit).\n */\n imageObjectFit?: React.CSSProperties['objectFit'];\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ContentCard\n */\nexport const ContentCard = ({\n overTitle,\n title,\n titleComponent = 'span',\n description,\n caption,\n // card props\n className,\n mode = 'shadow',\n style,\n getRootRef,\n // img props\n getRef,\n maxHeight,\n src,\n srcSet,\n alt = '',\n width = '100%',\n height,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n useMap,\n fetchPriority,\n imageObjectFit,\n hasHover = false,\n hasActive = false,\n Component = 'li',\n ...restProps\n}: ContentCardProps): React.ReactNode => {\n return (\n <Card\n mode={mode}\n getRootRef={getRootRef}\n Component={Component}\n style={style}\n className={classNames(restProps.disabled && styles.disabled, className)}\n >\n <Tappable\n hasHover={hasHover}\n hasActive={hasActive}\n {...restProps}\n baseClassName={styles.tappable}\n >\n {(src || srcSet) && (\n <img\n ref={getRef}\n className={styles.img}\n src={src}\n srcSet={srcSet}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n sizes={sizes}\n useMap={useMap}\n {...getFetchPriorityProp(fetchPriority)}\n height={height}\n width={width}\n style={{ maxHeight, objectFit: imageObjectFit }}\n />\n )}\n <div className={styles.body}>\n {hasReactNode(overTitle) && (\n <Caption\n className={classNames(styles.text, styles.overTitle)}\n weight=\"1\"\n level=\"3\"\n caps\n >\n {overTitle}\n </Caption>\n )}\n {hasReactNode(title) && (\n <Headline className={styles.text} weight=\"2\" level=\"1\" Component={titleComponent}>\n {title}\n </Headline>\n )}\n {hasReactNode(description) && <Text className={styles.text}>{description}</Text>}\n {hasReactNode(caption) && (\n <Footnote className={classNames(styles.text, styles.caption)}>{caption}</Footnote>\n )}\n </div>\n </Tappable>\n </Card>\n );\n};\n"],"names":["React","classNames","hasReactNode","getFetchPriorityProp","Card","Tappable","Caption","Footnote","Headline","Text","ContentCard","overTitle","title","titleComponent","description","caption","className","mode","style","getRootRef","getRef","maxHeight","src","srcSet","alt","width","height","crossOrigin","decoding","loading","referrerPolicy","sizes","useMap","fetchPriority","imageObjectFit","hasHover","hasActive","Component","restProps","disabled","baseClassName","img","ref","objectFit","div","weight","level","caps"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,oBAAoB,QAAQ,qBAAkB;AAEvD,SAASC,IAAI,QAAwB,kBAAe;AACpD,SAASC,QAAQ,QAAgC,0BAAuB;AACxE,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,IAAI,QAAQ,6BAA0B;AA4C/C;;CAEC,GACD,OAAO,MAAMC,cAAc;QAAC,EAC1BC,SAAS,EACTC,KAAK,EACLC,iBAAiB,MAAM,EACvBC,WAAW,EACXC,OAAO,EACP,aAAa;IACbC,SAAS,EACTC,OAAO,QAAQ,EACfC,KAAK,EACLC,UAAU,EACV,YAAY;IACZC,MAAM,EACNC,SAAS,EACTC,GAAG,EACHC,MAAM,EACNC,MAAM,EAAE,EACRC,QAAQ,MAAM,EACdC,MAAM,EACNC,WAAW,EACXC,QAAQ,EACRC,OAAO,EACPC,cAAc,EACdC,KAAK,EACLC,MAAM,EACNC,aAAa,EACbC,cAAc,EACdC,WAAW,KAAK,EAChBC,YAAY,KAAK,EACjBC,YAAY,IAAI,EAEC,WADdC;QA7BH3B;QACAC;QACAC;QACAC;QACAC;QAEAC;QACAC;QACAC;QACAC;QAEAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,qBACE,KAACjC;QACCa,MAAMA;QACNE,YAAYA;QACZkB,WAAWA;QACXnB,OAAOA;QACPF,WAAWf,WAAWqC,UAAUC,QAAQ,iCAAqBvB;kBAE7D,cAAA,MAACX;YACC8B,UAAUA;YACVC,WAAWA;WACPE;YACJE,aAAa;;gBAEXlB,CAAAA,OAAOC,MAAK,mBACZ,KAACkB;oBACCC,KAAKtB;oBACLJ,SAAS;oBACTM,KAAKA;oBACLC,QAAQA;oBACRC,KAAKA;oBACLG,aAAaA;oBACbC,UAAUA;oBACVC,SAASA;oBACTC,gBAAgBA;oBAChBC,OAAOA;oBACPC,QAAQA;mBACJ7B,qBAAqB8B;oBACzBP,QAAQA;oBACRD,OAAOA;oBACPP,OAAO;wBAAEG;wBAAWsB,WAAWT;oBAAe;;8BAGlD,MAACU;oBAAI5B,SAAS;;wBACXd,aAAaS,4BACZ,KAACL;4BACCU,WAAWf;4BACX4C,QAAO;4BACPC,OAAM;4BACNC,IAAI;sCAEHpC;;wBAGJT,aAAaU,wBACZ,KAACJ;4BAASQ,SAAS;4BAAe6B,QAAO;4BAAIC,OAAM;4BAAIT,WAAWxB;sCAC/DD;;wBAGJV,aAAaY,8BAAgB,KAACL;4BAAKO,SAAS;sCAAgBF;;wBAC5DZ,aAAaa,0BACZ,KAACR;4BAASS,WAAWf;sCAA0Cc;;;;;;;AAM3E,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/ContentCard/ContentCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { getFetchPriorityProp } from '../../lib/utils';\nimport type { HasComponent, HasRef, HasRootRef } from '../../types';\nimport { Card, type CardProps } from '../Card/Card';\nimport { Tappable, type TappableOmitProps } from '../Tappable/Tappable';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './ContentCard.module.css';\n\nexport interface ContentCardProps\n extends HasRootRef<HTMLDivElement>,\n HasComponent,\n Omit<TappableOmitProps, 'getRootRef' | 'crossOrigin' | 'title'>,\n Omit<React.ImgHTMLAttributes<HTMLImageElement>, keyof React.HTMLAttributes<HTMLImageElement>>,\n HasRef<HTMLImageElement> {\n /**\n Текст над заголовком.\n */\n overTitle?: React.ReactNode;\n /**\n Заголовок.\n */\n title?: React.ReactNode;\n /**\n Позволяет поменять тег используемый для заголовка.\n */\n titleComponent?: React.ElementType;\n /**\n Текст.\n */\n description?: React.ReactNode;\n /**\n Нижний текст.\n */\n caption?: React.ReactNode;\n /**\n Максимальная высота изображения.\n */\n maxHeight?: number;\n /**\n * Внешний вид карточки.\n */\n mode?: CardProps['mode'];\n /**\n * Пользовательское значения стиля `object-fit` для картинки\n * Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/object-fit).\n */\n imageObjectFit?: React.CSSProperties['objectFit'];\n}\n\n/**\n * @see https://vkui.io/components/content-card\n */\nexport const ContentCard = ({\n overTitle,\n title,\n titleComponent = 'span',\n description,\n caption,\n // card props\n className,\n mode = 'shadow',\n style,\n getRootRef,\n // img props\n getRef,\n maxHeight,\n src,\n srcSet,\n alt = '',\n width = '100%',\n height,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n useMap,\n fetchPriority,\n imageObjectFit,\n hasHover = false,\n hasActive = false,\n Component = 'li',\n ...restProps\n}: ContentCardProps): React.ReactNode => {\n return (\n <Card\n mode={mode}\n getRootRef={getRootRef}\n Component={Component}\n style={style}\n className={classNames(restProps.disabled && styles.disabled, className)}\n >\n <Tappable\n hasHover={hasHover}\n hasActive={hasActive}\n {...restProps}\n baseClassName={styles.tappable}\n >\n {(src || srcSet) && (\n <img\n ref={getRef}\n className={styles.img}\n src={src}\n srcSet={srcSet}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n sizes={sizes}\n useMap={useMap}\n {...getFetchPriorityProp(fetchPriority)}\n height={height}\n width={width}\n style={{ maxHeight, objectFit: imageObjectFit }}\n />\n )}\n <div className={styles.body}>\n {hasReactNode(overTitle) && (\n <Caption\n className={classNames(styles.text, styles.overTitle)}\n weight=\"1\"\n level=\"3\"\n caps\n >\n {overTitle}\n </Caption>\n )}\n {hasReactNode(title) && (\n <Headline className={styles.text} weight=\"2\" level=\"1\" Component={titleComponent}>\n {title}\n </Headline>\n )}\n {hasReactNode(description) && <Text className={styles.text}>{description}</Text>}\n {hasReactNode(caption) && (\n <Footnote className={classNames(styles.text, styles.caption)}>{caption}</Footnote>\n )}\n </div>\n </Tappable>\n </Card>\n );\n};\n"],"names":["React","classNames","hasReactNode","getFetchPriorityProp","Card","Tappable","Caption","Footnote","Headline","Text","ContentCard","overTitle","title","titleComponent","description","caption","className","mode","style","getRootRef","getRef","maxHeight","src","srcSet","alt","width","height","crossOrigin","decoding","loading","referrerPolicy","sizes","useMap","fetchPriority","imageObjectFit","hasHover","hasActive","Component","restProps","disabled","baseClassName","img","ref","objectFit","div","weight","level","caps"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,oBAAoB,QAAQ,qBAAkB;AAEvD,SAASC,IAAI,QAAwB,kBAAe;AACpD,SAASC,QAAQ,QAAgC,0BAAuB;AACxE,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,IAAI,QAAQ,6BAA0B;AA4C/C;;CAEC,GACD,OAAO,MAAMC,cAAc;QAAC,EAC1BC,SAAS,EACTC,KAAK,EACLC,iBAAiB,MAAM,EACvBC,WAAW,EACXC,OAAO,EACP,aAAa;IACbC,SAAS,EACTC,OAAO,QAAQ,EACfC,KAAK,EACLC,UAAU,EACV,YAAY;IACZC,MAAM,EACNC,SAAS,EACTC,GAAG,EACHC,MAAM,EACNC,MAAM,EAAE,EACRC,QAAQ,MAAM,EACdC,MAAM,EACNC,WAAW,EACXC,QAAQ,EACRC,OAAO,EACPC,cAAc,EACdC,KAAK,EACLC,MAAM,EACNC,aAAa,EACbC,cAAc,EACdC,WAAW,KAAK,EAChBC,YAAY,KAAK,EACjBC,YAAY,IAAI,EAEC,WADdC;QA7BH3B;QACAC;QACAC;QACAC;QACAC;QAEAC;QACAC;QACAC;QACAC;QAEAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,qBACE,KAACjC;QACCa,MAAMA;QACNE,YAAYA;QACZkB,WAAWA;QACXnB,OAAOA;QACPF,WAAWf,WAAWqC,UAAUC,QAAQ,iCAAqBvB;kBAE7D,cAAA,MAACX;YACC8B,UAAUA;YACVC,WAAWA;WACPE;YACJE,aAAa;;gBAEXlB,CAAAA,OAAOC,MAAK,mBACZ,KAACkB;oBACCC,KAAKtB;oBACLJ,SAAS;oBACTM,KAAKA;oBACLC,QAAQA;oBACRC,KAAKA;oBACLG,aAAaA;oBACbC,UAAUA;oBACVC,SAASA;oBACTC,gBAAgBA;oBAChBC,OAAOA;oBACPC,QAAQA;mBACJ7B,qBAAqB8B;oBACzBP,QAAQA;oBACRD,OAAOA;oBACPP,OAAO;wBAAEG;wBAAWsB,WAAWT;oBAAe;;8BAGlD,MAACU;oBAAI5B,SAAS;;wBACXd,aAAaS,4BACZ,KAACL;4BACCU,WAAWf;4BACX4C,QAAO;4BACPC,OAAM;4BACNC,IAAI;sCAEHpC;;wBAGJT,aAAaU,wBACZ,KAACJ;4BAASQ,SAAS;4BAAe6B,QAAO;4BAAIC,OAAM;4BAAIT,WAAWxB;sCAC/DD;;wBAGJV,aAAaY,8BAAgB,KAACL;4BAAKO,SAAS;sCAAgBF;;wBAC5DZ,aAAaa,0BACZ,KAACR;4BAASS,WAAWf;sCAA0Cc;;;;;;;AAM3E,EAAE"}
@@ -23,7 +23,7 @@ export interface CounterProps extends HTMLAttributesWithRootRef<HTMLSpanElement>
23
23
  size?: 's' | 'm';
24
24
  }
25
25
  /**
26
- * @see https://vkcom.github.io/VKUI/#/Counter
26
+ * @see https://vkui.io/components/counter
27
27
  */
28
28
  export declare const Counter: ({ mode, appearance: appearanceProp, color, size, children, className, style: styleProp, ...restProps }: CounterProps) => React.ReactNode;
29
29
  //# sourceMappingURL=Counter.d.ts.map
@@ -26,7 +26,7 @@ const sizeClassNames = {
26
26
  m: "vkuiCounter__sizeM"
27
27
  };
28
28
  /**
29
- * @see https://vkcom.github.io/VKUI/#/Counter
29
+ * @see https://vkui.io/components/counter
30
30
  */ export const Counter = (_param)=>{
31
31
  var { mode = 'inherit', appearance: appearanceProp, color, size = 'm', children, className, style: styleProp } = _param, restProps = _object_without_properties(_param, [
32
32
  "mode",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Counter/Counter.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { type CSSCustomProperties, type HTMLAttributesWithRootRef } from '../../types';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Headline } from '../Typography/Headline/Headline';\nimport styles from './Counter.module.css';\n\nconst modeClassNames = {\n primary: styles.modePrimary,\n contrast: styles.modeContrast,\n tertiary: styles.modeTertiary,\n inherit: styles.modeInherit,\n};\n\nconst appearanceClassNames: Record<string, string> = {\n 'custom': styles.appearanceCustom,\n 'accent': styles.appearanceAccent,\n 'neutral': styles.appearanceNeutral,\n 'accent-green': styles.appearanceAccentGreen,\n 'accent-red': styles.appearanceAccentRed,\n};\n\nconst sizeClassNames = {\n s: styles.sizeS,\n m: styles.sizeM,\n};\n\nexport interface CounterProps extends HTMLAttributesWithRootRef<HTMLSpanElement> {\n /**\n * Режим отображения счетчика.\n */\n mode?: 'primary' | 'contrast' | 'tertiary' | 'inherit';\n\n /**\n * Внешний вид счетчика.\n */\n appearance?: 'accent' | 'neutral' | 'accent-green' | 'accent-red' | 'custom';\n\n /**\n * Пользовательский цвет (работает только при appearance=\"custom\")\n * - При mode=\"primary\" - изменяет фон\n * - При mode=\"contrast\" - изменяет цвет текста\n * - При mode=\"tertiary\" - изменяет цвет текста\n * - При mode=\"inherit\" - не работает.\n */\n color?: string;\n /**\n * Размер счетчика.\n */\n size?: 's' | 'm';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Counter\n */\nexport const Counter = ({\n mode = 'inherit',\n appearance: appearanceProp,\n color,\n size = 'm',\n children,\n className,\n style: styleProp,\n ...restProps\n}: CounterProps): React.ReactNode => {\n const appearance = React.useMemo<CounterProps['appearance']>(() => {\n if (mode === 'inherit') {\n return undefined;\n }\n if (appearanceProp) {\n return appearanceProp;\n }\n return 'accent';\n }, [appearanceProp, mode]);\n\n const style: (React.CSSProperties & CSSCustomProperties<string | undefined>) | undefined =\n React.useMemo(() => {\n if (mode === 'inherit' || appearance !== 'custom' || !color) {\n return undefined;\n }\n switch (mode) {\n case 'primary':\n return {\n '--vkui_internal--counter_background': color,\n };\n case 'contrast':\n case 'tertiary':\n return {\n '--vkui_internal--counter_foreground': color,\n };\n }\n }, [appearance, color, mode]);\n\n if (React.Children.count(children) === 0) {\n return null;\n }\n\n const CounterTypography = size === 's' ? Caption : Headline;\n const counterLevel = size === 's' ? '1' : '2';\n\n return (\n <CounterTypography\n {...restProps}\n style={mergeStyle(style, styleProp)}\n Component=\"span\"\n className={classNames(\n 'vkuiInternalCounter',\n styles.host,\n modeClassNames[mode],\n !!appearance && appearanceClassNames[appearance],\n sizeClassNames[size],\n className,\n )}\n level={counterLevel}\n >\n {children}\n </CounterTypography>\n );\n};\n"],"names":["React","classNames","mergeStyle","Caption","Headline","modeClassNames","primary","contrast","tertiary","inherit","appearanceClassNames","sizeClassNames","s","m","Counter","mode","appearance","appearanceProp","color","size","children","className","style","styleProp","restProps","useMemo","undefined","Children","count","CounterTypography","counterLevel","Component","level"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,QAAQ,8BAA2B;AAEtD,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAG3D,MAAMC,iBAAiB;IACrBC,OAAO;IACPC,QAAQ;IACRC,QAAQ;IACRC,OAAO;AACT;AAEA,MAAMC,uBAA+C;IACnD,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,cAAc;IACd,YAAY;AACd;AAEA,MAAMC,iBAAiB;IACrBC,CAAC;IACDC,CAAC;AACH;AA2BA;;CAEC,GACD,OAAO,MAAMC,UAAU;QAAC,EACtBC,OAAO,SAAS,EAChBC,YAAYC,cAAc,EAC1BC,KAAK,EACLC,OAAO,GAAG,EACVC,QAAQ,EACRC,SAAS,EACTC,OAAOC,SAAS,EAEH,WADVC;QAPHT;QACAC;QACAE;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAMN,aAAahB,MAAMyB,OAAO,CAA6B;QAC3D,IAAIV,SAAS,WAAW;YACtB,OAAOW;QACT;QACA,IAAIT,gBAAgB;YAClB,OAAOA;QACT;QACA,OAAO;IACT,GAAG;QAACA;QAAgBF;KAAK;IAEzB,MAAMO,QACJtB,MAAMyB,OAAO,CAAC;QACZ,IAAIV,SAAS,aAAaC,eAAe,YAAY,CAACE,OAAO;YAC3D,OAAOQ;QACT;QACA,OAAQX;YACN,KAAK;gBACH,OAAO;oBACL,uCAAuCG;gBACzC;YACF,KAAK;YACL,KAAK;gBACH,OAAO;oBACL,uCAAuCA;gBACzC;QACJ;IACF,GAAG;QAACF;QAAYE;QAAOH;KAAK;IAE9B,IAAIf,MAAM2B,QAAQ,CAACC,KAAK,CAACR,cAAc,GAAG;QACxC,OAAO;IACT;IAEA,MAAMS,oBAAoBV,SAAS,MAAMhB,UAAUC;IACnD,MAAM0B,eAAeX,SAAS,MAAM,MAAM;IAE1C,qBACE,KAACU,2DACKL;QACJF,OAAOpB,WAAWoB,OAAOC;QACzBQ,WAAU;QACVV,WAAWpB,WACT,4CAEAI,cAAc,CAACU,KAAK,EACpB,CAAC,CAACC,cAAcN,oBAAoB,CAACM,WAAW,EAChDL,cAAc,CAACQ,KAAK,EACpBE;QAEFW,OAAOF;kBAENV;;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Counter/Counter.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { type CSSCustomProperties, type HTMLAttributesWithRootRef } from '../../types';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Headline } from '../Typography/Headline/Headline';\nimport styles from './Counter.module.css';\n\nconst modeClassNames = {\n primary: styles.modePrimary,\n contrast: styles.modeContrast,\n tertiary: styles.modeTertiary,\n inherit: styles.modeInherit,\n};\n\nconst appearanceClassNames: Record<string, string> = {\n 'custom': styles.appearanceCustom,\n 'accent': styles.appearanceAccent,\n 'neutral': styles.appearanceNeutral,\n 'accent-green': styles.appearanceAccentGreen,\n 'accent-red': styles.appearanceAccentRed,\n};\n\nconst sizeClassNames = {\n s: styles.sizeS,\n m: styles.sizeM,\n};\n\nexport interface CounterProps extends HTMLAttributesWithRootRef<HTMLSpanElement> {\n /**\n * Режим отображения счетчика.\n */\n mode?: 'primary' | 'contrast' | 'tertiary' | 'inherit';\n\n /**\n * Внешний вид счетчика.\n */\n appearance?: 'accent' | 'neutral' | 'accent-green' | 'accent-red' | 'custom';\n\n /**\n * Пользовательский цвет (работает только при appearance=\"custom\")\n * - При mode=\"primary\" - изменяет фон\n * - При mode=\"contrast\" - изменяет цвет текста\n * - При mode=\"tertiary\" - изменяет цвет текста\n * - При mode=\"inherit\" - не работает.\n */\n color?: string;\n /**\n * Размер счетчика.\n */\n size?: 's' | 'm';\n}\n\n/**\n * @see https://vkui.io/components/counter\n */\nexport const Counter = ({\n mode = 'inherit',\n appearance: appearanceProp,\n color,\n size = 'm',\n children,\n className,\n style: styleProp,\n ...restProps\n}: CounterProps): React.ReactNode => {\n const appearance = React.useMemo<CounterProps['appearance']>(() => {\n if (mode === 'inherit') {\n return undefined;\n }\n if (appearanceProp) {\n return appearanceProp;\n }\n return 'accent';\n }, [appearanceProp, mode]);\n\n const style: (React.CSSProperties & CSSCustomProperties<string | undefined>) | undefined =\n React.useMemo(() => {\n if (mode === 'inherit' || appearance !== 'custom' || !color) {\n return undefined;\n }\n switch (mode) {\n case 'primary':\n return {\n '--vkui_internal--counter_background': color,\n };\n case 'contrast':\n case 'tertiary':\n return {\n '--vkui_internal--counter_foreground': color,\n };\n }\n }, [appearance, color, mode]);\n\n if (React.Children.count(children) === 0) {\n return null;\n }\n\n const CounterTypography = size === 's' ? Caption : Headline;\n const counterLevel = size === 's' ? '1' : '2';\n\n return (\n <CounterTypography\n {...restProps}\n style={mergeStyle(style, styleProp)}\n Component=\"span\"\n className={classNames(\n 'vkuiInternalCounter',\n styles.host,\n modeClassNames[mode],\n !!appearance && appearanceClassNames[appearance],\n sizeClassNames[size],\n className,\n )}\n level={counterLevel}\n >\n {children}\n </CounterTypography>\n );\n};\n"],"names":["React","classNames","mergeStyle","Caption","Headline","modeClassNames","primary","contrast","tertiary","inherit","appearanceClassNames","sizeClassNames","s","m","Counter","mode","appearance","appearanceProp","color","size","children","className","style","styleProp","restProps","useMemo","undefined","Children","count","CounterTypography","counterLevel","Component","level"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,QAAQ,8BAA2B;AAEtD,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAG3D,MAAMC,iBAAiB;IACrBC,OAAO;IACPC,QAAQ;IACRC,QAAQ;IACRC,OAAO;AACT;AAEA,MAAMC,uBAA+C;IACnD,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,cAAc;IACd,YAAY;AACd;AAEA,MAAMC,iBAAiB;IACrBC,CAAC;IACDC,CAAC;AACH;AA2BA;;CAEC,GACD,OAAO,MAAMC,UAAU;QAAC,EACtBC,OAAO,SAAS,EAChBC,YAAYC,cAAc,EAC1BC,KAAK,EACLC,OAAO,GAAG,EACVC,QAAQ,EACRC,SAAS,EACTC,OAAOC,SAAS,EAEH,WADVC;QAPHT;QACAC;QACAE;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAMN,aAAahB,MAAMyB,OAAO,CAA6B;QAC3D,IAAIV,SAAS,WAAW;YACtB,OAAOW;QACT;QACA,IAAIT,gBAAgB;YAClB,OAAOA;QACT;QACA,OAAO;IACT,GAAG;QAACA;QAAgBF;KAAK;IAEzB,MAAMO,QACJtB,MAAMyB,OAAO,CAAC;QACZ,IAAIV,SAAS,aAAaC,eAAe,YAAY,CAACE,OAAO;YAC3D,OAAOQ;QACT;QACA,OAAQX;YACN,KAAK;gBACH,OAAO;oBACL,uCAAuCG;gBACzC;YACF,KAAK;YACL,KAAK;gBACH,OAAO;oBACL,uCAAuCA;gBACzC;QACJ;IACF,GAAG;QAACF;QAAYE;QAAOH;KAAK;IAE9B,IAAIf,MAAM2B,QAAQ,CAACC,KAAK,CAACR,cAAc,GAAG;QACxC,OAAO;IACT;IAEA,MAAMS,oBAAoBV,SAAS,MAAMhB,UAAUC;IACnD,MAAM0B,eAAeX,SAAS,MAAM,MAAM;IAE1C,qBACE,KAACU,2DACKL;QACJF,OAAOpB,WAAWoB,OAAOC;QACzBQ,WAAU;QACVV,WAAWpB,WACT,4CAEAI,cAAc,CAACU,KAAK,EACpB,CAAC,CAACC,cAAcN,oBAAoB,CAACM,WAAW,EAChDL,cAAc,CAACQ,KAAK,EACpBE;QAEFW,OAAOF;kBAENV;;AAGP,EAAE"}