@vkontakte/vkui 8.0.2 → 8.1.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 (1384) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +8 -6
  2. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  3. package/dist/components/Accordion/Accordion.js +3 -0
  4. package/dist/components/Accordion/Accordion.js.map +1 -1
  5. package/dist/components/Accordion/AccordionIcon.d.ts +14 -0
  6. package/dist/components/Accordion/AccordionIcon.d.ts.map +1 -0
  7. package/dist/components/Accordion/AccordionIcon.js +16 -0
  8. package/dist/components/Accordion/AccordionIcon.js.map +1 -0
  9. package/dist/components/Accordion/AccordionSummary.d.ts +3 -3
  10. package/dist/components/Accordion/AccordionSummary.d.ts.map +1 -1
  11. package/dist/components/Accordion/AccordionSummary.js +4 -6
  12. package/dist/components/Accordion/AccordionSummary.js.map +1 -1
  13. package/dist/components/ActionSheet/ActionSheet.d.ts +9 -9
  14. package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  15. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  16. package/dist/components/ActionSheet/ActionSheetContext.d.ts +3 -3
  17. package/dist/components/ActionSheet/ActionSheetContext.d.ts.map +1 -1
  18. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  19. package/dist/components/ActionSheet/types.d.ts +8 -8
  20. package/dist/components/ActionSheet/types.d.ts.map +1 -1
  21. package/dist/components/ActionSheet/types.js.map +1 -1
  22. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +15 -15
  23. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
  24. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  25. package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.d.ts +1 -1
  26. package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.d.ts.map +1 -1
  27. package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.js.map +1 -1
  28. package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts +7 -7
  29. package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts.map +1 -1
  30. package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  31. package/dist/components/Alert/Alert.d.ts +18 -18
  32. package/dist/components/Alert/Alert.d.ts.map +1 -1
  33. package/dist/components/Alert/Alert.js.map +1 -1
  34. package/dist/components/Alert/AlertBase.d.ts +2 -2
  35. package/dist/components/Alert/AlertBase.d.ts.map +1 -1
  36. package/dist/components/Alert/AlertBase.js.map +1 -1
  37. package/dist/components/Alert/AlertTypography.d.ts +1 -1
  38. package/dist/components/Alert/AlertTypography.d.ts.map +1 -1
  39. package/dist/components/Alert/AlertTypography.js.map +1 -1
  40. package/dist/components/AppRoot/AppRoot.d.ts +9 -9
  41. package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
  42. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  43. package/dist/components/AppRoot/AppRootContext.d.ts +4 -4
  44. package/dist/components/AppRoot/AppRootContext.d.ts.map +1 -1
  45. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  46. package/dist/components/AppRoot/AppRootPortal.d.ts +2 -2
  47. package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
  48. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  49. package/dist/components/AppRoot/ScrollContext.d.ts +4 -4
  50. package/dist/components/AppRoot/ScrollContext.d.ts.map +1 -1
  51. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  52. package/dist/components/AppRoot/types.d.ts +4 -4
  53. package/dist/components/AppRoot/types.d.ts.map +1 -1
  54. package/dist/components/AppRoot/types.js.map +1 -1
  55. package/dist/components/AspectRatio/AspectRatio.d.ts +2 -2
  56. package/dist/components/AspectRatio/AspectRatio.d.ts.map +1 -1
  57. package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
  58. package/dist/components/Avatar/Avatar.d.ts +2 -2
  59. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  60. package/dist/components/Avatar/Avatar.js.map +1 -1
  61. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts +1 -1
  62. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts.map +1 -1
  63. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  64. package/dist/components/Badge/Badge.d.ts +1 -1
  65. package/dist/components/Badge/Badge.d.ts.map +1 -1
  66. package/dist/components/Badge/Badge.js.map +1 -1
  67. package/dist/components/Banner/Banner.d.ts +12 -12
  68. package/dist/components/Banner/Banner.d.ts.map +1 -1
  69. package/dist/components/Banner/Banner.js.map +1 -1
  70. package/dist/components/Box/Box.d.ts +1 -1
  71. package/dist/components/Box/Box.d.ts.map +1 -1
  72. package/dist/components/Box/Box.js.map +1 -1
  73. package/dist/components/Button/Button.d.ts +11 -11
  74. package/dist/components/Button/Button.d.ts.map +1 -1
  75. package/dist/components/Button/Button.js +1 -1
  76. package/dist/components/Button/Button.js.map +1 -1
  77. package/dist/components/ButtonGroup/ButtonGroup.d.ts +4 -4
  78. package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  79. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  80. package/dist/components/Calendar/Calendar.d.ts +17 -17
  81. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  82. package/dist/components/Calendar/Calendar.js.map +1 -1
  83. package/dist/components/CalendarDay/CalendarDay.d.ts +18 -18
  84. package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  85. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  86. package/dist/components/CalendarDays/CalendarDays.d.ts +14 -14
  87. package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  88. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  89. package/dist/components/CalendarHeader/CalendarHeader.d.ts +19 -19
  90. package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  91. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  92. package/dist/components/CalendarRange/CalendarRange.d.ts +12 -12
  93. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  94. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  95. package/dist/components/CalendarTime/CalendarTime.d.ts +14 -14
  96. package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  97. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  98. package/dist/components/CalendarTime/CalendarTimePicker.d.ts +3 -3
  99. package/dist/components/CalendarTime/CalendarTimePicker.d.ts.map +1 -1
  100. package/dist/components/CalendarTime/CalendarTimePicker.js.map +1 -1
  101. package/dist/components/Card/Card.d.ts +1 -1
  102. package/dist/components/Card/Card.d.ts.map +1 -1
  103. package/dist/components/Card/Card.js.map +1 -1
  104. package/dist/components/CardGrid/CardGrid.d.ts +2 -2
  105. package/dist/components/CardGrid/CardGrid.d.ts.map +1 -1
  106. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  107. package/dist/components/CardScroll/CardScroll.d.ts +3 -3
  108. package/dist/components/CardScroll/CardScroll.d.ts.map +1 -1
  109. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  110. package/dist/components/CarouselBase/Bullets.d.ts +1 -1
  111. package/dist/components/CarouselBase/Bullets.d.ts.map +1 -1
  112. package/dist/components/CarouselBase/Bullets.js.map +1 -1
  113. package/dist/components/CarouselBase/CarouselViewPort.d.ts +1 -1
  114. package/dist/components/CarouselBase/CarouselViewPort.d.ts.map +1 -1
  115. package/dist/components/CarouselBase/CarouselViewPort.js.map +1 -1
  116. package/dist/components/CarouselBase/ScrollArrows.d.ts +2 -2
  117. package/dist/components/CarouselBase/ScrollArrows.d.ts.map +1 -1
  118. package/dist/components/CarouselBase/ScrollArrows.js.map +1 -1
  119. package/dist/components/CarouselBase/helpers.d.ts +4 -4
  120. package/dist/components/CarouselBase/helpers.d.ts.map +1 -1
  121. package/dist/components/CarouselBase/helpers.js.map +1 -1
  122. package/dist/components/CarouselBase/types.d.ts +23 -23
  123. package/dist/components/CarouselBase/types.d.ts.map +1 -1
  124. package/dist/components/CarouselBase/types.js.map +1 -1
  125. package/dist/components/Cell/Cell.d.ts +8 -8
  126. package/dist/components/Cell/Cell.d.ts.map +1 -1
  127. package/dist/components/Cell/Cell.js.map +1 -1
  128. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +1 -1
  129. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts.map +1 -1
  130. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  131. package/dist/components/Cell/CellDragger/CellDragger.d.ts +2 -2
  132. package/dist/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
  133. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  134. package/dist/components/CellButton/CellButton.d.ts +69 -6
  135. package/dist/components/CellButton/CellButton.d.ts.map +1 -1
  136. package/dist/components/CellButton/CellButton.js +115 -6
  137. package/dist/components/CellButton/CellButton.js.map +1 -1
  138. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +2 -2
  139. package/dist/components/Checkbox/Checkbox.d.ts +6 -6
  140. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  141. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  142. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts +11 -11
  143. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  144. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -1
  145. package/dist/components/ChipsInput/ChipsInput.d.ts +1 -1
  146. package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  147. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  148. package/dist/components/ChipsInput/useChipsInput.d.ts +3 -3
  149. package/dist/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  150. package/dist/components/ChipsInput/useChipsInput.js.map +1 -1
  151. package/dist/components/ChipsInputBase/Chip/Chip.d.ts +9 -9
  152. package/dist/components/ChipsInputBase/Chip/Chip.d.ts.map +1 -1
  153. package/dist/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  154. package/dist/components/ChipsInputBase/types.d.ts +19 -19
  155. package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
  156. package/dist/components/ChipsInputBase/types.js.map +1 -1
  157. package/dist/components/ChipsSelect/ChipsSelect.d.ts +13 -13
  158. package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  159. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  160. package/dist/components/ChipsSelect/useChipsSelect.d.ts +8 -8
  161. package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  162. package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
  163. package/dist/components/Clickable/Clickable.d.ts +1 -1
  164. package/dist/components/Clickable/Clickable.d.ts.map +1 -1
  165. package/dist/components/Clickable/Clickable.js.map +1 -1
  166. package/dist/components/Clickable/useState.d.ts +13 -13
  167. package/dist/components/Clickable/useState.d.ts.map +1 -1
  168. package/dist/components/Clickable/useState.js.map +1 -1
  169. package/dist/components/ConfigProvider/ConfigProvider.d.ts +2 -1
  170. package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
  171. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  172. package/dist/components/ContentBadge/ContentBadge.d.ts +4 -4
  173. package/dist/components/ContentBadge/ContentBadge.d.ts.map +1 -1
  174. package/dist/components/ContentBadge/ContentBadge.js.map +1 -1
  175. package/dist/components/ContentCard/ContentCard.d.ts +8 -8
  176. package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
  177. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  178. package/dist/components/Counter/Counter.d.ts +4 -4
  179. package/dist/components/Counter/Counter.d.ts.map +1 -1
  180. package/dist/components/Counter/Counter.js.map +1 -1
  181. package/dist/components/CustomScrollView/CustomScrollView.d.ts +6 -6
  182. package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  183. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  184. package/dist/components/CustomSelect/CustomSelect.d.ts +36 -27
  185. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  186. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  187. package/dist/components/CustomSelect/CustomSelectClearButton.d.ts +2 -2
  188. package/dist/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
  189. package/dist/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  190. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts +9 -9
  191. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts.map +1 -1
  192. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
  193. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts +2 -2
  194. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts.map +1 -1
  195. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -1
  196. package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts +1 -1
  197. package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts.map +1 -1
  198. package/dist/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -1
  199. package/dist/components/CustomSelect/types.d.ts +1 -1
  200. package/dist/components/CustomSelect/types.d.ts.map +1 -1
  201. package/dist/components/CustomSelect/types.js.map +1 -1
  202. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +8 -8
  203. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  204. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  205. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts +9 -9
  206. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts.map +1 -1
  207. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  208. package/dist/components/DateInput/DateInput.d.ts +23 -23
  209. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  210. package/dist/components/DateInput/DateInput.js +3 -12
  211. package/dist/components/DateInput/DateInput.js.map +1 -1
  212. package/dist/components/DateInput/hooks.d.ts +4 -4
  213. package/dist/components/DateInput/hooks.d.ts.map +1 -1
  214. package/dist/components/DateInput/hooks.js.map +1 -1
  215. package/dist/components/DateRangeInput/DateRangeInput.d.ts +25 -25
  216. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  217. package/dist/components/DateRangeInput/DateRangeInput.js +2 -11
  218. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  219. package/dist/components/DropZone/DropZone.d.ts +2 -2
  220. package/dist/components/DropZone/DropZone.d.ts.map +1 -1
  221. package/dist/components/DropZone/DropZone.js +1 -1
  222. package/dist/components/DropZone/DropZone.js.map +1 -1
  223. package/dist/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.d.ts +1 -1
  224. package/dist/components/DropZone/DropZoneGrid/DropZoneGrid.d.ts.map +1 -0
  225. package/dist/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.js +3 -3
  226. package/dist/components/DropZone/DropZoneGrid/DropZoneGrid.js.map +1 -0
  227. package/dist/components/DropdownIcon/DropdownIcon.d.ts +1 -1
  228. package/dist/components/DropdownIcon/DropdownIcon.d.ts.map +1 -1
  229. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  230. package/dist/components/Epic/Epic.d.ts +1 -1
  231. package/dist/components/Epic/Epic.d.ts.map +1 -1
  232. package/dist/components/Epic/Epic.js.map +1 -1
  233. package/dist/components/Epic/ScrollSaver.d.ts +1 -1
  234. package/dist/components/Epic/ScrollSaver.d.ts.map +1 -1
  235. package/dist/components/Epic/ScrollSaver.js.map +1 -1
  236. package/dist/components/File/File.d.ts +4 -4
  237. package/dist/components/File/File.d.ts.map +1 -1
  238. package/dist/components/File/File.js.map +1 -1
  239. package/dist/components/FixedLayout/FixedLayout.d.ts +3 -3
  240. package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  241. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  242. package/dist/components/Flex/Flex.d.ts +8 -12
  243. package/dist/components/Flex/Flex.d.ts.map +1 -1
  244. package/dist/components/Flex/Flex.js +2 -9
  245. package/dist/components/Flex/Flex.js.map +1 -1
  246. package/dist/components/Flex/FlexItem/FlexItem.d.ts +5 -12
  247. package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  248. package/dist/components/Flex/FlexItem/FlexItem.js +5 -14
  249. package/dist/components/Flex/FlexItem/FlexItem.js.map +1 -1
  250. package/dist/components/FloatingArrow/FloatingArrow.d.ts +9 -9
  251. package/dist/components/FloatingArrow/FloatingArrow.d.ts.map +1 -1
  252. package/dist/components/FloatingArrow/FloatingArrow.js.map +1 -1
  253. package/dist/components/FocusTrap/FocusTrap.d.ts +1 -1
  254. package/dist/components/FocusTrap/FocusTrap.d.ts.map +1 -1
  255. package/dist/components/FocusTrap/FocusTrap.js +2 -4
  256. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  257. package/dist/components/FormField/FormField.d.ts +8 -8
  258. package/dist/components/FormField/FormField.d.ts.map +1 -1
  259. package/dist/components/FormField/FormField.js.map +1 -1
  260. package/dist/components/FormFieldClearButton/FormFieldClearButton.d.ts +2 -2
  261. package/dist/components/FormFieldClearButton/FormFieldClearButton.d.ts.map +1 -1
  262. package/dist/components/FormFieldClearButton/FormFieldClearButton.js.map +1 -1
  263. package/dist/components/FormItem/FormItem.d.ts +10 -10
  264. package/dist/components/FormItem/FormItem.d.ts.map +1 -1
  265. package/dist/components/FormItem/FormItem.js.map +1 -1
  266. package/dist/components/FormItem/context.d.ts +2 -2
  267. package/dist/components/FormItem/context.d.ts.map +1 -1
  268. package/dist/components/FormItem/context.js.map +1 -1
  269. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +4 -4
  270. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
  271. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  272. package/dist/components/FormStatus/FormStatus.d.ts +2 -2
  273. package/dist/components/FormStatus/FormStatus.d.ts.map +1 -1
  274. package/dist/components/FormStatus/FormStatus.js.map +1 -1
  275. package/dist/components/Gallery/Gallery.d.ts +2 -2
  276. package/dist/components/Gallery/Gallery.d.ts.map +1 -1
  277. package/dist/components/Gallery/Gallery.js.map +1 -1
  278. package/dist/components/Gradient/Gradient.d.ts +2 -2
  279. package/dist/components/Gradient/Gradient.d.ts.map +1 -1
  280. package/dist/components/Gradient/Gradient.js.map +1 -1
  281. package/dist/components/GridAvatar/GridAvatar.d.ts +1 -1
  282. package/dist/components/GridAvatar/GridAvatar.d.ts.map +1 -1
  283. package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
  284. package/dist/components/Group/Group.d.ts +2 -2
  285. package/dist/components/Group/Group.d.ts.map +1 -1
  286. package/dist/components/Group/Group.js.map +1 -1
  287. package/dist/components/Group/GroupContainer.d.ts +3 -3
  288. package/dist/components/Group/GroupContainer.d.ts.map +1 -1
  289. package/dist/components/Group/GroupContainer.js.map +1 -1
  290. package/dist/components/Group/GroupExpandedContent.d.ts +1 -1
  291. package/dist/components/Group/GroupExpandedContent.d.ts.map +1 -1
  292. package/dist/components/Group/GroupExpandedContent.js.map +1 -1
  293. package/dist/components/Header/Header.d.ts +11 -11
  294. package/dist/components/Header/Header.d.ts.map +1 -1
  295. package/dist/components/Header/Header.js.map +1 -1
  296. package/dist/components/HorizontalCell/HorizontalCell.d.ts +7 -7
  297. package/dist/components/HorizontalCell/HorizontalCell.d.ts.map +1 -1
  298. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  299. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +4 -4
  300. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts.map +1 -1
  301. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -1
  302. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +30 -15
  303. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  304. package/dist/components/HorizontalScroll/HorizontalScroll.js +20 -6
  305. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  306. package/dist/components/IconButton/IconButton.d.ts +1 -1
  307. package/dist/components/IconButton/IconButton.d.ts.map +1 -1
  308. package/dist/components/IconButton/IconButton.js.map +1 -1
  309. package/dist/components/Image/Image.d.ts +5 -5
  310. package/dist/components/Image/Image.d.ts.map +1 -1
  311. package/dist/components/Image/Image.js.map +1 -1
  312. package/dist/components/ImageBase/ImageBase.d.ts +14 -14
  313. package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
  314. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  315. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts +1 -1
  316. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts.map +1 -1
  317. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  318. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts +3 -3
  319. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts.map +1 -1
  320. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -1
  321. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts +3 -3
  322. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts.map +1 -1
  323. package/dist/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  324. package/dist/components/ImageBase/types.d.ts +3 -3
  325. package/dist/components/ImageBase/types.d.ts.map +1 -1
  326. package/dist/components/ImageBase/types.js.map +1 -1
  327. package/dist/components/Input/Input.d.ts +4 -4
  328. package/dist/components/Input/Input.d.ts.map +1 -1
  329. package/dist/components/Input/Input.js.map +1 -1
  330. package/dist/components/InputLike/InputLike.d.ts +3 -3
  331. package/dist/components/InputLike/InputLike.d.ts.map +1 -1
  332. package/dist/components/InputLike/InputLike.js.map +1 -1
  333. package/dist/components/Link/Link.d.ts +4 -4
  334. package/dist/components/Link/Link.d.ts.map +1 -1
  335. package/dist/components/Link/Link.js.map +1 -1
  336. package/dist/components/List/List.d.ts +1 -1
  337. package/dist/components/List/List.d.ts.map +1 -1
  338. package/dist/components/List/List.js.map +1 -1
  339. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts +5 -5
  340. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts.map +1 -1
  341. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  342. package/dist/components/ModalCard/ModalCardInternal.d.ts +1 -1
  343. package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -1
  344. package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
  345. package/dist/components/ModalCard/types.d.ts +13 -13
  346. package/dist/components/ModalCard/types.d.ts.map +1 -1
  347. package/dist/components/ModalCard/types.js.map +1 -1
  348. package/dist/components/ModalCardBase/ModalCardBase.d.ts +14 -14
  349. package/dist/components/ModalCardBase/ModalCardBase.d.ts.map +1 -1
  350. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  351. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +1 -1
  352. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts.map +1 -1
  353. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  354. package/dist/components/ModalOutlet/ModalOutlet.d.ts +3 -3
  355. package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -1
  356. package/dist/components/ModalOutlet/ModalOutlet.js.map +1 -1
  357. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts +1 -1
  358. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts.map +1 -1
  359. package/dist/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -1
  360. package/dist/components/ModalOverlay/ModalOverlay.d.ts +7 -7
  361. package/dist/components/ModalOverlay/ModalOverlay.d.ts.map +1 -1
  362. package/dist/components/ModalOverlay/ModalOverlay.js.map +1 -1
  363. package/dist/components/ModalPage/ModalPageBase.d.ts +2 -2
  364. package/dist/components/ModalPage/ModalPageBase.d.ts.map +1 -1
  365. package/dist/components/ModalPage/ModalPageBase.js.map +1 -1
  366. package/dist/components/ModalPage/ModalPageInternal.d.ts +2 -2
  367. package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
  368. package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
  369. package/dist/components/ModalPage/types.d.ts +27 -27
  370. package/dist/components/ModalPage/types.d.ts.map +1 -1
  371. package/dist/components/ModalPage/types.js.map +1 -1
  372. package/dist/components/ModalPageFooter/ModalPageFooter.d.ts +2 -2
  373. package/dist/components/ModalPageFooter/ModalPageFooter.d.ts.map +1 -1
  374. package/dist/components/ModalPageFooter/ModalPageFooter.js.map +1 -1
  375. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts +1 -1
  376. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  377. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  378. package/dist/components/ModalRoot/types.d.ts +15 -15
  379. package/dist/components/ModalRoot/types.d.ts.map +1 -1
  380. package/dist/components/ModalRoot/types.js.map +1 -1
  381. package/dist/components/ModalRoot/useModalRootManager.d.ts +19 -19
  382. package/dist/components/ModalRoot/useModalRootManager.d.ts.map +1 -1
  383. package/dist/components/ModalRoot/useModalRootManager.js.map +1 -1
  384. package/dist/components/NativeSelect/NativeSelect.d.ts +11 -11
  385. package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
  386. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  387. package/dist/components/NumberInputLike/NumberInputLike.d.ts +3 -3
  388. package/dist/components/NumberInputLike/NumberInputLike.d.ts.map +1 -1
  389. package/dist/components/NumberInputLike/NumberInputLike.js.map +1 -1
  390. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +6 -6
  391. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  392. package/dist/components/OnboardingTooltip/OnboardingTooltip.js +12 -3
  393. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  394. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts +1 -1
  395. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
  396. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  397. package/dist/components/Pagination/Pagination.d.ts +19 -19
  398. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  399. package/dist/components/Pagination/Pagination.js +14 -6
  400. package/dist/components/Pagination/Pagination.js.map +1 -1
  401. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts +3 -3
  402. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts.map +1 -1
  403. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
  404. package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts +3 -3
  405. package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts.map +1 -1
  406. package/dist/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -1
  407. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts +1 -1
  408. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts.map +1 -1
  409. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -1
  410. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts +3 -3
  411. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts.map +1 -1
  412. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -1
  413. package/dist/components/Panel/Panel.d.ts +3 -3
  414. package/dist/components/Panel/Panel.d.ts.map +1 -1
  415. package/dist/components/Panel/Panel.js.map +1 -1
  416. package/dist/components/PanelHeader/PanelHeader.d.ts +8 -8
  417. package/dist/components/PanelHeader/PanelHeader.d.ts.map +1 -1
  418. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  419. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +2 -2
  420. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts.map +1 -1
  421. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  422. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts +2 -2
  423. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
  424. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  425. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts +3 -3
  426. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts.map +1 -1
  427. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  428. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +3 -3
  429. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts.map +1 -1
  430. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  431. package/dist/components/PanelSpinner/PanelSpinner.d.ts +1 -1
  432. package/dist/components/PanelSpinner/PanelSpinner.d.ts.map +1 -1
  433. package/dist/components/PanelSpinner/PanelSpinner.js.map +1 -1
  434. package/dist/components/Placeholder/Placeholder.d.ts +5 -5
  435. package/dist/components/Placeholder/Placeholder.d.ts.map +1 -1
  436. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  437. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +6 -6
  438. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts.map +1 -1
  439. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  440. package/dist/components/Popover/Popover.d.ts +5 -5
  441. package/dist/components/Popover/Popover.d.ts.map +1 -1
  442. package/dist/components/Popover/Popover.js.map +1 -1
  443. package/dist/components/Popper/Popper.d.ts +4 -4
  444. package/dist/components/Popper/Popper.d.ts.map +1 -1
  445. package/dist/components/Popper/Popper.js +13 -7
  446. package/dist/components/Popper/Popper.js.map +1 -1
  447. package/dist/components/Progress/Progress.d.ts +4 -4
  448. package/dist/components/Progress/Progress.d.ts.map +1 -1
  449. package/dist/components/Progress/Progress.js.map +1 -1
  450. package/dist/components/PullToRefresh/PullToRefresh.d.ts +2 -2
  451. package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  452. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  453. package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts +4 -4
  454. package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts.map +1 -1
  455. package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  456. package/dist/components/Radio/Radio.d.ts +7 -7
  457. package/dist/components/Radio/Radio.d.ts.map +1 -1
  458. package/dist/components/Radio/Radio.js +2 -2
  459. package/dist/components/Radio/Radio.js.map +1 -1
  460. package/dist/components/Radio/RadioInput/RadioInput.d.ts +4 -4
  461. package/dist/components/Radio/RadioInput/RadioInput.d.ts.map +1 -1
  462. package/dist/components/Radio/RadioInput/RadioInput.js.map +1 -1
  463. package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
  464. package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  465. package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
  466. package/dist/components/Removable/Removable.d.ts +9 -9
  467. package/dist/components/Removable/Removable.d.ts.map +1 -1
  468. package/dist/components/Removable/Removable.js.map +1 -1
  469. package/dist/components/Removable/RemovableIos.d.ts +3 -3
  470. package/dist/components/Removable/RemovableIos.d.ts.map +1 -1
  471. package/dist/components/Removable/RemovableIos.js.map +1 -1
  472. package/dist/components/RichCell/RichCell.d.ts +15 -15
  473. package/dist/components/RichCell/RichCell.d.ts.map +1 -1
  474. package/dist/components/RichCell/RichCell.js.map +1 -1
  475. package/dist/components/Root/Root.d.ts +4 -4
  476. package/dist/components/Root/Root.d.ts.map +1 -1
  477. package/dist/components/Root/Root.js.map +1 -1
  478. package/dist/components/RootComponent/RootComponent.d.ts +2 -2
  479. package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
  480. package/dist/components/RootComponent/RootComponent.js.map +1 -1
  481. package/dist/components/ScreenSpinner/ScreenSpinnerSwapIcon.d.ts +1 -1
  482. package/dist/components/ScreenSpinner/ScreenSpinnerSwapIcon.d.ts.map +1 -1
  483. package/dist/components/ScreenSpinner/ScreenSpinnerSwapIcon.js.map +1 -1
  484. package/dist/components/ScreenSpinner/context.d.ts +2 -2
  485. package/dist/components/ScreenSpinner/context.d.ts.map +1 -1
  486. package/dist/components/ScreenSpinner/context.js.map +1 -1
  487. package/dist/components/ScreenSpinner/types.d.ts +5 -5
  488. package/dist/components/ScreenSpinner/types.d.ts.map +1 -1
  489. package/dist/components/ScreenSpinner/types.js.map +1 -1
  490. package/dist/components/ScrollArrow/ScrollArrow.d.ts +10 -4
  491. package/dist/components/ScrollArrow/ScrollArrow.d.ts.map +1 -1
  492. package/dist/components/ScrollArrow/ScrollArrow.js +14 -4
  493. package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
  494. package/dist/components/Search/Search.d.ts +17 -17
  495. package/dist/components/Search/Search.d.ts.map +1 -1
  496. package/dist/components/Search/Search.js.map +1 -1
  497. package/dist/components/SegmentedControl/SegmentedControl.d.ts +6 -6
  498. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  499. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  500. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +3 -3
  501. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  502. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  503. package/dist/components/SelectMimicry/SelectMimicry.d.ts +3 -3
  504. package/dist/components/SelectMimicry/SelectMimicry.d.ts.map +1 -1
  505. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  506. package/dist/components/SelectTypography/SelectTypography.d.ts +1 -1
  507. package/dist/components/SelectTypography/SelectTypography.d.ts.map +1 -1
  508. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  509. package/dist/components/SelectionControl/SelectionControl.d.ts +1 -1
  510. package/dist/components/SelectionControl/SelectionControl.d.ts.map +1 -1
  511. package/dist/components/SelectionControl/SelectionControl.js.map +1 -1
  512. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +2 -2
  513. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -1
  514. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
  515. package/dist/components/Separator/Separator.d.ts +5 -5
  516. package/dist/components/Separator/Separator.d.ts.map +1 -1
  517. package/dist/components/Separator/Separator.js.map +1 -1
  518. package/dist/components/SimpleCell/Chevron/Chevron.d.ts +1 -1
  519. package/dist/components/SimpleCell/Chevron/Chevron.d.ts.map +1 -1
  520. package/dist/components/SimpleCell/Chevron/Chevron.js.map +1 -1
  521. package/dist/components/SimpleCell/SimpleCell.d.ts +14 -14
  522. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  523. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  524. package/dist/components/SimpleGrid/SimpleGrid.d.ts +6 -6
  525. package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
  526. package/dist/components/SimpleGrid/SimpleGrid.js.map +1 -1
  527. package/dist/components/Skeleton/Skeleton.d.ts +5 -5
  528. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  529. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  530. package/dist/components/Slider/Slider.d.ts +17 -17
  531. package/dist/components/Slider/Slider.d.ts.map +1 -1
  532. package/dist/components/Slider/Slider.js.map +1 -1
  533. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts +5 -5
  534. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts.map +1 -1
  535. package/dist/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  536. package/dist/components/Snackbar/Snackbar.d.ts +10 -10
  537. package/dist/components/Snackbar/Snackbar.d.ts.map +1 -1
  538. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  539. package/dist/components/Snackbar/subcomponents/Basic/Basic.d.ts +6 -6
  540. package/dist/components/Snackbar/subcomponents/Basic/Basic.d.ts.map +1 -1
  541. package/dist/components/Snackbar/subcomponents/Basic/Basic.js.map +1 -1
  542. package/dist/components/Snackbar/utils.d.ts +1 -1
  543. package/dist/components/Snackbar/utils.d.ts.map +1 -1
  544. package/dist/components/Snackbar/utils.js.map +1 -1
  545. package/dist/components/Spacing/Spacing.d.ts +2 -2
  546. package/dist/components/Spacing/Spacing.d.ts.map +1 -1
  547. package/dist/components/Spacing/Spacing.js.map +1 -1
  548. package/dist/components/Spinner/Spinner.d.ts +4 -4
  549. package/dist/components/Spinner/Spinner.d.ts.map +1 -1
  550. package/dist/components/Spinner/Spinner.js.map +1 -1
  551. package/dist/components/SplitCol/SplitCol.d.ts +7 -7
  552. package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
  553. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  554. package/dist/components/SplitLayout/SplitLayout.d.ts +8 -8
  555. package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
  556. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  557. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +2 -2
  558. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts.map +1 -1
  559. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  560. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts +8 -8
  561. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts.map +1 -1
  562. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  563. package/dist/components/Switch/Switch.d.ts +4 -4
  564. package/dist/components/Switch/Switch.d.ts.map +1 -1
  565. package/dist/components/Switch/Switch.js.map +1 -1
  566. package/dist/components/Tabbar/Tabbar.d.ts +2 -2
  567. package/dist/components/Tabbar/Tabbar.d.ts.map +1 -1
  568. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  569. package/dist/components/TabbarItem/TabbarItem.d.ts +3 -3
  570. package/dist/components/TabbarItem/TabbarItem.d.ts.map +1 -1
  571. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  572. package/dist/components/Tabs/Tabs.d.ts +7 -7
  573. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  574. package/dist/components/Tabs/Tabs.js.map +1 -1
  575. package/dist/components/Tabs/TabsModeContext.d.ts +1 -1
  576. package/dist/components/Tabs/TabsModeContext.d.ts.map +1 -1
  577. package/dist/components/Tabs/TabsModeContext.js.map +1 -1
  578. package/dist/components/TabsItem/TabsItem.d.ts +5 -5
  579. package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
  580. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  581. package/dist/components/Tappable/Tappable.d.ts +3 -3
  582. package/dist/components/Tappable/Tappable.d.ts.map +1 -1
  583. package/dist/components/Tappable/Tappable.js.map +1 -1
  584. package/dist/components/Tappable/state.d.ts +2 -2
  585. package/dist/components/Tappable/state.d.ts.map +1 -1
  586. package/dist/components/Tappable/state.js.map +1 -1
  587. package/dist/components/Textarea/Textarea.d.ts +6 -6
  588. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  589. package/dist/components/Textarea/Textarea.js.map +1 -1
  590. package/dist/components/ToolButton/ToolButton.d.ts +4 -4
  591. package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
  592. package/dist/components/ToolButton/ToolButton.js.map +1 -1
  593. package/dist/components/Tooltip/Tooltip.d.ts +6 -6
  594. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  595. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  596. package/dist/components/TooltipBase/TooltipBase.d.ts +10 -10
  597. package/dist/components/TooltipBase/TooltipBase.d.ts.map +1 -1
  598. package/dist/components/TooltipBase/TooltipBase.js.map +1 -1
  599. package/dist/components/Touch/Touch.d.ts +16 -16
  600. package/dist/components/Touch/Touch.d.ts.map +1 -1
  601. package/dist/components/Touch/Touch.js.map +1 -1
  602. package/dist/components/Typography/Caption/Caption.d.ts +1 -1
  603. package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
  604. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  605. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts +1 -1
  606. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
  607. package/dist/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
  608. package/dist/components/Typography/EllipsisText/EllipsisText.d.ts +3 -3
  609. package/dist/components/Typography/EllipsisText/EllipsisText.d.ts.map +1 -1
  610. package/dist/components/Typography/EllipsisText/EllipsisText.js.map +1 -1
  611. package/dist/components/Typography/Headline/Headline.d.ts +1 -1
  612. package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
  613. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  614. package/dist/components/Typography/Title/Title.d.ts +1 -1
  615. package/dist/components/Typography/Title/Title.d.ts.map +1 -1
  616. package/dist/components/Typography/Title/Title.js.map +1 -1
  617. package/dist/components/Typography/Typography.d.ts +6 -6
  618. package/dist/components/Typography/Typography.d.ts.map +1 -1
  619. package/dist/components/Typography/Typography.js.map +1 -1
  620. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts +1 -1
  621. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts.map +1 -1
  622. package/dist/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
  623. package/dist/components/UsersStack/UsersStack.d.ts +6 -6
  624. package/dist/components/UsersStack/UsersStack.d.ts.map +1 -1
  625. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  626. package/dist/components/View/View.d.ts +4 -4
  627. package/dist/components/View/View.d.ts.map +1 -1
  628. package/dist/components/View/View.js.map +1 -1
  629. package/dist/components/View/ViewInfinite.d.ts +12 -12
  630. package/dist/components/View/ViewInfinite.d.ts.map +1 -1
  631. package/dist/components/View/ViewInfinite.js.map +1 -1
  632. package/dist/components/WriteBar/WriteBar.d.ts +10 -10
  633. package/dist/components/WriteBar/WriteBar.d.ts.map +1 -1
  634. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  635. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts +3 -3
  636. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts.map +1 -1
  637. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  638. package/dist/components.css +1 -1
  639. package/dist/components.css.map +1 -1
  640. package/dist/cssm/components/Accordion/Accordion.js +3 -0
  641. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  642. package/dist/cssm/components/Accordion/AccordionIcon.js +17 -0
  643. package/dist/cssm/components/Accordion/AccordionIcon.js.map +1 -0
  644. package/dist/cssm/components/Accordion/AccordionSummary.js +4 -7
  645. package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
  646. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  647. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  648. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  649. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  650. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +0 -1
  651. package/dist/cssm/components/ActionSheetItem/subcomponents/Radio/Radio.js.map +1 -1
  652. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  653. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  654. package/dist/cssm/components/Alert/AlertBase.js.map +1 -1
  655. package/dist/cssm/components/Alert/AlertTypography.js.map +1 -1
  656. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  657. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  658. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  659. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  660. package/dist/cssm/components/AppRoot/types.js.map +1 -1
  661. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  662. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  663. package/dist/cssm/components/Avatar/Avatar.module.css +0 -5
  664. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  665. package/dist/cssm/components/Badge/Badge.js.map +1 -1
  666. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  667. package/dist/cssm/components/Box/Box.js.map +1 -1
  668. package/dist/cssm/components/Button/Button.js +1 -1
  669. package/dist/cssm/components/Button/Button.js.map +1 -1
  670. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  671. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  672. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  673. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  674. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  675. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  676. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  677. package/dist/cssm/components/CalendarTime/CalendarTimePicker.js.map +1 -1
  678. package/dist/cssm/components/Card/Card.js.map +1 -1
  679. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  680. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  681. package/dist/cssm/components/CarouselBase/Bullets.js.map +1 -1
  682. package/dist/cssm/components/CarouselBase/CarouselViewPort.js.map +1 -1
  683. package/dist/cssm/components/CarouselBase/ScrollArrows.js.map +1 -1
  684. package/dist/cssm/components/CarouselBase/helpers.js.map +1 -1
  685. package/dist/cssm/components/CarouselBase/types.js.map +1 -1
  686. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  687. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  688. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  689. package/dist/cssm/components/CellButton/CellButton.js +115 -7
  690. package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
  691. package/dist/cssm/components/CellButton/CellButton.module.css +165 -7
  692. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  693. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -1
  694. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  695. package/dist/cssm/components/ChipsInput/useChipsInput.js.map +1 -1
  696. package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  697. package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
  698. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  699. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
  700. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  701. package/dist/cssm/components/Clickable/useState.js.map +1 -1
  702. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  703. package/dist/cssm/components/ContentBadge/ContentBadge.js.map +1 -1
  704. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  705. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  706. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  707. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  708. package/dist/cssm/components/CustomSelect/CustomSelect.module.css +0 -6
  709. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  710. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
  711. package/dist/cssm/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -1
  712. package/dist/cssm/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -1
  713. package/dist/cssm/components/CustomSelect/types.js.map +1 -1
  714. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  715. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  716. package/dist/cssm/components/DateInput/DateInput.js +3 -12
  717. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  718. package/dist/cssm/components/DateInput/hooks.js.map +1 -1
  719. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +2 -11
  720. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  721. package/dist/cssm/components/DropZone/DropZone.js +1 -1
  722. package/dist/cssm/components/DropZone/DropZone.js.map +1 -1
  723. package/dist/cssm/components/DropZone/DropZoneGrid/DropZoneGrid.js.map +1 -0
  724. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  725. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  726. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  727. package/dist/cssm/components/File/File.js.map +1 -1
  728. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  729. package/dist/cssm/components/Flex/Flex.js +2 -10
  730. package/dist/cssm/components/Flex/Flex.js.map +1 -1
  731. package/dist/cssm/components/Flex/FlexItem/FlexItem.js +5 -14
  732. package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
  733. package/dist/cssm/components/Flex/FlexItem/FlexItem.module.css +0 -22
  734. package/dist/cssm/components/FloatingArrow/FloatingArrow.js.map +1 -1
  735. package/dist/cssm/components/FocusTrap/FocusTrap.js +2 -4
  736. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  737. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  738. package/dist/cssm/components/FormFieldClearButton/FormFieldClearButton.js.map +1 -1
  739. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  740. package/dist/cssm/components/FormItem/FormItem.module.css +1 -2
  741. package/dist/cssm/components/FormItem/context.js.map +1 -1
  742. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  743. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  744. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  745. package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
  746. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  747. package/dist/cssm/components/Group/Group.js.map +1 -1
  748. package/dist/cssm/components/Group/GroupContainer.js.map +1 -1
  749. package/dist/cssm/components/Group/GroupExpandedContent.js.map +1 -1
  750. package/dist/cssm/components/Header/Header.js.map +1 -1
  751. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  752. package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -1
  753. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +20 -6
  754. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  755. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  756. package/dist/cssm/components/Image/Image.js.map +1 -1
  757. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  758. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  759. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -1
  760. package/dist/cssm/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  761. package/dist/cssm/components/ImageBase/types.js.map +1 -1
  762. package/dist/cssm/components/Input/Input.js.map +1 -1
  763. package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
  764. package/dist/cssm/components/Link/Link.js.map +1 -1
  765. package/dist/cssm/components/List/List.js.map +1 -1
  766. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  767. package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
  768. package/dist/cssm/components/ModalCard/types.js.map +1 -1
  769. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  770. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +0 -4
  771. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  772. package/dist/cssm/components/ModalOutlet/ModalOutlet.js.map +1 -1
  773. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -1
  774. package/dist/cssm/components/ModalOverlay/ModalOverlay.js.map +1 -1
  775. package/dist/cssm/components/ModalPage/ModalPageBase.js.map +1 -1
  776. package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
  777. package/dist/cssm/components/ModalPage/types.js.map +1 -1
  778. package/dist/cssm/components/ModalPageFooter/ModalPageFooter.js.map +1 -1
  779. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  780. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  781. package/dist/cssm/components/ModalRoot/useModalRootManager.js.map +1 -1
  782. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  783. package/dist/cssm/components/NumberInputLike/NumberInputLike.js.map +1 -1
  784. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +12 -3
  785. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  786. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  787. package/dist/cssm/components/Pagination/Pagination.js +14 -6
  788. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  789. package/dist/cssm/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
  790. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -1
  791. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -1
  792. package/dist/cssm/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -1
  793. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  794. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  795. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +0 -5
  796. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  797. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  798. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  799. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  800. package/dist/cssm/components/PanelSpinner/PanelSpinner.js.map +1 -1
  801. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  802. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  803. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  804. package/dist/cssm/components/Popper/Popper.js +13 -7
  805. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  806. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  807. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  808. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  809. package/dist/cssm/components/Radio/Radio.js +2 -2
  810. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  811. package/dist/cssm/components/Radio/RadioInput/RadioInput.js.map +1 -1
  812. package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
  813. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  814. package/dist/cssm/components/Removable/Removable.module.css +0 -4
  815. package/dist/cssm/components/Removable/RemovableIos.js.map +1 -1
  816. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  817. package/dist/cssm/components/Root/Root.js.map +1 -1
  818. package/dist/cssm/components/RootComponent/RootComponent.js.map +1 -1
  819. package/dist/cssm/components/ScreenSpinner/ScreenSpinnerSwapIcon.js.map +1 -1
  820. package/dist/cssm/components/ScreenSpinner/context.js.map +1 -1
  821. package/dist/cssm/components/ScreenSpinner/types.js.map +1 -1
  822. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +14 -4
  823. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  824. package/dist/cssm/components/Search/Search.js.map +1 -1
  825. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  826. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  827. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  828. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  829. package/dist/cssm/components/SelectionControl/SelectionControl.js.map +1 -1
  830. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
  831. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  832. package/dist/cssm/components/SimpleCell/Chevron/Chevron.js.map +1 -1
  833. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  834. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +3 -5
  835. package/dist/cssm/components/SimpleGrid/SimpleGrid.js.map +1 -1
  836. package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
  837. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  838. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  839. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  840. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.js.map +1 -1
  841. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.module.css +2 -4
  842. package/dist/cssm/components/Snackbar/utils.js.map +1 -1
  843. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  844. package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
  845. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  846. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  847. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  848. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  849. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  850. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  851. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  852. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  853. package/dist/cssm/components/Tabs/TabsModeContext.js.map +1 -1
  854. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  855. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  856. package/dist/cssm/components/Tappable/state.js.map +1 -1
  857. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  858. package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
  859. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  860. package/dist/cssm/components/TooltipBase/TooltipBase.js.map +1 -1
  861. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  862. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  863. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
  864. package/dist/cssm/components/Typography/EllipsisText/EllipsisText.js.map +1 -1
  865. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  866. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  867. package/dist/cssm/components/Typography/Typography.js.map +1 -1
  868. package/dist/cssm/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
  869. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  870. package/dist/cssm/components/View/View.js.map +1 -1
  871. package/dist/cssm/components/View/View.module.css +1 -3
  872. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  873. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  874. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  875. package/dist/cssm/helpers/math.js.map +1 -1
  876. package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  877. package/dist/cssm/hooks/useAutoDetectColorScheme.js +8 -27
  878. package/dist/cssm/hooks/useAutoDetectColorScheme.js.map +1 -1
  879. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  880. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  881. package/dist/cssm/hooks/useDraggableWithDomApi/types.js.map +1 -1
  882. package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
  883. package/dist/cssm/hooks/useFloatingElement.js.map +1 -1
  884. package/dist/cssm/hooks/useFocusTrap/FocusGuard.js.map +1 -1
  885. package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js +10 -2
  886. package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  887. package/dist/cssm/hooks/useFocusVisibleClassName.js.map +1 -1
  888. package/dist/cssm/hooks/useGlobalEscKeyDown.js.map +1 -1
  889. package/dist/cssm/hooks/useMediaQueryMatch.js +25 -0
  890. package/dist/cssm/hooks/useMediaQueryMatch.js.map +1 -0
  891. package/dist/cssm/hooks/useMergeProps.js.map +1 -1
  892. package/dist/cssm/hooks/useModalManager/types.js.map +1 -1
  893. package/dist/cssm/hooks/usePagination.js.map +1 -1
  894. package/dist/cssm/hooks/usePatchChildren.js.map +1 -1
  895. package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.js → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js} +2 -2
  896. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js.map +1 -0
  897. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarHolder.js +5 -2
  898. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarHolder.js.map +1 -1
  899. package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarsContainer.js → SnackbarsContainer/SnackbarsContainer.js} +3 -3
  900. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.js.map +1 -0
  901. package/dist/cssm/hooks/useSnackbarManager/types.js.map +1 -1
  902. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  903. package/dist/cssm/index.js +1 -1
  904. package/dist/cssm/index.js.map +1 -1
  905. package/dist/cssm/lib/SSR.js.map +1 -1
  906. package/dist/cssm/lib/accessibility.js.map +1 -1
  907. package/dist/cssm/lib/adaptivity/functions.js +6 -0
  908. package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
  909. package/dist/cssm/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
  910. package/dist/cssm/lib/animation/useCSSTransition.js +4 -2
  911. package/dist/cssm/lib/animation/useCSSTransition.js.map +1 -1
  912. package/dist/cssm/lib/animation/useReducedMotion.js +2 -20
  913. package/dist/cssm/lib/animation/useReducedMotion.js.map +1 -1
  914. package/dist/cssm/lib/calendar.js.map +1 -1
  915. package/dist/cssm/lib/date.js.map +1 -1
  916. package/dist/cssm/lib/dom.js.map +1 -1
  917. package/dist/cssm/lib/floating/functions.js.map +1 -1
  918. package/dist/cssm/lib/floating/types/component.js.map +1 -1
  919. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +6 -4
  920. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  921. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  922. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -2
  923. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  924. package/dist/cssm/lib/getNavId.js.map +1 -1
  925. package/dist/cssm/lib/layouts/layoutProps.js +17 -0
  926. package/dist/cssm/lib/layouts/layoutProps.js.map +1 -1
  927. package/dist/cssm/lib/layouts/resolveLayoutProps.js.map +1 -1
  928. package/dist/cssm/lib/layouts/types.js.map +1 -1
  929. package/dist/cssm/lib/select.js.map +1 -1
  930. package/dist/cssm/lib/sheet/useBottomSheet.js.map +1 -1
  931. package/dist/cssm/lib/tokens/TokensClassProvider.js.map +1 -1
  932. package/dist/cssm/lib/tokens/types.js.map +1 -1
  933. package/dist/cssm/lib/utils.js +3 -0
  934. package/dist/cssm/lib/utils.js.map +1 -1
  935. package/dist/cssm/styles/layout.css +36 -0
  936. package/dist/cssm/types.js +4 -1
  937. package/dist/cssm/types.js.map +1 -1
  938. package/dist/helpers/math.d.ts +1 -1
  939. package/dist/helpers/math.d.ts.map +1 -1
  940. package/dist/helpers/math.js.map +1 -1
  941. package/dist/hooks/useAdaptivityWithJSMediaQueries.d.ts +5 -1
  942. package/dist/hooks/useAdaptivityWithJSMediaQueries.d.ts.map +1 -1
  943. package/dist/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  944. package/dist/hooks/useAutoDetectColorScheme.d.ts.map +1 -1
  945. package/dist/hooks/useAutoDetectColorScheme.js +8 -27
  946. package/dist/hooks/useAutoDetectColorScheme.js.map +1 -1
  947. package/dist/hooks/useCalendar.d.ts +1 -1
  948. package/dist/hooks/useCalendar.d.ts.map +1 -1
  949. package/dist/hooks/useCalendar.js.map +1 -1
  950. package/dist/hooks/useDateInput.d.ts +5 -5
  951. package/dist/hooks/useDateInput.d.ts.map +1 -1
  952. package/dist/hooks/useDateInput.js.map +1 -1
  953. package/dist/hooks/useDraggableWithDomApi/types.d.ts +1 -1
  954. package/dist/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
  955. package/dist/hooks/useDraggableWithDomApi/types.js.map +1 -1
  956. package/dist/hooks/useEnsuredControl.d.ts +4 -4
  957. package/dist/hooks/useEnsuredControl.d.ts.map +1 -1
  958. package/dist/hooks/useEnsuredControl.js.map +1 -1
  959. package/dist/hooks/useFloatingElement.d.ts +4 -4
  960. package/dist/hooks/useFloatingElement.d.ts.map +1 -1
  961. package/dist/hooks/useFloatingElement.js.map +1 -1
  962. package/dist/hooks/useFocusTrap/FocusGuard.d.ts +1 -1
  963. package/dist/hooks/useFocusTrap/FocusGuard.d.ts.map +1 -1
  964. package/dist/hooks/useFocusTrap/FocusGuard.js.map +1 -1
  965. package/dist/hooks/useFocusTrap/useFocusTrap.d.ts +6 -10
  966. package/dist/hooks/useFocusTrap/useFocusTrap.d.ts.map +1 -1
  967. package/dist/hooks/useFocusTrap/useFocusTrap.js +10 -2
  968. package/dist/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  969. package/dist/hooks/useFocusVisibleClassName.d.ts +3 -3
  970. package/dist/hooks/useFocusVisibleClassName.d.ts.map +1 -1
  971. package/dist/hooks/useFocusVisibleClassName.js.map +1 -1
  972. package/dist/hooks/useGlobalEscKeyDown.d.ts +1 -1
  973. package/dist/hooks/useGlobalEscKeyDown.d.ts.map +1 -1
  974. package/dist/hooks/useGlobalEscKeyDown.js.map +1 -1
  975. package/dist/hooks/useMediaQueryMatch.d.ts +6 -0
  976. package/dist/hooks/useMediaQueryMatch.d.ts.map +1 -0
  977. package/dist/hooks/useMediaQueryMatch.js +25 -0
  978. package/dist/hooks/useMediaQueryMatch.js.map +1 -0
  979. package/dist/hooks/useMergeProps.d.ts +1 -1
  980. package/dist/hooks/useMergeProps.d.ts.map +1 -1
  981. package/dist/hooks/useMergeProps.js.map +1 -1
  982. package/dist/hooks/useModalManager/types.d.ts +8 -8
  983. package/dist/hooks/useModalManager/types.d.ts.map +1 -1
  984. package/dist/hooks/useModalManager/types.js.map +1 -1
  985. package/dist/hooks/usePagination.d.ts +4 -4
  986. package/dist/hooks/usePagination.d.ts.map +1 -1
  987. package/dist/hooks/usePagination.js.map +1 -1
  988. package/dist/hooks/usePatchChildren.d.ts +1 -1
  989. package/dist/hooks/usePatchChildren.d.ts.map +1 -1
  990. package/dist/hooks/usePatchChildren.js.map +1 -1
  991. package/dist/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.d.ts → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.d.ts} +1 -1
  992. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.d.ts.map +1 -0
  993. package/dist/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.js → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js} +10 -10
  994. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js.map +1 -0
  995. package/dist/hooks/useSnackbarManager/components/SnackbarHolder.d.ts.map +1 -1
  996. package/dist/hooks/useSnackbarManager/components/SnackbarHolder.js +5 -2
  997. package/dist/hooks/useSnackbarManager/components/SnackbarHolder.js.map +1 -1
  998. package/dist/hooks/useSnackbarManager/components/{SnackbarsContainer.d.ts → SnackbarsContainer/SnackbarsContainer.d.ts} +2 -2
  999. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.d.ts.map +1 -0
  1000. package/dist/hooks/useSnackbarManager/components/{SnackbarsContainer.js → SnackbarsContainer/SnackbarsContainer.js} +10 -10
  1001. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.js.map +1 -0
  1002. package/dist/hooks/useSnackbarManager/types.d.ts +11 -11
  1003. package/dist/hooks/useSnackbarManager/types.d.ts.map +1 -1
  1004. package/dist/hooks/useSnackbarManager/types.js.map +1 -1
  1005. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts +1 -1
  1006. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -1
  1007. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  1008. package/dist/index.d.ts +3 -2
  1009. package/dist/index.d.ts.map +1 -1
  1010. package/dist/index.js +1 -1
  1011. package/dist/index.js.map +1 -1
  1012. package/dist/lib/SSR.d.ts +4 -4
  1013. package/dist/lib/SSR.d.ts.map +1 -1
  1014. package/dist/lib/SSR.js.map +1 -1
  1015. package/dist/lib/accessibility.d.ts +1 -1
  1016. package/dist/lib/accessibility.d.ts.map +1 -1
  1017. package/dist/lib/accessibility.js.map +1 -1
  1018. package/dist/lib/adaptivity/functions.d.ts.map +1 -1
  1019. package/dist/lib/adaptivity/functions.js +6 -0
  1020. package/dist/lib/adaptivity/functions.js.map +1 -1
  1021. package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts +6 -6
  1022. package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts.map +1 -1
  1023. package/dist/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
  1024. package/dist/lib/animation/useCSSTransition.d.ts +11 -11
  1025. package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
  1026. package/dist/lib/animation/useCSSTransition.js +4 -2
  1027. package/dist/lib/animation/useCSSTransition.js.map +1 -1
  1028. package/dist/lib/animation/useReducedMotion.d.ts.map +1 -1
  1029. package/dist/lib/animation/useReducedMotion.js +2 -20
  1030. package/dist/lib/animation/useReducedMotion.js.map +1 -1
  1031. package/dist/lib/calendar.d.ts +5 -5
  1032. package/dist/lib/calendar.d.ts.map +1 -1
  1033. package/dist/lib/calendar.js.map +1 -1
  1034. package/dist/lib/date.d.ts +10 -10
  1035. package/dist/lib/date.d.ts.map +1 -1
  1036. package/dist/lib/date.js.map +1 -1
  1037. package/dist/lib/dom.d.ts +2 -2
  1038. package/dist/lib/dom.d.ts.map +1 -1
  1039. package/dist/lib/dom.js.map +1 -1
  1040. package/dist/lib/floating/functions.d.ts +2 -2
  1041. package/dist/lib/floating/functions.d.ts.map +1 -1
  1042. package/dist/lib/floating/functions.js.map +1 -1
  1043. package/dist/lib/floating/types/component.d.ts +9 -9
  1044. package/dist/lib/floating/types/component.d.ts.map +1 -1
  1045. package/dist/lib/floating/types/component.js.map +1 -1
  1046. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +14 -14
  1047. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
  1048. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +6 -4
  1049. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  1050. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +15 -15
  1051. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  1052. package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  1053. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -2
  1054. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  1055. package/dist/lib/getNavId.d.ts +2 -2
  1056. package/dist/lib/getNavId.d.ts.map +1 -1
  1057. package/dist/lib/getNavId.js.map +1 -1
  1058. package/dist/lib/layouts/layoutProps.d.ts +2 -0
  1059. package/dist/lib/layouts/layoutProps.d.ts.map +1 -1
  1060. package/dist/lib/layouts/layoutProps.js +17 -0
  1061. package/dist/lib/layouts/layoutProps.js.map +1 -1
  1062. package/dist/lib/layouts/resolveLayoutProps.d.ts +6 -6
  1063. package/dist/lib/layouts/resolveLayoutProps.d.ts.map +1 -1
  1064. package/dist/lib/layouts/resolveLayoutProps.js.map +1 -1
  1065. package/dist/lib/layouts/types.d.ts +39 -27
  1066. package/dist/lib/layouts/types.d.ts.map +1 -1
  1067. package/dist/lib/layouts/types.js.map +1 -1
  1068. package/dist/lib/select.d.ts +2 -2
  1069. package/dist/lib/select.d.ts.map +1 -1
  1070. package/dist/lib/select.js.map +1 -1
  1071. package/dist/lib/sheet/useBottomSheet.d.ts +4 -4
  1072. package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -1
  1073. package/dist/lib/sheet/useBottomSheet.js.map +1 -1
  1074. package/dist/lib/tokens/TokensClassProvider.js.map +1 -1
  1075. package/dist/lib/tokens/types.d.ts +2 -2
  1076. package/dist/lib/tokens/types.d.ts.map +1 -1
  1077. package/dist/lib/tokens/types.js.map +1 -1
  1078. package/dist/lib/utils.d.ts +3 -3
  1079. package/dist/lib/utils.d.ts.map +1 -1
  1080. package/dist/lib/utils.js +3 -0
  1081. package/dist/lib/utils.js.map +1 -1
  1082. package/dist/types.d.ts +17 -10
  1083. package/dist/types.d.ts.map +1 -1
  1084. package/dist/types.js +4 -1
  1085. package/dist/types.js.map +1 -1
  1086. package/dist/vkui.css +1 -1
  1087. package/dist/vkui.css.map +1 -1
  1088. package/package.json +3 -3
  1089. package/src/components/Accordion/Accordion.tsx +10 -6
  1090. package/src/components/Accordion/AccordionIcon.tsx +31 -0
  1091. package/src/components/Accordion/AccordionSummary.tsx +5 -9
  1092. package/src/components/ActionSheet/ActionSheet.tsx +14 -10
  1093. package/src/components/ActionSheet/ActionSheetContext.ts +3 -3
  1094. package/src/components/ActionSheet/types.ts +8 -8
  1095. package/src/components/ActionSheetItem/ActionSheetItem.module.css +0 -1
  1096. package/src/components/ActionSheetItem/ActionSheetItem.module.css.d.ts.map +1 -1
  1097. package/src/components/ActionSheetItem/ActionSheetItem.tsx +15 -15
  1098. package/src/components/ActionSheetItem/subcomponents/Radio/Radio.tsx +1 -1
  1099. package/src/components/AdaptivityProvider/AdaptivityContext.tsx +7 -7
  1100. package/src/components/Alert/Alert.tsx +17 -17
  1101. package/src/components/Alert/AlertBase.tsx +2 -2
  1102. package/src/components/Alert/AlertTypography.tsx +1 -1
  1103. package/src/components/AppRoot/AppRoot.tsx +9 -9
  1104. package/src/components/AppRoot/AppRootContext.ts +4 -4
  1105. package/src/components/AppRoot/AppRootPortal.tsx +2 -2
  1106. package/src/components/AppRoot/ScrollContext.tsx +5 -5
  1107. package/src/components/AppRoot/types.ts +4 -4
  1108. package/src/components/AspectRatio/AspectRatio.tsx +2 -2
  1109. package/src/components/Avatar/Avatar.module.css +0 -5
  1110. package/src/components/Avatar/Avatar.module.css.d.ts.map +1 -1
  1111. package/src/components/Avatar/Avatar.tsx +6 -2
  1112. package/src/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.tsx +1 -1
  1113. package/src/components/Badge/Badge.tsx +1 -1
  1114. package/src/components/Banner/Banner.tsx +12 -12
  1115. package/src/components/Box/Box.tsx +1 -1
  1116. package/src/components/Button/Button.tsx +19 -12
  1117. package/src/components/ButtonGroup/ButtonGroup.tsx +4 -4
  1118. package/src/components/Calendar/Calendar.tsx +17 -17
  1119. package/src/components/CalendarDay/CalendarDay.tsx +18 -18
  1120. package/src/components/CalendarDays/CalendarDays.tsx +14 -14
  1121. package/src/components/CalendarHeader/CalendarHeader.tsx +19 -19
  1122. package/src/components/CalendarRange/CalendarRange.tsx +12 -12
  1123. package/src/components/CalendarTime/CalendarTime.tsx +14 -14
  1124. package/src/components/CalendarTime/CalendarTimePicker.tsx +3 -3
  1125. package/src/components/Card/Card.tsx +1 -1
  1126. package/src/components/CardGrid/CardGrid.tsx +2 -2
  1127. package/src/components/CardScroll/CardScroll.tsx +3 -3
  1128. package/src/components/CarouselBase/Bullets.tsx +1 -1
  1129. package/src/components/CarouselBase/CarouselViewPort.tsx +1 -1
  1130. package/src/components/CarouselBase/ScrollArrows.tsx +2 -2
  1131. package/src/components/CarouselBase/helpers.ts +4 -4
  1132. package/src/components/CarouselBase/types.ts +23 -23
  1133. package/src/components/Cell/Cell.tsx +8 -8
  1134. package/src/components/Cell/CellCheckbox/CellCheckbox.tsx +1 -1
  1135. package/src/components/Cell/CellDragger/CellDragger.tsx +2 -2
  1136. package/src/components/CellButton/CellButton.module.css +159 -7
  1137. package/src/components/CellButton/CellButton.module.css.d.ts.map +1 -1
  1138. package/src/components/CellButton/CellButton.tsx +154 -11
  1139. package/src/components/Checkbox/Checkbox.tsx +16 -9
  1140. package/src/components/Checkbox/CheckboxInput/CheckboxInput.tsx +20 -14
  1141. package/src/components/ChipsInput/ChipsInput.tsx +1 -1
  1142. package/src/components/ChipsInput/useChipsInput.ts +3 -3
  1143. package/src/components/ChipsInputBase/Chip/Chip.tsx +9 -9
  1144. package/src/components/ChipsInputBase/types.ts +28 -22
  1145. package/src/components/ChipsSelect/ChipsSelect.tsx +13 -13
  1146. package/src/components/ChipsSelect/useChipsSelect.ts +22 -21
  1147. package/src/components/Clickable/Clickable.tsx +1 -1
  1148. package/src/components/Clickable/useState.tsx +13 -13
  1149. package/src/components/ConfigProvider/ConfigProvider.tsx +2 -1
  1150. package/src/components/ContentBadge/ContentBadge.tsx +4 -4
  1151. package/src/components/ContentCard/ContentCard.tsx +8 -8
  1152. package/src/components/Counter/Counter.tsx +4 -4
  1153. package/src/components/CustomScrollView/CustomScrollView.tsx +6 -6
  1154. package/src/components/CustomSelect/CustomSelect.module.css +0 -6
  1155. package/src/components/CustomSelect/CustomSelect.module.css.d.ts.map +1 -1
  1156. package/src/components/CustomSelect/CustomSelect.tsx +42 -29
  1157. package/src/components/CustomSelect/CustomSelectClearButton.tsx +2 -2
  1158. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.tsx +20 -14
  1159. package/src/components/CustomSelect/hooks/useDropdownOpenedController.ts +2 -2
  1160. package/src/components/CustomSelect/hooks/useSelectedOptionController.ts +1 -1
  1161. package/src/components/CustomSelect/types.ts +1 -1
  1162. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +8 -8
  1163. package/src/components/CustomSelectOption/CustomSelectOption.tsx +9 -9
  1164. package/src/components/DateInput/DateInput.tsx +27 -35
  1165. package/src/components/DateInput/hooks.ts +7 -7
  1166. package/src/components/DateRangeInput/DateRangeInput.tsx +28 -36
  1167. package/src/components/DropZone/DropZone.tsx +5 -2
  1168. package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.tsx +1 -1
  1169. package/src/components/DropdownIcon/DropdownIcon.tsx +1 -1
  1170. package/src/components/Epic/Epic.tsx +1 -1
  1171. package/src/components/Epic/ScrollSaver.tsx +1 -1
  1172. package/src/components/File/File.tsx +15 -9
  1173. package/src/components/FixedLayout/FixedLayout.tsx +3 -3
  1174. package/src/components/Flex/Flex.tsx +8 -23
  1175. package/src/components/Flex/FlexItem/FlexItem.module.css +0 -22
  1176. package/src/components/Flex/FlexItem/FlexItem.module.css.d.ts.map +1 -1
  1177. package/src/components/Flex/FlexItem/FlexItem.tsx +17 -44
  1178. package/src/components/FloatingArrow/FloatingArrow.tsx +9 -9
  1179. package/src/components/FocusTrap/FocusTrap.tsx +0 -3
  1180. package/src/components/FormField/FormField.tsx +8 -8
  1181. package/src/components/FormFieldClearButton/FormFieldClearButton.tsx +2 -2
  1182. package/src/components/FormItem/FormItem.module.css +1 -2
  1183. package/src/components/FormItem/FormItem.module.css.d.ts.map +1 -1
  1184. package/src/components/FormItem/FormItem.tsx +10 -10
  1185. package/src/components/FormItem/context.ts +2 -2
  1186. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +4 -4
  1187. package/src/components/FormStatus/FormStatus.tsx +2 -2
  1188. package/src/components/Gallery/Gallery.tsx +2 -2
  1189. package/src/components/Gradient/Gradient.tsx +2 -2
  1190. package/src/components/GridAvatar/GridAvatar.tsx +1 -1
  1191. package/src/components/Group/Group.tsx +2 -2
  1192. package/src/components/Group/GroupContainer.tsx +3 -3
  1193. package/src/components/Group/GroupExpandedContent.tsx +1 -1
  1194. package/src/components/Header/Header.tsx +11 -11
  1195. package/src/components/HorizontalCell/HorizontalCell.tsx +7 -7
  1196. package/src/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.tsx +4 -4
  1197. package/src/components/HorizontalScroll/HorizontalScroll.tsx +63 -18
  1198. package/src/components/IconButton/IconButton.tsx +1 -1
  1199. package/src/components/Image/Image.tsx +5 -5
  1200. package/src/components/ImageBase/ImageBase.tsx +19 -15
  1201. package/src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.tsx +1 -1
  1202. package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.tsx +3 -3
  1203. package/src/components/ImageBase/ImageBaseOverlay/types.ts +3 -3
  1204. package/src/components/ImageBase/types.ts +3 -3
  1205. package/src/components/Input/Input.tsx +13 -7
  1206. package/src/components/InputLike/InputLike.tsx +3 -3
  1207. package/src/components/Link/Link.tsx +4 -4
  1208. package/src/components/List/List.tsx +1 -1
  1209. package/src/components/MiniInfoCell/MiniInfoCell.tsx +5 -5
  1210. package/src/components/ModalCard/ModalCardInternal.tsx +1 -1
  1211. package/src/components/ModalCard/types.ts +13 -13
  1212. package/src/components/ModalCardBase/ModalCardBase.module.css +0 -4
  1213. package/src/components/ModalCardBase/ModalCardBase.module.css.d.ts.map +1 -1
  1214. package/src/components/ModalCardBase/ModalCardBase.tsx +14 -14
  1215. package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -1
  1216. package/src/components/ModalOutlet/ModalOutlet.tsx +3 -3
  1217. package/src/components/ModalOutsideButton/ModalOutsideButton.tsx +1 -1
  1218. package/src/components/ModalOverlay/ModalOverlay.tsx +7 -7
  1219. package/src/components/ModalPage/ModalPageBase.tsx +2 -2
  1220. package/src/components/ModalPage/ModalPageInternal.tsx +2 -2
  1221. package/src/components/ModalPage/types.ts +27 -27
  1222. package/src/components/ModalPageFooter/ModalPageFooter.tsx +2 -2
  1223. package/src/components/ModalPageHeader/ModalPageHeader.tsx +1 -1
  1224. package/src/components/ModalRoot/types.ts +15 -15
  1225. package/src/components/ModalRoot/useModalRootManager.tsx +19 -19
  1226. package/src/components/NativeSelect/NativeSelect.tsx +20 -14
  1227. package/src/components/NumberInputLike/NumberInputLike.tsx +3 -3
  1228. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +16 -8
  1229. package/src/components/OnboardingTooltip/OnboardingTooltipContainer.tsx +1 -1
  1230. package/src/components/Pagination/Pagination.tsx +27 -25
  1231. package/src/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.tsx +5 -3
  1232. package/src/components/Pagination/PaginationPage/PaginationPageButton.tsx +3 -3
  1233. package/src/components/Pagination/PaginationPage/PaginationPageEllipsis.tsx +1 -1
  1234. package/src/components/Pagination/PaginationPage/usePaginationPageClasses.ts +3 -3
  1235. package/src/components/Panel/Panel.tsx +3 -3
  1236. package/src/components/PanelHeader/PanelHeader.module.css +0 -5
  1237. package/src/components/PanelHeader/PanelHeader.module.css.d.ts.map +1 -1
  1238. package/src/components/PanelHeader/PanelHeader.tsx +14 -12
  1239. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +2 -2
  1240. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +3 -3
  1241. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +3 -3
  1242. package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +3 -3
  1243. package/src/components/PanelSpinner/PanelSpinner.tsx +1 -1
  1244. package/src/components/Placeholder/Placeholder.tsx +5 -5
  1245. package/src/components/PopoutWrapper/PopoutWrapper.tsx +6 -6
  1246. package/src/components/Popover/Popover.tsx +5 -5
  1247. package/src/components/Popper/Popper.tsx +17 -15
  1248. package/src/components/Progress/Progress.tsx +4 -4
  1249. package/src/components/PullToRefresh/PullToRefresh.tsx +2 -2
  1250. package/src/components/PullToRefresh/PullToRefreshSpinner.tsx +4 -4
  1251. package/src/components/Radio/Radio.tsx +18 -12
  1252. package/src/components/Radio/RadioInput/RadioInput.tsx +15 -9
  1253. package/src/components/RadioGroup/RadioGroup.tsx +1 -1
  1254. package/src/components/Removable/Removable.module.css +0 -4
  1255. package/src/components/Removable/Removable.module.css.d.ts.map +1 -1
  1256. package/src/components/Removable/Removable.tsx +13 -10
  1257. package/src/components/Removable/RemovableIos.tsx +6 -3
  1258. package/src/components/RichCell/RichCell.tsx +15 -15
  1259. package/src/components/Root/Root.tsx +3 -3
  1260. package/src/components/RootComponent/RootComponent.tsx +2 -2
  1261. package/src/components/ScreenSpinner/ScreenSpinnerSwapIcon.tsx +1 -1
  1262. package/src/components/ScreenSpinner/context.ts +2 -2
  1263. package/src/components/ScreenSpinner/types.tsx +5 -5
  1264. package/src/components/ScrollArrow/ScrollArrow.tsx +27 -4
  1265. package/src/components/Search/Search.tsx +28 -22
  1266. package/src/components/SegmentedControl/SegmentedControl.tsx +6 -6
  1267. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +3 -3
  1268. package/src/components/SelectMimicry/SelectMimicry.tsx +3 -3
  1269. package/src/components/SelectTypography/SelectTypography.tsx +1 -1
  1270. package/src/components/SelectionControl/SelectionControl.tsx +1 -1
  1271. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.tsx +2 -2
  1272. package/src/components/Separator/Separator.tsx +5 -5
  1273. package/src/components/SimpleCell/Chevron/Chevron.tsx +1 -1
  1274. package/src/components/SimpleCell/SimpleCell.module.css +3 -5
  1275. package/src/components/SimpleCell/SimpleCell.module.css.d.ts.map +1 -1
  1276. package/src/components/SimpleCell/SimpleCell.tsx +14 -14
  1277. package/src/components/SimpleGrid/SimpleGrid.tsx +6 -6
  1278. package/src/components/Skeleton/Skeleton.tsx +5 -5
  1279. package/src/components/Slider/Slider.tsx +19 -17
  1280. package/src/components/Slider/SliderThumb/SliderThumb.tsx +9 -7
  1281. package/src/components/Snackbar/Snackbar.tsx +19 -13
  1282. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css +2 -4
  1283. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css.d.ts.map +1 -1
  1284. package/src/components/Snackbar/subcomponents/Basic/Basic.tsx +6 -6
  1285. package/src/components/Snackbar/utils.ts +1 -1
  1286. package/src/components/Spacing/Spacing.tsx +2 -2
  1287. package/src/components/Spinner/Spinner.tsx +4 -4
  1288. package/src/components/SplitCol/SplitCol.tsx +7 -7
  1289. package/src/components/SplitLayout/SplitLayout.tsx +15 -9
  1290. package/src/components/SubnavigationBar/SubnavigationBar.tsx +2 -2
  1291. package/src/components/SubnavigationButton/SubnavigationButton.tsx +8 -8
  1292. package/src/components/Switch/Switch.tsx +15 -9
  1293. package/src/components/Tabbar/Tabbar.tsx +2 -2
  1294. package/src/components/TabbarItem/TabbarItem.tsx +3 -3
  1295. package/src/components/Tabs/Tabs.tsx +7 -7
  1296. package/src/components/Tabs/TabsModeContext.ts +1 -1
  1297. package/src/components/TabsItem/TabsItem.tsx +5 -5
  1298. package/src/components/Tappable/Tappable.tsx +3 -3
  1299. package/src/components/Tappable/state.tsx +2 -2
  1300. package/src/components/Textarea/Textarea.tsx +14 -10
  1301. package/src/components/ToolButton/ToolButton.tsx +4 -4
  1302. package/src/components/Tooltip/Tooltip.tsx +6 -6
  1303. package/src/components/TooltipBase/TooltipBase.tsx +10 -10
  1304. package/src/components/Touch/Touch.tsx +16 -16
  1305. package/src/components/Typography/Caption/Caption.tsx +1 -1
  1306. package/src/components/Typography/DisplayTitle/DisplayTitle.tsx +1 -1
  1307. package/src/components/Typography/EllipsisText/EllipsisText.tsx +3 -3
  1308. package/src/components/Typography/Headline/Headline.tsx +1 -1
  1309. package/src/components/Typography/Title/Title.tsx +1 -1
  1310. package/src/components/Typography/Typography.tsx +6 -6
  1311. package/src/components/UnstyledTextField/UnstyledTextField.tsx +1 -1
  1312. package/src/components/UsersStack/UsersStack.tsx +6 -6
  1313. package/src/components/View/View.module.css +1 -3
  1314. package/src/components/View/View.module.css.d.ts.map +1 -1
  1315. package/src/components/View/View.tsx +4 -4
  1316. package/src/components/View/ViewInfinite.tsx +11 -11
  1317. package/src/components/WriteBar/WriteBar.tsx +21 -15
  1318. package/src/components/WriteBarIcon/WriteBarIcon.tsx +3 -3
  1319. package/src/helpers/math.ts +1 -1
  1320. package/src/hooks/useAdaptivityWithJSMediaQueries.ts +3 -1
  1321. package/src/hooks/useAutoDetectColorScheme.ts +8 -30
  1322. package/src/hooks/useCalendar.ts +2 -2
  1323. package/src/hooks/useDateInput.ts +5 -5
  1324. package/src/hooks/useDraggableWithDomApi/types.ts +1 -1
  1325. package/src/hooks/useEnsuredControl.ts +4 -4
  1326. package/src/hooks/useFloatingElement.tsx +4 -4
  1327. package/src/hooks/useFocusTrap/FocusGuard.tsx +1 -1
  1328. package/src/hooks/useFocusTrap/useFocusTrap.tsx +17 -15
  1329. package/src/hooks/useFocusVisibleClassName.ts +3 -3
  1330. package/src/hooks/useGlobalEscKeyDown.ts +2 -2
  1331. package/src/hooks/useMediaQueryMatch.ts +34 -0
  1332. package/src/hooks/useMergeProps.ts +2 -2
  1333. package/src/hooks/useModalManager/types.ts +8 -8
  1334. package/src/hooks/usePagination.ts +4 -4
  1335. package/src/hooks/usePatchChildren.ts +1 -1
  1336. package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.tsx → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.tsx} +3 -3
  1337. package/src/hooks/useSnackbarManager/components/SnackbarHolder.tsx +6 -2
  1338. package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.tsx → SnackbarsContainer/SnackbarsContainer.tsx} +6 -6
  1339. package/src/hooks/useSnackbarManager/types.ts +11 -11
  1340. package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +1 -1
  1341. package/src/index.ts +6 -2
  1342. package/src/lib/SSR.tsx +4 -4
  1343. package/src/lib/accessibility.ts +1 -1
  1344. package/src/lib/adaptivity/functions.ts +10 -1
  1345. package/src/lib/animation/useCSSKeyframesAnimationController.ts +6 -6
  1346. package/src/lib/animation/useCSSTransition.ts +15 -13
  1347. package/src/lib/animation/useReducedMotion.ts +2 -25
  1348. package/src/lib/calendar.ts +5 -2
  1349. package/src/lib/date.ts +11 -11
  1350. package/src/lib/dom.tsx +2 -2
  1351. package/src/lib/floating/functions.ts +2 -2
  1352. package/src/lib/floating/types/component.ts +9 -9
  1353. package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +26 -19
  1354. package/src/lib/floating/useFloatingWithInteractions/types.ts +15 -15
  1355. package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +2 -2
  1356. package/src/lib/getNavId.ts +2 -2
  1357. package/src/lib/layouts/layoutProps.ts +5 -0
  1358. package/src/lib/layouts/resolveLayoutProps.ts +3 -3
  1359. package/src/lib/layouts/types.ts +40 -27
  1360. package/src/lib/select.ts +2 -2
  1361. package/src/lib/sheet/useBottomSheet.ts +4 -4
  1362. package/src/lib/tokens/TokensClassProvider.tsx +1 -1
  1363. package/src/lib/tokens/types.ts +2 -2
  1364. package/src/lib/utils.ts +8 -3
  1365. package/src/types.ts +18 -10
  1366. package/dist/components/DropZone/components/DropZoneGrid.d.ts.map +0 -1
  1367. package/dist/components/DropZone/components/DropZoneGrid.js.map +0 -1
  1368. package/dist/cssm/components/DropZone/components/DropZoneGrid.js.map +0 -1
  1369. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.js.map +0 -1
  1370. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarsContainer.js.map +0 -1
  1371. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.d.ts.map +0 -1
  1372. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.js.map +0 -1
  1373. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer.d.ts.map +0 -1
  1374. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer.js.map +0 -1
  1375. /package/dist/cssm/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.js +0 -0
  1376. /package/dist/cssm/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css +0 -0
  1377. /package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css} +0 -0
  1378. /package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css → SnackbarsContainer/SnackbarsContainer.module.css} +0 -0
  1379. /package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css +0 -0
  1380. /package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css.d.ts.map +0 -0
  1381. /package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css} +0 -0
  1382. /package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css.d.ts.map → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css.d.ts.map} +0 -0
  1383. /package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css → SnackbarsContainer/SnackbarsContainer.module.css} +0 -0
  1384. /package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css.d.ts.map → SnackbarsContainer/SnackbarsContainer.module.css.d.ts.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SimpleGrid/SimpleGrid.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport {\n calculateGap,\n columnGapClassNames,\n type GapsProp,\n resolveLayoutProps,\n rowGapClassNames,\n} from '../../lib/layouts';\nimport type { LayoutProps } from '../../lib/layouts/types';\nimport type { CSSCustomProperties } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport type { RootComponentProps } from '../RootComponent/RootComponent';\nimport styles from './SimpleGrid.module.css';\n\nconst marginClassNames = {\n 'auto': styles.marginAuto,\n 'auto-inline': styles.marginAutoInline,\n 'auto-block': styles.marginAutoBlock,\n};\n\nconst alignClassNames = {\n start: styles.alignStart,\n end: styles.alignEnd,\n center: styles.alignCenter,\n stretch: styles.alignStretch,\n baseline: styles.alignBaseline,\n};\n\nconst displayClassNames = {\n 'none': styles.displayNone,\n 'inline-grid': styles.displayInlineGrid,\n};\n\nexport interface SimpleGridProps extends RootComponentProps<HTMLElement>, LayoutProps {\n /**\n * Количество колонок.\n */\n columns?: number;\n /**\n * Отступы между элементами.\n * Значение из списка предопределённых пресетов или число, которое будет приведено к пикселям.\n * Через массив можно задать отступ между столбцами и строками [row, column], если они отличаются.\n */\n gap?: GapsProp;\n /**\n * Управляет отступами вокруг контейнера\n * Значение `none` позволяет отключить отступы\n * Значение `auto` позволяет задать платформенные отступы\n * Значение `auto-inline` позволяет задать платформенные inline-отступы\n * Значение `auto-block` позволяет задать платформенные block-отступы.\n */\n margin?: 'none' | 'auto' | 'auto-inline' | 'auto-block';\n /**\n * Вместо задания количества колонок, можно указать минимальную ширину элементов.\n */\n minColWidth?: number;\n /**\n * Выравнивание элементов по вспомогательной оси, эквивалентно `align-items`.\n */\n align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';\n /**\n * Возможность задать css-свойство `display`.\n */\n display?: 'none' | 'grid' | 'inline-grid';\n}\n\n/**\n * @see https://vkui.io/components/simple-grid\n */\nexport const SimpleGrid = ({\n columns = 1,\n gap = 0,\n margin = 'none',\n minColWidth,\n align = 'stretch',\n display = 'grid',\n ...restProps\n}: SimpleGridProps) => {\n const resolvedProps = resolveLayoutProps(restProps);\n const style: CSSCustomProperties = {};\n const [rowGap, columnGap] = calculateGap(gap);\n if (typeof rowGap === 'number') {\n style['--vkui_internal--row_gap'] = `${rowGap}px`;\n }\n if (typeof columnGap === 'number') {\n style['--vkui_internal--column_gap'] = `${columnGap}px`;\n }\n style['--vkui_internal--grid_columns'] = `${columns}`;\n if (minColWidth) {\n style['--vkui_internal--min_col_width'] = `${minColWidth}px`;\n }\n\n return (\n <RootComponent\n baseClassName={classNames(\n styles.host,\n margin !== 'none' && marginClassNames[margin],\n alignClassNames[align],\n minColWidth && styles.withMinWidth,\n typeof columnGap === 'string' && columnGapClassNames[columnGap],\n typeof rowGap === 'string' && rowGapClassNames[rowGap],\n display !== 'grid' && displayClassNames[display],\n )}\n baseStyle={style}\n {...resolvedProps}\n />\n );\n};\n"],"names":["classNames","calculateGap","columnGapClassNames","resolveLayoutProps","rowGapClassNames","RootComponent","styles","marginClassNames","marginAuto","marginAutoInline","marginAutoBlock","alignClassNames","start","alignStart","end","alignEnd","center","alignCenter","stretch","alignStretch","baseline","alignBaseline","displayClassNames","displayNone","displayInlineGrid","SimpleGrid","columns","gap","margin","minColWidth","align","display","restProps","resolvedProps","style","rowGap","columnGap","baseClassName","host","withMinWidth","baseStyle"],"mappings":";AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SACEC,YAAY,EACZC,mBAAmB,EAEnBC,kBAAkB,EAClBC,gBAAgB,QACX,6BAAoB;AAG3B,SAASC,aAAa,QAAQ,oCAAiC;AAE/D,OAAOC,YAAY,0BAA0B;AAE7C,MAAMC,mBAAmB;IACvB,QAAQD,OAAOE,UAAU;IACzB,eAAeF,OAAOG,gBAAgB;IACtC,cAAcH,OAAOI,eAAe;AACtC;AAEA,MAAMC,kBAAkB;IACtBC,OAAON,OAAOO,UAAU;IACxBC,KAAKR,OAAOS,QAAQ;IACpBC,QAAQV,OAAOW,WAAW;IAC1BC,SAASZ,OAAOa,YAAY;IAC5BC,UAAUd,OAAOe,aAAa;AAChC;AAEA,MAAMC,oBAAoB;IACxB,QAAQhB,OAAOiB,WAAW;IAC1B,eAAejB,OAAOkB,iBAAiB;AACzC;AAmCA;;CAEC,GACD,OAAO,MAAMC,aAAa,CAAC,EACzBC,UAAU,CAAC,EACXC,MAAM,CAAC,EACPC,SAAS,MAAM,EACfC,WAAW,EACXC,QAAQ,SAAS,EACjBC,UAAU,MAAM,EAChB,GAAGC,WACa;IAChB,MAAMC,gBAAgB9B,mBAAmB6B;IACzC,MAAME,QAA6B,CAAC;IACpC,MAAM,CAACC,QAAQC,UAAU,GAAGnC,aAAa0B;IACzC,IAAI,OAAOQ,WAAW,UAAU;QAC9BD,KAAK,CAAC,2BAA2B,GAAG,GAAGC,OAAO,EAAE,CAAC;IACnD;IACA,IAAI,OAAOC,cAAc,UAAU;QACjCF,KAAK,CAAC,8BAA8B,GAAG,GAAGE,UAAU,EAAE,CAAC;IACzD;IACAF,KAAK,CAAC,gCAAgC,GAAG,GAAGR,SAAS;IACrD,IAAIG,aAAa;QACfK,KAAK,CAAC,iCAAiC,GAAG,GAAGL,YAAY,EAAE,CAAC;IAC9D;IAEA,qBACE,KAACxB;QACCgC,eAAerC,WACbM,OAAOgC,IAAI,EACXV,WAAW,UAAUrB,gBAAgB,CAACqB,OAAO,EAC7CjB,eAAe,CAACmB,MAAM,EACtBD,eAAevB,OAAOiC,YAAY,EAClC,OAAOH,cAAc,YAAYlC,mBAAmB,CAACkC,UAAU,EAC/D,OAAOD,WAAW,YAAY/B,gBAAgB,CAAC+B,OAAO,EACtDJ,YAAY,UAAUT,iBAAiB,CAACS,QAAQ;QAElDS,WAAWN;QACV,GAAGD,aAAa;;AAGvB,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/SimpleGrid/SimpleGrid.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport {\n calculateGap,\n columnGapClassNames,\n type GapsProp,\n resolveLayoutProps,\n rowGapClassNames,\n} from '../../lib/layouts';\nimport type { LayoutProps } from '../../lib/layouts/types';\nimport type { CSSCustomProperties } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport type { RootComponentProps } from '../RootComponent/RootComponent';\nimport styles from './SimpleGrid.module.css';\n\nconst marginClassNames = {\n 'auto': styles.marginAuto,\n 'auto-inline': styles.marginAutoInline,\n 'auto-block': styles.marginAutoBlock,\n};\n\nconst alignClassNames = {\n start: styles.alignStart,\n end: styles.alignEnd,\n center: styles.alignCenter,\n stretch: styles.alignStretch,\n baseline: styles.alignBaseline,\n};\n\nconst displayClassNames = {\n 'none': styles.displayNone,\n 'inline-grid': styles.displayInlineGrid,\n};\n\nexport interface SimpleGridProps extends RootComponentProps<HTMLElement>, LayoutProps {\n /**\n * Количество колонок.\n */\n columns?: number | undefined;\n /**\n * Отступы между элементами.\n * Значение из списка предопределённых пресетов или число, которое будет приведено к пикселям.\n * Через массив можно задать отступ между столбцами и строками [row, column], если они отличаются.\n */\n gap?: GapsProp | undefined;\n /**\n * Управляет отступами вокруг контейнера\n * Значение `none` позволяет отключить отступы\n * Значение `auto` позволяет задать платформенные отступы\n * Значение `auto-inline` позволяет задать платформенные inline-отступы\n * Значение `auto-block` позволяет задать платформенные block-отступы.\n */\n margin?: 'none' | 'auto' | 'auto-inline' | 'auto-block' | undefined;\n /**\n * Вместо задания количества колонок, можно указать минимальную ширину элементов.\n */\n minColWidth?: number | undefined;\n /**\n * Выравнивание элементов по вспомогательной оси, эквивалентно `align-items`.\n */\n align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline' | undefined;\n /**\n * Возможность задать css-свойство `display`.\n */\n display?: 'none' | 'grid' | 'inline-grid' | undefined;\n}\n\n/**\n * @see https://vkui.io/components/simple-grid\n */\nexport const SimpleGrid = ({\n columns = 1,\n gap = 0,\n margin = 'none',\n minColWidth,\n align = 'stretch',\n display = 'grid',\n ...restProps\n}: SimpleGridProps) => {\n const resolvedProps = resolveLayoutProps(restProps);\n const style: CSSCustomProperties = {};\n const [rowGap, columnGap] = calculateGap(gap);\n if (typeof rowGap === 'number') {\n style['--vkui_internal--row_gap'] = `${rowGap}px`;\n }\n if (typeof columnGap === 'number') {\n style['--vkui_internal--column_gap'] = `${columnGap}px`;\n }\n style['--vkui_internal--grid_columns'] = `${columns}`;\n if (minColWidth) {\n style['--vkui_internal--min_col_width'] = `${minColWidth}px`;\n }\n\n return (\n <RootComponent\n baseClassName={classNames(\n styles.host,\n margin !== 'none' && marginClassNames[margin],\n alignClassNames[align],\n minColWidth && styles.withMinWidth,\n typeof columnGap === 'string' && columnGapClassNames[columnGap],\n typeof rowGap === 'string' && rowGapClassNames[rowGap],\n display !== 'grid' && displayClassNames[display],\n )}\n baseStyle={style}\n {...resolvedProps}\n />\n );\n};\n"],"names":["classNames","calculateGap","columnGapClassNames","resolveLayoutProps","rowGapClassNames","RootComponent","styles","marginClassNames","marginAuto","marginAutoInline","marginAutoBlock","alignClassNames","start","alignStart","end","alignEnd","center","alignCenter","stretch","alignStretch","baseline","alignBaseline","displayClassNames","displayNone","displayInlineGrid","SimpleGrid","columns","gap","margin","minColWidth","align","display","restProps","resolvedProps","style","rowGap","columnGap","baseClassName","host","withMinWidth","baseStyle"],"mappings":";AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SACEC,YAAY,EACZC,mBAAmB,EAEnBC,kBAAkB,EAClBC,gBAAgB,QACX,6BAAoB;AAG3B,SAASC,aAAa,QAAQ,oCAAiC;AAE/D,OAAOC,YAAY,0BAA0B;AAE7C,MAAMC,mBAAmB;IACvB,QAAQD,OAAOE,UAAU;IACzB,eAAeF,OAAOG,gBAAgB;IACtC,cAAcH,OAAOI,eAAe;AACtC;AAEA,MAAMC,kBAAkB;IACtBC,OAAON,OAAOO,UAAU;IACxBC,KAAKR,OAAOS,QAAQ;IACpBC,QAAQV,OAAOW,WAAW;IAC1BC,SAASZ,OAAOa,YAAY;IAC5BC,UAAUd,OAAOe,aAAa;AAChC;AAEA,MAAMC,oBAAoB;IACxB,QAAQhB,OAAOiB,WAAW;IAC1B,eAAejB,OAAOkB,iBAAiB;AACzC;AAmCA;;CAEC,GACD,OAAO,MAAMC,aAAa,CAAC,EACzBC,UAAU,CAAC,EACXC,MAAM,CAAC,EACPC,SAAS,MAAM,EACfC,WAAW,EACXC,QAAQ,SAAS,EACjBC,UAAU,MAAM,EAChB,GAAGC,WACa;IAChB,MAAMC,gBAAgB9B,mBAAmB6B;IACzC,MAAME,QAA6B,CAAC;IACpC,MAAM,CAACC,QAAQC,UAAU,GAAGnC,aAAa0B;IACzC,IAAI,OAAOQ,WAAW,UAAU;QAC9BD,KAAK,CAAC,2BAA2B,GAAG,GAAGC,OAAO,EAAE,CAAC;IACnD;IACA,IAAI,OAAOC,cAAc,UAAU;QACjCF,KAAK,CAAC,8BAA8B,GAAG,GAAGE,UAAU,EAAE,CAAC;IACzD;IACAF,KAAK,CAAC,gCAAgC,GAAG,GAAGR,SAAS;IACrD,IAAIG,aAAa;QACfK,KAAK,CAAC,iCAAiC,GAAG,GAAGL,YAAY,EAAE,CAAC;IAC9D;IAEA,qBACE,KAACxB;QACCgC,eAAerC,WACbM,OAAOgC,IAAI,EACXV,WAAW,UAAUrB,gBAAgB,CAACqB,OAAO,EAC7CjB,eAAe,CAACmB,MAAM,EACtBD,eAAevB,OAAOiC,YAAY,EAClC,OAAOH,cAAc,YAAYlC,mBAAmB,CAACkC,UAAU,EAC/D,OAAOD,WAAW,YAAY/B,gBAAgB,CAAC+B,OAAO,EACtDJ,YAAY,UAAUT,iBAAiB,CAACS,QAAQ;QAElDS,WAAWN;QACV,GAAGD,aAAa;;AAGvB,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useBooleanState } from '../../hooks/useBooleanState';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useResizeObserver } from '../../hooks/useResizeObserver';\nimport { useStateWithPrev } from '../../hooks/useStateWithPrev';\nimport { millisecondsInSecond } from '../../lib/date';\nimport { useDOM } from '../../lib/dom';\nimport { animationVisibilityDelayStyles } from '../../styles/animationVisibilityDelay';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Skeleton.module.css';\nimport stylesDelay from '../../styles/animationVisibilityDelay.module.css';\n\nconst CUSTOM_PROPERTY_GRADIENT_LEFT = '--vkui_internal--skeleton_gradient_left';\n\n/**\n * Синхронизирует анимацию скелетонов с помощью временных отрезков.\n *\n * ## visibilitychange\n *\n * В синхронизацию не заложен механизм перехода на оптимизации браузеров при\n * переходе на другую вкладку, поскольку нет уверенности в реальности таких\n * кейсов со скелетонами. Если такой кейс принесут, необходимо обработать\n * событие `visibilitychange` используя функцию `syncAnimation`.\n *\n * Смотри https://developer.chrome.com/blog/page-lifecycle-api/.\n *\n * @param duration Длительность анимации в секундах.\n */\nfunction useSkeletonSyncAnimation(disableAnimation: boolean, duration = 1.5) {\n const [isAnimationStarted, setIsAnimationStartedTrue, setIsAnimationStartedFalse] =\n useBooleanState();\n const timer = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n const syncAnimation = React.useCallback(() => {\n clearTimeout(timer.current);\n setIsAnimationStartedFalse();\n\n const durationInMilliseconds = duration * millisecondsInSecond;\n const delay = durationInMilliseconds - (performance.now() % durationInMilliseconds);\n\n timer.current = setTimeout(setIsAnimationStartedTrue, delay);\n\n return () => clearTimeout(timer.current);\n }, [duration, setIsAnimationStartedFalse, setIsAnimationStartedTrue]);\n\n React.useEffect(() => {\n if (disableAnimation) {\n setIsAnimationStartedFalse();\n return;\n }\n\n if (isAnimationStarted) {\n return;\n }\n\n return syncAnimation();\n }, [disableAnimation, isAnimationStarted, setIsAnimationStartedFalse, syncAnimation]);\n\n return isAnimationStarted;\n}\n\n/**\n * Вычисляет позицию скелетона.\n */\nfunction useSkeletonPosition(rootRef: React.RefObject<HTMLElement | null>) {\n const { document, window } = useDOM();\n const [[skeletonGradientLeft, prevSkeletonGradientLeft], setSkeletonGradientLeft] =\n useStateWithPrev('0');\n\n const updatePosition = React.useCallback(() => {\n const el = rootRef.current;\n if (!el || !document) {\n return;\n }\n\n const value = -(el.getBoundingClientRect().left - document.body.getBoundingClientRect().left);\n const gradientValue = value === 0 ? '0' : `${value}px`;\n if (prevSkeletonGradientLeft !== gradientValue) {\n setSkeletonGradientLeft(gradientValue);\n }\n }, [document, prevSkeletonGradientLeft, rootRef, setSkeletonGradientLeft]);\n\n React.useEffect(updatePosition, [updatePosition]);\n useResizeObserver(window, updatePosition);\n\n return skeletonGradientLeft;\n}\n\nexport interface SkeletonProps\n extends HTMLAttributesWithRootRef<HTMLDivElement | HTMLSpanElement>,\n Pick<\n React.CSSProperties,\n | 'width'\n | 'height'\n | 'inlineSize'\n | 'blockSize'\n | 'maxWidth'\n | 'maxInlineSize'\n | 'borderRadius'\n | 'margin'\n > {\n /**\n * Начальный цвет анимации.\n */\n colorFrom?: string;\n\n /**\n * Финальный цвет анимации.\n */\n colorTo?: string;\n\n /**\n * Выключает анимацию, в результате чего показывается только один цвет.\n */\n noAnimation?: boolean;\n\n /**\n * Длительность анимации в секундах.\n */\n duration?: number;\n\n /**\n * Задерживает отрисовку элемента на заданное количество миллисекунд.\n */\n visibilityDelay?: number;\n}\n\n/**\n * > Старайтесь минимизировать количество заглушек на экране. Не каждый элемент\n * > на экране должен заменяться заглушкой.\n * >\n * > Текстовые блоки лучше сокращать до трёх строк. Ширина последней строки\n * > скелета вычисляется, как 75% от ширины текстового блока. Высота скелетона\n * > автоматически подстраивается под размер шрифта, поэтому идеально\n * > вписывается в слоты компонентов, которые обычно ожидают текст.\n *\n * @since 6.1.0\n *\n * @see https://vkui.io/components/skeleton\n *\n */\nexport const Skeleton = ({\n width,\n height,\n inlineSize,\n blockSize,\n maxWidth,\n maxInlineSize,\n borderRadius,\n children,\n colorFrom,\n colorTo,\n noAnimation = false,\n duration,\n margin,\n getRootRef,\n visibilityDelay,\n ...restProps\n}: SkeletonProps): React.ReactNode => {\n const rootRef = useExternRef(getRootRef);\n\n const disableAnimation = !useSkeletonSyncAnimation(noAnimation, duration);\n const skeletonGradientLeft = useSkeletonPosition(rootRef);\n\n const skeletonStyle: React.CSSProperties & CSSCustomProperties = {\n width,\n height,\n inlineSize,\n blockSize,\n maxWidth,\n maxInlineSize,\n borderRadius,\n margin,\n [CUSTOM_PROPERTY_GRADIENT_LEFT]: skeletonGradientLeft,\n };\n\n if (colorFrom) {\n skeletonStyle['--vkui_internal--skeleton_color_from'] = colorFrom;\n }\n\n if (colorTo) {\n skeletonStyle['--vkui_internal--skeleton_color_to'] = colorTo;\n }\n\n if (Number.isFinite(duration)) {\n skeletonStyle['--vkui_internal--skeleton_animation_duration'] = `${duration}s`;\n }\n\n return (\n <RootComponent\n getRootRef={rootRef}\n Component=\"span\"\n baseClassName={classNames(\n styles.host,\n disableAnimation && styles.disableAnimation,\n visibilityDelay && stylesDelay.visibilityDelay,\n )}\n baseStyle={mergeStyle(skeletonStyle, animationVisibilityDelayStyles(visibilityDelay))}\n {...restProps}\n >\n {children || <>&zwnj;</>}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","mergeStyle","useBooleanState","useExternRef","useResizeObserver","useStateWithPrev","millisecondsInSecond","useDOM","animationVisibilityDelayStyles","RootComponent","styles","stylesDelay","CUSTOM_PROPERTY_GRADIENT_LEFT","useSkeletonSyncAnimation","disableAnimation","duration","isAnimationStarted","setIsAnimationStartedTrue","setIsAnimationStartedFalse","timer","useRef","undefined","syncAnimation","useCallback","clearTimeout","current","durationInMilliseconds","delay","performance","now","setTimeout","useEffect","useSkeletonPosition","rootRef","document","window","skeletonGradientLeft","prevSkeletonGradientLeft","setSkeletonGradientLeft","updatePosition","el","value","getBoundingClientRect","left","body","gradientValue","Skeleton","width","height","inlineSize","blockSize","maxWidth","maxInlineSize","borderRadius","children","colorFrom","colorTo","noAnimation","margin","getRootRef","visibilityDelay","restProps","skeletonStyle","Number","isFinite","Component","baseClassName","host","baseStyle"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useBooleanState } from '../../hooks/useBooleanState';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useResizeObserver } from '../../hooks/useResizeObserver';\nimport { useStateWithPrev } from '../../hooks/useStateWithPrev';\nimport { millisecondsInSecond } from '../../lib/date';\nimport { useDOM } from '../../lib/dom';\nimport { animationVisibilityDelayStyles } from '../../styles/animationVisibilityDelay';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Skeleton.module.css';\nimport stylesDelay from '../../styles/animationVisibilityDelay.module.css';\n\nconst CUSTOM_PROPERTY_GRADIENT_LEFT = '--vkui_internal--skeleton_gradient_left';\n\n/**\n * Синхронизирует анимацию скелетонов с помощью временных отрезков.\n *\n * ## visibilitychange\n *\n * В синхронизацию не заложен механизм перехода на оптимизации браузеров при\n * переходе на другую вкладку, поскольку нет уверенности в реальности таких\n * кейсов со скелетонами. Если такой кейс принесут, необходимо обработать\n * событие `visibilitychange` используя функцию `syncAnimation`.\n *\n * Смотри https://developer.chrome.com/blog/page-lifecycle-api/.\n *\n * @param duration Длительность анимации в секундах.\n */\nfunction useSkeletonSyncAnimation(disableAnimation: boolean, duration = 1.5) {\n const [isAnimationStarted, setIsAnimationStartedTrue, setIsAnimationStartedFalse] =\n useBooleanState();\n const timer = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n const syncAnimation = React.useCallback(() => {\n clearTimeout(timer.current);\n setIsAnimationStartedFalse();\n\n const durationInMilliseconds = duration * millisecondsInSecond;\n const delay = durationInMilliseconds - (performance.now() % durationInMilliseconds);\n\n timer.current = setTimeout(setIsAnimationStartedTrue, delay);\n\n return () => clearTimeout(timer.current);\n }, [duration, setIsAnimationStartedFalse, setIsAnimationStartedTrue]);\n\n React.useEffect(() => {\n if (disableAnimation) {\n setIsAnimationStartedFalse();\n return;\n }\n\n if (isAnimationStarted) {\n return;\n }\n\n return syncAnimation();\n }, [disableAnimation, isAnimationStarted, setIsAnimationStartedFalse, syncAnimation]);\n\n return isAnimationStarted;\n}\n\n/**\n * Вычисляет позицию скелетона.\n */\nfunction useSkeletonPosition(rootRef: React.RefObject<HTMLElement | null>) {\n const { document, window } = useDOM();\n const [[skeletonGradientLeft, prevSkeletonGradientLeft], setSkeletonGradientLeft] =\n useStateWithPrev('0');\n\n const updatePosition = React.useCallback(() => {\n const el = rootRef.current;\n if (!el || !document) {\n return;\n }\n\n const value = -(el.getBoundingClientRect().left - document.body.getBoundingClientRect().left);\n const gradientValue = value === 0 ? '0' : `${value}px`;\n if (prevSkeletonGradientLeft !== gradientValue) {\n setSkeletonGradientLeft(gradientValue);\n }\n }, [document, prevSkeletonGradientLeft, rootRef, setSkeletonGradientLeft]);\n\n React.useEffect(updatePosition, [updatePosition]);\n useResizeObserver(window, updatePosition);\n\n return skeletonGradientLeft;\n}\n\nexport interface SkeletonProps\n extends HTMLAttributesWithRootRef<HTMLDivElement | HTMLSpanElement>,\n Pick<\n React.CSSProperties,\n | 'width'\n | 'height'\n | 'inlineSize'\n | 'blockSize'\n | 'maxWidth'\n | 'maxInlineSize'\n | 'borderRadius'\n | 'margin'\n > {\n /**\n * Начальный цвет анимации.\n */\n colorFrom?: string | undefined;\n\n /**\n * Финальный цвет анимации.\n */\n colorTo?: string | undefined;\n\n /**\n * Выключает анимацию, в результате чего показывается только один цвет.\n */\n noAnimation?: boolean | undefined;\n\n /**\n * Длительность анимации в секундах.\n */\n duration?: number | undefined;\n\n /**\n * Задерживает отрисовку элемента на заданное количество миллисекунд.\n */\n visibilityDelay?: number | undefined;\n}\n\n/**\n * > Старайтесь минимизировать количество заглушек на экране. Не каждый элемент\n * > на экране должен заменяться заглушкой.\n * >\n * > Текстовые блоки лучше сокращать до трёх строк. Ширина последней строки\n * > скелета вычисляется, как 75% от ширины текстового блока. Высота скелетона\n * > автоматически подстраивается под размер шрифта, поэтому идеально\n * > вписывается в слоты компонентов, которые обычно ожидают текст.\n *\n * @since 6.1.0\n *\n * @see https://vkui.io/components/skeleton\n *\n */\nexport const Skeleton = ({\n width,\n height,\n inlineSize,\n blockSize,\n maxWidth,\n maxInlineSize,\n borderRadius,\n children,\n colorFrom,\n colorTo,\n noAnimation = false,\n duration,\n margin,\n getRootRef,\n visibilityDelay,\n ...restProps\n}: SkeletonProps): React.ReactNode => {\n const rootRef = useExternRef(getRootRef);\n\n const disableAnimation = !useSkeletonSyncAnimation(noAnimation, duration);\n const skeletonGradientLeft = useSkeletonPosition(rootRef);\n\n const skeletonStyle: React.CSSProperties & CSSCustomProperties = {\n width,\n height,\n inlineSize,\n blockSize,\n maxWidth,\n maxInlineSize,\n borderRadius,\n margin,\n [CUSTOM_PROPERTY_GRADIENT_LEFT]: skeletonGradientLeft,\n };\n\n if (colorFrom) {\n skeletonStyle['--vkui_internal--skeleton_color_from'] = colorFrom;\n }\n\n if (colorTo) {\n skeletonStyle['--vkui_internal--skeleton_color_to'] = colorTo;\n }\n\n if (Number.isFinite(duration)) {\n skeletonStyle['--vkui_internal--skeleton_animation_duration'] = `${duration}s`;\n }\n\n return (\n <RootComponent\n getRootRef={rootRef}\n Component=\"span\"\n baseClassName={classNames(\n styles.host,\n disableAnimation && styles.disableAnimation,\n visibilityDelay && stylesDelay.visibilityDelay,\n )}\n baseStyle={mergeStyle(skeletonStyle, animationVisibilityDelayStyles(visibilityDelay))}\n {...restProps}\n >\n {children || <>&zwnj;</>}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","mergeStyle","useBooleanState","useExternRef","useResizeObserver","useStateWithPrev","millisecondsInSecond","useDOM","animationVisibilityDelayStyles","RootComponent","styles","stylesDelay","CUSTOM_PROPERTY_GRADIENT_LEFT","useSkeletonSyncAnimation","disableAnimation","duration","isAnimationStarted","setIsAnimationStartedTrue","setIsAnimationStartedFalse","timer","useRef","undefined","syncAnimation","useCallback","clearTimeout","current","durationInMilliseconds","delay","performance","now","setTimeout","useEffect","useSkeletonPosition","rootRef","document","window","skeletonGradientLeft","prevSkeletonGradientLeft","setSkeletonGradientLeft","updatePosition","el","value","getBoundingClientRect","left","body","gradientValue","Skeleton","width","height","inlineSize","blockSize","maxWidth","maxInlineSize","borderRadius","children","colorFrom","colorTo","noAnimation","margin","getRootRef","visibilityDelay","restProps","skeletonStyle","Number","isFinite","Component","baseClassName","host","baseStyle"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { type CustomTouchEvent, type CustomTouchEventHandler, Touch } 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 { InternalDraggingType, InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst densityClassNames = {\n none: styles.densityNone,\n compact: styles.densityCompact,\n};\n\nconst sizeClassNames = {\n l: styles.sizeL,\n m: styles.sizeM,\n s: styles.sizeS,\n};\n\nexport interface SliderBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n /**\n * Минимальное значение слайдера.\n */\n min?: number;\n /**\n * Максимальное значение слайдера.\n */\n max?: number;\n /**\n * Шаг изменения значения слайдера.\n */\n step?: number;\n /**\n * Блокировка взаимодействия с компонентом.\n */\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 * Включает отображение всплывающей подсказки при взаимодействии с ползунком.\n */\n withTooltip?: boolean;\n /**\n * Размер ползунка.\n */\n size?: 's' | 'm' | 'l';\n /**\n * Передает атрибут `data-testid` для первого ползунка.\n */\n startThumbTestId?: string;\n /**\n * Передает атрибут `data-testid` для второго ползунка когда `multiple=true`.\n */\n endThumbTestId?: string;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n /**\n * Флаг множественного выбора (должен быть false или не указан).\n */\n multiple?: false;\n /**\n * Текущее значение слайдера.\n */\n value?: number;\n /**\n * Значение слайдера по умолчанию.\n */\n defaultValue?: number;\n /**\n * Обработчик изменения значения слайдера.\n */\n onChange?: (value: number, event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n /**\n * Флаг множественного выбора (должен быть true).\n */\n multiple: true;\n /**\n * Текущие значения слайдера в виде массива [начальное, конечное].\n */\n value?: [number, number];\n /**\n * Значения слайдера по умолчанию в виде массива [начальное, конечное].\n */\n defaultValue?: [number, number];\n /**\n * Обработчик изменения значений слайдера.\n */\n onChange?: (value: [number, number], event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\n/**\n * @see https://vkui.io/components/slider\n */\nexport const Slider = ({\n step = 1,\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 startThumbTestId,\n endThumbTestId,\n onChange,\n withTooltip,\n size = 'l',\n style: styleProp,\n ...restProps\n}: SliderProps | SliderMultipleProps): React.ReactNode => {\n const { density = 'none' } = useAdaptivity();\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\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 const [activeThumb, setActiveThumb] = React.useState<InternalDraggingType | null>(null);\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 = (\n nextValue: InternalValueState,\n event: CustomTouchEvent | React.ChangeEvent,\n ) => {\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: CustomTouchEventHandler = (event: CustomTouchEvent) => {\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 let nextStartX = event.startX - nextContainerX;\n if (isRtl) {\n nextStartX = nextContainerWidth - nextStartX;\n }\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 setActiveThumb(gesture.dragging);\n };\n\n const handlePointerMove: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + (isRtl ? -shiftX : 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: CustomTouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n setActiveThumb(null);\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 event,\n );\n };\n\n const style: CSSCustomProperties = {\n '--vkui_internal--Slider_start_value': String(startValueInPercent),\n '--vkui_internal--Slider_end_value': String(endReversedValueInPercent),\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles.host,\n disabled && styles.disabled,\n density !== 'regular' && densityClassNames[density],\n sizeClassNames[size],\n multiple && styles.multiple,\n isRtl && styles.rtl,\n className,\n )}\n style={mergeStyle(styleProp, style)}\n getRootRef={getRootRef}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles.track} />\n <div className={styles.trackFill} />\n <div ref={thumbsContainerRef} className={styles.thumbs}>\n <SliderThumb\n data-type=\"start\"\n className={classNames(styles.thumb, styles.thumbStart)}\n style={{\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'start',\n 'data-testid': startThumbTestId,\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 isActive={activeThumb === 'start'}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={classNames(styles.thumb, styles.thumbEnd)}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'end',\n 'data-testid': endThumbTestId,\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 isActive={activeThumb === 'end'}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","mergeStyle","useAdaptivity","useConfigDirection","useExternRef","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","styles","densityClassNames","none","densityNone","compact","densityCompact","sizeClassNames","l","sizeL","m","sizeM","s","sizeS","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","startThumbTestId","endThumbTestId","onChange","withTooltip","size","style","styleProp","restProps","density","direction","isRtl","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","activeThumb","setActiveThumb","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","String","data-value","host","rtl","onStart","onMove","onEnd","div","track","trackFill","ref","thumbs","data-type","thumb","thumbStart","zIndex","inputProps","isActive","thumbEnd"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { type CustomTouchEvent, type CustomTouchEventHandler, Touch } 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 { InternalDraggingType, InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst densityClassNames = {\n none: styles.densityNone,\n compact: styles.densityCompact,\n};\n\nconst sizeClassNames = {\n l: styles.sizeL,\n m: styles.sizeM,\n s: styles.sizeS,\n};\n\nexport interface SliderBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n /**\n * Минимальное значение слайдера.\n */\n min?: number | undefined;\n /**\n * Максимальное значение слайдера.\n */\n max?: number | undefined;\n /**\n * Шаг изменения значения слайдера.\n */\n step?: number | undefined;\n /**\n * Блокировка взаимодействия с компонентом.\n */\n disabled?: boolean | undefined;\n /**\n * Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.\n *\n * > Перебивает `aria-label`.\n */\n getAriaLabel?: ((index: number) => string) | undefined;\n /**\n * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.\n *\n * Полезно при использовании компонента как неконтролируемого.\n *\n * > Перебивает `aria-valuetext`.\n */\n getAriaValueText?: ((value: number, index: number) => string) | undefined;\n /**\n * Включает отображение всплывающей подсказки при взаимодействии с ползунком.\n */\n withTooltip?: boolean | undefined;\n /**\n * Размер ползунка.\n */\n size?: 's' | 'm' | 'l' | undefined;\n /**\n * Передает атрибут `data-testid` для первого ползунка.\n */\n startThumbTestId?: string | undefined;\n /**\n * Передает атрибут `data-testid` для второго ползунка когда `multiple=true`.\n */\n endThumbTestId?: string | undefined;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n /**\n * Флаг множественного выбора (должен быть false или не указан).\n */\n multiple?: false | undefined;\n /**\n * Текущее значение слайдера.\n */\n value?: number | undefined;\n /**\n * Значение слайдера по умолчанию.\n */\n defaultValue?: number | undefined;\n /**\n * Обработчик изменения значения слайдера.\n */\n onChange?: ((value: number, event: CustomTouchEvent | React.ChangeEvent) => void) | undefined;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n /**\n * Флаг множественного выбора (должен быть true).\n */\n multiple: true;\n /**\n * Текущие значения слайдера в виде массива [начальное, конечное].\n */\n value?: [number, number] | undefined;\n /**\n * Значения слайдера по умолчанию в виде массива [начальное, конечное].\n */\n defaultValue?: [number, number] | undefined;\n /**\n * Обработчик изменения значений слайдера.\n */\n onChange?:\n | ((value: [number, number], event: CustomTouchEvent | React.ChangeEvent) => void)\n | undefined;\n}\n\n/**\n * @see https://vkui.io/components/slider\n */\nexport const Slider = ({\n step = 1,\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 startThumbTestId,\n endThumbTestId,\n onChange,\n withTooltip,\n size = 'l',\n style: styleProp,\n ...restProps\n}: SliderProps | SliderMultipleProps): React.ReactNode => {\n const { density = 'none' } = useAdaptivity();\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\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 const [activeThumb, setActiveThumb] = React.useState<InternalDraggingType | null>(null);\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 = (\n nextValue: InternalValueState,\n event: CustomTouchEvent | React.ChangeEvent,\n ) => {\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: CustomTouchEventHandler = (event: CustomTouchEvent) => {\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 let nextStartX = event.startX - nextContainerX;\n if (isRtl) {\n nextStartX = nextContainerWidth - nextStartX;\n }\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 setActiveThumb(gesture.dragging);\n };\n\n const handlePointerMove: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + (isRtl ? -shiftX : 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: CustomTouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n setActiveThumb(null);\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 event,\n );\n };\n\n const style: CSSCustomProperties = {\n '--vkui_internal--Slider_start_value': String(startValueInPercent),\n '--vkui_internal--Slider_end_value': String(endReversedValueInPercent),\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles.host,\n disabled && styles.disabled,\n density !== 'regular' && densityClassNames[density],\n sizeClassNames[size],\n multiple && styles.multiple,\n isRtl && styles.rtl,\n className,\n )}\n style={mergeStyle(styleProp, style)}\n getRootRef={getRootRef}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles.track} />\n <div className={styles.trackFill} />\n <div ref={thumbsContainerRef} className={styles.thumbs}>\n <SliderThumb\n data-type=\"start\"\n className={classNames(styles.thumb, styles.thumbStart)}\n style={{\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'start',\n 'data-testid': startThumbTestId,\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 isActive={activeThumb === 'start'}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={classNames(styles.thumb, styles.thumbEnd)}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'end',\n 'data-testid': endThumbTestId,\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 isActive={activeThumb === 'end'}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","mergeStyle","useAdaptivity","useConfigDirection","useExternRef","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","styles","densityClassNames","none","densityNone","compact","densityCompact","sizeClassNames","l","sizeL","m","sizeM","s","sizeS","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","startThumbTestId","endThumbTestId","onChange","withTooltip","size","style","styleProp","restProps","density","direction","isRtl","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","activeThumb","setActiveThumb","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","String","data-value","host","rtl","onStart","onMove","onEnd","div","track","trackFill","ref","thumbs","data-type","thumb","thumbStart","zIndex","inputProps","isActive","thumbEnd"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Slider/SliderThumb/SliderThumb.tsx"],"sourcesContent":["'use client';\n/* eslint-disable jsdoc/require-jsdoc */\n\nimport * 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 { useFocusVisibleClassName } from '../../../hooks/useFocusVisibleClassName';\nimport {\n arrowMiddleware,\n convertFloatingDataToReactCSSProperties,\n flipMiddleware,\n offsetMiddleware,\n shiftMiddleware,\n useFloating,\n} from '../../../lib/floating';\nimport type { HasDataAttribute, HasRootRef } from '../../../types';\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 isActive?: boolean;\n}\n\nexport const SliderThumb = ({\n className,\n getRootRef,\n inputProps,\n withTooltip,\n isActive,\n ...restProps\n}: SliderThumbProps): React.ReactNode => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({\n focusVisible,\n mode: styles.focusVisible,\n });\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 [isHovered, setHoveredTrue, setHoveredFalse] = useBooleanState(false);\n\n const handleRootRef = useExternRef<HTMLSpanElement>(getRootRef, refs.setReference);\n\n const shouldShowTooltip = withTooltip && (focusVisible || isHovered || isActive);\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.host,\n focusVisibleClassNames,\n isActive && styles.active,\n isHovered && styles.hover,\n className,\n )}\n >\n <input\n {...inputProps}\n type=\"range\"\n className={styles.nativeInput}\n aria-orientation=\"horizontal\"\n onBlur={onBlur}\n onFocus={onFocus}\n />\n </span>\n {shouldShowTooltip && (\n <TooltipBase\n appearance=\"neutral\"\n getRootRef={refs.setFloating}\n style={convertFloatingDataToReactCSSProperties({\n strategy: floatingPositionStrategy,\n x: floatingDataX,\n y: floatingDataY,\n })}\n arrowProps={{\n coords: arrowCoords,\n placement: resolvedPlacement,\n getRootRef: setArrowRef,\n }}\n description={inputValue}\n />\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","classNames","useBooleanState","useExternRef","useFocusVisible","useFocusVisibleClassName","arrowMiddleware","convertFloatingDataToReactCSSProperties","flipMiddleware","offsetMiddleware","shiftMiddleware","useFloating","TooltipBase","styles","SliderThumb","className","getRootRef","inputProps","withTooltip","isActive","restProps","focusVisible","onBlur","onFocus","focusVisibleClassNames","mode","arrowRef","setArrowRef","useState","memoizedMiddlewares","useMemo","crossAxis","mainAxis","padding","element","x","floatingDataX","y","floatingDataY","placement","resolvedPlacement","refs","strategy","floatingPositionStrategy","middlewareData","arrow","arrowCoords","update","updateTooltipPosition","middleware","isHovered","setHoveredTrue","setHoveredFalse","handleRootRef","setReference","shouldShowTooltip","inputValue","value","useEffect","udpateTooltipPositionOnValueChange","Fragment","span","ref","onMouseEnter","onMouseLeave","host","active","hover","input","type","nativeInput","aria-orientation","appearance","setFloating","style","arrowProps","coords","description"],"mappings":"AAAA;;AACA,sCAAsC,GAEtC,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,wBAAwB,QAAQ,6CAA0C;AACnF,SACEC,eAAe,EACfC,uCAAuC,EACvCC,cAAc,EACdC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,QACN,iCAAwB;AAE/B,SAASC,WAAW,QAAQ,mCAAgC;AAC5D,OAAOC,YAAY,2BAA2B;AAY9C,OAAO,MAAMC,cAAc,CAAC,EAC1BC,SAAS,EACTC,UAAU,EACVC,UAAU,EACVC,WAAW,EACXC,QAAQ,EACR,GAAGC,WACc;IACjB,MAAM,EAAEC,YAAY,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGnB;IAC1C,MAAMoB,yBAAyBnB,yBAAyB;QACtDgB;QACAI,MAAMZ,OAAOQ,YAAY;IAC3B;IACA,MAAM,CAACK,UAAUC,YAAY,GAAG3B,MAAM4B,QAAQ,CAAwB;IAEtE,MAAMC,sBAAsB7B,MAAM8B,OAAO,CAAC;QACxC,OAAO;YACLrB,iBAAiB;gBACfsB,WAAW;gBACXC,UAAU;YACZ;YACAxB;YACAE,gBAAgB;gBAAEuB,SAAS;YAAE;YAC7B3B,gBAAgB;gBACd4B,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,GAAGrC,YAAY;QACd4B,WAAW;QACXU,YAAYpB;IACd;IAEA,MAAM,CAACqB,WAAWC,gBAAgBC,gBAAgB,GAAGlD,gBAAgB;IAErE,MAAMmD,gBAAgBlD,aAA8Ba,YAAYyB,KAAKa,YAAY;IAEjF,MAAMC,oBAAoBrC,eAAgBG,CAAAA,gBAAgB6B,aAAa/B,QAAO;IAE9E,MAAMqC,aAAavC,cAAcA,WAAWwC,KAAK;IACjDzD,MAAM0D,SAAS,CACb,SAASC;QACP,IAAIJ,qBAAqBC,eAAe,aAAa;YACnDR;QACF;IACF,GACA;QAACQ;QAAYR;QAAuBO;KAAkB;IAGxD,qBACE,MAACvD,MAAM4D,QAAQ;;0BACb,KAACC;gBACE,GAAGzC,SAAS;gBACb0C,KAAKT;gBACLU,cAAcZ;gBACda,cAAcZ;gBACdrC,WAAWd,WACTY,OAAOoD,IAAI,EACXzC,wBACAL,YAAYN,OAAOqD,MAAM,EACzBhB,aAAarC,OAAOsD,KAAK,EACzBpD;0BAGF,cAAA,KAACqD;oBACE,GAAGnD,UAAU;oBACdoD,MAAK;oBACLtD,WAAWF,OAAOyD,WAAW;oBAC7BC,oBAAiB;oBACjBjD,QAAQA;oBACRC,SAASA;;;YAGZgC,mCACC,KAAC3C;gBACC4D,YAAW;gBACXxD,YAAYyB,KAAKgC,WAAW;gBAC5BC,OAAOnE,wCAAwC;oBAC7CmC,UAAUC;oBACVR,GAAGC;oBACHC,GAAGC;gBACL;gBACAqC,YAAY;oBACVC,QAAQ9B;oBACRP,WAAWC;oBACXxB,YAAYW;gBACd;gBACAkD,aAAarB;;;;AAKvB,EAAE"}
1
+ {"version":3,"sources":["../../../../../src/components/Slider/SliderThumb/SliderThumb.tsx"],"sourcesContent":["'use client';\n/* eslint-disable jsdoc/require-jsdoc */\n\nimport * 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 { useFocusVisibleClassName } from '../../../hooks/useFocusVisibleClassName';\nimport {\n arrowMiddleware,\n convertFloatingDataToReactCSSProperties,\n flipMiddleware,\n offsetMiddleware,\n shiftMiddleware,\n useFloating,\n} from '../../../lib/floating';\nimport type { HasDataAttribute, HasRootRef } from '../../../types';\nimport { TooltipBase } from '../../TooltipBase/TooltipBase';\nimport styles from './SliderThumb.module.css';\n\ninterface SliderThumbProps extends HasRootRef<HTMLSpanElement>, HasDataAttribute {\n className?: string | undefined;\n style?: React.CSSProperties | undefined;\n inputProps?:\n | (React.InputHTMLAttributes<HTMLInputElement> &\n React.RefAttributes<HTMLInputElement> &\n HasDataAttribute)\n | undefined;\n withTooltip?: boolean | undefined;\n isActive?: boolean | undefined;\n}\n\nexport const SliderThumb = ({\n className,\n getRootRef,\n inputProps,\n withTooltip,\n isActive,\n ...restProps\n}: SliderThumbProps): React.ReactNode => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({\n focusVisible,\n mode: styles.focusVisible,\n });\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 [isHovered, setHoveredTrue, setHoveredFalse] = useBooleanState(false);\n\n const handleRootRef = useExternRef<HTMLSpanElement>(getRootRef, refs.setReference);\n\n const shouldShowTooltip = withTooltip && (focusVisible || isHovered || isActive);\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.host,\n focusVisibleClassNames,\n isActive && styles.active,\n isHovered && styles.hover,\n className,\n )}\n >\n <input\n {...inputProps}\n type=\"range\"\n className={styles.nativeInput}\n aria-orientation=\"horizontal\"\n onBlur={onBlur}\n onFocus={onFocus}\n />\n </span>\n {shouldShowTooltip && (\n <TooltipBase\n appearance=\"neutral\"\n getRootRef={refs.setFloating}\n style={convertFloatingDataToReactCSSProperties({\n strategy: floatingPositionStrategy,\n x: floatingDataX,\n y: floatingDataY,\n })}\n arrowProps={{\n coords: arrowCoords,\n placement: resolvedPlacement,\n getRootRef: setArrowRef,\n }}\n description={inputValue}\n />\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","classNames","useBooleanState","useExternRef","useFocusVisible","useFocusVisibleClassName","arrowMiddleware","convertFloatingDataToReactCSSProperties","flipMiddleware","offsetMiddleware","shiftMiddleware","useFloating","TooltipBase","styles","SliderThumb","className","getRootRef","inputProps","withTooltip","isActive","restProps","focusVisible","onBlur","onFocus","focusVisibleClassNames","mode","arrowRef","setArrowRef","useState","memoizedMiddlewares","useMemo","crossAxis","mainAxis","padding","element","x","floatingDataX","y","floatingDataY","placement","resolvedPlacement","refs","strategy","floatingPositionStrategy","middlewareData","arrow","arrowCoords","update","updateTooltipPosition","middleware","isHovered","setHoveredTrue","setHoveredFalse","handleRootRef","setReference","shouldShowTooltip","inputValue","value","useEffect","udpateTooltipPositionOnValueChange","Fragment","span","ref","onMouseEnter","onMouseLeave","host","active","hover","input","type","nativeInput","aria-orientation","appearance","setFloating","style","arrowProps","coords","description"],"mappings":"AAAA;;AACA,sCAAsC,GAEtC,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,wBAAwB,QAAQ,6CAA0C;AACnF,SACEC,eAAe,EACfC,uCAAuC,EACvCC,cAAc,EACdC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,QACN,iCAAwB;AAE/B,SAASC,WAAW,QAAQ,mCAAgC;AAC5D,OAAOC,YAAY,2BAA2B;AAc9C,OAAO,MAAMC,cAAc,CAAC,EAC1BC,SAAS,EACTC,UAAU,EACVC,UAAU,EACVC,WAAW,EACXC,QAAQ,EACR,GAAGC,WACc;IACjB,MAAM,EAAEC,YAAY,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGnB;IAC1C,MAAMoB,yBAAyBnB,yBAAyB;QACtDgB;QACAI,MAAMZ,OAAOQ,YAAY;IAC3B;IACA,MAAM,CAACK,UAAUC,YAAY,GAAG3B,MAAM4B,QAAQ,CAAwB;IAEtE,MAAMC,sBAAsB7B,MAAM8B,OAAO,CAAC;QACxC,OAAO;YACLrB,iBAAiB;gBACfsB,WAAW;gBACXC,UAAU;YACZ;YACAxB;YACAE,gBAAgB;gBAAEuB,SAAS;YAAE;YAC7B3B,gBAAgB;gBACd4B,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,GAAGrC,YAAY;QACd4B,WAAW;QACXU,YAAYpB;IACd;IAEA,MAAM,CAACqB,WAAWC,gBAAgBC,gBAAgB,GAAGlD,gBAAgB;IAErE,MAAMmD,gBAAgBlD,aAA8Ba,YAAYyB,KAAKa,YAAY;IAEjF,MAAMC,oBAAoBrC,eAAgBG,CAAAA,gBAAgB6B,aAAa/B,QAAO;IAE9E,MAAMqC,aAAavC,cAAcA,WAAWwC,KAAK;IACjDzD,MAAM0D,SAAS,CACb,SAASC;QACP,IAAIJ,qBAAqBC,eAAe,aAAa;YACnDR;QACF;IACF,GACA;QAACQ;QAAYR;QAAuBO;KAAkB;IAGxD,qBACE,MAACvD,MAAM4D,QAAQ;;0BACb,KAACC;gBACE,GAAGzC,SAAS;gBACb0C,KAAKT;gBACLU,cAAcZ;gBACda,cAAcZ;gBACdrC,WAAWd,WACTY,OAAOoD,IAAI,EACXzC,wBACAL,YAAYN,OAAOqD,MAAM,EACzBhB,aAAarC,OAAOsD,KAAK,EACzBpD;0BAGF,cAAA,KAACqD;oBACE,GAAGnD,UAAU;oBACdoD,MAAK;oBACLtD,WAAWF,OAAOyD,WAAW;oBAC7BC,oBAAiB;oBACjBjD,QAAQA;oBACRC,SAASA;;;YAGZgC,mCACC,KAAC3C;gBACC4D,YAAW;gBACXxD,YAAYyB,KAAKgC,WAAW;gBAC5BC,OAAOnE,wCAAwC;oBAC7CmC,UAAUC;oBACVR,GAAGC;oBACHC,GAAGC;gBACL;gBACAqC,YAAY;oBACVC,QAAQ9B;oBACRP,WAAWC;oBACXxB,YAAYW;gBACd;gBACAkD,aAAarB;;;;AAKvB,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Snackbar/Snackbar.tsx"],"sourcesContent":["'use client';\n\nimport { useContext } from 'react';\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useFocusWithin } from '../../hooks/useFocusWithin';\nimport { useGlobalEscKeyDown } from '../../hooks/useGlobalEscKeyDown';\nimport { useMediaQueries } from '../../hooks/useMediaQueries';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SnackbarsContainerContext } from '../../hooks/useSnackbarManager/components/SnackbarsContainerContext';\nimport { useCSSKeyframesAnimationController } from '../../lib/animation';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { getRelativeBoundingClientRect } from '../../lib/dom';\nimport { UIPanGestureRecognizer } from '../../lib/touch';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { HasDataAttribute, HasRootRef, HTMLAttributesWithRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Basic, type BasicProps } from './subcomponents/Basic/Basic';\nimport type { ShiftData, SnackbarPlacement } from './types';\nimport {\n getInitialShiftData,\n getMovedShiftData,\n resolveOffsetYCssStyle,\n shouldBeClosedByShiftData,\n} from './utils';\nimport styles from './Snackbar.module.css';\n\nexport type { BasicProps as SnackbarBasicProps };\n\nconst placementClassNames = {\n 'top-start': styles.placementTopStart,\n 'top': styles.placementTop,\n 'top-end': styles.placementTopEnd,\n 'bottom-start': styles.placementBottomStart,\n 'bottom': styles.placementBottom,\n 'bottom-end': styles.placementBottomEnd,\n};\n\nconst animationStateClassNames = {\n enter: styles.stateEnter,\n entering: styles.stateEntering,\n entered: styles.stateEntered,\n exit: styles.stateExit,\n exiting: styles.stateExiting,\n exited: undefined,\n};\n\nexport type SnackbarCloseReason = 'swipe' | 'timeout' | 'click-action' | 'escape-key' | 'manual';\n\nexport interface SnackbarProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'role'>,\n BasicProps {\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `root`: свойства для прокидывания в корень компонента;\n * - `action`: свойства для прокидывания в кнопку действия.\n */\n slotProps?: {\n root?: Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> &\n HasRootRef<HTMLDivElement> &\n HasDataAttribute;\n action?: React.HTMLAttributes<HTMLElement> & HasRootRef<HTMLElement> & HasDataAttribute;\n };\n /**\n * Задаёт расположение компонента.\n *\n * > Note: в мобильном режиме:\n * > - `\"top-start\"`/`\"top-end\"` перебивается на `\"top\"`, чтобы поведение было схожим с нативными\n * > уведомлениями;\n * > - `\"bottom\"` перебивается на `\"bottom-start\"`, чтобы избежать вызова системных\n * > функций, таких как **Pull To Refresh** и **Режим управления одной рукой**.\n * > - `\"bottom-start\"`/`\"bottom-end\"` закрываются смахиванием в любое из направлений\n * > по горизонтальной оси.\n */\n placement?: SnackbarPlacement;\n /**\n * Название кнопки действия в уведомлении\n * Не может использоваться одновременно с `subtitle`.\n */\n action?: React.ReactNode;\n /**\n * Будет вызвано при нажатии на кнопку действия.\n */\n onActionClick?: (event: React.MouseEvent) => void;\n /**\n * Время в миллисекундах, через которое плашка скроется.\n */\n duration?: number | null;\n /**\n * Обработчик закрытия уведомления.\n */\n onClose?: (reason: SnackbarCloseReason) => void;\n /**\n * Обработчик закрытия уведомления, срабатывающий после окончания анимации.\n */\n onClosed: () => void;\n /**\n * Величина отступа снизу. Используется для позиционирования элемента в случае, когда нежелательно, чтобы Snackbar при появлении перекрывал важные элементы интерфейса.\n */\n offsetY?: React.CSSProperties['bottom'];\n /**\n * Для контролируемого управления состоянием открытия снекбара.\n */\n open?: boolean;\n}\n\n/**\n * @see https://vkui.io/components/snackbar\n */\nexport const Snackbar: React.FC<SnackbarProps> & { Basic: typeof Basic } = ({\n placement = 'bottom-start',\n children,\n layout,\n action,\n before,\n after,\n duration = 4000,\n onActionClick: onActionClickProp,\n onClosed,\n onClose,\n mode = 'default',\n subtitle,\n offsetY,\n getRootRef: getRootRefProp,\n\n slotProps,\n open: openProp,\n id,\n ...restProps\n}: SnackbarProps) => {\n const { getRootRef, ...rootRest } = useMergeProps(\n {\n getRootRef: getRootRefProp,\n ...restProps,\n },\n slotProps?.root,\n );\n\n const { onClick: onActionClick, ...actionRest } = useMergeProps(\n {\n onClick: onActionClickProp,\n },\n slotProps?.action,\n );\n\n const platform = usePlatform();\n const {\n isInsideContainer,\n onOpen,\n onClosed: onClosedFromContext,\n } = useContext(SnackbarsContainerContext);\n\n const [open, setOpen] = React.useState(openProp !== undefined ? openProp : true);\n const [touched, setTouched] = React.useState(false);\n\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n\n const rootRef = useExternRef(getRootRef);\n const focused = useFocusWithin(rootRef);\n const inRef = React.useRef<HTMLDivElement>(null);\n const panGestureRecognizer = React.useRef<UIPanGestureRecognizer | null>(null);\n\n const shiftDataRef = React.useRef<ShiftData | null>(null);\n\n const rafRef = React.useRef<ReturnType<typeof requestAnimationFrame> | null>(null);\n const closeTimeoutIdRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const mediaQueries = useMediaQueries();\n const [animationState, animationHandlers] = useCSSKeyframesAnimationController(\n open ? 'enter' : 'exit',\n {\n onEnter: id ? () => onOpen(id) : undefined,\n onExited: callMultiple(onClosed, id ? () => onClosedFromContext(id) : undefined),\n },\n false,\n true,\n );\n\n useIsomorphicLayoutEffect(\n function updateForceOpen() {\n if (openProp !== undefined) {\n if (!openProp) {\n onClose?.('manual');\n }\n setOpen(openProp);\n }\n },\n [openProp],\n );\n\n const clearRAF = React.useCallback(() => {\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n }, []);\n\n const updateShiftAxisCSSProperties = React.useCallback(\n (x: number | null, y: number | null, direction: number | null) => {\n rafRef.current = requestAnimationFrame(() => {\n if (rootRef.current) {\n x === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_x')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_x', `${x}px`);\n y === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_y')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_y', `${y}px`);\n direction === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_direction')\n : /* istanbul ignore next: TODO чтобы протестировать кейс, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n rootRef.current.style.setProperty(\n '--vkui_internal--snackbar_direction',\n `${direction}`,\n );\n }\n });\n },\n [rootRef],\n );\n\n const close = React.useCallback(\n (reason: SnackbarCloseReason) => {\n onClose?.(reason);\n if (openProp === undefined) {\n setOpen(false);\n }\n },\n [onClose, openProp],\n );\n\n const handleActionClick = (event: React.MouseEvent) => {\n close('click-action');\n if (action) {\n onActionClick?.(event as React.MouseEvent<HTMLElement>);\n }\n };\n\n const handleTouchStart = (event: React.UIEvent<HTMLDivElement>) => {\n panGestureRecognizer.current = new UIPanGestureRecognizer();\n panGestureRecognizer.current.setStartCoords(event.nativeEvent);\n shiftDataRef.current = getInitialShiftData(\n rootRef.current!.offsetWidth,\n rootRef.current!.offsetHeight,\n mediaQueries,\n );\n setTouched(true);\n };\n\n const handleTouchMove = (event: React.UIEvent<HTMLDivElement>) => {\n if (shiftDataRef.current && panGestureRecognizer.current) {\n panGestureRecognizer.current.setInitialTimeOnce();\n panGestureRecognizer.current.setEndCoords(event.nativeEvent);\n shiftDataRef.current = getMovedShiftData(\n placement,\n shiftDataRef.current,\n panGestureRecognizer.current.delta(),\n isRtl,\n );\n\n if (shiftDataRef.current.shifted) {\n updateShiftAxisCSSProperties(\n shiftDataRef.current.x,\n shiftDataRef.current.y,\n shiftDataRef.current.direction,\n );\n }\n }\n };\n\n const handleTouchEnd = () => {\n if (\n touched &&\n shiftDataRef.current &&\n panGestureRecognizer.current &&\n shouldBeClosedByShiftData(\n placement,\n shiftDataRef.current,\n getRelativeBoundingClientRect(rootRef.current!, inRef.current!),\n panGestureRecognizer.current.velocity(),\n isRtl,\n )\n ) {\n close('swipe');\n }\n\n setTouched(false);\n };\n\n useIsomorphicLayoutEffect(\n function closeAfterDelay() {\n if (!open || focused || touched || animationState !== 'entered' || !duration) {\n return;\n }\n const onTimeout = () => close('timeout');\n\n closeTimeoutIdRef.current = setTimeout(onTimeout, duration);\n return function preventCloseAfterDelayOnUnmount() {\n clearTimeout(closeTimeoutIdRef.current);\n };\n },\n [open, focused, touched, animationState, close, duration],\n );\n\n useIsomorphicLayoutEffect(\n function clearUserInteractionDataAfterTouchEnd() {\n if (!touched) {\n clearRAF();\n shiftDataRef.current = null;\n panGestureRecognizer.current = null;\n\n if (open) {\n updateShiftAxisCSSProperties(null, null, null);\n }\n }\n },\n [touched, open, updateShiftAxisCSSProperties, clearRAF],\n );\n\n React.useEffect(() => clearRAF, [clearRAF]);\n\n const onEscKeyDown = React.useCallback(() => close('escape-key'), [close]);\n\n useGlobalEscKeyDown(open, onEscKeyDown);\n\n if (animationState === 'exited') {\n return null;\n }\n\n return (\n <RootComponent\n id={id}\n role=\"presentation\"\n baseClassName={classNames(\n styles.host,\n !isInsideContainer && styles.fixed,\n platform === 'ios' && styles.ios,\n touched && styles.touched,\n placementClassNames[placement],\n animationStateClassNames[animationState],\n isRtl && styles.rtl,\n )}\n baseStyle={resolveOffsetYCssStyle(placement, offsetY)}\n getRootRef={rootRef}\n {...rootRest}\n >\n <div\n role=\"alert\"\n className={styles.in}\n ref={inRef}\n // mobile\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n // desktop\n onMouseDown={handleTouchStart}\n onMouseMove={handleTouchMove}\n onMouseUp={handleTouchEnd}\n onMouseLeave={handleTouchEnd}\n {...animationHandlers}\n >\n <Basic\n mode={mode}\n layout={layout}\n before={before}\n after={after}\n subtitle={subtitle}\n action={\n action && (\n <Button\n align=\"left\"\n mode=\"link\"\n appearance={\n mode === 'dark'\n ? /* istanbul ignore next: проверяется в e2e */\n 'overlay'\n : 'accent'\n }\n size=\"s\"\n onClick={handleActionClick}\n {...actionRest}\n >\n {action}\n </Button>\n )\n }\n >\n {children}\n </Basic>\n </div>\n </RootComponent>\n );\n};\n\nSnackbar.Basic = Basic;\n"],"names":["useContext","React","classNames","useConfigDirection","useExternRef","useFocusWithin","useGlobalEscKeyDown","useMediaQueries","useMergeProps","usePlatform","SnackbarsContainerContext","useCSSKeyframesAnimationController","callMultiple","getRelativeBoundingClientRect","UIPanGestureRecognizer","useIsomorphicLayoutEffect","Button","RootComponent","Basic","getInitialShiftData","getMovedShiftData","resolveOffsetYCssStyle","shouldBeClosedByShiftData","styles","placementClassNames","placementTopStart","placementTop","placementTopEnd","placementBottomStart","placementBottom","placementBottomEnd","animationStateClassNames","enter","stateEnter","entering","stateEntering","entered","stateEntered","exit","stateExit","exiting","stateExiting","exited","undefined","Snackbar","placement","children","layout","action","before","after","duration","onActionClick","onActionClickProp","onClosed","onClose","mode","subtitle","offsetY","getRootRef","getRootRefProp","slotProps","open","openProp","id","restProps","rootRest","root","onClick","actionRest","platform","isInsideContainer","onOpen","onClosedFromContext","setOpen","useState","touched","setTouched","direction","isRtl","rootRef","focused","inRef","useRef","panGestureRecognizer","shiftDataRef","rafRef","closeTimeoutIdRef","mediaQueries","animationState","animationHandlers","onEnter","onExited","updateForceOpen","clearRAF","useCallback","current","cancelAnimationFrame","updateShiftAxisCSSProperties","x","y","requestAnimationFrame","style","removeProperty","setProperty","close","reason","handleActionClick","event","handleTouchStart","setStartCoords","nativeEvent","offsetWidth","offsetHeight","handleTouchMove","setInitialTimeOnce","setEndCoords","delta","shifted","handleTouchEnd","velocity","closeAfterDelay","onTimeout","setTimeout","preventCloseAfterDelayOnUnmount","clearTimeout","clearUserInteractionDataAfterTouchEnd","useEffect","onEscKeyDown","role","baseClassName","host","fixed","ios","rtl","baseStyle","div","className","in","ref","onTouchStart","onTouchMove","onTouchEnd","onMouseDown","onMouseMove","onMouseUp","onMouseLeave","align","appearance","size"],"mappings":"AAAA;;AAEA,SAASA,UAAU,QAAQ,QAAQ;AACnC,YAAYC,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,kBAAkB,QAAQ,oCAAiC;AACpE,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,cAAc,QAAQ,gCAA6B;AAC5D,SAASC,mBAAmB,QAAQ,qCAAkC;AACtE,SAASC,eAAe,QAAQ,iCAA8B;AAC9D,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,yBAAyB,QAAQ,yEAAsE;AAChH,SAASC,kCAAkC,QAAQ,+BAAsB;AACzE,SAASC,YAAY,QAAQ,4BAAyB;AACtD,SAASC,6BAA6B,QAAQ,mBAAgB;AAC9D,SAASC,sBAAsB,QAAQ,2BAAkB;AACzD,SAASC,yBAAyB,QAAQ,yCAAsC;AAEhF,SAASC,MAAM,QAAQ,sBAAmB;AAC1C,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,KAAK,QAAyB,iCAA8B;AAErE,SACEC,mBAAmB,EACnBC,iBAAiB,EACjBC,sBAAsB,EACtBC,yBAAyB,QACpB,aAAU;AACjB,OAAOC,YAAY,wBAAwB;AAI3C,MAAMC,sBAAsB;IAC1B,aAAaD,OAAOE,iBAAiB;IACrC,OAAOF,OAAOG,YAAY;IAC1B,WAAWH,OAAOI,eAAe;IACjC,gBAAgBJ,OAAOK,oBAAoB;IAC3C,UAAUL,OAAOM,eAAe;IAChC,cAAcN,OAAOO,kBAAkB;AACzC;AAEA,MAAMC,2BAA2B;IAC/BC,OAAOT,OAAOU,UAAU;IACxBC,UAAUX,OAAOY,aAAa;IAC9BC,SAASb,OAAOc,YAAY;IAC5BC,MAAMf,OAAOgB,SAAS;IACtBC,SAASjB,OAAOkB,YAAY;IAC5BC,QAAQC;AACV;AA6DA;;CAEC,GACD,OAAO,MAAMC,WAA8D,CAAC,EAC1EC,YAAY,cAAc,EAC1BC,QAAQ,EACRC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,KAAK,EACLC,WAAW,IAAI,EACfC,eAAeC,iBAAiB,EAChCC,QAAQ,EACRC,OAAO,EACPC,OAAO,SAAS,EAChBC,QAAQ,EACRC,OAAO,EACPC,YAAYC,cAAc,EAE1BC,SAAS,EACTC,MAAMC,QAAQ,EACdC,EAAE,EACF,GAAGC,WACW;IACd,MAAM,EAAEN,UAAU,EAAE,GAAGO,UAAU,GAAG1D,cAClC;QACEmD,YAAYC;QACZ,GAAGK,SAAS;IACd,GACAJ,WAAWM;IAGb,MAAM,EAAEC,SAAShB,aAAa,EAAE,GAAGiB,YAAY,GAAG7D,cAChD;QACE4D,SAASf;IACX,GACAQ,WAAWb;IAGb,MAAMsB,WAAW7D;IACjB,MAAM,EACJ8D,iBAAiB,EACjBC,MAAM,EACNlB,UAAUmB,mBAAmB,EAC9B,GAAGzE,WAAWU;IAEf,MAAM,CAACoD,MAAMY,QAAQ,GAAGzE,MAAM0E,QAAQ,CAACZ,aAAapB,YAAYoB,WAAW;IAC3E,MAAM,CAACa,SAASC,WAAW,GAAG5E,MAAM0E,QAAQ,CAAC;IAE7C,MAAMG,YAAY3E;IAClB,MAAM4E,QAAQD,cAAc;IAE5B,MAAME,UAAU5E,aAAauD;IAC7B,MAAMsB,UAAU5E,eAAe2E;IAC/B,MAAME,QAAQjF,MAAMkF,MAAM,CAAiB;IAC3C,MAAMC,uBAAuBnF,MAAMkF,MAAM,CAAgC;IAEzE,MAAME,eAAepF,MAAMkF,MAAM,CAAmB;IAEpD,MAAMG,SAASrF,MAAMkF,MAAM,CAAkD;IAC7E,MAAMI,oBAAoBtF,MAAMkF,MAAM,CAA4CxC;IAClF,MAAM6C,eAAejF;IACrB,MAAM,CAACkF,gBAAgBC,kBAAkB,GAAG/E,mCAC1CmD,OAAO,UAAU,QACjB;QACE6B,SAAS3B,KAAK,IAAMQ,OAAOR,MAAMrB;QACjCiD,UAAUhF,aAAa0C,UAAUU,KAAK,IAAMS,oBAAoBT,MAAMrB;IACxE,GACA,OACA;IAGF5B,0BACE,SAAS8E;QACP,IAAI9B,aAAapB,WAAW;YAC1B,IAAI,CAACoB,UAAU;gBACbR,UAAU;YACZ;YACAmB,QAAQX;QACV;IACF,GACA;QAACA;KAAS;IAGZ,MAAM+B,WAAW7F,MAAM8F,WAAW,CAAC;QACjC,IAAIT,OAAOU,OAAO,KAAK,MAAM;YAC3BC,qBAAqBX,OAAOU,OAAO;YACnCV,OAAOU,OAAO,GAAG;QACnB;IACF,GAAG,EAAE;IAEL,MAAME,+BAA+BjG,MAAM8F,WAAW,CACpD,CAACI,GAAkBC,GAAkBtB;QACnCQ,OAAOU,OAAO,GAAGK,sBAAsB;YACrC,IAAIrB,QAAQgB,OAAO,EAAE;gBACnBG,MAAM,OACFnB,QAAQgB,OAAO,CAACM,KAAK,CAACC,cAAc,CAAC,uCACrCvB,QAAQgB,OAAO,CAACM,KAAK,CAACE,WAAW,CAAC,qCAAqC,GAAGL,EAAE,EAAE,CAAC;gBACnFC,MAAM,OACFpB,QAAQgB,OAAO,CAACM,KAAK,CAACC,cAAc,CAAC,uCACrCvB,QAAQgB,OAAO,CAACM,KAAK,CAACE,WAAW,CAAC,qCAAqC,GAAGJ,EAAE,EAAE,CAAC;gBACnFtB,cAAc,OACVE,QAAQgB,OAAO,CAACM,KAAK,CAACC,cAAc,CAAC,yCACrC,+IAA+I,GAC/IvB,QAAQgB,OAAO,CAACM,KAAK,CAACE,WAAW,CAC/B,uCACA,GAAG1B,WAAW;YAEtB;QACF;IACF,GACA;QAACE;KAAQ;IAGX,MAAMyB,QAAQxG,MAAM8F,WAAW,CAC7B,CAACW;QACCnD,UAAUmD;QACV,IAAI3C,aAAapB,WAAW;YAC1B+B,QAAQ;QACV;IACF,GACA;QAACnB;QAASQ;KAAS;IAGrB,MAAM4C,oBAAoB,CAACC;QACzBH,MAAM;QACN,IAAIzD,QAAQ;YACVI,gBAAgBwD;QAClB;IACF;IAEA,MAAMC,mBAAmB,CAACD;QACxBxB,qBAAqBY,OAAO,GAAG,IAAIlF;QACnCsE,qBAAqBY,OAAO,CAACc,cAAc,CAACF,MAAMG,WAAW;QAC7D1B,aAAaW,OAAO,GAAG7E,oBACrB6D,QAAQgB,OAAO,CAAEgB,WAAW,EAC5BhC,QAAQgB,OAAO,CAAEiB,YAAY,EAC7BzB;QAEFX,WAAW;IACb;IAEA,MAAMqC,kBAAkB,CAACN;QACvB,IAAIvB,aAAaW,OAAO,IAAIZ,qBAAqBY,OAAO,EAAE;YACxDZ,qBAAqBY,OAAO,CAACmB,kBAAkB;YAC/C/B,qBAAqBY,OAAO,CAACoB,YAAY,CAACR,MAAMG,WAAW;YAC3D1B,aAAaW,OAAO,GAAG5E,kBACrByB,WACAwC,aAAaW,OAAO,EACpBZ,qBAAqBY,OAAO,CAACqB,KAAK,IAClCtC;YAGF,IAAIM,aAAaW,OAAO,CAACsB,OAAO,EAAE;gBAChCpB,6BACEb,aAAaW,OAAO,CAACG,CAAC,EACtBd,aAAaW,OAAO,CAACI,CAAC,EACtBf,aAAaW,OAAO,CAAClB,SAAS;YAElC;QACF;IACF;IAEA,MAAMyC,iBAAiB;QACrB,IACE3C,WACAS,aAAaW,OAAO,IACpBZ,qBAAqBY,OAAO,IAC5B1E,0BACEuB,WACAwC,aAAaW,OAAO,EACpBnF,8BAA8BmE,QAAQgB,OAAO,EAAGd,MAAMc,OAAO,GAC7DZ,qBAAqBY,OAAO,CAACwB,QAAQ,IACrCzC,QAEF;YACA0B,MAAM;QACR;QAEA5B,WAAW;IACb;IAEA9D,0BACE,SAAS0G;QACP,IAAI,CAAC3D,QAAQmB,WAAWL,WAAWa,mBAAmB,aAAa,CAACtC,UAAU;YAC5E;QACF;QACA,MAAMuE,YAAY,IAAMjB,MAAM;QAE9BlB,kBAAkBS,OAAO,GAAG2B,WAAWD,WAAWvE;QAClD,OAAO,SAASyE;YACdC,aAAatC,kBAAkBS,OAAO;QACxC;IACF,GACA;QAAClC;QAAMmB;QAASL;QAASa;QAAgBgB;QAAOtD;KAAS;IAG3DpC,0BACE,SAAS+G;QACP,IAAI,CAAClD,SAAS;YACZkB;YACAT,aAAaW,OAAO,GAAG;YACvBZ,qBAAqBY,OAAO,GAAG;YAE/B,IAAIlC,MAAM;gBACRoC,6BAA6B,MAAM,MAAM;YAC3C;QACF;IACF,GACA;QAACtB;QAASd;QAAMoC;QAA8BJ;KAAS;IAGzD7F,MAAM8H,SAAS,CAAC,IAAMjC,UAAU;QAACA;KAAS;IAE1C,MAAMkC,eAAe/H,MAAM8F,WAAW,CAAC,IAAMU,MAAM,eAAe;QAACA;KAAM;IAEzEnG,oBAAoBwD,MAAMkE;IAE1B,IAAIvC,mBAAmB,UAAU;QAC/B,OAAO;IACT;IAEA,qBACE,KAACxE;QACC+C,IAAIA;QACJiE,MAAK;QACLC,eAAehI,WACbqB,OAAO4G,IAAI,EACX,CAAC5D,qBAAqBhD,OAAO6G,KAAK,EAClC9D,aAAa,SAAS/C,OAAO8G,GAAG,EAChCzD,WAAWrD,OAAOqD,OAAO,EACzBpD,mBAAmB,CAACqB,UAAU,EAC9Bd,wBAAwB,CAAC0D,eAAe,EACxCV,SAASxD,OAAO+G,GAAG;QAErBC,WAAWlH,uBAAuBwB,WAAWa;QAC7CC,YAAYqB;QACX,GAAGd,QAAQ;kBAEZ,cAAA,KAACsE;YACCP,MAAK;YACLQ,WAAWlH,OAAOmH,EAAE;YACpBC,KAAKzD;YACL,SAAS;YACT0D,cAAc/B;YACdgC,aAAa3B;YACb4B,YAAYvB;YACZ,UAAU;YACVwB,aAAalC;YACbmC,aAAa9B;YACb+B,WAAW1B;YACX2B,cAAc3B;YACb,GAAG7B,iBAAiB;sBAErB,cAAA,KAACxE;gBACCsC,MAAMA;gBACNT,QAAQA;gBACRE,QAAQA;gBACRC,OAAOA;gBACPO,UAAUA;gBACVT,QACEA,wBACE,KAAChC;oBACCmI,OAAM;oBACN3F,MAAK;oBACL4F,YACE5F,SAAS,SACL,2CAA2C,GAC3C,YACA;oBAEN6F,MAAK;oBACLjF,SAASuC;oBACR,GAAGtC,UAAU;8BAEbrB;;0BAKNF;;;;AAKX,EAAE;AAEFF,SAAS1B,KAAK,GAAGA"}
1
+ {"version":3,"sources":["../../../../src/components/Snackbar/Snackbar.tsx"],"sourcesContent":["'use client';\n\nimport { useContext } from 'react';\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useFocusWithin } from '../../hooks/useFocusWithin';\nimport { useGlobalEscKeyDown } from '../../hooks/useGlobalEscKeyDown';\nimport { useMediaQueries } from '../../hooks/useMediaQueries';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SnackbarsContainerContext } from '../../hooks/useSnackbarManager/components/SnackbarsContainerContext';\nimport { useCSSKeyframesAnimationController } from '../../lib/animation';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { getRelativeBoundingClientRect } from '../../lib/dom';\nimport { UIPanGestureRecognizer } from '../../lib/touch';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { HasDataAttribute, HasRootRef, HTMLAttributesWithRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Basic, type BasicProps } from './subcomponents/Basic/Basic';\nimport type { ShiftData, SnackbarPlacement } from './types';\nimport {\n getInitialShiftData,\n getMovedShiftData,\n resolveOffsetYCssStyle,\n shouldBeClosedByShiftData,\n} from './utils';\nimport styles from './Snackbar.module.css';\n\nexport type { BasicProps as SnackbarBasicProps };\n\nconst placementClassNames = {\n 'top-start': styles.placementTopStart,\n 'top': styles.placementTop,\n 'top-end': styles.placementTopEnd,\n 'bottom-start': styles.placementBottomStart,\n 'bottom': styles.placementBottom,\n 'bottom-end': styles.placementBottomEnd,\n};\n\nconst animationStateClassNames = {\n enter: styles.stateEnter,\n entering: styles.stateEntering,\n entered: styles.stateEntered,\n exit: styles.stateExit,\n exiting: styles.stateExiting,\n exited: undefined,\n};\n\nexport type SnackbarCloseReason = 'swipe' | 'timeout' | 'click-action' | 'escape-key' | 'manual';\n\nexport interface SnackbarProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'role'>,\n BasicProps {\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `root`: свойства для прокидывания в корень компонента;\n * - `action`: свойства для прокидывания в кнопку действия.\n */\n slotProps?:\n | {\n root?:\n | (Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> &\n HasRootRef<HTMLDivElement> &\n HasDataAttribute)\n | undefined;\n action?:\n | (React.HTMLAttributes<HTMLElement> & HasRootRef<HTMLElement> & HasDataAttribute)\n | undefined;\n }\n | undefined;\n /**\n * Задаёт расположение компонента.\n *\n * > Note: в мобильном режиме:\n * > - `\"top-start\"`/`\"top-end\"` перебивается на `\"top\"`, чтобы поведение было схожим с нативными\n * > уведомлениями;\n * > - `\"bottom\"` перебивается на `\"bottom-start\"`, чтобы избежать вызова системных\n * > функций, таких как **Pull To Refresh** и **Режим управления одной рукой**.\n * > - `\"bottom-start\"`/`\"bottom-end\"` закрываются смахиванием в любое из направлений\n * > по горизонтальной оси.\n */\n placement?: SnackbarPlacement | undefined;\n /**\n * Название кнопки действия в уведомлении\n * Не может использоваться одновременно с `subtitle`.\n */\n action?: React.ReactNode | undefined;\n /**\n * Будет вызвано при нажатии на кнопку действия.\n */\n onActionClick?: ((event: React.MouseEvent) => void) | undefined;\n /**\n * Время в миллисекундах, через которое плашка скроется.\n */\n duration?: number | null | undefined;\n /**\n * Обработчик закрытия уведомления.\n */\n onClose?: ((reason: SnackbarCloseReason) => void) | undefined;\n /**\n * Обработчик закрытия уведомления, срабатывающий после окончания анимации.\n */\n onClosed: () => void;\n /**\n * Величина отступа снизу. Используется для позиционирования элемента в случае, когда нежелательно, чтобы Snackbar при появлении перекрывал важные элементы интерфейса.\n */\n offsetY?: React.CSSProperties['bottom'] | undefined;\n /**\n * Для контролируемого управления состоянием открытия снекбара.\n */\n open?: boolean | undefined;\n}\n\n/**\n * @see https://vkui.io/components/snackbar\n */\nexport const Snackbar: React.FC<SnackbarProps> & { Basic: typeof Basic } = ({\n placement = 'bottom-start',\n children,\n layout,\n action,\n before,\n after,\n duration = 4000,\n onActionClick: onActionClickProp,\n onClosed,\n onClose,\n mode = 'default',\n subtitle,\n offsetY,\n getRootRef: getRootRefProp,\n\n slotProps,\n open: openProp,\n id,\n ...restProps\n}: SnackbarProps) => {\n const { getRootRef, ...rootRest } = useMergeProps(\n {\n getRootRef: getRootRefProp,\n ...restProps,\n },\n slotProps?.root,\n );\n\n const { onClick: onActionClick, ...actionRest } = useMergeProps(\n {\n onClick: onActionClickProp,\n },\n slotProps?.action,\n );\n\n const platform = usePlatform();\n const {\n isInsideContainer,\n onOpen,\n onClosed: onClosedFromContext,\n } = useContext(SnackbarsContainerContext);\n\n const [open, setOpen] = React.useState(openProp !== undefined ? openProp : true);\n const [touched, setTouched] = React.useState(false);\n\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n\n const rootRef = useExternRef(getRootRef);\n const focused = useFocusWithin(rootRef);\n const inRef = React.useRef<HTMLDivElement>(null);\n const panGestureRecognizer = React.useRef<UIPanGestureRecognizer | null>(null);\n\n const shiftDataRef = React.useRef<ShiftData | null>(null);\n\n const rafRef = React.useRef<ReturnType<typeof requestAnimationFrame> | null>(null);\n const closeTimeoutIdRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const mediaQueries = useMediaQueries();\n const [animationState, animationHandlers] = useCSSKeyframesAnimationController(\n open ? 'enter' : 'exit',\n {\n onEnter: id ? () => onOpen(id) : undefined,\n onExited: callMultiple(onClosed, id ? () => onClosedFromContext(id) : undefined),\n },\n false,\n true,\n );\n\n useIsomorphicLayoutEffect(\n function updateForceOpen() {\n if (openProp !== undefined) {\n if (!openProp) {\n onClose?.('manual');\n }\n setOpen(openProp);\n }\n },\n [openProp],\n );\n\n const clearRAF = React.useCallback(() => {\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n }, []);\n\n const updateShiftAxisCSSProperties = React.useCallback(\n (x: number | null, y: number | null, direction: number | null) => {\n rafRef.current = requestAnimationFrame(() => {\n if (rootRef.current) {\n x === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_x')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_x', `${x}px`);\n y === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_y')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_y', `${y}px`);\n direction === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_direction')\n : /* istanbul ignore next: TODO чтобы протестировать кейс, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n rootRef.current.style.setProperty(\n '--vkui_internal--snackbar_direction',\n `${direction}`,\n );\n }\n });\n },\n [rootRef],\n );\n\n const close = React.useCallback(\n (reason: SnackbarCloseReason) => {\n onClose?.(reason);\n if (openProp === undefined) {\n setOpen(false);\n }\n },\n [onClose, openProp],\n );\n\n const handleActionClick = (event: React.MouseEvent) => {\n close('click-action');\n if (action) {\n onActionClick?.(event as React.MouseEvent<HTMLElement>);\n }\n };\n\n const handleTouchStart = (event: React.UIEvent<HTMLDivElement>) => {\n panGestureRecognizer.current = new UIPanGestureRecognizer();\n panGestureRecognizer.current.setStartCoords(event.nativeEvent);\n shiftDataRef.current = getInitialShiftData(\n rootRef.current!.offsetWidth,\n rootRef.current!.offsetHeight,\n mediaQueries,\n );\n setTouched(true);\n };\n\n const handleTouchMove = (event: React.UIEvent<HTMLDivElement>) => {\n if (shiftDataRef.current && panGestureRecognizer.current) {\n panGestureRecognizer.current.setInitialTimeOnce();\n panGestureRecognizer.current.setEndCoords(event.nativeEvent);\n shiftDataRef.current = getMovedShiftData(\n placement,\n shiftDataRef.current,\n panGestureRecognizer.current.delta(),\n isRtl,\n );\n\n if (shiftDataRef.current.shifted) {\n updateShiftAxisCSSProperties(\n shiftDataRef.current.x,\n shiftDataRef.current.y,\n shiftDataRef.current.direction,\n );\n }\n }\n };\n\n const handleTouchEnd = () => {\n if (\n touched &&\n shiftDataRef.current &&\n panGestureRecognizer.current &&\n shouldBeClosedByShiftData(\n placement,\n shiftDataRef.current,\n getRelativeBoundingClientRect(rootRef.current!, inRef.current!),\n panGestureRecognizer.current.velocity(),\n isRtl,\n )\n ) {\n close('swipe');\n }\n\n setTouched(false);\n };\n\n useIsomorphicLayoutEffect(\n function closeAfterDelay() {\n if (!open || focused || touched || animationState !== 'entered' || !duration) {\n return;\n }\n const onTimeout = () => close('timeout');\n\n closeTimeoutIdRef.current = setTimeout(onTimeout, duration);\n return function preventCloseAfterDelayOnUnmount() {\n clearTimeout(closeTimeoutIdRef.current);\n };\n },\n [open, focused, touched, animationState, close, duration],\n );\n\n useIsomorphicLayoutEffect(\n function clearUserInteractionDataAfterTouchEnd() {\n if (!touched) {\n clearRAF();\n shiftDataRef.current = null;\n panGestureRecognizer.current = null;\n\n if (open) {\n updateShiftAxisCSSProperties(null, null, null);\n }\n }\n },\n [touched, open, updateShiftAxisCSSProperties, clearRAF],\n );\n\n React.useEffect(() => clearRAF, [clearRAF]);\n\n const onEscKeyDown = React.useCallback(() => close('escape-key'), [close]);\n\n useGlobalEscKeyDown(open, onEscKeyDown);\n\n if (animationState === 'exited') {\n return null;\n }\n\n return (\n <RootComponent\n id={id}\n role=\"presentation\"\n baseClassName={classNames(\n styles.host,\n !isInsideContainer && styles.fixed,\n platform === 'ios' && styles.ios,\n touched && styles.touched,\n placementClassNames[placement],\n animationStateClassNames[animationState],\n isRtl && styles.rtl,\n )}\n baseStyle={resolveOffsetYCssStyle(placement, offsetY)}\n getRootRef={rootRef}\n {...rootRest}\n >\n <div\n role=\"alert\"\n className={styles.in}\n ref={inRef}\n // mobile\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n // desktop\n onMouseDown={handleTouchStart}\n onMouseMove={handleTouchMove}\n onMouseUp={handleTouchEnd}\n onMouseLeave={handleTouchEnd}\n {...animationHandlers}\n >\n <Basic\n mode={mode}\n layout={layout}\n before={before}\n after={after}\n subtitle={subtitle}\n action={\n action && (\n <Button\n align=\"left\"\n mode=\"link\"\n appearance={\n mode === 'dark'\n ? /* istanbul ignore next: проверяется в e2e */\n 'overlay'\n : 'accent'\n }\n size=\"s\"\n onClick={handleActionClick}\n {...actionRest}\n >\n {action}\n </Button>\n )\n }\n >\n {children}\n </Basic>\n </div>\n </RootComponent>\n );\n};\n\nSnackbar.Basic = Basic;\n"],"names":["useContext","React","classNames","useConfigDirection","useExternRef","useFocusWithin","useGlobalEscKeyDown","useMediaQueries","useMergeProps","usePlatform","SnackbarsContainerContext","useCSSKeyframesAnimationController","callMultiple","getRelativeBoundingClientRect","UIPanGestureRecognizer","useIsomorphicLayoutEffect","Button","RootComponent","Basic","getInitialShiftData","getMovedShiftData","resolveOffsetYCssStyle","shouldBeClosedByShiftData","styles","placementClassNames","placementTopStart","placementTop","placementTopEnd","placementBottomStart","placementBottom","placementBottomEnd","animationStateClassNames","enter","stateEnter","entering","stateEntering","entered","stateEntered","exit","stateExit","exiting","stateExiting","exited","undefined","Snackbar","placement","children","layout","action","before","after","duration","onActionClick","onActionClickProp","onClosed","onClose","mode","subtitle","offsetY","getRootRef","getRootRefProp","slotProps","open","openProp","id","restProps","rootRest","root","onClick","actionRest","platform","isInsideContainer","onOpen","onClosedFromContext","setOpen","useState","touched","setTouched","direction","isRtl","rootRef","focused","inRef","useRef","panGestureRecognizer","shiftDataRef","rafRef","closeTimeoutIdRef","mediaQueries","animationState","animationHandlers","onEnter","onExited","updateForceOpen","clearRAF","useCallback","current","cancelAnimationFrame","updateShiftAxisCSSProperties","x","y","requestAnimationFrame","style","removeProperty","setProperty","close","reason","handleActionClick","event","handleTouchStart","setStartCoords","nativeEvent","offsetWidth","offsetHeight","handleTouchMove","setInitialTimeOnce","setEndCoords","delta","shifted","handleTouchEnd","velocity","closeAfterDelay","onTimeout","setTimeout","preventCloseAfterDelayOnUnmount","clearTimeout","clearUserInteractionDataAfterTouchEnd","useEffect","onEscKeyDown","role","baseClassName","host","fixed","ios","rtl","baseStyle","div","className","in","ref","onTouchStart","onTouchMove","onTouchEnd","onMouseDown","onMouseMove","onMouseUp","onMouseLeave","align","appearance","size"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Snackbar/subcomponents/Basic/Basic.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../../hooks/useAdaptivity';\nimport type { HTMLAttributesWithRootRef } from '../../../../types';\nimport { RootComponent } from '../../../RootComponent/RootComponent';\nimport { Paragraph } from '../../../Typography/Paragraph/Paragraph';\nimport { Subhead } from '../../../Typography/Subhead/Subhead';\nimport styles from './Basic.module.css';\n\nconst stylesLayout = {\n none: styles.layoutNone,\n vertical: styles.layoutVertical,\n horizontal: styles.layoutHorizontal,\n};\n\nconst densityClassNames = {\n none: styles.densityNone,\n regular: styles.densityRegular,\n};\n\nexport interface BasicProps {\n /**\n * Элемент действия.\n * Не может использоваться одновременно с `subtitle`.\n */\n action?: React.ReactNode;\n\n /**\n * Контент в правой части, может быть иконкой 24x24.\n */\n after?: React.ReactNode;\n\n /**\n * Варианты расположения кнопки действия\n * По умолчанию на десктопах, или при наличии элементов `after` или `subtitle`\n * имеет значение `vertical`, в остальных случаях `horizontal`.\n */\n layout?: 'vertical' | 'horizontal';\n\n /**\n * Может быть следующими компонентами:\n * - цветная иконка 24x24 или 28x28 пикселя\n * - `<Avatar size={32} />`\n * - `<Image size={40} />`.\n */\n before?: React.ReactNode;\n\n /**\n * Задает стиль снекбара.\n */\n mode?: 'default' | 'dark';\n\n /**\n * Дополнительная строка текста под `children`.\n * Не может использоваться одновременно с `action`.\n */\n subtitle?: React.ReactNode;\n}\n\nexport interface SnackbarBasicProps extends HTMLAttributesWithRootRef<HTMLDivElement>, BasicProps {}\n\nexport function Basic({\n layout: layoutProps,\n action,\n after,\n before,\n mode,\n subtitle,\n children,\n ...restProps\n}: SnackbarBasicProps): React.ReactNode {\n const { density = 'none' } = useAdaptivity();\n const layout = after || subtitle ? 'vertical' : 'none';\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles.body,\n stylesLayout[layoutProps || layout],\n density !== 'compact' && densityClassNames[density],\n mode === 'dark' && styles.modeDark,\n )}\n >\n {before && <div className={styles.before}>{before}</div>}\n\n <div className={styles.content}>\n <Paragraph className={styles.contentText}>{children}</Paragraph>\n {subtitle && !action && <Subhead className={styles.contentSubtitle}>{subtitle}</Subhead>}\n\n {action && !subtitle && <div className={styles.action}>{action}</div>}\n </div>\n\n {after && <div className={styles.after}>{after}</div>}\n </RootComponent>\n );\n}\n"],"names":["classNames","useAdaptivity","RootComponent","Paragraph","Subhead","styles","stylesLayout","none","layoutNone","vertical","layoutVertical","horizontal","layoutHorizontal","densityClassNames","densityNone","regular","densityRegular","Basic","layout","layoutProps","action","after","before","mode","subtitle","children","restProps","density","baseClassName","body","modeDark","div","className","content","contentText","contentSubtitle"],"mappings":"AAAA;;AAGA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,qCAAkC;AAEhE,SAASC,aAAa,QAAQ,0CAAuC;AACrE,SAASC,SAAS,QAAQ,6CAA0C;AACpE,SAASC,OAAO,QAAQ,yCAAsC;AAC9D,OAAOC,YAAY,qBAAqB;AAExC,MAAMC,eAAe;IACnBC,MAAMF,OAAOG,UAAU;IACvBC,UAAUJ,OAAOK,cAAc;IAC/BC,YAAYN,OAAOO,gBAAgB;AACrC;AAEA,MAAMC,oBAAoB;IACxBN,MAAMF,OAAOS,WAAW;IACxBC,SAASV,OAAOW,cAAc;AAChC;AA2CA,OAAO,SAASC,MAAM,EACpBC,QAAQC,WAAW,EACnBC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,IAAI,EACJC,QAAQ,EACRC,QAAQ,EACR,GAAGC,WACgB;IACnB,MAAM,EAAEC,UAAU,MAAM,EAAE,GAAG1B;IAC7B,MAAMiB,SAASG,SAASG,WAAW,aAAa;IAEhD,qBACE,MAACtB;QACE,GAAGwB,SAAS;QACbE,eAAe5B,WACbK,OAAOwB,IAAI,EACXvB,YAAY,CAACa,eAAeD,OAAO,EACnCS,YAAY,aAAad,iBAAiB,CAACc,QAAQ,EACnDJ,SAAS,UAAUlB,OAAOyB,QAAQ;;YAGnCR,wBAAU,KAACS;gBAAIC,WAAW3B,OAAOiB,MAAM;0BAAGA;;0BAE3C,MAACS;gBAAIC,WAAW3B,OAAO4B,OAAO;;kCAC5B,KAAC9B;wBAAU6B,WAAW3B,OAAO6B,WAAW;kCAAGT;;oBAC1CD,YAAY,CAACJ,wBAAU,KAAChB;wBAAQ4B,WAAW3B,OAAO8B,eAAe;kCAAGX;;oBAEpEJ,UAAU,CAACI,0BAAY,KAACO;wBAAIC,WAAW3B,OAAOe,MAAM;kCAAGA;;;;YAGzDC,uBAAS,KAACU;gBAAIC,WAAW3B,OAAOgB,KAAK;0BAAGA;;;;AAG/C"}
1
+ {"version":3,"sources":["../../../../../../src/components/Snackbar/subcomponents/Basic/Basic.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../../hooks/useAdaptivity';\nimport type { HTMLAttributesWithRootRef } from '../../../../types';\nimport { RootComponent } from '../../../RootComponent/RootComponent';\nimport { Paragraph } from '../../../Typography/Paragraph/Paragraph';\nimport { Subhead } from '../../../Typography/Subhead/Subhead';\nimport styles from './Basic.module.css';\n\nconst stylesLayout = {\n none: styles.layoutNone,\n vertical: styles.layoutVertical,\n horizontal: styles.layoutHorizontal,\n};\n\nconst densityClassNames = {\n none: styles.densityNone,\n regular: styles.densityRegular,\n};\n\nexport interface BasicProps {\n /**\n * Элемент действия.\n * Не может использоваться одновременно с `subtitle`.\n */\n action?: React.ReactNode | undefined;\n\n /**\n * Контент в правой части, может быть иконкой 24x24.\n */\n after?: React.ReactNode | undefined;\n\n /**\n * Варианты расположения кнопки действия\n * По умолчанию на десктопах, или при наличии элементов `after` или `subtitle`\n * имеет значение `vertical`, в остальных случаях `horizontal`.\n */\n layout?: 'vertical' | 'horizontal' | undefined;\n\n /**\n * Может быть следующими компонентами:\n * - цветная иконка 24x24 или 28x28 пикселя\n * - `<Avatar size={32} />`\n * - `<Image size={40} />`.\n */\n before?: React.ReactNode | undefined;\n\n /**\n * Задает стиль снекбара.\n */\n mode?: 'default' | 'dark' | undefined;\n\n /**\n * Дополнительная строка текста под `children`.\n * Не может использоваться одновременно с `action`.\n */\n subtitle?: React.ReactNode | undefined;\n}\n\nexport interface SnackbarBasicProps extends HTMLAttributesWithRootRef<HTMLDivElement>, BasicProps {}\n\nexport function Basic({\n layout: layoutProps,\n action,\n after,\n before,\n mode,\n subtitle,\n children,\n ...restProps\n}: SnackbarBasicProps): React.ReactNode {\n const { density = 'none' } = useAdaptivity();\n const layout = after || subtitle ? 'vertical' : 'none';\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles.body,\n stylesLayout[layoutProps || layout],\n density !== 'compact' && densityClassNames[density],\n mode === 'dark' && styles.modeDark,\n )}\n >\n {before && <div className={styles.before}>{before}</div>}\n\n <div className={styles.content}>\n <Paragraph className={styles.contentText}>{children}</Paragraph>\n {subtitle && !action && <Subhead className={styles.contentSubtitle}>{subtitle}</Subhead>}\n\n {action && !subtitle && <div className={styles.action}>{action}</div>}\n </div>\n\n {after && <div className={styles.after}>{after}</div>}\n </RootComponent>\n );\n}\n"],"names":["classNames","useAdaptivity","RootComponent","Paragraph","Subhead","styles","stylesLayout","none","layoutNone","vertical","layoutVertical","horizontal","layoutHorizontal","densityClassNames","densityNone","regular","densityRegular","Basic","layout","layoutProps","action","after","before","mode","subtitle","children","restProps","density","baseClassName","body","modeDark","div","className","content","contentText","contentSubtitle"],"mappings":"AAAA;;AAGA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,qCAAkC;AAEhE,SAASC,aAAa,QAAQ,0CAAuC;AACrE,SAASC,SAAS,QAAQ,6CAA0C;AACpE,SAASC,OAAO,QAAQ,yCAAsC;AAC9D,OAAOC,YAAY,qBAAqB;AAExC,MAAMC,eAAe;IACnBC,MAAMF,OAAOG,UAAU;IACvBC,UAAUJ,OAAOK,cAAc;IAC/BC,YAAYN,OAAOO,gBAAgB;AACrC;AAEA,MAAMC,oBAAoB;IACxBN,MAAMF,OAAOS,WAAW;IACxBC,SAASV,OAAOW,cAAc;AAChC;AA2CA,OAAO,SAASC,MAAM,EACpBC,QAAQC,WAAW,EACnBC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,IAAI,EACJC,QAAQ,EACRC,QAAQ,EACR,GAAGC,WACgB;IACnB,MAAM,EAAEC,UAAU,MAAM,EAAE,GAAG1B;IAC7B,MAAMiB,SAASG,SAASG,WAAW,aAAa;IAEhD,qBACE,MAACtB;QACE,GAAGwB,SAAS;QACbE,eAAe5B,WACbK,OAAOwB,IAAI,EACXvB,YAAY,CAACa,eAAeD,OAAO,EACnCS,YAAY,aAAad,iBAAiB,CAACc,QAAQ,EACnDJ,SAAS,UAAUlB,OAAOyB,QAAQ;;YAGnCR,wBAAU,KAACS;gBAAIC,WAAW3B,OAAOiB,MAAM;0BAAGA;;0BAE3C,MAACS;gBAAIC,WAAW3B,OAAO4B,OAAO;;kCAC5B,KAAC9B;wBAAU6B,WAAW3B,OAAO6B,WAAW;kCAAGT;;oBAC1CD,YAAY,CAACJ,wBAAU,KAAChB;wBAAQ4B,WAAW3B,OAAO8B,eAAe;kCAAGX;;oBAEpEJ,UAAU,CAACI,0BAAY,KAACO;wBAAIC,WAAW3B,OAAOe,MAAM;kCAAGA;;;;YAGzDC,uBAAS,KAACU;gBAAIC,WAAW3B,OAAOgB,KAAK;0BAAGA;;;;AAG/C"}
@@ -106,14 +106,12 @@
106
106
  }
107
107
 
108
108
  @media (min-width: 768px) {
109
- .layoutNone .content,
110
- .layoutVerticalMq .content {
109
+ .layoutNone .content {
111
110
  flex-direction: column;
112
111
  align-items: flex-start;
113
112
  }
114
113
 
115
- .layoutNone .action,
116
- .layoutVerticalMq .action {
114
+ .layoutNone .action {
117
115
  min-block-size: initial;
118
116
  margin-block-start: 2px;
119
117
  margin-block-end: var(--vkui_internal--snackbar-body_layout_vertical_action_shift);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Snackbar/utils.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { MediaQueries } from '../../lib/adaptivity';\nimport { rubberbandIfOutOfBounds } from '../../lib/animation';\nimport type { ShiftData, SnackbarPlacement } from './types';\n\nexport function resolveOffsetYCssStyle(\n placement: SnackbarPlacement,\n offsetY?: React.CSSProperties['inset'],\n): React.CSSProperties | undefined {\n if (offsetY === undefined) {\n return undefined;\n }\n switch (placement) {\n case 'top-start':\n case 'top':\n case 'top-end':\n return { top: offsetY };\n case 'bottom-start':\n case 'bottom':\n case 'bottom-end':\n return { bottom: offsetY };\n }\n}\n\nexport function revertRtlValue(value: number, isRtl: boolean) {\n return isRtl ? -1 * value : value;\n}\n\nexport function getInitialShiftData(\n width: number,\n height: number,\n mediaQueries: MediaQueries,\n): ShiftData {\n return {\n shifted: false,\n direction: null,\n isDesktop: mediaQueries.smallTabletPlus.matches, // eslint-disable-line no-restricted-properties,\n x: 0,\n y: 0,\n width,\n height,\n };\n}\n\nexport function getMovedShiftData(\n placement: SnackbarPlacement,\n shiftData: ShiftData,\n nextShift: { x: number; y: number },\n isRtl = false,\n): ShiftData {\n /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n if (shiftData.isDesktop) {\n if (placement.endsWith('start')) {\n shiftData.x = isRtl\n ? rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width)\n : rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0);\n } else if (placement.endsWith('end')) {\n shiftData.x = isRtl\n ? rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0)\n : rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width);\n }\n\n if (placement.startsWith('bottom')) {\n shiftData.y = rubberbandIfOutOfBounds(nextShift.y, 0, shiftData.height);\n }\n } else if (placement.startsWith('bottom')) {\n shiftData.x = nextShift.x;\n\n const movingToLeft = nextShift.x < 0 ? -1 : null;\n const movingToRight = nextShift.x > 0 ? 1 : null;\n shiftData.direction = movingToLeft || movingToRight;\n }\n\n if (placement.startsWith('top')) {\n shiftData.y = rubberbandIfOutOfBounds(nextShift.y, -shiftData.height, 0);\n }\n\n shiftData.shifted = true;\n\n return shiftData;\n}\n\nconst MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE = 200;\n\nexport function shouldBeClosedByShiftData(\n placement: SnackbarPlacement,\n shiftData: ShiftData,\n relativeClientRect: DOMRect,\n velocity: { x: number; y: number },\n isRtl = false,\n): boolean {\n if (!shiftData.shifted) {\n return false;\n }\n\n const shouldBeClosedThreshold = { x: false, y: false };\n const shouldBeClosedByVelocity = { x: false, y: false };\n\n /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n if (shiftData.isDesktop) {\n if (placement.endsWith('start')) {\n shouldBeClosedThreshold.x =\n revertRtlValue(relativeClientRect.x, isRtl) < -relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n revertRtlValue(relativeClientRect.x, isRtl) < 0\n ? revertRtlValue(velocity.x, isRtl) <\n revertRtlValue(-MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE, isRtl)\n : false;\n } else if (placement.endsWith('end')) {\n shouldBeClosedThreshold.x =\n revertRtlValue(relativeClientRect.x, isRtl) > relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n revertRtlValue(relativeClientRect.x, isRtl) > 0\n ? revertRtlValue(velocity.x, isRtl) >\n revertRtlValue(MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE, isRtl)\n : false;\n }\n\n if (placement.startsWith('bottom')) {\n shouldBeClosedThreshold.y = relativeClientRect.y > relativeClientRect.height / 2;\n shouldBeClosedByVelocity.y =\n relativeClientRect.y > 0 ? velocity.y > MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;\n }\n } else if (placement.startsWith('bottom')) {\n shouldBeClosedThreshold.x =\n relativeClientRect.x < -relativeClientRect.width / 2 ||\n relativeClientRect.x > relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n (relativeClientRect.x < 0 && velocity.x < -MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE) ||\n (relativeClientRect.x > 0 && velocity.x > MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE);\n }\n\n if (placement.startsWith('top')) {\n shouldBeClosedThreshold.y = relativeClientRect.y < -relativeClientRect.height / 2;\n shouldBeClosedByVelocity.y =\n relativeClientRect.y < 0 ? velocity.y < -MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;\n }\n\n return (\n shouldBeClosedThreshold.x ||\n shouldBeClosedByVelocity.x ||\n shouldBeClosedThreshold.y ||\n /* istanbul ignore next: подсвечивает жёлтым и пишет \"branch not covered\" */\n shouldBeClosedByVelocity.y\n );\n}\n"],"names":["rubberbandIfOutOfBounds","resolveOffsetYCssStyle","placement","offsetY","undefined","top","bottom","revertRtlValue","value","isRtl","getInitialShiftData","width","height","mediaQueries","shifted","direction","isDesktop","smallTabletPlus","matches","x","y","getMovedShiftData","shiftData","nextShift","endsWith","startsWith","movingToLeft","movingToRight","MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE","shouldBeClosedByShiftData","relativeClientRect","velocity","shouldBeClosedThreshold","shouldBeClosedByVelocity"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Snackbar/utils.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { MediaQueries } from '../../lib/adaptivity';\nimport { rubberbandIfOutOfBounds } from '../../lib/animation';\nimport type { ShiftData, SnackbarPlacement } from './types';\n\nexport function resolveOffsetYCssStyle(\n placement: SnackbarPlacement,\n offsetY?: React.CSSProperties['inset'] | undefined,\n): React.CSSProperties | undefined {\n if (offsetY === undefined) {\n return undefined;\n }\n switch (placement) {\n case 'top-start':\n case 'top':\n case 'top-end':\n return { top: offsetY };\n case 'bottom-start':\n case 'bottom':\n case 'bottom-end':\n return { bottom: offsetY };\n }\n}\n\nexport function revertRtlValue(value: number, isRtl: boolean) {\n return isRtl ? -1 * value : value;\n}\n\nexport function getInitialShiftData(\n width: number,\n height: number,\n mediaQueries: MediaQueries,\n): ShiftData {\n return {\n shifted: false,\n direction: null,\n isDesktop: mediaQueries.smallTabletPlus.matches, // eslint-disable-line no-restricted-properties,\n x: 0,\n y: 0,\n width,\n height,\n };\n}\n\nexport function getMovedShiftData(\n placement: SnackbarPlacement,\n shiftData: ShiftData,\n nextShift: { x: number; y: number },\n isRtl = false,\n): ShiftData {\n /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n if (shiftData.isDesktop) {\n if (placement.endsWith('start')) {\n shiftData.x = isRtl\n ? rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width)\n : rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0);\n } else if (placement.endsWith('end')) {\n shiftData.x = isRtl\n ? rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0)\n : rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width);\n }\n\n if (placement.startsWith('bottom')) {\n shiftData.y = rubberbandIfOutOfBounds(nextShift.y, 0, shiftData.height);\n }\n } else if (placement.startsWith('bottom')) {\n shiftData.x = nextShift.x;\n\n const movingToLeft = nextShift.x < 0 ? -1 : null;\n const movingToRight = nextShift.x > 0 ? 1 : null;\n shiftData.direction = movingToLeft || movingToRight;\n }\n\n if (placement.startsWith('top')) {\n shiftData.y = rubberbandIfOutOfBounds(nextShift.y, -shiftData.height, 0);\n }\n\n shiftData.shifted = true;\n\n return shiftData;\n}\n\nconst MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE = 200;\n\nexport function shouldBeClosedByShiftData(\n placement: SnackbarPlacement,\n shiftData: ShiftData,\n relativeClientRect: DOMRect,\n velocity: { x: number; y: number },\n isRtl = false,\n): boolean {\n if (!shiftData.shifted) {\n return false;\n }\n\n const shouldBeClosedThreshold = { x: false, y: false };\n const shouldBeClosedByVelocity = { x: false, y: false };\n\n /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n if (shiftData.isDesktop) {\n if (placement.endsWith('start')) {\n shouldBeClosedThreshold.x =\n revertRtlValue(relativeClientRect.x, isRtl) < -relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n revertRtlValue(relativeClientRect.x, isRtl) < 0\n ? revertRtlValue(velocity.x, isRtl) <\n revertRtlValue(-MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE, isRtl)\n : false;\n } else if (placement.endsWith('end')) {\n shouldBeClosedThreshold.x =\n revertRtlValue(relativeClientRect.x, isRtl) > relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n revertRtlValue(relativeClientRect.x, isRtl) > 0\n ? revertRtlValue(velocity.x, isRtl) >\n revertRtlValue(MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE, isRtl)\n : false;\n }\n\n if (placement.startsWith('bottom')) {\n shouldBeClosedThreshold.y = relativeClientRect.y > relativeClientRect.height / 2;\n shouldBeClosedByVelocity.y =\n relativeClientRect.y > 0 ? velocity.y > MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;\n }\n } else if (placement.startsWith('bottom')) {\n shouldBeClosedThreshold.x =\n relativeClientRect.x < -relativeClientRect.width / 2 ||\n relativeClientRect.x > relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n (relativeClientRect.x < 0 && velocity.x < -MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE) ||\n (relativeClientRect.x > 0 && velocity.x > MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE);\n }\n\n if (placement.startsWith('top')) {\n shouldBeClosedThreshold.y = relativeClientRect.y < -relativeClientRect.height / 2;\n shouldBeClosedByVelocity.y =\n relativeClientRect.y < 0 ? velocity.y < -MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;\n }\n\n return (\n shouldBeClosedThreshold.x ||\n shouldBeClosedByVelocity.x ||\n shouldBeClosedThreshold.y ||\n /* istanbul ignore next: подсвечивает жёлтым и пишет \"branch not covered\" */\n shouldBeClosedByVelocity.y\n );\n}\n"],"names":["rubberbandIfOutOfBounds","resolveOffsetYCssStyle","placement","offsetY","undefined","top","bottom","revertRtlValue","value","isRtl","getInitialShiftData","width","height","mediaQueries","shifted","direction","isDesktop","smallTabletPlus","matches","x","y","getMovedShiftData","shiftData","nextShift","endsWith","startsWith","movingToLeft","movingToRight","MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE","shouldBeClosedByShiftData","relativeClientRect","velocity","shouldBeClosedThreshold","shouldBeClosedByVelocity"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Spacing/Spacing.tsx"],"sourcesContent":["import type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { resolveSpacingSize, type SpacingSizeProp } from '../../lib/spacings/sizes';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Spacing.module.css';\n\nexport const CUSTOM_CSS_TOKEN_FOR_USER_GAP = '--vkui_internal--spacing_size';\n\nexport interface SpacingProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Высота спэйсинга.\n *\n * Принимает значения дизайн-системы, числовые значения и css-переменные.\n */\n size?: SpacingSizeProp;\n /**\n * @deprecated 7.0.0.Будет удалeно в **VKUI v9**.\n */\n children?: React.ReactNode; // TODO [>=9]: удалить неиспользуемое свойство\n}\n/**\n * @see https://vkui.io/components/spacing\n */\nexport const Spacing = ({ size = 'm', ...restProps }: SpacingProps): React.ReactNode => {\n const [spacingSizeClassName, spacingSizeStyle] = resolveSpacingSize(\n CUSTOM_CSS_TOKEN_FOR_USER_GAP,\n size,\n );\n return (\n <RootComponent\n {...restProps}\n baseStyle={spacingSizeStyle}\n baseClassName={classNames(styles.host, spacingSizeClassName)}\n />\n );\n};\n"],"names":["classNames","resolveSpacingSize","RootComponent","styles","CUSTOM_CSS_TOKEN_FOR_USER_GAP","Spacing","size","restProps","spacingSizeClassName","spacingSizeStyle","baseStyle","baseClassName","host"],"mappings":";AACA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,kBAAkB,QAA8B,8BAA2B;AAEpF,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,OAAOC,YAAY,uBAAuB;AAE1C,OAAO,MAAMC,gCAAgC,gCAAgC;AAc7E;;CAEC,GACD,OAAO,MAAMC,UAAU,CAAC,EAAEC,OAAO,GAAG,EAAE,GAAGC,WAAyB;IAChE,MAAM,CAACC,sBAAsBC,iBAAiB,GAAGR,mBAC/CG,+BACAE;IAEF,qBACE,KAACJ;QACE,GAAGK,SAAS;QACbG,WAAWD;QACXE,eAAeX,WAAWG,OAAOS,IAAI,EAAEJ;;AAG7C,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Spacing/Spacing.tsx"],"sourcesContent":["import type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { resolveSpacingSize, type SpacingSizeProp } from '../../lib/spacings/sizes';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Spacing.module.css';\n\nexport const CUSTOM_CSS_TOKEN_FOR_USER_GAP = '--vkui_internal--spacing_size';\n\nexport interface SpacingProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Высота спэйсинга.\n *\n * Принимает значения дизайн-системы, числовые значения и css-переменные.\n */\n size?: SpacingSizeProp | undefined;\n /**\n * @deprecated 7.0.0.Будет удалeно в **VKUI v9**.\n */\n children?: React.ReactNode | undefined; // TODO [>=9]: удалить неиспользуемое свойство\n}\n/**\n * @see https://vkui.io/components/spacing\n */\nexport const Spacing = ({ size = 'm', ...restProps }: SpacingProps): React.ReactNode => {\n const [spacingSizeClassName, spacingSizeStyle] = resolveSpacingSize(\n CUSTOM_CSS_TOKEN_FOR_USER_GAP,\n size,\n );\n return (\n <RootComponent\n {...restProps}\n baseStyle={spacingSizeStyle}\n baseClassName={classNames(styles.host, spacingSizeClassName)}\n />\n );\n};\n"],"names":["classNames","resolveSpacingSize","RootComponent","styles","CUSTOM_CSS_TOKEN_FOR_USER_GAP","Spacing","size","restProps","spacingSizeClassName","spacingSizeStyle","baseStyle","baseClassName","host"],"mappings":";AACA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,kBAAkB,QAA8B,8BAA2B;AAEpF,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,OAAOC,YAAY,uBAAuB;AAE1C,OAAO,MAAMC,gCAAgC,gCAAgC;AAc7E;;CAEC,GACD,OAAO,MAAMC,UAAU,CAAC,EAAEC,OAAO,GAAG,EAAE,GAAGC,WAAyB;IAChE,MAAM,CAACC,sBAAsBC,iBAAiB,GAAGR,mBAC/CG,+BACAE;IAEF,qBACE,KAACJ;QACE,GAAGK,SAAS;QACbG,WAAWD;QACXE,eAAeX,WAAWG,OAAOS,IAAI,EAAEJ;;AAG7C,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';\nimport { animationVisibilityDelayStyles } from '../../styles/animationVisibilityDelay';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport { SpinnerAnimation } from './SpinnerAnimation';\nimport { Icon16Spinner, Icon24Spinner, Icon32Spinner, Icon44Spinner } from './icons';\nimport styles from './Spinner.module.css';\nimport stylesDelay from '../../styles/animationVisibilityDelay.module.css';\n\nconst spinnerIconMap = {\n s: Icon16Spinner,\n m: Icon24Spinner,\n l: Icon32Spinner,\n xl: Icon44Spinner,\n};\n\nexport interface SpinnerProps extends HTMLAttributesWithRootRef<HTMLSpanElement> {\n /**\n * Размер спиннера.\n */\n size?: 's' | 'm' | 'l' | 'xl';\n /**\n * Отключение анимации.\n */\n disableAnimation?: boolean;\n /**\n * Задать цвет можно будет через свойство color родителя.\n */\n noColor?: boolean;\n /**\n * Задерживает отрисовку элемента на заданное количество миллисекунд.\n */\n visibilityDelay?: number;\n}\n\n/**\n * @see https://vkui.io/components/spinner\n */\n// eslint-disable-next-line react/display-name -- используется defineComponentDisplayNames\nexport const Spinner = React.memo(\n ({\n size = 'm',\n children = 'Загружается...',\n disableAnimation = false,\n noColor = false,\n visibilityDelay,\n ...restProps\n }: SpinnerProps) => {\n const SpinnerIcon = spinnerIconMap[size];\n\n return (\n <RootComponent\n Component=\"span\"\n role=\"status\"\n {...restProps}\n baseClassName={classNames(\n styles.host,\n noColor && styles.noColor,\n visibilityDelay && stylesDelay.visibilityDelay,\n )}\n baseStyle={animationVisibilityDelayStyles(visibilityDelay)}\n >\n <SpinnerIcon>{disableAnimation ? null : <SpinnerAnimation size={size} />}</SpinnerIcon>\n {hasReactNode(children) && <VisuallyHidden>{children}</VisuallyHidden>}\n </RootComponent>\n );\n },\n);\n\nif (process.env.NODE_ENV !== 'production') {\n defineComponentDisplayNames(Spinner, 'Spinner');\n}\n"],"names":["React","classNames","hasReactNode","defineComponentDisplayNames","animationVisibilityDelayStyles","RootComponent","VisuallyHidden","SpinnerAnimation","Icon16Spinner","Icon24Spinner","Icon32Spinner","Icon44Spinner","styles","stylesDelay","spinnerIconMap","s","m","l","xl","Spinner","memo","size","children","disableAnimation","noColor","visibilityDelay","restProps","SpinnerIcon","Component","role","baseClassName","host","baseStyle","process","env","NODE_ENV"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,2BAA2B,QAAQ,iDAA8C;AAC1F,SAASC,8BAA8B,QAAQ,2CAAwC;AAEvF,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,cAAc,QAAQ,sCAAmC;AAClE,SAASC,gBAAgB,QAAQ,wBAAqB;AACtD,SAASC,aAAa,EAAEC,aAAa,EAAEC,aAAa,EAAEC,aAAa,QAAQ,aAAU;AACrF,OAAOC,YAAY,uBAAuB;AAC1C,OAAOC,iBAAiB,mDAAmD;AAE3E,MAAMC,iBAAiB;IACrBC,GAAGP;IACHQ,GAAGP;IACHQ,GAAGP;IACHQ,IAAIP;AACN;AAqBA;;CAEC,GACD,0FAA0F;AAC1F,OAAO,MAAMQ,wBAAUnB,MAAMoB,IAAI,CAC/B,CAAC,EACCC,OAAO,GAAG,EACVC,WAAW,gBAAgB,EAC3BC,mBAAmB,KAAK,EACxBC,UAAU,KAAK,EACfC,eAAe,EACf,GAAGC,WACU;IACb,MAAMC,cAAcb,cAAc,CAACO,KAAK;IAExC,qBACE,MAAChB;QACCuB,WAAU;QACVC,MAAK;QACJ,GAAGH,SAAS;QACbI,eAAe7B,WACbW,OAAOmB,IAAI,EACXP,WAAWZ,OAAOY,OAAO,EACzBC,mBAAmBZ,YAAYY,eAAe;QAEhDO,WAAW5B,+BAA+BqB;;0BAE1C,KAACE;0BAAaJ,mBAAmB,qBAAO,KAAChB;oBAAiBc,MAAMA;;;YAC/DnB,aAAaoB,2BAAa,KAAChB;0BAAgBgB;;;;AAGlD,GACA;AAEF,IAAIW,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;IACzChC,4BAA4BgB,SAAS;AACvC"}
1
+ {"version":3,"sources":["../../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';\nimport { animationVisibilityDelayStyles } from '../../styles/animationVisibilityDelay';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport { SpinnerAnimation } from './SpinnerAnimation';\nimport { Icon16Spinner, Icon24Spinner, Icon32Spinner, Icon44Spinner } from './icons';\nimport styles from './Spinner.module.css';\nimport stylesDelay from '../../styles/animationVisibilityDelay.module.css';\n\nconst spinnerIconMap = {\n s: Icon16Spinner,\n m: Icon24Spinner,\n l: Icon32Spinner,\n xl: Icon44Spinner,\n};\n\nexport interface SpinnerProps extends HTMLAttributesWithRootRef<HTMLSpanElement> {\n /**\n * Размер спиннера.\n */\n size?: 's' | 'm' | 'l' | 'xl' | undefined;\n /**\n * Отключение анимации.\n */\n disableAnimation?: boolean | undefined;\n /**\n * Задать цвет можно будет через свойство color родителя.\n */\n noColor?: boolean | undefined;\n /**\n * Задерживает отрисовку элемента на заданное количество миллисекунд.\n */\n visibilityDelay?: number | undefined;\n}\n\n/**\n * @see https://vkui.io/components/spinner\n */\n// eslint-disable-next-line react/display-name -- используется defineComponentDisplayNames\nexport const Spinner = React.memo(\n ({\n size = 'm',\n children = 'Загружается...',\n disableAnimation = false,\n noColor = false,\n visibilityDelay,\n ...restProps\n }: SpinnerProps) => {\n const SpinnerIcon = spinnerIconMap[size];\n\n return (\n <RootComponent\n Component=\"span\"\n role=\"status\"\n {...restProps}\n baseClassName={classNames(\n styles.host,\n noColor && styles.noColor,\n visibilityDelay && stylesDelay.visibilityDelay,\n )}\n baseStyle={animationVisibilityDelayStyles(visibilityDelay)}\n >\n <SpinnerIcon>{disableAnimation ? null : <SpinnerAnimation size={size} />}</SpinnerIcon>\n {hasReactNode(children) && <VisuallyHidden>{children}</VisuallyHidden>}\n </RootComponent>\n );\n },\n);\n\nif (process.env.NODE_ENV !== 'production') {\n defineComponentDisplayNames(Spinner, 'Spinner');\n}\n"],"names":["React","classNames","hasReactNode","defineComponentDisplayNames","animationVisibilityDelayStyles","RootComponent","VisuallyHidden","SpinnerAnimation","Icon16Spinner","Icon24Spinner","Icon32Spinner","Icon44Spinner","styles","stylesDelay","spinnerIconMap","s","m","l","xl","Spinner","memo","size","children","disableAnimation","noColor","visibilityDelay","restProps","SpinnerIcon","Component","role","baseClassName","host","baseStyle","process","env","NODE_ENV"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,2BAA2B,QAAQ,iDAA8C;AAC1F,SAASC,8BAA8B,QAAQ,2CAAwC;AAEvF,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,cAAc,QAAQ,sCAAmC;AAClE,SAASC,gBAAgB,QAAQ,wBAAqB;AACtD,SAASC,aAAa,EAAEC,aAAa,EAAEC,aAAa,EAAEC,aAAa,QAAQ,aAAU;AACrF,OAAOC,YAAY,uBAAuB;AAC1C,OAAOC,iBAAiB,mDAAmD;AAE3E,MAAMC,iBAAiB;IACrBC,GAAGP;IACHQ,GAAGP;IACHQ,GAAGP;IACHQ,IAAIP;AACN;AAqBA;;CAEC,GACD,0FAA0F;AAC1F,OAAO,MAAMQ,wBAAUnB,MAAMoB,IAAI,CAC/B,CAAC,EACCC,OAAO,GAAG,EACVC,WAAW,gBAAgB,EAC3BC,mBAAmB,KAAK,EACxBC,UAAU,KAAK,EACfC,eAAe,EACf,GAAGC,WACU;IACb,MAAMC,cAAcb,cAAc,CAACO,KAAK;IAExC,qBACE,MAAChB;QACCuB,WAAU;QACVC,MAAK;QACJ,GAAGH,SAAS;QACbI,eAAe7B,WACbW,OAAOmB,IAAI,EACXP,WAAWZ,OAAOY,OAAO,EACzBC,mBAAmBZ,YAAYY,eAAe;QAEhDO,WAAW5B,+BAA+BqB;;0BAE1C,KAACE;0BAAaJ,mBAAmB,qBAAO,KAAChB;oBAAiBc,MAAMA;;;YAC/DnB,aAAaoB,2BAAa,KAAChB;0BAAgBgB;;;;AAGlD,GACA;AAEF,IAAIW,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;IACzChC,4BAA4BgB,SAAS;AACvC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SplitCol/SplitCol.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useMediaQueries } from '../../hooks/useMediaQueries';\nimport { ViewWidth, viewWidthToClassName } from '../../lib/adaptivity';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { SplitColContext } from './SplitColContext';\nimport styles from './SplitCol.module.css';\n\nconst breakpointClassNames = {\n none: classNames(styles.viewWidthNone, 'vkuiInternalSplitCol--viewWidth-none'),\n tabletMinus: styles.viewWidthTabletMinus,\n smallTabletPlus: styles.viewWidthSmallTabletPlus,\n tabletPlus: 'vkuiInternalSplitCol--viewWidth-tabletPlus',\n};\n\nfunction useTransitionAnimate(animateProp?: boolean) {\n const { viewWidth } = useAdaptivity();\n const [animate, setAnimate] = React.useState(Boolean(animateProp));\n const mediaQueries = useMediaQueries();\n\n React.useEffect(() => {\n if (animateProp !== undefined) {\n setAnimate(animateProp);\n return;\n }\n\n if (viewWidth !== undefined) {\n setAnimate(viewWidth < ViewWidth.TABLET);\n return;\n }\n\n // eslint-disable-next-line no-restricted-properties\n const listener = () => setAnimate(!mediaQueries.smallTabletPlus.matches);\n listener();\n\n mediaQueries.smallTabletPlus.addEventListener('change', listener);\n return () => {\n mediaQueries.smallTabletPlus.removeEventListener('change', listener);\n };\n }, [animateProp, viewWidth, mediaQueries]);\n\n return animate;\n}\n\nexport interface SplitColProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Ширина колонки.\n */\n width?: number | string;\n /**\n * Максимальная ширина колонки.\n */\n maxWidth?: number | string;\n /**\n * Минимальная ширина колонки.\n */\n minWidth?: number | string;\n /**\n * Если false, то переходы между Panel происходят без анимации.\n */\n animate?: boolean;\n /**\n * Если true, то добавляются боковые отступы фиксированной величины при ширине больше чем `smallTablet`.\n */\n autoSpaced?: boolean;\n /**\n * Фиксированное положение колонки.\n */\n fixed?: boolean;\n /**\n * Если true, то ширина контейнера становится 100% при ширине меньше чем `tablet`.\n */\n stretchedOnMobile?: boolean;\n}\n\n/**\n * @see https://vkui.io/components/split-layout#split-col\n */\nexport const SplitCol = (props: SplitColProps): React.ReactNode => {\n const {\n children,\n width,\n maxWidth,\n minWidth,\n animate: animateProp,\n fixed,\n autoSpaced,\n stretchedOnMobile,\n getRootRef,\n ...restProps\n } = props;\n const baseRef = useExternRef(getRootRef);\n const { viewWidth } = useAdaptivity();\n const animate = useTransitionAnimate(animateProp);\n\n const contextValue = React.useMemo(\n () => ({\n colRef: baseRef,\n animate,\n }),\n [animate, baseRef],\n );\n\n return (\n <RootComponent\n {...restProps}\n baseStyle={{\n width,\n maxWidth,\n minWidth,\n }}\n getRootRef={baseRef}\n baseClassName={classNames(\n styles.host,\n viewWidthToClassName(breakpointClassNames, viewWidth),\n autoSpaced && classNames(styles.spacedAuto, 'vkuiInternalSplitCol--spaced-auto'),\n fixed && styles.fixed,\n stretchedOnMobile && styles.stretchedOnMobile,\n )}\n >\n <SplitColContext.Provider value={contextValue}>\n {fixed ? <div className={styles.fixedInner}>{children}</div> : children}\n </SplitColContext.Provider>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useExternRef","useMediaQueries","ViewWidth","viewWidthToClassName","RootComponent","SplitColContext","styles","breakpointClassNames","none","viewWidthNone","tabletMinus","viewWidthTabletMinus","smallTabletPlus","viewWidthSmallTabletPlus","tabletPlus","useTransitionAnimate","animateProp","viewWidth","animate","setAnimate","useState","Boolean","mediaQueries","useEffect","undefined","TABLET","listener","matches","addEventListener","removeEventListener","SplitCol","props","children","width","maxWidth","minWidth","fixed","autoSpaced","stretchedOnMobile","getRootRef","restProps","baseRef","contextValue","useMemo","colRef","baseStyle","baseClassName","host","spacedAuto","Provider","value","div","className","fixedInner"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,eAAe,QAAQ,iCAA8B;AAC9D,SAASC,SAAS,EAAEC,oBAAoB,QAAQ,gCAAuB;AAEvE,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,eAAe,QAAQ,uBAAoB;AACpD,OAAOC,YAAY,wBAAwB;AAE3C,MAAMC,uBAAuB;IAC3BC,MAAMV,WAAWQ,OAAOG,aAAa,EAAE;IACvCC,aAAaJ,OAAOK,oBAAoB;IACxCC,iBAAiBN,OAAOO,wBAAwB;IAChDC,YAAY;AACd;AAEA,SAASC,qBAAqBC,WAAqB;IACjD,MAAM,EAAEC,SAAS,EAAE,GAAGlB;IACtB,MAAM,CAACmB,SAASC,WAAW,GAAGtB,MAAMuB,QAAQ,CAACC,QAAQL;IACrD,MAAMM,eAAerB;IAErBJ,MAAM0B,SAAS,CAAC;QACd,IAAIP,gBAAgBQ,WAAW;YAC7BL,WAAWH;YACX;QACF;QAEA,IAAIC,cAAcO,WAAW;YAC3BL,WAAWF,YAAYf,UAAUuB,MAAM;YACvC;QACF;QAEA,oDAAoD;QACpD,MAAMC,WAAW,IAAMP,WAAW,CAACG,aAAaV,eAAe,CAACe,OAAO;QACvED;QAEAJ,aAAaV,eAAe,CAACgB,gBAAgB,CAAC,UAAUF;QACxD,OAAO;YACLJ,aAAaV,eAAe,CAACiB,mBAAmB,CAAC,UAAUH;QAC7D;IACF,GAAG;QAACV;QAAaC;QAAWK;KAAa;IAEzC,OAAOJ;AACT;AAiCA;;CAEC,GACD,OAAO,MAAMY,WAAW,CAACC;IACvB,MAAM,EACJC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,QAAQ,EACRjB,SAASF,WAAW,EACpBoB,KAAK,EACLC,UAAU,EACVC,iBAAiB,EACjBC,UAAU,EACV,GAAGC,WACJ,GAAGT;IACJ,MAAMU,UAAUzC,aAAauC;IAC7B,MAAM,EAAEtB,SAAS,EAAE,GAAGlB;IACtB,MAAMmB,UAAUH,qBAAqBC;IAErC,MAAM0B,eAAe7C,MAAM8C,OAAO,CAChC,IAAO,CAAA;YACLC,QAAQH;YACRvB;QACF,CAAA,GACA;QAACA;QAASuB;KAAQ;IAGpB,qBACE,KAACrC;QACE,GAAGoC,SAAS;QACbK,WAAW;YACTZ;YACAC;YACAC;QACF;QACAI,YAAYE;QACZK,eAAehD,WACbQ,OAAOyC,IAAI,EACX5C,qBAAqBI,sBAAsBU,YAC3CoB,cAAcvC,WAAWQ,OAAO0C,UAAU,EAAE,sCAC5CZ,SAAS9B,OAAO8B,KAAK,EACrBE,qBAAqBhC,OAAOgC,iBAAiB;kBAG/C,cAAA,KAACjC,gBAAgB4C,QAAQ;YAACC,OAAOR;sBAC9BN,sBAAQ,KAACe;gBAAIC,WAAW9C,OAAO+C,UAAU;0BAAGrB;iBAAkBA;;;AAIvE,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/SplitCol/SplitCol.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useMediaQueries } from '../../hooks/useMediaQueries';\nimport { ViewWidth, viewWidthToClassName } from '../../lib/adaptivity';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { SplitColContext } from './SplitColContext';\nimport styles from './SplitCol.module.css';\n\nconst breakpointClassNames = {\n none: classNames(styles.viewWidthNone, 'vkuiInternalSplitCol--viewWidth-none'),\n tabletMinus: styles.viewWidthTabletMinus,\n smallTabletPlus: styles.viewWidthSmallTabletPlus,\n tabletPlus: 'vkuiInternalSplitCol--viewWidth-tabletPlus',\n};\n\nfunction useTransitionAnimate(animateProp?: boolean) {\n const { viewWidth } = useAdaptivity();\n const [animate, setAnimate] = React.useState(Boolean(animateProp));\n const mediaQueries = useMediaQueries();\n\n React.useEffect(() => {\n if (animateProp !== undefined) {\n setAnimate(animateProp);\n return;\n }\n\n if (viewWidth !== undefined) {\n setAnimate(viewWidth < ViewWidth.TABLET);\n return;\n }\n\n // eslint-disable-next-line no-restricted-properties\n const listener = () => setAnimate(!mediaQueries.smallTabletPlus.matches);\n listener();\n\n mediaQueries.smallTabletPlus.addEventListener('change', listener);\n return () => {\n mediaQueries.smallTabletPlus.removeEventListener('change', listener);\n };\n }, [animateProp, viewWidth, mediaQueries]);\n\n return animate;\n}\n\nexport interface SplitColProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Ширина колонки.\n */\n width?: number | string | undefined;\n /**\n * Максимальная ширина колонки.\n */\n maxWidth?: number | string | undefined;\n /**\n * Минимальная ширина колонки.\n */\n minWidth?: number | string | undefined;\n /**\n * Если false, то переходы между Panel происходят без анимации.\n */\n animate?: boolean | undefined;\n /**\n * Если true, то добавляются боковые отступы фиксированной величины при ширине больше чем `smallTablet`.\n */\n autoSpaced?: boolean | undefined;\n /**\n * Фиксированное положение колонки.\n */\n fixed?: boolean | undefined;\n /**\n * Если true, то ширина контейнера становится 100% при ширине меньше чем `tablet`.\n */\n stretchedOnMobile?: boolean | undefined;\n}\n\n/**\n * @see https://vkui.io/components/split-layout#split-col\n */\nexport const SplitCol = (props: SplitColProps): React.ReactNode => {\n const {\n children,\n width,\n maxWidth,\n minWidth,\n animate: animateProp,\n fixed,\n autoSpaced,\n stretchedOnMobile,\n getRootRef,\n ...restProps\n } = props;\n const baseRef = useExternRef(getRootRef);\n const { viewWidth } = useAdaptivity();\n const animate = useTransitionAnimate(animateProp);\n\n const contextValue = React.useMemo(\n () => ({\n colRef: baseRef,\n animate,\n }),\n [animate, baseRef],\n );\n\n return (\n <RootComponent\n {...restProps}\n baseStyle={{\n width,\n maxWidth,\n minWidth,\n }}\n getRootRef={baseRef}\n baseClassName={classNames(\n styles.host,\n viewWidthToClassName(breakpointClassNames, viewWidth),\n autoSpaced && classNames(styles.spacedAuto, 'vkuiInternalSplitCol--spaced-auto'),\n fixed && styles.fixed,\n stretchedOnMobile && styles.stretchedOnMobile,\n )}\n >\n <SplitColContext.Provider value={contextValue}>\n {fixed ? <div className={styles.fixedInner}>{children}</div> : children}\n </SplitColContext.Provider>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useExternRef","useMediaQueries","ViewWidth","viewWidthToClassName","RootComponent","SplitColContext","styles","breakpointClassNames","none","viewWidthNone","tabletMinus","viewWidthTabletMinus","smallTabletPlus","viewWidthSmallTabletPlus","tabletPlus","useTransitionAnimate","animateProp","viewWidth","animate","setAnimate","useState","Boolean","mediaQueries","useEffect","undefined","TABLET","listener","matches","addEventListener","removeEventListener","SplitCol","props","children","width","maxWidth","minWidth","fixed","autoSpaced","stretchedOnMobile","getRootRef","restProps","baseRef","contextValue","useMemo","colRef","baseStyle","baseClassName","host","spacedAuto","Provider","value","div","className","fixedInner"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,eAAe,QAAQ,iCAA8B;AAC9D,SAASC,SAAS,EAAEC,oBAAoB,QAAQ,gCAAuB;AAEvE,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,eAAe,QAAQ,uBAAoB;AACpD,OAAOC,YAAY,wBAAwB;AAE3C,MAAMC,uBAAuB;IAC3BC,MAAMV,WAAWQ,OAAOG,aAAa,EAAE;IACvCC,aAAaJ,OAAOK,oBAAoB;IACxCC,iBAAiBN,OAAOO,wBAAwB;IAChDC,YAAY;AACd;AAEA,SAASC,qBAAqBC,WAAqB;IACjD,MAAM,EAAEC,SAAS,EAAE,GAAGlB;IACtB,MAAM,CAACmB,SAASC,WAAW,GAAGtB,MAAMuB,QAAQ,CAACC,QAAQL;IACrD,MAAMM,eAAerB;IAErBJ,MAAM0B,SAAS,CAAC;QACd,IAAIP,gBAAgBQ,WAAW;YAC7BL,WAAWH;YACX;QACF;QAEA,IAAIC,cAAcO,WAAW;YAC3BL,WAAWF,YAAYf,UAAUuB,MAAM;YACvC;QACF;QAEA,oDAAoD;QACpD,MAAMC,WAAW,IAAMP,WAAW,CAACG,aAAaV,eAAe,CAACe,OAAO;QACvED;QAEAJ,aAAaV,eAAe,CAACgB,gBAAgB,CAAC,UAAUF;QACxD,OAAO;YACLJ,aAAaV,eAAe,CAACiB,mBAAmB,CAAC,UAAUH;QAC7D;IACF,GAAG;QAACV;QAAaC;QAAWK;KAAa;IAEzC,OAAOJ;AACT;AAiCA;;CAEC,GACD,OAAO,MAAMY,WAAW,CAACC;IACvB,MAAM,EACJC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,QAAQ,EACRjB,SAASF,WAAW,EACpBoB,KAAK,EACLC,UAAU,EACVC,iBAAiB,EACjBC,UAAU,EACV,GAAGC,WACJ,GAAGT;IACJ,MAAMU,UAAUzC,aAAauC;IAC7B,MAAM,EAAEtB,SAAS,EAAE,GAAGlB;IACtB,MAAMmB,UAAUH,qBAAqBC;IAErC,MAAM0B,eAAe7C,MAAM8C,OAAO,CAChC,IAAO,CAAA;YACLC,QAAQH;YACRvB;QACF,CAAA,GACA;QAACA;QAASuB;KAAQ;IAGpB,qBACE,KAACrC;QACE,GAAGoC,SAAS;QACbK,WAAW;YACTZ;YACAC;YACAC;QACF;QACAI,YAAYE;QACZK,eAAehD,WACbQ,OAAOyC,IAAI,EACX5C,qBAAqBI,sBAAsBU,YAC3CoB,cAAcvC,WAAWQ,OAAO0C,UAAU,EAAE,sCAC5CZ,SAAS9B,OAAO8B,KAAK,EACrBE,qBAAqBhC,OAAOgC,iBAAiB;kBAG/C,cAAA,KAACjC,gBAAgB4C,QAAQ;YAACC,OAAOR;sBAC9BN,sBAAQ,KAACe;gBAAIC,WAAW9C,OAAO+C,UAAU;0BAAGrB;iBAAkBA;;;AAIvE,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SplitLayout/SplitLayout.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasDataAttribute, HasRootRef, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './SplitLayout.module.css';\n\nconst warn = warnOnce('SplitLayout');\n\nexport interface SplitLayoutProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * @deprecated Since 7.9.0. Будет удалeно в **VKUI v9**.\n * Вместо этого используйте `slotProps={ content: { getRootRef: ... } }`.\n */\n getRef?: React.Ref<HTMLDivElement>;\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `root`: свойства для прокидывания в корень компонента;\n * - `content`: свойства для прокидывания в контент;.\n */\n slotProps?: {\n root?: React.HTMLAttributes<HTMLDivElement> & HasRootRef<HTMLDivElement> & HasDataAttribute;\n content?: React.HTMLAttributes<HTMLDivElement> & HasRootRef<HTMLDivElement> & HasDataAttribute;\n };\n /**\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n *\n * @deprecated Since 7.0.0. Будет удалeно в **VKUI v9**.\n * Начиная с **VKUI v7** компоненты можно располагать в любом\n * месте приложения в пределах `AppRoot`.\n */\n popout?: React.ReactNode;\n /**\n * Свойство для отрисовки `ModalRoot`.\n *\n * @deprecated Since 7.0.0. Будет удалeно в **VKUI v9**.\n * Начиная с **VKUI v7** `ModalRoot` можно располагать в любом\n * месте приложения в пределах `AppRoot`.\n */\n modal?: React.ReactNode;\n /**\n * Компонент для отрисовки заголовка.\n */\n header?: React.ReactNode;\n /**\n * Центрирует контент.\n */\n center?: boolean;\n}\n\n/**\n * @see https://vkui.io/components/split-layout\n */\nexport const SplitLayout = ({\n popout,\n modal,\n header,\n center,\n getRef,\n children,\n\n slotProps,\n ...restProps\n}: SplitLayoutProps): React.ReactNode => {\n /* istanbul ignore if: не проверяем в тестах */\n if (process.env.NODE_ENV === 'development') {\n if (getRef) {\n warn(\n 'Свойство `getRef` устаревшее, используйте `slotProps={ content: { getRootRef: ... } }`',\n );\n }\n if (popout) {\n warn(\n 'Свойство `popout` устаревшее. Передаваемый элемент можно рендерить в любом месте приложения.',\n );\n }\n if (modal) {\n warn(\n 'Свойство `modal` устаревшее. Передаваемый элемент можно рендерить в любом месте приложения.',\n );\n }\n }\n\n const rootRest = useMergeProps(restProps, slotProps?.root);\n const contentRest = useMergeProps({ getRootRef: getRef }, slotProps?.content);\n\n const platform = usePlatform();\n\n return (\n <RootComponent\n baseClassName={classNames(styles.host, platform === 'ios' && styles.ios)}\n {...rootRest}\n >\n {header}\n <RootComponent\n baseClassName={classNames(\n styles.inner,\n !!header && styles.innerHeader,\n center && styles.innerCenter,\n )}\n {...contentRest}\n >\n {children}\n {modal}\n {popout}\n </RootComponent>\n </RootComponent>\n );\n};\n"],"names":["classNames","useMergeProps","usePlatform","warnOnce","RootComponent","styles","warn","SplitLayout","popout","modal","header","center","getRef","children","slotProps","restProps","process","env","NODE_ENV","rootRest","root","contentRest","getRootRef","content","platform","baseClassName","host","ios","inner","innerHeader","innerCenter"],"mappings":"AAAA;;AAGA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,QAAQ,QAAQ,wBAAqB;AAE9C,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,OAAOC,YAAY,2BAA2B;AAE9C,MAAMC,OAAOH,SAAS;AA2CtB;;CAEC,GACD,OAAO,MAAMI,cAAc,CAAC,EAC1BC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,QAAQ,EAERC,SAAS,EACT,GAAGC,WACc;IACjB,6CAA6C,GAC7C,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,IAAIN,QAAQ;YACVN,KACE;QAEJ;QACA,IAAIE,QAAQ;YACVF,KACE;QAEJ;QACA,IAAIG,OAAO;YACTH,KACE;QAEJ;IACF;IAEA,MAAMa,WAAWlB,cAAcc,WAAWD,WAAWM;IACrD,MAAMC,cAAcpB,cAAc;QAAEqB,YAAYV;IAAO,GAAGE,WAAWS;IAErE,MAAMC,WAAWtB;IAEjB,qBACE,MAACE;QACCqB,eAAezB,WAAWK,OAAOqB,IAAI,EAAEF,aAAa,SAASnB,OAAOsB,GAAG;QACtE,GAAGR,QAAQ;;YAEXT;0BACD,MAACN;gBACCqB,eAAezB,WACbK,OAAOuB,KAAK,EACZ,CAAC,CAAClB,UAAUL,OAAOwB,WAAW,EAC9BlB,UAAUN,OAAOyB,WAAW;gBAE7B,GAAGT,WAAW;;oBAEdR;oBACAJ;oBACAD;;;;;AAIT,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/SplitLayout/SplitLayout.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasDataAttribute, HasRootRef, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './SplitLayout.module.css';\n\nconst warn = warnOnce('SplitLayout');\n\nexport interface SplitLayoutProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * @deprecated Since 7.9.0. Будет удалeно в **VKUI v9**.\n * Вместо этого используйте `slotProps={ content: { getRootRef: ... } }`.\n */\n getRef?: React.Ref<HTMLDivElement> | undefined;\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `root`: свойства для прокидывания в корень компонента;\n * - `content`: свойства для прокидывания в контент;.\n */\n slotProps?:\n | {\n root?:\n | (React.HTMLAttributes<HTMLDivElement> & HasRootRef<HTMLDivElement> & HasDataAttribute)\n | undefined;\n content?:\n | (React.HTMLAttributes<HTMLDivElement> & HasRootRef<HTMLDivElement> & HasDataAttribute)\n | undefined;\n }\n | undefined;\n /**\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n *\n * @deprecated Since 7.0.0. Будет удалeно в **VKUI v9**.\n * Начиная с **VKUI v7** компоненты можно располагать в любом\n * месте приложения в пределах `AppRoot`.\n */\n popout?: React.ReactNode | undefined;\n /**\n * Свойство для отрисовки `ModalRoot`.\n *\n * @deprecated Since 7.0.0. Будет удалeно в **VKUI v9**.\n * Начиная с **VKUI v7** `ModalRoot` можно располагать в любом\n * месте приложения в пределах `AppRoot`.\n */\n modal?: React.ReactNode | undefined;\n /**\n * Компонент для отрисовки заголовка.\n */\n header?: React.ReactNode | undefined;\n /**\n * Центрирует контент.\n */\n center?: boolean | undefined;\n}\n\n/**\n * @see https://vkui.io/components/split-layout\n */\nexport const SplitLayout = ({\n popout,\n modal,\n header,\n center,\n getRef,\n children,\n\n slotProps,\n ...restProps\n}: SplitLayoutProps): React.ReactNode => {\n /* istanbul ignore if: не проверяем в тестах */\n if (process.env.NODE_ENV === 'development') {\n if (getRef) {\n warn(\n 'Свойство `getRef` устаревшее, используйте `slotProps={ content: { getRootRef: ... } }`',\n );\n }\n if (popout) {\n warn(\n 'Свойство `popout` устаревшее. Передаваемый элемент можно рендерить в любом месте приложения.',\n );\n }\n if (modal) {\n warn(\n 'Свойство `modal` устаревшее. Передаваемый элемент можно рендерить в любом месте приложения.',\n );\n }\n }\n\n const rootRest = useMergeProps(restProps, slotProps?.root);\n const contentRest = useMergeProps({ getRootRef: getRef }, slotProps?.content);\n\n const platform = usePlatform();\n\n return (\n <RootComponent\n baseClassName={classNames(styles.host, platform === 'ios' && styles.ios)}\n {...rootRest}\n >\n {header}\n <RootComponent\n baseClassName={classNames(\n styles.inner,\n !!header && styles.innerHeader,\n center && styles.innerCenter,\n )}\n {...contentRest}\n >\n {children}\n {modal}\n {popout}\n </RootComponent>\n </RootComponent>\n );\n};\n"],"names":["classNames","useMergeProps","usePlatform","warnOnce","RootComponent","styles","warn","SplitLayout","popout","modal","header","center","getRef","children","slotProps","restProps","process","env","NODE_ENV","rootRest","root","contentRest","getRootRef","content","platform","baseClassName","host","ios","inner","innerHeader","innerCenter"],"mappings":"AAAA;;AAGA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,QAAQ,QAAQ,wBAAqB;AAE9C,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,OAAOC,YAAY,2BAA2B;AAE9C,MAAMC,OAAOH,SAAS;AAiDtB;;CAEC,GACD,OAAO,MAAMI,cAAc,CAAC,EAC1BC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,QAAQ,EAERC,SAAS,EACT,GAAGC,WACc;IACjB,6CAA6C,GAC7C,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,IAAIN,QAAQ;YACVN,KACE;QAEJ;QACA,IAAIE,QAAQ;YACVF,KACE;QAEJ;QACA,IAAIG,OAAO;YACTH,KACE;QAEJ;IACF;IAEA,MAAMa,WAAWlB,cAAcc,WAAWD,WAAWM;IACrD,MAAMC,cAAcpB,cAAc;QAAEqB,YAAYV;IAAO,GAAGE,WAAWS;IAErE,MAAMC,WAAWtB;IAEjB,qBACE,MAACE;QACCqB,eAAezB,WAAWK,OAAOqB,IAAI,EAAEF,aAAa,SAASnB,OAAOsB,GAAG;QACtE,GAAGR,QAAQ;;YAEXT;0BACD,MAACN;gBACCqB,eAAezB,WACbK,OAAOuB,KAAK,EACZ,CAAC,CAAClB,UAAUL,OAAOwB,WAAW,EAC9BlB,UAAUN,OAAOyB,WAAW;gBAE7B,GAAGT,WAAW;;oBAEdR;oBACAJ;oBACAD;;;;;AAIT,EAAE"}