@vkontakte/vkui 8.0.2 → 8.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1386) 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 +21 -12
  497. package/dist/components/Search/Search.js.map +1 -1
  498. package/dist/components/SegmentedControl/SegmentedControl.d.ts +6 -6
  499. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  500. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  501. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +3 -3
  502. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  503. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  504. package/dist/components/SelectMimicry/SelectMimicry.d.ts +3 -3
  505. package/dist/components/SelectMimicry/SelectMimicry.d.ts.map +1 -1
  506. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  507. package/dist/components/SelectTypography/SelectTypography.d.ts +1 -1
  508. package/dist/components/SelectTypography/SelectTypography.d.ts.map +1 -1
  509. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  510. package/dist/components/SelectionControl/SelectionControl.d.ts +1 -1
  511. package/dist/components/SelectionControl/SelectionControl.d.ts.map +1 -1
  512. package/dist/components/SelectionControl/SelectionControl.js.map +1 -1
  513. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +2 -2
  514. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -1
  515. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
  516. package/dist/components/Separator/Separator.d.ts +5 -5
  517. package/dist/components/Separator/Separator.d.ts.map +1 -1
  518. package/dist/components/Separator/Separator.js.map +1 -1
  519. package/dist/components/SimpleCell/Chevron/Chevron.d.ts +1 -1
  520. package/dist/components/SimpleCell/Chevron/Chevron.d.ts.map +1 -1
  521. package/dist/components/SimpleCell/Chevron/Chevron.js.map +1 -1
  522. package/dist/components/SimpleCell/SimpleCell.d.ts +14 -14
  523. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  524. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  525. package/dist/components/SimpleGrid/SimpleGrid.d.ts +6 -6
  526. package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
  527. package/dist/components/SimpleGrid/SimpleGrid.js.map +1 -1
  528. package/dist/components/Skeleton/Skeleton.d.ts +5 -5
  529. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  530. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  531. package/dist/components/Slider/Slider.d.ts +17 -17
  532. package/dist/components/Slider/Slider.d.ts.map +1 -1
  533. package/dist/components/Slider/Slider.js.map +1 -1
  534. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts +5 -5
  535. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts.map +1 -1
  536. package/dist/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  537. package/dist/components/Snackbar/Snackbar.d.ts +10 -10
  538. package/dist/components/Snackbar/Snackbar.d.ts.map +1 -1
  539. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  540. package/dist/components/Snackbar/subcomponents/Basic/Basic.d.ts +6 -6
  541. package/dist/components/Snackbar/subcomponents/Basic/Basic.d.ts.map +1 -1
  542. package/dist/components/Snackbar/subcomponents/Basic/Basic.js.map +1 -1
  543. package/dist/components/Snackbar/utils.d.ts +1 -1
  544. package/dist/components/Snackbar/utils.d.ts.map +1 -1
  545. package/dist/components/Snackbar/utils.js.map +1 -1
  546. package/dist/components/Spacing/Spacing.d.ts +2 -2
  547. package/dist/components/Spacing/Spacing.d.ts.map +1 -1
  548. package/dist/components/Spacing/Spacing.js.map +1 -1
  549. package/dist/components/Spinner/Spinner.d.ts +4 -4
  550. package/dist/components/Spinner/Spinner.d.ts.map +1 -1
  551. package/dist/components/Spinner/Spinner.js.map +1 -1
  552. package/dist/components/SplitCol/SplitCol.d.ts +7 -7
  553. package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
  554. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  555. package/dist/components/SplitLayout/SplitLayout.d.ts +8 -8
  556. package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
  557. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  558. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +2 -2
  559. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts.map +1 -1
  560. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  561. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts +8 -8
  562. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts.map +1 -1
  563. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  564. package/dist/components/Switch/Switch.d.ts +4 -4
  565. package/dist/components/Switch/Switch.d.ts.map +1 -1
  566. package/dist/components/Switch/Switch.js.map +1 -1
  567. package/dist/components/Tabbar/Tabbar.d.ts +2 -2
  568. package/dist/components/Tabbar/Tabbar.d.ts.map +1 -1
  569. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  570. package/dist/components/TabbarItem/TabbarItem.d.ts +3 -3
  571. package/dist/components/TabbarItem/TabbarItem.d.ts.map +1 -1
  572. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  573. package/dist/components/Tabs/Tabs.d.ts +7 -7
  574. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  575. package/dist/components/Tabs/Tabs.js.map +1 -1
  576. package/dist/components/Tabs/TabsModeContext.d.ts +1 -1
  577. package/dist/components/Tabs/TabsModeContext.d.ts.map +1 -1
  578. package/dist/components/Tabs/TabsModeContext.js.map +1 -1
  579. package/dist/components/TabsItem/TabsItem.d.ts +5 -5
  580. package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
  581. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  582. package/dist/components/Tappable/Tappable.d.ts +3 -3
  583. package/dist/components/Tappable/Tappable.d.ts.map +1 -1
  584. package/dist/components/Tappable/Tappable.js.map +1 -1
  585. package/dist/components/Tappable/state.d.ts +2 -2
  586. package/dist/components/Tappable/state.d.ts.map +1 -1
  587. package/dist/components/Tappable/state.js.map +1 -1
  588. package/dist/components/Textarea/Textarea.d.ts +6 -6
  589. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  590. package/dist/components/Textarea/Textarea.js.map +1 -1
  591. package/dist/components/ToolButton/ToolButton.d.ts +4 -4
  592. package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
  593. package/dist/components/ToolButton/ToolButton.js.map +1 -1
  594. package/dist/components/Tooltip/Tooltip.d.ts +6 -6
  595. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  596. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  597. package/dist/components/TooltipBase/TooltipBase.d.ts +10 -10
  598. package/dist/components/TooltipBase/TooltipBase.d.ts.map +1 -1
  599. package/dist/components/TooltipBase/TooltipBase.js.map +1 -1
  600. package/dist/components/Touch/Touch.d.ts +16 -16
  601. package/dist/components/Touch/Touch.d.ts.map +1 -1
  602. package/dist/components/Touch/Touch.js.map +1 -1
  603. package/dist/components/Typography/Caption/Caption.d.ts +1 -1
  604. package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
  605. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  606. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts +1 -1
  607. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
  608. package/dist/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
  609. package/dist/components/Typography/EllipsisText/EllipsisText.d.ts +3 -3
  610. package/dist/components/Typography/EllipsisText/EllipsisText.d.ts.map +1 -1
  611. package/dist/components/Typography/EllipsisText/EllipsisText.js.map +1 -1
  612. package/dist/components/Typography/Headline/Headline.d.ts +1 -1
  613. package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
  614. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  615. package/dist/components/Typography/Title/Title.d.ts +1 -1
  616. package/dist/components/Typography/Title/Title.d.ts.map +1 -1
  617. package/dist/components/Typography/Title/Title.js.map +1 -1
  618. package/dist/components/Typography/Typography.d.ts +6 -6
  619. package/dist/components/Typography/Typography.d.ts.map +1 -1
  620. package/dist/components/Typography/Typography.js.map +1 -1
  621. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts +1 -1
  622. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts.map +1 -1
  623. package/dist/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
  624. package/dist/components/UsersStack/UsersStack.d.ts +6 -6
  625. package/dist/components/UsersStack/UsersStack.d.ts.map +1 -1
  626. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  627. package/dist/components/View/View.d.ts +4 -4
  628. package/dist/components/View/View.d.ts.map +1 -1
  629. package/dist/components/View/View.js.map +1 -1
  630. package/dist/components/View/ViewInfinite.d.ts +12 -12
  631. package/dist/components/View/ViewInfinite.d.ts.map +1 -1
  632. package/dist/components/View/ViewInfinite.js.map +1 -1
  633. package/dist/components/WriteBar/WriteBar.d.ts +10 -10
  634. package/dist/components/WriteBar/WriteBar.d.ts.map +1 -1
  635. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  636. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts +3 -3
  637. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts.map +1 -1
  638. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  639. package/dist/components.css +1 -1
  640. package/dist/components.css.map +1 -1
  641. package/dist/cssm/components/Accordion/Accordion.js +3 -0
  642. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  643. package/dist/cssm/components/Accordion/AccordionIcon.js +17 -0
  644. package/dist/cssm/components/Accordion/AccordionIcon.js.map +1 -0
  645. package/dist/cssm/components/Accordion/AccordionSummary.js +4 -7
  646. package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
  647. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  648. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  649. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  650. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  651. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +0 -1
  652. package/dist/cssm/components/ActionSheetItem/subcomponents/Radio/Radio.js.map +1 -1
  653. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  654. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  655. package/dist/cssm/components/Alert/AlertBase.js.map +1 -1
  656. package/dist/cssm/components/Alert/AlertTypography.js.map +1 -1
  657. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  658. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  659. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  660. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  661. package/dist/cssm/components/AppRoot/types.js.map +1 -1
  662. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  663. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  664. package/dist/cssm/components/Avatar/Avatar.module.css +0 -5
  665. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  666. package/dist/cssm/components/Badge/Badge.js.map +1 -1
  667. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  668. package/dist/cssm/components/Box/Box.js.map +1 -1
  669. package/dist/cssm/components/Button/Button.js +1 -1
  670. package/dist/cssm/components/Button/Button.js.map +1 -1
  671. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  672. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  673. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  674. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  675. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  676. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  677. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  678. package/dist/cssm/components/CalendarTime/CalendarTimePicker.js.map +1 -1
  679. package/dist/cssm/components/Card/Card.js.map +1 -1
  680. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  681. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  682. package/dist/cssm/components/CarouselBase/Bullets.js.map +1 -1
  683. package/dist/cssm/components/CarouselBase/CarouselViewPort.js.map +1 -1
  684. package/dist/cssm/components/CarouselBase/ScrollArrows.js.map +1 -1
  685. package/dist/cssm/components/CarouselBase/helpers.js.map +1 -1
  686. package/dist/cssm/components/CarouselBase/types.js.map +1 -1
  687. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  688. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  689. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  690. package/dist/cssm/components/CellButton/CellButton.js +115 -7
  691. package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
  692. package/dist/cssm/components/CellButton/CellButton.module.css +165 -7
  693. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  694. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -1
  695. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  696. package/dist/cssm/components/ChipsInput/useChipsInput.js.map +1 -1
  697. package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  698. package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
  699. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  700. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
  701. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  702. package/dist/cssm/components/Clickable/useState.js.map +1 -1
  703. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  704. package/dist/cssm/components/ContentBadge/ContentBadge.js.map +1 -1
  705. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  706. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  707. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  708. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  709. package/dist/cssm/components/CustomSelect/CustomSelect.module.css +0 -6
  710. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  711. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
  712. package/dist/cssm/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -1
  713. package/dist/cssm/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -1
  714. package/dist/cssm/components/CustomSelect/types.js.map +1 -1
  715. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  716. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  717. package/dist/cssm/components/DateInput/DateInput.js +3 -12
  718. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  719. package/dist/cssm/components/DateInput/hooks.js.map +1 -1
  720. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +2 -11
  721. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  722. package/dist/cssm/components/DropZone/DropZone.js +1 -1
  723. package/dist/cssm/components/DropZone/DropZone.js.map +1 -1
  724. package/dist/cssm/components/DropZone/DropZoneGrid/DropZoneGrid.js.map +1 -0
  725. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  726. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  727. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  728. package/dist/cssm/components/File/File.js.map +1 -1
  729. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  730. package/dist/cssm/components/Flex/Flex.js +2 -10
  731. package/dist/cssm/components/Flex/Flex.js.map +1 -1
  732. package/dist/cssm/components/Flex/FlexItem/FlexItem.js +5 -14
  733. package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
  734. package/dist/cssm/components/Flex/FlexItem/FlexItem.module.css +0 -22
  735. package/dist/cssm/components/FloatingArrow/FloatingArrow.js.map +1 -1
  736. package/dist/cssm/components/FocusTrap/FocusTrap.js +2 -4
  737. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  738. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  739. package/dist/cssm/components/FormFieldClearButton/FormFieldClearButton.js.map +1 -1
  740. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  741. package/dist/cssm/components/FormItem/FormItem.module.css +1 -2
  742. package/dist/cssm/components/FormItem/context.js.map +1 -1
  743. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  744. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  745. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  746. package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
  747. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  748. package/dist/cssm/components/Group/Group.js.map +1 -1
  749. package/dist/cssm/components/Group/GroupContainer.js.map +1 -1
  750. package/dist/cssm/components/Group/GroupExpandedContent.js.map +1 -1
  751. package/dist/cssm/components/Header/Header.js.map +1 -1
  752. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  753. package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -1
  754. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +20 -6
  755. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  756. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  757. package/dist/cssm/components/Image/Image.js.map +1 -1
  758. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  759. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  760. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -1
  761. package/dist/cssm/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  762. package/dist/cssm/components/ImageBase/types.js.map +1 -1
  763. package/dist/cssm/components/Input/Input.js.map +1 -1
  764. package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
  765. package/dist/cssm/components/Link/Link.js.map +1 -1
  766. package/dist/cssm/components/List/List.js.map +1 -1
  767. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  768. package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
  769. package/dist/cssm/components/ModalCard/types.js.map +1 -1
  770. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  771. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +0 -4
  772. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  773. package/dist/cssm/components/ModalOutlet/ModalOutlet.js.map +1 -1
  774. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -1
  775. package/dist/cssm/components/ModalOverlay/ModalOverlay.js.map +1 -1
  776. package/dist/cssm/components/ModalPage/ModalPageBase.js.map +1 -1
  777. package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
  778. package/dist/cssm/components/ModalPage/types.js.map +1 -1
  779. package/dist/cssm/components/ModalPageFooter/ModalPageFooter.js.map +1 -1
  780. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  781. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  782. package/dist/cssm/components/ModalRoot/useModalRootManager.js.map +1 -1
  783. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  784. package/dist/cssm/components/NumberInputLike/NumberInputLike.js.map +1 -1
  785. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +12 -3
  786. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  787. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  788. package/dist/cssm/components/Pagination/Pagination.js +14 -6
  789. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  790. package/dist/cssm/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
  791. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -1
  792. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -1
  793. package/dist/cssm/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -1
  794. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  795. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  796. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +0 -5
  797. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  798. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  799. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  800. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  801. package/dist/cssm/components/PanelSpinner/PanelSpinner.js.map +1 -1
  802. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  803. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  804. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  805. package/dist/cssm/components/Popper/Popper.js +13 -7
  806. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  807. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  808. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  809. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  810. package/dist/cssm/components/Radio/Radio.js +2 -2
  811. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  812. package/dist/cssm/components/Radio/RadioInput/RadioInput.js.map +1 -1
  813. package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
  814. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  815. package/dist/cssm/components/Removable/Removable.module.css +0 -4
  816. package/dist/cssm/components/Removable/RemovableIos.js.map +1 -1
  817. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  818. package/dist/cssm/components/Root/Root.js.map +1 -1
  819. package/dist/cssm/components/RootComponent/RootComponent.js.map +1 -1
  820. package/dist/cssm/components/ScreenSpinner/ScreenSpinnerSwapIcon.js.map +1 -1
  821. package/dist/cssm/components/ScreenSpinner/context.js.map +1 -1
  822. package/dist/cssm/components/ScreenSpinner/types.js.map +1 -1
  823. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +14 -4
  824. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  825. package/dist/cssm/components/Search/Search.js +21 -12
  826. package/dist/cssm/components/Search/Search.js.map +1 -1
  827. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  828. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  829. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  830. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  831. package/dist/cssm/components/SelectionControl/SelectionControl.js.map +1 -1
  832. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
  833. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  834. package/dist/cssm/components/SimpleCell/Chevron/Chevron.js.map +1 -1
  835. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  836. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +3 -5
  837. package/dist/cssm/components/SimpleGrid/SimpleGrid.js.map +1 -1
  838. package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
  839. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  840. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  841. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  842. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.js.map +1 -1
  843. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.module.css +2 -4
  844. package/dist/cssm/components/Snackbar/utils.js.map +1 -1
  845. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  846. package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
  847. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  848. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  849. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  850. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  851. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  852. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  853. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  854. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  855. package/dist/cssm/components/Tabs/TabsModeContext.js.map +1 -1
  856. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  857. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  858. package/dist/cssm/components/Tappable/state.js.map +1 -1
  859. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  860. package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
  861. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  862. package/dist/cssm/components/TooltipBase/TooltipBase.js.map +1 -1
  863. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  864. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  865. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
  866. package/dist/cssm/components/Typography/EllipsisText/EllipsisText.js.map +1 -1
  867. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  868. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  869. package/dist/cssm/components/Typography/Typography.js.map +1 -1
  870. package/dist/cssm/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
  871. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  872. package/dist/cssm/components/View/View.js.map +1 -1
  873. package/dist/cssm/components/View/View.module.css +1 -3
  874. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  875. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  876. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  877. package/dist/cssm/helpers/math.js.map +1 -1
  878. package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  879. package/dist/cssm/hooks/useAutoDetectColorScheme.js +8 -27
  880. package/dist/cssm/hooks/useAutoDetectColorScheme.js.map +1 -1
  881. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  882. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  883. package/dist/cssm/hooks/useDraggableWithDomApi/types.js.map +1 -1
  884. package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
  885. package/dist/cssm/hooks/useFloatingElement.js.map +1 -1
  886. package/dist/cssm/hooks/useFocusTrap/FocusGuard.js.map +1 -1
  887. package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js +10 -2
  888. package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  889. package/dist/cssm/hooks/useFocusVisibleClassName.js.map +1 -1
  890. package/dist/cssm/hooks/useGlobalEscKeyDown.js.map +1 -1
  891. package/dist/cssm/hooks/useMediaQueryMatch.js +25 -0
  892. package/dist/cssm/hooks/useMediaQueryMatch.js.map +1 -0
  893. package/dist/cssm/hooks/useMergeProps.js.map +1 -1
  894. package/dist/cssm/hooks/useModalManager/types.js.map +1 -1
  895. package/dist/cssm/hooks/usePagination.js.map +1 -1
  896. package/dist/cssm/hooks/usePatchChildren.js.map +1 -1
  897. package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.js → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js} +2 -2
  898. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js.map +1 -0
  899. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarHolder.js +5 -2
  900. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarHolder.js.map +1 -1
  901. package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarsContainer.js → SnackbarsContainer/SnackbarsContainer.js} +3 -3
  902. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.js.map +1 -0
  903. package/dist/cssm/hooks/useSnackbarManager/types.js.map +1 -1
  904. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  905. package/dist/cssm/index.js +1 -1
  906. package/dist/cssm/index.js.map +1 -1
  907. package/dist/cssm/lib/SSR.js.map +1 -1
  908. package/dist/cssm/lib/accessibility.js.map +1 -1
  909. package/dist/cssm/lib/adaptivity/functions.js +6 -0
  910. package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
  911. package/dist/cssm/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
  912. package/dist/cssm/lib/animation/useCSSTransition.js +4 -2
  913. package/dist/cssm/lib/animation/useCSSTransition.js.map +1 -1
  914. package/dist/cssm/lib/animation/useReducedMotion.js +2 -20
  915. package/dist/cssm/lib/animation/useReducedMotion.js.map +1 -1
  916. package/dist/cssm/lib/calendar.js.map +1 -1
  917. package/dist/cssm/lib/date.js.map +1 -1
  918. package/dist/cssm/lib/dom.js.map +1 -1
  919. package/dist/cssm/lib/floating/functions.js.map +1 -1
  920. package/dist/cssm/lib/floating/types/component.js.map +1 -1
  921. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +6 -4
  922. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  923. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  924. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -2
  925. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  926. package/dist/cssm/lib/getNavId.js.map +1 -1
  927. package/dist/cssm/lib/layouts/layoutProps.js +17 -0
  928. package/dist/cssm/lib/layouts/layoutProps.js.map +1 -1
  929. package/dist/cssm/lib/layouts/resolveLayoutProps.js.map +1 -1
  930. package/dist/cssm/lib/layouts/types.js.map +1 -1
  931. package/dist/cssm/lib/select.js.map +1 -1
  932. package/dist/cssm/lib/sheet/useBottomSheet.js.map +1 -1
  933. package/dist/cssm/lib/tokens/TokensClassProvider.js.map +1 -1
  934. package/dist/cssm/lib/tokens/types.js.map +1 -1
  935. package/dist/cssm/lib/utils.js +3 -0
  936. package/dist/cssm/lib/utils.js.map +1 -1
  937. package/dist/cssm/styles/layout.css +36 -0
  938. package/dist/cssm/types.js +4 -1
  939. package/dist/cssm/types.js.map +1 -1
  940. package/dist/helpers/math.d.ts +1 -1
  941. package/dist/helpers/math.d.ts.map +1 -1
  942. package/dist/helpers/math.js.map +1 -1
  943. package/dist/hooks/useAdaptivityWithJSMediaQueries.d.ts +5 -1
  944. package/dist/hooks/useAdaptivityWithJSMediaQueries.d.ts.map +1 -1
  945. package/dist/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  946. package/dist/hooks/useAutoDetectColorScheme.d.ts.map +1 -1
  947. package/dist/hooks/useAutoDetectColorScheme.js +8 -27
  948. package/dist/hooks/useAutoDetectColorScheme.js.map +1 -1
  949. package/dist/hooks/useCalendar.d.ts +1 -1
  950. package/dist/hooks/useCalendar.d.ts.map +1 -1
  951. package/dist/hooks/useCalendar.js.map +1 -1
  952. package/dist/hooks/useDateInput.d.ts +5 -5
  953. package/dist/hooks/useDateInput.d.ts.map +1 -1
  954. package/dist/hooks/useDateInput.js.map +1 -1
  955. package/dist/hooks/useDraggableWithDomApi/types.d.ts +1 -1
  956. package/dist/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
  957. package/dist/hooks/useDraggableWithDomApi/types.js.map +1 -1
  958. package/dist/hooks/useEnsuredControl.d.ts +4 -4
  959. package/dist/hooks/useEnsuredControl.d.ts.map +1 -1
  960. package/dist/hooks/useEnsuredControl.js.map +1 -1
  961. package/dist/hooks/useFloatingElement.d.ts +4 -4
  962. package/dist/hooks/useFloatingElement.d.ts.map +1 -1
  963. package/dist/hooks/useFloatingElement.js.map +1 -1
  964. package/dist/hooks/useFocusTrap/FocusGuard.d.ts +1 -1
  965. package/dist/hooks/useFocusTrap/FocusGuard.d.ts.map +1 -1
  966. package/dist/hooks/useFocusTrap/FocusGuard.js.map +1 -1
  967. package/dist/hooks/useFocusTrap/useFocusTrap.d.ts +6 -10
  968. package/dist/hooks/useFocusTrap/useFocusTrap.d.ts.map +1 -1
  969. package/dist/hooks/useFocusTrap/useFocusTrap.js +10 -2
  970. package/dist/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  971. package/dist/hooks/useFocusVisibleClassName.d.ts +3 -3
  972. package/dist/hooks/useFocusVisibleClassName.d.ts.map +1 -1
  973. package/dist/hooks/useFocusVisibleClassName.js.map +1 -1
  974. package/dist/hooks/useGlobalEscKeyDown.d.ts +1 -1
  975. package/dist/hooks/useGlobalEscKeyDown.d.ts.map +1 -1
  976. package/dist/hooks/useGlobalEscKeyDown.js.map +1 -1
  977. package/dist/hooks/useMediaQueryMatch.d.ts +6 -0
  978. package/dist/hooks/useMediaQueryMatch.d.ts.map +1 -0
  979. package/dist/hooks/useMediaQueryMatch.js +25 -0
  980. package/dist/hooks/useMediaQueryMatch.js.map +1 -0
  981. package/dist/hooks/useMergeProps.d.ts +1 -1
  982. package/dist/hooks/useMergeProps.d.ts.map +1 -1
  983. package/dist/hooks/useMergeProps.js.map +1 -1
  984. package/dist/hooks/useModalManager/types.d.ts +8 -8
  985. package/dist/hooks/useModalManager/types.d.ts.map +1 -1
  986. package/dist/hooks/useModalManager/types.js.map +1 -1
  987. package/dist/hooks/usePagination.d.ts +4 -4
  988. package/dist/hooks/usePagination.d.ts.map +1 -1
  989. package/dist/hooks/usePagination.js.map +1 -1
  990. package/dist/hooks/usePatchChildren.d.ts +1 -1
  991. package/dist/hooks/usePatchChildren.d.ts.map +1 -1
  992. package/dist/hooks/usePatchChildren.js.map +1 -1
  993. package/dist/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.d.ts → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.d.ts} +1 -1
  994. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.d.ts.map +1 -0
  995. package/dist/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.js → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js} +10 -10
  996. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js.map +1 -0
  997. package/dist/hooks/useSnackbarManager/components/SnackbarHolder.d.ts.map +1 -1
  998. package/dist/hooks/useSnackbarManager/components/SnackbarHolder.js +5 -2
  999. package/dist/hooks/useSnackbarManager/components/SnackbarHolder.js.map +1 -1
  1000. package/dist/hooks/useSnackbarManager/components/{SnackbarsContainer.d.ts → SnackbarsContainer/SnackbarsContainer.d.ts} +2 -2
  1001. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.d.ts.map +1 -0
  1002. package/dist/hooks/useSnackbarManager/components/{SnackbarsContainer.js → SnackbarsContainer/SnackbarsContainer.js} +10 -10
  1003. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.js.map +1 -0
  1004. package/dist/hooks/useSnackbarManager/types.d.ts +11 -11
  1005. package/dist/hooks/useSnackbarManager/types.d.ts.map +1 -1
  1006. package/dist/hooks/useSnackbarManager/types.js.map +1 -1
  1007. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts +1 -1
  1008. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -1
  1009. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  1010. package/dist/index.d.ts +3 -2
  1011. package/dist/index.d.ts.map +1 -1
  1012. package/dist/index.js +1 -1
  1013. package/dist/index.js.map +1 -1
  1014. package/dist/lib/SSR.d.ts +4 -4
  1015. package/dist/lib/SSR.d.ts.map +1 -1
  1016. package/dist/lib/SSR.js.map +1 -1
  1017. package/dist/lib/accessibility.d.ts +1 -1
  1018. package/dist/lib/accessibility.d.ts.map +1 -1
  1019. package/dist/lib/accessibility.js.map +1 -1
  1020. package/dist/lib/adaptivity/functions.d.ts.map +1 -1
  1021. package/dist/lib/adaptivity/functions.js +6 -0
  1022. package/dist/lib/adaptivity/functions.js.map +1 -1
  1023. package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts +6 -6
  1024. package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts.map +1 -1
  1025. package/dist/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
  1026. package/dist/lib/animation/useCSSTransition.d.ts +11 -11
  1027. package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
  1028. package/dist/lib/animation/useCSSTransition.js +4 -2
  1029. package/dist/lib/animation/useCSSTransition.js.map +1 -1
  1030. package/dist/lib/animation/useReducedMotion.d.ts.map +1 -1
  1031. package/dist/lib/animation/useReducedMotion.js +2 -20
  1032. package/dist/lib/animation/useReducedMotion.js.map +1 -1
  1033. package/dist/lib/calendar.d.ts +5 -5
  1034. package/dist/lib/calendar.d.ts.map +1 -1
  1035. package/dist/lib/calendar.js.map +1 -1
  1036. package/dist/lib/date.d.ts +10 -10
  1037. package/dist/lib/date.d.ts.map +1 -1
  1038. package/dist/lib/date.js.map +1 -1
  1039. package/dist/lib/dom.d.ts +2 -2
  1040. package/dist/lib/dom.d.ts.map +1 -1
  1041. package/dist/lib/dom.js.map +1 -1
  1042. package/dist/lib/floating/functions.d.ts +2 -2
  1043. package/dist/lib/floating/functions.d.ts.map +1 -1
  1044. package/dist/lib/floating/functions.js.map +1 -1
  1045. package/dist/lib/floating/types/component.d.ts +9 -9
  1046. package/dist/lib/floating/types/component.d.ts.map +1 -1
  1047. package/dist/lib/floating/types/component.js.map +1 -1
  1048. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +14 -14
  1049. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
  1050. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +6 -4
  1051. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  1052. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +15 -15
  1053. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  1054. package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  1055. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -2
  1056. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  1057. package/dist/lib/getNavId.d.ts +2 -2
  1058. package/dist/lib/getNavId.d.ts.map +1 -1
  1059. package/dist/lib/getNavId.js.map +1 -1
  1060. package/dist/lib/layouts/layoutProps.d.ts +2 -0
  1061. package/dist/lib/layouts/layoutProps.d.ts.map +1 -1
  1062. package/dist/lib/layouts/layoutProps.js +17 -0
  1063. package/dist/lib/layouts/layoutProps.js.map +1 -1
  1064. package/dist/lib/layouts/resolveLayoutProps.d.ts +6 -6
  1065. package/dist/lib/layouts/resolveLayoutProps.d.ts.map +1 -1
  1066. package/dist/lib/layouts/resolveLayoutProps.js.map +1 -1
  1067. package/dist/lib/layouts/types.d.ts +39 -27
  1068. package/dist/lib/layouts/types.d.ts.map +1 -1
  1069. package/dist/lib/layouts/types.js.map +1 -1
  1070. package/dist/lib/select.d.ts +2 -2
  1071. package/dist/lib/select.d.ts.map +1 -1
  1072. package/dist/lib/select.js.map +1 -1
  1073. package/dist/lib/sheet/useBottomSheet.d.ts +4 -4
  1074. package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -1
  1075. package/dist/lib/sheet/useBottomSheet.js.map +1 -1
  1076. package/dist/lib/tokens/TokensClassProvider.js.map +1 -1
  1077. package/dist/lib/tokens/types.d.ts +2 -2
  1078. package/dist/lib/tokens/types.d.ts.map +1 -1
  1079. package/dist/lib/tokens/types.js.map +1 -1
  1080. package/dist/lib/utils.d.ts +3 -3
  1081. package/dist/lib/utils.d.ts.map +1 -1
  1082. package/dist/lib/utils.js +3 -0
  1083. package/dist/lib/utils.js.map +1 -1
  1084. package/dist/types.d.ts +17 -10
  1085. package/dist/types.d.ts.map +1 -1
  1086. package/dist/types.js +4 -1
  1087. package/dist/types.js.map +1 -1
  1088. package/dist/vkui.css +1 -1
  1089. package/dist/vkui.css.map +1 -1
  1090. package/package.json +3 -3
  1091. package/src/components/Accordion/Accordion.tsx +10 -6
  1092. package/src/components/Accordion/AccordionIcon.tsx +31 -0
  1093. package/src/components/Accordion/AccordionSummary.tsx +5 -9
  1094. package/src/components/ActionSheet/ActionSheet.tsx +14 -10
  1095. package/src/components/ActionSheet/ActionSheetContext.ts +3 -3
  1096. package/src/components/ActionSheet/types.ts +8 -8
  1097. package/src/components/ActionSheetItem/ActionSheetItem.module.css +0 -1
  1098. package/src/components/ActionSheetItem/ActionSheetItem.module.css.d.ts.map +1 -1
  1099. package/src/components/ActionSheetItem/ActionSheetItem.tsx +15 -15
  1100. package/src/components/ActionSheetItem/subcomponents/Radio/Radio.tsx +1 -1
  1101. package/src/components/AdaptivityProvider/AdaptivityContext.tsx +7 -7
  1102. package/src/components/Alert/Alert.tsx +17 -17
  1103. package/src/components/Alert/AlertBase.tsx +2 -2
  1104. package/src/components/Alert/AlertTypography.tsx +1 -1
  1105. package/src/components/AppRoot/AppRoot.tsx +9 -9
  1106. package/src/components/AppRoot/AppRootContext.ts +4 -4
  1107. package/src/components/AppRoot/AppRootPortal.tsx +2 -2
  1108. package/src/components/AppRoot/ScrollContext.tsx +5 -5
  1109. package/src/components/AppRoot/types.ts +4 -4
  1110. package/src/components/AspectRatio/AspectRatio.tsx +2 -2
  1111. package/src/components/Avatar/Avatar.module.css +0 -5
  1112. package/src/components/Avatar/Avatar.module.css.d.ts.map +1 -1
  1113. package/src/components/Avatar/Avatar.tsx +6 -2
  1114. package/src/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.tsx +1 -1
  1115. package/src/components/Badge/Badge.tsx +1 -1
  1116. package/src/components/Banner/Banner.tsx +12 -12
  1117. package/src/components/Box/Box.tsx +1 -1
  1118. package/src/components/Button/Button.tsx +19 -12
  1119. package/src/components/ButtonGroup/ButtonGroup.tsx +4 -4
  1120. package/src/components/Calendar/Calendar.tsx +17 -17
  1121. package/src/components/CalendarDay/CalendarDay.tsx +18 -18
  1122. package/src/components/CalendarDays/CalendarDays.tsx +14 -14
  1123. package/src/components/CalendarHeader/CalendarHeader.tsx +19 -19
  1124. package/src/components/CalendarRange/CalendarRange.tsx +12 -12
  1125. package/src/components/CalendarTime/CalendarTime.tsx +14 -14
  1126. package/src/components/CalendarTime/CalendarTimePicker.tsx +3 -3
  1127. package/src/components/Card/Card.tsx +1 -1
  1128. package/src/components/CardGrid/CardGrid.tsx +2 -2
  1129. package/src/components/CardScroll/CardScroll.tsx +3 -3
  1130. package/src/components/CarouselBase/Bullets.tsx +1 -1
  1131. package/src/components/CarouselBase/CarouselViewPort.tsx +1 -1
  1132. package/src/components/CarouselBase/ScrollArrows.tsx +2 -2
  1133. package/src/components/CarouselBase/helpers.ts +4 -4
  1134. package/src/components/CarouselBase/types.ts +23 -23
  1135. package/src/components/Cell/Cell.tsx +8 -8
  1136. package/src/components/Cell/CellCheckbox/CellCheckbox.tsx +1 -1
  1137. package/src/components/Cell/CellDragger/CellDragger.tsx +2 -2
  1138. package/src/components/CellButton/CellButton.module.css +159 -7
  1139. package/src/components/CellButton/CellButton.module.css.d.ts.map +1 -1
  1140. package/src/components/CellButton/CellButton.tsx +154 -11
  1141. package/src/components/Checkbox/Checkbox.tsx +16 -9
  1142. package/src/components/Checkbox/CheckboxInput/CheckboxInput.tsx +20 -14
  1143. package/src/components/ChipsInput/ChipsInput.tsx +1 -1
  1144. package/src/components/ChipsInput/useChipsInput.ts +3 -3
  1145. package/src/components/ChipsInputBase/Chip/Chip.tsx +9 -9
  1146. package/src/components/ChipsInputBase/types.ts +28 -22
  1147. package/src/components/ChipsSelect/ChipsSelect.tsx +13 -13
  1148. package/src/components/ChipsSelect/useChipsSelect.ts +22 -21
  1149. package/src/components/Clickable/Clickable.tsx +1 -1
  1150. package/src/components/Clickable/useState.tsx +13 -13
  1151. package/src/components/ConfigProvider/ConfigProvider.tsx +2 -1
  1152. package/src/components/ContentBadge/ContentBadge.tsx +4 -4
  1153. package/src/components/ContentCard/ContentCard.tsx +8 -8
  1154. package/src/components/Counter/Counter.tsx +4 -4
  1155. package/src/components/CustomScrollView/CustomScrollView.tsx +6 -6
  1156. package/src/components/CustomSelect/CustomSelect.module.css +0 -6
  1157. package/src/components/CustomSelect/CustomSelect.module.css.d.ts.map +1 -1
  1158. package/src/components/CustomSelect/CustomSelect.tsx +42 -29
  1159. package/src/components/CustomSelect/CustomSelectClearButton.tsx +2 -2
  1160. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.tsx +20 -14
  1161. package/src/components/CustomSelect/hooks/useDropdownOpenedController.ts +2 -2
  1162. package/src/components/CustomSelect/hooks/useSelectedOptionController.ts +1 -1
  1163. package/src/components/CustomSelect/types.ts +1 -1
  1164. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +8 -8
  1165. package/src/components/CustomSelectOption/CustomSelectOption.tsx +9 -9
  1166. package/src/components/DateInput/DateInput.tsx +27 -35
  1167. package/src/components/DateInput/hooks.ts +7 -7
  1168. package/src/components/DateRangeInput/DateRangeInput.tsx +28 -36
  1169. package/src/components/DropZone/DropZone.tsx +5 -2
  1170. package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.tsx +1 -1
  1171. package/src/components/DropdownIcon/DropdownIcon.tsx +1 -1
  1172. package/src/components/Epic/Epic.tsx +1 -1
  1173. package/src/components/Epic/ScrollSaver.tsx +1 -1
  1174. package/src/components/File/File.tsx +15 -9
  1175. package/src/components/FixedLayout/FixedLayout.tsx +3 -3
  1176. package/src/components/Flex/Flex.tsx +8 -23
  1177. package/src/components/Flex/FlexItem/FlexItem.module.css +0 -22
  1178. package/src/components/Flex/FlexItem/FlexItem.module.css.d.ts.map +1 -1
  1179. package/src/components/Flex/FlexItem/FlexItem.tsx +17 -44
  1180. package/src/components/FloatingArrow/FloatingArrow.tsx +9 -9
  1181. package/src/components/FocusTrap/FocusTrap.tsx +0 -3
  1182. package/src/components/FormField/FormField.tsx +8 -8
  1183. package/src/components/FormFieldClearButton/FormFieldClearButton.tsx +2 -2
  1184. package/src/components/FormItem/FormItem.module.css +1 -2
  1185. package/src/components/FormItem/FormItem.module.css.d.ts.map +1 -1
  1186. package/src/components/FormItem/FormItem.tsx +10 -10
  1187. package/src/components/FormItem/context.ts +2 -2
  1188. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +4 -4
  1189. package/src/components/FormStatus/FormStatus.tsx +2 -2
  1190. package/src/components/Gallery/Gallery.tsx +2 -2
  1191. package/src/components/Gradient/Gradient.tsx +2 -2
  1192. package/src/components/GridAvatar/GridAvatar.tsx +1 -1
  1193. package/src/components/Group/Group.tsx +2 -2
  1194. package/src/components/Group/GroupContainer.tsx +3 -3
  1195. package/src/components/Group/GroupExpandedContent.tsx +1 -1
  1196. package/src/components/Header/Header.tsx +11 -11
  1197. package/src/components/HorizontalCell/HorizontalCell.tsx +7 -7
  1198. package/src/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.tsx +4 -4
  1199. package/src/components/HorizontalScroll/HorizontalScroll.tsx +63 -18
  1200. package/src/components/IconButton/IconButton.tsx +1 -1
  1201. package/src/components/Image/Image.tsx +5 -5
  1202. package/src/components/ImageBase/ImageBase.tsx +19 -15
  1203. package/src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.tsx +1 -1
  1204. package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.tsx +3 -3
  1205. package/src/components/ImageBase/ImageBaseOverlay/types.ts +3 -3
  1206. package/src/components/ImageBase/types.ts +3 -3
  1207. package/src/components/Input/Input.tsx +13 -7
  1208. package/src/components/InputLike/InputLike.tsx +3 -3
  1209. package/src/components/Link/Link.tsx +4 -4
  1210. package/src/components/List/List.tsx +1 -1
  1211. package/src/components/MiniInfoCell/MiniInfoCell.tsx +5 -5
  1212. package/src/components/ModalCard/ModalCardInternal.tsx +1 -1
  1213. package/src/components/ModalCard/types.ts +13 -13
  1214. package/src/components/ModalCardBase/ModalCardBase.module.css +0 -4
  1215. package/src/components/ModalCardBase/ModalCardBase.module.css.d.ts.map +1 -1
  1216. package/src/components/ModalCardBase/ModalCardBase.tsx +14 -14
  1217. package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -1
  1218. package/src/components/ModalOutlet/ModalOutlet.tsx +3 -3
  1219. package/src/components/ModalOutsideButton/ModalOutsideButton.tsx +1 -1
  1220. package/src/components/ModalOverlay/ModalOverlay.tsx +7 -7
  1221. package/src/components/ModalPage/ModalPageBase.tsx +2 -2
  1222. package/src/components/ModalPage/ModalPageInternal.tsx +2 -2
  1223. package/src/components/ModalPage/types.ts +27 -27
  1224. package/src/components/ModalPageFooter/ModalPageFooter.tsx +2 -2
  1225. package/src/components/ModalPageHeader/ModalPageHeader.tsx +1 -1
  1226. package/src/components/ModalRoot/types.ts +15 -15
  1227. package/src/components/ModalRoot/useModalRootManager.tsx +19 -19
  1228. package/src/components/NativeSelect/NativeSelect.tsx +20 -14
  1229. package/src/components/NumberInputLike/NumberInputLike.tsx +3 -3
  1230. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +16 -8
  1231. package/src/components/OnboardingTooltip/OnboardingTooltipContainer.tsx +1 -1
  1232. package/src/components/Pagination/Pagination.tsx +27 -25
  1233. package/src/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.tsx +5 -3
  1234. package/src/components/Pagination/PaginationPage/PaginationPageButton.tsx +3 -3
  1235. package/src/components/Pagination/PaginationPage/PaginationPageEllipsis.tsx +1 -1
  1236. package/src/components/Pagination/PaginationPage/usePaginationPageClasses.ts +3 -3
  1237. package/src/components/Panel/Panel.tsx +3 -3
  1238. package/src/components/PanelHeader/PanelHeader.module.css +0 -5
  1239. package/src/components/PanelHeader/PanelHeader.module.css.d.ts.map +1 -1
  1240. package/src/components/PanelHeader/PanelHeader.tsx +14 -12
  1241. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +2 -2
  1242. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +3 -3
  1243. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +3 -3
  1244. package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +3 -3
  1245. package/src/components/PanelSpinner/PanelSpinner.tsx +1 -1
  1246. package/src/components/Placeholder/Placeholder.tsx +5 -5
  1247. package/src/components/PopoutWrapper/PopoutWrapper.tsx +6 -6
  1248. package/src/components/Popover/Popover.tsx +5 -5
  1249. package/src/components/Popper/Popper.tsx +17 -15
  1250. package/src/components/Progress/Progress.tsx +4 -4
  1251. package/src/components/PullToRefresh/PullToRefresh.tsx +2 -2
  1252. package/src/components/PullToRefresh/PullToRefreshSpinner.tsx +4 -4
  1253. package/src/components/Radio/Radio.tsx +18 -12
  1254. package/src/components/Radio/RadioInput/RadioInput.tsx +15 -9
  1255. package/src/components/RadioGroup/RadioGroup.tsx +1 -1
  1256. package/src/components/Removable/Removable.module.css +0 -4
  1257. package/src/components/Removable/Removable.module.css.d.ts.map +1 -1
  1258. package/src/components/Removable/Removable.tsx +13 -10
  1259. package/src/components/Removable/RemovableIos.tsx +6 -3
  1260. package/src/components/RichCell/RichCell.tsx +15 -15
  1261. package/src/components/Root/Root.tsx +3 -3
  1262. package/src/components/RootComponent/RootComponent.tsx +2 -2
  1263. package/src/components/ScreenSpinner/ScreenSpinnerSwapIcon.tsx +1 -1
  1264. package/src/components/ScreenSpinner/context.ts +2 -2
  1265. package/src/components/ScreenSpinner/types.tsx +5 -5
  1266. package/src/components/ScrollArrow/ScrollArrow.tsx +27 -4
  1267. package/src/components/Search/Search.tsx +55 -35
  1268. package/src/components/SegmentedControl/SegmentedControl.tsx +6 -6
  1269. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +3 -3
  1270. package/src/components/SelectMimicry/SelectMimicry.tsx +3 -3
  1271. package/src/components/SelectTypography/SelectTypography.tsx +1 -1
  1272. package/src/components/SelectionControl/SelectionControl.tsx +1 -1
  1273. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.tsx +2 -2
  1274. package/src/components/Separator/Separator.tsx +5 -5
  1275. package/src/components/SimpleCell/Chevron/Chevron.tsx +1 -1
  1276. package/src/components/SimpleCell/SimpleCell.module.css +3 -5
  1277. package/src/components/SimpleCell/SimpleCell.module.css.d.ts.map +1 -1
  1278. package/src/components/SimpleCell/SimpleCell.tsx +14 -14
  1279. package/src/components/SimpleGrid/SimpleGrid.tsx +6 -6
  1280. package/src/components/Skeleton/Skeleton.tsx +5 -5
  1281. package/src/components/Slider/Slider.tsx +19 -17
  1282. package/src/components/Slider/SliderThumb/SliderThumb.tsx +9 -7
  1283. package/src/components/Snackbar/Snackbar.tsx +19 -13
  1284. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css +2 -4
  1285. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css.d.ts.map +1 -1
  1286. package/src/components/Snackbar/subcomponents/Basic/Basic.tsx +6 -6
  1287. package/src/components/Snackbar/utils.ts +1 -1
  1288. package/src/components/Spacing/Spacing.tsx +2 -2
  1289. package/src/components/Spinner/Spinner.tsx +4 -4
  1290. package/src/components/SplitCol/SplitCol.tsx +7 -7
  1291. package/src/components/SplitLayout/SplitLayout.tsx +15 -9
  1292. package/src/components/SubnavigationBar/SubnavigationBar.tsx +2 -2
  1293. package/src/components/SubnavigationButton/SubnavigationButton.tsx +8 -8
  1294. package/src/components/Switch/Switch.tsx +15 -9
  1295. package/src/components/Tabbar/Tabbar.tsx +2 -2
  1296. package/src/components/TabbarItem/TabbarItem.tsx +3 -3
  1297. package/src/components/Tabs/Tabs.tsx +7 -7
  1298. package/src/components/Tabs/TabsModeContext.ts +1 -1
  1299. package/src/components/TabsItem/TabsItem.tsx +5 -5
  1300. package/src/components/Tappable/Tappable.tsx +3 -3
  1301. package/src/components/Tappable/state.tsx +2 -2
  1302. package/src/components/Textarea/Textarea.tsx +14 -10
  1303. package/src/components/ToolButton/ToolButton.tsx +4 -4
  1304. package/src/components/Tooltip/Tooltip.tsx +6 -6
  1305. package/src/components/TooltipBase/TooltipBase.tsx +10 -10
  1306. package/src/components/Touch/Touch.tsx +16 -16
  1307. package/src/components/Typography/Caption/Caption.tsx +1 -1
  1308. package/src/components/Typography/DisplayTitle/DisplayTitle.tsx +1 -1
  1309. package/src/components/Typography/EllipsisText/EllipsisText.tsx +3 -3
  1310. package/src/components/Typography/Headline/Headline.tsx +1 -1
  1311. package/src/components/Typography/Title/Title.tsx +1 -1
  1312. package/src/components/Typography/Typography.tsx +6 -6
  1313. package/src/components/UnstyledTextField/UnstyledTextField.tsx +1 -1
  1314. package/src/components/UsersStack/UsersStack.tsx +6 -6
  1315. package/src/components/View/View.module.css +1 -3
  1316. package/src/components/View/View.module.css.d.ts.map +1 -1
  1317. package/src/components/View/View.tsx +4 -4
  1318. package/src/components/View/ViewInfinite.tsx +11 -11
  1319. package/src/components/WriteBar/WriteBar.tsx +21 -15
  1320. package/src/components/WriteBarIcon/WriteBarIcon.tsx +3 -3
  1321. package/src/helpers/math.ts +1 -1
  1322. package/src/hooks/useAdaptivityWithJSMediaQueries.ts +3 -1
  1323. package/src/hooks/useAutoDetectColorScheme.ts +8 -30
  1324. package/src/hooks/useCalendar.ts +2 -2
  1325. package/src/hooks/useDateInput.ts +5 -5
  1326. package/src/hooks/useDraggableWithDomApi/types.ts +1 -1
  1327. package/src/hooks/useEnsuredControl.ts +4 -4
  1328. package/src/hooks/useFloatingElement.tsx +4 -4
  1329. package/src/hooks/useFocusTrap/FocusGuard.tsx +1 -1
  1330. package/src/hooks/useFocusTrap/useFocusTrap.tsx +17 -15
  1331. package/src/hooks/useFocusVisibleClassName.ts +3 -3
  1332. package/src/hooks/useGlobalEscKeyDown.ts +2 -2
  1333. package/src/hooks/useMediaQueryMatch.ts +34 -0
  1334. package/src/hooks/useMergeProps.ts +2 -2
  1335. package/src/hooks/useModalManager/types.ts +8 -8
  1336. package/src/hooks/usePagination.ts +4 -4
  1337. package/src/hooks/usePatchChildren.ts +1 -1
  1338. package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.tsx → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.tsx} +3 -3
  1339. package/src/hooks/useSnackbarManager/components/SnackbarHolder.tsx +6 -2
  1340. package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.tsx → SnackbarsContainer/SnackbarsContainer.tsx} +6 -6
  1341. package/src/hooks/useSnackbarManager/types.ts +11 -11
  1342. package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +1 -1
  1343. package/src/index.ts +6 -2
  1344. package/src/lib/SSR.tsx +4 -4
  1345. package/src/lib/accessibility.ts +1 -1
  1346. package/src/lib/adaptivity/functions.ts +10 -1
  1347. package/src/lib/animation/useCSSKeyframesAnimationController.ts +6 -6
  1348. package/src/lib/animation/useCSSTransition.ts +15 -13
  1349. package/src/lib/animation/useReducedMotion.ts +2 -25
  1350. package/src/lib/calendar.ts +5 -2
  1351. package/src/lib/date.ts +11 -11
  1352. package/src/lib/dom.tsx +2 -2
  1353. package/src/lib/floating/functions.ts +2 -2
  1354. package/src/lib/floating/types/component.ts +9 -9
  1355. package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +26 -19
  1356. package/src/lib/floating/useFloatingWithInteractions/types.ts +15 -15
  1357. package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +2 -2
  1358. package/src/lib/getNavId.ts +2 -2
  1359. package/src/lib/layouts/layoutProps.ts +5 -0
  1360. package/src/lib/layouts/resolveLayoutProps.ts +3 -3
  1361. package/src/lib/layouts/types.ts +40 -27
  1362. package/src/lib/select.ts +2 -2
  1363. package/src/lib/sheet/useBottomSheet.ts +4 -4
  1364. package/src/lib/tokens/TokensClassProvider.tsx +1 -1
  1365. package/src/lib/tokens/types.ts +2 -2
  1366. package/src/lib/utils.ts +8 -3
  1367. package/src/types.ts +18 -10
  1368. package/dist/components/DropZone/components/DropZoneGrid.d.ts.map +0 -1
  1369. package/dist/components/DropZone/components/DropZoneGrid.js.map +0 -1
  1370. package/dist/cssm/components/DropZone/components/DropZoneGrid.js.map +0 -1
  1371. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.js.map +0 -1
  1372. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarsContainer.js.map +0 -1
  1373. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.d.ts.map +0 -1
  1374. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.js.map +0 -1
  1375. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer.d.ts.map +0 -1
  1376. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer.js.map +0 -1
  1377. /package/dist/cssm/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.js +0 -0
  1378. /package/dist/cssm/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css +0 -0
  1379. /package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css} +0 -0
  1380. /package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css → SnackbarsContainer/SnackbarsContainer.module.css} +0 -0
  1381. /package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css +0 -0
  1382. /package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css.d.ts.map +0 -0
  1383. /package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css} +0 -0
  1384. /package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css.d.ts.map → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css.d.ts.map} +0 -0
  1385. /package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css → SnackbarsContainer/SnackbarsContainer.module.css} +0 -0
  1386. /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/View/ViewInfinite.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { millisecondsInSecond } from '../../lib/date';\nimport { canUseDOM, type DOMProps, withDOM } from '../../lib/dom';\nimport { LockFloatingPositionContext } from '../../lib/floating/LockFloatingPosition/LockFloatingPosition';\nimport { getNavId, type NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasPlatform, HTMLAttributesWithRootRef } from '../../types';\nimport { ScrollContext, type ScrollContextInterface } from '../AppRoot/ScrollContext';\nimport {\n ConfigProviderContext,\n type ConfigProviderContextInterface,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { NavViewIdContext } from '../NavIdContext/NavIdContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { NavTransitionDirectionProvider } from '../NavTransitionDirectionContext/NavTransitionDirectionContext';\nimport { SplitColContext, type SplitColContextProps } from '../SplitCol/SplitColContext';\nimport { type CustomTouchEvent, Touch } from '../Touch/Touch';\nimport {\n getSwipeBackPredicates,\n hasHorizontalScrollableElementWithScrolledToLeft,\n swipeBackExcluded,\n} from './utils';\nimport styles from './View.module.css';\n\nconst warn = warnOnce('ViewInfinite');\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nexport let scrollsCache = new Map<string, Map<string, Array<number | undefined>>>();\n\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport type TransitionParams = { from: string | null; to: string | null };\n\nexport interface ViewInfiniteProps\n extends HTMLAttributesWithRootRef<HTMLElement>,\n HasPlatform,\n NavIdProps {\n /**\n * `id` активной панели.\n */\n activePanel: string;\n /**\n * Обработчик, который вызывается при завершении анимации смены активной панели.\n */\n onTransition?: (params: TransitionParams & { isBack: boolean }) => void;\n /**\n * Обработчик свайпа назад.\n */\n onSwipeBack?: () => void;\n /**\n * Обработчик начала анимации свайпа назад.\n */\n onSwipeBackStart?: (activePanel: string | null) => void | 'prevent';\n /**\n * Обработчик завершения анимации отмененного пользователем свайпа.\n */\n onSwipeBackCancel?: () => void;\n /**\n * Массив из id панелей в порядке открытия.\n */\n history?: string[];\n /**\n * Функция проверки перехода назад.\n */\n isBackCheck?: (params: TransitionParams) => boolean;\n /**\n * @ignore\n */\n splitCol?: SplitColContextProps;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n /**\n * @ignore\n */\n scroll?: ScrollContextInterface;\n}\n\n/* eslint-disable jsdoc/require-jsdoc */\nexport interface ViewInfiniteState {\n animated: boolean;\n\n visiblePanels: Array<string | null>;\n activePanel: string | null;\n isBack?: boolean;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack?: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: 'success' | 'fail' | null;\n\n browserSwipe: boolean;\n}\n/* eslint-enable jsdoc/require-jsdoc */\n\nclass ViewInfiniteComponent extends React.Component<\n ViewInfiniteProps & DOMProps,\n ViewInfiniteState\n> {\n constructor(props: ViewInfiniteProps) {\n super(props);\n\n this.state = {\n animated: false,\n\n visiblePanels: [props.activePanel],\n activePanel: props.activePanel,\n isBack: undefined,\n prevPanel: null,\n nextPanel: null,\n\n swipingBack: undefined,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n swipeBackNextPanel: null,\n swipeBackPrevPanel: null,\n swipeBackResult: null,\n\n browserSwipe: false,\n };\n }\n\n static defaultProps: Partial<ViewInfiniteProps> = {\n history: [],\n };\n\n private swipeBackPrevented = false;\n private readonly scrolls: Map<string, Array<number | undefined>> =\n scrollsCache.get(getNavId(this.props, warn) as string) || new Map();\n private transitionFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n private readonly animationFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n get panels() {\n return React.Children.toArray(this.props.children) as Array<React.ReactElement<NavIdProps>>;\n }\n\n panelNodes: { [id: string]: HTMLDivElement | null } = {};\n\n componentWillUnmount() {\n const id = getNavId(this.props);\n if (id) {\n scrollsCache.set(id, this.scrolls);\n }\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n }\n\n componentDidUpdate(prevProps: ViewInfiniteProps, prevState: ViewInfiniteState) {\n // Нужен переход\n if (\n prevProps.activePanel !== this.props.activePanel &&\n !prevState.swipingBack &&\n !prevState.browserSwipe\n ) {\n let isBack = false;\n\n if (this.props.isBackCheck) {\n isBack = this.props.isBackCheck({\n from: prevProps.activePanel,\n to: this.props.activePanel,\n });\n } else {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevProps.activePanel || id === this.props.activePanel);\n isBack = firstLayerId === this.props.activePanel;\n }\n\n this.blurActiveElement();\n\n const prevScrolls = this.scrolls.get(prevProps.activePanel) || [];\n this.scrolls.set(prevProps.activePanel, [\n ...prevScrolls,\n this.props.scroll?.getScroll({ compensateKeyboardHeight: false }).y,\n ]);\n\n if (this.shouldDisableTransitionMotion()) {\n this.flushTransition(prevProps.activePanel, isBack);\n } else {\n this.setState({\n visiblePanels: [prevProps.activePanel, this.props.activePanel],\n prevPanel: prevProps.activePanel,\n nextPanel: this.props.activePanel,\n activePanel: null,\n animated: true,\n isBack,\n });\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevProps.activePanel !== this.props.activePanel && prevState.swipingBack) {\n const nextPanel = this.state.swipeBackNextPanel;\n const prevPanel = this.state.swipeBackPrevPanel;\n let scrollPosition: undefined | number = undefined;\n\n if (prevPanel !== null) {\n const prevPanelScrolls = [...(this.scrolls.get(prevPanel) || [])].slice(0, -1);\n this.scrolls.set(prevPanel, prevPanelScrolls);\n }\n if (nextPanel !== null) {\n const newPanelScrolls = [...(this.scrolls.get(nextPanel) || [])];\n scrollPosition = newPanelScrolls.pop();\n this.scrolls.set(nextPanel, newPanelScrolls);\n }\n\n this.setState(\n {\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n activePanel: nextPanel,\n visiblePanels: [nextPanel],\n },\n () => {\n this.props.scroll?.scrollTo(0, scrollPosition);\n prevProps.onTransition &&\n prevProps.onTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n },\n );\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevState.swipeBackResult && this.state.swipeBackResult) {\n this.waitTransitionFinish(\n this.pickPanel(this.state.swipeBackNextPanel),\n this.swipingBackTransitionEndHandler,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevState.swipeBackResult === 'fail' &&\n !this.state.swipeBackResult &&\n this.state.activePanel !== null\n ) {\n const newPanelScrolls = [...(this.scrolls.get(this.state.activePanel) || [])];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls.set(this.state.activePanel, newPanelScrolls);\n\n this.props.scroll?.scrollTo(0, scrollPosition);\n }\n\n // Закончился Safari свайп\n if (prevProps.activePanel !== this.props.activePanel && this.state.browserSwipe) {\n this.setState({\n browserSwipe: false,\n nextPanel: null,\n prevPanel: null,\n animated: false,\n visiblePanels: [this.props.activePanel],\n activePanel: this.props.activePanel,\n });\n }\n }\n\n shouldDisableTransitionMotion(): boolean {\n return (\n this.props.configProvider?.transitionMotionEnabled === false ||\n !this.props.splitCol?.animate ||\n this.props.platform === 'vkcom'\n );\n }\n\n private transitionDisposer = noop;\n\n private disposeTransition() {\n this.transitionDisposer();\n this.transitionDisposer = noop;\n }\n\n waitTransitionFinish(\n elem: HTMLElement | null | undefined,\n eventHandler: TransitionEventHandler,\n ): void {\n if (this.shouldDisableTransitionMotion()) {\n this.disposeTransition();\n this.transitionFinishTimeout = setTimeout(eventHandler);\n } else if (elem) {\n this.disposeTransition();\n elem.addEventListener('transitionend', eventHandler);\n this.transitionDisposer = () => {\n elem.removeEventListener('transitionend', eventHandler);\n };\n } else {\n if (this.transitionFinishTimeout) {\n clearTimeout(this.transitionFinishTimeout);\n }\n this.transitionFinishTimeout = setTimeout(\n eventHandler,\n this.props.platform === 'android' || this.props.platform === 'vkcom' ? 300 : 600,\n );\n }\n }\n\n blurActiveElement(): void {\n if (typeof this.window !== 'undefined' && this.document?.activeElement) {\n (this.document.activeElement as HTMLElement).blur();\n }\n }\n\n pickPanel(id: string | null) {\n if (id === null) {\n return undefined;\n }\n return this.panelNodes[id];\n }\n\n flushTransition(prevPanel: string, isBack: boolean) {\n const activePanel = this.props.activePanel;\n\n const prevPanelScrolls = [...(this.scrolls.get(prevPanel) || [])].slice(0, -1);\n const newPanelScrolls = [...(this.scrolls.get(activePanel) || [])];\n const scrollPosition = isBack ? newPanelScrolls.pop() : 0;\n if (isBack) {\n this.scrolls.set(prevPanel, prevPanelScrolls);\n this.scrolls.set(activePanel, newPanelScrolls);\n }\n\n this.setState(\n {\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel: activePanel,\n animated: false,\n isBack,\n },\n () => {\n this.props.scroll?.scrollTo(0, isBack ? scrollPosition : 0);\n this.props.onTransition &&\n this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n },\n );\n }\n\n transitionEndHandler: React.AnimationEventHandler<HTMLDivElement> = (e): void => {\n if (e.target !== e.currentTarget) {\n return;\n }\n\n if (this.state.prevPanel !== null) {\n this.flushTransition(this.state.prevPanel, Boolean(this.state.isBack));\n }\n };\n\n swipingBackTransitionEndHandler = (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e.propertyName.includes('transform') &&\n e.target === this.pickPanel(this.state.swipeBackNextPanel))\n ) {\n switch (this.state.swipeBackResult) {\n case 'fail':\n this.onSwipeBackCancel();\n break;\n case 'success':\n this.onSwipeBackSuccess();\n }\n }\n };\n\n onSwipeBackSuccess(): void {\n this.props.onSwipeBack && this.props.onSwipeBack();\n }\n\n onSwipeBackCancel(): void {\n this.props.onSwipeBackCancel && this.props.onSwipeBackCancel();\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n });\n }\n\n handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext = (event: CustomTouchEvent) => {\n if (this.state.browserSwipe) {\n return;\n }\n const { swipeBackTriggered, viewportStartEdgeTouched, viewportEndEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, this.window!.innerWidth);\n\n if ((viewportStartEdgeTouched || viewportEndEdgeTouched) && swipeBackTriggered) {\n this.setState({ browserSwipe: true });\n }\n };\n\n handleTouchMoveXForIOSSwipeBackSimulation = (event: CustomTouchEvent) => {\n if (this.swipeBackPrevented || swipeBackExcluded(event)) {\n return;\n }\n\n const { swipedToOpposite, swipeBackTriggered, viewportStartEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, this.window!.innerWidth);\n\n if (this.state.animated && swipeBackTriggered) {\n return;\n }\n\n if (!this.state.swipingBack && this.props.history && this.props.history.length > 1) {\n if (swipedToOpposite) {\n this.swipeBackPrevented = true;\n return;\n }\n\n if (!swipeBackTriggered) {\n return;\n }\n\n if (\n !viewportStartEdgeTouched &&\n hasHorizontalScrollableElementWithScrolledToLeft(event.originalEvent.target as HTMLElement)\n ) {\n this.swipeBackPrevented = true;\n return;\n }\n // Начался свайп назад\n if (this.props.onSwipeBackStart) {\n const payload = this.props.onSwipeBackStart(this.state.activePanel);\n if (payload === 'prevent') {\n this.swipeBackPrevented = true;\n return;\n }\n }\n\n if (this.state.activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n this.blurActiveElement();\n const prevScrolls = this.scrolls.get(this.state.activePanel) || [];\n this.scrolls.set(this.state.activePanel, [\n ...prevScrolls,\n this.props.scroll?.getScroll().y,\n ]);\n }\n\n this.setState({\n swipingBack: true,\n swipeBackStartX: event.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history.slice(-2)[0],\n });\n }\n\n if (this.state.swipingBack) {\n if (event.shiftX < 0) {\n this.setState({ swipeBackShift: 0 });\n } else if (event.shiftX > this.window!.innerWidth - this.state.swipeBackStartX) {\n this.setState({ swipeBackShift: this.window!.innerWidth });\n } else {\n this.setState({ swipeBackShift: event.shiftX });\n }\n }\n };\n\n handleTouchEndForIOSSwipeBackSimulation = (event: CustomTouchEvent) => {\n this.swipeBackPrevented = false;\n\n if (this.state.swipingBack && this.window) {\n const speed = (this.state.swipeBackShift / event.duration) * millisecondsInSecond;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= this.window.innerWidth) {\n this.onSwipeBackSuccess();\n } else if (speed > 250 || this.state.swipeBackShift >= this.window.innerWidth / 2) {\n this.setState({ swipeBackResult: 'success' });\n } else {\n this.setState({ swipeBackResult: 'fail' });\n }\n }\n };\n\n calcPanelSwipeStyles(panelId: string | undefined): React.CSSProperties {\n if (!canUseDOM || !this.window) {\n return {};\n }\n\n const isPrev = panelId === this.state.swipeBackPrevPanel;\n const isNext = panelId === this.state.swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || this.state.swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${this.state.swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (this.state.swipeBackShift * 100) / this.window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (this.window.innerWidth - this.state.swipeBackShift)) / this.window.innerWidth;\n\n if (this.state.swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n }\n\n render() {\n const {\n platform,\n activePanel: _1,\n splitCol,\n configProvider,\n history,\n id,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel,\n window,\n document,\n scroll,\n isBackCheck,\n className,\n ...restProps\n } = this.props;\n const {\n prevPanel,\n nextPanel,\n activePanel,\n isBack,\n animated,\n swipeBackPrevPanel,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n } = this.state;\n\n const panels = this.panels\n .filter((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && this.state.visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n })\n .sort((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrevPanel = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isNextPanel = panelId === nextPanel || panelId === swipeBackNextPanel;\n\n if (isNextPanel) {\n return swipingBack || this.state.isBack ? -1 : 1;\n }\n\n if (isPrevPanel) {\n return swipingBack || this.state.isBack ? 1 : -1;\n }\n\n return 0;\n });\n\n const disableAnimation = this.shouldDisableTransitionMotion();\n const iOSSwipeBackSimulationEnabled =\n !disableAnimation && platform === 'ios' && configProvider?.isWebView && Boolean(onSwipeBack);\n\n return (\n <NavViewIdContext.Provider value={id || nav}>\n <LockFloatingPositionContext.Provider value={swipingBack || animated}>\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles.host,\n platform === 'ios' && classNames(styles.ios, 'vkuiInternalView--ios'),\n !disableAnimation && this.state.animated && styles.animated,\n !disableAnimation && this.state.swipingBack && styles.swipingBack,\n disableAnimation && styles.noMotion,\n className,\n )}\n onMoveX={\n iOSSwipeBackSimulationEnabled\n ? this.handleTouchMoveXForIOSSwipeBackSimulation\n : platform === 'ios'\n ? this.handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext\n : undefined\n }\n onEnd={\n iOSSwipeBackSimulationEnabled\n ? this.handleTouchEndForIOSSwipeBackSimulation\n : undefined\n }\n >\n <div className={styles.panels}>\n {panels.map((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const scrollList = (panelId && this.scrolls.get(panelId)) || [];\n const scroll = scrollList[scrollList.length - 1] || 0;\n\n return (\n <div\n className={classNames(\n styles.panel,\n panelId === activePanel && styles.panelActive,\n panelId === prevPanel && styles.panelPrev,\n panelId === nextPanel && styles.panelNext,\n panelId === swipeBackPrevPanel && styles.panelSwipeBackPrev,\n panelId === swipeBackNextPanel && styles.panelSwipeBackNext,\n swipeBackResult === 'success' && styles.panelSwipeBackSuccess,\n swipeBackResult === 'fail' && styles.panelSwipeBackFailed,\n )}\n onAnimationEnd={isTransitionTarget ? this.transitionEndHandler : undefined}\n ref={(el) => {\n panelId !== undefined && (this.panelNodes[panelId] = el);\n }}\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles.panelIn}\n style={{ marginTop: compensateScroll ? -scroll : undefined }}\n >\n <NavTransitionDirectionProvider isBack={swipingBack || isBack}>\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </NavTransitionDirectionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n </LockFloatingPositionContext.Provider>\n </NavViewIdContext.Provider>\n );\n }\n}\n\nexport const ViewInfinite: React.FC<ViewInfiniteProps> = withContext(\n withContext(\n withContext(\n withPlatform(withDOM<ViewInfiniteProps>(ViewInfiniteComponent)),\n SplitColContext,\n 'splitCol',\n ),\n ConfigProviderContext,\n 'configProvider',\n ),\n ScrollContext,\n 'scroll',\n);\n"],"names":["React","classNames","noop","withContext","withPlatform","millisecondsInSecond","canUseDOM","withDOM","LockFloatingPositionContext","getNavId","warnOnce","ScrollContext","ConfigProviderContext","NavViewIdContext","NavTransitionProvider","NavTransitionDirectionProvider","SplitColContext","Touch","getSwipeBackPredicates","hasHorizontalScrollableElementWithScrolledToLeft","swipeBackExcluded","styles","warn","scrollsCache","Map","ViewInfiniteComponent","Component","props","state","animated","visiblePanels","activePanel","isBack","undefined","prevPanel","nextPanel","swipingBack","swipeBackStartX","swipeBackShift","swipeBackNextPanel","swipeBackPrevPanel","swipeBackResult","browserSwipe","defaultProps","history","swipeBackPrevented","scrolls","get","transitionFinishTimeout","animationFinishTimeout","document","window","panels","Children","toArray","children","panelNodes","componentWillUnmount","id","set","clearTimeout","componentDidUpdate","prevProps","prevState","isBackCheck","from","to","firstLayerId","map","panel","find","blurActiveElement","prevScrolls","scroll","getScroll","compensateKeyboardHeight","y","shouldDisableTransitionMotion","flushTransition","setState","scrollPosition","prevPanelScrolls","slice","newPanelScrolls","pop","scrollTo","onTransition","waitTransitionFinish","pickPanel","swipingBackTransitionEndHandler","configProvider","transitionMotionEnabled","splitCol","animate","platform","transitionDisposer","disposeTransition","elem","eventHandler","setTimeout","addEventListener","removeEventListener","activeElement","blur","transitionEndHandler","e","target","currentTarget","Boolean","propertyName","includes","onSwipeBackCancel","onSwipeBackSuccess","onSwipeBack","handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext","event","swipeBackTriggered","viewportStartEdgeTouched","viewportEndEdgeTouched","startX","shiftX","innerWidth","handleTouchMoveXForIOSSwipeBackSimulation","swipedToOpposite","length","originalEvent","onSwipeBackStart","payload","handleTouchEndForIOSSwipeBackSimulation","speed","duration","calcPanelSwipeStyles","panelId","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","render","_1","nav","className","restProps","filter","sort","isPrevPanel","isNextPanel","disableAnimation","iOSSwipeBackSimulationEnabled","isWebView","Provider","value","host","ios","noMotion","onMoveX","onEnd","div","compensateScroll","isTransitionTarget","scrollList","panelActive","panelPrev","panelNext","panelSwipeBackPrev","panelSwipeBackNext","panelSwipeBackSuccess","panelSwipeBackFailed","onAnimationEnd","ref","el","style","panelIn","marginTop","entering","ViewInfinite"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/View/ViewInfinite.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { millisecondsInSecond } from '../../lib/date';\nimport { canUseDOM, type DOMProps, withDOM } from '../../lib/dom';\nimport { LockFloatingPositionContext } from '../../lib/floating/LockFloatingPosition/LockFloatingPosition';\nimport { getNavId, type NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasPlatform, HTMLAttributesWithRootRef } from '../../types';\nimport { ScrollContext, type ScrollContextInterface } from '../AppRoot/ScrollContext';\nimport {\n ConfigProviderContext,\n type ConfigProviderContextInterface,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { NavViewIdContext } from '../NavIdContext/NavIdContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { NavTransitionDirectionProvider } from '../NavTransitionDirectionContext/NavTransitionDirectionContext';\nimport { SplitColContext, type SplitColContextProps } from '../SplitCol/SplitColContext';\nimport { type CustomTouchEvent, Touch } from '../Touch/Touch';\nimport {\n getSwipeBackPredicates,\n hasHorizontalScrollableElementWithScrolledToLeft,\n swipeBackExcluded,\n} from './utils';\nimport styles from './View.module.css';\n\nconst warn = warnOnce('ViewInfinite');\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nexport let scrollsCache = new Map<string, Map<string, Array<number | undefined>>>();\n\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport type TransitionParams = { from: string | null; to: string | null };\n\nexport interface ViewInfiniteProps\n extends HTMLAttributesWithRootRef<HTMLElement>,\n HasPlatform,\n NavIdProps {\n /**\n * `id` активной панели.\n */\n activePanel: string;\n /**\n * Обработчик, который вызывается при завершении анимации смены активной панели.\n */\n onTransition?: ((params: TransitionParams & { isBack: boolean }) => void) | undefined;\n /**\n * Обработчик свайпа назад.\n */\n onSwipeBack?: (() => void) | undefined;\n /**\n * Обработчик начала анимации свайпа назад.\n */\n onSwipeBackStart?: ((activePanel: string | null) => void | 'prevent') | undefined;\n /**\n * Обработчик завершения анимации отмененного пользователем свайпа.\n */\n onSwipeBackCancel?: (() => void) | undefined;\n /**\n * Массив из id панелей в порядке открытия.\n */\n history?: string[] | undefined;\n /**\n * Функция проверки перехода назад.\n */\n isBackCheck?: ((params: TransitionParams) => boolean) | undefined;\n /**\n * @ignore\n */\n splitCol?: SplitColContextProps | undefined;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface | undefined;\n /**\n * @ignore\n */\n scroll?: ScrollContextInterface | undefined;\n}\n\n/* eslint-disable jsdoc/require-jsdoc */\nexport interface ViewInfiniteState {\n animated: boolean;\n\n visiblePanels: Array<string | null>;\n activePanel: string | null;\n isBack?: boolean | undefined;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack?: boolean | undefined;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: 'success' | 'fail' | null;\n\n browserSwipe: boolean;\n}\n/* eslint-enable jsdoc/require-jsdoc */\n\nclass ViewInfiniteComponent extends React.Component<\n ViewInfiniteProps & DOMProps,\n ViewInfiniteState\n> {\n constructor(props: ViewInfiniteProps) {\n super(props);\n\n this.state = {\n animated: false,\n\n visiblePanels: [props.activePanel],\n activePanel: props.activePanel,\n isBack: undefined,\n prevPanel: null,\n nextPanel: null,\n\n swipingBack: undefined,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n swipeBackNextPanel: null,\n swipeBackPrevPanel: null,\n swipeBackResult: null,\n\n browserSwipe: false,\n };\n }\n\n static defaultProps: Partial<ViewInfiniteProps> = {\n history: [],\n };\n\n private swipeBackPrevented = false;\n private readonly scrolls: Map<string, Array<number | undefined>> =\n scrollsCache.get(getNavId(this.props, warn) as string) || new Map();\n private transitionFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n private readonly animationFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n get panels() {\n return React.Children.toArray(this.props.children) as Array<React.ReactElement<NavIdProps>>;\n }\n\n panelNodes: { [id: string]: HTMLDivElement | null } = {};\n\n componentWillUnmount() {\n const id = getNavId(this.props);\n if (id) {\n scrollsCache.set(id, this.scrolls);\n }\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n }\n\n componentDidUpdate(prevProps: ViewInfiniteProps, prevState: ViewInfiniteState) {\n // Нужен переход\n if (\n prevProps.activePanel !== this.props.activePanel &&\n !prevState.swipingBack &&\n !prevState.browserSwipe\n ) {\n let isBack = false;\n\n if (this.props.isBackCheck) {\n isBack = this.props.isBackCheck({\n from: prevProps.activePanel,\n to: this.props.activePanel,\n });\n } else {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevProps.activePanel || id === this.props.activePanel);\n isBack = firstLayerId === this.props.activePanel;\n }\n\n this.blurActiveElement();\n\n const prevScrolls = this.scrolls.get(prevProps.activePanel) || [];\n this.scrolls.set(prevProps.activePanel, [\n ...prevScrolls,\n this.props.scroll?.getScroll({ compensateKeyboardHeight: false }).y,\n ]);\n\n if (this.shouldDisableTransitionMotion()) {\n this.flushTransition(prevProps.activePanel, isBack);\n } else {\n this.setState({\n visiblePanels: [prevProps.activePanel, this.props.activePanel],\n prevPanel: prevProps.activePanel,\n nextPanel: this.props.activePanel,\n activePanel: null,\n animated: true,\n isBack,\n });\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevProps.activePanel !== this.props.activePanel && prevState.swipingBack) {\n const nextPanel = this.state.swipeBackNextPanel;\n const prevPanel = this.state.swipeBackPrevPanel;\n let scrollPosition: undefined | number = undefined;\n\n if (prevPanel !== null) {\n const prevPanelScrolls = [...(this.scrolls.get(prevPanel) || [])].slice(0, -1);\n this.scrolls.set(prevPanel, prevPanelScrolls);\n }\n if (nextPanel !== null) {\n const newPanelScrolls = [...(this.scrolls.get(nextPanel) || [])];\n scrollPosition = newPanelScrolls.pop();\n this.scrolls.set(nextPanel, newPanelScrolls);\n }\n\n this.setState(\n {\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n activePanel: nextPanel,\n visiblePanels: [nextPanel],\n },\n () => {\n this.props.scroll?.scrollTo(0, scrollPosition);\n prevProps.onTransition &&\n prevProps.onTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n },\n );\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevState.swipeBackResult && this.state.swipeBackResult) {\n this.waitTransitionFinish(\n this.pickPanel(this.state.swipeBackNextPanel),\n this.swipingBackTransitionEndHandler,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevState.swipeBackResult === 'fail' &&\n !this.state.swipeBackResult &&\n this.state.activePanel !== null\n ) {\n const newPanelScrolls = [...(this.scrolls.get(this.state.activePanel) || [])];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls.set(this.state.activePanel, newPanelScrolls);\n\n this.props.scroll?.scrollTo(0, scrollPosition);\n }\n\n // Закончился Safari свайп\n if (prevProps.activePanel !== this.props.activePanel && this.state.browserSwipe) {\n this.setState({\n browserSwipe: false,\n nextPanel: null,\n prevPanel: null,\n animated: false,\n visiblePanels: [this.props.activePanel],\n activePanel: this.props.activePanel,\n });\n }\n }\n\n shouldDisableTransitionMotion(): boolean {\n return (\n this.props.configProvider?.transitionMotionEnabled === false ||\n !this.props.splitCol?.animate ||\n this.props.platform === 'vkcom'\n );\n }\n\n private transitionDisposer = noop;\n\n private disposeTransition() {\n this.transitionDisposer();\n this.transitionDisposer = noop;\n }\n\n waitTransitionFinish(\n elem: HTMLElement | null | undefined,\n eventHandler: TransitionEventHandler,\n ): void {\n if (this.shouldDisableTransitionMotion()) {\n this.disposeTransition();\n this.transitionFinishTimeout = setTimeout(eventHandler);\n } else if (elem) {\n this.disposeTransition();\n elem.addEventListener('transitionend', eventHandler);\n this.transitionDisposer = () => {\n elem.removeEventListener('transitionend', eventHandler);\n };\n } else {\n if (this.transitionFinishTimeout) {\n clearTimeout(this.transitionFinishTimeout);\n }\n this.transitionFinishTimeout = setTimeout(\n eventHandler,\n this.props.platform === 'android' || this.props.platform === 'vkcom' ? 300 : 600,\n );\n }\n }\n\n blurActiveElement(): void {\n if (typeof this.window !== 'undefined' && this.document?.activeElement) {\n (this.document.activeElement as HTMLElement).blur();\n }\n }\n\n pickPanel(id: string | null) {\n if (id === null) {\n return undefined;\n }\n return this.panelNodes[id];\n }\n\n flushTransition(prevPanel: string, isBack: boolean) {\n const activePanel = this.props.activePanel;\n\n const prevPanelScrolls = [...(this.scrolls.get(prevPanel) || [])].slice(0, -1);\n const newPanelScrolls = [...(this.scrolls.get(activePanel) || [])];\n const scrollPosition = isBack ? newPanelScrolls.pop() : 0;\n if (isBack) {\n this.scrolls.set(prevPanel, prevPanelScrolls);\n this.scrolls.set(activePanel, newPanelScrolls);\n }\n\n this.setState(\n {\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel: activePanel,\n animated: false,\n isBack,\n },\n () => {\n this.props.scroll?.scrollTo(0, isBack ? scrollPosition : 0);\n this.props.onTransition &&\n this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n },\n );\n }\n\n transitionEndHandler: React.AnimationEventHandler<HTMLDivElement> = (e): void => {\n if (e.target !== e.currentTarget) {\n return;\n }\n\n if (this.state.prevPanel !== null) {\n this.flushTransition(this.state.prevPanel, Boolean(this.state.isBack));\n }\n };\n\n swipingBackTransitionEndHandler = (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e.propertyName.includes('transform') &&\n e.target === this.pickPanel(this.state.swipeBackNextPanel))\n ) {\n switch (this.state.swipeBackResult) {\n case 'fail':\n this.onSwipeBackCancel();\n break;\n case 'success':\n this.onSwipeBackSuccess();\n }\n }\n };\n\n onSwipeBackSuccess(): void {\n this.props.onSwipeBack && this.props.onSwipeBack();\n }\n\n onSwipeBackCancel(): void {\n this.props.onSwipeBackCancel && this.props.onSwipeBackCancel();\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n });\n }\n\n handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext = (event: CustomTouchEvent) => {\n if (this.state.browserSwipe) {\n return;\n }\n const { swipeBackTriggered, viewportStartEdgeTouched, viewportEndEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, this.window!.innerWidth);\n\n if ((viewportStartEdgeTouched || viewportEndEdgeTouched) && swipeBackTriggered) {\n this.setState({ browserSwipe: true });\n }\n };\n\n handleTouchMoveXForIOSSwipeBackSimulation = (event: CustomTouchEvent) => {\n if (this.swipeBackPrevented || swipeBackExcluded(event)) {\n return;\n }\n\n const { swipedToOpposite, swipeBackTriggered, viewportStartEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, this.window!.innerWidth);\n\n if (this.state.animated && swipeBackTriggered) {\n return;\n }\n\n if (!this.state.swipingBack && this.props.history && this.props.history.length > 1) {\n if (swipedToOpposite) {\n this.swipeBackPrevented = true;\n return;\n }\n\n if (!swipeBackTriggered) {\n return;\n }\n\n if (\n !viewportStartEdgeTouched &&\n hasHorizontalScrollableElementWithScrolledToLeft(event.originalEvent.target as HTMLElement)\n ) {\n this.swipeBackPrevented = true;\n return;\n }\n // Начался свайп назад\n if (this.props.onSwipeBackStart) {\n const payload = this.props.onSwipeBackStart(this.state.activePanel);\n if (payload === 'prevent') {\n this.swipeBackPrevented = true;\n return;\n }\n }\n\n if (this.state.activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n this.blurActiveElement();\n const prevScrolls = this.scrolls.get(this.state.activePanel) || [];\n this.scrolls.set(this.state.activePanel, [\n ...prevScrolls,\n this.props.scroll?.getScroll().y,\n ]);\n }\n\n this.setState({\n swipingBack: true,\n swipeBackStartX: event.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history.slice(-2)[0],\n });\n }\n\n if (this.state.swipingBack) {\n if (event.shiftX < 0) {\n this.setState({ swipeBackShift: 0 });\n } else if (event.shiftX > this.window!.innerWidth - this.state.swipeBackStartX) {\n this.setState({ swipeBackShift: this.window!.innerWidth });\n } else {\n this.setState({ swipeBackShift: event.shiftX });\n }\n }\n };\n\n handleTouchEndForIOSSwipeBackSimulation = (event: CustomTouchEvent) => {\n this.swipeBackPrevented = false;\n\n if (this.state.swipingBack && this.window) {\n const speed = (this.state.swipeBackShift / event.duration) * millisecondsInSecond;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= this.window.innerWidth) {\n this.onSwipeBackSuccess();\n } else if (speed > 250 || this.state.swipeBackShift >= this.window.innerWidth / 2) {\n this.setState({ swipeBackResult: 'success' });\n } else {\n this.setState({ swipeBackResult: 'fail' });\n }\n }\n };\n\n calcPanelSwipeStyles(panelId: string | undefined): React.CSSProperties {\n if (!canUseDOM || !this.window) {\n return {};\n }\n\n const isPrev = panelId === this.state.swipeBackPrevPanel;\n const isNext = panelId === this.state.swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || this.state.swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${this.state.swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (this.state.swipeBackShift * 100) / this.window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (this.window.innerWidth - this.state.swipeBackShift)) / this.window.innerWidth;\n\n if (this.state.swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n }\n\n render() {\n const {\n platform,\n activePanel: _1,\n splitCol,\n configProvider,\n history,\n id,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel,\n window,\n document,\n scroll,\n isBackCheck,\n className,\n ...restProps\n } = this.props;\n const {\n prevPanel,\n nextPanel,\n activePanel,\n isBack,\n animated,\n swipeBackPrevPanel,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n } = this.state;\n\n const panels = this.panels\n .filter((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && this.state.visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n })\n .sort((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrevPanel = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isNextPanel = panelId === nextPanel || panelId === swipeBackNextPanel;\n\n if (isNextPanel) {\n return swipingBack || this.state.isBack ? -1 : 1;\n }\n\n if (isPrevPanel) {\n return swipingBack || this.state.isBack ? 1 : -1;\n }\n\n return 0;\n });\n\n const disableAnimation = this.shouldDisableTransitionMotion();\n const iOSSwipeBackSimulationEnabled =\n !disableAnimation && platform === 'ios' && configProvider?.isWebView && Boolean(onSwipeBack);\n\n return (\n <NavViewIdContext.Provider value={id || nav}>\n <LockFloatingPositionContext.Provider value={swipingBack || animated}>\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles.host,\n platform === 'ios' && classNames(styles.ios, 'vkuiInternalView--ios'),\n !disableAnimation && this.state.animated && styles.animated,\n !disableAnimation && this.state.swipingBack && styles.swipingBack,\n disableAnimation && styles.noMotion,\n className,\n )}\n onMoveX={\n iOSSwipeBackSimulationEnabled\n ? this.handleTouchMoveXForIOSSwipeBackSimulation\n : platform === 'ios'\n ? this.handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext\n : undefined\n }\n onEnd={\n iOSSwipeBackSimulationEnabled\n ? this.handleTouchEndForIOSSwipeBackSimulation\n : undefined\n }\n >\n <div className={styles.panels}>\n {panels.map((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const scrollList = (panelId && this.scrolls.get(panelId)) || [];\n const scroll = scrollList[scrollList.length - 1] || 0;\n\n return (\n <div\n className={classNames(\n styles.panel,\n panelId === activePanel && styles.panelActive,\n panelId === prevPanel && styles.panelPrev,\n panelId === nextPanel && styles.panelNext,\n panelId === swipeBackPrevPanel && styles.panelSwipeBackPrev,\n panelId === swipeBackNextPanel && styles.panelSwipeBackNext,\n swipeBackResult === 'success' && styles.panelSwipeBackSuccess,\n swipeBackResult === 'fail' && styles.panelSwipeBackFailed,\n )}\n onAnimationEnd={isTransitionTarget ? this.transitionEndHandler : undefined}\n ref={(el) => {\n panelId !== undefined && (this.panelNodes[panelId] = el);\n }}\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles.panelIn}\n style={{ marginTop: compensateScroll ? -scroll : undefined }}\n >\n <NavTransitionDirectionProvider isBack={swipingBack || isBack}>\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </NavTransitionDirectionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n </LockFloatingPositionContext.Provider>\n </NavViewIdContext.Provider>\n );\n }\n}\n\nexport const ViewInfinite: React.FC<ViewInfiniteProps> = withContext(\n withContext(\n withContext(\n withPlatform(withDOM<ViewInfiniteProps>(ViewInfiniteComponent)),\n SplitColContext,\n 'splitCol',\n ),\n ConfigProviderContext,\n 'configProvider',\n ),\n ScrollContext,\n 'scroll',\n);\n"],"names":["React","classNames","noop","withContext","withPlatform","millisecondsInSecond","canUseDOM","withDOM","LockFloatingPositionContext","getNavId","warnOnce","ScrollContext","ConfigProviderContext","NavViewIdContext","NavTransitionProvider","NavTransitionDirectionProvider","SplitColContext","Touch","getSwipeBackPredicates","hasHorizontalScrollableElementWithScrolledToLeft","swipeBackExcluded","styles","warn","scrollsCache","Map","ViewInfiniteComponent","Component","props","state","animated","visiblePanels","activePanel","isBack","undefined","prevPanel","nextPanel","swipingBack","swipeBackStartX","swipeBackShift","swipeBackNextPanel","swipeBackPrevPanel","swipeBackResult","browserSwipe","defaultProps","history","swipeBackPrevented","scrolls","get","transitionFinishTimeout","animationFinishTimeout","document","window","panels","Children","toArray","children","panelNodes","componentWillUnmount","id","set","clearTimeout","componentDidUpdate","prevProps","prevState","isBackCheck","from","to","firstLayerId","map","panel","find","blurActiveElement","prevScrolls","scroll","getScroll","compensateKeyboardHeight","y","shouldDisableTransitionMotion","flushTransition","setState","scrollPosition","prevPanelScrolls","slice","newPanelScrolls","pop","scrollTo","onTransition","waitTransitionFinish","pickPanel","swipingBackTransitionEndHandler","configProvider","transitionMotionEnabled","splitCol","animate","platform","transitionDisposer","disposeTransition","elem","eventHandler","setTimeout","addEventListener","removeEventListener","activeElement","blur","transitionEndHandler","e","target","currentTarget","Boolean","propertyName","includes","onSwipeBackCancel","onSwipeBackSuccess","onSwipeBack","handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext","event","swipeBackTriggered","viewportStartEdgeTouched","viewportEndEdgeTouched","startX","shiftX","innerWidth","handleTouchMoveXForIOSSwipeBackSimulation","swipedToOpposite","length","originalEvent","onSwipeBackStart","payload","handleTouchEndForIOSSwipeBackSimulation","speed","duration","calcPanelSwipeStyles","panelId","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","render","_1","nav","className","restProps","filter","sort","isPrevPanel","isNextPanel","disableAnimation","iOSSwipeBackSimulationEnabled","isWebView","Provider","value","host","ios","noMotion","onMoveX","onEnd","div","compensateScroll","isTransitionTarget","scrollList","panelActive","panelPrev","panelNext","panelSwipeBackPrev","panelSwipeBackNext","panelSwipeBackSuccess","panelSwipeBackFailed","onAnimationEnd","ref","el","style","panelIn","marginTop","entering","ViewInfinite"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/WriteBar/WriteBar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasDataAttribute, HasRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { useResizeTextarea } from '../Textarea/useResizeTextarea';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Title } from '../Typography/Title/Title';\nimport type { TypographyProps } from '../Typography/Typography';\nimport styles from './WriteBar.module.css';\n\nconst warn = warnOnce('WriteBar');\n\nexport interface WriteBarProps\n extends Pick<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n | 'autoComplete'\n | 'autoCapitalize'\n | 'autoCorrect'\n | 'cols'\n | 'dirName'\n | 'disabled'\n | 'maxLength'\n | 'minLength'\n | 'name'\n | 'placeholder'\n | 'readOnly'\n | 'required'\n | 'rows'\n | 'value'\n | 'wrap'\n | 'form'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n >,\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onFocus' | 'onBlur'>,\n HasRootRef<HTMLDivElement> {\n /**\n * @deprecated Since 7.9.0. Вместо этого используйте `slotProps={ textArea: { getRootRef: ... } }`.\n */\n getRef?: React.Ref<HTMLTextAreaElement>;\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `root`: свойства для прокидывания в корень компонента;\n * - `textArea`: свойства для прокидывания в поле ввода.\n */\n slotProps?: {\n root?: Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> &\n HasRootRef<HTMLDivElement> &\n HasDataAttribute;\n textArea?: React.TextareaHTMLAttributes<HTMLTextAreaElement> &\n HasRootRef<HTMLTextAreaElement> &\n HasDataAttribute;\n };\n /**\n * Содержимое, отображаемое слева от поля ввода.\n */\n before?: React.ReactNode;\n /**\n * Содержимое, отображаемое поверх поля ввода (актуально для iOS).\n */\n inlineAfter?: React.ReactNode;\n /**\n * Содержимое, отображаемое справа от поля ввода.\n */\n after?: React.ReactNode;\n /**\n * Вызывается при смене высоты поля ввода.\n */\n onHeightChange?: VoidFunction;\n /**\n * Добавляет тень вокруг поля ввода.\n */\n shadow?: boolean;\n /**\n * @deprecated Неиспользуемое свойство.\n */\n children?: never;\n}\n\nconst WriteBarTypography = (props: TypographyProps) => {\n const platform = usePlatform();\n\n if (platform === 'ios') {\n return <Title {...props} level=\"3\" weight=\"3\" />;\n }\n\n return <Headline weight=\"3\" {...props} />;\n};\n\n/**\n * @see https://vkui.io/components/write-bar\n */\nexport const WriteBar = ({\n // WriteBarProps\n before,\n inlineAfter,\n after,\n onHeightChange,\n shadow = false,\n getRef,\n\n // textarea props\n autoComplete,\n autoCapitalize,\n autoCorrect,\n cols,\n dirName,\n disabled,\n maxLength,\n minLength,\n name,\n placeholder,\n readOnly,\n required,\n value: valueProp,\n wrap,\n rows,\n form,\n onChange: onChangeProp,\n onFocus,\n onBlur,\n id,\n inputMode,\n defaultValue,\n autoFocus,\n tabIndex,\n spellCheck,\n\n slotProps,\n ...restProps\n}: WriteBarProps): React.ReactNode => {\n /* istanbul ignore if: не проверяем в тестах */\n if (process.env.NODE_ENV === 'development' && getRef) {\n warn('Свойство `getRef` устаревшее, используйте `slotProps={ textArea: { getRootRef: ... } }`');\n }\n\n const platform = usePlatform();\n\n const rootProps = useMergeProps(restProps, slotProps?.root);\n\n const {\n onChange,\n getRootRef: getTextAreaRef,\n ...textAreaRest\n } = useMergeProps(\n {\n className: styles.textarea,\n getRootRef: getRef,\n autoComplete,\n autoCapitalize,\n autoCorrect,\n cols,\n dirName,\n disabled,\n maxLength,\n minLength,\n name,\n placeholder,\n readOnly,\n required,\n value: valueProp,\n wrap,\n rows,\n form,\n onChange: onChangeProp,\n onFocus,\n onBlur,\n id,\n inputMode,\n defaultValue,\n autoFocus,\n tabIndex,\n spellCheck,\n },\n slotProps?.textArea,\n );\n\n const [refResizeTextarea, resize] = useResizeTextarea(onHeightChange, true);\n const textareaRef = useExternRef(getTextAreaRef, refResizeTextarea);\n\n React.useEffect(resize, [resize, platform]);\n\n return (\n <RootComponent\n baseClassName={classNames(\n styles.host,\n platform === 'ios' && styles.ios,\n shadow && styles.shadow,\n )}\n {...rootProps}\n >\n <div className={styles.form}>\n {hasReactNode(before) && <div className={styles.before}>{before}</div>}\n\n <div className={styles.formIn}>\n <WriteBarTypography\n Component=\"textarea\"\n onChange={callMultiple(onChange, resize)}\n getRootRef={textareaRef}\n {...textAreaRest}\n />\n {hasReactNode(inlineAfter) && <div className={styles.inlineAfter}>{inlineAfter}</div>}\n </div>\n\n {hasReactNode(after) && <div className={styles.after}>{after}</div>}\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","hasReactNode","useExternRef","useMergeProps","usePlatform","callMultiple","warnOnce","RootComponent","useResizeTextarea","Headline","Title","styles","warn","WriteBarTypography","props","platform","level","weight","WriteBar","before","inlineAfter","after","onHeightChange","shadow","getRef","autoComplete","autoCapitalize","autoCorrect","cols","dirName","disabled","maxLength","minLength","name","placeholder","readOnly","required","value","valueProp","wrap","rows","form","onChange","onChangeProp","onFocus","onBlur","id","inputMode","defaultValue","autoFocus","tabIndex","spellCheck","slotProps","restProps","process","env","NODE_ENV","rootProps","root","getRootRef","getTextAreaRef","textAreaRest","className","textarea","textArea","refResizeTextarea","resize","textareaRef","useEffect","baseClassName","host","ios","div","formIn","Component"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/WriteBar/WriteBar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasDataAttribute, HasRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { useResizeTextarea } from '../Textarea/useResizeTextarea';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Title } from '../Typography/Title/Title';\nimport type { TypographyProps } from '../Typography/Typography';\nimport styles from './WriteBar.module.css';\n\nconst warn = warnOnce('WriteBar');\n\nexport interface WriteBarProps\n extends Pick<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n | 'autoComplete'\n | 'autoCapitalize'\n | 'autoCorrect'\n | 'cols'\n | 'dirName'\n | 'disabled'\n | 'maxLength'\n | 'minLength'\n | 'name'\n | 'placeholder'\n | 'readOnly'\n | 'required'\n | 'rows'\n | 'value'\n | 'wrap'\n | 'form'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n >,\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onFocus' | 'onBlur'>,\n HasRootRef<HTMLDivElement> {\n /**\n * @deprecated Since 7.9.0. Вместо этого используйте `slotProps={ textArea: { getRootRef: ... } }`.\n */\n getRef?: React.Ref<HTMLTextAreaElement> | undefined;\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `root`: свойства для прокидывания в корень компонента;\n * - `textArea`: свойства для прокидывания в поле ввода.\n */\n slotProps?:\n | {\n root?:\n | (Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> &\n HasRootRef<HTMLDivElement> &\n HasDataAttribute)\n | undefined;\n textArea?:\n | (React.TextareaHTMLAttributes<HTMLTextAreaElement> &\n HasRootRef<HTMLTextAreaElement> &\n HasDataAttribute)\n | undefined;\n }\n | undefined;\n /**\n * Содержимое, отображаемое слева от поля ввода.\n */\n before?: React.ReactNode | undefined;\n /**\n * Содержимое, отображаемое поверх поля ввода (актуально для iOS).\n */\n inlineAfter?: React.ReactNode | undefined;\n /**\n * Содержимое, отображаемое справа от поля ввода.\n */\n after?: React.ReactNode | undefined;\n /**\n * Вызывается при смене высоты поля ввода.\n */\n onHeightChange?: VoidFunction | undefined;\n /**\n * Добавляет тень вокруг поля ввода.\n */\n shadow?: boolean | undefined;\n /**\n * @deprecated Неиспользуемое свойство.\n */\n children?: never | undefined;\n}\n\nconst WriteBarTypography = (props: TypographyProps) => {\n const platform = usePlatform();\n\n if (platform === 'ios') {\n return <Title {...props} level=\"3\" weight=\"3\" />;\n }\n\n return <Headline weight=\"3\" {...props} />;\n};\n\n/**\n * @see https://vkui.io/components/write-bar\n */\nexport const WriteBar = ({\n // WriteBarProps\n before,\n inlineAfter,\n after,\n onHeightChange,\n shadow = false,\n getRef,\n\n // textarea props\n autoComplete,\n autoCapitalize,\n autoCorrect,\n cols,\n dirName,\n disabled,\n maxLength,\n minLength,\n name,\n placeholder,\n readOnly,\n required,\n value: valueProp,\n wrap,\n rows,\n form,\n onChange: onChangeProp,\n onFocus,\n onBlur,\n id,\n inputMode,\n defaultValue,\n autoFocus,\n tabIndex,\n spellCheck,\n\n slotProps,\n ...restProps\n}: WriteBarProps): React.ReactNode => {\n /* istanbul ignore if: не проверяем в тестах */\n if (process.env.NODE_ENV === 'development' && getRef) {\n warn('Свойство `getRef` устаревшее, используйте `slotProps={ textArea: { getRootRef: ... } }`');\n }\n\n const platform = usePlatform();\n\n const rootProps = useMergeProps(restProps, slotProps?.root);\n\n const {\n onChange,\n getRootRef: getTextAreaRef,\n ...textAreaRest\n } = useMergeProps(\n {\n className: styles.textarea,\n getRootRef: getRef,\n autoComplete,\n autoCapitalize,\n autoCorrect,\n cols,\n dirName,\n disabled,\n maxLength,\n minLength,\n name,\n placeholder,\n readOnly,\n required,\n value: valueProp,\n wrap,\n rows,\n form,\n onChange: onChangeProp,\n onFocus,\n onBlur,\n id,\n inputMode,\n defaultValue,\n autoFocus,\n tabIndex,\n spellCheck,\n },\n slotProps?.textArea,\n );\n\n const [refResizeTextarea, resize] = useResizeTextarea(onHeightChange, true);\n const textareaRef = useExternRef(getTextAreaRef, refResizeTextarea);\n\n React.useEffect(resize, [resize, platform]);\n\n return (\n <RootComponent\n baseClassName={classNames(\n styles.host,\n platform === 'ios' && styles.ios,\n shadow && styles.shadow,\n )}\n {...rootProps}\n >\n <div className={styles.form}>\n {hasReactNode(before) && <div className={styles.before}>{before}</div>}\n\n <div className={styles.formIn}>\n <WriteBarTypography\n Component=\"textarea\"\n onChange={callMultiple(onChange, resize)}\n getRootRef={textareaRef}\n {...textAreaRest}\n />\n {hasReactNode(inlineAfter) && <div className={styles.inlineAfter}>{inlineAfter}</div>}\n </div>\n\n {hasReactNode(after) && <div className={styles.after}>{after}</div>}\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","hasReactNode","useExternRef","useMergeProps","usePlatform","callMultiple","warnOnce","RootComponent","useResizeTextarea","Headline","Title","styles","warn","WriteBarTypography","props","platform","level","weight","WriteBar","before","inlineAfter","after","onHeightChange","shadow","getRef","autoComplete","autoCapitalize","autoCorrect","cols","dirName","disabled","maxLength","minLength","name","placeholder","readOnly","required","value","valueProp","wrap","rows","form","onChange","onChangeProp","onFocus","onBlur","id","inputMode","defaultValue","autoFocus","tabIndex","spellCheck","slotProps","restProps","process","env","NODE_ENV","rootProps","root","getRootRef","getTextAreaRef","textAreaRest","className","textarea","textArea","refResizeTextarea","resize","textareaRef","useEffect","baseClassName","host","ios","div","formIn","Component"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/WriteBarIcon/WriteBarIcon.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport {\n Icon24Attach,\n Icon24CheckCircleOutline,\n Icon24Send,\n Icon28AddCircleOutline,\n Icon28AttachOutline,\n Icon28CheckCircleOutline,\n Icon28Send,\n Icon48WritebarDone,\n Icon48WritebarSend,\n} from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasAccessibleName } from '../../lib/accessibility';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { AdaptiveIconRenderer } from '../AdaptiveIconRenderer/AdaptiveIconRenderer';\nimport { Counter } from '../Counter/Counter';\nimport { Tappable } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './WriteBarIcon.module.css';\n\nconst predefinedLabel = {\n attach: 'Прикрепить файл',\n send: 'Отправить',\n done: 'Готово',\n};\n\nexport interface WriteBarIconProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Предустановленные типы кнопок в WriteBar для отрисовки иконки и установки текста кнопки в зависимости от платформы.\n * Если передать валидное значение для этого свойства, `children` игнорируются, а для `label` по умолчанию используется текст на \"ru_RU\".\n *\n * Валидные значения:\n * - `attach` – иконка прикрепления, текст по умолчанию — \"Прикрепить файл\";\n * - `send` – иконка отправки, текст по умолчанию — \"Отправить\";\n * - `done` – иконка отправки в режиме редактирования, текст по умолчанию — \"Готово\".\n */\n mode?: 'attach' | 'send' | 'done';\n /**\n * Значение счётчика для кнопки. Например, для количества прикреплённых файлов.\n */\n count?: number;\n /**\n * Текст кнопки. Необходим для ассистивных технологий.\n */\n label?: string;\n}\n\nconst warn = warnOnce('WriteBarIcon');\n\n/**\n * @see https://vkui.io/components/write-bar#write-bar-icon\n */\nexport const WriteBarIcon = ({\n mode,\n children,\n count,\n label: labelProp,\n ...restProps\n}: WriteBarIconProps): React.ReactNode => {\n const platform = usePlatform();\n\n let predefinedIcons;\n\n switch (mode) {\n case 'attach':\n predefinedIcons = {\n IconCompact: platform === 'ios' ? Icon28AddCircleOutline : Icon24Attach,\n IconRegular: platform === 'ios' ? Icon28AddCircleOutline : Icon28AttachOutline,\n };\n break;\n\n case 'send':\n predefinedIcons = {\n IconCompact: platform === 'ios' ? Icon48WritebarSend : Icon24Send,\n IconRegular: platform === 'ios' ? Icon48WritebarSend : Icon28Send,\n };\n break;\n\n case 'done':\n predefinedIcons = {\n IconCompact: platform === 'ios' ? Icon48WritebarDone : Icon24CheckCircleOutline,\n IconRegular: platform === 'ios' ? Icon48WritebarDone : Icon28CheckCircleOutline,\n };\n break;\n\n default:\n break;\n }\n\n const label = labelProp ?? (mode && predefinedLabel[mode]);\n\n if (process.env.NODE_ENV === 'development') {\n /* istanbul ignore next: проверка в dev mode, тест на hasAccessibleName() есть в lib/accessibility.test.tsx */\n const isAccessible = hasAccessibleName({\n children: [children, label],\n ...restProps,\n });\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y['button-name'], 'error');\n }\n }\n\n return (\n <Tappable\n Component=\"button\"\n hasHover={false}\n activeMode={styles.active}\n baseClassName={classNames(\n styles.host,\n platform === 'ios' && styles.ios,\n mode === 'send' && styles.modeSend,\n mode === 'done' && styles.modeDone,\n )}\n {...restProps}\n >\n <span className={styles.in}>\n {label && <VisuallyHidden>{label}</VisuallyHidden>}\n {predefinedIcons ? <AdaptiveIconRenderer {...predefinedIcons} /> : children}\n </span>\n {hasReactNode(count) && (\n <Counter className={styles.counter} size=\"s\">\n {count}\n </Counter>\n )}\n </Tappable>\n );\n};\n"],"names":["Icon24Attach","Icon24CheckCircleOutline","Icon24Send","Icon28AddCircleOutline","Icon28AttachOutline","Icon28CheckCircleOutline","Icon28Send","Icon48WritebarDone","Icon48WritebarSend","classNames","hasReactNode","usePlatform","hasAccessibleName","COMMON_WARNINGS","warnOnce","AdaptiveIconRenderer","Counter","Tappable","VisuallyHidden","styles","predefinedLabel","attach","send","done","warn","WriteBarIcon","mode","children","count","label","labelProp","restProps","platform","predefinedIcons","IconCompact","IconRegular","process","env","NODE_ENV","isAccessible","a11y","Component","hasHover","activeMode","active","baseClassName","host","ios","modeSend","modeDone","span","className","in","counter","size"],"mappings":"AAAA;;AAGA,SACEA,YAAY,EACZC,wBAAwB,EACxBC,UAAU,EACVC,sBAAsB,EACtBC,mBAAmB,EACnBC,wBAAwB,EACxBC,UAAU,EACVC,kBAAkB,EAClBC,kBAAkB,QACb,mBAAmB;AAC1B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,iBAAiB,QAAQ,6BAA0B;AAC5D,SAASC,eAAe,EAAEC,QAAQ,QAAQ,wBAAqB;AAC/D,SAASC,oBAAoB,QAAQ,kDAA+C;AACpF,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,QAAQ,QAAQ,0BAAuB;AAChD,SAASC,cAAc,QAAQ,sCAAmC;AAClE,OAAOC,YAAY,4BAA4B;AAE/C,MAAMC,kBAAkB;IACtBC,QAAQ;IACRC,MAAM;IACNC,MAAM;AACR;AAuBA,MAAMC,OAAOV,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMW,eAAe,CAAC,EAC3BC,IAAI,EACJC,QAAQ,EACRC,KAAK,EACLC,OAAOC,SAAS,EAChB,GAAGC,WACe;IAClB,MAAMC,WAAWrB;IAEjB,IAAIsB;IAEJ,OAAQP;QACN,KAAK;YACHO,kBAAkB;gBAChBC,aAAaF,aAAa,QAAQ7B,yBAAyBH;gBAC3DmC,aAAaH,aAAa,QAAQ7B,yBAAyBC;YAC7D;YACA;QAEF,KAAK;YACH6B,kBAAkB;gBAChBC,aAAaF,aAAa,QAAQxB,qBAAqBN;gBACvDiC,aAAaH,aAAa,QAAQxB,qBAAqBF;YACzD;YACA;QAEF,KAAK;YACH2B,kBAAkB;gBAChBC,aAAaF,aAAa,QAAQzB,qBAAqBN;gBACvDkC,aAAaH,aAAa,QAAQzB,qBAAqBF;YACzD;YACA;QAEF;YACE;IACJ;IAEA,MAAMwB,QAAQC,aAAcJ,CAAAA,QAAQN,eAAe,CAACM,KAAK,AAAD;IAExD,IAAIU,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,4GAA4G,GAC5G,MAAMC,eAAe3B,kBAAkB;YACrCe,UAAU;gBAACA;gBAAUE;aAAM;YAC3B,GAAGE,SAAS;QACd;QAEA,IAAI,CAACQ,cAAc;YACjBf,KAAKX,gBAAgB2B,IAAI,CAAC,cAAc,EAAE;QAC5C;IACF;IAEA,qBACE,MAACvB;QACCwB,WAAU;QACVC,UAAU;QACVC,YAAYxB,OAAOyB,MAAM;QACzBC,eAAepC,WACbU,OAAO2B,IAAI,EACXd,aAAa,SAASb,OAAO4B,GAAG,EAChCrB,SAAS,UAAUP,OAAO6B,QAAQ,EAClCtB,SAAS,UAAUP,OAAO8B,QAAQ;QAEnC,GAAGlB,SAAS;;0BAEb,MAACmB;gBAAKC,WAAWhC,OAAOiC,EAAE;;oBACvBvB,uBAAS,KAACX;kCAAgBW;;oBAC1BI,gCAAkB,KAAClB;wBAAsB,GAAGkB,eAAe;yBAAON;;;YAEpEjB,aAAakB,wBACZ,KAACZ;gBAAQmC,WAAWhC,OAAOkC,OAAO;gBAAEC,MAAK;0BACtC1B;;;;AAKX,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/WriteBarIcon/WriteBarIcon.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport {\n Icon24Attach,\n Icon24CheckCircleOutline,\n Icon24Send,\n Icon28AddCircleOutline,\n Icon28AttachOutline,\n Icon28CheckCircleOutline,\n Icon28Send,\n Icon48WritebarDone,\n Icon48WritebarSend,\n} from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasAccessibleName } from '../../lib/accessibility';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { AdaptiveIconRenderer } from '../AdaptiveIconRenderer/AdaptiveIconRenderer';\nimport { Counter } from '../Counter/Counter';\nimport { Tappable } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './WriteBarIcon.module.css';\n\nconst predefinedLabel = {\n attach: 'Прикрепить файл',\n send: 'Отправить',\n done: 'Готово',\n};\n\nexport interface WriteBarIconProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Предустановленные типы кнопок в WriteBar для отрисовки иконки и установки текста кнопки в зависимости от платформы.\n * Если передать валидное значение для этого свойства, `children` игнорируются, а для `label` по умолчанию используется текст на \"ru_RU\".\n *\n * Валидные значения:\n * - `attach` – иконка прикрепления, текст по умолчанию — \"Прикрепить файл\";\n * - `send` – иконка отправки, текст по умолчанию — \"Отправить\";\n * - `done` – иконка отправки в режиме редактирования, текст по умолчанию — \"Готово\".\n */\n mode?: 'attach' | 'send' | 'done' | undefined;\n /**\n * Значение счётчика для кнопки. Например, для количества прикреплённых файлов.\n */\n count?: number | undefined;\n /**\n * Текст кнопки. Необходим для ассистивных технологий.\n */\n label?: string | undefined;\n}\n\nconst warn = warnOnce('WriteBarIcon');\n\n/**\n * @see https://vkui.io/components/write-bar#write-bar-icon\n */\nexport const WriteBarIcon = ({\n mode,\n children,\n count,\n label: labelProp,\n ...restProps\n}: WriteBarIconProps): React.ReactNode => {\n const platform = usePlatform();\n\n let predefinedIcons;\n\n switch (mode) {\n case 'attach':\n predefinedIcons = {\n IconCompact: platform === 'ios' ? Icon28AddCircleOutline : Icon24Attach,\n IconRegular: platform === 'ios' ? Icon28AddCircleOutline : Icon28AttachOutline,\n };\n break;\n\n case 'send':\n predefinedIcons = {\n IconCompact: platform === 'ios' ? Icon48WritebarSend : Icon24Send,\n IconRegular: platform === 'ios' ? Icon48WritebarSend : Icon28Send,\n };\n break;\n\n case 'done':\n predefinedIcons = {\n IconCompact: platform === 'ios' ? Icon48WritebarDone : Icon24CheckCircleOutline,\n IconRegular: platform === 'ios' ? Icon48WritebarDone : Icon28CheckCircleOutline,\n };\n break;\n\n default:\n break;\n }\n\n const label = labelProp ?? (mode && predefinedLabel[mode]);\n\n if (process.env.NODE_ENV === 'development') {\n /* istanbul ignore next: проверка в dev mode, тест на hasAccessibleName() есть в lib/accessibility.test.tsx */\n const isAccessible = hasAccessibleName({\n children: [children, label],\n ...restProps,\n });\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y['button-name'], 'error');\n }\n }\n\n return (\n <Tappable\n Component=\"button\"\n hasHover={false}\n activeMode={styles.active}\n baseClassName={classNames(\n styles.host,\n platform === 'ios' && styles.ios,\n mode === 'send' && styles.modeSend,\n mode === 'done' && styles.modeDone,\n )}\n {...restProps}\n >\n <span className={styles.in}>\n {label && <VisuallyHidden>{label}</VisuallyHidden>}\n {predefinedIcons ? <AdaptiveIconRenderer {...predefinedIcons} /> : children}\n </span>\n {hasReactNode(count) && (\n <Counter className={styles.counter} size=\"s\">\n {count}\n </Counter>\n )}\n </Tappable>\n );\n};\n"],"names":["Icon24Attach","Icon24CheckCircleOutline","Icon24Send","Icon28AddCircleOutline","Icon28AttachOutline","Icon28CheckCircleOutline","Icon28Send","Icon48WritebarDone","Icon48WritebarSend","classNames","hasReactNode","usePlatform","hasAccessibleName","COMMON_WARNINGS","warnOnce","AdaptiveIconRenderer","Counter","Tappable","VisuallyHidden","styles","predefinedLabel","attach","send","done","warn","WriteBarIcon","mode","children","count","label","labelProp","restProps","platform","predefinedIcons","IconCompact","IconRegular","process","env","NODE_ENV","isAccessible","a11y","Component","hasHover","activeMode","active","baseClassName","host","ios","modeSend","modeDone","span","className","in","counter","size"],"mappings":"AAAA;;AAGA,SACEA,YAAY,EACZC,wBAAwB,EACxBC,UAAU,EACVC,sBAAsB,EACtBC,mBAAmB,EACnBC,wBAAwB,EACxBC,UAAU,EACVC,kBAAkB,EAClBC,kBAAkB,QACb,mBAAmB;AAC1B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,iBAAiB,QAAQ,6BAA0B;AAC5D,SAASC,eAAe,EAAEC,QAAQ,QAAQ,wBAAqB;AAC/D,SAASC,oBAAoB,QAAQ,kDAA+C;AACpF,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,QAAQ,QAAQ,0BAAuB;AAChD,SAASC,cAAc,QAAQ,sCAAmC;AAClE,OAAOC,YAAY,4BAA4B;AAE/C,MAAMC,kBAAkB;IACtBC,QAAQ;IACRC,MAAM;IACNC,MAAM;AACR;AAuBA,MAAMC,OAAOV,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMW,eAAe,CAAC,EAC3BC,IAAI,EACJC,QAAQ,EACRC,KAAK,EACLC,OAAOC,SAAS,EAChB,GAAGC,WACe;IAClB,MAAMC,WAAWrB;IAEjB,IAAIsB;IAEJ,OAAQP;QACN,KAAK;YACHO,kBAAkB;gBAChBC,aAAaF,aAAa,QAAQ7B,yBAAyBH;gBAC3DmC,aAAaH,aAAa,QAAQ7B,yBAAyBC;YAC7D;YACA;QAEF,KAAK;YACH6B,kBAAkB;gBAChBC,aAAaF,aAAa,QAAQxB,qBAAqBN;gBACvDiC,aAAaH,aAAa,QAAQxB,qBAAqBF;YACzD;YACA;QAEF,KAAK;YACH2B,kBAAkB;gBAChBC,aAAaF,aAAa,QAAQzB,qBAAqBN;gBACvDkC,aAAaH,aAAa,QAAQzB,qBAAqBF;YACzD;YACA;QAEF;YACE;IACJ;IAEA,MAAMwB,QAAQC,aAAcJ,CAAAA,QAAQN,eAAe,CAACM,KAAK,AAAD;IAExD,IAAIU,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,4GAA4G,GAC5G,MAAMC,eAAe3B,kBAAkB;YACrCe,UAAU;gBAACA;gBAAUE;aAAM;YAC3B,GAAGE,SAAS;QACd;QAEA,IAAI,CAACQ,cAAc;YACjBf,KAAKX,gBAAgB2B,IAAI,CAAC,cAAc,EAAE;QAC5C;IACF;IAEA,qBACE,MAACvB;QACCwB,WAAU;QACVC,UAAU;QACVC,YAAYxB,OAAOyB,MAAM;QACzBC,eAAepC,WACbU,OAAO2B,IAAI,EACXd,aAAa,SAASb,OAAO4B,GAAG,EAChCrB,SAAS,UAAUP,OAAO6B,QAAQ,EAClCtB,SAAS,UAAUP,OAAO8B,QAAQ;QAEnC,GAAGlB,SAAS;;0BAEb,MAACmB;gBAAKC,WAAWhC,OAAOiC,EAAE;;oBACvBvB,uBAAS,KAACX;kCAAgBW;;oBAC1BI,gCAAkB,KAAClB;wBAAsB,GAAGkB,eAAe;yBAAON;;;YAEpEjB,aAAakB,wBACZ,KAACZ;gBAAQmC,WAAWhC,OAAOkC,OAAO;gBAAEC,MAAK;0BACtC1B;;;;AAKX,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/math.ts"],"sourcesContent":["export const clamp = (value: number, min: number, max: number): number =>\n Math.max(min, Math.min(value, max));\n\nexport function precisionRound(number: number, precision = 1): number {\n let factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n}\n\n/**\n * Решение скопировано без изменений у MUI:\n * https://github.com/mui/material-ui/blob/v5.13.7/packages/mui-base/src/useSlider/useSlider.ts#L89-L105\n */\nfunction getDecimalPrecision(num: number) {\n // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n if (Math.abs(num) < 1) {\n const parts = num.toExponential().split('e-');\n const matissaDecimalPart = parts[0].split('.')[1];\n return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n }\n\n const decimalPart = num.toString().split('.')[1];\n return decimalPart ? decimalPart.length : 0;\n}\n\nfunction roundValueToStep(value: number, step: number, min: number) {\n const nearest = Math.round((value - min) / step) * step + min;\n return Number(nearest.toFixed(getDecimalPrecision(step)));\n}\n\nfunction decimatedClamp(val: number, min: number, max: number, step?: number) {\n if (step == null || step <= 0) {\n return clamp(val, min, max);\n }\n const roundedValue = roundValueToStep(val, step, min);\n return clamp(roundedValue, min, max);\n}\n\nexport function rescale(\n value: number,\n from: [number, number],\n to: [number, number],\n options: { step?: number } = {},\n): number {\n const scaled = ((value - from[0]) / (from[1] - from[0])) * (to[1] - to[0]) + to[0];\n return decimatedClamp(scaled, to[0], to[1], options.step);\n}\n"],"names":["clamp","value","min","max","Math","precisionRound","number","precision","factor","pow","round","getDecimalPrecision","num","abs","parts","toExponential","split","matissaDecimalPart","length","parseInt","decimalPart","toString","roundValueToStep","step","nearest","Number","toFixed","decimatedClamp","val","roundedValue","rescale","from","to","options","scaled"],"mappings":"AAAA,OAAO,MAAMA,QAAQ,CAACC,OAAeC,KAAaC,MAChDC,KAAKD,GAAG,CAACD,KAAKE,KAAKF,GAAG,CAACD,OAAOE,MAAM;AAEtC,OAAO,SAASE,eAAeC,MAAc,EAAEC,YAAY,CAAC;IAC1D,IAAIC,SAASJ,KAAKK,GAAG,CAAC,IAAIF;IAC1B,OAAOH,KAAKM,KAAK,CAACJ,SAASE,UAAUA;AACvC;AAEA;;;CAGC,GACD,SAASG,oBAAoBC,GAAW;IACtC,0FAA0F;IAC1F,kGAAkG;IAClG,IAAIR,KAAKS,GAAG,CAACD,OAAO,GAAG;QACrB,MAAME,QAAQF,IAAIG,aAAa,GAAGC,KAAK,CAAC;QACxC,MAAMC,qBAAqBH,KAAK,CAAC,EAAE,CAACE,KAAK,CAAC,IAAI,CAAC,EAAE;QACjD,OAAO,AAACC,CAAAA,qBAAqBA,mBAAmBC,MAAM,GAAG,CAAA,IAAKC,SAASL,KAAK,CAAC,EAAE,EAAE;IACnF;IAEA,MAAMM,cAAcR,IAAIS,QAAQ,GAAGL,KAAK,CAAC,IAAI,CAAC,EAAE;IAChD,OAAOI,cAAcA,YAAYF,MAAM,GAAG;AAC5C;AAEA,SAASI,iBAAiBrB,KAAa,EAAEsB,IAAY,EAAErB,GAAW;IAChE,MAAMsB,UAAUpB,KAAKM,KAAK,CAAC,AAACT,CAAAA,QAAQC,GAAE,IAAKqB,QAAQA,OAAOrB;IAC1D,OAAOuB,OAAOD,QAAQE,OAAO,CAACf,oBAAoBY;AACpD;AAEA,SAASI,eAAeC,GAAW,EAAE1B,GAAW,EAAEC,GAAW,EAAEoB,IAAa;IAC1E,IAAIA,QAAQ,QAAQA,QAAQ,GAAG;QAC7B,OAAOvB,MAAM4B,KAAK1B,KAAKC;IACzB;IACA,MAAM0B,eAAeP,iBAAiBM,KAAKL,MAAMrB;IACjD,OAAOF,MAAM6B,cAAc3B,KAAKC;AAClC;AAEA,OAAO,SAAS2B,QACd7B,KAAa,EACb8B,IAAsB,EACtBC,EAAoB,EACpBC,UAA6B,CAAC,CAAC;IAE/B,MAAMC,SAAS,AAAEjC,CAAAA,QAAQ8B,IAAI,CAAC,EAAE,AAAD,IAAMA,CAAAA,IAAI,CAAC,EAAE,GAAGA,IAAI,CAAC,EAAE,AAAD,IAAOC,CAAAA,EAAE,CAAC,EAAE,GAAGA,EAAE,CAAC,EAAE,AAAD,IAAKA,EAAE,CAAC,EAAE;IAClF,OAAOL,eAAeO,QAAQF,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEC,QAAQV,IAAI;AAC1D"}
1
+ {"version":3,"sources":["../../../src/helpers/math.ts"],"sourcesContent":["export const clamp = (value: number, min: number, max: number): number =>\n Math.max(min, Math.min(value, max));\n\nexport function precisionRound(number: number, precision = 1): number {\n let factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n}\n\n/**\n * Решение скопировано без изменений у MUI:\n * https://github.com/mui/material-ui/blob/v5.13.7/packages/mui-base/src/useSlider/useSlider.ts#L89-L105\n */\nfunction getDecimalPrecision(num: number) {\n // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n if (Math.abs(num) < 1) {\n const parts = num.toExponential().split('e-');\n const matissaDecimalPart = parts[0].split('.')[1];\n return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n }\n\n const decimalPart = num.toString().split('.')[1];\n return decimalPart ? decimalPart.length : 0;\n}\n\nfunction roundValueToStep(value: number, step: number, min: number) {\n const nearest = Math.round((value - min) / step) * step + min;\n return Number(nearest.toFixed(getDecimalPrecision(step)));\n}\n\nfunction decimatedClamp(val: number, min: number, max: number, step?: number) {\n if (step == null || step <= 0) {\n return clamp(val, min, max);\n }\n const roundedValue = roundValueToStep(val, step, min);\n return clamp(roundedValue, min, max);\n}\n\nexport function rescale(\n value: number,\n from: [number, number],\n to: [number, number],\n options: { step?: number | undefined } = {},\n): number {\n const scaled = ((value - from[0]) / (from[1] - from[0])) * (to[1] - to[0]) + to[0];\n return decimatedClamp(scaled, to[0], to[1], options.step);\n}\n"],"names":["clamp","value","min","max","Math","precisionRound","number","precision","factor","pow","round","getDecimalPrecision","num","abs","parts","toExponential","split","matissaDecimalPart","length","parseInt","decimalPart","toString","roundValueToStep","step","nearest","Number","toFixed","decimatedClamp","val","roundedValue","rescale","from","to","options","scaled"],"mappings":"AAAA,OAAO,MAAMA,QAAQ,CAACC,OAAeC,KAAaC,MAChDC,KAAKD,GAAG,CAACD,KAAKE,KAAKF,GAAG,CAACD,OAAOE,MAAM;AAEtC,OAAO,SAASE,eAAeC,MAAc,EAAEC,YAAY,CAAC;IAC1D,IAAIC,SAASJ,KAAKK,GAAG,CAAC,IAAIF;IAC1B,OAAOH,KAAKM,KAAK,CAACJ,SAASE,UAAUA;AACvC;AAEA;;;CAGC,GACD,SAASG,oBAAoBC,GAAW;IACtC,0FAA0F;IAC1F,kGAAkG;IAClG,IAAIR,KAAKS,GAAG,CAACD,OAAO,GAAG;QACrB,MAAME,QAAQF,IAAIG,aAAa,GAAGC,KAAK,CAAC;QACxC,MAAMC,qBAAqBH,KAAK,CAAC,EAAE,CAACE,KAAK,CAAC,IAAI,CAAC,EAAE;QACjD,OAAO,AAACC,CAAAA,qBAAqBA,mBAAmBC,MAAM,GAAG,CAAA,IAAKC,SAASL,KAAK,CAAC,EAAE,EAAE;IACnF;IAEA,MAAMM,cAAcR,IAAIS,QAAQ,GAAGL,KAAK,CAAC,IAAI,CAAC,EAAE;IAChD,OAAOI,cAAcA,YAAYF,MAAM,GAAG;AAC5C;AAEA,SAASI,iBAAiBrB,KAAa,EAAEsB,IAAY,EAAErB,GAAW;IAChE,MAAMsB,UAAUpB,KAAKM,KAAK,CAAC,AAACT,CAAAA,QAAQC,GAAE,IAAKqB,QAAQA,OAAOrB;IAC1D,OAAOuB,OAAOD,QAAQE,OAAO,CAACf,oBAAoBY;AACpD;AAEA,SAASI,eAAeC,GAAW,EAAE1B,GAAW,EAAEC,GAAW,EAAEoB,IAAa;IAC1E,IAAIA,QAAQ,QAAQA,QAAQ,GAAG;QAC7B,OAAOvB,MAAM4B,KAAK1B,KAAKC;IACzB;IACA,MAAM0B,eAAeP,iBAAiBM,KAAKL,MAAMrB;IACjD,OAAOF,MAAM6B,cAAc3B,KAAKC;AAClC;AAEA,OAAO,SAAS2B,QACd7B,KAAa,EACb8B,IAAsB,EACtBC,EAAoB,EACpBC,UAAyC,CAAC,CAAC;IAE3C,MAAMC,SAAS,AAAEjC,CAAAA,QAAQ8B,IAAI,CAAC,EAAE,AAAD,IAAMA,CAAAA,IAAI,CAAC,EAAE,GAAGA,IAAI,CAAC,EAAE,AAAD,IAAOC,CAAAA,EAAE,CAAC,EAAE,GAAGA,EAAE,CAAC,EAAE,AAAD,IAAKA,EAAE,CAAC,EAAE;IAClF,OAAOL,eAAeO,QAAQF,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEC,QAAQV,IAAI;AAC1D"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useAdaptivityWithJSMediaQueries.ts"],"sourcesContent":["import * as React from 'react';\nimport { canUseDOM, hasHover as hasHoverLib, hasMouse as hasPointerLib } from '@vkontakte/vkjs';\nimport {\n AdaptivityContext,\n type AdaptivityProps as BaseAdaptivityProps,\n} from '../components/AdaptivityProvider/AdaptivityContext';\nimport { getOrDefault } from '../helpers/getOrDefault';\nimport {\n getDensity,\n getSizeX,\n getViewHeightByMediaQueries,\n getViewWidthByMediaQueries,\n type SizeTypeValues,\n tryToCheckIsDesktop,\n ViewWidth,\n type ViewWidthType,\n} from '../lib/adaptivity';\nimport { warnOnce } from '../lib/warnOnce';\nimport { useMediaQueries } from './useMediaQueries';\nimport { usePlatform } from './usePlatform';\n\n/**\n * @private\n *\n * @param legacySizeX Значение из хука `useAdaptivityWithJSMediaQueries`\n * @param viewWidth Значение из хука `useAdaptivityWithJSMediaQueries`\n * @param legacySizeXContext Значение из хука `useAdaptivity`\n *\n * TODO [>=10]: #9015 удалить функцию и перенести проверку `viewWidth` на место вызова данной функции.\n */\nexport const isSizeXCompactFallback = (\n viewWidth: ViewWidthType,\n legacySizeX: SizeTypeValues,\n legacySizeXContext: SizeTypeValues | undefined,\n) =>\n legacySizeXContext === undefined ? viewWidth < ViewWidth.SMALL_TABLET : legacySizeX !== 'regular';\n\n/**\n * @private\n *\n * @param legacySizeX Значение из хука `useAdaptivityWithJSMediaQueries`\n * @param viewWidth Значение из хука `useAdaptivityWithJSMediaQueries`\n * @param legacySizeXContext Значение из хука `useAdaptivity`\n *\n * TODO [>=10]: #9015 удалить функцию и перенести проверку `viewWidth` на место вызова данной функции.\n */\nexport const isSizeXRegularFallback = (\n viewWidth: ViewWidthType,\n legacySizeX: SizeTypeValues,\n legacySizeXContext: SizeTypeValues | undefined,\n) =>\n legacySizeXContext === undefined\n ? viewWidth >= ViewWidth.SMALL_TABLET\n : legacySizeX === 'regular';\n\nexport interface UseAdaptivityWithJSMediaQueries extends Required<BaseAdaptivityProps> {\n isDesktop: boolean;\n}\n\n/**\n * Высчитывает и возвращает параметры адаптивности при изменении вьюпорта.\n *\n * Берёт в приоритет значения из `AdaptivityContext`.\n *\n * > ⚠ SSR\n * >\n * > Во избежания ошибок при гидратации, не используйте данный хук, если есть вероятность, что компонент будет отрендерен\n * > на стороне сервера.\n * >\n * > Лучше всего использовать для всплывающих окон, т.к. они вызываются только после загрузки\n * > страницы либо пользователем, либо программно.\n */\nconst warn = warnOnce('useAdaptivityWithJSMediaQueries');\n\nexport const useAdaptivityWithJSMediaQueries = (): UseAdaptivityWithJSMediaQueries => {\n if (!canUseDOM) {\n warn(\n `Похоже, вы пытаетесь использовать хук вне браузера.\n\nПостарайтесь этого избегать, чтобы не было ошибок при гидратации: при SSR нет информации о размерах экрана.\n\nИспользуйте CSS Media Query или библиотеку по типу https://github.com/artsy/fresnel.`,\n 'error',\n );\n }\n\n const {\n viewWidth: viewWidthContext,\n viewHeight: viewHeightContext,\n sizeX: sizeXContext,\n density: densityContext,\n hasPointer: hasPointerContext,\n hasHover: hasHoverContext,\n } = React.useContext(AdaptivityContext);\n\n const platform = usePlatform();\n const mediaQueries = useMediaQueries();\n\n const [[viewWidthLocal, viewHeightLocal], setViewSizeLocal] = React.useState(() => [\n getOrDefault(viewWidthContext, getViewWidthByMediaQueries(mediaQueries)),\n getOrDefault(viewHeightContext, getViewHeightByMediaQueries(mediaQueries)),\n ]);\n\n const adaptivityProps = React.useMemo(() => {\n const hasPointer = getOrDefault(hasPointerContext, hasPointerLib);\n const hasHover = getOrDefault(hasHoverContext, hasHoverLib);\n const viewWidth = getOrDefault(viewWidthContext, viewWidthLocal);\n const viewHeight = getOrDefault(viewHeightContext, viewHeightLocal);\n const sizeX = getOrDefault(sizeXContext, getSizeX(viewWidth));\n const density = getOrDefault(densityContext, getDensity(viewWidth, viewHeight, hasPointer));\n const isDesktop = tryToCheckIsDesktop(viewWidth, viewHeight, hasPointer, platform);\n\n return {\n viewWidth,\n viewHeight,\n sizeX,\n sizeY: density,\n density,\n hasPointer,\n hasHover,\n isDesktop,\n };\n }, [\n viewWidthLocal,\n viewHeightLocal,\n viewWidthContext,\n viewHeightContext,\n sizeXContext,\n densityContext,\n hasPointerContext,\n hasHoverContext,\n platform,\n ]);\n\n React.useEffect(() => {\n const handleMediaQuery = () => {\n setViewSizeLocal((prevSizeLocal) => {\n const newViewWidthLocal = getOrDefault(\n viewWidthContext,\n getViewWidthByMediaQueries(mediaQueries),\n );\n const newViewHeightLocal = getOrDefault(\n viewHeightContext,\n getViewHeightByMediaQueries(mediaQueries),\n );\n\n const [prevViewWidthLocal, prevViewHeightLocal] = prevSizeLocal;\n\n if (\n prevViewWidthLocal !== newViewWidthLocal ||\n prevViewHeightLocal !== newViewHeightLocal\n ) {\n return [newViewWidthLocal, newViewHeightLocal];\n }\n\n return prevSizeLocal;\n });\n };\n\n if (!viewWidthContext) {\n [\n mediaQueries.desktopPlus,\n mediaQueries.tablet,\n mediaQueries.smallTablet,\n mediaQueries.mobile,\n ].forEach((matchMediaListener) =>\n matchMediaListener.addEventListener('change', handleMediaQuery),\n );\n }\n\n if (!viewHeightContext) {\n [mediaQueries.mediumHeight, mediaQueries.mobileLandscapeHeight].forEach(\n (matchMediaListener) => matchMediaListener.addEventListener('change', handleMediaQuery),\n );\n }\n\n return () => {\n [\n mediaQueries.desktopPlus,\n mediaQueries.tablet,\n mediaQueries.smallTablet,\n mediaQueries.mobile,\n mediaQueries.mediumHeight,\n mediaQueries.mobileLandscapeHeight,\n ].forEach((matchMediaListener) =>\n matchMediaListener.removeEventListener('change', handleMediaQuery),\n );\n };\n }, [mediaQueries, viewWidthContext, viewHeightContext]);\n\n return adaptivityProps;\n};\n"],"names":["React","canUseDOM","hasHover","hasHoverLib","hasMouse","hasPointerLib","AdaptivityContext","getOrDefault","getDensity","getSizeX","getViewHeightByMediaQueries","getViewWidthByMediaQueries","tryToCheckIsDesktop","ViewWidth","warnOnce","useMediaQueries","usePlatform","isSizeXCompactFallback","viewWidth","legacySizeX","legacySizeXContext","undefined","SMALL_TABLET","isSizeXRegularFallback","warn","useAdaptivityWithJSMediaQueries","viewWidthContext","viewHeight","viewHeightContext","sizeX","sizeXContext","density","densityContext","hasPointer","hasPointerContext","hasHoverContext","useContext","platform","mediaQueries","viewWidthLocal","viewHeightLocal","setViewSizeLocal","useState","adaptivityProps","useMemo","isDesktop","sizeY","useEffect","handleMediaQuery","prevSizeLocal","newViewWidthLocal","newViewHeightLocal","prevViewWidthLocal","prevViewHeightLocal","desktopPlus","tablet","smallTablet","mobile","forEach","matchMediaListener","addEventListener","mediumHeight","mobileLandscapeHeight","removeEventListener"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/hooks/useAdaptivityWithJSMediaQueries.ts"],"sourcesContent":["import * as React from 'react';\nimport { canUseDOM, hasHover as hasHoverLib, hasMouse as hasPointerLib } from '@vkontakte/vkjs';\nimport {\n AdaptivityContext,\n type AdaptivityProps as BaseAdaptivityProps,\n} from '../components/AdaptivityProvider/AdaptivityContext';\nimport { getOrDefault } from '../helpers/getOrDefault';\nimport {\n getDensity,\n getSizeX,\n getViewHeightByMediaQueries,\n getViewWidthByMediaQueries,\n type SizeTypeValues,\n tryToCheckIsDesktop,\n ViewWidth,\n type ViewWidthType,\n} from '../lib/adaptivity';\nimport { warnOnce } from '../lib/warnOnce';\nimport { useMediaQueries } from './useMediaQueries';\nimport { usePlatform } from './usePlatform';\n\n/**\n * @private\n *\n * @param legacySizeX Значение из хука `useAdaptivityWithJSMediaQueries`\n * @param viewWidth Значение из хука `useAdaptivityWithJSMediaQueries`\n * @param legacySizeXContext Значение из хука `useAdaptivity`\n *\n * TODO [>=10]: #9015 удалить функцию и перенести проверку `viewWidth` на место вызова данной функции.\n */\nexport const isSizeXCompactFallback = (\n viewWidth: ViewWidthType,\n legacySizeX: SizeTypeValues,\n legacySizeXContext: SizeTypeValues | undefined,\n) =>\n legacySizeXContext === undefined ? viewWidth < ViewWidth.SMALL_TABLET : legacySizeX !== 'regular';\n\n/**\n * @private\n *\n * @param legacySizeX Значение из хука `useAdaptivityWithJSMediaQueries`\n * @param viewWidth Значение из хука `useAdaptivityWithJSMediaQueries`\n * @param legacySizeXContext Значение из хука `useAdaptivity`\n *\n * TODO [>=10]: #9015 удалить функцию и перенести проверку `viewWidth` на место вызова данной функции.\n */\nexport const isSizeXRegularFallback = (\n viewWidth: ViewWidthType,\n legacySizeX: SizeTypeValues,\n legacySizeXContext: SizeTypeValues | undefined,\n) =>\n legacySizeXContext === undefined\n ? viewWidth >= ViewWidth.SMALL_TABLET\n : legacySizeX === 'regular';\n\ntype RequiredNonNullable<T> = { [P in keyof T]-?: NonNullable<T[P]> };\n\nexport interface UseAdaptivityWithJSMediaQueries extends RequiredNonNullable<BaseAdaptivityProps> {\n isDesktop: boolean;\n}\n\n/**\n * Высчитывает и возвращает параметры адаптивности при изменении вьюпорта.\n *\n * Берёт в приоритет значения из `AdaptivityContext`.\n *\n * > ⚠ SSR\n * >\n * > Во избежания ошибок при гидратации, не используйте данный хук, если есть вероятность, что компонент будет отрендерен\n * > на стороне сервера.\n * >\n * > Лучше всего использовать для всплывающих окон, т.к. они вызываются только после загрузки\n * > страницы либо пользователем, либо программно.\n */\nconst warn = warnOnce('useAdaptivityWithJSMediaQueries');\n\nexport const useAdaptivityWithJSMediaQueries = (): UseAdaptivityWithJSMediaQueries => {\n if (!canUseDOM) {\n warn(\n `Похоже, вы пытаетесь использовать хук вне браузера.\n\nПостарайтесь этого избегать, чтобы не было ошибок при гидратации: при SSR нет информации о размерах экрана.\n\nИспользуйте CSS Media Query или библиотеку по типу https://github.com/artsy/fresnel.`,\n 'error',\n );\n }\n\n const {\n viewWidth: viewWidthContext,\n viewHeight: viewHeightContext,\n sizeX: sizeXContext,\n density: densityContext,\n hasPointer: hasPointerContext,\n hasHover: hasHoverContext,\n } = React.useContext(AdaptivityContext);\n\n const platform = usePlatform();\n const mediaQueries = useMediaQueries();\n\n const [[viewWidthLocal, viewHeightLocal], setViewSizeLocal] = React.useState(() => [\n getOrDefault(viewWidthContext, getViewWidthByMediaQueries(mediaQueries)),\n getOrDefault(viewHeightContext, getViewHeightByMediaQueries(mediaQueries)),\n ]);\n\n const adaptivityProps = React.useMemo(() => {\n const hasPointer = getOrDefault(hasPointerContext, hasPointerLib);\n const hasHover = getOrDefault(hasHoverContext, hasHoverLib);\n const viewWidth = getOrDefault(viewWidthContext, viewWidthLocal);\n const viewHeight = getOrDefault(viewHeightContext, viewHeightLocal);\n const sizeX = getOrDefault(sizeXContext, getSizeX(viewWidth));\n const density = getOrDefault(densityContext, getDensity(viewWidth, viewHeight, hasPointer));\n const isDesktop = tryToCheckIsDesktop(viewWidth, viewHeight, hasPointer, platform);\n\n return {\n viewWidth,\n viewHeight,\n sizeX,\n sizeY: density,\n density,\n hasPointer,\n hasHover,\n isDesktop,\n };\n }, [\n viewWidthLocal,\n viewHeightLocal,\n viewWidthContext,\n viewHeightContext,\n sizeXContext,\n densityContext,\n hasPointerContext,\n hasHoverContext,\n platform,\n ]);\n\n React.useEffect(() => {\n const handleMediaQuery = () => {\n setViewSizeLocal((prevSizeLocal) => {\n const newViewWidthLocal = getOrDefault(\n viewWidthContext,\n getViewWidthByMediaQueries(mediaQueries),\n );\n const newViewHeightLocal = getOrDefault(\n viewHeightContext,\n getViewHeightByMediaQueries(mediaQueries),\n );\n\n const [prevViewWidthLocal, prevViewHeightLocal] = prevSizeLocal;\n\n if (\n prevViewWidthLocal !== newViewWidthLocal ||\n prevViewHeightLocal !== newViewHeightLocal\n ) {\n return [newViewWidthLocal, newViewHeightLocal];\n }\n\n return prevSizeLocal;\n });\n };\n\n if (!viewWidthContext) {\n [\n mediaQueries.desktopPlus,\n mediaQueries.tablet,\n mediaQueries.smallTablet,\n mediaQueries.mobile,\n ].forEach((matchMediaListener) =>\n matchMediaListener.addEventListener('change', handleMediaQuery),\n );\n }\n\n if (!viewHeightContext) {\n [mediaQueries.mediumHeight, mediaQueries.mobileLandscapeHeight].forEach(\n (matchMediaListener) => matchMediaListener.addEventListener('change', handleMediaQuery),\n );\n }\n\n return () => {\n [\n mediaQueries.desktopPlus,\n mediaQueries.tablet,\n mediaQueries.smallTablet,\n mediaQueries.mobile,\n mediaQueries.mediumHeight,\n mediaQueries.mobileLandscapeHeight,\n ].forEach((matchMediaListener) =>\n matchMediaListener.removeEventListener('change', handleMediaQuery),\n );\n };\n }, [mediaQueries, viewWidthContext, viewHeightContext]);\n\n return adaptivityProps;\n};\n"],"names":["React","canUseDOM","hasHover","hasHoverLib","hasMouse","hasPointerLib","AdaptivityContext","getOrDefault","getDensity","getSizeX","getViewHeightByMediaQueries","getViewWidthByMediaQueries","tryToCheckIsDesktop","ViewWidth","warnOnce","useMediaQueries","usePlatform","isSizeXCompactFallback","viewWidth","legacySizeX","legacySizeXContext","undefined","SMALL_TABLET","isSizeXRegularFallback","warn","useAdaptivityWithJSMediaQueries","viewWidthContext","viewHeight","viewHeightContext","sizeX","sizeXContext","density","densityContext","hasPointer","hasPointerContext","hasHoverContext","useContext","platform","mediaQueries","viewWidthLocal","viewHeightLocal","setViewSizeLocal","useState","adaptivityProps","useMemo","isDesktop","sizeY","useEffect","handleMediaQuery","prevSizeLocal","newViewWidthLocal","newViewHeightLocal","prevViewWidthLocal","prevViewHeightLocal","desktopPlus","tablet","smallTablet","mobile","forEach","matchMediaListener","addEventListener","mediumHeight","mobileLandscapeHeight","removeEventListener"],"mappings":"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"}
@@ -1,34 +1,15 @@
1
- import * as React from "react";
2
- import { noop } from "@vkontakte/vkjs";
3
1
  import { ColorScheme } from "../lib/colorScheme/index.js";
4
- import { useDOM } from "../lib/dom.js";
5
- import { useIsomorphicLayoutEffect } from "../lib/useIsomorphicLayoutEffect.js";
2
+ import { useMediaQueryMatches } from "./useMediaQueryMatch.js";
6
3
  /**
7
4
  * @private
8
5
  */ export const useAutoDetectColorScheme = (colorSchemeProp)=>{
9
- const { window } = useDOM();
10
- const [colorScheme, setColorScheme] = React.useState(colorSchemeProp || ColorScheme.LIGHT);
11
- useIsomorphicLayoutEffect(()=>{
12
- if (colorSchemeProp) {
13
- setColorScheme(colorSchemeProp);
14
- return noop;
15
- }
16
- const mediaQuery = window ? window.matchMedia('(prefers-color-scheme: dark)') : undefined;
17
- if (!mediaQuery) {
18
- return noop;
19
- }
20
- const check = (event)=>{
21
- // eslint-disable-next-line no-restricted-properties
22
- setColorScheme(event.matches ? ColorScheme.DARK : ColorScheme.LIGHT);
23
- };
24
- check(mediaQuery);
25
- mediaQuery.addEventListener('change', check);
26
- return ()=>mediaQuery.removeEventListener('change', check);
27
- }, [
28
- window,
29
- colorSchemeProp
30
- ]);
31
- return colorScheme;
6
+ const isDark = useMediaQueryMatches('(prefers-color-scheme: dark)', {
7
+ disable: colorSchemeProp !== undefined
8
+ });
9
+ if (colorSchemeProp) {
10
+ return colorSchemeProp;
11
+ }
12
+ return isDark ? ColorScheme.DARK : ColorScheme.LIGHT;
32
13
  };
33
14
 
34
15
  //# sourceMappingURL=useAutoDetectColorScheme.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useAutoDetectColorScheme.ts"],"sourcesContent":["import * as React from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { ColorScheme, type ColorSchemeType } from '../lib/colorScheme';\nimport { useDOM } from '../lib/dom';\nimport { useIsomorphicLayoutEffect } from '../lib/useIsomorphicLayoutEffect';\n\n/**\n * @private\n */\nexport const useAutoDetectColorScheme = (colorSchemeProp?: ColorSchemeType): ColorSchemeType => {\n const { window } = useDOM();\n\n const [colorScheme, setColorScheme] = React.useState<ColorSchemeType>(\n colorSchemeProp || ColorScheme.LIGHT,\n );\n\n useIsomorphicLayoutEffect(() => {\n if (colorSchemeProp) {\n setColorScheme(colorSchemeProp);\n return noop;\n }\n\n const mediaQuery = window ? window.matchMedia('(prefers-color-scheme: dark)') : undefined;\n\n if (!mediaQuery) {\n return noop;\n }\n\n const check = (event: MediaQueryList | MediaQueryListEvent) => {\n // eslint-disable-next-line no-restricted-properties\n setColorScheme(event.matches ? ColorScheme.DARK : ColorScheme.LIGHT);\n };\n check(mediaQuery);\n mediaQuery.addEventListener('change', check);\n return () => mediaQuery.removeEventListener('change', check);\n }, [window, colorSchemeProp]);\n\n return colorScheme;\n};\n"],"names":["React","noop","ColorScheme","useDOM","useIsomorphicLayoutEffect","useAutoDetectColorScheme","colorSchemeProp","window","colorScheme","setColorScheme","useState","LIGHT","mediaQuery","matchMedia","undefined","check","event","matches","DARK","addEventListener","removeEventListener"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,WAAW,QAA8B,8BAAqB;AACvE,SAASC,MAAM,QAAQ,gBAAa;AACpC,SAASC,yBAAyB,QAAQ,sCAAmC;AAE7E;;CAEC,GACD,OAAO,MAAMC,2BAA2B,CAACC;IACvC,MAAM,EAAEC,MAAM,EAAE,GAAGJ;IAEnB,MAAM,CAACK,aAAaC,eAAe,GAAGT,MAAMU,QAAQ,CAClDJ,mBAAmBJ,YAAYS,KAAK;IAGtCP,0BAA0B;QACxB,IAAIE,iBAAiB;YACnBG,eAAeH;YACf,OAAOL;QACT;QAEA,MAAMW,aAAaL,SAASA,OAAOM,UAAU,CAAC,kCAAkCC;QAEhF,IAAI,CAACF,YAAY;YACf,OAAOX;QACT;QAEA,MAAMc,QAAQ,CAACC;YACb,oDAAoD;YACpDP,eAAeO,MAAMC,OAAO,GAAGf,YAAYgB,IAAI,GAAGhB,YAAYS,KAAK;QACrE;QACAI,MAAMH;QACNA,WAAWO,gBAAgB,CAAC,UAAUJ;QACtC,OAAO,IAAMH,WAAWQ,mBAAmB,CAAC,UAAUL;IACxD,GAAG;QAACR;QAAQD;KAAgB;IAE5B,OAAOE;AACT,EAAE"}
1
+ {"version":3,"sources":["../../../src/hooks/useAutoDetectColorScheme.ts"],"sourcesContent":["import { ColorScheme, type ColorSchemeType } from '../lib/colorScheme';\nimport { useMediaQueryMatches } from './useMediaQueryMatch';\n\n/**\n * @private\n */\nexport const useAutoDetectColorScheme = (colorSchemeProp?: ColorSchemeType): ColorSchemeType => {\n const isDark = useMediaQueryMatches('(prefers-color-scheme: dark)', {\n disable: colorSchemeProp !== undefined,\n });\n\n if (colorSchemeProp) {\n return colorSchemeProp;\n }\n\n return isDark ? ColorScheme.DARK : ColorScheme.LIGHT;\n};\n"],"names":["ColorScheme","useMediaQueryMatches","useAutoDetectColorScheme","colorSchemeProp","isDark","disable","undefined","DARK","LIGHT"],"mappings":"AAAA,SAASA,WAAW,QAA8B,8BAAqB;AACvE,SAASC,oBAAoB,QAAQ,0BAAuB;AAE5D;;CAEC,GACD,OAAO,MAAMC,2BAA2B,CAACC;IACvC,MAAMC,SAASH,qBAAqB,gCAAgC;QAClEI,SAASF,oBAAoBG;IAC/B;IAEA,IAAIH,iBAAiB;QACnB,OAAOA;IACT;IAEA,OAAOC,SAASJ,YAAYO,IAAI,GAAGP,YAAYQ,KAAK;AACtD,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useCalendar.ts"],"sourcesContent":["import * as React from 'react';\nimport { isSameDate } from '@vkontakte/vkjs';\nimport type { CalendarProps } from '../components/Calendar/Calendar';\nimport { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR, isDayMinMaxRestricted } from '../lib/calendar';\nimport { addMonths, endOfDay, startOfDay, subMonths } from '../lib/date';\n\nexport interface UseCalendarDependencies\n extends Pick<\n CalendarProps,\n | 'onHeaderChange'\n | 'onNextMonth'\n | 'onPrevMonth'\n | 'minDateTime'\n | 'maxDateTime'\n | 'shouldDisableDate'\n | 'disableFuture'\n | 'disablePast'\n > {\n value?: Array<Date | null> | Date | null;\n}\n\nexport function useCalendar({\n value,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n minDateTime,\n maxDateTime,\n}: UseCalendarDependencies): {\n viewDate: Date;\n setViewDate: (value: Date) => void;\n setPrevMonth: () => void;\n setNextMonth: () => void;\n focusedDay: Date | undefined;\n setFocusedDay: React.Dispatch<React.SetStateAction<Date | undefined>>;\n isDayFocused: (day: Date) => boolean;\n isDayDisabled: (day: Date, withTime?: boolean) => boolean;\n isMonthDisabled: (month: number, year?: number) => boolean;\n isYearDisabled: (year: number) => boolean;\n} {\n const [viewDate, setViewDate] = React.useState(\n (Array.isArray(value) ? value[0] : value) ?? new Date(),\n );\n // соответствует дню, на котором сейчас есть фокус\n // меняется при переключении дней с помощью стрелок\n const [focusedDay, setFocusedDay] = React.useState<Date>();\n\n const setPrevMonth = React.useCallback(() => {\n onPrevMonth?.();\n setViewDate(subMonths(viewDate, 1));\n }, [viewDate, onPrevMonth]);\n const setNextMonth = React.useCallback(() => {\n onNextMonth?.();\n setViewDate(addMonths(viewDate, 1));\n }, [viewDate, onNextMonth]);\n\n const handleSetViewDate = React.useCallback(\n (value: Date) => {\n onHeaderChange?.(value);\n setViewDate(value);\n },\n [onHeaderChange],\n );\n\n const isDayFocused = React.useCallback(\n (day: Date) => Boolean(focusedDay && isSameDate(day, focusedDay)),\n [focusedDay],\n );\n\n const isDayDisabled = React.useCallback(\n (day: Date, withTime?: boolean) => {\n const now = new Date();\n if (shouldDisableDate) {\n return shouldDisableDate(day);\n }\n if (disableFuture) {\n return startOfDay(day) > now;\n }\n if (disablePast) {\n return endOfDay(day) < now;\n }\n if (minDateTime || maxDateTime) {\n return isDayMinMaxRestricted(day, { min: minDateTime, max: maxDateTime, withTime });\n }\n\n return false;\n },\n [disableFuture, disablePast, shouldDisableDate, minDateTime, maxDateTime],\n );\n\n const isMonthDisabled = React.useCallback(\n (month: number, year?: number): boolean => {\n const now = new Date();\n year = year || viewDate.getFullYear();\n const minMonth = minDateTime ? minDateTime.getMonth() : 0;\n const maxMonth = maxDateTime ? maxDateTime.getMonth() : 11;\n const minYear = minDateTime?.getFullYear() || DEFAULT_MIN_YEAR;\n const maxYear = maxDateTime?.getFullYear() || DEFAULT_MAX_YEAR;\n\n let isDisabled =\n year >= minYear && year <= maxYear\n ? (year === minYear && minMonth > month) || (year === maxYear && month > maxMonth)\n : true;\n\n if (disableFuture) {\n isDisabled =\n isDisabled ||\n (year === now.getFullYear() ? month > now.getMonth() : year > now.getFullYear());\n }\n if (disablePast) {\n isDisabled =\n isDisabled ||\n (year === now.getFullYear() ? month < now.getMonth() : year < now.getFullYear());\n }\n\n return isDisabled;\n },\n [disableFuture, disablePast, viewDate, minDateTime, maxDateTime],\n );\n\n const isYearDisabled = React.useCallback(\n (year: number): boolean => {\n const now = new Date();\n const minYear = minDateTime?.getFullYear() || DEFAULT_MIN_YEAR;\n const maxYear = maxDateTime?.getFullYear() || DEFAULT_MAX_YEAR;\n\n let isDisabled = minYear > year || year > maxYear;\n if (disableFuture) {\n isDisabled = isDisabled || year > now.getFullYear();\n }\n if (disablePast) {\n isDisabled = isDisabled || year < now.getFullYear();\n }\n\n return isDisabled;\n },\n [disableFuture, disablePast, minDateTime, maxDateTime],\n );\n\n return {\n viewDate,\n setViewDate: handleSetViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n isMonthDisabled,\n isYearDisabled,\n };\n}\n"],"names":["React","isSameDate","DEFAULT_MAX_YEAR","DEFAULT_MIN_YEAR","isDayMinMaxRestricted","addMonths","endOfDay","startOfDay","subMonths","useCalendar","value","disablePast","disableFuture","shouldDisableDate","onHeaderChange","onNextMonth","onPrevMonth","minDateTime","maxDateTime","viewDate","setViewDate","useState","Array","isArray","Date","focusedDay","setFocusedDay","setPrevMonth","useCallback","setNextMonth","handleSetViewDate","isDayFocused","day","Boolean","isDayDisabled","withTime","now","min","max","isMonthDisabled","month","year","getFullYear","minMonth","getMonth","maxMonth","minYear","maxYear","isDisabled","isYearDisabled"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/hooks/useCalendar.ts"],"sourcesContent":["import * as React from 'react';\nimport { isSameDate } from '@vkontakte/vkjs';\nimport type { CalendarProps } from '../components/Calendar/Calendar';\nimport { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR, isDayMinMaxRestricted } from '../lib/calendar';\nimport { addMonths, endOfDay, startOfDay, subMonths } from '../lib/date';\n\nexport interface UseCalendarDependencies\n extends Pick<\n CalendarProps,\n | 'onHeaderChange'\n | 'onNextMonth'\n | 'onPrevMonth'\n | 'minDateTime'\n | 'maxDateTime'\n | 'shouldDisableDate'\n | 'disableFuture'\n | 'disablePast'\n > {\n value?: Array<Date | null> | Date | null | undefined;\n}\n\nexport function useCalendar({\n value,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n minDateTime,\n maxDateTime,\n}: UseCalendarDependencies): {\n viewDate: Date;\n setViewDate: (value: Date) => void;\n setPrevMonth: () => void;\n setNextMonth: () => void;\n focusedDay: Date | undefined;\n setFocusedDay: React.Dispatch<React.SetStateAction<Date | undefined>>;\n isDayFocused: (day: Date) => boolean;\n isDayDisabled: (day: Date, withTime?: boolean) => boolean;\n isMonthDisabled: (month: number, year?: number) => boolean;\n isYearDisabled: (year: number) => boolean;\n} {\n const [viewDate, setViewDate] = React.useState(\n (Array.isArray(value) ? value[0] : value) ?? new Date(),\n );\n // соответствует дню, на котором сейчас есть фокус\n // меняется при переключении дней с помощью стрелок\n const [focusedDay, setFocusedDay] = React.useState<Date>();\n\n const setPrevMonth = React.useCallback(() => {\n onPrevMonth?.();\n setViewDate(subMonths(viewDate, 1));\n }, [viewDate, onPrevMonth]);\n const setNextMonth = React.useCallback(() => {\n onNextMonth?.();\n setViewDate(addMonths(viewDate, 1));\n }, [viewDate, onNextMonth]);\n\n const handleSetViewDate = React.useCallback(\n (value: Date) => {\n onHeaderChange?.(value);\n setViewDate(value);\n },\n [onHeaderChange],\n );\n\n const isDayFocused = React.useCallback(\n (day: Date) => Boolean(focusedDay && isSameDate(day, focusedDay)),\n [focusedDay],\n );\n\n const isDayDisabled = React.useCallback(\n (day: Date, withTime?: boolean): boolean => {\n const now = new Date();\n if (shouldDisableDate) {\n return shouldDisableDate(day);\n }\n if (disableFuture) {\n return startOfDay(day) > now;\n }\n if (disablePast) {\n return endOfDay(day) < now;\n }\n if (minDateTime || maxDateTime) {\n return isDayMinMaxRestricted(day, { min: minDateTime, max: maxDateTime, withTime });\n }\n\n return false;\n },\n [disableFuture, disablePast, shouldDisableDate, minDateTime, maxDateTime],\n );\n\n const isMonthDisabled = React.useCallback(\n (month: number, year?: number): boolean => {\n const now = new Date();\n year = year || viewDate.getFullYear();\n const minMonth = minDateTime ? minDateTime.getMonth() : 0;\n const maxMonth = maxDateTime ? maxDateTime.getMonth() : 11;\n const minYear = minDateTime?.getFullYear() || DEFAULT_MIN_YEAR;\n const maxYear = maxDateTime?.getFullYear() || DEFAULT_MAX_YEAR;\n\n let isDisabled =\n year >= minYear && year <= maxYear\n ? (year === minYear && minMonth > month) || (year === maxYear && month > maxMonth)\n : true;\n\n if (disableFuture) {\n isDisabled =\n isDisabled ||\n (year === now.getFullYear() ? month > now.getMonth() : year > now.getFullYear());\n }\n if (disablePast) {\n isDisabled =\n isDisabled ||\n (year === now.getFullYear() ? month < now.getMonth() : year < now.getFullYear());\n }\n\n return isDisabled;\n },\n [disableFuture, disablePast, viewDate, minDateTime, maxDateTime],\n );\n\n const isYearDisabled = React.useCallback(\n (year: number): boolean => {\n const now = new Date();\n const minYear = minDateTime?.getFullYear() || DEFAULT_MIN_YEAR;\n const maxYear = maxDateTime?.getFullYear() || DEFAULT_MAX_YEAR;\n\n let isDisabled = minYear > year || year > maxYear;\n if (disableFuture) {\n isDisabled = isDisabled || year > now.getFullYear();\n }\n if (disablePast) {\n isDisabled = isDisabled || year < now.getFullYear();\n }\n\n return isDisabled;\n },\n [disableFuture, disablePast, minDateTime, maxDateTime],\n );\n\n return {\n viewDate,\n setViewDate: handleSetViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n isMonthDisabled,\n isYearDisabled,\n };\n}\n"],"names":["React","isSameDate","DEFAULT_MAX_YEAR","DEFAULT_MIN_YEAR","isDayMinMaxRestricted","addMonths","endOfDay","startOfDay","subMonths","useCalendar","value","disablePast","disableFuture","shouldDisableDate","onHeaderChange","onNextMonth","onPrevMonth","minDateTime","maxDateTime","viewDate","setViewDate","useState","Array","isArray","Date","focusedDay","setFocusedDay","setPrevMonth","useCallback","setNextMonth","handleSetViewDate","isDayFocused","day","Boolean","isDayDisabled","withTime","now","min","max","isMonthDisabled","month","year","getFullYear","minMonth","getMonth","maxMonth","minYear","maxYear","isDisabled","isYearDisabled"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useDateInput.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport * as React from 'react';\nimport { useDOM } from '../lib/dom';\nimport { useBooleanState } from './useBooleanState';\n\nexport interface UseDateInputDependencies<T, D> {\n maxElement: number;\n refs: Array<React.RefObject<T | null>>;\n autoFocus?: boolean;\n disabled?: boolean;\n value?: D | null;\n elementsConfig: (index: number) => {\n length: number;\n min: number;\n max: number;\n };\n onInternalValueChange: (value: string[]) => void;\n getInternalValue: (value?: D | null | undefined) => string[];\n onClear: () => void;\n onCalendarOpenChanged?: (opened: boolean) => void;\n accessible?: boolean;\n}\n\nexport function useDateInput<T extends HTMLElement, D>({\n maxElement,\n refs,\n autoFocus,\n disabled,\n elementsConfig,\n onClear,\n onInternalValueChange,\n getInternalValue,\n value,\n onCalendarOpenChanged,\n accessible,\n}: UseDateInputDependencies<T, D>): {\n rootRef: React.RefObject<HTMLDivElement | null>;\n calendarRef: React.RefObject<HTMLDivElement | null>;\n open: boolean;\n openCalendar: () => void;\n closeCalendar: () => void;\n toggleCalendar: () => void;\n internalValue: string[];\n focusedElement: number | null;\n setFocusedElement: React.Dispatch<React.SetStateAction<number | null>>;\n handleKeyDown: (e: React.KeyboardEvent<HTMLSpanElement>) => void;\n clear: () => void;\n handleFieldEnter: () => void;\n removeFocusFromField: () => void;\n handleRestoreFocus: () => boolean;\n} {\n const { document } = useDOM();\n const [open, openCalendar, closeCalendar] = useBooleanState(false);\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const calendarRef = React.useRef<HTMLDivElement | null>(null);\n const [internalValue, setInternalValue] = React.useState<string[]>([]);\n const [focusedElement, setFocusedElement] = React.useState<number | null>(null);\n const isClickedOutsideRef = React.useRef(false);\n const { window } = useDOM();\n\n const handleRestoreFocus = React.useCallback(() => {\n // если календарь был закрыт кликом вне календаря\n // то FocusTrap возвращать фокус не должен\n return !isClickedOutsideRef.current;\n }, []);\n\n const _onCalendarClose = useCallback(() => {\n if (open) {\n closeCalendar();\n onCalendarOpenChanged?.(false);\n }\n }, [closeCalendar, onCalendarOpenChanged, open]);\n\n const _onCalendarOpen = useCallback(() => {\n if (!open) {\n openCalendar();\n onCalendarOpenChanged?.(true);\n if (accessible) {\n setFocusedElement(null);\n }\n isClickedOutsideRef.current = false;\n }\n }, [onCalendarOpenChanged, open, openCalendar, accessible]);\n\n const resetFocusedElement = React.useCallback(() => {\n if (focusedElement !== null) {\n setFocusedElement(null);\n window!.getSelection()?.removeAllRanges();\n setInternalValue(getInternalValue(value));\n }\n }, [focusedElement, getInternalValue, value, window]);\n\n const removeFocusFromField = React.useCallback(() => {\n resetFocusedElement();\n _onCalendarClose();\n }, [resetFocusedElement, _onCalendarClose]);\n\n const toggleCalendar = useCallback(() => {\n resetFocusedElement();\n if (open) {\n _onCalendarClose();\n } else {\n _onCalendarOpen();\n }\n }, [resetFocusedElement, open, _onCalendarClose, _onCalendarOpen]);\n\n const handleClickOutside = React.useCallback(\n (e: MouseEvent) => {\n if (\n !rootRef.current?.contains(e.target as Node | null) &&\n !calendarRef.current?.contains(e.target as Node | null)\n ) {\n isClickedOutsideRef.current = true;\n removeFocusFromField();\n }\n },\n [removeFocusFromField],\n );\n\n const selectFirst = React.useCallback(() => {\n if (focusedElement !== null) {\n return;\n }\n\n setFocusedElement(0);\n }, [focusedElement]);\n\n React.useEffect(() => {\n document!.addEventListener('click', handleClickOutside, {\n capture: true,\n });\n\n return () =>\n document!.removeEventListener('click', handleClickOutside, {\n capture: true,\n });\n }, [document, handleClickOutside]);\n\n React.useEffect(() => {\n setInternalValue(getInternalValue(value));\n }, [getInternalValue, value]);\n\n React.useEffect(() => {\n if (autoFocus) {\n selectFirst();\n }\n }, [autoFocus, selectFirst]);\n\n React.useEffect(() => {\n if (disabled || focusedElement === null) {\n return;\n }\n\n const range = window!.document.createRange();\n\n let element = refs[focusedElement].current;\n\n let timerId: ReturnType<typeof setTimeout>;\n if (element) {\n element.focus();\n if (!accessible) {\n _onCalendarOpen();\n }\n range.selectNodeContents(element as Node);\n\n // Fix для Firefox: setTimeout нужен чтобы отложить range selection на\n // какое-то время, иначе, при фокусе на InputLike\n // извне, контент визуально не будет выбран\n timerId = setTimeout(() => {\n const selection = window!.getSelection();\n selection?.removeAllRanges();\n selection?.addRange(range);\n }, 0);\n }\n\n return () => {\n clearTimeout(timerId);\n };\n }, [disabled, focusedElement, refs, window, _onCalendarOpen, accessible]);\n\n const clear = React.useCallback(() => {\n onClear?.();\n selectFirst();\n }, [onClear, selectFirst]);\n\n const handleFieldEnter = React.useCallback(() => {\n selectFirst();\n }, [selectFirst]);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLSpanElement>) => {\n if (focusedElement === null) {\n return;\n }\n\n const _value = [...internalValue];\n const config = elementsConfig(focusedElement);\n\n if (/^\\d+$/.test(e.key)) {\n if (_value[focusedElement].length >= config.length) {\n _value[focusedElement] = e.key;\n } else {\n _value[focusedElement] += e.key;\n if (_value[focusedElement].length >= config.length && focusedElement < maxElement) {\n setFocusedElement(focusedElement + 1);\n }\n }\n } else if (e.key === 'Backspace') {\n if (!_value[focusedElement]) {\n setFocusedElement(focusedElement <= 0 ? maxElement : focusedElement - 1);\n } else {\n _value[focusedElement] = _value[focusedElement].slice(0, -1);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n let currentValue = Number(_value[focusedElement]);\n _value[focusedElement] = String(\n currentValue <= config.min ? config.max : currentValue - 1,\n ).padStart(config.length, '0');\n } else if (e.key === 'ArrowUp' || e.key === 'Up') {\n let currentValue = Number(_value[focusedElement]);\n _value[focusedElement] = String(\n currentValue >= config.max ? config.min : currentValue + 1,\n ).padStart(config.length, '0');\n } else if (e.key === 'ArrowLeft' || e.key === 'Left' || (e.key === 'Tab' && e.shiftKey)) {\n if (focusedElement <= 0) {\n if (e.key === 'Tab') {\n removeFocusFromField();\n }\n return;\n }\n setFocusedElement(focusedElement - 1);\n } else if (e.key === 'ArrowRight' || e.key === 'Right' || e.key === 'Tab') {\n if (focusedElement >= maxElement) {\n if (e.key === 'Tab') {\n removeFocusFromField();\n }\n return;\n }\n\n setFocusedElement(focusedElement + 1);\n } else if (e.key === 'Delete' || e.key === 'Del') {\n _value[focusedElement] = '';\n } else if (e.key === ' ') {\n e.preventDefault();\n _onCalendarOpen();\n return;\n } else {\n return;\n }\n\n e.preventDefault();\n setInternalValue(_value);\n onInternalValueChange(_value);\n },\n [\n _onCalendarOpen,\n removeFocusFromField,\n elementsConfig,\n focusedElement,\n internalValue,\n maxElement,\n onInternalValueChange,\n ],\n );\n\n return {\n rootRef,\n calendarRef,\n open,\n openCalendar: _onCalendarOpen,\n closeCalendar: _onCalendarClose,\n toggleCalendar,\n internalValue,\n focusedElement,\n setFocusedElement,\n handleKeyDown,\n clear,\n handleFieldEnter,\n removeFocusFromField,\n handleRestoreFocus,\n };\n}\n"],"names":["useCallback","React","useDOM","useBooleanState","useDateInput","maxElement","refs","autoFocus","disabled","elementsConfig","onClear","onInternalValueChange","getInternalValue","value","onCalendarOpenChanged","accessible","document","open","openCalendar","closeCalendar","rootRef","useRef","calendarRef","internalValue","setInternalValue","useState","focusedElement","setFocusedElement","isClickedOutsideRef","window","handleRestoreFocus","current","_onCalendarClose","_onCalendarOpen","resetFocusedElement","getSelection","removeAllRanges","removeFocusFromField","toggleCalendar","handleClickOutside","e","contains","target","selectFirst","useEffect","addEventListener","capture","removeEventListener","range","createRange","element","timerId","focus","selectNodeContents","setTimeout","selection","addRange","clearTimeout","clear","handleFieldEnter","handleKeyDown","_value","config","test","key","length","slice","currentValue","Number","String","min","max","padStart","shiftKey","preventDefault"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/hooks/useDateInput.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport * as React from 'react';\nimport { useDOM } from '../lib/dom';\nimport { useBooleanState } from './useBooleanState';\n\nexport interface UseDateInputDependencies<T, D> {\n maxElement: number;\n refs: Array<React.RefObject<T | null>>;\n autoFocus?: boolean | undefined;\n disabled?: boolean | undefined;\n value?: D | null | undefined;\n elementsConfig: (index: number) => {\n length: number;\n min: number;\n max: number;\n };\n onInternalValueChange: (value: string[]) => void;\n getInternalValue: (value?: D | null | undefined) => string[];\n onClear: () => void;\n onCalendarOpenChanged?: ((opened: boolean) => void) | undefined;\n accessible?: boolean | undefined;\n}\n\nexport function useDateInput<T extends HTMLElement, D>({\n maxElement,\n refs,\n autoFocus,\n disabled,\n elementsConfig,\n onClear,\n onInternalValueChange,\n getInternalValue,\n value,\n onCalendarOpenChanged,\n accessible,\n}: UseDateInputDependencies<T, D>): {\n rootRef: React.RefObject<HTMLDivElement | null>;\n calendarRef: React.RefObject<HTMLDivElement | null>;\n open: boolean;\n openCalendar: () => void;\n closeCalendar: () => void;\n toggleCalendar: () => void;\n internalValue: string[];\n focusedElement: number | null;\n setFocusedElement: React.Dispatch<React.SetStateAction<number | null>>;\n handleKeyDown: (e: React.KeyboardEvent<HTMLSpanElement>) => void;\n clear: () => void;\n handleFieldEnter: () => void;\n removeFocusFromField: () => void;\n handleRestoreFocus: () => boolean;\n} {\n const { document } = useDOM();\n const [open, openCalendar, closeCalendar] = useBooleanState(false);\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const calendarRef = React.useRef<HTMLDivElement | null>(null);\n const [internalValue, setInternalValue] = React.useState<string[]>([]);\n const [focusedElement, setFocusedElement] = React.useState<number | null>(null);\n const isClickedOutsideRef = React.useRef(false);\n const { window } = useDOM();\n\n const handleRestoreFocus = React.useCallback(() => {\n // если календарь был закрыт кликом вне календаря\n // то FocusTrap возвращать фокус не должен\n return !isClickedOutsideRef.current;\n }, []);\n\n const _onCalendarClose = useCallback(() => {\n if (open) {\n closeCalendar();\n onCalendarOpenChanged?.(false);\n }\n }, [closeCalendar, onCalendarOpenChanged, open]);\n\n const _onCalendarOpen = useCallback(() => {\n if (!open) {\n openCalendar();\n onCalendarOpenChanged?.(true);\n if (accessible) {\n setFocusedElement(null);\n }\n isClickedOutsideRef.current = false;\n }\n }, [onCalendarOpenChanged, open, openCalendar, accessible]);\n\n const resetFocusedElement = React.useCallback(() => {\n if (focusedElement !== null) {\n setFocusedElement(null);\n window!.getSelection()?.removeAllRanges();\n setInternalValue(getInternalValue(value));\n }\n }, [focusedElement, getInternalValue, value, window]);\n\n const removeFocusFromField = React.useCallback(() => {\n resetFocusedElement();\n _onCalendarClose();\n }, [resetFocusedElement, _onCalendarClose]);\n\n const toggleCalendar = useCallback(() => {\n resetFocusedElement();\n if (open) {\n _onCalendarClose();\n } else {\n _onCalendarOpen();\n }\n }, [resetFocusedElement, open, _onCalendarClose, _onCalendarOpen]);\n\n const handleClickOutside = React.useCallback(\n (e: MouseEvent) => {\n if (\n !rootRef.current?.contains(e.target as Node | null) &&\n !calendarRef.current?.contains(e.target as Node | null)\n ) {\n isClickedOutsideRef.current = true;\n removeFocusFromField();\n }\n },\n [removeFocusFromField],\n );\n\n const selectFirst = React.useCallback(() => {\n if (focusedElement !== null) {\n return;\n }\n\n setFocusedElement(0);\n }, [focusedElement]);\n\n React.useEffect(() => {\n document!.addEventListener('click', handleClickOutside, {\n capture: true,\n });\n\n return () =>\n document!.removeEventListener('click', handleClickOutside, {\n capture: true,\n });\n }, [document, handleClickOutside]);\n\n React.useEffect(() => {\n setInternalValue(getInternalValue(value));\n }, [getInternalValue, value]);\n\n React.useEffect(() => {\n if (autoFocus) {\n selectFirst();\n }\n }, [autoFocus, selectFirst]);\n\n React.useEffect(() => {\n if (disabled || focusedElement === null) {\n return;\n }\n\n const range = window!.document.createRange();\n\n let element = refs[focusedElement].current;\n\n let timerId: ReturnType<typeof setTimeout>;\n if (element) {\n element.focus();\n if (!accessible) {\n _onCalendarOpen();\n }\n range.selectNodeContents(element as Node);\n\n // Fix для Firefox: setTimeout нужен чтобы отложить range selection на\n // какое-то время, иначе, при фокусе на InputLike\n // извне, контент визуально не будет выбран\n timerId = setTimeout(() => {\n const selection = window!.getSelection();\n selection?.removeAllRanges();\n selection?.addRange(range);\n }, 0);\n }\n\n return () => {\n clearTimeout(timerId);\n };\n }, [disabled, focusedElement, refs, window, _onCalendarOpen, accessible]);\n\n const clear = React.useCallback(() => {\n onClear?.();\n selectFirst();\n }, [onClear, selectFirst]);\n\n const handleFieldEnter = React.useCallback(() => {\n selectFirst();\n }, [selectFirst]);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLSpanElement>) => {\n if (focusedElement === null) {\n return;\n }\n\n const _value = [...internalValue];\n const config = elementsConfig(focusedElement);\n\n if (/^\\d+$/.test(e.key)) {\n if (_value[focusedElement].length >= config.length) {\n _value[focusedElement] = e.key;\n } else {\n _value[focusedElement] += e.key;\n if (_value[focusedElement].length >= config.length && focusedElement < maxElement) {\n setFocusedElement(focusedElement + 1);\n }\n }\n } else if (e.key === 'Backspace') {\n if (!_value[focusedElement]) {\n setFocusedElement(focusedElement <= 0 ? maxElement : focusedElement - 1);\n } else {\n _value[focusedElement] = _value[focusedElement].slice(0, -1);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n let currentValue = Number(_value[focusedElement]);\n _value[focusedElement] = String(\n currentValue <= config.min ? config.max : currentValue - 1,\n ).padStart(config.length, '0');\n } else if (e.key === 'ArrowUp' || e.key === 'Up') {\n let currentValue = Number(_value[focusedElement]);\n _value[focusedElement] = String(\n currentValue >= config.max ? config.min : currentValue + 1,\n ).padStart(config.length, '0');\n } else if (e.key === 'ArrowLeft' || e.key === 'Left' || (e.key === 'Tab' && e.shiftKey)) {\n if (focusedElement <= 0) {\n if (e.key === 'Tab') {\n removeFocusFromField();\n }\n return;\n }\n setFocusedElement(focusedElement - 1);\n } else if (e.key === 'ArrowRight' || e.key === 'Right' || e.key === 'Tab') {\n if (focusedElement >= maxElement) {\n if (e.key === 'Tab') {\n removeFocusFromField();\n }\n return;\n }\n\n setFocusedElement(focusedElement + 1);\n } else if (e.key === 'Delete' || e.key === 'Del') {\n _value[focusedElement] = '';\n } else if (e.key === ' ') {\n e.preventDefault();\n _onCalendarOpen();\n return;\n } else {\n return;\n }\n\n e.preventDefault();\n setInternalValue(_value);\n onInternalValueChange(_value);\n },\n [\n _onCalendarOpen,\n removeFocusFromField,\n elementsConfig,\n focusedElement,\n internalValue,\n maxElement,\n onInternalValueChange,\n ],\n );\n\n return {\n rootRef,\n calendarRef,\n open,\n openCalendar: _onCalendarOpen,\n closeCalendar: _onCalendarClose,\n toggleCalendar,\n internalValue,\n focusedElement,\n setFocusedElement,\n handleKeyDown,\n clear,\n handleFieldEnter,\n removeFocusFromField,\n handleRestoreFocus,\n };\n}\n"],"names":["useCallback","React","useDOM","useBooleanState","useDateInput","maxElement","refs","autoFocus","disabled","elementsConfig","onClear","onInternalValueChange","getInternalValue","value","onCalendarOpenChanged","accessible","document","open","openCalendar","closeCalendar","rootRef","useRef","calendarRef","internalValue","setInternalValue","useState","focusedElement","setFocusedElement","isClickedOutsideRef","window","handleRestoreFocus","current","_onCalendarClose","_onCalendarOpen","resetFocusedElement","getSelection","removeAllRanges","removeFocusFromField","toggleCalendar","handleClickOutside","e","contains","target","selectFirst","useEffect","addEventListener","capture","removeEventListener","range","createRange","element","timerId","focus","selectNodeContents","setTimeout","selection","addRange","clearTimeout","clear","handleFieldEnter","handleKeyDown","_value","config","test","key","length","slice","currentValue","Number","String","min","max","padStart","shiftKey","preventDefault"],"mappings":"AAAA,SAASA,WAAW,QAAQ,QAAQ;AACpC,YAAYC,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAAQ,gBAAa;AACpC,SAASC,eAAe,QAAQ,uBAAoB;AAoBpD,OAAO,SAASC,aAAuC,EACrDC,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,QAAQ,EACRC,cAAc,EACdC,OAAO,EACPC,qBAAqB,EACrBC,gBAAgB,EAChBC,KAAK,EACLC,qBAAqB,EACrBC,UAAU,EACqB;IAgB/B,MAAM,EAAEC,QAAQ,EAAE,GAAGd;IACrB,MAAM,CAACe,MAAMC,cAAcC,cAAc,GAAGhB,gBAAgB;IAC5D,MAAMiB,UAAUnB,MAAMoB,MAAM,CAAwB;IACpD,MAAMC,cAAcrB,MAAMoB,MAAM,CAAwB;IACxD,MAAM,CAACE,eAAeC,iBAAiB,GAAGvB,MAAMwB,QAAQ,CAAW,EAAE;IACrE,MAAM,CAACC,gBAAgBC,kBAAkB,GAAG1B,MAAMwB,QAAQ,CAAgB;IAC1E,MAAMG,sBAAsB3B,MAAMoB,MAAM,CAAC;IACzC,MAAM,EAAEQ,MAAM,EAAE,GAAG3B;IAEnB,MAAM4B,qBAAqB7B,MAAMD,WAAW,CAAC;QAC3C,iDAAiD;QACjD,0CAA0C;QAC1C,OAAO,CAAC4B,oBAAoBG,OAAO;IACrC,GAAG,EAAE;IAEL,MAAMC,mBAAmBhC,YAAY;QACnC,IAAIiB,MAAM;YACRE;YACAL,wBAAwB;QAC1B;IACF,GAAG;QAACK;QAAeL;QAAuBG;KAAK;IAE/C,MAAMgB,kBAAkBjC,YAAY;QAClC,IAAI,CAACiB,MAAM;YACTC;YACAJ,wBAAwB;YACxB,IAAIC,YAAY;gBACdY,kBAAkB;YACpB;YACAC,oBAAoBG,OAAO,GAAG;QAChC;IACF,GAAG;QAACjB;QAAuBG;QAAMC;QAAcH;KAAW;IAE1D,MAAMmB,sBAAsBjC,MAAMD,WAAW,CAAC;QAC5C,IAAI0B,mBAAmB,MAAM;YAC3BC,kBAAkB;YAClBE,OAAQM,YAAY,IAAIC;YACxBZ,iBAAiBZ,iBAAiBC;QACpC;IACF,GAAG;QAACa;QAAgBd;QAAkBC;QAAOgB;KAAO;IAEpD,MAAMQ,uBAAuBpC,MAAMD,WAAW,CAAC;QAC7CkC;QACAF;IACF,GAAG;QAACE;QAAqBF;KAAiB;IAE1C,MAAMM,iBAAiBtC,YAAY;QACjCkC;QACA,IAAIjB,MAAM;YACRe;QACF,OAAO;YACLC;QACF;IACF,GAAG;QAACC;QAAqBjB;QAAMe;QAAkBC;KAAgB;IAEjE,MAAMM,qBAAqBtC,MAAMD,WAAW,CAC1C,CAACwC;QACC,IACE,CAACpB,QAAQW,OAAO,EAAEU,SAASD,EAAEE,MAAM,KACnC,CAACpB,YAAYS,OAAO,EAAEU,SAASD,EAAEE,MAAM,GACvC;YACAd,oBAAoBG,OAAO,GAAG;YAC9BM;QACF;IACF,GACA;QAACA;KAAqB;IAGxB,MAAMM,cAAc1C,MAAMD,WAAW,CAAC;QACpC,IAAI0B,mBAAmB,MAAM;YAC3B;QACF;QAEAC,kBAAkB;IACpB,GAAG;QAACD;KAAe;IAEnBzB,MAAM2C,SAAS,CAAC;QACd5B,SAAU6B,gBAAgB,CAAC,SAASN,oBAAoB;YACtDO,SAAS;QACX;QAEA,OAAO,IACL9B,SAAU+B,mBAAmB,CAAC,SAASR,oBAAoB;gBACzDO,SAAS;YACX;IACJ,GAAG;QAAC9B;QAAUuB;KAAmB;IAEjCtC,MAAM2C,SAAS,CAAC;QACdpB,iBAAiBZ,iBAAiBC;IACpC,GAAG;QAACD;QAAkBC;KAAM;IAE5BZ,MAAM2C,SAAS,CAAC;QACd,IAAIrC,WAAW;YACboC;QACF;IACF,GAAG;QAACpC;QAAWoC;KAAY;IAE3B1C,MAAM2C,SAAS,CAAC;QACd,IAAIpC,YAAYkB,mBAAmB,MAAM;YACvC;QACF;QAEA,MAAMsB,QAAQnB,OAAQb,QAAQ,CAACiC,WAAW;QAE1C,IAAIC,UAAU5C,IAAI,CAACoB,eAAe,CAACK,OAAO;QAE1C,IAAIoB;QACJ,IAAID,SAAS;YACXA,QAAQE,KAAK;YACb,IAAI,CAACrC,YAAY;gBACfkB;YACF;YACAe,MAAMK,kBAAkB,CAACH;YAEzB,sEAAsE;YACtE,iDAAiD;YACjD,2CAA2C;YAC3CC,UAAUG,WAAW;gBACnB,MAAMC,YAAY1B,OAAQM,YAAY;gBACtCoB,WAAWnB;gBACXmB,WAAWC,SAASR;YACtB,GAAG;QACL;QAEA,OAAO;YACLS,aAAaN;QACf;IACF,GAAG;QAAC3C;QAAUkB;QAAgBpB;QAAMuB;QAAQI;QAAiBlB;KAAW;IAExE,MAAM2C,QAAQzD,MAAMD,WAAW,CAAC;QAC9BU;QACAiC;IACF,GAAG;QAACjC;QAASiC;KAAY;IAEzB,MAAMgB,mBAAmB1D,MAAMD,WAAW,CAAC;QACzC2C;IACF,GAAG;QAACA;KAAY;IAEhB,MAAMiB,gBAAgB3D,MAAMD,WAAW,CACrC,CAACwC;QACC,IAAId,mBAAmB,MAAM;YAC3B;QACF;QAEA,MAAMmC,SAAS;eAAItC;SAAc;QACjC,MAAMuC,SAASrD,eAAeiB;QAE9B,IAAI,QAAQqC,IAAI,CAACvB,EAAEwB,GAAG,GAAG;YACvB,IAAIH,MAAM,CAACnC,eAAe,CAACuC,MAAM,IAAIH,OAAOG,MAAM,EAAE;gBAClDJ,MAAM,CAACnC,eAAe,GAAGc,EAAEwB,GAAG;YAChC,OAAO;gBACLH,MAAM,CAACnC,eAAe,IAAIc,EAAEwB,GAAG;gBAC/B,IAAIH,MAAM,CAACnC,eAAe,CAACuC,MAAM,IAAIH,OAAOG,MAAM,IAAIvC,iBAAiBrB,YAAY;oBACjFsB,kBAAkBD,iBAAiB;gBACrC;YACF;QACF,OAAO,IAAIc,EAAEwB,GAAG,KAAK,aAAa;YAChC,IAAI,CAACH,MAAM,CAACnC,eAAe,EAAE;gBAC3BC,kBAAkBD,kBAAkB,IAAIrB,aAAaqB,iBAAiB;YACxE,OAAO;gBACLmC,MAAM,CAACnC,eAAe,GAAGmC,MAAM,CAACnC,eAAe,CAACwC,KAAK,CAAC,GAAG,CAAC;YAC5D;QACF,OAAO,IAAI1B,EAAEwB,GAAG,KAAK,eAAexB,EAAEwB,GAAG,KAAK,QAAQ;YACpD,IAAIG,eAAeC,OAAOP,MAAM,CAACnC,eAAe;YAChDmC,MAAM,CAACnC,eAAe,GAAG2C,OACvBF,gBAAgBL,OAAOQ,GAAG,GAAGR,OAAOS,GAAG,GAAGJ,eAAe,GACzDK,QAAQ,CAACV,OAAOG,MAAM,EAAE;QAC5B,OAAO,IAAIzB,EAAEwB,GAAG,KAAK,aAAaxB,EAAEwB,GAAG,KAAK,MAAM;YAChD,IAAIG,eAAeC,OAAOP,MAAM,CAACnC,eAAe;YAChDmC,MAAM,CAACnC,eAAe,GAAG2C,OACvBF,gBAAgBL,OAAOS,GAAG,GAAGT,OAAOQ,GAAG,GAAGH,eAAe,GACzDK,QAAQ,CAACV,OAAOG,MAAM,EAAE;QAC5B,OAAO,IAAIzB,EAAEwB,GAAG,KAAK,eAAexB,EAAEwB,GAAG,KAAK,UAAWxB,EAAEwB,GAAG,KAAK,SAASxB,EAAEiC,QAAQ,EAAG;YACvF,IAAI/C,kBAAkB,GAAG;gBACvB,IAAIc,EAAEwB,GAAG,KAAK,OAAO;oBACnB3B;gBACF;gBACA;YACF;YACAV,kBAAkBD,iBAAiB;QACrC,OAAO,IAAIc,EAAEwB,GAAG,KAAK,gBAAgBxB,EAAEwB,GAAG,KAAK,WAAWxB,EAAEwB,GAAG,KAAK,OAAO;YACzE,IAAItC,kBAAkBrB,YAAY;gBAChC,IAAImC,EAAEwB,GAAG,KAAK,OAAO;oBACnB3B;gBACF;gBACA;YACF;YAEAV,kBAAkBD,iBAAiB;QACrC,OAAO,IAAIc,EAAEwB,GAAG,KAAK,YAAYxB,EAAEwB,GAAG,KAAK,OAAO;YAChDH,MAAM,CAACnC,eAAe,GAAG;QAC3B,OAAO,IAAIc,EAAEwB,GAAG,KAAK,KAAK;YACxBxB,EAAEkC,cAAc;YAChBzC;YACA;QACF,OAAO;YACL;QACF;QAEAO,EAAEkC,cAAc;QAChBlD,iBAAiBqC;QACjBlD,sBAAsBkD;IACxB,GACA;QACE5B;QACAI;QACA5B;QACAiB;QACAH;QACAlB;QACAM;KACD;IAGH,OAAO;QACLS;QACAE;QACAL;QACAC,cAAce;QACdd,eAAea;QACfM;QACAf;QACAG;QACAC;QACAiC;QACAF;QACAC;QACAtB;QACAP;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/hooks/useDraggableWithDomApi/types.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { CustomTouchEvent } from '../../components/Touch/Touch';\n\nexport type Direction = 'up' | 'down';\n\nexport type DraggingItem = {\n index: number;\n el: HTMLElement;\n draggingElRect: DOMRect;\n};\n\nexport type PlaceholderItem = {\n index: number;\n el: HTMLElement;\n draggingElRect: DOMRect;\n};\n\nexport type SiblingItem = {\n index: number;\n el: HTMLElement;\n shifted: boolean;\n draggingElRect: DOMRect;\n};\n\nexport type SwappedItemRange = { from: number; to: number };\n\nexport interface UseDraggableProps<T extends HTMLElement = HTMLElement> {\n elRef: React.RefObject<T | null>;\n onDragFinish?: (value: SwappedItemRange) => void;\n}\n\nexport interface DraggableProps {\n onDragStart: (this: void, event: CustomTouchEvent) => void;\n onDragEnd: (this: void, event: CustomTouchEvent) => void;\n onDragMove: (this: void, event: CustomTouchEvent) => void;\n}\n\nexport interface UseDraggable extends DraggableProps {\n dragging: boolean;\n}\n"],"names":[],"mappings":"AAqCA,WAEC"}
1
+ {"version":3,"sources":["../../../../src/hooks/useDraggableWithDomApi/types.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { CustomTouchEvent } from '../../components/Touch/Touch';\n\nexport type Direction = 'up' | 'down';\n\nexport type DraggingItem = {\n index: number;\n el: HTMLElement;\n draggingElRect: DOMRect;\n};\n\nexport type PlaceholderItem = {\n index: number;\n el: HTMLElement;\n draggingElRect: DOMRect;\n};\n\nexport type SiblingItem = {\n index: number;\n el: HTMLElement;\n shifted: boolean;\n draggingElRect: DOMRect;\n};\n\nexport type SwappedItemRange = { from: number; to: number };\n\nexport interface UseDraggableProps<T extends HTMLElement = HTMLElement> {\n elRef: React.RefObject<T | null>;\n onDragFinish?: ((value: SwappedItemRange) => void) | undefined;\n}\n\nexport interface DraggableProps {\n onDragStart: (this: void, event: CustomTouchEvent) => void;\n onDragEnd: (this: void, event: CustomTouchEvent) => void;\n onDragMove: (this: void, event: CustomTouchEvent) => void;\n}\n\nexport interface UseDraggable extends DraggableProps {\n dragging: boolean;\n}\n"],"names":[],"mappings":"AAqCA,WAEC"}