@vkontakte/vkui 5.7.2 → 5.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1106) hide show
  1. package/README.md +4 -4
  2. package/dist/cjs/components/Accordion/Accordion.d.ts +1 -1
  3. package/dist/cjs/components/Accordion/Accordion.js +6 -11
  4. package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
  5. package/dist/cjs/components/ActionSheet/ActionSheet.d.ts +6 -1
  6. package/dist/cjs/components/ActionSheet/ActionSheet.js +12 -9
  7. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  8. package/dist/cjs/components/ActionSheet/ActionSheetContext.d.ts +6 -1
  9. package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
  10. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +2 -1
  11. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  12. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts +6 -1
  13. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +15 -4
  14. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  15. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +22 -8
  16. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  17. package/dist/cjs/components/AppRoot/AppRoot.d.ts +19 -2
  18. package/dist/cjs/components/AppRoot/AppRoot.js +58 -20
  19. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  20. package/dist/cjs/components/AppRoot/AppRootContext.d.ts +1 -0
  21. package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
  22. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.d.ts +1 -1
  23. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  24. package/dist/cjs/components/AspectRatio/AspectRatio.d.ts +3 -3
  25. package/dist/cjs/components/AspectRatio/AspectRatio.js +6 -8
  26. package/dist/cjs/components/AspectRatio/AspectRatio.js.map +1 -1
  27. package/dist/cjs/components/Badge/Badge.d.ts +3 -2
  28. package/dist/cjs/components/Badge/Badge.js +10 -8
  29. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  30. package/dist/cjs/components/Banner/Banner.d.ts +3 -3
  31. package/dist/cjs/components/Banner/Banner.js +10 -9
  32. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  33. package/dist/cjs/components/BaseGallery/BaseGallery.d.ts +1 -1
  34. package/dist/cjs/components/BaseGallery/BaseGallery.js +10 -9
  35. package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
  36. package/dist/cjs/components/BaseGallery/types.d.ts +2 -2
  37. package/dist/cjs/components/BaseGallery/types.js.map +1 -1
  38. package/dist/cjs/components/Button/Button.js +26 -22
  39. package/dist/cjs/components/Button/Button.js.map +1 -1
  40. package/dist/cjs/components/ButtonGroup/ButtonGroup.d.ts +3 -3
  41. package/dist/cjs/components/ButtonGroup/ButtonGroup.js +21 -21
  42. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
  43. package/dist/cjs/components/Calendar/Calendar.d.ts +3 -3
  44. package/dist/cjs/components/Calendar/Calendar.js +4 -6
  45. package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
  46. package/dist/cjs/components/CalendarDays/CalendarDays.d.ts +3 -2
  47. package/dist/cjs/components/CalendarDays/CalendarDays.js +11 -8
  48. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
  49. package/dist/cjs/components/CalendarHeader/CalendarHeader.d.ts +3 -2
  50. package/dist/cjs/components/CalendarHeader/CalendarHeader.js +24 -7
  51. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
  52. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +3 -3
  53. package/dist/cjs/components/CalendarRange/CalendarRange.js +4 -6
  54. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  55. package/dist/cjs/components/Card/Card.d.ts +4 -4
  56. package/dist/cjs/components/Card/Card.js +7 -9
  57. package/dist/cjs/components/Card/Card.js.map +1 -1
  58. package/dist/cjs/components/CardGrid/CardGrid.d.ts +3 -2
  59. package/dist/cjs/components/CardGrid/CardGrid.js +11 -11
  60. package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
  61. package/dist/cjs/components/CardScroll/CardScroll.d.ts +3 -2
  62. package/dist/cjs/components/CardScroll/CardScroll.js +10 -9
  63. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  64. package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts +2 -1
  65. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
  66. package/dist/cjs/components/Checkbox/Checkbox.js +3 -4
  67. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  68. package/dist/cjs/components/Chip/Chip.d.ts +3 -2
  69. package/dist/cjs/components/Chip/Chip.js +6 -7
  70. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  71. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +4 -2
  72. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  73. package/dist/cjs/components/ConfigProvider/ConfigProvider.d.ts +7 -0
  74. package/dist/cjs/components/ConfigProvider/ConfigProvider.js +24 -6
  75. package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
  76. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +47 -3
  77. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js +6 -1
  78. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  79. package/dist/cjs/components/Counter/Counter.d.ts +2 -1
  80. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  81. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +1 -1
  82. package/dist/cjs/components/CustomSelect/CustomSelect.js +1 -1
  83. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  84. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -2
  85. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  86. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.d.ts +2 -2
  87. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  88. package/dist/cjs/components/DatePicker/DatePicker.d.ts +2 -1
  89. package/dist/cjs/components/DatePicker/DatePicker.js +5 -5
  90. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  91. package/dist/cjs/components/Div/Div.d.ts +3 -4
  92. package/dist/cjs/components/Div/Div.js +5 -13
  93. package/dist/cjs/components/Div/Div.js.map +1 -1
  94. package/dist/cjs/components/DropdownIcon/DropdownIcon.d.ts +2 -1
  95. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
  96. package/dist/cjs/components/Epic/Epic.d.ts +3 -2
  97. package/dist/cjs/components/Epic/Epic.js +7 -7
  98. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  99. package/dist/cjs/components/FixedLayout/FixedLayout.d.ts +2 -2
  100. package/dist/cjs/components/FixedLayout/FixedLayout.js +5 -4
  101. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  102. package/dist/cjs/components/FocusTrap/FocusTrap.d.ts +2 -2
  103. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  104. package/dist/cjs/components/FocusVisible/FocusVisible.d.ts +2 -1
  105. package/dist/cjs/components/FocusVisible/FocusVisible.js +8 -6
  106. package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
  107. package/dist/cjs/components/FormField/FormField.js +5 -4
  108. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  109. package/dist/cjs/components/FormItem/FormItem.d.ts +6 -1
  110. package/dist/cjs/components/FormItem/FormItem.js +11 -10
  111. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  112. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -3
  113. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +6 -6
  114. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  115. package/dist/cjs/components/FormStatus/FormStatus.d.ts +2 -2
  116. package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
  117. package/dist/cjs/components/Gradient/Gradient.d.ts +3 -2
  118. package/dist/cjs/components/Gradient/Gradient.js +15 -14
  119. package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
  120. package/dist/cjs/components/Group/Group.d.ts +3 -3
  121. package/dist/cjs/components/Group/Group.js +35 -21
  122. package/dist/cjs/components/Group/Group.js.map +1 -1
  123. package/dist/cjs/components/Header/Header.d.ts +3 -3
  124. package/dist/cjs/components/Header/Header.js +12 -11
  125. package/dist/cjs/components/Header/Header.js.map +1 -1
  126. package/dist/cjs/components/HorizontalCell/HorizontalCell.js +6 -5
  127. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  128. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +3 -3
  129. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +4 -4
  130. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  131. package/dist/cjs/components/ImageBase/ImageBase.d.ts +2 -2
  132. package/dist/cjs/components/ImageBase/ImageBase.js +5 -7
  133. package/dist/cjs/components/ImageBase/ImageBase.js.map +1 -1
  134. package/dist/cjs/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts +3 -2
  135. package/dist/cjs/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js +8 -9
  136. package/dist/cjs/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  137. package/dist/cjs/components/InfoRow/InfoRow.d.ts +2 -1
  138. package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
  139. package/dist/cjs/components/InputLike/InputLike.d.ts +3 -3
  140. package/dist/cjs/components/InputLike/InputLike.js +6 -8
  141. package/dist/cjs/components/InputLike/InputLike.js.map +1 -1
  142. package/dist/cjs/components/List/List.d.ts +3 -2
  143. package/dist/cjs/components/List/List.js +5 -5
  144. package/dist/cjs/components/List/List.js.map +1 -1
  145. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.d.ts +2 -1
  146. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js +14 -11
  147. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  148. package/dist/cjs/components/ModalCard/ModalCard.d.ts +1 -1
  149. package/dist/cjs/components/ModalCard/ModalCard.js +5 -7
  150. package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
  151. package/dist/cjs/components/ModalCardBase/ModalCardBase.d.ts +3 -3
  152. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +4 -6
  153. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  154. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.d.ts +2 -1
  155. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  156. package/dist/cjs/components/ModalPage/ModalPage.d.ts +3 -2
  157. package/dist/cjs/components/ModalPage/ModalPage.js +9 -6
  158. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  159. package/dist/cjs/components/ModalRoot/ModalRoot.js +6 -4
  160. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  161. package/dist/cjs/components/ModalRoot/ModalRootContext.js +3 -0
  162. package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
  163. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +2 -2
  164. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  165. package/dist/cjs/components/ModalRoot/types.d.ts +1 -0
  166. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  167. package/dist/cjs/components/NavTransitionDirectionContext/NavTransitionDirectionContext.d.ts +8 -0
  168. package/dist/cjs/components/NavTransitionDirectionContext/NavTransitionDirectionContext.js +43 -0
  169. package/dist/cjs/components/NavTransitionDirectionContext/NavTransitionDirectionContext.js.map +1 -0
  170. package/dist/cjs/components/Pagination/Pagination.d.ts +3 -3
  171. package/dist/cjs/components/Pagination/Pagination.js +17 -33
  172. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  173. package/dist/cjs/components/Pagination/PaginationPage/PaginationPageButton.d.ts +12 -0
  174. package/dist/cjs/components/Pagination/PaginationPage/PaginationPageButton.js +48 -0
  175. package/dist/cjs/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -0
  176. package/dist/cjs/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts +6 -0
  177. package/dist/cjs/components/Pagination/PaginationPage/PaginationPageEllipsis.js +32 -0
  178. package/dist/cjs/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -0
  179. package/dist/cjs/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts +5 -0
  180. package/dist/cjs/components/Pagination/PaginationPage/usePaginationPageClasses.js +20 -0
  181. package/dist/cjs/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -0
  182. package/dist/cjs/components/Pagination/utils.d.ts +1 -0
  183. package/dist/cjs/components/Pagination/utils.js +15 -0
  184. package/dist/cjs/components/Pagination/utils.js.map +1 -0
  185. package/dist/cjs/components/Panel/Panel.d.ts +3 -3
  186. package/dist/cjs/components/Panel/Panel.js +7 -7
  187. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  188. package/dist/cjs/components/PanelHeader/PanelHeader.d.ts +3 -3
  189. package/dist/cjs/components/PanelHeader/PanelHeader.js +15 -10
  190. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  191. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.d.ts +3 -2
  192. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +4 -6
  193. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  194. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.d.ts +2 -1
  195. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  196. package/dist/cjs/components/Placeholder/Placeholder.d.ts +24 -11
  197. package/dist/cjs/components/Placeholder/Placeholder.js +49 -21
  198. package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
  199. package/dist/cjs/components/PopoutRoot/PopoutRoot.d.ts +3 -3
  200. package/dist/cjs/components/PopoutRoot/PopoutRoot.js +12 -17
  201. package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
  202. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.d.ts +3 -2
  203. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js +16 -16
  204. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  205. package/dist/cjs/components/Popper/Popper.d.ts +7 -3
  206. package/dist/cjs/components/Popper/Popper.js +19 -10
  207. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  208. package/dist/cjs/components/Progress/Progress.d.ts +3 -3
  209. package/dist/cjs/components/Progress/Progress.js +9 -10
  210. package/dist/cjs/components/Progress/Progress.js.map +1 -1
  211. package/dist/cjs/components/PromoBanner/PromoBanner.d.ts +3 -2
  212. package/dist/cjs/components/PromoBanner/PromoBanner.js +5 -6
  213. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  214. package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +25 -0
  215. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +5 -2
  216. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  217. package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.d.ts +7 -7
  218. package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.js +14 -6
  219. package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  220. package/dist/cjs/components/RadioGroup/RadioGroup.d.ts +3 -2
  221. package/dist/cjs/components/RadioGroup/RadioGroup.js +6 -7
  222. package/dist/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  223. package/dist/cjs/components/Removable/Removable.d.ts +3 -3
  224. package/dist/cjs/components/Removable/Removable.js +4 -8
  225. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  226. package/dist/cjs/components/RichCell/RichCell.d.ts +1 -1
  227. package/dist/cjs/components/RichCell/RichCellIcon/RichCellIcon.d.ts +3 -1
  228. package/dist/cjs/components/RichCell/RichCellIcon/RichCellIcon.js +5 -11
  229. package/dist/cjs/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
  230. package/dist/cjs/components/RichTooltip/RichTooltip.js +7 -6
  231. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
  232. package/dist/cjs/components/Root/Root.d.ts +3 -2
  233. package/dist/cjs/components/Root/Root.js +13 -10
  234. package/dist/cjs/components/Root/Root.js.map +1 -1
  235. package/dist/cjs/components/RootComponent/RootComponent.d.ts +9 -0
  236. package/dist/cjs/components/RootComponent/RootComponent.js +29 -0
  237. package/dist/cjs/components/RootComponent/RootComponent.js.map +1 -0
  238. package/dist/cjs/components/ScrollArrow/ScrollArrow.d.ts +1 -1
  239. package/dist/cjs/components/ScrollArrow/ScrollArrow.js +13 -12
  240. package/dist/cjs/components/ScrollArrow/ScrollArrow.js.map +1 -1
  241. package/dist/cjs/components/Search/Search.d.ts +3 -3
  242. package/dist/cjs/components/Search/Search.js +4 -2
  243. package/dist/cjs/components/Search/Search.js.map +1 -1
  244. package/dist/cjs/components/SegmentedControl/SegmentedControl.d.ts +3 -3
  245. package/dist/cjs/components/SegmentedControl/SegmentedControl.js +4 -6
  246. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  247. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +3 -3
  248. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +4 -2
  249. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  250. package/dist/cjs/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  251. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  252. package/dist/cjs/components/SelectTypography/SelectTypography.d.ts +2 -2
  253. package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
  254. package/dist/cjs/components/Separator/Separator.d.ts +3 -2
  255. package/dist/cjs/components/Separator/Separator.js +5 -5
  256. package/dist/cjs/components/Separator/Separator.js.map +1 -1
  257. package/dist/cjs/components/Slider/Slider.d.ts +4 -3
  258. package/dist/cjs/components/Slider/Slider.js +5 -2
  259. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  260. package/dist/cjs/components/Slider/SliderThumb/SliderThumb.d.ts +2 -1
  261. package/dist/cjs/components/Slider/SliderThumb/SliderThumb.js +56 -5
  262. package/dist/cjs/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  263. package/dist/cjs/components/Snackbar/Snackbar.d.ts +3 -2
  264. package/dist/cjs/components/Snackbar/Snackbar.js +8 -7
  265. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  266. package/dist/cjs/components/Spacing/Spacing.d.ts +3 -3
  267. package/dist/cjs/components/Spacing/Spacing.js +5 -6
  268. package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
  269. package/dist/cjs/components/Spinner/Spinner.d.ts +3 -2
  270. package/dist/cjs/components/Spinner/Spinner.js +6 -6
  271. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  272. package/dist/cjs/components/SplitCol/SplitCol.d.ts +2 -1
  273. package/dist/cjs/components/SplitCol/SplitCol.js +8 -6
  274. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  275. package/dist/cjs/components/SplitLayout/SplitLayout.d.ts +2 -2
  276. package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
  277. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.d.ts +3 -2
  278. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +7 -9
  279. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  280. package/dist/cjs/components/Tabbar/Tabbar.d.ts +3 -2
  281. package/dist/cjs/components/Tabbar/Tabbar.js +6 -7
  282. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  283. package/dist/cjs/components/TabbarItem/TabbarItem.d.ts +1 -1
  284. package/dist/cjs/components/TabbarItem/TabbarItem.js +7 -7
  285. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  286. package/dist/cjs/components/Tabs/Tabs.d.ts +3 -3
  287. package/dist/cjs/components/Tabs/Tabs.js +4 -6
  288. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  289. package/dist/cjs/components/TabsItem/TabsItem.d.ts +2 -1
  290. package/dist/cjs/components/TabsItem/TabsItem.js +6 -5
  291. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  292. package/dist/cjs/components/Tappable/Tappable.d.ts +6 -1
  293. package/dist/cjs/components/Tappable/Tappable.js +12 -9
  294. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  295. package/dist/cjs/components/TextTooltip/TextTooltip.js +7 -6
  296. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  297. package/dist/cjs/components/Tooltip/Tooltip.d.ts +1 -1
  298. package/dist/cjs/components/Tooltip/Tooltip.js +5 -3
  299. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  300. package/dist/cjs/components/TooltipBase/TooltipBase.d.ts +8 -1
  301. package/dist/cjs/components/TooltipBase/TooltipBase.js +21 -8
  302. package/dist/cjs/components/TooltipBase/TooltipBase.js.map +1 -1
  303. package/dist/cjs/components/Typography/Caption/Caption.js +6 -5
  304. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  305. package/dist/cjs/components/Typography/Headline/Headline.js +5 -4
  306. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  307. package/dist/cjs/components/Typography/Title/Title.js +6 -5
  308. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  309. package/dist/cjs/components/Typography/Typography.d.ts +1 -1
  310. package/dist/cjs/components/Typography/Typography.js +12 -13
  311. package/dist/cjs/components/Typography/Typography.js.map +1 -1
  312. package/dist/cjs/components/UsersStack/UsersStack.d.ts +3 -2
  313. package/dist/cjs/components/UsersStack/UsersStack.js +14 -12
  314. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  315. package/dist/cjs/components/View/View.d.ts +2 -1
  316. package/dist/cjs/components/View/View.js +7 -3
  317. package/dist/cjs/components/View/View.js.map +1 -1
  318. package/dist/cjs/components/View/ViewInfinite.d.ts +10 -3
  319. package/dist/cjs/components/View/ViewInfinite.js +17 -6
  320. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  321. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  322. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js +8 -9
  323. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  324. package/dist/cjs/helpers/appearance.d.ts +4 -0
  325. package/dist/cjs/helpers/appearance.js.map +1 -1
  326. package/dist/cjs/hooks/useAppearance.d.ts +1 -1
  327. package/dist/cjs/hooks/useAutoDetectAppearance.d.ts +4 -0
  328. package/dist/cjs/hooks/useAutoDetectAppearance.js.map +1 -1
  329. package/dist/cjs/hooks/useBridgeAdaptivity.d.ts +5 -1
  330. package/dist/cjs/hooks/useBridgeAdaptivity.js +25 -20
  331. package/dist/cjs/hooks/useBridgeAdaptivity.js.map +1 -1
  332. package/dist/cjs/hooks/useInsets.d.ts +5 -1
  333. package/dist/cjs/hooks/useInsets.js +11 -11
  334. package/dist/cjs/hooks/useInsets.js.map +1 -1
  335. package/dist/cjs/index.d.ts +6 -3
  336. package/dist/cjs/index.js +14 -0
  337. package/dist/cjs/index.js.map +1 -1
  338. package/dist/cjs/lib/adaptivity/functions.d.ts +8 -0
  339. package/dist/cjs/lib/adaptivity/functions.js +30 -0
  340. package/dist/cjs/lib/adaptivity/functions.js.map +1 -1
  341. package/dist/cjs/lib/appearance/index.d.ts +1 -0
  342. package/dist/cjs/lib/appearance/index.js +6 -0
  343. package/dist/cjs/lib/appearance/index.js.map +1 -0
  344. package/dist/cjs/lib/appearance/types.d.ts +1 -0
  345. package/dist/cjs/lib/appearance/types.js +6 -0
  346. package/dist/cjs/lib/appearance/types.js.map +1 -0
  347. package/dist/cjs/lib/floating/index.d.ts +1 -1
  348. package/dist/cjs/lib/floating/index.js +3 -0
  349. package/dist/cjs/lib/floating/index.js.map +1 -1
  350. package/dist/cjs/lib/platform.js +11 -7
  351. package/dist/cjs/lib/platform.js.map +1 -1
  352. package/dist/cjs/lib/select.d.ts +1 -1
  353. package/dist/cjs/lib/taptic.d.ts +4 -0
  354. package/dist/cjs/lib/taptic.js.map +1 -1
  355. package/dist/cjs/lib/utils.d.ts +2 -0
  356. package/dist/cjs/lib/utils.js +22 -0
  357. package/dist/cjs/lib/utils.js.map +1 -1
  358. package/dist/cjs/types.d.ts +1 -0
  359. package/dist/cjs/types.js.map +1 -1
  360. package/dist/components/Accordion/Accordion.d.ts +1 -1
  361. package/dist/components/Accordion/Accordion.js +6 -11
  362. package/dist/components/Accordion/Accordion.js.map +1 -1
  363. package/dist/components/ActionSheet/ActionSheet.d.ts +6 -1
  364. package/dist/components/ActionSheet/ActionSheet.js +12 -9
  365. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  366. package/dist/components/ActionSheet/ActionSheetContext.d.ts +6 -1
  367. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  368. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +2 -1
  369. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  370. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +6 -1
  371. package/dist/components/ActionSheetItem/ActionSheetItem.js +15 -4
  372. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  373. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +22 -8
  374. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  375. package/dist/components/AppRoot/AppRoot.d.ts +19 -2
  376. package/dist/components/AppRoot/AppRoot.js +58 -20
  377. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  378. package/dist/components/AppRoot/AppRootContext.d.ts +1 -0
  379. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  380. package/dist/components/AppearanceProvider/AppearanceProvider.d.ts +1 -1
  381. package/dist/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  382. package/dist/components/AspectRatio/AspectRatio.d.ts +3 -3
  383. package/dist/components/AspectRatio/AspectRatio.js +6 -8
  384. package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
  385. package/dist/components/Badge/Badge.d.ts +3 -2
  386. package/dist/components/Badge/Badge.js +10 -8
  387. package/dist/components/Badge/Badge.js.map +1 -1
  388. package/dist/components/Banner/Banner.d.ts +3 -3
  389. package/dist/components/Banner/Banner.js +10 -9
  390. package/dist/components/Banner/Banner.js.map +1 -1
  391. package/dist/components/BaseGallery/BaseGallery.d.ts +1 -1
  392. package/dist/components/BaseGallery/BaseGallery.js +10 -9
  393. package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
  394. package/dist/components/BaseGallery/types.d.ts +2 -2
  395. package/dist/components/BaseGallery/types.js.map +1 -1
  396. package/dist/components/Button/Button.js +26 -22
  397. package/dist/components/Button/Button.js.map +1 -1
  398. package/dist/components/ButtonGroup/ButtonGroup.d.ts +3 -3
  399. package/dist/components/ButtonGroup/ButtonGroup.js +21 -21
  400. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  401. package/dist/components/Calendar/Calendar.d.ts +3 -3
  402. package/dist/components/Calendar/Calendar.js +4 -6
  403. package/dist/components/Calendar/Calendar.js.map +1 -1
  404. package/dist/components/CalendarDays/CalendarDays.d.ts +3 -2
  405. package/dist/components/CalendarDays/CalendarDays.js +11 -8
  406. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  407. package/dist/components/CalendarHeader/CalendarHeader.d.ts +3 -2
  408. package/dist/components/CalendarHeader/CalendarHeader.js +24 -7
  409. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  410. package/dist/components/CalendarRange/CalendarRange.d.ts +3 -3
  411. package/dist/components/CalendarRange/CalendarRange.js +4 -6
  412. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  413. package/dist/components/Card/Card.d.ts +4 -4
  414. package/dist/components/Card/Card.js +7 -9
  415. package/dist/components/Card/Card.js.map +1 -1
  416. package/dist/components/CardGrid/CardGrid.d.ts +3 -2
  417. package/dist/components/CardGrid/CardGrid.js +11 -11
  418. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  419. package/dist/components/CardScroll/CardScroll.d.ts +3 -2
  420. package/dist/components/CardScroll/CardScroll.js +10 -9
  421. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  422. package/dist/components/Cell/CellDragger/CellDragger.d.ts +2 -1
  423. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  424. package/dist/components/Checkbox/Checkbox.js +3 -4
  425. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  426. package/dist/components/Chip/Chip.d.ts +3 -2
  427. package/dist/components/Chip/Chip.js +6 -7
  428. package/dist/components/Chip/Chip.js.map +1 -1
  429. package/dist/components/ChipsInputBase/ChipsInputBase.js +4 -2
  430. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  431. package/dist/components/ConfigProvider/ConfigProvider.d.ts +7 -0
  432. package/dist/components/ConfigProvider/ConfigProvider.js +25 -7
  433. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  434. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +47 -3
  435. package/dist/components/ConfigProvider/ConfigProviderContext.js +6 -1
  436. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  437. package/dist/components/Counter/Counter.d.ts +2 -1
  438. package/dist/components/Counter/Counter.js.map +1 -1
  439. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  440. package/dist/components/CustomSelect/CustomSelect.js +1 -1
  441. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  442. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -2
  443. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  444. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts +2 -2
  445. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  446. package/dist/components/DatePicker/DatePicker.d.ts +2 -1
  447. package/dist/components/DatePicker/DatePicker.js +6 -6
  448. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  449. package/dist/components/Div/Div.d.ts +3 -4
  450. package/dist/components/Div/Div.js +5 -13
  451. package/dist/components/Div/Div.js.map +1 -1
  452. package/dist/components/DropdownIcon/DropdownIcon.d.ts +2 -1
  453. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  454. package/dist/components/Epic/Epic.d.ts +3 -2
  455. package/dist/components/Epic/Epic.js +7 -7
  456. package/dist/components/Epic/Epic.js.map +1 -1
  457. package/dist/components/FixedLayout/FixedLayout.d.ts +2 -2
  458. package/dist/components/FixedLayout/FixedLayout.js +5 -4
  459. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  460. package/dist/components/FocusTrap/FocusTrap.d.ts +2 -2
  461. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  462. package/dist/components/FocusVisible/FocusVisible.d.ts +2 -1
  463. package/dist/components/FocusVisible/FocusVisible.js +8 -6
  464. package/dist/components/FocusVisible/FocusVisible.js.map +1 -1
  465. package/dist/components/FormField/FormField.js +5 -4
  466. package/dist/components/FormField/FormField.js.map +1 -1
  467. package/dist/components/FormItem/FormItem.d.ts +6 -1
  468. package/dist/components/FormItem/FormItem.js +11 -10
  469. package/dist/components/FormItem/FormItem.js.map +1 -1
  470. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -3
  471. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +6 -6
  472. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  473. package/dist/components/FormStatus/FormStatus.d.ts +2 -2
  474. package/dist/components/FormStatus/FormStatus.js.map +1 -1
  475. package/dist/components/Gradient/Gradient.d.ts +3 -2
  476. package/dist/components/Gradient/Gradient.js +15 -14
  477. package/dist/components/Gradient/Gradient.js.map +1 -1
  478. package/dist/components/Group/Group.d.ts +3 -3
  479. package/dist/components/Group/Group.js +35 -21
  480. package/dist/components/Group/Group.js.map +1 -1
  481. package/dist/components/Header/Header.d.ts +3 -3
  482. package/dist/components/Header/Header.js +12 -11
  483. package/dist/components/Header/Header.js.map +1 -1
  484. package/dist/components/HorizontalCell/HorizontalCell.js +6 -5
  485. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  486. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +3 -3
  487. package/dist/components/HorizontalScroll/HorizontalScroll.js +4 -4
  488. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  489. package/dist/components/ImageBase/ImageBase.d.ts +2 -2
  490. package/dist/components/ImageBase/ImageBase.js +5 -7
  491. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  492. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts +3 -2
  493. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js +8 -9
  494. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  495. package/dist/components/InfoRow/InfoRow.d.ts +2 -1
  496. package/dist/components/InfoRow/InfoRow.js.map +1 -1
  497. package/dist/components/InputLike/InputLike.d.ts +3 -3
  498. package/dist/components/InputLike/InputLike.js +6 -8
  499. package/dist/components/InputLike/InputLike.js.map +1 -1
  500. package/dist/components/List/List.d.ts +3 -2
  501. package/dist/components/List/List.js +5 -5
  502. package/dist/components/List/List.js.map +1 -1
  503. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts +2 -1
  504. package/dist/components/MiniInfoCell/MiniInfoCell.js +14 -11
  505. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  506. package/dist/components/ModalCard/ModalCard.d.ts +1 -1
  507. package/dist/components/ModalCard/ModalCard.js +5 -7
  508. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  509. package/dist/components/ModalCardBase/ModalCardBase.d.ts +3 -3
  510. package/dist/components/ModalCardBase/ModalCardBase.js +4 -6
  511. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  512. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +2 -1
  513. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  514. package/dist/components/ModalPage/ModalPage.d.ts +3 -2
  515. package/dist/components/ModalPage/ModalPage.js +9 -6
  516. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  517. package/dist/components/ModalRoot/ModalRoot.js +7 -5
  518. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  519. package/dist/components/ModalRoot/ModalRootContext.js +3 -0
  520. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  521. package/dist/components/ModalRoot/ModalRootDesktop.js +3 -3
  522. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  523. package/dist/components/ModalRoot/types.d.ts +1 -0
  524. package/dist/components/ModalRoot/types.js.map +1 -1
  525. package/dist/components/NavTransitionDirectionContext/NavTransitionDirectionContext.d.ts +8 -0
  526. package/dist/components/NavTransitionDirectionContext/NavTransitionDirectionContext.js +24 -0
  527. package/dist/components/NavTransitionDirectionContext/NavTransitionDirectionContext.js.map +1 -0
  528. package/dist/components/Pagination/Pagination.d.ts +3 -3
  529. package/dist/components/Pagination/Pagination.js +17 -33
  530. package/dist/components/Pagination/Pagination.js.map +1 -1
  531. package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts +12 -0
  532. package/dist/components/Pagination/PaginationPage/PaginationPageButton.js +37 -0
  533. package/dist/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -0
  534. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts +6 -0
  535. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.js +21 -0
  536. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -0
  537. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts +5 -0
  538. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.js +10 -0
  539. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -0
  540. package/dist/components/Pagination/utils.d.ts +1 -0
  541. package/dist/components/Pagination/utils.js +5 -0
  542. package/dist/components/Pagination/utils.js.map +1 -0
  543. package/dist/components/Panel/Panel.d.ts +3 -3
  544. package/dist/components/Panel/Panel.js +7 -7
  545. package/dist/components/Panel/Panel.js.map +1 -1
  546. package/dist/components/PanelHeader/PanelHeader.d.ts +3 -3
  547. package/dist/components/PanelHeader/PanelHeader.js +16 -11
  548. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  549. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts +3 -2
  550. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +4 -6
  551. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  552. package/dist/components/PanelHeaderContext/PanelHeaderContext.d.ts +2 -1
  553. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  554. package/dist/components/Placeholder/Placeholder.d.ts +24 -11
  555. package/dist/components/Placeholder/Placeholder.js +49 -21
  556. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  557. package/dist/components/PopoutRoot/PopoutRoot.d.ts +3 -3
  558. package/dist/components/PopoutRoot/PopoutRoot.js +12 -17
  559. package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
  560. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +3 -2
  561. package/dist/components/PopoutWrapper/PopoutWrapper.js +16 -16
  562. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  563. package/dist/components/Popper/Popper.d.ts +7 -3
  564. package/dist/components/Popper/Popper.js +20 -11
  565. package/dist/components/Popper/Popper.js.map +1 -1
  566. package/dist/components/Progress/Progress.d.ts +3 -3
  567. package/dist/components/Progress/Progress.js +9 -10
  568. package/dist/components/Progress/Progress.js.map +1 -1
  569. package/dist/components/PromoBanner/PromoBanner.d.ts +3 -2
  570. package/dist/components/PromoBanner/PromoBanner.js +5 -6
  571. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  572. package/dist/components/PullToRefresh/PullToRefresh.d.ts +25 -0
  573. package/dist/components/PullToRefresh/PullToRefresh.js +5 -2
  574. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  575. package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts +7 -7
  576. package/dist/components/PullToRefresh/PullToRefreshSpinner.js +14 -6
  577. package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  578. package/dist/components/RadioGroup/RadioGroup.d.ts +3 -2
  579. package/dist/components/RadioGroup/RadioGroup.js +6 -7
  580. package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
  581. package/dist/components/Removable/Removable.d.ts +3 -3
  582. package/dist/components/Removable/Removable.js +4 -8
  583. package/dist/components/Removable/Removable.js.map +1 -1
  584. package/dist/components/RichCell/RichCell.d.ts +1 -1
  585. package/dist/components/RichCell/RichCellIcon/RichCellIcon.d.ts +3 -1
  586. package/dist/components/RichCell/RichCellIcon/RichCellIcon.js +5 -11
  587. package/dist/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
  588. package/dist/components/RichTooltip/RichTooltip.js +7 -6
  589. package/dist/components/RichTooltip/RichTooltip.js.map +1 -1
  590. package/dist/components/Root/Root.d.ts +3 -2
  591. package/dist/components/Root/Root.js +13 -10
  592. package/dist/components/Root/Root.js.map +1 -1
  593. package/dist/components/RootComponent/RootComponent.d.ts +9 -0
  594. package/dist/components/RootComponent/RootComponent.js +20 -0
  595. package/dist/components/RootComponent/RootComponent.js.map +1 -0
  596. package/dist/components/ScrollArrow/ScrollArrow.d.ts +1 -1
  597. package/dist/components/ScrollArrow/ScrollArrow.js +13 -12
  598. package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
  599. package/dist/components/Search/Search.d.ts +3 -3
  600. package/dist/components/Search/Search.js +4 -2
  601. package/dist/components/Search/Search.js.map +1 -1
  602. package/dist/components/SegmentedControl/SegmentedControl.d.ts +3 -3
  603. package/dist/components/SegmentedControl/SegmentedControl.js +4 -6
  604. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  605. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +3 -3
  606. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +4 -2
  607. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  608. package/dist/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  609. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  610. package/dist/components/SelectTypography/SelectTypography.d.ts +2 -2
  611. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  612. package/dist/components/Separator/Separator.d.ts +3 -2
  613. package/dist/components/Separator/Separator.js +5 -5
  614. package/dist/components/Separator/Separator.js.map +1 -1
  615. package/dist/components/Slider/Slider.d.ts +4 -3
  616. package/dist/components/Slider/Slider.js +5 -2
  617. package/dist/components/Slider/Slider.js.map +1 -1
  618. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts +2 -1
  619. package/dist/components/Slider/SliderThumb/SliderThumb.js +56 -5
  620. package/dist/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  621. package/dist/components/Snackbar/Snackbar.d.ts +3 -2
  622. package/dist/components/Snackbar/Snackbar.js +8 -7
  623. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  624. package/dist/components/Spacing/Spacing.d.ts +3 -3
  625. package/dist/components/Spacing/Spacing.js +5 -6
  626. package/dist/components/Spacing/Spacing.js.map +1 -1
  627. package/dist/components/Spinner/Spinner.d.ts +3 -2
  628. package/dist/components/Spinner/Spinner.js +6 -6
  629. package/dist/components/Spinner/Spinner.js.map +1 -1
  630. package/dist/components/SplitCol/SplitCol.d.ts +2 -1
  631. package/dist/components/SplitCol/SplitCol.js +8 -6
  632. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  633. package/dist/components/SplitLayout/SplitLayout.d.ts +2 -2
  634. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  635. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +3 -2
  636. package/dist/components/SubnavigationBar/SubnavigationBar.js +7 -9
  637. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  638. package/dist/components/Tabbar/Tabbar.d.ts +3 -2
  639. package/dist/components/Tabbar/Tabbar.js +6 -7
  640. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  641. package/dist/components/TabbarItem/TabbarItem.d.ts +1 -1
  642. package/dist/components/TabbarItem/TabbarItem.js +7 -7
  643. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  644. package/dist/components/Tabs/Tabs.d.ts +3 -3
  645. package/dist/components/Tabs/Tabs.js +4 -6
  646. package/dist/components/Tabs/Tabs.js.map +1 -1
  647. package/dist/components/TabsItem/TabsItem.d.ts +2 -1
  648. package/dist/components/TabsItem/TabsItem.js +6 -5
  649. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  650. package/dist/components/Tappable/Tappable.d.ts +6 -1
  651. package/dist/components/Tappable/Tappable.js +12 -9
  652. package/dist/components/Tappable/Tappable.js.map +1 -1
  653. package/dist/components/TextTooltip/TextTooltip.js +7 -6
  654. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  655. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  656. package/dist/components/Tooltip/Tooltip.js +6 -4
  657. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  658. package/dist/components/TooltipBase/TooltipBase.d.ts +8 -1
  659. package/dist/components/TooltipBase/TooltipBase.js +10 -5
  660. package/dist/components/TooltipBase/TooltipBase.js.map +1 -1
  661. package/dist/components/Typography/Caption/Caption.js +6 -5
  662. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  663. package/dist/components/Typography/Headline/Headline.js +5 -4
  664. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  665. package/dist/components/Typography/Title/Title.js +6 -5
  666. package/dist/components/Typography/Title/Title.js.map +1 -1
  667. package/dist/components/Typography/Typography.d.ts +1 -1
  668. package/dist/components/Typography/Typography.js +12 -13
  669. package/dist/components/Typography/Typography.js.map +1 -1
  670. package/dist/components/UsersStack/UsersStack.d.ts +3 -2
  671. package/dist/components/UsersStack/UsersStack.js +14 -12
  672. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  673. package/dist/components/View/View.d.ts +2 -1
  674. package/dist/components/View/View.js +7 -3
  675. package/dist/components/View/View.js.map +1 -1
  676. package/dist/components/View/ViewInfinite.d.ts +10 -3
  677. package/dist/components/View/ViewInfinite.js +7 -4
  678. package/dist/components/View/ViewInfinite.js.map +1 -1
  679. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  680. package/dist/components/VisuallyHidden/VisuallyHidden.js +8 -9
  681. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  682. package/dist/components.css +19 -18
  683. package/dist/components.css.map +1 -1
  684. package/dist/components.js.tmp +6990 -4428
  685. package/dist/cssm/components/Accordion/Accordion.d.ts +1 -1
  686. package/dist/cssm/components/Accordion/Accordion.js +5 -5
  687. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  688. package/dist/cssm/components/ActionSheet/ActionSheet.d.ts +6 -1
  689. package/dist/cssm/components/ActionSheet/ActionSheet.js +11 -9
  690. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  691. package/dist/cssm/components/ActionSheet/ActionSheetContext.d.ts +6 -1
  692. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  693. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +1 -0
  694. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  695. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts +6 -1
  696. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +13 -3
  697. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  698. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +22 -8
  699. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  700. package/dist/cssm/components/AppRoot/AppRoot.d.ts +19 -2
  701. package/dist/cssm/components/AppRoot/AppRoot.js +49 -15
  702. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  703. package/dist/cssm/components/AppRoot/AppRootContext.d.ts +1 -0
  704. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  705. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.d.ts +1 -1
  706. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  707. package/dist/cssm/components/AspectRatio/AspectRatio.d.ts +3 -3
  708. package/dist/cssm/components/AspectRatio/AspectRatio.js +5 -5
  709. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  710. package/dist/cssm/components/Badge/Badge.d.ts +3 -2
  711. package/dist/cssm/components/Badge/Badge.js +8 -5
  712. package/dist/cssm/components/Badge/Badge.js.map +1 -1
  713. package/dist/cssm/components/Banner/Banner.d.ts +3 -3
  714. package/dist/cssm/components/Banner/Banner.js +9 -7
  715. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  716. package/dist/cssm/components/BaseGallery/BaseGallery.d.ts +1 -1
  717. package/dist/cssm/components/BaseGallery/BaseGallery.js +10 -8
  718. package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
  719. package/dist/cssm/components/BaseGallery/types.d.ts +2 -2
  720. package/dist/cssm/components/BaseGallery/types.js.map +1 -1
  721. package/dist/cssm/components/Button/Button.js +26 -22
  722. package/dist/cssm/components/Button/Button.js.map +1 -1
  723. package/dist/cssm/components/ButtonGroup/ButtonGroup.d.ts +3 -3
  724. package/dist/cssm/components/ButtonGroup/ButtonGroup.js +19 -16
  725. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  726. package/dist/cssm/components/Calendar/Calendar.d.ts +3 -3
  727. package/dist/cssm/components/Calendar/Calendar.js +4 -4
  728. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  729. package/dist/cssm/components/CalendarDays/CalendarDays.d.ts +3 -2
  730. package/dist/cssm/components/CalendarDays/CalendarDays.js +9 -6
  731. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  732. package/dist/cssm/components/CalendarHeader/CalendarHeader.d.ts +3 -2
  733. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +6 -4
  734. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  735. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +3 -3
  736. package/dist/cssm/components/CalendarRange/CalendarRange.js +4 -5
  737. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  738. package/dist/cssm/components/Card/Card.d.ts +4 -4
  739. package/dist/cssm/components/Card/Card.js +6 -5
  740. package/dist/cssm/components/Card/Card.js.map +1 -1
  741. package/dist/cssm/components/Card/Card.module.css +1 -1
  742. package/dist/cssm/components/CardGrid/CardGrid.d.ts +3 -2
  743. package/dist/cssm/components/CardGrid/CardGrid.js +10 -8
  744. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  745. package/dist/cssm/components/CardGrid/CardGrid.module.css +0 -7
  746. package/dist/cssm/components/CardScroll/CardScroll.d.ts +3 -2
  747. package/dist/cssm/components/CardScroll/CardScroll.js +9 -7
  748. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  749. package/dist/cssm/components/Cell/CellDragger/CellDragger.d.ts +2 -1
  750. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  751. package/dist/cssm/components/Checkbox/Checkbox.js +2 -3
  752. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  753. package/dist/cssm/components/Chip/Chip.d.ts +3 -2
  754. package/dist/cssm/components/Chip/Chip.js +5 -5
  755. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  756. package/dist/cssm/components/Chip/Chip.module.css +24 -0
  757. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +4 -2
  758. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  759. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +1 -4
  760. package/dist/cssm/components/ConfigProvider/ConfigProvider.d.ts +7 -0
  761. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +32 -7
  762. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  763. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.d.ts +47 -3
  764. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +6 -1
  765. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  766. package/dist/cssm/components/Counter/Counter.d.ts +2 -1
  767. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  768. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
  769. package/dist/cssm/components/CustomSelect/CustomSelect.js +1 -1
  770. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  771. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -2
  772. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  773. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.d.ts +2 -2
  774. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  775. package/dist/cssm/components/DatePicker/DatePicker.d.ts +2 -1
  776. package/dist/cssm/components/DatePicker/DatePicker.js +5 -4
  777. package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
  778. package/dist/cssm/components/Div/Div.d.ts +3 -4
  779. package/dist/cssm/components/Div/Div.js +5 -8
  780. package/dist/cssm/components/Div/Div.js.map +1 -1
  781. package/dist/cssm/components/DropdownIcon/DropdownIcon.d.ts +2 -1
  782. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  783. package/dist/cssm/components/Epic/Epic.d.ts +3 -2
  784. package/dist/cssm/components/Epic/Epic.js +4 -4
  785. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  786. package/dist/cssm/components/FixedLayout/FixedLayout.d.ts +2 -2
  787. package/dist/cssm/components/FixedLayout/FixedLayout.js +5 -4
  788. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  789. package/dist/cssm/components/FocusTrap/FocusTrap.d.ts +2 -2
  790. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  791. package/dist/cssm/components/FocusVisible/FocusVisible.d.ts +2 -1
  792. package/dist/cssm/components/FocusVisible/FocusVisible.js +8 -6
  793. package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
  794. package/dist/cssm/components/FormField/FormField.js +5 -4
  795. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  796. package/dist/cssm/components/FormItem/FormItem.d.ts +6 -1
  797. package/dist/cssm/components/FormItem/FormItem.js +9 -7
  798. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  799. package/dist/cssm/components/FormItem/FormItem.module.css +3 -0
  800. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -3
  801. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +5 -4
  802. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  803. package/dist/cssm/components/FormStatus/FormStatus.d.ts +2 -2
  804. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  805. package/dist/cssm/components/Gradient/Gradient.d.ts +3 -2
  806. package/dist/cssm/components/Gradient/Gradient.js +14 -11
  807. package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
  808. package/dist/cssm/components/Group/Group.d.ts +3 -3
  809. package/dist/cssm/components/Group/Group.js +34 -19
  810. package/dist/cssm/components/Group/Group.js.map +1 -1
  811. package/dist/cssm/components/Group/Group.module.css +36 -4
  812. package/dist/cssm/components/Header/Header.d.ts +3 -3
  813. package/dist/cssm/components/Header/Header.js +10 -8
  814. package/dist/cssm/components/Header/Header.js.map +1 -1
  815. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +6 -5
  816. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  817. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts +3 -3
  818. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +4 -3
  819. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  820. package/dist/cssm/components/ImageBase/ImageBase.d.ts +2 -2
  821. package/dist/cssm/components/ImageBase/ImageBase.js +5 -5
  822. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  823. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts +3 -2
  824. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js +7 -6
  825. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  826. package/dist/cssm/components/InfoRow/InfoRow.d.ts +2 -1
  827. package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
  828. package/dist/cssm/components/Input/Input.module.css +15 -0
  829. package/dist/cssm/components/InputLike/InputLike.d.ts +3 -3
  830. package/dist/cssm/components/InputLike/InputLike.js +5 -5
  831. package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
  832. package/dist/cssm/components/List/List.d.ts +3 -2
  833. package/dist/cssm/components/List/List.js +4 -3
  834. package/dist/cssm/components/List/List.js.map +1 -1
  835. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.d.ts +2 -1
  836. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +14 -11
  837. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  838. package/dist/cssm/components/ModalCard/ModalCard.d.ts +1 -1
  839. package/dist/cssm/components/ModalCard/ModalCard.js +4 -4
  840. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  841. package/dist/cssm/components/ModalCardBase/ModalCardBase.d.ts +3 -3
  842. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +4 -4
  843. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  844. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.d.ts +2 -1
  845. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  846. package/dist/cssm/components/ModalPage/ModalPage.d.ts +3 -2
  847. package/dist/cssm/components/ModalPage/ModalPage.js +8 -4
  848. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  849. package/dist/cssm/components/ModalPage/ModalPage.module.css +7 -3
  850. package/dist/cssm/components/ModalRoot/ModalRoot.js +6 -4
  851. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  852. package/dist/cssm/components/ModalRoot/ModalRoot.module.css +1 -1
  853. package/dist/cssm/components/ModalRoot/ModalRootContext.js +2 -1
  854. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  855. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +3 -3
  856. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  857. package/dist/cssm/components/ModalRoot/types.d.ts +1 -0
  858. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  859. package/dist/cssm/components/NavTransitionDirectionContext/NavTransitionDirectionContext.d.ts +8 -0
  860. package/dist/cssm/components/NavTransitionDirectionContext/NavTransitionDirectionContext.js +22 -0
  861. package/dist/cssm/components/NavTransitionDirectionContext/NavTransitionDirectionContext.js.map +1 -0
  862. package/dist/cssm/components/Pagination/Pagination.d.ts +3 -3
  863. package/dist/cssm/components/Pagination/Pagination.js +16 -31
  864. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  865. package/dist/cssm/components/Pagination/Pagination.module.css +0 -51
  866. package/dist/cssm/components/Pagination/PaginationPage/PaginationPage.module.css +43 -0
  867. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.d.ts +12 -0
  868. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.js +30 -0
  869. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -0
  870. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts +6 -0
  871. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageEllipsis.js +17 -0
  872. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -0
  873. package/dist/cssm/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts +5 -0
  874. package/dist/cssm/components/Pagination/PaginationPage/usePaginationPageClasses.js +10 -0
  875. package/dist/cssm/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -0
  876. package/dist/cssm/components/Pagination/utils.d.ts +1 -0
  877. package/dist/cssm/components/Pagination/utils.js +5 -0
  878. package/dist/cssm/components/Pagination/utils.js.map +1 -0
  879. package/dist/cssm/components/Panel/Panel.d.ts +3 -3
  880. package/dist/cssm/components/Panel/Panel.js +6 -4
  881. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  882. package/dist/cssm/components/Panel/Panel.module.css +9 -2
  883. package/dist/cssm/components/PanelHeader/PanelHeader.d.ts +3 -3
  884. package/dist/cssm/components/PanelHeader/PanelHeader.js +17 -10
  885. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  886. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +0 -4
  887. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.d.ts +3 -2
  888. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +4 -4
  889. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  890. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.d.ts +2 -1
  891. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  892. package/dist/cssm/components/Placeholder/Placeholder.d.ts +24 -11
  893. package/dist/cssm/components/Placeholder/Placeholder.js +32 -15
  894. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  895. package/dist/cssm/components/PopoutRoot/PopoutRoot.d.ts +3 -3
  896. package/dist/cssm/components/PopoutRoot/PopoutRoot.js +12 -15
  897. package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
  898. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.d.ts +3 -2
  899. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +15 -14
  900. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  901. package/dist/cssm/components/Popper/Popper.d.ts +7 -3
  902. package/dist/cssm/components/Popper/Popper.js +18 -10
  903. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  904. package/dist/cssm/components/Progress/Progress.d.ts +3 -3
  905. package/dist/cssm/components/Progress/Progress.js +9 -8
  906. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  907. package/dist/cssm/components/PromoBanner/PromoBanner.d.ts +3 -2
  908. package/dist/cssm/components/PromoBanner/PromoBanner.js +4 -4
  909. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  910. package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts +25 -0
  911. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +5 -2
  912. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  913. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.d.ts +7 -7
  914. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js +6 -5
  915. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  916. package/dist/cssm/components/RadioGroup/RadioGroup.d.ts +3 -2
  917. package/dist/cssm/components/RadioGroup/RadioGroup.js +4 -3
  918. package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
  919. package/dist/cssm/components/Removable/Removable.d.ts +3 -3
  920. package/dist/cssm/components/Removable/Removable.js +4 -6
  921. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  922. package/dist/cssm/components/RichCell/RichCell.d.ts +1 -1
  923. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.d.ts +3 -1
  924. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js +6 -6
  925. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
  926. package/dist/cssm/components/RichTooltip/RichTooltip.js +7 -6
  927. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
  928. package/dist/cssm/components/Root/Root.d.ts +3 -2
  929. package/dist/cssm/components/Root/Root.js +12 -8
  930. package/dist/cssm/components/Root/Root.js.map +1 -1
  931. package/dist/cssm/components/RootComponent/RootComponent.d.ts +9 -0
  932. package/dist/cssm/components/RootComponent/RootComponent.js +11 -0
  933. package/dist/cssm/components/RootComponent/RootComponent.js.map +1 -0
  934. package/dist/cssm/components/ScrollArrow/ScrollArrow.d.ts +1 -1
  935. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +13 -10
  936. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  937. package/dist/cssm/components/Search/Search.d.ts +3 -3
  938. package/dist/cssm/components/Search/Search.js +2 -1
  939. package/dist/cssm/components/Search/Search.js.map +1 -1
  940. package/dist/cssm/components/SegmentedControl/SegmentedControl.d.ts +3 -3
  941. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +4 -4
  942. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  943. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +3 -3
  944. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +2 -1
  945. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  946. package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  947. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  948. package/dist/cssm/components/SelectTypography/SelectTypography.d.ts +2 -2
  949. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  950. package/dist/cssm/components/Separator/Separator.d.ts +3 -2
  951. package/dist/cssm/components/Separator/Separator.js +3 -2
  952. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  953. package/dist/cssm/components/Slider/Slider.d.ts +4 -3
  954. package/dist/cssm/components/Slider/Slider.js +3 -1
  955. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  956. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.d.ts +2 -1
  957. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js +54 -5
  958. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  959. package/dist/cssm/components/Snackbar/Snackbar.d.ts +3 -2
  960. package/dist/cssm/components/Snackbar/Snackbar.js +8 -6
  961. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  962. package/dist/cssm/components/Spacing/Spacing.d.ts +3 -3
  963. package/dist/cssm/components/Spacing/Spacing.js +4 -4
  964. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  965. package/dist/cssm/components/Spinner/Spinner.d.ts +3 -2
  966. package/dist/cssm/components/Spinner/Spinner.js +5 -4
  967. package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
  968. package/dist/cssm/components/SplitCol/SplitCol.d.ts +2 -1
  969. package/dist/cssm/components/SplitCol/SplitCol.js +7 -5
  970. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  971. package/dist/cssm/components/SplitLayout/SplitLayout.d.ts +2 -2
  972. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  973. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.d.ts +3 -2
  974. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +6 -6
  975. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  976. package/dist/cssm/components/Tabbar/Tabbar.d.ts +3 -2
  977. package/dist/cssm/components/Tabbar/Tabbar.js +5 -4
  978. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  979. package/dist/cssm/components/TabbarItem/TabbarItem.d.ts +1 -1
  980. package/dist/cssm/components/TabbarItem/TabbarItem.js +5 -4
  981. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  982. package/dist/cssm/components/Tabs/Tabs.d.ts +3 -3
  983. package/dist/cssm/components/Tabs/Tabs.js +4 -4
  984. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  985. package/dist/cssm/components/TabsItem/TabsItem.d.ts +2 -1
  986. package/dist/cssm/components/TabsItem/TabsItem.js +6 -5
  987. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  988. package/dist/cssm/components/Tappable/Tappable.d.ts +6 -1
  989. package/dist/cssm/components/Tappable/Tappable.js +10 -8
  990. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  991. package/dist/cssm/components/Tappable/Tappable.module.css +4 -0
  992. package/dist/cssm/components/TextTooltip/TextTooltip.js +7 -6
  993. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  994. package/dist/cssm/components/Tooltip/Tooltip.d.ts +1 -1
  995. package/dist/cssm/components/Tooltip/Tooltip.js +4 -3
  996. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  997. package/dist/cssm/components/TooltipBase/TooltipBase.d.ts +8 -1
  998. package/dist/cssm/components/TooltipBase/TooltipBase.js +9 -4
  999. package/dist/cssm/components/TooltipBase/TooltipBase.js.map +1 -1
  1000. package/dist/cssm/components/TooltipBase/TooltipBase.module.css +0 -1
  1001. package/dist/cssm/components/Typography/Caption/Caption.js +6 -5
  1002. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  1003. package/dist/cssm/components/Typography/Headline/Headline.js +5 -4
  1004. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  1005. package/dist/cssm/components/Typography/Title/Title.js +6 -5
  1006. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  1007. package/dist/cssm/components/Typography/Typography.d.ts +1 -1
  1008. package/dist/cssm/components/Typography/Typography.js +10 -8
  1009. package/dist/cssm/components/Typography/Typography.js.map +1 -1
  1010. package/dist/cssm/components/Typography/Typography.module.css +6 -0
  1011. package/dist/cssm/components/UsersStack/UsersStack.d.ts +3 -2
  1012. package/dist/cssm/components/UsersStack/UsersStack.js +14 -11
  1013. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  1014. package/dist/cssm/components/View/View.d.ts +2 -1
  1015. package/dist/cssm/components/View/View.js +7 -3
  1016. package/dist/cssm/components/View/View.js.map +1 -1
  1017. package/dist/cssm/components/View/ViewInfinite.d.ts +10 -3
  1018. package/dist/cssm/components/View/ViewInfinite.js +7 -4
  1019. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  1020. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  1021. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +4 -6
  1022. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  1023. package/dist/cssm/helpers/appearance.d.ts +4 -0
  1024. package/dist/cssm/helpers/appearance.js +4 -1
  1025. package/dist/cssm/helpers/appearance.js.map +1 -1
  1026. package/dist/cssm/hooks/useAppearance.d.ts +1 -1
  1027. package/dist/cssm/hooks/useAutoDetectAppearance.d.ts +4 -0
  1028. package/dist/cssm/hooks/useAutoDetectAppearance.js +4 -1
  1029. package/dist/cssm/hooks/useAutoDetectAppearance.js.map +1 -1
  1030. package/dist/cssm/hooks/useBridgeAdaptivity.d.ts +5 -1
  1031. package/dist/cssm/hooks/useBridgeAdaptivity.js +29 -22
  1032. package/dist/cssm/hooks/useBridgeAdaptivity.js.map +1 -1
  1033. package/dist/cssm/hooks/useInsets.d.ts +5 -1
  1034. package/dist/cssm/hooks/useInsets.js +15 -13
  1035. package/dist/cssm/hooks/useInsets.js.map +1 -1
  1036. package/dist/cssm/index.d.ts +6 -3
  1037. package/dist/cssm/index.js +3 -1
  1038. package/dist/cssm/index.js.map +1 -1
  1039. package/dist/cssm/lib/adaptivity/functions.d.ts +8 -0
  1040. package/dist/cssm/lib/adaptivity/functions.js +29 -1
  1041. package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
  1042. package/dist/cssm/lib/appearance/index.d.ts +1 -0
  1043. package/dist/cssm/lib/appearance/index.js +3 -0
  1044. package/dist/cssm/lib/appearance/index.js.map +1 -0
  1045. package/dist/cssm/lib/appearance/types.d.ts +1 -0
  1046. package/dist/cssm/lib/appearance/types.js +3 -0
  1047. package/dist/cssm/lib/appearance/types.js.map +1 -0
  1048. package/dist/cssm/lib/floating/index.d.ts +1 -1
  1049. package/dist/cssm/lib/floating/index.js +1 -1
  1050. package/dist/cssm/lib/floating/index.js.map +1 -1
  1051. package/dist/cssm/lib/platform.js +9 -7
  1052. package/dist/cssm/lib/platform.js.map +1 -1
  1053. package/dist/cssm/lib/select.d.ts +1 -1
  1054. package/dist/cssm/lib/taptic.d.ts +4 -0
  1055. package/dist/cssm/lib/taptic.js +4 -1
  1056. package/dist/cssm/lib/taptic.js.map +1 -1
  1057. package/dist/cssm/lib/utils.d.ts +2 -0
  1058. package/dist/cssm/lib/utils.js +14 -0
  1059. package/dist/cssm/lib/utils.js.map +1 -1
  1060. package/dist/cssm/styles/common.css +8 -2
  1061. package/dist/cssm/styles/themes.css +226 -133
  1062. package/dist/cssm/types.d.ts +1 -0
  1063. package/dist/cssm/types.js.map +1 -1
  1064. package/dist/helpers/appearance.d.ts +4 -0
  1065. package/dist/helpers/appearance.js +4 -1
  1066. package/dist/helpers/appearance.js.map +1 -1
  1067. package/dist/hooks/useAppearance.d.ts +1 -1
  1068. package/dist/hooks/useAutoDetectAppearance.d.ts +4 -0
  1069. package/dist/hooks/useAutoDetectAppearance.js +4 -1
  1070. package/dist/hooks/useAutoDetectAppearance.js.map +1 -1
  1071. package/dist/hooks/useBridgeAdaptivity.d.ts +5 -1
  1072. package/dist/hooks/useBridgeAdaptivity.js +29 -21
  1073. package/dist/hooks/useBridgeAdaptivity.js.map +1 -1
  1074. package/dist/hooks/useInsets.d.ts +5 -1
  1075. package/dist/hooks/useInsets.js +15 -12
  1076. package/dist/hooks/useInsets.js.map +1 -1
  1077. package/dist/index.d.ts +6 -3
  1078. package/dist/index.js +3 -1
  1079. package/dist/index.js.map +1 -1
  1080. package/dist/lib/adaptivity/functions.d.ts +8 -0
  1081. package/dist/lib/adaptivity/functions.js +29 -1
  1082. package/dist/lib/adaptivity/functions.js.map +1 -1
  1083. package/dist/lib/appearance/index.d.ts +1 -0
  1084. package/dist/lib/appearance/index.js +3 -0
  1085. package/dist/lib/appearance/index.js.map +1 -0
  1086. package/dist/lib/appearance/types.d.ts +1 -0
  1087. package/dist/lib/appearance/types.js +3 -0
  1088. package/dist/lib/appearance/types.js.map +1 -0
  1089. package/dist/lib/floating/index.d.ts +1 -1
  1090. package/dist/lib/floating/index.js +1 -1
  1091. package/dist/lib/floating/index.js.map +1 -1
  1092. package/dist/lib/platform.js +11 -7
  1093. package/dist/lib/platform.js.map +1 -1
  1094. package/dist/lib/select.d.ts +1 -1
  1095. package/dist/lib/taptic.d.ts +4 -0
  1096. package/dist/lib/taptic.js +4 -1
  1097. package/dist/lib/taptic.js.map +1 -1
  1098. package/dist/lib/utils.d.ts +2 -0
  1099. package/dist/lib/utils.js +16 -0
  1100. package/dist/lib/utils.js.map +1 -1
  1101. package/dist/types.d.ts +1 -0
  1102. package/dist/types.js.map +1 -1
  1103. package/dist/vkui.css +20 -19
  1104. package/dist/vkui.css.map +1 -1
  1105. package/dist/vkui.js.tmp +6990 -4428
  1106. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Search/Search.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Clear, Icon16SearchOutline, Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useBooleanState } from '../../hooks/useBooleanState';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { touchEnabled, VKUITouchEvent } from '../../lib/touch';\nimport { HasRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { IconButton } from '../IconButton/IconButton';\nimport { TouchEvent } from '../Touch/Touch';\nimport { Headline } from '../Typography/Headline/Headline';\nimport styles from './Search.module.css';\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement> {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode;\n onIconClick?: (e: VKUITouchEvent) => void;\n defaultValue?: string;\n iconAriaLabel?: string;\n clearAriaLabel?: string;\n /**\n * Удаляет отступы у компонента\n */\n noPadding?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Search\n */\nexport const Search = ({\n before = <Icon16SearchOutline />,\n className,\n defaultValue = '',\n placeholder = 'Поиск',\n after = 'Отмена',\n getRef,\n icon,\n onIconClick = noop,\n style,\n autoComplete = 'off',\n onChange: onChangeProp,\n value: valueProp,\n iconAriaLabel,\n clearAriaLabel = 'Очистить',\n noPadding,\n ...inputProps\n}: SearchProps) => {\n const inputRef = useExternRef(getRef);\n const {\n value: isFocused,\n setTrue: setFocusedTrue,\n setFalse: setFocusedFalse,\n } = useBooleanState(false);\n\n const [value, onChange] = useEnsuredControl({\n defaultValue,\n onChange: onChangeProp,\n value: valueProp,\n });\n const { sizeY = 'none' } = useAdaptivity();\n const platform = usePlatform();\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedTrue();\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedFalse();\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value',\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, '');\n\n const ev2 = new Event('input', { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart = React.useCallback(\n (e: TouchEvent) => onIconClick(e.originalEvent),\n [onIconClick],\n );\n\n const onIconCancelClickStart = React.useCallback(\n (e: TouchEvent) => {\n e.originalEvent.preventDefault();\n inputRef.current?.focus();\n if (touchEnabled()) {\n onCancel();\n }\n },\n [inputRef, onCancel],\n );\n\n return (\n <div\n className={classNames(\n 'vkuiInternalSearch',\n styles['Search'],\n sizeY === 'none' && styles['Search--sizeY-none'],\n sizeY === SizeType.COMPACT && styles['Search--sizeY-compact'],\n isFocused && styles['Search--focused'],\n value && styles['Search--has-value'],\n after && styles['Search--has-after'],\n icon && styles['Search--has-icon'],\n inputProps.disabled && styles['Search--disabled'],\n !noPadding && styles['Search--withPadding'],\n className,\n )}\n style={style}\n >\n <div className={styles['Search__field']}>\n <label className={styles['Search__control']}>\n {before}\n <Headline\n Component=\"input\"\n type=\"search\"\n level=\"1\"\n weight=\"3\"\n {...inputProps}\n placeholder={placeholder}\n autoComplete={autoComplete}\n getRootRef={inputRef}\n className={styles['Search__input']}\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n value={value}\n />\n </label>\n <div className={styles['Search__icons']}>\n {icon && (\n <IconButton\n hoverMode=\"opacity\"\n onStart={onIconClickStart}\n className={styles['Search__icon']}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n aria-label={iconAriaLabel}\n >\n {icon}\n </IconButton>\n )}\n {!!value && (\n <IconButton\n hoverMode=\"opacity\"\n onStart={onIconCancelClickStart}\n onClick={onCancel}\n className={styles['Search__icon']}\n aria-label={clearAriaLabel}\n >\n {platform === Platform.IOS ? <Icon16Clear /> : <Icon24Cancel />}\n </IconButton>\n )}\n </div>\n </div>\n {platform === Platform.IOS && after && (\n <Button\n mode=\"tertiary\"\n size=\"m\"\n className={styles['Search__after']}\n focusVisibleMode=\"inside\"\n onClick={onCancel}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n >\n <span className={styles['Search__afterText']}>{after}</span>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["React","Icon16Clear","Icon16SearchOutline","Icon24Cancel","classNames","noop","useAdaptivity","useBooleanState","useEnsuredControl","useExternRef","usePlatform","SizeType","Platform","touchEnabled","Button","IconButton","Headline","styles","Search","before","className","defaultValue","placeholder","after","getRef","icon","onIconClick","style","autoComplete","onChange","onChangeProp","value","valueProp","iconAriaLabel","clearAriaLabel","noPadding","inputProps","inputRef","isFocused","setTrue","setFocusedTrue","setFalse","setFocusedFalse","sizeY","platform","onFocus","e","onBlur","onCancel","useCallback","nativeInputValueSetter","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","originalEvent","onIconCancelClickStart","preventDefault","focus","div","COMPACT","disabled","label","Component","type","level","weight","getRootRef","hoverMode","onStart","aria-label","onClick","IOS","mode","size","focusVisibleMode","span"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,WAAW,EAAEC,mBAAmB,EAAEC,YAAY,QAAQ,mBAAmB;AAClF,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,YAAY,QAAwB,kBAAkB;AAE/D,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,UAAU,QAAQ,2BAA2B;AAEtD,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,OAAOC,YAAY,sBAAsB;AAqBzC;;CAEC,GACD,OAAO,MAAMC,SAAS,CAAC,EACrBC,uBAAS,oBAACjB,0BAAsB,EAChCkB,SAAS,EACTC,eAAe,EAAE,EACjBC,cAAc,OAAO,EACrBC,QAAQ,QAAQ,EAChBC,MAAM,EACNC,IAAI,EACJC,cAAcrB,IAAI,EAClBsB,KAAK,EACLC,eAAe,KAAK,EACpBC,UAAUC,YAAY,EACtBC,OAAOC,SAAS,EAChBC,aAAa,EACbC,iBAAiB,UAAU,EAC3BC,SAAS,EACT,GAAGC,YACS;IACZ,MAAMC,WAAW5B,aAAae;IAC9B,MAAM,EACJO,OAAOO,SAAS,EAChBC,SAASC,cAAc,EACvBC,UAAUC,eAAe,EAC1B,GAAGnC,gBAAgB;IAEpB,MAAM,CAACwB,OAAOF,SAAS,GAAGrB,kBAAkB;QAC1Ca;QACAQ,UAAUC;QACVC,OAAOC;IACT;IACA,MAAM,EAAEW,QAAQ,MAAM,EAAE,GAAGrC;IAC3B,MAAMsC,WAAWlC;IAEjB,MAAMmC,UAAU,CAACC;QACfN;QACAJ,WAAWS,OAAO,IAAIT,WAAWS,OAAO,CAACC;IAC3C;IAEA,MAAMC,SAAS,CAACD;QACdJ;QACAN,WAAWW,MAAM,IAAIX,WAAWW,MAAM,CAACD;IACzC;IAEA,MAAME,WAAWhD,MAAMiD,WAAW,CAAC;QACjC,6DAA6D;QAC7D,MAAMC,yBAAyBC,OAAOC,wBAAwB,CAC5DC,iBAAiBC,SAAS,EAC1B,UACCC;QACHL,wBAAwBM,KAAKnB,SAASoB,OAAO,EAAE;QAE/C,MAAMC,MAAM,IAAIC,MAAM,SAAS;YAAEC,SAAS;QAAK;QAC/CvB,SAASoB,OAAO,EAAEI,cAAcH;IAClC,GAAG;QAACrB;KAAS;IAEb,MAAMyB,mBAAmB9D,MAAMiD,WAAW,CACxC,CAACH,IAAkBpB,YAAYoB,EAAEiB,aAAa,GAC9C;QAACrC;KAAY;IAGf,MAAMsC,yBAAyBhE,MAAMiD,WAAW,CAC9C,CAACH;QACCA,EAAEiB,aAAa,CAACE,cAAc;QAC9B5B,SAASoB,OAAO,EAAES;QAClB,IAAIrD,gBAAgB;YAClBmC;QACF;IACF,GACA;QAACX;QAAUW;KAAS;IAGtB,qBACE,oBAACmB;QACC/C,WAAWhB,WACT,sBACAa,MAAM,CAAC,SAAS,EAChB0B,UAAU,UAAU1B,MAAM,CAAC,qBAAqB,EAChD0B,UAAUhC,SAASyD,OAAO,IAAInD,MAAM,CAAC,wBAAwB,EAC7DqB,aAAarB,MAAM,CAAC,kBAAkB,EACtCc,SAASd,MAAM,CAAC,oBAAoB,EACpCM,SAASN,MAAM,CAAC,oBAAoB,EACpCQ,QAAQR,MAAM,CAAC,mBAAmB,EAClCmB,WAAWiC,QAAQ,IAAIpD,MAAM,CAAC,mBAAmB,EACjD,CAACkB,aAAalB,MAAM,CAAC,sBAAsB,EAC3CG;QAEFO,OAAOA;qBAEP,oBAACwC;QAAI/C,WAAWH,MAAM,CAAC,gBAAgB;qBACrC,oBAACqD;QAAMlD,WAAWH,MAAM,CAAC,kBAAkB;OACxCE,sBACD,oBAACH;QACCuD,WAAU;QACVC,MAAK;QACLC,OAAM;QACNC,QAAO;QACN,GAAGtC,UAAU;QACdd,aAAaA;QACbM,cAAcA;QACd+C,YAAYtC;QACZjB,WAAWH,MAAM,CAAC,gBAAgB;QAClC4B,SAASA;QACTE,QAAQA;QACRlB,UAAUA;QACVE,OAAOA;uBAGX,oBAACoC;QAAI/C,WAAWH,MAAM,CAAC,gBAAgB;OACpCQ,sBACC,oBAACV;QACC6D,WAAU;QACVC,SAASf;QACT1C,WAAWH,MAAM,CAAC,eAAe;QACjC4B,SAASL;QACTO,QAAQL;QACRoC,cAAY7C;OAEXR,OAGJ,CAAC,CAACM,uBACD,oBAAChB;QACC6D,WAAU;QACVC,SAASb;QACTe,SAAS/B;QACT5B,WAAWH,MAAM,CAAC,eAAe;QACjC6D,cAAY5C;OAEXU,aAAahC,SAASoE,GAAG,iBAAG,oBAAC/E,mCAAiB,oBAACE,wBAKvDyC,aAAahC,SAASoE,GAAG,IAAIzD,uBAC5B,oBAACT;QACCmE,MAAK;QACLC,MAAK;QACL9D,WAAWH,MAAM,CAAC,gBAAgB;QAClCkE,kBAAiB;QACjBJ,SAAS/B;QACTH,SAASL;QACTO,QAAQL;qBAER,oBAAC0C;QAAKhE,WAAWH,MAAM,CAAC,oBAAoB;OAAGM;AAKzD,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Search/Search.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Clear, Icon16SearchOutline, Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useBooleanState } from '../../hooks/useBooleanState';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { touchEnabled, VKUITouchEvent } from '../../lib/touch';\nimport { HasRef, HasRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { IconButton } from '../IconButton/IconButton';\nimport { TouchEvent } from '../Touch/Touch';\nimport { Headline } from '../Typography/Headline/Headline';\nimport styles from './Search.module.css';\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLInputElement> {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode;\n onIconClick?: (e: VKUITouchEvent) => void;\n defaultValue?: string;\n iconAriaLabel?: string;\n clearAriaLabel?: string;\n /**\n * Удаляет отступы у компонента\n */\n noPadding?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Search\n */\nexport const Search = ({\n before = <Icon16SearchOutline />,\n className,\n defaultValue = '',\n placeholder = 'Поиск',\n after = 'Отмена',\n getRef,\n icon,\n onIconClick = noop,\n style,\n autoComplete = 'off',\n onChange: onChangeProp,\n value: valueProp,\n iconAriaLabel,\n clearAriaLabel = 'Очистить',\n noPadding,\n getRootRef,\n ...inputProps\n}: SearchProps) => {\n const inputRef = useExternRef(getRef);\n const {\n value: isFocused,\n setTrue: setFocusedTrue,\n setFalse: setFocusedFalse,\n } = useBooleanState(false);\n\n const [value, onChange] = useEnsuredControl({\n defaultValue,\n onChange: onChangeProp,\n value: valueProp,\n });\n const { sizeY = 'none' } = useAdaptivity();\n const platform = usePlatform();\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedTrue();\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedFalse();\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value',\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, '');\n\n const ev2 = new Event('input', { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart = React.useCallback(\n (e: TouchEvent) => onIconClick(e.originalEvent),\n [onIconClick],\n );\n\n const onIconCancelClickStart = React.useCallback(\n (e: TouchEvent) => {\n e.originalEvent.preventDefault();\n inputRef.current?.focus();\n if (touchEnabled()) {\n onCancel();\n }\n },\n [inputRef, onCancel],\n );\n\n return (\n <div\n className={classNames(\n 'vkuiInternalSearch',\n styles['Search'],\n sizeY === 'none' && styles['Search--sizeY-none'],\n sizeY === SizeType.COMPACT && styles['Search--sizeY-compact'],\n isFocused && styles['Search--focused'],\n value && styles['Search--has-value'],\n after && styles['Search--has-after'],\n icon && styles['Search--has-icon'],\n inputProps.disabled && styles['Search--disabled'],\n !noPadding && styles['Search--withPadding'],\n className,\n )}\n ref={getRootRef}\n style={style}\n >\n <div className={styles['Search__field']}>\n <label className={styles['Search__control']}>\n {before}\n <Headline\n Component=\"input\"\n type=\"search\"\n level=\"1\"\n weight=\"3\"\n {...inputProps}\n placeholder={placeholder}\n autoComplete={autoComplete}\n getRootRef={inputRef}\n className={styles['Search__input']}\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n value={value}\n />\n </label>\n <div className={styles['Search__icons']}>\n {icon && (\n <IconButton\n hoverMode=\"opacity\"\n onStart={onIconClickStart}\n className={styles['Search__icon']}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n aria-label={iconAriaLabel}\n >\n {icon}\n </IconButton>\n )}\n {!!value && (\n <IconButton\n hoverMode=\"opacity\"\n onStart={onIconCancelClickStart}\n onClick={onCancel}\n className={styles['Search__icon']}\n aria-label={clearAriaLabel}\n >\n {platform === Platform.IOS ? <Icon16Clear /> : <Icon24Cancel />}\n </IconButton>\n )}\n </div>\n </div>\n {platform === Platform.IOS && after && (\n <Button\n mode=\"tertiary\"\n size=\"m\"\n className={styles['Search__after']}\n focusVisibleMode=\"inside\"\n onClick={onCancel}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n >\n <span className={styles['Search__afterText']}>{after}</span>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["React","Icon16Clear","Icon16SearchOutline","Icon24Cancel","classNames","noop","useAdaptivity","useBooleanState","useEnsuredControl","useExternRef","usePlatform","SizeType","Platform","touchEnabled","Button","IconButton","Headline","styles","Search","before","className","defaultValue","placeholder","after","getRef","icon","onIconClick","style","autoComplete","onChange","onChangeProp","value","valueProp","iconAriaLabel","clearAriaLabel","noPadding","getRootRef","inputProps","inputRef","isFocused","setTrue","setFocusedTrue","setFalse","setFocusedFalse","sizeY","platform","onFocus","e","onBlur","onCancel","useCallback","nativeInputValueSetter","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","originalEvent","onIconCancelClickStart","preventDefault","focus","div","COMPACT","disabled","ref","label","Component","type","level","weight","hoverMode","onStart","aria-label","onClick","IOS","mode","size","focusVisibleMode","span"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import * as React from 'react';
2
- import { HasRootRef } from '../../types';
2
+ import { HTMLAttributesWithRootRef } from '../../types';
3
3
  export type SegmentedControlValue = string | number | undefined;
4
4
  export interface SegmentedControlOptionInterface extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {
5
5
  label: React.ReactChild;
6
6
  value: SegmentedControlValue;
7
7
  }
8
- export interface SegmentedControlProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>, HasRootRef<HTMLDivElement> {
8
+ export interface SegmentedControlProps extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'> {
9
9
  options: SegmentedControlOptionInterface[];
10
10
  size?: 'm' | 'l';
11
11
  name?: string;
@@ -16,4 +16,4 @@ export interface SegmentedControlProps extends Omit<React.HTMLAttributes<HTMLDiv
16
16
  /**
17
17
  * @see https://vkcom.github.io/VKUI/#/SegmentedControl
18
18
  */
19
- export declare const SegmentedControl: ({ size, name, options, getRootRef, defaultValue, children, className, onChange: onChangeProp, value: valueProp, ...restProps }: SegmentedControlProps) => React.JSX.Element;
19
+ export declare const SegmentedControl: ({ size, name, options, defaultValue, children, onChange: onChangeProp, value: valueProp, ...restProps }: SegmentedControlProps) => React.JSX.Element;
@@ -6,6 +6,7 @@ import { useId } from '../../hooks/useId';
6
6
  import { SizeType } from '../../lib/adaptivity';
7
7
  import { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';
8
8
  import { warnOnce } from '../../lib/warnOnce';
9
+ import { RootComponent } from '../RootComponent/RootComponent';
9
10
  import { SegmentedControlOption } from './SegmentedControlOption/SegmentedControlOption';
10
11
  import styles from './SegmentedControl.module.css';
11
12
  const sizeYClassNames = {
@@ -15,7 +16,7 @@ const sizeYClassNames = {
15
16
  const warn = warnOnce('SegmentedControl');
16
17
  /**
17
18
  * @see https://vkcom.github.io/VKUI/#/SegmentedControl
18
- */ export const SegmentedControl = ({ size = 'l', name, options, getRootRef, defaultValue = options[0]?.value, children, className, onChange: onChangeProp, value: valueProp, ...restProps })=>{
19
+ */ export const SegmentedControl = ({ size = 'l', name, options, defaultValue = options[0]?.value, children, onChange: onChangeProp, value: valueProp, ...restProps })=>{
19
20
  const id = useId();
20
21
  const [value, onChange] = useCustomEnsuredControl({
21
22
  onChange: onChangeProp,
@@ -32,10 +33,9 @@ const warn = warnOnce('SegmentedControl');
32
33
  actualIndex
33
34
  ]);
34
35
  const translateX = `translateX(${100 * actualIndex}%)`;
35
- return /*#__PURE__*/ React.createElement("div", {
36
+ return /*#__PURE__*/ React.createElement(RootComponent, {
36
37
  ...restProps,
37
- className: classNames(styles['SegmentedControl'], sizeY !== SizeType.COMPACT && sizeYClassNames[sizeY], size === 'l' && styles['SegmentedControl--size-l'], className),
38
- ref: getRootRef
38
+ baseClassName: classNames(styles['SegmentedControl'], sizeY !== SizeType.COMPACT && sizeYClassNames[sizeY], size === 'l' && styles['SegmentedControl--size-l'])
39
39
  }, /*#__PURE__*/ React.createElement("div", {
40
40
  role: "radiogroup",
41
41
  className: styles['SegmentedControl__in']
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useCustomEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useId } from '../../hooks/useId';\nimport { SizeType } from '../../lib/adaptivity';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasRootRef } from '../../types';\nimport { SegmentedControlOption } from './SegmentedControlOption/SegmentedControlOption';\nimport styles from './SegmentedControl.module.css';\n\nconst sizeYClassNames = {\n none: styles['SegmentedControl--sizeY-none'],\n [SizeType.REGULAR]: styles['SegmentedControl--sizeY-regular'],\n};\n\nexport type SegmentedControlValue = string | number | undefined;\n\nexport interface SegmentedControlOptionInterface\n extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {\n label: React.ReactChild;\n value: SegmentedControlValue;\n}\n\nexport interface SegmentedControlProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>,\n HasRootRef<HTMLDivElement> {\n options: SegmentedControlOptionInterface[];\n size?: 'm' | 'l';\n name?: string;\n onChange?: (value: SegmentedControlValue) => void;\n value?: SegmentedControlValue;\n defaultValue?: SegmentedControlValue;\n}\n\nconst warn = warnOnce('SegmentedControl');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SegmentedControl\n */\nexport const SegmentedControl = ({\n size = 'l',\n name,\n options,\n getRootRef,\n defaultValue = options[0]?.value,\n children,\n className,\n onChange: onChangeProp,\n value: valueProp,\n ...restProps\n}: SegmentedControlProps) => {\n const id = useId();\n\n const [value, onChange] = useCustomEnsuredControl({\n onChange: onChangeProp,\n value: valueProp,\n defaultValue,\n });\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const actualIndex = options.findIndex((option) => option.value === value);\n\n useIsomorphicLayoutEffect(() => {\n if (actualIndex === -1 && process.env.NODE_ENV === 'development') {\n warn('defaultValue: такого значения нет среди опций!', 'error');\n }\n }, [actualIndex]);\n\n const translateX = `translateX(${100 * actualIndex}%)`;\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['SegmentedControl'],\n sizeY !== SizeType.COMPACT && sizeYClassNames[sizeY],\n size === 'l' && styles['SegmentedControl--size-l'],\n className,\n )}\n ref={getRootRef}\n >\n <div role=\"radiogroup\" className={styles['SegmentedControl__in']}>\n {actualIndex > -1 && (\n <div\n aria-hidden\n className={styles['SegmentedControl__slider']}\n style={{\n width: `${100 / options.length}%`,\n transform: translateX,\n WebkitTransform: translateX,\n }}\n />\n )}\n {options.map(({ label, className: optionClassName, ...optionProps }) => (\n <SegmentedControlOption\n key={`${optionProps.value}`}\n {...optionProps}\n className={classNames(styles['SegmentedControl__option'], optionClassName)}\n name={name ?? id}\n checked={value === optionProps.value}\n onChange={() => onChange(optionProps.value)}\n >\n {label}\n </SegmentedControlOption>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useCustomEnsuredControl","useId","SizeType","useIsomorphicLayoutEffect","warnOnce","SegmentedControlOption","styles","sizeYClassNames","none","REGULAR","warn","SegmentedControl","size","name","options","getRootRef","defaultValue","value","children","className","onChange","onChangeProp","valueProp","restProps","id","sizeY","actualIndex","findIndex","option","process","env","NODE_ENV","translateX","div","COMPACT","ref","role","aria-hidden","style","width","length","transform","WebkitTransform","map","label","optionClassName","optionProps","key","checked"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,uBAAuB,QAAQ,gCAAgC;AACxE,SAASC,KAAK,QAAQ,oBAAoB;AAC1C,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,yBAAyB,QAAQ,sCAAsC;AAChF,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,sBAAsB,QAAQ,kDAAkD;AACzF,OAAOC,YAAY,gCAAgC;AAEnD,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,+BAA+B;IAC5C,CAACJ,SAASO,OAAO,CAAC,EAAEH,MAAM,CAAC,kCAAkC;AAC/D;AAqBA,MAAMI,OAAON,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMO,mBAAmB,CAAC,EAC/BC,OAAO,GAAG,EACVC,IAAI,EACJC,OAAO,EACPC,UAAU,EACVC,eAAeF,OAAO,CAAC,EAAE,EAAEG,KAAK,EAChCC,QAAQ,EACRC,SAAS,EACTC,UAAUC,YAAY,EACtBJ,OAAOK,SAAS,EAChB,GAAGC,WACmB;IACtB,MAAMC,KAAKvB;IAEX,MAAM,CAACgB,OAAOG,SAAS,GAAGpB,wBAAwB;QAChDoB,UAAUC;QACVJ,OAAOK;QACPN;IACF;IAEA,MAAM,EAAES,QAAQ,MAAM,EAAE,GAAG1B;IAE3B,MAAM2B,cAAcZ,QAAQa,SAAS,CAAC,CAACC,SAAWA,OAAOX,KAAK,KAAKA;IAEnEd,0BAA0B;QACxB,IAAIuB,gBAAgB,CAAC,KAAKG,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;YAChErB,KAAK,kDAAkD;QACzD;IACF,GAAG;QAACgB;KAAY;IAEhB,MAAMM,aAAa,CAAC,WAAW,EAAE,MAAMN,YAAY,EAAE,CAAC;IAEtD,qBACE,oBAACO;QACE,GAAGV,SAAS;QACbJ,WAAWrB,WACTQ,MAAM,CAAC,mBAAmB,EAC1BmB,UAAUvB,SAASgC,OAAO,IAAI3B,eAAe,CAACkB,MAAM,EACpDb,SAAS,OAAON,MAAM,CAAC,2BAA2B,EAClDa;QAEFgB,KAAKpB;qBAEL,oBAACkB;QAAIG,MAAK;QAAajB,WAAWb,MAAM,CAAC,uBAAuB;OAC7DoB,cAAc,CAAC,mBACd,oBAACO;QACCI,eAAAA;QACAlB,WAAWb,MAAM,CAAC,2BAA2B;QAC7CgC,OAAO;YACLC,OAAO,CAAC,EAAE,MAAMzB,QAAQ0B,MAAM,CAAC,CAAC,CAAC;YACjCC,WAAWT;YACXU,iBAAiBV;QACnB;QAGHlB,QAAQ6B,GAAG,CAAC,CAAC,EAAEC,KAAK,EAAEzB,WAAW0B,eAAe,EAAE,GAAGC,aAAa,iBACjE,oBAACzC;YACC0C,KAAK,CAAC,EAAED,YAAY7B,KAAK,CAAC,CAAC;YAC1B,GAAG6B,WAAW;YACf3B,WAAWrB,WAAWQ,MAAM,CAAC,2BAA2B,EAAEuC;YAC1DhC,MAAMA,QAAQW;YACdwB,SAAS/B,UAAU6B,YAAY7B,KAAK;YACpCG,UAAU,IAAMA,SAAS0B,YAAY7B,KAAK;WAEzC2B;AAMb,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useCustomEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useId } from '../../hooks/useId';\nimport { SizeType } from '../../lib/adaptivity';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { SegmentedControlOption } from './SegmentedControlOption/SegmentedControlOption';\nimport styles from './SegmentedControl.module.css';\n\nconst sizeYClassNames = {\n none: styles['SegmentedControl--sizeY-none'],\n [SizeType.REGULAR]: styles['SegmentedControl--sizeY-regular'],\n};\n\nexport type SegmentedControlValue = string | number | undefined;\n\nexport interface SegmentedControlOptionInterface\n extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {\n label: React.ReactChild;\n value: SegmentedControlValue;\n}\n\nexport interface SegmentedControlProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'> {\n options: SegmentedControlOptionInterface[];\n size?: 'm' | 'l';\n name?: string;\n onChange?: (value: SegmentedControlValue) => void;\n value?: SegmentedControlValue;\n defaultValue?: SegmentedControlValue;\n}\n\nconst warn = warnOnce('SegmentedControl');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SegmentedControl\n */\nexport const SegmentedControl = ({\n size = 'l',\n name,\n options,\n defaultValue = options[0]?.value,\n children,\n onChange: onChangeProp,\n value: valueProp,\n ...restProps\n}: SegmentedControlProps) => {\n const id = useId();\n\n const [value, onChange] = useCustomEnsuredControl({\n onChange: onChangeProp,\n value: valueProp,\n defaultValue,\n });\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const actualIndex = options.findIndex((option) => option.value === value);\n\n useIsomorphicLayoutEffect(() => {\n if (actualIndex === -1 && process.env.NODE_ENV === 'development') {\n warn('defaultValue: такого значения нет среди опций!', 'error');\n }\n }, [actualIndex]);\n\n const translateX = `translateX(${100 * actualIndex}%)`;\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles['SegmentedControl'],\n sizeY !== SizeType.COMPACT && sizeYClassNames[sizeY],\n size === 'l' && styles['SegmentedControl--size-l'],\n )}\n >\n <div role=\"radiogroup\" className={styles['SegmentedControl__in']}>\n {actualIndex > -1 && (\n <div\n aria-hidden\n className={styles['SegmentedControl__slider']}\n style={{\n width: `${100 / options.length}%`,\n transform: translateX,\n WebkitTransform: translateX,\n }}\n />\n )}\n {options.map(({ label, className: optionClassName, ...optionProps }) => (\n <SegmentedControlOption\n key={`${optionProps.value}`}\n {...optionProps}\n className={classNames(styles['SegmentedControl__option'], optionClassName)}\n name={name ?? id}\n checked={value === optionProps.value}\n onChange={() => onChange(optionProps.value)}\n >\n {label}\n </SegmentedControlOption>\n ))}\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useCustomEnsuredControl","useId","SizeType","useIsomorphicLayoutEffect","warnOnce","RootComponent","SegmentedControlOption","styles","sizeYClassNames","none","REGULAR","warn","SegmentedControl","size","name","options","defaultValue","value","children","onChange","onChangeProp","valueProp","restProps","id","sizeY","actualIndex","findIndex","option","process","env","NODE_ENV","translateX","baseClassName","COMPACT","div","role","className","aria-hidden","style","width","length","transform","WebkitTransform","map","label","optionClassName","optionProps","key","checked"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,uBAAuB,QAAQ,gCAAgC;AACxE,SAASC,KAAK,QAAQ,oBAAoB;AAC1C,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,yBAAyB,QAAQ,sCAAsC;AAChF,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,sBAAsB,QAAQ,kDAAkD;AACzF,OAAOC,YAAY,gCAAgC;AAEnD,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,+BAA+B;IAC5C,CAACL,SAASQ,OAAO,CAAC,EAAEH,MAAM,CAAC,kCAAkC;AAC/D;AAoBA,MAAMI,OAAOP,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMQ,mBAAmB,CAAC,EAC/BC,OAAO,GAAG,EACVC,IAAI,EACJC,OAAO,EACPC,eAAeD,OAAO,CAAC,EAAE,EAAEE,KAAK,EAChCC,QAAQ,EACRC,UAAUC,YAAY,EACtBH,OAAOI,SAAS,EAChB,GAAGC,WACmB;IACtB,MAAMC,KAAKtB;IAEX,MAAM,CAACgB,OAAOE,SAAS,GAAGnB,wBAAwB;QAChDmB,UAAUC;QACVH,OAAOI;QACPL;IACF;IAEA,MAAM,EAAEQ,QAAQ,MAAM,EAAE,GAAGzB;IAE3B,MAAM0B,cAAcV,QAAQW,SAAS,CAAC,CAACC,SAAWA,OAAOV,KAAK,KAAKA;IAEnEd,0BAA0B;QACxB,IAAIsB,gBAAgB,CAAC,KAAKG,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;YAChEnB,KAAK,kDAAkD;QACzD;IACF,GAAG;QAACc;KAAY;IAEhB,MAAMM,aAAa,CAAC,WAAW,EAAE,MAAMN,YAAY,EAAE,CAAC;IAEtD,qBACE,oBAACpB;QACE,GAAGiB,SAAS;QACbU,eAAelC,WACbS,MAAM,CAAC,mBAAmB,EAC1BiB,UAAUtB,SAAS+B,OAAO,IAAIzB,eAAe,CAACgB,MAAM,EACpDX,SAAS,OAAON,MAAM,CAAC,2BAA2B;qBAGpD,oBAAC2B;QAAIC,MAAK;QAAaC,WAAW7B,MAAM,CAAC,uBAAuB;OAC7DkB,cAAc,CAAC,mBACd,oBAACS;QACCG,eAAAA;QACAD,WAAW7B,MAAM,CAAC,2BAA2B;QAC7C+B,OAAO;YACLC,OAAO,CAAC,EAAE,MAAMxB,QAAQyB,MAAM,CAAC,CAAC,CAAC;YACjCC,WAAWV;YACXW,iBAAiBX;QACnB;QAGHhB,QAAQ4B,GAAG,CAAC,CAAC,EAAEC,KAAK,EAAER,WAAWS,eAAe,EAAE,GAAGC,aAAa,iBACjE,oBAACxC;YACCyC,KAAK,CAAC,EAAED,YAAY7B,KAAK,CAAC,CAAC;YAC1B,GAAG6B,WAAW;YACfV,WAAWtC,WAAWS,MAAM,CAAC,2BAA2B,EAAEsC;YAC1D/B,MAAMA,QAAQS;YACdyB,SAAS/B,UAAU6B,YAAY7B,KAAK;YACpCE,UAAU,IAAMA,SAAS2B,YAAY7B,KAAK;WAEzC2B;AAMb,EAAE"}
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
- import { HasRef } from '../../../types';
3
- export interface SegmentedControlOptionProps extends React.InputHTMLAttributes<HTMLInputElement>, HasRef<HTMLInputElement> {
2
+ import { HasRef, HasRootRef } from '../../../types';
3
+ export interface SegmentedControlOptionProps extends React.InputHTMLAttributes<HTMLInputElement>, HasRootRef<HTMLLabelElement>, HasRef<HTMLInputElement> {
4
4
  }
5
5
  /**
6
6
  * @see https://vkcom.github.io/VKUI/#/SegmentedControl
7
7
  */
8
- export declare const SegmentedControlOption: ({ getRef, className, style, children, ...restProps }: SegmentedControlOptionProps) => React.JSX.Element;
8
+ export declare const SegmentedControlOption: ({ getRef, className, style, children, getRootRef, ...restProps }: SegmentedControlOptionProps) => React.JSX.Element;
@@ -8,10 +8,11 @@ import { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';
8
8
  import styles from './SegmentedControlOption.module.css';
9
9
  /**
10
10
  * @see https://vkcom.github.io/VKUI/#/SegmentedControl
11
- */ export const SegmentedControlOption = ({ getRef, className, style, children, ...restProps })=>{
11
+ */ export const SegmentedControlOption = ({ getRef, className, style, children, getRootRef, ...restProps })=>{
12
12
  const { focusVisible, onBlur, onFocus } = useFocusVisible();
13
13
  return /*#__PURE__*/ React.createElement("label", {
14
14
  className: classNames(styles['SegmentedControlOption'], restProps.checked && styles['SegmentedControlOption--checked'], className),
15
+ ref: getRootRef,
15
16
  style: style
16
17
  }, /*#__PURE__*/ React.createElement(VisuallyHidden, {
17
18
  ...restProps,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useFocusVisible } from '../../../hooks/useFocusVisible';\nimport { callMultiple } from '../../../lib/callMultiple';\nimport { HasRef } from '../../../types';\nimport { FocusVisible } from '../../FocusVisible/FocusVisible';\nimport { Headline } from '../../Typography/Headline/Headline';\nimport { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';\nimport styles from './SegmentedControlOption.module.css';\n\nexport interface SegmentedControlOptionProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SegmentedControl\n */\nexport const SegmentedControlOption = ({\n getRef,\n className,\n style,\n children,\n ...restProps\n}: SegmentedControlOptionProps) => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n\n return (\n <label\n className={classNames(\n styles['SegmentedControlOption'],\n restProps.checked && styles['SegmentedControlOption--checked'],\n className,\n )}\n style={style}\n >\n <VisuallyHidden\n {...restProps}\n Component=\"input\"\n getRootRef={getRef}\n type=\"radio\"\n onBlur={callMultiple(onBlur, restProps.onBlur)}\n onFocus={callMultiple(onFocus, restProps.onFocus)}\n />\n <Headline className={styles['SegmentedControlOption__content']} level=\"2\" weight=\"2\">\n {children}\n </Headline>\n <FocusVisible visible={focusVisible} mode=\"inside\" />\n </label>\n );\n};\n"],"names":["React","classNames","useFocusVisible","callMultiple","FocusVisible","Headline","VisuallyHidden","styles","SegmentedControlOption","getRef","className","style","children","restProps","focusVisible","onBlur","onFocus","label","checked","Component","getRootRef","type","level","weight","visible","mode"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,YAAY,QAAQ,4BAA4B;AAEzD,SAASC,YAAY,QAAQ,kCAAkC;AAC/D,SAASC,QAAQ,QAAQ,qCAAqC;AAC9D,SAASC,cAAc,QAAQ,sCAAsC;AACrE,OAAOC,YAAY,sCAAsC;AAMzD;;CAEC,GACD,OAAO,MAAMC,yBAAyB,CAAC,EACrCC,MAAM,EACNC,SAAS,EACTC,KAAK,EACLC,QAAQ,EACR,GAAGC,WACyB;IAC5B,MAAM,EAAEC,YAAY,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGd;IAE1C,qBACE,oBAACe;QACCP,WAAWT,WACTM,MAAM,CAAC,yBAAyB,EAChCM,UAAUK,OAAO,IAAIX,MAAM,CAAC,kCAAkC,EAC9DG;QAEFC,OAAOA;qBAEP,oBAACL;QACE,GAAGO,SAAS;QACbM,WAAU;QACVC,YAAYX;QACZY,MAAK;QACLN,QAAQZ,aAAaY,QAAQF,UAAUE,MAAM;QAC7CC,SAASb,aAAaa,SAASH,UAAUG,OAAO;sBAElD,oBAACX;QAASK,WAAWH,MAAM,CAAC,kCAAkC;QAAEe,OAAM;QAAIC,QAAO;OAC9EX,yBAEH,oBAACR;QAAaoB,SAASV;QAAcW,MAAK;;AAGhD,EAAE"}
1
+ {"version":3,"sources":["../../../../../src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useFocusVisible } from '../../../hooks/useFocusVisible';\nimport { callMultiple } from '../../../lib/callMultiple';\nimport { HasRef, HasRootRef } from '../../../types';\nimport { FocusVisible } from '../../FocusVisible/FocusVisible';\nimport { Headline } from '../../Typography/Headline/Headline';\nimport { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';\nimport styles from './SegmentedControlOption.module.css';\n\nexport interface SegmentedControlOptionProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n HasRef<HTMLInputElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SegmentedControl\n */\nexport const SegmentedControlOption = ({\n getRef,\n className,\n style,\n children,\n getRootRef,\n ...restProps\n}: SegmentedControlOptionProps) => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n\n return (\n <label\n className={classNames(\n styles['SegmentedControlOption'],\n restProps.checked && styles['SegmentedControlOption--checked'],\n className,\n )}\n ref={getRootRef}\n style={style}\n >\n <VisuallyHidden\n {...restProps}\n Component=\"input\"\n getRootRef={getRef}\n type=\"radio\"\n onBlur={callMultiple(onBlur, restProps.onBlur)}\n onFocus={callMultiple(onFocus, restProps.onFocus)}\n />\n <Headline className={styles['SegmentedControlOption__content']} level=\"2\" weight=\"2\">\n {children}\n </Headline>\n <FocusVisible visible={focusVisible} mode=\"inside\" />\n </label>\n );\n};\n"],"names":["React","classNames","useFocusVisible","callMultiple","FocusVisible","Headline","VisuallyHidden","styles","SegmentedControlOption","getRef","className","style","children","getRootRef","restProps","focusVisible","onBlur","onFocus","label","checked","ref","Component","type","level","weight","visible","mode"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,YAAY,QAAQ,4BAA4B;AAEzD,SAASC,YAAY,QAAQ,kCAAkC;AAC/D,SAASC,QAAQ,QAAQ,qCAAqC;AAC9D,SAASC,cAAc,QAAQ,sCAAsC;AACrE,OAAOC,YAAY,sCAAsC;AAOzD;;CAEC,GACD,OAAO,MAAMC,yBAAyB,CAAC,EACrCC,MAAM,EACNC,SAAS,EACTC,KAAK,EACLC,QAAQ,EACRC,UAAU,EACV,GAAGC,WACyB;IAC5B,MAAM,EAAEC,YAAY,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGf;IAE1C,qBACE,oBAACgB;QACCR,WAAWT,WACTM,MAAM,CAAC,yBAAyB,EAChCO,UAAUK,OAAO,IAAIZ,MAAM,CAAC,kCAAkC,EAC9DG;QAEFU,KAAKP;QACLF,OAAOA;qBAEP,oBAACL;QACE,GAAGQ,SAAS;QACbO,WAAU;QACVR,YAAYJ;QACZa,MAAK;QACLN,QAAQb,aAAaa,QAAQF,UAAUE,MAAM;QAC7CC,SAASd,aAAac,SAASH,UAAUG,OAAO;sBAElD,oBAACZ;QAASK,WAAWH,MAAM,CAAC,kCAAkC;QAAEgB,OAAM;QAAIC,QAAO;OAC9EZ,yBAEH,oBAACR;QAAaqB,SAASV;QAAcW,MAAK;;AAGhD,EAAE"}
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
- import { HasAlign, HasRootRef } from '../../types';
2
+ import { HasAlign, HTMLAttributesWithRootRef } from '../../types';
3
3
  import { FormFieldProps } from '../FormField/FormField';
4
4
  import type { SelectType } from '../Select/Select';
5
- export interface SelectMimicryProps extends React.HTMLAttributes<HTMLElement>, HasAlign, HasRootRef<HTMLElement>, Pick<FormFieldProps, 'before' | 'after' | 'status'> {
5
+ export interface SelectMimicryProps extends HTMLAttributesWithRootRef<HTMLElement>, HasAlign, Pick<FormFieldProps, 'before' | 'after' | 'status'> {
6
6
  multiline?: boolean;
7
7
  disabled?: boolean;
8
8
  selectType?: SelectType;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SelectMimicry/SelectMimicry.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAutoFocus } from '../../hooks/useAutoFocus';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport { getFormFieldModeFromSelectType } from '../../lib/select';\nimport { HasAlign, HasRootRef } from '../../types';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport type { SelectType } from '../Select/Select';\nimport { SelectTypography } from '../SelectTypography/SelectTypography';\nimport styles from '../Select/Select.module.css';\n\nconst sizeYClassNames = {\n none: styles['Select--sizeY-none'],\n [SizeType.COMPACT]: styles['Select--sizeY-compact'],\n};\n\nexport interface SelectMimicryProps\n extends React.HTMLAttributes<HTMLElement>,\n HasAlign,\n HasRootRef<HTMLElement>,\n Pick<FormFieldProps, 'before' | 'after' | 'status'> {\n multiline?: boolean;\n disabled?: boolean;\n selectType?: SelectType;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SelectMimicry\n */\nexport const SelectMimicry = ({\n tabIndex = 0,\n placeholder,\n children,\n align,\n getRootRef,\n multiline,\n disabled,\n onClick,\n before,\n after = <DropdownIcon />,\n selectType = 'default',\n status,\n className,\n autoFocus,\n ...restProps\n}: SelectMimicryProps) => {\n const rootRef = useExternRef(getRootRef);\n\n const { sizeY = 'none' } = useAdaptivity();\n const title = children || placeholder;\n\n useAutoFocus(rootRef, autoFocus);\n\n return (\n <FormField\n {...restProps}\n tabIndex={disabled ? undefined : tabIndex}\n className={classNames(\n styles['Select'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n !children && styles['Select--empty'],\n multiline && styles['Select--multiline'],\n align === 'center' && styles['Select--align-center'],\n align === 'right' && styles['Select--align-right'],\n before && styles['Select--hasBefore'],\n className,\n )}\n getRootRef={rootRef}\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n before={before}\n after={after}\n mode={getFormFieldModeFromSelectType(selectType)}\n status={status}\n >\n <div className={styles['Select__container']}>\n <SelectTypography selectType={selectType} className={styles['Select__title']}>\n {title}\n </SelectTypography>\n </div>\n </FormField>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useAutoFocus","useExternRef","SizeType","getFormFieldModeFromSelectType","DropdownIcon","FormField","SelectTypography","styles","sizeYClassNames","none","COMPACT","SelectMimicry","tabIndex","placeholder","children","align","getRootRef","multiline","disabled","onClick","before","after","selectType","status","className","autoFocus","restProps","rootRef","sizeY","title","undefined","REGULAR","mode","div"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,8BAA8B,QAAQ,mBAAmB;AAElE,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,SAAS,QAAwB,yBAAyB;AAEnE,SAASC,gBAAgB,QAAQ,uCAAuC;AACxE,OAAOC,YAAY,8BAA8B;AAEjD,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,qBAAqB;IAClC,CAACL,SAASQ,OAAO,CAAC,EAAEH,MAAM,CAAC,wBAAwB;AACrD;AAYA;;CAEC,GACD,OAAO,MAAMI,gBAAgB,CAAC,EAC5BC,WAAW,CAAC,EACZC,WAAW,EACXC,QAAQ,EACRC,KAAK,EACLC,UAAU,EACVC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,MAAM,EACNC,sBAAQ,oBAACjB,mBAAe,EACxBkB,aAAa,SAAS,EACtBC,MAAM,EACNC,SAAS,EACTC,SAAS,EACT,GAAGC,WACgB;IACnB,MAAMC,UAAU1B,aAAae;IAE7B,MAAM,EAAEY,QAAQ,MAAM,EAAE,GAAG7B;IAC3B,MAAM8B,QAAQf,YAAYD;IAE1Bb,aAAa2B,SAASF;IAEtB,qBACE,oBAACpB;QACE,GAAGqB,SAAS;QACbd,UAAUM,WAAWY,YAAYlB;QACjCY,WAAW1B,WACTS,MAAM,CAAC,SAAS,EAChBqB,UAAU1B,SAAS6B,OAAO,IAAIvB,eAAe,CAACoB,MAAM,EACpD,CAACd,YAAYP,MAAM,CAAC,gBAAgB,EACpCU,aAAaV,MAAM,CAAC,oBAAoB,EACxCQ,UAAU,YAAYR,MAAM,CAAC,uBAAuB,EACpDQ,UAAU,WAAWR,MAAM,CAAC,sBAAsB,EAClDa,UAAUb,MAAM,CAAC,oBAAoB,EACrCiB;QAEFR,YAAYW;QACZR,SAASD,WAAWY,YAAYX;QAChCD,UAAUA;QACVE,QAAQA;QACRC,OAAOA;QACPW,MAAM7B,+BAA+BmB;QACrCC,QAAQA;qBAER,oBAACU;QAAIT,WAAWjB,MAAM,CAAC,oBAAoB;qBACzC,oBAACD;QAAiBgB,YAAYA;QAAYE,WAAWjB,MAAM,CAAC,gBAAgB;OACzEsB;AAKX,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/SelectMimicry/SelectMimicry.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAutoFocus } from '../../hooks/useAutoFocus';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport { getFormFieldModeFromSelectType } from '../../lib/select';\nimport { HasAlign, HTMLAttributesWithRootRef } from '../../types';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport type { SelectType } from '../Select/Select';\nimport { SelectTypography } from '../SelectTypography/SelectTypography';\nimport styles from '../Select/Select.module.css';\n\nconst sizeYClassNames = {\n none: styles['Select--sizeY-none'],\n [SizeType.COMPACT]: styles['Select--sizeY-compact'],\n};\n\nexport interface SelectMimicryProps\n extends HTMLAttributesWithRootRef<HTMLElement>,\n HasAlign,\n Pick<FormFieldProps, 'before' | 'after' | 'status'> {\n multiline?: boolean;\n disabled?: boolean;\n selectType?: SelectType;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SelectMimicry\n */\nexport const SelectMimicry = ({\n tabIndex = 0,\n placeholder,\n children,\n align,\n getRootRef,\n multiline,\n disabled,\n onClick,\n before,\n after = <DropdownIcon />,\n selectType = 'default',\n status,\n className,\n autoFocus,\n ...restProps\n}: SelectMimicryProps) => {\n const rootRef = useExternRef(getRootRef);\n\n const { sizeY = 'none' } = useAdaptivity();\n const title = children || placeholder;\n\n useAutoFocus(rootRef, autoFocus);\n\n return (\n <FormField\n {...restProps}\n tabIndex={disabled ? undefined : tabIndex}\n className={classNames(\n styles['Select'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n !children && styles['Select--empty'],\n multiline && styles['Select--multiline'],\n align === 'center' && styles['Select--align-center'],\n align === 'right' && styles['Select--align-right'],\n before && styles['Select--hasBefore'],\n className,\n )}\n getRootRef={rootRef}\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n before={before}\n after={after}\n mode={getFormFieldModeFromSelectType(selectType)}\n status={status}\n >\n <div className={styles['Select__container']}>\n <SelectTypography selectType={selectType} className={styles['Select__title']}>\n {title}\n </SelectTypography>\n </div>\n </FormField>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useAutoFocus","useExternRef","SizeType","getFormFieldModeFromSelectType","DropdownIcon","FormField","SelectTypography","styles","sizeYClassNames","none","COMPACT","SelectMimicry","tabIndex","placeholder","children","align","getRootRef","multiline","disabled","onClick","before","after","selectType","status","className","autoFocus","restProps","rootRef","sizeY","title","undefined","REGULAR","mode","div"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,8BAA8B,QAAQ,mBAAmB;AAElE,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,SAAS,QAAwB,yBAAyB;AAEnE,SAASC,gBAAgB,QAAQ,uCAAuC;AACxE,OAAOC,YAAY,8BAA8B;AAEjD,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,qBAAqB;IAClC,CAACL,SAASQ,OAAO,CAAC,EAAEH,MAAM,CAAC,wBAAwB;AACrD;AAWA;;CAEC,GACD,OAAO,MAAMI,gBAAgB,CAAC,EAC5BC,WAAW,CAAC,EACZC,WAAW,EACXC,QAAQ,EACRC,KAAK,EACLC,UAAU,EACVC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,MAAM,EACNC,sBAAQ,oBAACjB,mBAAe,EACxBkB,aAAa,SAAS,EACtBC,MAAM,EACNC,SAAS,EACTC,SAAS,EACT,GAAGC,WACgB;IACnB,MAAMC,UAAU1B,aAAae;IAE7B,MAAM,EAAEY,QAAQ,MAAM,EAAE,GAAG7B;IAC3B,MAAM8B,QAAQf,YAAYD;IAE1Bb,aAAa2B,SAASF;IAEtB,qBACE,oBAACpB;QACE,GAAGqB,SAAS;QACbd,UAAUM,WAAWY,YAAYlB;QACjCY,WAAW1B,WACTS,MAAM,CAAC,SAAS,EAChBqB,UAAU1B,SAAS6B,OAAO,IAAIvB,eAAe,CAACoB,MAAM,EACpD,CAACd,YAAYP,MAAM,CAAC,gBAAgB,EACpCU,aAAaV,MAAM,CAAC,oBAAoB,EACxCQ,UAAU,YAAYR,MAAM,CAAC,uBAAuB,EACpDQ,UAAU,WAAWR,MAAM,CAAC,sBAAsB,EAClDa,UAAUb,MAAM,CAAC,oBAAoB,EACrCiB;QAEFR,YAAYW;QACZR,SAASD,WAAWY,YAAYX;QAChCD,UAAUA;QACVE,QAAQA;QACRC,OAAOA;QACPW,MAAM7B,+BAA+BmB;QACrCC,QAAQA;qBAER,oBAACU;QAAIT,WAAWjB,MAAM,CAAC,oBAAoB;qBACzC,oBAACD;QAAiBgB,YAAYA;QAAYE,WAAWjB,MAAM,CAAC,gBAAgB;OACzEsB;AAKX,EAAE"}
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
- import { HasChildren } from '../../types';
2
+ import { HasChildren, HTMLAttributesWithRootRef } from '../../types';
3
3
  import type { SelectType } from '../Select/Select';
4
- export interface SelectTypographyProps extends React.HTMLAttributes<HTMLSpanElement>, HasChildren {
4
+ export interface SelectTypographyProps extends HTMLAttributesWithRootRef<HTMLSpanElement>, HasChildren {
5
5
  selectType?: SelectType;
6
6
  }
7
7
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SelectTypography/SelectTypography.tsx"],"sourcesContent":["import * as React from 'react';\nimport { HasChildren } from '../../types';\nimport type { SelectType } from '../Select/Select';\nimport { Text } from '../Typography/Text/Text';\n\nexport interface SelectTypographyProps extends React.HTMLAttributes<HTMLSpanElement>, HasChildren {\n selectType?: SelectType;\n}\n\n/**\n * @private\n */\nexport const SelectTypography = ({\n selectType = 'default',\n children,\n ...restProps\n}: SelectTypographyProps) => {\n return (\n <Text weight={selectType === 'accent' ? '2' : '3'} {...restProps}>\n {children}\n </Text>\n );\n};\n"],"names":["React","Text","SelectTypography","selectType","children","restProps","weight"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAG/B,SAASC,IAAI,QAAQ,0BAA0B;AAM/C;;CAEC,GACD,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,aAAa,SAAS,EACtBC,QAAQ,EACR,GAAGC,WACmB;IACtB,qBACE,oBAACJ;QAAKK,QAAQH,eAAe,WAAW,MAAM;QAAM,GAAGE,SAAS;OAC7DD;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/SelectTypography/SelectTypography.tsx"],"sourcesContent":["import * as React from 'react';\nimport { HasChildren, HTMLAttributesWithRootRef } from '../../types';\nimport type { SelectType } from '../Select/Select';\nimport { Text } from '../Typography/Text/Text';\n\nexport interface SelectTypographyProps\n extends HTMLAttributesWithRootRef<HTMLSpanElement>,\n HasChildren {\n selectType?: SelectType;\n}\n\n/**\n * @private\n */\nexport const SelectTypography = ({\n selectType = 'default',\n children,\n ...restProps\n}: SelectTypographyProps) => {\n return (\n <Text weight={selectType === 'accent' ? '2' : '3'} {...restProps}>\n {children}\n </Text>\n );\n};\n"],"names":["React","Text","SelectTypography","selectType","children","restProps","weight"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAG/B,SAASC,IAAI,QAAQ,0BAA0B;AAQ/C;;CAEC,GACD,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,aAAa,SAAS,EACtBC,QAAQ,EACR,GAAGC,WACmB;IACtB,qBACE,oBAACJ;QAAKK,QAAQH,eAAe,WAAW,MAAM;QAAM,GAAGE,SAAS;OAC7DD;AAGP,EAAE"}
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
- export interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
2
+ import { HTMLAttributesWithRootRef } from '../../types';
3
+ export interface SeparatorProps extends HTMLAttributesWithRootRef<HTMLDivElement> {
3
4
  /**
4
5
  * С этим свойством компонент не будет иметь отступы слева и справа
5
6
  */
@@ -8,4 +9,4 @@ export interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
8
9
  /**
9
10
  * @see https://vkcom.github.io/VKUI/#/Separator
10
11
  */
11
- export declare const Separator: ({ wide, className, ...restProps }: SeparatorProps) => React.JSX.Element;
12
+ export declare const Separator: ({ wide, ...restProps }: SeparatorProps) => React.JSX.Element;
@@ -1,11 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import { classNames } from '@vkontakte/vkjs';
3
+ import { RootComponent } from '../RootComponent/RootComponent';
3
4
  import styles from './Separator.module.css';
4
5
  /**
5
6
  * @see https://vkcom.github.io/VKUI/#/Separator
6
- */ export const Separator = ({ wide, className, ...restProps })=>/*#__PURE__*/ React.createElement("div", {
7
+ */ export const Separator = ({ wide, ...restProps })=>/*#__PURE__*/ React.createElement(RootComponent, {
7
8
  ...restProps,
8
- className: classNames(styles['Separator'], !wide && styles['Separator--padded'], className)
9
+ baseClassName: classNames(styles['Separator'], !wide && styles['Separator--padded'])
9
10
  }, /*#__PURE__*/ React.createElement("hr", {
10
11
  className: styles['Separator__in']
11
12
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Separator/Separator.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport styles from './Separator.module.css';\n\nexport interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * С этим свойством компонент не будет иметь отступы слева и справа\n */\n wide?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Separator\n */\nexport const Separator = ({ wide, className, ...restProps }: SeparatorProps) => (\n <div\n {...restProps}\n className={classNames(styles['Separator'], !wide && styles['Separator--padded'], className)}\n >\n <hr className={styles['Separator__in']} />\n </div>\n);\n"],"names":["React","classNames","styles","Separator","wide","className","restProps","div","hr"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,OAAOC,YAAY,yBAAyB;AAS5C;;CAEC,GACD,OAAO,MAAMC,YAAY,CAAC,EAAEC,IAAI,EAAEC,SAAS,EAAE,GAAGC,WAA2B,iBACzE,oBAACC;QACE,GAAGD,SAAS;QACbD,WAAWJ,WAAWC,MAAM,CAAC,YAAY,EAAE,CAACE,QAAQF,MAAM,CAAC,oBAAoB,EAAEG;qBAEjF,oBAACG;QAAGH,WAAWH,MAAM,CAAC,gBAAgB;QAExC"}
1
+ {"version":3,"sources":["../../../../src/components/Separator/Separator.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Separator.module.css';\n\nexport interface SeparatorProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * С этим свойством компонент не будет иметь отступы слева и справа\n */\n wide?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Separator\n */\nexport const Separator = ({ wide, ...restProps }: SeparatorProps) => (\n <RootComponent\n {...restProps}\n baseClassName={classNames(styles['Separator'], !wide && styles['Separator--padded'])}\n >\n <hr className={styles['Separator__in']} />\n </RootComponent>\n);\n"],"names":["React","classNames","RootComponent","styles","Separator","wide","restProps","baseClassName","hr","className"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,OAAOC,YAAY,yBAAyB;AAS5C;;CAEC,GACD,OAAO,MAAMC,YAAY,CAAC,EAAEC,IAAI,EAAE,GAAGC,WAA2B,iBAC9D,oBAACJ;QACE,GAAGI,SAAS;QACbC,eAAeN,WAAWE,MAAM,CAAC,YAAY,EAAE,CAACE,QAAQF,MAAM,CAAC,oBAAoB;qBAEnF,oBAACK;QAAGC,WAAWN,MAAM,CAAC,gBAAgB;QAExC"}
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
- import { HasRootRef } from '../../types';
2
+ import { HTMLAttributesWithRootRef } from '../../types';
3
3
  import { type TouchEvent } from '../Touch/Touch';
4
- export interface SliderBaseProps extends HasRootRef<HTMLDivElement>, Omit<React.HTMLAttributes<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {
4
+ export interface SliderBaseProps extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {
5
5
  min?: number;
6
6
  max?: number;
7
7
  step?: number;
@@ -20,6 +20,7 @@ export interface SliderBaseProps extends HasRootRef<HTMLDivElement>, Omit<React.
20
20
  * > Перебивает `aria-valuetext`.
21
21
  */
22
22
  getAriaValueText?(value: number, index: number): string;
23
+ withTooltip?: boolean;
23
24
  }
24
25
  export interface SliderProps extends SliderBaseProps {
25
26
  multiple?: false;
@@ -42,4 +43,4 @@ export interface SliderMultipleProps extends SliderBaseProps {
42
43
  /**
43
44
  * @see https://vkcom.github.io/VKUI/#/Slider
44
45
  */
45
- export declare const Slider: ({ step, min, max, value: valueProp, multiple: multipleProp, defaultValue, disabled, className, getRootRef, getAriaLabel, getAriaValueText, onChange, ...restProps }: SliderProps | SliderMultipleProps) => React.JSX.Element;
46
+ export declare const Slider: ({ step, min, max, value: valueProp, multiple: multipleProp, defaultValue, disabled, className, getRootRef, getAriaLabel, getAriaValueText, onChange, withTooltip, ...restProps }: SliderProps | SliderMultipleProps) => React.JSX.Element;
@@ -18,7 +18,7 @@ const sizeYClassNames = {
18
18
  step, min = 0, max = 100, value: valueProp, multiple: multipleProp, defaultValue = multipleProp ? [
19
19
  min,
20
20
  max
21
- ] : min, disabled, className, getRootRef, getAriaLabel, getAriaValueText, onChange, ...restProps })=>{
21
+ ] : min, disabled, className, getRootRef, getAriaLabel, getAriaValueText, onChange, withTooltip, ...restProps })=>{
22
22
  const { sizeY = 'none' } = useAdaptivity();
23
23
  const isControlled = valueProp !== undefined;
24
24
  const [localValue, setValue] = React.useState(defaultValue);
@@ -135,6 +135,7 @@ step, min = 0, max = 100, value: valueProp, multiple: multipleProp, defaultValue
135
135
  // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.
136
136
  zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined
137
137
  },
138
+ withTooltip: withTooltip,
138
139
  inputProps: {
139
140
  'data-type': 'start',
140
141
  'ref': thumbStartInputRef,
@@ -154,6 +155,7 @@ step, min = 0, max = 100, value: valueProp, multiple: multipleProp, defaultValue
154
155
  style: {
155
156
  left: `${endReversedValueInPercent}%`
156
157
  },
158
+ withTooltip: withTooltip,
157
159
  inputProps: {
158
160
  'data-type': 'end',
159
161
  'ref': thumbEndInputRef,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport { HasRootRef } from '../../types';\nimport { Touch, type TouchEvent, type TouchEventHandler } from '../Touch/Touch';\nimport { SliderThumb } from './SliderThumb/SliderThumb';\nimport {\n extractSliderAriaAttributesFromRestProps,\n getDraggingTypeByTargetDataset,\n isMultipleValues,\n offsetToValue,\n snapDirection,\n toPercent,\n updateInternalStateValue,\n updateInternalStateValueByNativeChange,\n} from './helpers';\nimport type { InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst sizeYClassNames = {\n none: styles['Slider--sizeY-none'],\n [SizeType.COMPACT]: styles['Slider--sizeY-compact'],\n};\n\nexport interface SliderBaseProps\n extends HasRootRef<HTMLDivElement>,\n Omit<React.HTMLAttributes<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n /**\n * Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.\n *\n * > Перебивает `aria-label`.\n */\n getAriaLabel?(index: number): string;\n /**\n * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.\n *\n * Полезно при использовании компонента как неконтролируемого.\n *\n * > Перебивает `aria-valuetext`.\n */\n getAriaValueText?(value: number, index: number): string;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n multiple?: false;\n value?: number;\n defaultValue?: number;\n /**\n * TODO [>=6]: Расширить тип `event` с `React.ChangeEvent`.\n */\n onChange?(value: number, event: TouchEvent): void;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n multiple: true;\n value?: [number, number];\n defaultValue?: [number, number];\n /**\n * TODO [>=6]: Расширить тип `event` с `React.ChangeEvent`.\n */\n onChange?(value: [number, number], event: TouchEvent): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Slider\n */\nexport const Slider = ({\n // TODO [>=6]: Выставить 1 как значение по умолчанию, чтобы было как в браузерном <input type=\"range\" />\n step,\n min = 0,\n max = 100,\n value: valueProp,\n multiple: multipleProp,\n defaultValue = multipleProp ? [min, max] : min,\n disabled,\n className,\n getRootRef,\n getAriaLabel,\n getAriaValueText,\n onChange,\n ...restProps\n}: SliderProps | SliderMultipleProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n const isControlled = valueProp !== undefined;\n const [localValue, setValue] = React.useState(defaultValue);\n\n const value = React.useMemo<InternalValueState>(() => {\n const resolvedValue = isControlled ? valueProp : localValue;\n return Array.isArray(resolvedValue)\n ? [clamp(resolvedValue[0], min, max), clamp(resolvedValue[1], min, max)]\n : [clamp(resolvedValue, min, max), null];\n }, [isControlled, valueProp, localValue, min, max]);\n\n const [startValue, endValue] = value;\n const multiple = multipleProp && endValue !== null;\n const startValueInPercent = toPercent(startValue, min, max);\n const endReversedValueInPercent = multiple ? toPercent(endValue, min, max) : 0;\n\n const gesture = React.useRef<InternalGestureRef>({\n dragging: null,\n startX: 0,\n containerWidth: 0,\n }).current;\n const thumbsContainerRef = useExternRef(getRootRef);\n const thumbStartInputRef = React.useRef<HTMLInputElement>(null);\n const thumbEndInputRef = React.useRef<HTMLInputElement>(null);\n\n const { ariaLabel, ariaValueText, ariaLabelledBy, ...restPropsWithoutAriaAttributes } =\n extractSliderAriaAttributesFromRestProps(restProps);\n\n const changeValue = (nextValue: InternalValueState, event: TouchEvent) => {\n if (disabled || (value[0] === nextValue[0] && value[1] === nextValue[1])) {\n return;\n }\n\n if (multipleProp) {\n if (isMultipleValues(nextValue)) {\n !isControlled && setValue(nextValue);\n onChange && onChange(nextValue, event);\n }\n } else {\n !isControlled && setValue(nextValue[0]);\n onChange && onChange(nextValue[0], event);\n }\n };\n\n const handlePointerStart: TouchEventHandler = (event: TouchEvent) => {\n if (!thumbsContainerRef.current) {\n return;\n }\n\n const { left: nextContainerX, width: nextContainerWidth } =\n thumbsContainerRef.current.getBoundingClientRect();\n\n // @ts-expect-error: TS2345 в VKUITouchEvent плохо описаны типы. `target` это просто `EventTarget`.\n const foundDraggingType = getDraggingTypeByTargetDataset(event.originalEvent.target);\n\n const nextStartX = event.startX - nextContainerX;\n const nextValue = offsetToValue(nextStartX, nextContainerWidth, min, max, step);\n const nextDragging = snapDirection(value, nextValue, foundDraggingType);\n\n gesture.dragging = nextDragging;\n gesture.containerWidth = nextContainerWidth;\n gesture.startX = nextStartX;\n\n const updatedInternalStateValue = updateInternalStateValue(\n value,\n nextValue,\n min,\n max,\n nextDragging,\n );\n\n const [nextStartValue, nextEndValue] = updatedInternalStateValue;\n if (\n thumbStartInputRef.current &&\n (foundDraggingType === 'start' ||\n (nextStartValue !== startValue && nextEndValue === endValue))\n ) {\n thumbStartInputRef.current.focus();\n event.originalEvent.preventDefault();\n } else if (\n thumbEndInputRef.current &&\n (foundDraggingType === 'end' || (nextEndValue !== endValue && nextStartValue === startValue))\n ) {\n thumbEndInputRef.current.focus();\n event.originalEvent.preventDefault();\n }\n\n changeValue(updatedInternalStateValue, event);\n\n event.originalEvent.stopPropagation();\n };\n\n const handlePointerMove: TouchEventHandler = (event: TouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + shiftX;\n const nextValue = offsetToValue(nextStartX, containerWidth, min, max, step);\n\n changeValue(updateInternalStateValue(value, nextValue, min, max, dragging), event);\n\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n };\n\n const handlePointerEnd: TouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n };\n\n const handleChangeByNativeInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n changeValue(\n updateInternalStateValueByNativeChange(\n value,\n Number(event.target.value),\n getDraggingTypeByTargetDataset(event.target),\n ),\n // @ts-expect-error: TS2345 сейчас тип расширить не получится (см. TODO в описании `onChange`)\n event,\n );\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles['Slider'],\n disabled && styles['Slider--disabled'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n className,\n )}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles['Slider__track']} />\n <div\n className={styles['Slider__track-fill']}\n style={\n multiple\n ? { left: `${startValueInPercent}%`, right: `${100 - endReversedValueInPercent}%` }\n : { width: `${startValueInPercent}%` }\n }\n />\n <div ref={thumbsContainerRef} className={styles['Slider__thumbs']}>\n <SliderThumb\n data-type=\"start\"\n className={styles['Slider__thumb']}\n style={{\n left: `${startValueInPercent}%`,\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n inputProps={{\n 'data-type': 'start',\n 'ref': thumbStartInputRef,\n 'step': step,\n 'min': min,\n 'value': startValue,\n 'max': multiple ? endValue : max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(0) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(startValue, 0) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={styles['Slider__thumb']}\n style={{ left: `${endReversedValueInPercent}%` }}\n inputProps={{\n 'data-type': 'end',\n 'ref': thumbEndInputRef,\n 'step': step,\n 'min': startValue,\n 'value': endValue,\n 'max': max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(1) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(endValue, 1) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","useAdaptivity","useExternRef","SizeType","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","styles","sizeYClassNames","none","COMPACT","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","onChange","restProps","sizeY","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","gesture","useRef","dragging","startX","containerWidth","current","thumbsContainerRef","thumbStartInputRef","thumbEndInputRef","ariaLabel","ariaValueText","ariaLabelledBy","restPropsWithoutAriaAttributes","changeValue","nextValue","event","handlePointerStart","left","nextContainerX","width","nextContainerWidth","getBoundingClientRect","foundDraggingType","originalEvent","target","nextStartX","nextDragging","updatedInternalStateValue","nextStartValue","nextEndValue","focus","preventDefault","stopPropagation","handlePointerMove","shiftX","handlePointerEnd","handleChangeByNativeInput","Number","data-value","REGULAR","onStart","onMove","onEnd","div","style","right","ref","data-type","zIndex","inputProps"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { Touch, type TouchEvent, type TouchEventHandler } from '../Touch/Touch';\nimport { SliderThumb } from './SliderThumb/SliderThumb';\nimport {\n extractSliderAriaAttributesFromRestProps,\n getDraggingTypeByTargetDataset,\n isMultipleValues,\n offsetToValue,\n snapDirection,\n toPercent,\n updateInternalStateValue,\n updateInternalStateValueByNativeChange,\n} from './helpers';\nimport type { InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst sizeYClassNames = {\n none: styles['Slider--sizeY-none'],\n [SizeType.COMPACT]: styles['Slider--sizeY-compact'],\n};\n\nexport interface SliderBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n /**\n * Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.\n *\n * > Перебивает `aria-label`.\n */\n getAriaLabel?(index: number): string;\n /**\n * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.\n *\n * Полезно при использовании компонента как неконтролируемого.\n *\n * > Перебивает `aria-valuetext`.\n */\n getAriaValueText?(value: number, index: number): string;\n withTooltip?: boolean;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n multiple?: false;\n value?: number;\n defaultValue?: number;\n /**\n * TODO [>=6]: Расширить тип `event` с `React.ChangeEvent`.\n */\n onChange?(value: number, event: TouchEvent): void;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n multiple: true;\n value?: [number, number];\n defaultValue?: [number, number];\n /**\n * TODO [>=6]: Расширить тип `event` с `React.ChangeEvent`.\n */\n onChange?(value: [number, number], event: TouchEvent): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Slider\n */\nexport const Slider = ({\n // TODO [>=6]: Выставить 1 как значение по умолчанию, чтобы было как в браузерном <input type=\"range\" />\n step,\n min = 0,\n max = 100,\n value: valueProp,\n multiple: multipleProp,\n defaultValue = multipleProp ? [min, max] : min,\n disabled,\n className,\n getRootRef,\n getAriaLabel,\n getAriaValueText,\n onChange,\n withTooltip,\n ...restProps\n}: SliderProps | SliderMultipleProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n const isControlled = valueProp !== undefined;\n const [localValue, setValue] = React.useState(defaultValue);\n\n const value = React.useMemo<InternalValueState>(() => {\n const resolvedValue = isControlled ? valueProp : localValue;\n return Array.isArray(resolvedValue)\n ? [clamp(resolvedValue[0], min, max), clamp(resolvedValue[1], min, max)]\n : [clamp(resolvedValue, min, max), null];\n }, [isControlled, valueProp, localValue, min, max]);\n\n const [startValue, endValue] = value;\n const multiple = multipleProp && endValue !== null;\n const startValueInPercent = toPercent(startValue, min, max);\n const endReversedValueInPercent = multiple ? toPercent(endValue, min, max) : 0;\n\n const gesture = React.useRef<InternalGestureRef>({\n dragging: null,\n startX: 0,\n containerWidth: 0,\n }).current;\n const thumbsContainerRef = useExternRef(getRootRef);\n const thumbStartInputRef = React.useRef<HTMLInputElement>(null);\n const thumbEndInputRef = React.useRef<HTMLInputElement>(null);\n\n const { ariaLabel, ariaValueText, ariaLabelledBy, ...restPropsWithoutAriaAttributes } =\n extractSliderAriaAttributesFromRestProps(restProps);\n\n const changeValue = (nextValue: InternalValueState, event: TouchEvent) => {\n if (disabled || (value[0] === nextValue[0] && value[1] === nextValue[1])) {\n return;\n }\n\n if (multipleProp) {\n if (isMultipleValues(nextValue)) {\n !isControlled && setValue(nextValue);\n onChange && onChange(nextValue, event);\n }\n } else {\n !isControlled && setValue(nextValue[0]);\n onChange && onChange(nextValue[0], event);\n }\n };\n\n const handlePointerStart: TouchEventHandler = (event: TouchEvent) => {\n if (!thumbsContainerRef.current) {\n return;\n }\n\n const { left: nextContainerX, width: nextContainerWidth } =\n thumbsContainerRef.current.getBoundingClientRect();\n\n // @ts-expect-error: TS2345 в VKUITouchEvent плохо описаны типы. `target` это просто `EventTarget`.\n const foundDraggingType = getDraggingTypeByTargetDataset(event.originalEvent.target);\n\n const nextStartX = event.startX - nextContainerX;\n const nextValue = offsetToValue(nextStartX, nextContainerWidth, min, max, step);\n const nextDragging = snapDirection(value, nextValue, foundDraggingType);\n\n gesture.dragging = nextDragging;\n gesture.containerWidth = nextContainerWidth;\n gesture.startX = nextStartX;\n\n const updatedInternalStateValue = updateInternalStateValue(\n value,\n nextValue,\n min,\n max,\n nextDragging,\n );\n\n const [nextStartValue, nextEndValue] = updatedInternalStateValue;\n if (\n thumbStartInputRef.current &&\n (foundDraggingType === 'start' ||\n (nextStartValue !== startValue && nextEndValue === endValue))\n ) {\n thumbStartInputRef.current.focus();\n event.originalEvent.preventDefault();\n } else if (\n thumbEndInputRef.current &&\n (foundDraggingType === 'end' || (nextEndValue !== endValue && nextStartValue === startValue))\n ) {\n thumbEndInputRef.current.focus();\n event.originalEvent.preventDefault();\n }\n\n changeValue(updatedInternalStateValue, event);\n\n event.originalEvent.stopPropagation();\n };\n\n const handlePointerMove: TouchEventHandler = (event: TouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + shiftX;\n const nextValue = offsetToValue(nextStartX, containerWidth, min, max, step);\n\n changeValue(updateInternalStateValue(value, nextValue, min, max, dragging), event);\n\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n };\n\n const handlePointerEnd: TouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n };\n\n const handleChangeByNativeInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n changeValue(\n updateInternalStateValueByNativeChange(\n value,\n Number(event.target.value),\n getDraggingTypeByTargetDataset(event.target),\n ),\n // @ts-expect-error: TS2345 сейчас тип расширить не получится (см. TODO в описании `onChange`)\n event,\n );\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles['Slider'],\n disabled && styles['Slider--disabled'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n className,\n )}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles['Slider__track']} />\n <div\n className={styles['Slider__track-fill']}\n style={\n multiple\n ? { left: `${startValueInPercent}%`, right: `${100 - endReversedValueInPercent}%` }\n : { width: `${startValueInPercent}%` }\n }\n />\n <div ref={thumbsContainerRef} className={styles['Slider__thumbs']}>\n <SliderThumb\n data-type=\"start\"\n className={styles['Slider__thumb']}\n style={{\n left: `${startValueInPercent}%`,\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'start',\n 'ref': thumbStartInputRef,\n 'step': step,\n 'min': min,\n 'value': startValue,\n 'max': multiple ? endValue : max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(0) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(startValue, 0) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={styles['Slider__thumb']}\n style={{ left: `${endReversedValueInPercent}%` }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'end',\n 'ref': thumbEndInputRef,\n 'step': step,\n 'min': startValue,\n 'value': endValue,\n 'max': max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(1) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(endValue, 1) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","useAdaptivity","useExternRef","SizeType","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","styles","sizeYClassNames","none","COMPACT","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","onChange","withTooltip","restProps","sizeY","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","gesture","useRef","dragging","startX","containerWidth","current","thumbsContainerRef","thumbStartInputRef","thumbEndInputRef","ariaLabel","ariaValueText","ariaLabelledBy","restPropsWithoutAriaAttributes","changeValue","nextValue","event","handlePointerStart","left","nextContainerX","width","nextContainerWidth","getBoundingClientRect","foundDraggingType","originalEvent","target","nextStartX","nextDragging","updatedInternalStateValue","nextStartValue","nextEndValue","focus","preventDefault","stopPropagation","handlePointerMove","shiftX","handlePointerEnd","handleChangeByNativeInput","Number","data-value","REGULAR","onStart","onMove","onEnd","div","style","right","ref","data-type","zIndex","inputProps"],"mappings":"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"}
@@ -4,6 +4,7 @@ interface SliderThumbProps extends HasRootRef<HTMLSpanElement>, HasDataAttribute
4
4
  className?: string;
5
5
  style?: React.CSSProperties;
6
6
  inputProps?: React.InputHTMLAttributes<HTMLInputElement> & React.RefAttributes<HTMLInputElement> & HasDataAttribute;
7
+ withTooltip?: boolean;
7
8
  }
8
- export declare const SliderThumb: ({ className, getRootRef, inputProps, ...restProps }: SliderThumbProps) => React.JSX.Element;
9
+ export declare const SliderThumb: ({ className, getRootRef, inputProps, withTooltip, ...restProps }: SliderThumbProps) => React.JSX.Element;
9
10
  export {};
@@ -1,14 +1,55 @@
1
1
  import * as React from 'react';
2
2
  import { classNames } from '@vkontakte/vkjs';
3
+ import { useBooleanState } from '../../../hooks/useBooleanState';
4
+ import { useExternRef } from '../../../hooks/useExternRef';
3
5
  import { useFocusVisible } from '../../../hooks/useFocusVisible';
6
+ import { arrowMiddleware, convertFloatingDataToReactCSSProperties, flipMiddleware, offsetMiddleware, shiftMiddleware, useFloating } from '../../../lib/floating';
4
7
  import { FocusVisible } from '../../FocusVisible/FocusVisible';
8
+ import { TooltipBase } from '../../TooltipBase/TooltipBase';
5
9
  import styles from './SliderThumb.module.css';
6
- export const SliderThumb = ({ className, getRootRef, inputProps, ...restProps })=>{
10
+ export const SliderThumb = ({ className, getRootRef, inputProps, withTooltip, ...restProps })=>{
7
11
  const { focusVisible, onBlur, onFocus } = useFocusVisible(false);
8
- return /*#__PURE__*/ React.createElement("span", {
9
- ref: getRootRef,
10
- className: classNames(styles['SliderThumb'], focusVisible && styles['SliderThumb--focused'], className),
11
- ...restProps
12
+ const [arrowRef, setArrowRef] = React.useState(null);
13
+ const memoizedMiddlewares = React.useMemo(()=>{
14
+ return [
15
+ offsetMiddleware({
16
+ crossAxis: 0,
17
+ mainAxis: 15
18
+ }),
19
+ flipMiddleware(),
20
+ shiftMiddleware({
21
+ padding: 8
22
+ }),
23
+ arrowMiddleware({
24
+ element: arrowRef
25
+ })
26
+ ];
27
+ }, [
28
+ arrowRef
29
+ ]);
30
+ const { x: floatingDataX, y: floatingDataY, placement: resolvedPlacement, refs, strategy: floatingPositionStrategy, middlewareData: { arrow: arrowCoords }, update: updateTooltipPosition } = useFloating({
31
+ placement: 'top',
32
+ middleware: memoizedMiddlewares
33
+ });
34
+ const { value: isHovered, setTrue: setHoveredTrue, setFalse: setHoveredFalse } = useBooleanState(false);
35
+ const handleRootRef = useExternRef(getRootRef, refs.setReference);
36
+ const shouldShowTooltip = withTooltip && (focusVisible || isHovered);
37
+ const inputValue = inputProps && inputProps.value;
38
+ React.useEffect(function udpateTooltipPositionOnValueChange() {
39
+ if (shouldShowTooltip && inputValue !== 'undefined') {
40
+ updateTooltipPosition();
41
+ }
42
+ }, [
43
+ inputValue,
44
+ updateTooltipPosition,
45
+ shouldShowTooltip
46
+ ]);
47
+ return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("span", {
48
+ ...restProps,
49
+ ref: handleRootRef,
50
+ onMouseEnter: setHoveredTrue,
51
+ onMouseLeave: setHoveredFalse,
52
+ className: classNames(styles['SliderThumb'], focusVisible && styles['SliderThumb--focused'], className)
12
53
  }, /*#__PURE__*/ React.createElement("input", {
13
54
  ...inputProps,
14
55
  type: "range",
@@ -19,6 +60,14 @@ export const SliderThumb = ({ className, getRootRef, inputProps, ...restProps })
19
60
  }), /*#__PURE__*/ React.createElement(FocusVisible, {
20
61
  visible: focusVisible,
21
62
  mode: "outside"
63
+ })), shouldShowTooltip && /*#__PURE__*/ React.createElement(TooltipBase, {
64
+ appearance: "neutral",
65
+ getRootRef: refs.setFloating,
66
+ floatingStyle: convertFloatingDataToReactCSSProperties(floatingPositionStrategy, floatingDataX, floatingDataY),
67
+ arrowCoords: arrowCoords,
68
+ arrowPlacement: resolvedPlacement,
69
+ getArrowRef: setArrowRef,
70
+ text: inputValue
22
71
  }));
23
72
  };
24
73
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Slider/SliderThumb/SliderThumb.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useFocusVisible } from '../../../hooks/useFocusVisible';\nimport type { HasDataAttribute, HasRootRef } from '../../../types';\nimport { FocusVisible } from '../../FocusVisible/FocusVisible';\nimport styles from './SliderThumb.module.css';\n\ninterface SliderThumbProps extends HasRootRef<HTMLSpanElement>, HasDataAttribute {\n className?: string;\n style?: React.CSSProperties;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement> &\n React.RefAttributes<HTMLInputElement> &\n HasDataAttribute;\n}\n\nexport const SliderThumb = ({\n className,\n getRootRef,\n inputProps,\n ...restProps\n}: SliderThumbProps) => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible(false);\n\n return (\n <span\n ref={getRootRef}\n className={classNames(\n styles['SliderThumb'],\n focusVisible && styles['SliderThumb--focused'],\n className,\n )}\n {...restProps}\n >\n <input\n {...inputProps}\n type=\"range\"\n className={styles['SliderThumb__nativeInput']}\n aria-orientation=\"horizontal\"\n onBlur={onBlur}\n onFocus={onFocus}\n />\n <FocusVisible visible={focusVisible} mode=\"outside\" />\n </span>\n );\n};\n"],"names":["React","classNames","useFocusVisible","FocusVisible","styles","SliderThumb","className","getRootRef","inputProps","restProps","focusVisible","onBlur","onFocus","span","ref","input","type","aria-orientation","visible","mode"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,eAAe,QAAQ,iCAAiC;AAEjE,SAASC,YAAY,QAAQ,kCAAkC;AAC/D,OAAOC,YAAY,2BAA2B;AAU9C,OAAO,MAAMC,cAAc,CAAC,EAC1BC,SAAS,EACTC,UAAU,EACVC,UAAU,EACV,GAAGC,WACc;IACjB,MAAM,EAAEC,YAAY,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGV,gBAAgB;IAE1D,qBACE,oBAACW;QACCC,KAAKP;QACLD,WAAWL,WACTG,MAAM,CAAC,cAAc,EACrBM,gBAAgBN,MAAM,CAAC,uBAAuB,EAC9CE;QAED,GAAGG,SAAS;qBAEb,oBAACM;QACE,GAAGP,UAAU;QACdQ,MAAK;QACLV,WAAWF,MAAM,CAAC,2BAA2B;QAC7Ca,oBAAiB;QACjBN,QAAQA;QACRC,SAASA;sBAEX,oBAACT;QAAae,SAASR;QAAcS,MAAK;;AAGhD,EAAE"}
1
+ {"version":3,"sources":["../../../../../src/components/Slider/SliderThumb/SliderThumb.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useBooleanState } from '../../../hooks/useBooleanState';\nimport { useExternRef } from '../../../hooks/useExternRef';\nimport { useFocusVisible } from '../../../hooks/useFocusVisible';\nimport {\n arrowMiddleware,\n convertFloatingDataToReactCSSProperties,\n flipMiddleware,\n offsetMiddleware,\n shiftMiddleware,\n useFloating,\n} from '../../../lib/floating';\nimport type { HasDataAttribute, HasRootRef } from '../../../types';\nimport { FocusVisible } from '../../FocusVisible/FocusVisible';\nimport { TooltipBase } from '../../TooltipBase/TooltipBase';\nimport styles from './SliderThumb.module.css';\n\ninterface SliderThumbProps extends HasRootRef<HTMLSpanElement>, HasDataAttribute {\n className?: string;\n style?: React.CSSProperties;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement> &\n React.RefAttributes<HTMLInputElement> &\n HasDataAttribute;\n withTooltip?: boolean;\n}\n\nexport const SliderThumb = ({\n className,\n getRootRef,\n inputProps,\n withTooltip,\n ...restProps\n}: SliderThumbProps) => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible(false);\n const [arrowRef, setArrowRef] = React.useState<HTMLDivElement | null>(null);\n\n const memoizedMiddlewares = React.useMemo(() => {\n return [\n offsetMiddleware({\n crossAxis: 0,\n mainAxis: 15,\n }),\n flipMiddleware(),\n shiftMiddleware({ padding: 8 }),\n arrowMiddleware({\n element: arrowRef,\n }),\n ];\n }, [arrowRef]);\n\n const {\n x: floatingDataX,\n y: floatingDataY,\n placement: resolvedPlacement,\n refs,\n strategy: floatingPositionStrategy,\n middlewareData: { arrow: arrowCoords },\n update: updateTooltipPosition,\n } = useFloating({\n placement: 'top',\n middleware: memoizedMiddlewares,\n });\n\n const {\n value: isHovered,\n setTrue: setHoveredTrue,\n setFalse: setHoveredFalse,\n } = useBooleanState(false);\n\n const handleRootRef = useExternRef<HTMLSpanElement>(getRootRef, refs.setReference);\n\n const shouldShowTooltip = withTooltip && (focusVisible || isHovered);\n\n const inputValue = inputProps && inputProps.value;\n React.useEffect(\n function udpateTooltipPositionOnValueChange() {\n if (shouldShowTooltip && inputValue !== 'undefined') {\n updateTooltipPosition();\n }\n },\n [inputValue, updateTooltipPosition, shouldShowTooltip],\n );\n\n return (\n <React.Fragment>\n <span\n {...restProps}\n ref={handleRootRef}\n onMouseEnter={setHoveredTrue}\n onMouseLeave={setHoveredFalse}\n className={classNames(\n styles['SliderThumb'],\n focusVisible && styles['SliderThumb--focused'],\n className,\n )}\n >\n <input\n {...inputProps}\n type=\"range\"\n className={styles['SliderThumb__nativeInput']}\n aria-orientation=\"horizontal\"\n onBlur={onBlur}\n onFocus={onFocus}\n />\n <FocusVisible visible={focusVisible} mode=\"outside\" />\n </span>\n {shouldShowTooltip && (\n <TooltipBase\n appearance=\"neutral\"\n getRootRef={refs.setFloating}\n floatingStyle={convertFloatingDataToReactCSSProperties(\n floatingPositionStrategy,\n floatingDataX,\n floatingDataY,\n )}\n arrowCoords={arrowCoords}\n arrowPlacement={resolvedPlacement}\n getArrowRef={setArrowRef}\n text={inputValue}\n />\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","classNames","useBooleanState","useExternRef","useFocusVisible","arrowMiddleware","convertFloatingDataToReactCSSProperties","flipMiddleware","offsetMiddleware","shiftMiddleware","useFloating","FocusVisible","TooltipBase","styles","SliderThumb","className","getRootRef","inputProps","withTooltip","restProps","focusVisible","onBlur","onFocus","arrowRef","setArrowRef","useState","memoizedMiddlewares","useMemo","crossAxis","mainAxis","padding","element","x","floatingDataX","y","floatingDataY","placement","resolvedPlacement","refs","strategy","floatingPositionStrategy","middlewareData","arrow","arrowCoords","update","updateTooltipPosition","middleware","value","isHovered","setTrue","setHoveredTrue","setFalse","setHoveredFalse","handleRootRef","setReference","shouldShowTooltip","inputValue","useEffect","udpateTooltipPositionOnValueChange","Fragment","span","ref","onMouseEnter","onMouseLeave","input","type","aria-orientation","visible","mode","appearance","setFloating","floatingStyle","arrowPlacement","getArrowRef","text"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,YAAY,QAAQ,8BAA8B;AAC3D,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SACEC,eAAe,EACfC,uCAAuC,EACvCC,cAAc,EACdC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,QACN,wBAAwB;AAE/B,SAASC,YAAY,QAAQ,kCAAkC;AAC/D,SAASC,WAAW,QAAQ,gCAAgC;AAC5D,OAAOC,YAAY,2BAA2B;AAW9C,OAAO,MAAMC,cAAc,CAAC,EAC1BC,SAAS,EACTC,UAAU,EACVC,UAAU,EACVC,WAAW,EACX,GAAGC,WACc;IACjB,MAAM,EAAEC,YAAY,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGlB,gBAAgB;IAC1D,MAAM,CAACmB,UAAUC,YAAY,GAAGxB,MAAMyB,QAAQ,CAAwB;IAEtE,MAAMC,sBAAsB1B,MAAM2B,OAAO,CAAC;QACxC,OAAO;YACLnB,iBAAiB;gBACfoB,WAAW;gBACXC,UAAU;YACZ;YACAtB;YACAE,gBAAgB;gBAAEqB,SAAS;YAAE;YAC7BzB,gBAAgB;gBACd0B,SAASR;YACX;SACD;IACH,GAAG;QAACA;KAAS;IAEb,MAAM,EACJS,GAAGC,aAAa,EAChBC,GAAGC,aAAa,EAChBC,WAAWC,iBAAiB,EAC5BC,IAAI,EACJC,UAAUC,wBAAwB,EAClCC,gBAAgB,EAAEC,OAAOC,WAAW,EAAE,EACtCC,QAAQC,qBAAqB,EAC9B,GAAGnC,YAAY;QACd0B,WAAW;QACXU,YAAYpB;IACd;IAEA,MAAM,EACJqB,OAAOC,SAAS,EAChBC,SAASC,cAAc,EACvBC,UAAUC,eAAe,EAC1B,GAAGlD,gBAAgB;IAEpB,MAAMmD,gBAAgBlD,aAA8Ba,YAAYsB,KAAKgB,YAAY;IAEjF,MAAMC,oBAAoBrC,eAAgBE,CAAAA,gBAAgB4B,SAAQ;IAElE,MAAMQ,aAAavC,cAAcA,WAAW8B,KAAK;IACjD/C,MAAMyD,SAAS,CACb,SAASC;QACP,IAAIH,qBAAqBC,eAAe,aAAa;YACnDX;QACF;IACF,GACA;QAACW;QAAYX;QAAuBU;KAAkB;IAGxD,qBACE,oBAACvD,MAAM2D,QAAQ,sBACb,oBAACC;QACE,GAAGzC,SAAS;QACb0C,KAAKR;QACLS,cAAcZ;QACda,cAAcX;QACdrC,WAAWd,WACTY,MAAM,CAAC,cAAc,EACrBO,gBAAgBP,MAAM,CAAC,uBAAuB,EAC9CE;qBAGF,oBAACiD;QACE,GAAG/C,UAAU;QACdgD,MAAK;QACLlD,WAAWF,MAAM,CAAC,2BAA2B;QAC7CqD,oBAAiB;QACjB7C,QAAQA;QACRC,SAASA;sBAEX,oBAACX;QAAawD,SAAS/C;QAAcgD,MAAK;SAE3Cb,mCACC,oBAAC3C;QACCyD,YAAW;QACXrD,YAAYsB,KAAKgC,WAAW;QAC5BC,eAAejE,wCACbkC,0BACAP,eACAE;QAEFQ,aAAaA;QACb6B,gBAAgBnC;QAChBoC,aAAajD;QACbkD,MAAMlB;;AAKhB,EAAE"}
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
- export interface SnackbarProps extends React.HTMLAttributes<HTMLElement> {
2
+ import { HTMLAttributesWithRootRef } from '../../types';
3
+ export interface SnackbarProps extends HTMLAttributesWithRootRef<HTMLElement> {
3
4
  /**
4
5
  * Название кнопки действия в уведомлении
5
6
  * Не может использоваться одновременно с `subtitle`
@@ -50,4 +51,4 @@ export interface SnackbarProps extends React.HTMLAttributes<HTMLElement> {
50
51
  /**
51
52
  * @see https://vkcom.github.io/VKUI/#/Snackbar
52
53
  */
53
- export declare const Snackbar: ({ children, layout: layoutProps, action, before, after, duration, onActionClick, onClose, mode, className, subtitle, offsetY, style, ...restProps }: SnackbarProps) => React.JSX.Element;
54
+ export declare const Snackbar: ({ children, layout: layoutProps, action, before, after, duration, onActionClick, onClose, mode, subtitle, offsetY, style, ...restProps }: SnackbarProps) => React.JSX.Element;