@vkontakte/vkui 8.0.2 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1384) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +8 -6
  2. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  3. package/dist/components/Accordion/Accordion.js +3 -0
  4. package/dist/components/Accordion/Accordion.js.map +1 -1
  5. package/dist/components/Accordion/AccordionIcon.d.ts +14 -0
  6. package/dist/components/Accordion/AccordionIcon.d.ts.map +1 -0
  7. package/dist/components/Accordion/AccordionIcon.js +16 -0
  8. package/dist/components/Accordion/AccordionIcon.js.map +1 -0
  9. package/dist/components/Accordion/AccordionSummary.d.ts +3 -3
  10. package/dist/components/Accordion/AccordionSummary.d.ts.map +1 -1
  11. package/dist/components/Accordion/AccordionSummary.js +4 -6
  12. package/dist/components/Accordion/AccordionSummary.js.map +1 -1
  13. package/dist/components/ActionSheet/ActionSheet.d.ts +9 -9
  14. package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  15. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  16. package/dist/components/ActionSheet/ActionSheetContext.d.ts +3 -3
  17. package/dist/components/ActionSheet/ActionSheetContext.d.ts.map +1 -1
  18. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  19. package/dist/components/ActionSheet/types.d.ts +8 -8
  20. package/dist/components/ActionSheet/types.d.ts.map +1 -1
  21. package/dist/components/ActionSheet/types.js.map +1 -1
  22. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +15 -15
  23. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
  24. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  25. package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.d.ts +1 -1
  26. package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.d.ts.map +1 -1
  27. package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.js.map +1 -1
  28. package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts +7 -7
  29. package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts.map +1 -1
  30. package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  31. package/dist/components/Alert/Alert.d.ts +18 -18
  32. package/dist/components/Alert/Alert.d.ts.map +1 -1
  33. package/dist/components/Alert/Alert.js.map +1 -1
  34. package/dist/components/Alert/AlertBase.d.ts +2 -2
  35. package/dist/components/Alert/AlertBase.d.ts.map +1 -1
  36. package/dist/components/Alert/AlertBase.js.map +1 -1
  37. package/dist/components/Alert/AlertTypography.d.ts +1 -1
  38. package/dist/components/Alert/AlertTypography.d.ts.map +1 -1
  39. package/dist/components/Alert/AlertTypography.js.map +1 -1
  40. package/dist/components/AppRoot/AppRoot.d.ts +9 -9
  41. package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
  42. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  43. package/dist/components/AppRoot/AppRootContext.d.ts +4 -4
  44. package/dist/components/AppRoot/AppRootContext.d.ts.map +1 -1
  45. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  46. package/dist/components/AppRoot/AppRootPortal.d.ts +2 -2
  47. package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
  48. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  49. package/dist/components/AppRoot/ScrollContext.d.ts +4 -4
  50. package/dist/components/AppRoot/ScrollContext.d.ts.map +1 -1
  51. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  52. package/dist/components/AppRoot/types.d.ts +4 -4
  53. package/dist/components/AppRoot/types.d.ts.map +1 -1
  54. package/dist/components/AppRoot/types.js.map +1 -1
  55. package/dist/components/AspectRatio/AspectRatio.d.ts +2 -2
  56. package/dist/components/AspectRatio/AspectRatio.d.ts.map +1 -1
  57. package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
  58. package/dist/components/Avatar/Avatar.d.ts +2 -2
  59. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  60. package/dist/components/Avatar/Avatar.js.map +1 -1
  61. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts +1 -1
  62. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts.map +1 -1
  63. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  64. package/dist/components/Badge/Badge.d.ts +1 -1
  65. package/dist/components/Badge/Badge.d.ts.map +1 -1
  66. package/dist/components/Badge/Badge.js.map +1 -1
  67. package/dist/components/Banner/Banner.d.ts +12 -12
  68. package/dist/components/Banner/Banner.d.ts.map +1 -1
  69. package/dist/components/Banner/Banner.js.map +1 -1
  70. package/dist/components/Box/Box.d.ts +1 -1
  71. package/dist/components/Box/Box.d.ts.map +1 -1
  72. package/dist/components/Box/Box.js.map +1 -1
  73. package/dist/components/Button/Button.d.ts +11 -11
  74. package/dist/components/Button/Button.d.ts.map +1 -1
  75. package/dist/components/Button/Button.js +1 -1
  76. package/dist/components/Button/Button.js.map +1 -1
  77. package/dist/components/ButtonGroup/ButtonGroup.d.ts +4 -4
  78. package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  79. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  80. package/dist/components/Calendar/Calendar.d.ts +17 -17
  81. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  82. package/dist/components/Calendar/Calendar.js.map +1 -1
  83. package/dist/components/CalendarDay/CalendarDay.d.ts +18 -18
  84. package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  85. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  86. package/dist/components/CalendarDays/CalendarDays.d.ts +14 -14
  87. package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  88. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  89. package/dist/components/CalendarHeader/CalendarHeader.d.ts +19 -19
  90. package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  91. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  92. package/dist/components/CalendarRange/CalendarRange.d.ts +12 -12
  93. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  94. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  95. package/dist/components/CalendarTime/CalendarTime.d.ts +14 -14
  96. package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  97. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  98. package/dist/components/CalendarTime/CalendarTimePicker.d.ts +3 -3
  99. package/dist/components/CalendarTime/CalendarTimePicker.d.ts.map +1 -1
  100. package/dist/components/CalendarTime/CalendarTimePicker.js.map +1 -1
  101. package/dist/components/Card/Card.d.ts +1 -1
  102. package/dist/components/Card/Card.d.ts.map +1 -1
  103. package/dist/components/Card/Card.js.map +1 -1
  104. package/dist/components/CardGrid/CardGrid.d.ts +2 -2
  105. package/dist/components/CardGrid/CardGrid.d.ts.map +1 -1
  106. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  107. package/dist/components/CardScroll/CardScroll.d.ts +3 -3
  108. package/dist/components/CardScroll/CardScroll.d.ts.map +1 -1
  109. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  110. package/dist/components/CarouselBase/Bullets.d.ts +1 -1
  111. package/dist/components/CarouselBase/Bullets.d.ts.map +1 -1
  112. package/dist/components/CarouselBase/Bullets.js.map +1 -1
  113. package/dist/components/CarouselBase/CarouselViewPort.d.ts +1 -1
  114. package/dist/components/CarouselBase/CarouselViewPort.d.ts.map +1 -1
  115. package/dist/components/CarouselBase/CarouselViewPort.js.map +1 -1
  116. package/dist/components/CarouselBase/ScrollArrows.d.ts +2 -2
  117. package/dist/components/CarouselBase/ScrollArrows.d.ts.map +1 -1
  118. package/dist/components/CarouselBase/ScrollArrows.js.map +1 -1
  119. package/dist/components/CarouselBase/helpers.d.ts +4 -4
  120. package/dist/components/CarouselBase/helpers.d.ts.map +1 -1
  121. package/dist/components/CarouselBase/helpers.js.map +1 -1
  122. package/dist/components/CarouselBase/types.d.ts +23 -23
  123. package/dist/components/CarouselBase/types.d.ts.map +1 -1
  124. package/dist/components/CarouselBase/types.js.map +1 -1
  125. package/dist/components/Cell/Cell.d.ts +8 -8
  126. package/dist/components/Cell/Cell.d.ts.map +1 -1
  127. package/dist/components/Cell/Cell.js.map +1 -1
  128. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +1 -1
  129. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts.map +1 -1
  130. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  131. package/dist/components/Cell/CellDragger/CellDragger.d.ts +2 -2
  132. package/dist/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
  133. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  134. package/dist/components/CellButton/CellButton.d.ts +69 -6
  135. package/dist/components/CellButton/CellButton.d.ts.map +1 -1
  136. package/dist/components/CellButton/CellButton.js +115 -6
  137. package/dist/components/CellButton/CellButton.js.map +1 -1
  138. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +2 -2
  139. package/dist/components/Checkbox/Checkbox.d.ts +6 -6
  140. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  141. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  142. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts +11 -11
  143. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  144. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -1
  145. package/dist/components/ChipsInput/ChipsInput.d.ts +1 -1
  146. package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  147. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  148. package/dist/components/ChipsInput/useChipsInput.d.ts +3 -3
  149. package/dist/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  150. package/dist/components/ChipsInput/useChipsInput.js.map +1 -1
  151. package/dist/components/ChipsInputBase/Chip/Chip.d.ts +9 -9
  152. package/dist/components/ChipsInputBase/Chip/Chip.d.ts.map +1 -1
  153. package/dist/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  154. package/dist/components/ChipsInputBase/types.d.ts +19 -19
  155. package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
  156. package/dist/components/ChipsInputBase/types.js.map +1 -1
  157. package/dist/components/ChipsSelect/ChipsSelect.d.ts +13 -13
  158. package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  159. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  160. package/dist/components/ChipsSelect/useChipsSelect.d.ts +8 -8
  161. package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  162. package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
  163. package/dist/components/Clickable/Clickable.d.ts +1 -1
  164. package/dist/components/Clickable/Clickable.d.ts.map +1 -1
  165. package/dist/components/Clickable/Clickable.js.map +1 -1
  166. package/dist/components/Clickable/useState.d.ts +13 -13
  167. package/dist/components/Clickable/useState.d.ts.map +1 -1
  168. package/dist/components/Clickable/useState.js.map +1 -1
  169. package/dist/components/ConfigProvider/ConfigProvider.d.ts +2 -1
  170. package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
  171. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  172. package/dist/components/ContentBadge/ContentBadge.d.ts +4 -4
  173. package/dist/components/ContentBadge/ContentBadge.d.ts.map +1 -1
  174. package/dist/components/ContentBadge/ContentBadge.js.map +1 -1
  175. package/dist/components/ContentCard/ContentCard.d.ts +8 -8
  176. package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
  177. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  178. package/dist/components/Counter/Counter.d.ts +4 -4
  179. package/dist/components/Counter/Counter.d.ts.map +1 -1
  180. package/dist/components/Counter/Counter.js.map +1 -1
  181. package/dist/components/CustomScrollView/CustomScrollView.d.ts +6 -6
  182. package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  183. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  184. package/dist/components/CustomSelect/CustomSelect.d.ts +36 -27
  185. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  186. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  187. package/dist/components/CustomSelect/CustomSelectClearButton.d.ts +2 -2
  188. package/dist/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
  189. package/dist/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  190. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts +9 -9
  191. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts.map +1 -1
  192. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
  193. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts +2 -2
  194. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts.map +1 -1
  195. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -1
  196. package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts +1 -1
  197. package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts.map +1 -1
  198. package/dist/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -1
  199. package/dist/components/CustomSelect/types.d.ts +1 -1
  200. package/dist/components/CustomSelect/types.d.ts.map +1 -1
  201. package/dist/components/CustomSelect/types.js.map +1 -1
  202. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +8 -8
  203. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  204. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  205. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts +9 -9
  206. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts.map +1 -1
  207. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  208. package/dist/components/DateInput/DateInput.d.ts +23 -23
  209. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  210. package/dist/components/DateInput/DateInput.js +3 -12
  211. package/dist/components/DateInput/DateInput.js.map +1 -1
  212. package/dist/components/DateInput/hooks.d.ts +4 -4
  213. package/dist/components/DateInput/hooks.d.ts.map +1 -1
  214. package/dist/components/DateInput/hooks.js.map +1 -1
  215. package/dist/components/DateRangeInput/DateRangeInput.d.ts +25 -25
  216. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  217. package/dist/components/DateRangeInput/DateRangeInput.js +2 -11
  218. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  219. package/dist/components/DropZone/DropZone.d.ts +2 -2
  220. package/dist/components/DropZone/DropZone.d.ts.map +1 -1
  221. package/dist/components/DropZone/DropZone.js +1 -1
  222. package/dist/components/DropZone/DropZone.js.map +1 -1
  223. package/dist/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.d.ts +1 -1
  224. package/dist/components/DropZone/DropZoneGrid/DropZoneGrid.d.ts.map +1 -0
  225. package/dist/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.js +3 -3
  226. package/dist/components/DropZone/DropZoneGrid/DropZoneGrid.js.map +1 -0
  227. package/dist/components/DropdownIcon/DropdownIcon.d.ts +1 -1
  228. package/dist/components/DropdownIcon/DropdownIcon.d.ts.map +1 -1
  229. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  230. package/dist/components/Epic/Epic.d.ts +1 -1
  231. package/dist/components/Epic/Epic.d.ts.map +1 -1
  232. package/dist/components/Epic/Epic.js.map +1 -1
  233. package/dist/components/Epic/ScrollSaver.d.ts +1 -1
  234. package/dist/components/Epic/ScrollSaver.d.ts.map +1 -1
  235. package/dist/components/Epic/ScrollSaver.js.map +1 -1
  236. package/dist/components/File/File.d.ts +4 -4
  237. package/dist/components/File/File.d.ts.map +1 -1
  238. package/dist/components/File/File.js.map +1 -1
  239. package/dist/components/FixedLayout/FixedLayout.d.ts +3 -3
  240. package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  241. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  242. package/dist/components/Flex/Flex.d.ts +8 -12
  243. package/dist/components/Flex/Flex.d.ts.map +1 -1
  244. package/dist/components/Flex/Flex.js +2 -9
  245. package/dist/components/Flex/Flex.js.map +1 -1
  246. package/dist/components/Flex/FlexItem/FlexItem.d.ts +5 -12
  247. package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  248. package/dist/components/Flex/FlexItem/FlexItem.js +5 -14
  249. package/dist/components/Flex/FlexItem/FlexItem.js.map +1 -1
  250. package/dist/components/FloatingArrow/FloatingArrow.d.ts +9 -9
  251. package/dist/components/FloatingArrow/FloatingArrow.d.ts.map +1 -1
  252. package/dist/components/FloatingArrow/FloatingArrow.js.map +1 -1
  253. package/dist/components/FocusTrap/FocusTrap.d.ts +1 -1
  254. package/dist/components/FocusTrap/FocusTrap.d.ts.map +1 -1
  255. package/dist/components/FocusTrap/FocusTrap.js +2 -4
  256. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  257. package/dist/components/FormField/FormField.d.ts +8 -8
  258. package/dist/components/FormField/FormField.d.ts.map +1 -1
  259. package/dist/components/FormField/FormField.js.map +1 -1
  260. package/dist/components/FormFieldClearButton/FormFieldClearButton.d.ts +2 -2
  261. package/dist/components/FormFieldClearButton/FormFieldClearButton.d.ts.map +1 -1
  262. package/dist/components/FormFieldClearButton/FormFieldClearButton.js.map +1 -1
  263. package/dist/components/FormItem/FormItem.d.ts +10 -10
  264. package/dist/components/FormItem/FormItem.d.ts.map +1 -1
  265. package/dist/components/FormItem/FormItem.js.map +1 -1
  266. package/dist/components/FormItem/context.d.ts +2 -2
  267. package/dist/components/FormItem/context.d.ts.map +1 -1
  268. package/dist/components/FormItem/context.js.map +1 -1
  269. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +4 -4
  270. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
  271. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  272. package/dist/components/FormStatus/FormStatus.d.ts +2 -2
  273. package/dist/components/FormStatus/FormStatus.d.ts.map +1 -1
  274. package/dist/components/FormStatus/FormStatus.js.map +1 -1
  275. package/dist/components/Gallery/Gallery.d.ts +2 -2
  276. package/dist/components/Gallery/Gallery.d.ts.map +1 -1
  277. package/dist/components/Gallery/Gallery.js.map +1 -1
  278. package/dist/components/Gradient/Gradient.d.ts +2 -2
  279. package/dist/components/Gradient/Gradient.d.ts.map +1 -1
  280. package/dist/components/Gradient/Gradient.js.map +1 -1
  281. package/dist/components/GridAvatar/GridAvatar.d.ts +1 -1
  282. package/dist/components/GridAvatar/GridAvatar.d.ts.map +1 -1
  283. package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
  284. package/dist/components/Group/Group.d.ts +2 -2
  285. package/dist/components/Group/Group.d.ts.map +1 -1
  286. package/dist/components/Group/Group.js.map +1 -1
  287. package/dist/components/Group/GroupContainer.d.ts +3 -3
  288. package/dist/components/Group/GroupContainer.d.ts.map +1 -1
  289. package/dist/components/Group/GroupContainer.js.map +1 -1
  290. package/dist/components/Group/GroupExpandedContent.d.ts +1 -1
  291. package/dist/components/Group/GroupExpandedContent.d.ts.map +1 -1
  292. package/dist/components/Group/GroupExpandedContent.js.map +1 -1
  293. package/dist/components/Header/Header.d.ts +11 -11
  294. package/dist/components/Header/Header.d.ts.map +1 -1
  295. package/dist/components/Header/Header.js.map +1 -1
  296. package/dist/components/HorizontalCell/HorizontalCell.d.ts +7 -7
  297. package/dist/components/HorizontalCell/HorizontalCell.d.ts.map +1 -1
  298. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  299. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +4 -4
  300. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts.map +1 -1
  301. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -1
  302. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +30 -15
  303. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  304. package/dist/components/HorizontalScroll/HorizontalScroll.js +20 -6
  305. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  306. package/dist/components/IconButton/IconButton.d.ts +1 -1
  307. package/dist/components/IconButton/IconButton.d.ts.map +1 -1
  308. package/dist/components/IconButton/IconButton.js.map +1 -1
  309. package/dist/components/Image/Image.d.ts +5 -5
  310. package/dist/components/Image/Image.d.ts.map +1 -1
  311. package/dist/components/Image/Image.js.map +1 -1
  312. package/dist/components/ImageBase/ImageBase.d.ts +14 -14
  313. package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
  314. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  315. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts +1 -1
  316. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts.map +1 -1
  317. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  318. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts +3 -3
  319. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts.map +1 -1
  320. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -1
  321. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts +3 -3
  322. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts.map +1 -1
  323. package/dist/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  324. package/dist/components/ImageBase/types.d.ts +3 -3
  325. package/dist/components/ImageBase/types.d.ts.map +1 -1
  326. package/dist/components/ImageBase/types.js.map +1 -1
  327. package/dist/components/Input/Input.d.ts +4 -4
  328. package/dist/components/Input/Input.d.ts.map +1 -1
  329. package/dist/components/Input/Input.js.map +1 -1
  330. package/dist/components/InputLike/InputLike.d.ts +3 -3
  331. package/dist/components/InputLike/InputLike.d.ts.map +1 -1
  332. package/dist/components/InputLike/InputLike.js.map +1 -1
  333. package/dist/components/Link/Link.d.ts +4 -4
  334. package/dist/components/Link/Link.d.ts.map +1 -1
  335. package/dist/components/Link/Link.js.map +1 -1
  336. package/dist/components/List/List.d.ts +1 -1
  337. package/dist/components/List/List.d.ts.map +1 -1
  338. package/dist/components/List/List.js.map +1 -1
  339. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts +5 -5
  340. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts.map +1 -1
  341. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  342. package/dist/components/ModalCard/ModalCardInternal.d.ts +1 -1
  343. package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -1
  344. package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
  345. package/dist/components/ModalCard/types.d.ts +13 -13
  346. package/dist/components/ModalCard/types.d.ts.map +1 -1
  347. package/dist/components/ModalCard/types.js.map +1 -1
  348. package/dist/components/ModalCardBase/ModalCardBase.d.ts +14 -14
  349. package/dist/components/ModalCardBase/ModalCardBase.d.ts.map +1 -1
  350. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  351. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +1 -1
  352. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts.map +1 -1
  353. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  354. package/dist/components/ModalOutlet/ModalOutlet.d.ts +3 -3
  355. package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -1
  356. package/dist/components/ModalOutlet/ModalOutlet.js.map +1 -1
  357. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts +1 -1
  358. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts.map +1 -1
  359. package/dist/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -1
  360. package/dist/components/ModalOverlay/ModalOverlay.d.ts +7 -7
  361. package/dist/components/ModalOverlay/ModalOverlay.d.ts.map +1 -1
  362. package/dist/components/ModalOverlay/ModalOverlay.js.map +1 -1
  363. package/dist/components/ModalPage/ModalPageBase.d.ts +2 -2
  364. package/dist/components/ModalPage/ModalPageBase.d.ts.map +1 -1
  365. package/dist/components/ModalPage/ModalPageBase.js.map +1 -1
  366. package/dist/components/ModalPage/ModalPageInternal.d.ts +2 -2
  367. package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
  368. package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
  369. package/dist/components/ModalPage/types.d.ts +27 -27
  370. package/dist/components/ModalPage/types.d.ts.map +1 -1
  371. package/dist/components/ModalPage/types.js.map +1 -1
  372. package/dist/components/ModalPageFooter/ModalPageFooter.d.ts +2 -2
  373. package/dist/components/ModalPageFooter/ModalPageFooter.d.ts.map +1 -1
  374. package/dist/components/ModalPageFooter/ModalPageFooter.js.map +1 -1
  375. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts +1 -1
  376. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  377. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  378. package/dist/components/ModalRoot/types.d.ts +15 -15
  379. package/dist/components/ModalRoot/types.d.ts.map +1 -1
  380. package/dist/components/ModalRoot/types.js.map +1 -1
  381. package/dist/components/ModalRoot/useModalRootManager.d.ts +19 -19
  382. package/dist/components/ModalRoot/useModalRootManager.d.ts.map +1 -1
  383. package/dist/components/ModalRoot/useModalRootManager.js.map +1 -1
  384. package/dist/components/NativeSelect/NativeSelect.d.ts +11 -11
  385. package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
  386. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  387. package/dist/components/NumberInputLike/NumberInputLike.d.ts +3 -3
  388. package/dist/components/NumberInputLike/NumberInputLike.d.ts.map +1 -1
  389. package/dist/components/NumberInputLike/NumberInputLike.js.map +1 -1
  390. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +6 -6
  391. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  392. package/dist/components/OnboardingTooltip/OnboardingTooltip.js +12 -3
  393. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  394. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts +1 -1
  395. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
  396. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  397. package/dist/components/Pagination/Pagination.d.ts +19 -19
  398. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  399. package/dist/components/Pagination/Pagination.js +14 -6
  400. package/dist/components/Pagination/Pagination.js.map +1 -1
  401. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts +3 -3
  402. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts.map +1 -1
  403. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
  404. package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts +3 -3
  405. package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts.map +1 -1
  406. package/dist/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -1
  407. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts +1 -1
  408. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts.map +1 -1
  409. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -1
  410. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts +3 -3
  411. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts.map +1 -1
  412. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -1
  413. package/dist/components/Panel/Panel.d.ts +3 -3
  414. package/dist/components/Panel/Panel.d.ts.map +1 -1
  415. package/dist/components/Panel/Panel.js.map +1 -1
  416. package/dist/components/PanelHeader/PanelHeader.d.ts +8 -8
  417. package/dist/components/PanelHeader/PanelHeader.d.ts.map +1 -1
  418. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  419. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +2 -2
  420. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts.map +1 -1
  421. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  422. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts +2 -2
  423. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
  424. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  425. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts +3 -3
  426. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts.map +1 -1
  427. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  428. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +3 -3
  429. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts.map +1 -1
  430. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  431. package/dist/components/PanelSpinner/PanelSpinner.d.ts +1 -1
  432. package/dist/components/PanelSpinner/PanelSpinner.d.ts.map +1 -1
  433. package/dist/components/PanelSpinner/PanelSpinner.js.map +1 -1
  434. package/dist/components/Placeholder/Placeholder.d.ts +5 -5
  435. package/dist/components/Placeholder/Placeholder.d.ts.map +1 -1
  436. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  437. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +6 -6
  438. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts.map +1 -1
  439. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  440. package/dist/components/Popover/Popover.d.ts +5 -5
  441. package/dist/components/Popover/Popover.d.ts.map +1 -1
  442. package/dist/components/Popover/Popover.js.map +1 -1
  443. package/dist/components/Popper/Popper.d.ts +4 -4
  444. package/dist/components/Popper/Popper.d.ts.map +1 -1
  445. package/dist/components/Popper/Popper.js +13 -7
  446. package/dist/components/Popper/Popper.js.map +1 -1
  447. package/dist/components/Progress/Progress.d.ts +4 -4
  448. package/dist/components/Progress/Progress.d.ts.map +1 -1
  449. package/dist/components/Progress/Progress.js.map +1 -1
  450. package/dist/components/PullToRefresh/PullToRefresh.d.ts +2 -2
  451. package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  452. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  453. package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts +4 -4
  454. package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts.map +1 -1
  455. package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  456. package/dist/components/Radio/Radio.d.ts +7 -7
  457. package/dist/components/Radio/Radio.d.ts.map +1 -1
  458. package/dist/components/Radio/Radio.js +2 -2
  459. package/dist/components/Radio/Radio.js.map +1 -1
  460. package/dist/components/Radio/RadioInput/RadioInput.d.ts +4 -4
  461. package/dist/components/Radio/RadioInput/RadioInput.d.ts.map +1 -1
  462. package/dist/components/Radio/RadioInput/RadioInput.js.map +1 -1
  463. package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
  464. package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  465. package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
  466. package/dist/components/Removable/Removable.d.ts +9 -9
  467. package/dist/components/Removable/Removable.d.ts.map +1 -1
  468. package/dist/components/Removable/Removable.js.map +1 -1
  469. package/dist/components/Removable/RemovableIos.d.ts +3 -3
  470. package/dist/components/Removable/RemovableIos.d.ts.map +1 -1
  471. package/dist/components/Removable/RemovableIos.js.map +1 -1
  472. package/dist/components/RichCell/RichCell.d.ts +15 -15
  473. package/dist/components/RichCell/RichCell.d.ts.map +1 -1
  474. package/dist/components/RichCell/RichCell.js.map +1 -1
  475. package/dist/components/Root/Root.d.ts +4 -4
  476. package/dist/components/Root/Root.d.ts.map +1 -1
  477. package/dist/components/Root/Root.js.map +1 -1
  478. package/dist/components/RootComponent/RootComponent.d.ts +2 -2
  479. package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
  480. package/dist/components/RootComponent/RootComponent.js.map +1 -1
  481. package/dist/components/ScreenSpinner/ScreenSpinnerSwapIcon.d.ts +1 -1
  482. package/dist/components/ScreenSpinner/ScreenSpinnerSwapIcon.d.ts.map +1 -1
  483. package/dist/components/ScreenSpinner/ScreenSpinnerSwapIcon.js.map +1 -1
  484. package/dist/components/ScreenSpinner/context.d.ts +2 -2
  485. package/dist/components/ScreenSpinner/context.d.ts.map +1 -1
  486. package/dist/components/ScreenSpinner/context.js.map +1 -1
  487. package/dist/components/ScreenSpinner/types.d.ts +5 -5
  488. package/dist/components/ScreenSpinner/types.d.ts.map +1 -1
  489. package/dist/components/ScreenSpinner/types.js.map +1 -1
  490. package/dist/components/ScrollArrow/ScrollArrow.d.ts +10 -4
  491. package/dist/components/ScrollArrow/ScrollArrow.d.ts.map +1 -1
  492. package/dist/components/ScrollArrow/ScrollArrow.js +14 -4
  493. package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
  494. package/dist/components/Search/Search.d.ts +17 -17
  495. package/dist/components/Search/Search.d.ts.map +1 -1
  496. package/dist/components/Search/Search.js.map +1 -1
  497. package/dist/components/SegmentedControl/SegmentedControl.d.ts +6 -6
  498. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  499. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  500. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +3 -3
  501. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  502. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  503. package/dist/components/SelectMimicry/SelectMimicry.d.ts +3 -3
  504. package/dist/components/SelectMimicry/SelectMimicry.d.ts.map +1 -1
  505. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  506. package/dist/components/SelectTypography/SelectTypography.d.ts +1 -1
  507. package/dist/components/SelectTypography/SelectTypography.d.ts.map +1 -1
  508. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  509. package/dist/components/SelectionControl/SelectionControl.d.ts +1 -1
  510. package/dist/components/SelectionControl/SelectionControl.d.ts.map +1 -1
  511. package/dist/components/SelectionControl/SelectionControl.js.map +1 -1
  512. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +2 -2
  513. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -1
  514. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
  515. package/dist/components/Separator/Separator.d.ts +5 -5
  516. package/dist/components/Separator/Separator.d.ts.map +1 -1
  517. package/dist/components/Separator/Separator.js.map +1 -1
  518. package/dist/components/SimpleCell/Chevron/Chevron.d.ts +1 -1
  519. package/dist/components/SimpleCell/Chevron/Chevron.d.ts.map +1 -1
  520. package/dist/components/SimpleCell/Chevron/Chevron.js.map +1 -1
  521. package/dist/components/SimpleCell/SimpleCell.d.ts +14 -14
  522. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  523. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  524. package/dist/components/SimpleGrid/SimpleGrid.d.ts +6 -6
  525. package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
  526. package/dist/components/SimpleGrid/SimpleGrid.js.map +1 -1
  527. package/dist/components/Skeleton/Skeleton.d.ts +5 -5
  528. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  529. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  530. package/dist/components/Slider/Slider.d.ts +17 -17
  531. package/dist/components/Slider/Slider.d.ts.map +1 -1
  532. package/dist/components/Slider/Slider.js.map +1 -1
  533. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts +5 -5
  534. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts.map +1 -1
  535. package/dist/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  536. package/dist/components/Snackbar/Snackbar.d.ts +10 -10
  537. package/dist/components/Snackbar/Snackbar.d.ts.map +1 -1
  538. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  539. package/dist/components/Snackbar/subcomponents/Basic/Basic.d.ts +6 -6
  540. package/dist/components/Snackbar/subcomponents/Basic/Basic.d.ts.map +1 -1
  541. package/dist/components/Snackbar/subcomponents/Basic/Basic.js.map +1 -1
  542. package/dist/components/Snackbar/utils.d.ts +1 -1
  543. package/dist/components/Snackbar/utils.d.ts.map +1 -1
  544. package/dist/components/Snackbar/utils.js.map +1 -1
  545. package/dist/components/Spacing/Spacing.d.ts +2 -2
  546. package/dist/components/Spacing/Spacing.d.ts.map +1 -1
  547. package/dist/components/Spacing/Spacing.js.map +1 -1
  548. package/dist/components/Spinner/Spinner.d.ts +4 -4
  549. package/dist/components/Spinner/Spinner.d.ts.map +1 -1
  550. package/dist/components/Spinner/Spinner.js.map +1 -1
  551. package/dist/components/SplitCol/SplitCol.d.ts +7 -7
  552. package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
  553. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  554. package/dist/components/SplitLayout/SplitLayout.d.ts +8 -8
  555. package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
  556. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  557. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +2 -2
  558. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts.map +1 -1
  559. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  560. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts +8 -8
  561. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts.map +1 -1
  562. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  563. package/dist/components/Switch/Switch.d.ts +4 -4
  564. package/dist/components/Switch/Switch.d.ts.map +1 -1
  565. package/dist/components/Switch/Switch.js.map +1 -1
  566. package/dist/components/Tabbar/Tabbar.d.ts +2 -2
  567. package/dist/components/Tabbar/Tabbar.d.ts.map +1 -1
  568. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  569. package/dist/components/TabbarItem/TabbarItem.d.ts +3 -3
  570. package/dist/components/TabbarItem/TabbarItem.d.ts.map +1 -1
  571. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  572. package/dist/components/Tabs/Tabs.d.ts +7 -7
  573. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  574. package/dist/components/Tabs/Tabs.js.map +1 -1
  575. package/dist/components/Tabs/TabsModeContext.d.ts +1 -1
  576. package/dist/components/Tabs/TabsModeContext.d.ts.map +1 -1
  577. package/dist/components/Tabs/TabsModeContext.js.map +1 -1
  578. package/dist/components/TabsItem/TabsItem.d.ts +5 -5
  579. package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
  580. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  581. package/dist/components/Tappable/Tappable.d.ts +3 -3
  582. package/dist/components/Tappable/Tappable.d.ts.map +1 -1
  583. package/dist/components/Tappable/Tappable.js.map +1 -1
  584. package/dist/components/Tappable/state.d.ts +2 -2
  585. package/dist/components/Tappable/state.d.ts.map +1 -1
  586. package/dist/components/Tappable/state.js.map +1 -1
  587. package/dist/components/Textarea/Textarea.d.ts +6 -6
  588. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  589. package/dist/components/Textarea/Textarea.js.map +1 -1
  590. package/dist/components/ToolButton/ToolButton.d.ts +4 -4
  591. package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
  592. package/dist/components/ToolButton/ToolButton.js.map +1 -1
  593. package/dist/components/Tooltip/Tooltip.d.ts +6 -6
  594. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  595. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  596. package/dist/components/TooltipBase/TooltipBase.d.ts +10 -10
  597. package/dist/components/TooltipBase/TooltipBase.d.ts.map +1 -1
  598. package/dist/components/TooltipBase/TooltipBase.js.map +1 -1
  599. package/dist/components/Touch/Touch.d.ts +16 -16
  600. package/dist/components/Touch/Touch.d.ts.map +1 -1
  601. package/dist/components/Touch/Touch.js.map +1 -1
  602. package/dist/components/Typography/Caption/Caption.d.ts +1 -1
  603. package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
  604. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  605. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts +1 -1
  606. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
  607. package/dist/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
  608. package/dist/components/Typography/EllipsisText/EllipsisText.d.ts +3 -3
  609. package/dist/components/Typography/EllipsisText/EllipsisText.d.ts.map +1 -1
  610. package/dist/components/Typography/EllipsisText/EllipsisText.js.map +1 -1
  611. package/dist/components/Typography/Headline/Headline.d.ts +1 -1
  612. package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
  613. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  614. package/dist/components/Typography/Title/Title.d.ts +1 -1
  615. package/dist/components/Typography/Title/Title.d.ts.map +1 -1
  616. package/dist/components/Typography/Title/Title.js.map +1 -1
  617. package/dist/components/Typography/Typography.d.ts +6 -6
  618. package/dist/components/Typography/Typography.d.ts.map +1 -1
  619. package/dist/components/Typography/Typography.js.map +1 -1
  620. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts +1 -1
  621. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts.map +1 -1
  622. package/dist/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
  623. package/dist/components/UsersStack/UsersStack.d.ts +6 -6
  624. package/dist/components/UsersStack/UsersStack.d.ts.map +1 -1
  625. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  626. package/dist/components/View/View.d.ts +4 -4
  627. package/dist/components/View/View.d.ts.map +1 -1
  628. package/dist/components/View/View.js.map +1 -1
  629. package/dist/components/View/ViewInfinite.d.ts +12 -12
  630. package/dist/components/View/ViewInfinite.d.ts.map +1 -1
  631. package/dist/components/View/ViewInfinite.js.map +1 -1
  632. package/dist/components/WriteBar/WriteBar.d.ts +10 -10
  633. package/dist/components/WriteBar/WriteBar.d.ts.map +1 -1
  634. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  635. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts +3 -3
  636. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts.map +1 -1
  637. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  638. package/dist/components.css +1 -1
  639. package/dist/components.css.map +1 -1
  640. package/dist/cssm/components/Accordion/Accordion.js +3 -0
  641. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  642. package/dist/cssm/components/Accordion/AccordionIcon.js +17 -0
  643. package/dist/cssm/components/Accordion/AccordionIcon.js.map +1 -0
  644. package/dist/cssm/components/Accordion/AccordionSummary.js +4 -7
  645. package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
  646. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  647. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  648. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  649. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  650. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +0 -1
  651. package/dist/cssm/components/ActionSheetItem/subcomponents/Radio/Radio.js.map +1 -1
  652. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  653. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  654. package/dist/cssm/components/Alert/AlertBase.js.map +1 -1
  655. package/dist/cssm/components/Alert/AlertTypography.js.map +1 -1
  656. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  657. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  658. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  659. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  660. package/dist/cssm/components/AppRoot/types.js.map +1 -1
  661. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  662. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  663. package/dist/cssm/components/Avatar/Avatar.module.css +0 -5
  664. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  665. package/dist/cssm/components/Badge/Badge.js.map +1 -1
  666. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  667. package/dist/cssm/components/Box/Box.js.map +1 -1
  668. package/dist/cssm/components/Button/Button.js +1 -1
  669. package/dist/cssm/components/Button/Button.js.map +1 -1
  670. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  671. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  672. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  673. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  674. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  675. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  676. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  677. package/dist/cssm/components/CalendarTime/CalendarTimePicker.js.map +1 -1
  678. package/dist/cssm/components/Card/Card.js.map +1 -1
  679. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  680. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  681. package/dist/cssm/components/CarouselBase/Bullets.js.map +1 -1
  682. package/dist/cssm/components/CarouselBase/CarouselViewPort.js.map +1 -1
  683. package/dist/cssm/components/CarouselBase/ScrollArrows.js.map +1 -1
  684. package/dist/cssm/components/CarouselBase/helpers.js.map +1 -1
  685. package/dist/cssm/components/CarouselBase/types.js.map +1 -1
  686. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  687. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  688. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  689. package/dist/cssm/components/CellButton/CellButton.js +115 -7
  690. package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
  691. package/dist/cssm/components/CellButton/CellButton.module.css +165 -7
  692. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  693. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -1
  694. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  695. package/dist/cssm/components/ChipsInput/useChipsInput.js.map +1 -1
  696. package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  697. package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
  698. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  699. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
  700. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  701. package/dist/cssm/components/Clickable/useState.js.map +1 -1
  702. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  703. package/dist/cssm/components/ContentBadge/ContentBadge.js.map +1 -1
  704. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  705. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  706. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  707. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  708. package/dist/cssm/components/CustomSelect/CustomSelect.module.css +0 -6
  709. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  710. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
  711. package/dist/cssm/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -1
  712. package/dist/cssm/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -1
  713. package/dist/cssm/components/CustomSelect/types.js.map +1 -1
  714. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  715. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  716. package/dist/cssm/components/DateInput/DateInput.js +3 -12
  717. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  718. package/dist/cssm/components/DateInput/hooks.js.map +1 -1
  719. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +2 -11
  720. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  721. package/dist/cssm/components/DropZone/DropZone.js +1 -1
  722. package/dist/cssm/components/DropZone/DropZone.js.map +1 -1
  723. package/dist/cssm/components/DropZone/DropZoneGrid/DropZoneGrid.js.map +1 -0
  724. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  725. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  726. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  727. package/dist/cssm/components/File/File.js.map +1 -1
  728. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  729. package/dist/cssm/components/Flex/Flex.js +2 -10
  730. package/dist/cssm/components/Flex/Flex.js.map +1 -1
  731. package/dist/cssm/components/Flex/FlexItem/FlexItem.js +5 -14
  732. package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
  733. package/dist/cssm/components/Flex/FlexItem/FlexItem.module.css +0 -22
  734. package/dist/cssm/components/FloatingArrow/FloatingArrow.js.map +1 -1
  735. package/dist/cssm/components/FocusTrap/FocusTrap.js +2 -4
  736. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  737. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  738. package/dist/cssm/components/FormFieldClearButton/FormFieldClearButton.js.map +1 -1
  739. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  740. package/dist/cssm/components/FormItem/FormItem.module.css +1 -2
  741. package/dist/cssm/components/FormItem/context.js.map +1 -1
  742. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  743. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  744. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  745. package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
  746. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  747. package/dist/cssm/components/Group/Group.js.map +1 -1
  748. package/dist/cssm/components/Group/GroupContainer.js.map +1 -1
  749. package/dist/cssm/components/Group/GroupExpandedContent.js.map +1 -1
  750. package/dist/cssm/components/Header/Header.js.map +1 -1
  751. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  752. package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -1
  753. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +20 -6
  754. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  755. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  756. package/dist/cssm/components/Image/Image.js.map +1 -1
  757. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  758. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  759. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -1
  760. package/dist/cssm/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  761. package/dist/cssm/components/ImageBase/types.js.map +1 -1
  762. package/dist/cssm/components/Input/Input.js.map +1 -1
  763. package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
  764. package/dist/cssm/components/Link/Link.js.map +1 -1
  765. package/dist/cssm/components/List/List.js.map +1 -1
  766. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  767. package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
  768. package/dist/cssm/components/ModalCard/types.js.map +1 -1
  769. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  770. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +0 -4
  771. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  772. package/dist/cssm/components/ModalOutlet/ModalOutlet.js.map +1 -1
  773. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -1
  774. package/dist/cssm/components/ModalOverlay/ModalOverlay.js.map +1 -1
  775. package/dist/cssm/components/ModalPage/ModalPageBase.js.map +1 -1
  776. package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
  777. package/dist/cssm/components/ModalPage/types.js.map +1 -1
  778. package/dist/cssm/components/ModalPageFooter/ModalPageFooter.js.map +1 -1
  779. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  780. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  781. package/dist/cssm/components/ModalRoot/useModalRootManager.js.map +1 -1
  782. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  783. package/dist/cssm/components/NumberInputLike/NumberInputLike.js.map +1 -1
  784. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +12 -3
  785. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  786. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  787. package/dist/cssm/components/Pagination/Pagination.js +14 -6
  788. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  789. package/dist/cssm/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
  790. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -1
  791. package/dist/cssm/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -1
  792. package/dist/cssm/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -1
  793. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  794. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  795. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +0 -5
  796. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  797. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  798. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  799. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  800. package/dist/cssm/components/PanelSpinner/PanelSpinner.js.map +1 -1
  801. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  802. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  803. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  804. package/dist/cssm/components/Popper/Popper.js +13 -7
  805. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  806. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  807. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  808. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  809. package/dist/cssm/components/Radio/Radio.js +2 -2
  810. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  811. package/dist/cssm/components/Radio/RadioInput/RadioInput.js.map +1 -1
  812. package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
  813. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  814. package/dist/cssm/components/Removable/Removable.module.css +0 -4
  815. package/dist/cssm/components/Removable/RemovableIos.js.map +1 -1
  816. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  817. package/dist/cssm/components/Root/Root.js.map +1 -1
  818. package/dist/cssm/components/RootComponent/RootComponent.js.map +1 -1
  819. package/dist/cssm/components/ScreenSpinner/ScreenSpinnerSwapIcon.js.map +1 -1
  820. package/dist/cssm/components/ScreenSpinner/context.js.map +1 -1
  821. package/dist/cssm/components/ScreenSpinner/types.js.map +1 -1
  822. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +14 -4
  823. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  824. package/dist/cssm/components/Search/Search.js.map +1 -1
  825. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  826. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  827. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  828. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  829. package/dist/cssm/components/SelectionControl/SelectionControl.js.map +1 -1
  830. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
  831. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  832. package/dist/cssm/components/SimpleCell/Chevron/Chevron.js.map +1 -1
  833. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  834. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +3 -5
  835. package/dist/cssm/components/SimpleGrid/SimpleGrid.js.map +1 -1
  836. package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
  837. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  838. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  839. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  840. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.js.map +1 -1
  841. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.module.css +2 -4
  842. package/dist/cssm/components/Snackbar/utils.js.map +1 -1
  843. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  844. package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
  845. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  846. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  847. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  848. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  849. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  850. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  851. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  852. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  853. package/dist/cssm/components/Tabs/TabsModeContext.js.map +1 -1
  854. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  855. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  856. package/dist/cssm/components/Tappable/state.js.map +1 -1
  857. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  858. package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
  859. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  860. package/dist/cssm/components/TooltipBase/TooltipBase.js.map +1 -1
  861. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  862. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  863. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
  864. package/dist/cssm/components/Typography/EllipsisText/EllipsisText.js.map +1 -1
  865. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  866. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  867. package/dist/cssm/components/Typography/Typography.js.map +1 -1
  868. package/dist/cssm/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
  869. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  870. package/dist/cssm/components/View/View.js.map +1 -1
  871. package/dist/cssm/components/View/View.module.css +1 -3
  872. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  873. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  874. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  875. package/dist/cssm/helpers/math.js.map +1 -1
  876. package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  877. package/dist/cssm/hooks/useAutoDetectColorScheme.js +8 -27
  878. package/dist/cssm/hooks/useAutoDetectColorScheme.js.map +1 -1
  879. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  880. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  881. package/dist/cssm/hooks/useDraggableWithDomApi/types.js.map +1 -1
  882. package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
  883. package/dist/cssm/hooks/useFloatingElement.js.map +1 -1
  884. package/dist/cssm/hooks/useFocusTrap/FocusGuard.js.map +1 -1
  885. package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js +10 -2
  886. package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  887. package/dist/cssm/hooks/useFocusVisibleClassName.js.map +1 -1
  888. package/dist/cssm/hooks/useGlobalEscKeyDown.js.map +1 -1
  889. package/dist/cssm/hooks/useMediaQueryMatch.js +25 -0
  890. package/dist/cssm/hooks/useMediaQueryMatch.js.map +1 -0
  891. package/dist/cssm/hooks/useMergeProps.js.map +1 -1
  892. package/dist/cssm/hooks/useModalManager/types.js.map +1 -1
  893. package/dist/cssm/hooks/usePagination.js.map +1 -1
  894. package/dist/cssm/hooks/usePatchChildren.js.map +1 -1
  895. package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.js → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js} +2 -2
  896. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js.map +1 -0
  897. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarHolder.js +5 -2
  898. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarHolder.js.map +1 -1
  899. package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarsContainer.js → SnackbarsContainer/SnackbarsContainer.js} +3 -3
  900. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.js.map +1 -0
  901. package/dist/cssm/hooks/useSnackbarManager/types.js.map +1 -1
  902. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  903. package/dist/cssm/index.js +1 -1
  904. package/dist/cssm/index.js.map +1 -1
  905. package/dist/cssm/lib/SSR.js.map +1 -1
  906. package/dist/cssm/lib/accessibility.js.map +1 -1
  907. package/dist/cssm/lib/adaptivity/functions.js +6 -0
  908. package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
  909. package/dist/cssm/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
  910. package/dist/cssm/lib/animation/useCSSTransition.js +4 -2
  911. package/dist/cssm/lib/animation/useCSSTransition.js.map +1 -1
  912. package/dist/cssm/lib/animation/useReducedMotion.js +2 -20
  913. package/dist/cssm/lib/animation/useReducedMotion.js.map +1 -1
  914. package/dist/cssm/lib/calendar.js.map +1 -1
  915. package/dist/cssm/lib/date.js.map +1 -1
  916. package/dist/cssm/lib/dom.js.map +1 -1
  917. package/dist/cssm/lib/floating/functions.js.map +1 -1
  918. package/dist/cssm/lib/floating/types/component.js.map +1 -1
  919. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +6 -4
  920. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  921. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  922. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -2
  923. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  924. package/dist/cssm/lib/getNavId.js.map +1 -1
  925. package/dist/cssm/lib/layouts/layoutProps.js +17 -0
  926. package/dist/cssm/lib/layouts/layoutProps.js.map +1 -1
  927. package/dist/cssm/lib/layouts/resolveLayoutProps.js.map +1 -1
  928. package/dist/cssm/lib/layouts/types.js.map +1 -1
  929. package/dist/cssm/lib/select.js.map +1 -1
  930. package/dist/cssm/lib/sheet/useBottomSheet.js.map +1 -1
  931. package/dist/cssm/lib/tokens/TokensClassProvider.js.map +1 -1
  932. package/dist/cssm/lib/tokens/types.js.map +1 -1
  933. package/dist/cssm/lib/utils.js +3 -0
  934. package/dist/cssm/lib/utils.js.map +1 -1
  935. package/dist/cssm/styles/layout.css +36 -0
  936. package/dist/cssm/types.js +4 -1
  937. package/dist/cssm/types.js.map +1 -1
  938. package/dist/helpers/math.d.ts +1 -1
  939. package/dist/helpers/math.d.ts.map +1 -1
  940. package/dist/helpers/math.js.map +1 -1
  941. package/dist/hooks/useAdaptivityWithJSMediaQueries.d.ts +5 -1
  942. package/dist/hooks/useAdaptivityWithJSMediaQueries.d.ts.map +1 -1
  943. package/dist/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  944. package/dist/hooks/useAutoDetectColorScheme.d.ts.map +1 -1
  945. package/dist/hooks/useAutoDetectColorScheme.js +8 -27
  946. package/dist/hooks/useAutoDetectColorScheme.js.map +1 -1
  947. package/dist/hooks/useCalendar.d.ts +1 -1
  948. package/dist/hooks/useCalendar.d.ts.map +1 -1
  949. package/dist/hooks/useCalendar.js.map +1 -1
  950. package/dist/hooks/useDateInput.d.ts +5 -5
  951. package/dist/hooks/useDateInput.d.ts.map +1 -1
  952. package/dist/hooks/useDateInput.js.map +1 -1
  953. package/dist/hooks/useDraggableWithDomApi/types.d.ts +1 -1
  954. package/dist/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
  955. package/dist/hooks/useDraggableWithDomApi/types.js.map +1 -1
  956. package/dist/hooks/useEnsuredControl.d.ts +4 -4
  957. package/dist/hooks/useEnsuredControl.d.ts.map +1 -1
  958. package/dist/hooks/useEnsuredControl.js.map +1 -1
  959. package/dist/hooks/useFloatingElement.d.ts +4 -4
  960. package/dist/hooks/useFloatingElement.d.ts.map +1 -1
  961. package/dist/hooks/useFloatingElement.js.map +1 -1
  962. package/dist/hooks/useFocusTrap/FocusGuard.d.ts +1 -1
  963. package/dist/hooks/useFocusTrap/FocusGuard.d.ts.map +1 -1
  964. package/dist/hooks/useFocusTrap/FocusGuard.js.map +1 -1
  965. package/dist/hooks/useFocusTrap/useFocusTrap.d.ts +6 -10
  966. package/dist/hooks/useFocusTrap/useFocusTrap.d.ts.map +1 -1
  967. package/dist/hooks/useFocusTrap/useFocusTrap.js +10 -2
  968. package/dist/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  969. package/dist/hooks/useFocusVisibleClassName.d.ts +3 -3
  970. package/dist/hooks/useFocusVisibleClassName.d.ts.map +1 -1
  971. package/dist/hooks/useFocusVisibleClassName.js.map +1 -1
  972. package/dist/hooks/useGlobalEscKeyDown.d.ts +1 -1
  973. package/dist/hooks/useGlobalEscKeyDown.d.ts.map +1 -1
  974. package/dist/hooks/useGlobalEscKeyDown.js.map +1 -1
  975. package/dist/hooks/useMediaQueryMatch.d.ts +6 -0
  976. package/dist/hooks/useMediaQueryMatch.d.ts.map +1 -0
  977. package/dist/hooks/useMediaQueryMatch.js +25 -0
  978. package/dist/hooks/useMediaQueryMatch.js.map +1 -0
  979. package/dist/hooks/useMergeProps.d.ts +1 -1
  980. package/dist/hooks/useMergeProps.d.ts.map +1 -1
  981. package/dist/hooks/useMergeProps.js.map +1 -1
  982. package/dist/hooks/useModalManager/types.d.ts +8 -8
  983. package/dist/hooks/useModalManager/types.d.ts.map +1 -1
  984. package/dist/hooks/useModalManager/types.js.map +1 -1
  985. package/dist/hooks/usePagination.d.ts +4 -4
  986. package/dist/hooks/usePagination.d.ts.map +1 -1
  987. package/dist/hooks/usePagination.js.map +1 -1
  988. package/dist/hooks/usePatchChildren.d.ts +1 -1
  989. package/dist/hooks/usePatchChildren.d.ts.map +1 -1
  990. package/dist/hooks/usePatchChildren.js.map +1 -1
  991. package/dist/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.d.ts → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.d.ts} +1 -1
  992. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.d.ts.map +1 -0
  993. package/dist/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.js → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js} +10 -10
  994. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js.map +1 -0
  995. package/dist/hooks/useSnackbarManager/components/SnackbarHolder.d.ts.map +1 -1
  996. package/dist/hooks/useSnackbarManager/components/SnackbarHolder.js +5 -2
  997. package/dist/hooks/useSnackbarManager/components/SnackbarHolder.js.map +1 -1
  998. package/dist/hooks/useSnackbarManager/components/{SnackbarsContainer.d.ts → SnackbarsContainer/SnackbarsContainer.d.ts} +2 -2
  999. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.d.ts.map +1 -0
  1000. package/dist/hooks/useSnackbarManager/components/{SnackbarsContainer.js → SnackbarsContainer/SnackbarsContainer.js} +10 -10
  1001. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.js.map +1 -0
  1002. package/dist/hooks/useSnackbarManager/types.d.ts +11 -11
  1003. package/dist/hooks/useSnackbarManager/types.d.ts.map +1 -1
  1004. package/dist/hooks/useSnackbarManager/types.js.map +1 -1
  1005. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts +1 -1
  1006. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -1
  1007. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  1008. package/dist/index.d.ts +3 -2
  1009. package/dist/index.d.ts.map +1 -1
  1010. package/dist/index.js +1 -1
  1011. package/dist/index.js.map +1 -1
  1012. package/dist/lib/SSR.d.ts +4 -4
  1013. package/dist/lib/SSR.d.ts.map +1 -1
  1014. package/dist/lib/SSR.js.map +1 -1
  1015. package/dist/lib/accessibility.d.ts +1 -1
  1016. package/dist/lib/accessibility.d.ts.map +1 -1
  1017. package/dist/lib/accessibility.js.map +1 -1
  1018. package/dist/lib/adaptivity/functions.d.ts.map +1 -1
  1019. package/dist/lib/adaptivity/functions.js +6 -0
  1020. package/dist/lib/adaptivity/functions.js.map +1 -1
  1021. package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts +6 -6
  1022. package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts.map +1 -1
  1023. package/dist/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
  1024. package/dist/lib/animation/useCSSTransition.d.ts +11 -11
  1025. package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
  1026. package/dist/lib/animation/useCSSTransition.js +4 -2
  1027. package/dist/lib/animation/useCSSTransition.js.map +1 -1
  1028. package/dist/lib/animation/useReducedMotion.d.ts.map +1 -1
  1029. package/dist/lib/animation/useReducedMotion.js +2 -20
  1030. package/dist/lib/animation/useReducedMotion.js.map +1 -1
  1031. package/dist/lib/calendar.d.ts +5 -5
  1032. package/dist/lib/calendar.d.ts.map +1 -1
  1033. package/dist/lib/calendar.js.map +1 -1
  1034. package/dist/lib/date.d.ts +10 -10
  1035. package/dist/lib/date.d.ts.map +1 -1
  1036. package/dist/lib/date.js.map +1 -1
  1037. package/dist/lib/dom.d.ts +2 -2
  1038. package/dist/lib/dom.d.ts.map +1 -1
  1039. package/dist/lib/dom.js.map +1 -1
  1040. package/dist/lib/floating/functions.d.ts +2 -2
  1041. package/dist/lib/floating/functions.d.ts.map +1 -1
  1042. package/dist/lib/floating/functions.js.map +1 -1
  1043. package/dist/lib/floating/types/component.d.ts +9 -9
  1044. package/dist/lib/floating/types/component.d.ts.map +1 -1
  1045. package/dist/lib/floating/types/component.js.map +1 -1
  1046. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +14 -14
  1047. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
  1048. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +6 -4
  1049. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  1050. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +15 -15
  1051. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  1052. package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  1053. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -2
  1054. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  1055. package/dist/lib/getNavId.d.ts +2 -2
  1056. package/dist/lib/getNavId.d.ts.map +1 -1
  1057. package/dist/lib/getNavId.js.map +1 -1
  1058. package/dist/lib/layouts/layoutProps.d.ts +2 -0
  1059. package/dist/lib/layouts/layoutProps.d.ts.map +1 -1
  1060. package/dist/lib/layouts/layoutProps.js +17 -0
  1061. package/dist/lib/layouts/layoutProps.js.map +1 -1
  1062. package/dist/lib/layouts/resolveLayoutProps.d.ts +6 -6
  1063. package/dist/lib/layouts/resolveLayoutProps.d.ts.map +1 -1
  1064. package/dist/lib/layouts/resolveLayoutProps.js.map +1 -1
  1065. package/dist/lib/layouts/types.d.ts +39 -27
  1066. package/dist/lib/layouts/types.d.ts.map +1 -1
  1067. package/dist/lib/layouts/types.js.map +1 -1
  1068. package/dist/lib/select.d.ts +2 -2
  1069. package/dist/lib/select.d.ts.map +1 -1
  1070. package/dist/lib/select.js.map +1 -1
  1071. package/dist/lib/sheet/useBottomSheet.d.ts +4 -4
  1072. package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -1
  1073. package/dist/lib/sheet/useBottomSheet.js.map +1 -1
  1074. package/dist/lib/tokens/TokensClassProvider.js.map +1 -1
  1075. package/dist/lib/tokens/types.d.ts +2 -2
  1076. package/dist/lib/tokens/types.d.ts.map +1 -1
  1077. package/dist/lib/tokens/types.js.map +1 -1
  1078. package/dist/lib/utils.d.ts +3 -3
  1079. package/dist/lib/utils.d.ts.map +1 -1
  1080. package/dist/lib/utils.js +3 -0
  1081. package/dist/lib/utils.js.map +1 -1
  1082. package/dist/types.d.ts +17 -10
  1083. package/dist/types.d.ts.map +1 -1
  1084. package/dist/types.js +4 -1
  1085. package/dist/types.js.map +1 -1
  1086. package/dist/vkui.css +1 -1
  1087. package/dist/vkui.css.map +1 -1
  1088. package/package.json +3 -3
  1089. package/src/components/Accordion/Accordion.tsx +10 -6
  1090. package/src/components/Accordion/AccordionIcon.tsx +31 -0
  1091. package/src/components/Accordion/AccordionSummary.tsx +5 -9
  1092. package/src/components/ActionSheet/ActionSheet.tsx +14 -10
  1093. package/src/components/ActionSheet/ActionSheetContext.ts +3 -3
  1094. package/src/components/ActionSheet/types.ts +8 -8
  1095. package/src/components/ActionSheetItem/ActionSheetItem.module.css +0 -1
  1096. package/src/components/ActionSheetItem/ActionSheetItem.module.css.d.ts.map +1 -1
  1097. package/src/components/ActionSheetItem/ActionSheetItem.tsx +15 -15
  1098. package/src/components/ActionSheetItem/subcomponents/Radio/Radio.tsx +1 -1
  1099. package/src/components/AdaptivityProvider/AdaptivityContext.tsx +7 -7
  1100. package/src/components/Alert/Alert.tsx +17 -17
  1101. package/src/components/Alert/AlertBase.tsx +2 -2
  1102. package/src/components/Alert/AlertTypography.tsx +1 -1
  1103. package/src/components/AppRoot/AppRoot.tsx +9 -9
  1104. package/src/components/AppRoot/AppRootContext.ts +4 -4
  1105. package/src/components/AppRoot/AppRootPortal.tsx +2 -2
  1106. package/src/components/AppRoot/ScrollContext.tsx +5 -5
  1107. package/src/components/AppRoot/types.ts +4 -4
  1108. package/src/components/AspectRatio/AspectRatio.tsx +2 -2
  1109. package/src/components/Avatar/Avatar.module.css +0 -5
  1110. package/src/components/Avatar/Avatar.module.css.d.ts.map +1 -1
  1111. package/src/components/Avatar/Avatar.tsx +6 -2
  1112. package/src/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.tsx +1 -1
  1113. package/src/components/Badge/Badge.tsx +1 -1
  1114. package/src/components/Banner/Banner.tsx +12 -12
  1115. package/src/components/Box/Box.tsx +1 -1
  1116. package/src/components/Button/Button.tsx +19 -12
  1117. package/src/components/ButtonGroup/ButtonGroup.tsx +4 -4
  1118. package/src/components/Calendar/Calendar.tsx +17 -17
  1119. package/src/components/CalendarDay/CalendarDay.tsx +18 -18
  1120. package/src/components/CalendarDays/CalendarDays.tsx +14 -14
  1121. package/src/components/CalendarHeader/CalendarHeader.tsx +19 -19
  1122. package/src/components/CalendarRange/CalendarRange.tsx +12 -12
  1123. package/src/components/CalendarTime/CalendarTime.tsx +14 -14
  1124. package/src/components/CalendarTime/CalendarTimePicker.tsx +3 -3
  1125. package/src/components/Card/Card.tsx +1 -1
  1126. package/src/components/CardGrid/CardGrid.tsx +2 -2
  1127. package/src/components/CardScroll/CardScroll.tsx +3 -3
  1128. package/src/components/CarouselBase/Bullets.tsx +1 -1
  1129. package/src/components/CarouselBase/CarouselViewPort.tsx +1 -1
  1130. package/src/components/CarouselBase/ScrollArrows.tsx +2 -2
  1131. package/src/components/CarouselBase/helpers.ts +4 -4
  1132. package/src/components/CarouselBase/types.ts +23 -23
  1133. package/src/components/Cell/Cell.tsx +8 -8
  1134. package/src/components/Cell/CellCheckbox/CellCheckbox.tsx +1 -1
  1135. package/src/components/Cell/CellDragger/CellDragger.tsx +2 -2
  1136. package/src/components/CellButton/CellButton.module.css +159 -7
  1137. package/src/components/CellButton/CellButton.module.css.d.ts.map +1 -1
  1138. package/src/components/CellButton/CellButton.tsx +154 -11
  1139. package/src/components/Checkbox/Checkbox.tsx +16 -9
  1140. package/src/components/Checkbox/CheckboxInput/CheckboxInput.tsx +20 -14
  1141. package/src/components/ChipsInput/ChipsInput.tsx +1 -1
  1142. package/src/components/ChipsInput/useChipsInput.ts +3 -3
  1143. package/src/components/ChipsInputBase/Chip/Chip.tsx +9 -9
  1144. package/src/components/ChipsInputBase/types.ts +28 -22
  1145. package/src/components/ChipsSelect/ChipsSelect.tsx +13 -13
  1146. package/src/components/ChipsSelect/useChipsSelect.ts +22 -21
  1147. package/src/components/Clickable/Clickable.tsx +1 -1
  1148. package/src/components/Clickable/useState.tsx +13 -13
  1149. package/src/components/ConfigProvider/ConfigProvider.tsx +2 -1
  1150. package/src/components/ContentBadge/ContentBadge.tsx +4 -4
  1151. package/src/components/ContentCard/ContentCard.tsx +8 -8
  1152. package/src/components/Counter/Counter.tsx +4 -4
  1153. package/src/components/CustomScrollView/CustomScrollView.tsx +6 -6
  1154. package/src/components/CustomSelect/CustomSelect.module.css +0 -6
  1155. package/src/components/CustomSelect/CustomSelect.module.css.d.ts.map +1 -1
  1156. package/src/components/CustomSelect/CustomSelect.tsx +42 -29
  1157. package/src/components/CustomSelect/CustomSelectClearButton.tsx +2 -2
  1158. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.tsx +20 -14
  1159. package/src/components/CustomSelect/hooks/useDropdownOpenedController.ts +2 -2
  1160. package/src/components/CustomSelect/hooks/useSelectedOptionController.ts +1 -1
  1161. package/src/components/CustomSelect/types.ts +1 -1
  1162. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +8 -8
  1163. package/src/components/CustomSelectOption/CustomSelectOption.tsx +9 -9
  1164. package/src/components/DateInput/DateInput.tsx +27 -35
  1165. package/src/components/DateInput/hooks.ts +7 -7
  1166. package/src/components/DateRangeInput/DateRangeInput.tsx +28 -36
  1167. package/src/components/DropZone/DropZone.tsx +5 -2
  1168. package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.tsx +1 -1
  1169. package/src/components/DropdownIcon/DropdownIcon.tsx +1 -1
  1170. package/src/components/Epic/Epic.tsx +1 -1
  1171. package/src/components/Epic/ScrollSaver.tsx +1 -1
  1172. package/src/components/File/File.tsx +15 -9
  1173. package/src/components/FixedLayout/FixedLayout.tsx +3 -3
  1174. package/src/components/Flex/Flex.tsx +8 -23
  1175. package/src/components/Flex/FlexItem/FlexItem.module.css +0 -22
  1176. package/src/components/Flex/FlexItem/FlexItem.module.css.d.ts.map +1 -1
  1177. package/src/components/Flex/FlexItem/FlexItem.tsx +17 -44
  1178. package/src/components/FloatingArrow/FloatingArrow.tsx +9 -9
  1179. package/src/components/FocusTrap/FocusTrap.tsx +0 -3
  1180. package/src/components/FormField/FormField.tsx +8 -8
  1181. package/src/components/FormFieldClearButton/FormFieldClearButton.tsx +2 -2
  1182. package/src/components/FormItem/FormItem.module.css +1 -2
  1183. package/src/components/FormItem/FormItem.module.css.d.ts.map +1 -1
  1184. package/src/components/FormItem/FormItem.tsx +10 -10
  1185. package/src/components/FormItem/context.ts +2 -2
  1186. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +4 -4
  1187. package/src/components/FormStatus/FormStatus.tsx +2 -2
  1188. package/src/components/Gallery/Gallery.tsx +2 -2
  1189. package/src/components/Gradient/Gradient.tsx +2 -2
  1190. package/src/components/GridAvatar/GridAvatar.tsx +1 -1
  1191. package/src/components/Group/Group.tsx +2 -2
  1192. package/src/components/Group/GroupContainer.tsx +3 -3
  1193. package/src/components/Group/GroupExpandedContent.tsx +1 -1
  1194. package/src/components/Header/Header.tsx +11 -11
  1195. package/src/components/HorizontalCell/HorizontalCell.tsx +7 -7
  1196. package/src/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.tsx +4 -4
  1197. package/src/components/HorizontalScroll/HorizontalScroll.tsx +63 -18
  1198. package/src/components/IconButton/IconButton.tsx +1 -1
  1199. package/src/components/Image/Image.tsx +5 -5
  1200. package/src/components/ImageBase/ImageBase.tsx +19 -15
  1201. package/src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.tsx +1 -1
  1202. package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.tsx +3 -3
  1203. package/src/components/ImageBase/ImageBaseOverlay/types.ts +3 -3
  1204. package/src/components/ImageBase/types.ts +3 -3
  1205. package/src/components/Input/Input.tsx +13 -7
  1206. package/src/components/InputLike/InputLike.tsx +3 -3
  1207. package/src/components/Link/Link.tsx +4 -4
  1208. package/src/components/List/List.tsx +1 -1
  1209. package/src/components/MiniInfoCell/MiniInfoCell.tsx +5 -5
  1210. package/src/components/ModalCard/ModalCardInternal.tsx +1 -1
  1211. package/src/components/ModalCard/types.ts +13 -13
  1212. package/src/components/ModalCardBase/ModalCardBase.module.css +0 -4
  1213. package/src/components/ModalCardBase/ModalCardBase.module.css.d.ts.map +1 -1
  1214. package/src/components/ModalCardBase/ModalCardBase.tsx +14 -14
  1215. package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -1
  1216. package/src/components/ModalOutlet/ModalOutlet.tsx +3 -3
  1217. package/src/components/ModalOutsideButton/ModalOutsideButton.tsx +1 -1
  1218. package/src/components/ModalOverlay/ModalOverlay.tsx +7 -7
  1219. package/src/components/ModalPage/ModalPageBase.tsx +2 -2
  1220. package/src/components/ModalPage/ModalPageInternal.tsx +2 -2
  1221. package/src/components/ModalPage/types.ts +27 -27
  1222. package/src/components/ModalPageFooter/ModalPageFooter.tsx +2 -2
  1223. package/src/components/ModalPageHeader/ModalPageHeader.tsx +1 -1
  1224. package/src/components/ModalRoot/types.ts +15 -15
  1225. package/src/components/ModalRoot/useModalRootManager.tsx +19 -19
  1226. package/src/components/NativeSelect/NativeSelect.tsx +20 -14
  1227. package/src/components/NumberInputLike/NumberInputLike.tsx +3 -3
  1228. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +16 -8
  1229. package/src/components/OnboardingTooltip/OnboardingTooltipContainer.tsx +1 -1
  1230. package/src/components/Pagination/Pagination.tsx +27 -25
  1231. package/src/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.tsx +5 -3
  1232. package/src/components/Pagination/PaginationPage/PaginationPageButton.tsx +3 -3
  1233. package/src/components/Pagination/PaginationPage/PaginationPageEllipsis.tsx +1 -1
  1234. package/src/components/Pagination/PaginationPage/usePaginationPageClasses.ts +3 -3
  1235. package/src/components/Panel/Panel.tsx +3 -3
  1236. package/src/components/PanelHeader/PanelHeader.module.css +0 -5
  1237. package/src/components/PanelHeader/PanelHeader.module.css.d.ts.map +1 -1
  1238. package/src/components/PanelHeader/PanelHeader.tsx +14 -12
  1239. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +2 -2
  1240. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +3 -3
  1241. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +3 -3
  1242. package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +3 -3
  1243. package/src/components/PanelSpinner/PanelSpinner.tsx +1 -1
  1244. package/src/components/Placeholder/Placeholder.tsx +5 -5
  1245. package/src/components/PopoutWrapper/PopoutWrapper.tsx +6 -6
  1246. package/src/components/Popover/Popover.tsx +5 -5
  1247. package/src/components/Popper/Popper.tsx +17 -15
  1248. package/src/components/Progress/Progress.tsx +4 -4
  1249. package/src/components/PullToRefresh/PullToRefresh.tsx +2 -2
  1250. package/src/components/PullToRefresh/PullToRefreshSpinner.tsx +4 -4
  1251. package/src/components/Radio/Radio.tsx +18 -12
  1252. package/src/components/Radio/RadioInput/RadioInput.tsx +15 -9
  1253. package/src/components/RadioGroup/RadioGroup.tsx +1 -1
  1254. package/src/components/Removable/Removable.module.css +0 -4
  1255. package/src/components/Removable/Removable.module.css.d.ts.map +1 -1
  1256. package/src/components/Removable/Removable.tsx +13 -10
  1257. package/src/components/Removable/RemovableIos.tsx +6 -3
  1258. package/src/components/RichCell/RichCell.tsx +15 -15
  1259. package/src/components/Root/Root.tsx +3 -3
  1260. package/src/components/RootComponent/RootComponent.tsx +2 -2
  1261. package/src/components/ScreenSpinner/ScreenSpinnerSwapIcon.tsx +1 -1
  1262. package/src/components/ScreenSpinner/context.ts +2 -2
  1263. package/src/components/ScreenSpinner/types.tsx +5 -5
  1264. package/src/components/ScrollArrow/ScrollArrow.tsx +27 -4
  1265. package/src/components/Search/Search.tsx +28 -22
  1266. package/src/components/SegmentedControl/SegmentedControl.tsx +6 -6
  1267. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +3 -3
  1268. package/src/components/SelectMimicry/SelectMimicry.tsx +3 -3
  1269. package/src/components/SelectTypography/SelectTypography.tsx +1 -1
  1270. package/src/components/SelectionControl/SelectionControl.tsx +1 -1
  1271. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.tsx +2 -2
  1272. package/src/components/Separator/Separator.tsx +5 -5
  1273. package/src/components/SimpleCell/Chevron/Chevron.tsx +1 -1
  1274. package/src/components/SimpleCell/SimpleCell.module.css +3 -5
  1275. package/src/components/SimpleCell/SimpleCell.module.css.d.ts.map +1 -1
  1276. package/src/components/SimpleCell/SimpleCell.tsx +14 -14
  1277. package/src/components/SimpleGrid/SimpleGrid.tsx +6 -6
  1278. package/src/components/Skeleton/Skeleton.tsx +5 -5
  1279. package/src/components/Slider/Slider.tsx +19 -17
  1280. package/src/components/Slider/SliderThumb/SliderThumb.tsx +9 -7
  1281. package/src/components/Snackbar/Snackbar.tsx +19 -13
  1282. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css +2 -4
  1283. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css.d.ts.map +1 -1
  1284. package/src/components/Snackbar/subcomponents/Basic/Basic.tsx +6 -6
  1285. package/src/components/Snackbar/utils.ts +1 -1
  1286. package/src/components/Spacing/Spacing.tsx +2 -2
  1287. package/src/components/Spinner/Spinner.tsx +4 -4
  1288. package/src/components/SplitCol/SplitCol.tsx +7 -7
  1289. package/src/components/SplitLayout/SplitLayout.tsx +15 -9
  1290. package/src/components/SubnavigationBar/SubnavigationBar.tsx +2 -2
  1291. package/src/components/SubnavigationButton/SubnavigationButton.tsx +8 -8
  1292. package/src/components/Switch/Switch.tsx +15 -9
  1293. package/src/components/Tabbar/Tabbar.tsx +2 -2
  1294. package/src/components/TabbarItem/TabbarItem.tsx +3 -3
  1295. package/src/components/Tabs/Tabs.tsx +7 -7
  1296. package/src/components/Tabs/TabsModeContext.ts +1 -1
  1297. package/src/components/TabsItem/TabsItem.tsx +5 -5
  1298. package/src/components/Tappable/Tappable.tsx +3 -3
  1299. package/src/components/Tappable/state.tsx +2 -2
  1300. package/src/components/Textarea/Textarea.tsx +14 -10
  1301. package/src/components/ToolButton/ToolButton.tsx +4 -4
  1302. package/src/components/Tooltip/Tooltip.tsx +6 -6
  1303. package/src/components/TooltipBase/TooltipBase.tsx +10 -10
  1304. package/src/components/Touch/Touch.tsx +16 -16
  1305. package/src/components/Typography/Caption/Caption.tsx +1 -1
  1306. package/src/components/Typography/DisplayTitle/DisplayTitle.tsx +1 -1
  1307. package/src/components/Typography/EllipsisText/EllipsisText.tsx +3 -3
  1308. package/src/components/Typography/Headline/Headline.tsx +1 -1
  1309. package/src/components/Typography/Title/Title.tsx +1 -1
  1310. package/src/components/Typography/Typography.tsx +6 -6
  1311. package/src/components/UnstyledTextField/UnstyledTextField.tsx +1 -1
  1312. package/src/components/UsersStack/UsersStack.tsx +6 -6
  1313. package/src/components/View/View.module.css +1 -3
  1314. package/src/components/View/View.module.css.d.ts.map +1 -1
  1315. package/src/components/View/View.tsx +4 -4
  1316. package/src/components/View/ViewInfinite.tsx +11 -11
  1317. package/src/components/WriteBar/WriteBar.tsx +21 -15
  1318. package/src/components/WriteBarIcon/WriteBarIcon.tsx +3 -3
  1319. package/src/helpers/math.ts +1 -1
  1320. package/src/hooks/useAdaptivityWithJSMediaQueries.ts +3 -1
  1321. package/src/hooks/useAutoDetectColorScheme.ts +8 -30
  1322. package/src/hooks/useCalendar.ts +2 -2
  1323. package/src/hooks/useDateInput.ts +5 -5
  1324. package/src/hooks/useDraggableWithDomApi/types.ts +1 -1
  1325. package/src/hooks/useEnsuredControl.ts +4 -4
  1326. package/src/hooks/useFloatingElement.tsx +4 -4
  1327. package/src/hooks/useFocusTrap/FocusGuard.tsx +1 -1
  1328. package/src/hooks/useFocusTrap/useFocusTrap.tsx +17 -15
  1329. package/src/hooks/useFocusVisibleClassName.ts +3 -3
  1330. package/src/hooks/useGlobalEscKeyDown.ts +2 -2
  1331. package/src/hooks/useMediaQueryMatch.ts +34 -0
  1332. package/src/hooks/useMergeProps.ts +2 -2
  1333. package/src/hooks/useModalManager/types.ts +8 -8
  1334. package/src/hooks/usePagination.ts +4 -4
  1335. package/src/hooks/usePatchChildren.ts +1 -1
  1336. package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.tsx → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.tsx} +3 -3
  1337. package/src/hooks/useSnackbarManager/components/SnackbarHolder.tsx +6 -2
  1338. package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.tsx → SnackbarsContainer/SnackbarsContainer.tsx} +6 -6
  1339. package/src/hooks/useSnackbarManager/types.ts +11 -11
  1340. package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +1 -1
  1341. package/src/index.ts +6 -2
  1342. package/src/lib/SSR.tsx +4 -4
  1343. package/src/lib/accessibility.ts +1 -1
  1344. package/src/lib/adaptivity/functions.ts +10 -1
  1345. package/src/lib/animation/useCSSKeyframesAnimationController.ts +6 -6
  1346. package/src/lib/animation/useCSSTransition.ts +15 -13
  1347. package/src/lib/animation/useReducedMotion.ts +2 -25
  1348. package/src/lib/calendar.ts +5 -2
  1349. package/src/lib/date.ts +11 -11
  1350. package/src/lib/dom.tsx +2 -2
  1351. package/src/lib/floating/functions.ts +2 -2
  1352. package/src/lib/floating/types/component.ts +9 -9
  1353. package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +26 -19
  1354. package/src/lib/floating/useFloatingWithInteractions/types.ts +15 -15
  1355. package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +2 -2
  1356. package/src/lib/getNavId.ts +2 -2
  1357. package/src/lib/layouts/layoutProps.ts +5 -0
  1358. package/src/lib/layouts/resolveLayoutProps.ts +3 -3
  1359. package/src/lib/layouts/types.ts +40 -27
  1360. package/src/lib/select.ts +2 -2
  1361. package/src/lib/sheet/useBottomSheet.ts +4 -4
  1362. package/src/lib/tokens/TokensClassProvider.tsx +1 -1
  1363. package/src/lib/tokens/types.ts +2 -2
  1364. package/src/lib/utils.ts +8 -3
  1365. package/src/types.ts +18 -10
  1366. package/dist/components/DropZone/components/DropZoneGrid.d.ts.map +0 -1
  1367. package/dist/components/DropZone/components/DropZoneGrid.js.map +0 -1
  1368. package/dist/cssm/components/DropZone/components/DropZoneGrid.js.map +0 -1
  1369. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.js.map +0 -1
  1370. package/dist/cssm/hooks/useSnackbarManager/components/SnackbarsContainer.js.map +0 -1
  1371. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.d.ts.map +0 -1
  1372. package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.js.map +0 -1
  1373. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer.d.ts.map +0 -1
  1374. package/dist/hooks/useSnackbarManager/components/SnackbarsContainer.js.map +0 -1
  1375. /package/dist/cssm/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.js +0 -0
  1376. /package/dist/cssm/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css +0 -0
  1377. /package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css} +0 -0
  1378. /package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css → SnackbarsContainer/SnackbarsContainer.module.css} +0 -0
  1379. /package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css +0 -0
  1380. /package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css.d.ts.map +0 -0
  1381. /package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css} +0 -0
  1382. /package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css.d.ts.map → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css.d.ts.map} +0 -0
  1383. /package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css → SnackbarsContainer/SnackbarsContainer.module.css} +0 -0
  1384. /package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css.d.ts.map → SnackbarsContainer/SnackbarsContainer.module.css.d.ts.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Clickable/useState.tsx"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\n\nimport * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { mergeCalls } from '../../lib/mergeCalls';\nimport { useStateWithDelay } from './useStateWithDelay';\n\nexport interface StateProps {\n /**\n * Указывает, должен ли компонент реагировать на `hover`-состояние.\n */\n hasHover?: boolean;\n /**\n * Позволяет управлять `hovered`-состоянием извне.\n */\n hovered?: boolean;\n /**\n * Позволяет управлять `activated`-состоянием извне.\n */\n activated?: boolean;\n /**\n * Указывает, должен ли компонент реагировать на `active`-состояние.\n */\n hasActive?: boolean;\n\n /**\n * Позволяет родительскому компоненту\n * иметь `hovered`-cостояние при наведении\n * на любой дочерний элемент.\n * По умолчанию состояние hovered у родителя сбрасывается.\n *\n * Присваивается родителькому компоненту.\n *\n * @example\n * <Tappable hasHoverWithChildren>\n * <IconButton />\n * <IconButton />\n * <IconButton />\n * </Tappable>\n */\n hasHoverWithChildren?: boolean;\n\n /**\n * Позволяет родительскому компоненту показывать hovered-состояние при наведении\n * на текущий дочерний компонент.\n *\n * Присваивается дочернему компоненту.\n *\n * @example\n * <Tappable>\n * <IconButton unlockParentHover />\n * <IconButton unlockParentHover />\n * <IconButton />\n * </Tappable>\n */\n unlockParentHover?: boolean;\n\n /**\n * Длительность показа `active`-состояния.\n */\n activeEffectDelay?: number;\n\n /**\n * Стиль подсветки `active`-состояния.\n */\n activeClassName?: string;\n\n /**\n * Стиль подсветки `hover`-состояния.\n */\n hoverClassName?: string;\n}\n\nexport const DEFAULT_ACTIVE_EFFECT_DELAY = 600;\n\nconst ACTIVE_DELAY = 70;\n\ninterface UseHoverProps extends Pick<StateProps, 'hovered' | 'hasHover'> {\n /**\n * Блокирование активации состояний.\n */\n lockState?: boolean;\n setParentStateLock?: (v: boolean) => void;\n}\n\n/**\n * Управляет наведением на компонент, игнорирует тач события.\n */\nexport function useHover({\n hovered,\n hasHover = true,\n lockState = false,\n setParentStateLock = noop,\n}: UseHoverProps = {}) {\n const [hoveredStateLocal, setHoveredStateLocal] = React.useState(false);\n\n const prevIsHoveredRef = React.useRef<boolean | undefined>(undefined);\n\n React.useEffect(() => {\n if (!hasHover) {\n setHoveredStateLocal(false);\n prevIsHoveredRef.current = false;\n setParentStateLock(false);\n }\n }, [hasHover, setParentStateLock]);\n\n const handleHover = React.useCallback(\n (isHover: boolean) => {\n setHoveredStateLocal(isHover);\n\n const isHovered =\n hovered ??\n calculateStateValue({\n hasState: hasHover,\n isLocked: lockState,\n stateValueLocal: isHover,\n });\n\n // проверка сделана чтобы реже вызывать обновление состояния\n // контекста родителя\n if (isHovered !== prevIsHoveredRef.current) {\n prevIsHoveredRef.current = isHovered;\n setParentStateLock(isHovered);\n }\n },\n [setParentStateLock, hasHover, hovered, lockState],\n );\n\n const onPointerEnter: React.PointerEventHandler<any> = (e) => {\n if (e.pointerType === 'touch') {\n return;\n }\n\n handleHover(true);\n };\n\n const onPointerLeave = () => {\n handleHover(false);\n };\n\n const isHovered =\n hovered ??\n calculateStateValue({\n hasState: hasHover,\n isLocked: lockState,\n stateValueLocal: hoveredStateLocal,\n });\n\n return {\n isHovered,\n onPointerEnter: hasHover ? onPointerEnter : noop,\n onPointerLeave: hasHover ? onPointerLeave : noop,\n };\n}\n\ninterface UseActiveProps extends Pick<StateProps, 'activated' | 'activeEffectDelay' | 'hasActive'> {\n /**\n * Блокирование активации состояний.\n */\n lockState: boolean;\n setParentStateLock: (v: boolean) => void;\n}\n\n/**\n * Управляет активацией компонента.\n */\nfunction useActive({\n activated,\n activeEffectDelay,\n hasActive = true,\n lockState,\n setParentStateLock,\n}: UseActiveProps) {\n // передаём setParentStateLock, чтобы функция вызывалась вместе с установкой стейта,\n // если установка отложена c помощью delay, то и вызов будет отложен\n const [activatedState, setActivated] = useStateWithDelay<boolean>(false, 0, setParentStateLock);\n\n // Список нажатий которые не требуется отменять\n const pointersUpRef = React.useRef<Set<number>>(null);\n if (pointersUpRef.current === null) {\n pointersUpRef.current = new Set<number>();\n }\n\n React.useEffect(() => {\n if (lockState || !hasActive) {\n // Сбрасываем setActivated если обнаруживаем lockState или !hasActive\n setActivated(false);\n }\n }, [lockState, hasActive, setActivated]);\n\n const onPointerDown = () => {\n if (lockState) {\n return;\n }\n\n setActivated(true, ACTIVE_DELAY);\n // намеренно выставляем lock, так как setActivated вызов отложен\n // а у отложенного setActivated setParentStateLock тоже вызовется отложено\n // родитель сейчас тоже обработает это же событие PointerDown\n // если мы не залочим activatedState у родителя сейчас, то родитель выставит active состояние\n setParentStateLock(true);\n };\n\n const onPointerCancel: React.PointerEventHandler = (e) => {\n if (pointersUpRef.current!.has(e.pointerId)) {\n pointersUpRef.current!.delete(e.pointerId);\n return;\n }\n\n setActivated(false);\n };\n\n const onPointerUp: React.PointerEventHandler = (e) => {\n pointersUpRef.current!.add(e.pointerId);\n\n if (lockState) {\n return;\n }\n\n setActivated(true);\n setActivated(false, activeEffectDelay);\n };\n\n const isActivated =\n activated ??\n calculateStateValue({\n hasState: hasActive,\n isLocked: lockState,\n stateValueLocal: activatedState,\n });\n\n return {\n isActivated,\n onPointerLeave: hasActive ? onPointerCancel : noop,\n onPointerDown: hasActive ? onPointerDown : noop,\n onPointerCancel: hasActive ? onPointerCancel : noop,\n onPointerUp: hasActive ? onPointerUp : noop,\n };\n}\n\ninterface ClickableLockStateContextInterface {\n lockHoverStateBubbling?: (v: boolean) => void;\n lockActiveStateBubbling?: (v: boolean) => void;\n}\n\nexport const ClickableLockStateContext: React.Context<ClickableLockStateContextInterface> =\n React.createContext<ClickableLockStateContextInterface>({\n lockHoverStateBubbling: undefined,\n lockActiveStateBubbling: undefined,\n });\n\n/**\n * Блокирует стейт на всплытие.\n */\nfunction useLockState(\n setParentStateLockBubbling: (v: boolean) => void,\n): readonly [boolean, (v: boolean) => void, (...args: any[]) => void] {\n const [lockState, setLockState] = React.useState(false);\n\n const setStateLockBubblingImmediate = React.useCallback(\n (isLock: boolean) => {\n setLockState(isLock);\n setParentStateLockBubbling(isLock);\n },\n [setParentStateLockBubbling],\n );\n\n return [lockState, setParentStateLockBubbling, setStateLockBubblingImmediate] as const;\n}\n\n/**\n * Управляет состоянием компонента.\n */\nexport function useState({\n hovered,\n hasHover,\n activated,\n hasActive,\n activeEffectDelay,\n unlockParentHover,\n hoverClassName,\n activeClassName,\n}: StateProps): {\n stateClassName: string;\n setLockHoverBubblingImmediate: (...args: any[]) => void;\n setLockActiveBubblingImmediate: (...args: any[]) => void;\n} {\n const { lockHoverStateBubbling = noop, lockActiveStateBubbling = noop } =\n React.useContext(ClickableLockStateContext);\n\n const [lockHoverState, setParentStateLockHoverBubbling, setLockHoverBubblingImmediate] =\n useLockState(unlockParentHover ? noop : lockHoverStateBubbling);\n const [lockActiveState, setParentStateLockActiveBubbling, setLockActiveBubblingImmediate] =\n useLockState(lockActiveStateBubbling);\n\n const { isHovered, ...hoverEvent } = useHover({\n hasHover,\n hovered,\n lockState: lockHoverState,\n setParentStateLock: setParentStateLockHoverBubbling,\n });\n\n const { isActivated, ...activeEvent } = useActive({\n activated,\n hasActive,\n activeEffectDelay,\n lockState: lockActiveState,\n setParentStateLock: setParentStateLockActiveBubbling,\n });\n\n const stateClassName = classNames(isHovered && hoverClassName, isActivated && activeClassName);\n const handlers = mergeCalls(hoverEvent, activeEvent);\n\n return {\n stateClassName,\n setLockHoverBubblingImmediate,\n setLockActiveBubblingImmediate,\n ...handlers,\n };\n}\n\n// Общая функция для определения конечного состояния active/hovered\nfunction calculateStateValue({\n hasState,\n isLocked,\n stateValueLocal,\n}: {\n hasState: boolean;\n isLocked: boolean;\n stateValueLocal: boolean;\n}): boolean {\n return hasState && !isLocked && stateValueLocal;\n}\n"],"names":["React","classNames","noop","mergeCalls","useStateWithDelay","DEFAULT_ACTIVE_EFFECT_DELAY","ACTIVE_DELAY","useHover","hovered","hasHover","lockState","setParentStateLock","hoveredStateLocal","setHoveredStateLocal","useState","prevIsHoveredRef","useRef","undefined","useEffect","current","handleHover","useCallback","isHover","isHovered","calculateStateValue","hasState","isLocked","stateValueLocal","onPointerEnter","e","pointerType","onPointerLeave","useActive","activated","activeEffectDelay","hasActive","activatedState","setActivated","pointersUpRef","Set","onPointerDown","onPointerCancel","has","pointerId","delete","onPointerUp","add","isActivated","ClickableLockStateContext","createContext","lockHoverStateBubbling","lockActiveStateBubbling","useLockState","setParentStateLockBubbling","setLockState","setStateLockBubblingImmediate","isLock","unlockParentHover","hoverClassName","activeClassName","useContext","lockHoverState","setParentStateLockHoverBubbling","setLockHoverBubblingImmediate","lockActiveState","setParentStateLockActiveBubbling","setLockActiveBubblingImmediate","hoverEvent","activeEvent","stateClassName","handlers"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Clickable/useState.tsx"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\n\nimport * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { mergeCalls } from '../../lib/mergeCalls';\nimport { useStateWithDelay } from './useStateWithDelay';\n\nexport interface StateProps {\n /**\n * Указывает, должен ли компонент реагировать на `hover`-состояние.\n */\n hasHover?: boolean | undefined;\n /**\n * Позволяет управлять `hovered`-состоянием извне.\n */\n hovered?: boolean | undefined;\n /**\n * Позволяет управлять `activated`-состоянием извне.\n */\n activated?: boolean | undefined;\n /**\n * Указывает, должен ли компонент реагировать на `active`-состояние.\n */\n hasActive?: boolean | undefined;\n\n /**\n * Позволяет родительскому компоненту\n * иметь `hovered`-cостояние при наведении\n * на любой дочерний элемент.\n * По умолчанию состояние hovered у родителя сбрасывается.\n *\n * Присваивается родителькому компоненту.\n *\n * @example\n * <Tappable hasHoverWithChildren>\n * <IconButton />\n * <IconButton />\n * <IconButton />\n * </Tappable>\n */\n hasHoverWithChildren?: boolean | undefined;\n\n /**\n * Позволяет родительскому компоненту показывать hovered-состояние при наведении\n * на текущий дочерний компонент.\n *\n * Присваивается дочернему компоненту.\n *\n * @example\n * <Tappable>\n * <IconButton unlockParentHover />\n * <IconButton unlockParentHover />\n * <IconButton />\n * </Tappable>\n */\n unlockParentHover?: boolean | undefined;\n\n /**\n * Длительность показа `active`-состояния.\n */\n activeEffectDelay?: number | undefined;\n\n /**\n * Стиль подсветки `active`-состояния.\n */\n activeClassName?: string | undefined;\n\n /**\n * Стиль подсветки `hover`-состояния.\n */\n hoverClassName?: string | undefined;\n}\n\nexport const DEFAULT_ACTIVE_EFFECT_DELAY = 600;\n\nconst ACTIVE_DELAY = 70;\n\ninterface UseHoverProps extends Pick<StateProps, 'hovered' | 'hasHover'> {\n /**\n * Блокирование активации состояний.\n */\n lockState?: boolean | undefined;\n setParentStateLock?: ((v: boolean) => void) | undefined;\n}\n\n/**\n * Управляет наведением на компонент, игнорирует тач события.\n */\nexport function useHover({\n hovered,\n hasHover = true,\n lockState = false,\n setParentStateLock = noop,\n}: UseHoverProps = {}) {\n const [hoveredStateLocal, setHoveredStateLocal] = React.useState(false);\n\n const prevIsHoveredRef = React.useRef<boolean | undefined>(undefined);\n\n React.useEffect(() => {\n if (!hasHover) {\n setHoveredStateLocal(false);\n prevIsHoveredRef.current = false;\n setParentStateLock(false);\n }\n }, [hasHover, setParentStateLock]);\n\n const handleHover = React.useCallback(\n (isHover: boolean) => {\n setHoveredStateLocal(isHover);\n\n const isHovered =\n hovered ??\n calculateStateValue({\n hasState: hasHover,\n isLocked: lockState,\n stateValueLocal: isHover,\n });\n\n // проверка сделана чтобы реже вызывать обновление состояния\n // контекста родителя\n if (isHovered !== prevIsHoveredRef.current) {\n prevIsHoveredRef.current = isHovered;\n setParentStateLock(isHovered);\n }\n },\n [setParentStateLock, hasHover, hovered, lockState],\n );\n\n const onPointerEnter: React.PointerEventHandler<any> = (e) => {\n if (e.pointerType === 'touch') {\n return;\n }\n\n handleHover(true);\n };\n\n const onPointerLeave = () => {\n handleHover(false);\n };\n\n const isHovered =\n hovered ??\n calculateStateValue({\n hasState: hasHover,\n isLocked: lockState,\n stateValueLocal: hoveredStateLocal,\n });\n\n return {\n isHovered,\n onPointerEnter: hasHover ? onPointerEnter : noop,\n onPointerLeave: hasHover ? onPointerLeave : noop,\n };\n}\n\ninterface UseActiveProps extends Pick<StateProps, 'activated' | 'activeEffectDelay' | 'hasActive'> {\n /**\n * Блокирование активации состояний.\n */\n lockState: boolean;\n setParentStateLock: (v: boolean) => void;\n}\n\n/**\n * Управляет активацией компонента.\n */\nfunction useActive({\n activated,\n activeEffectDelay,\n hasActive = true,\n lockState,\n setParentStateLock,\n}: UseActiveProps) {\n // передаём setParentStateLock, чтобы функция вызывалась вместе с установкой стейта,\n // если установка отложена c помощью delay, то и вызов будет отложен\n const [activatedState, setActivated] = useStateWithDelay<boolean>(false, 0, setParentStateLock);\n\n // Список нажатий которые не требуется отменять\n const pointersUpRef = React.useRef<Set<number>>(null);\n if (pointersUpRef.current === null) {\n pointersUpRef.current = new Set<number>();\n }\n\n React.useEffect(() => {\n if (lockState || !hasActive) {\n // Сбрасываем setActivated если обнаруживаем lockState или !hasActive\n setActivated(false);\n }\n }, [lockState, hasActive, setActivated]);\n\n const onPointerDown = () => {\n if (lockState) {\n return;\n }\n\n setActivated(true, ACTIVE_DELAY);\n // намеренно выставляем lock, так как setActivated вызов отложен\n // а у отложенного setActivated setParentStateLock тоже вызовется отложено\n // родитель сейчас тоже обработает это же событие PointerDown\n // если мы не залочим activatedState у родителя сейчас, то родитель выставит active состояние\n setParentStateLock(true);\n };\n\n const onPointerCancel: React.PointerEventHandler = (e) => {\n if (pointersUpRef.current!.has(e.pointerId)) {\n pointersUpRef.current!.delete(e.pointerId);\n return;\n }\n\n setActivated(false);\n };\n\n const onPointerUp: React.PointerEventHandler = (e) => {\n pointersUpRef.current!.add(e.pointerId);\n\n if (lockState) {\n return;\n }\n\n setActivated(true);\n setActivated(false, activeEffectDelay);\n };\n\n const isActivated =\n activated ??\n calculateStateValue({\n hasState: hasActive,\n isLocked: lockState,\n stateValueLocal: activatedState,\n });\n\n return {\n isActivated,\n onPointerLeave: hasActive ? onPointerCancel : noop,\n onPointerDown: hasActive ? onPointerDown : noop,\n onPointerCancel: hasActive ? onPointerCancel : noop,\n onPointerUp: hasActive ? onPointerUp : noop,\n };\n}\n\ninterface ClickableLockStateContextInterface {\n lockHoverStateBubbling?: ((v: boolean) => void) | undefined;\n lockActiveStateBubbling?: ((v: boolean) => void) | undefined;\n}\n\nexport const ClickableLockStateContext: React.Context<ClickableLockStateContextInterface> =\n React.createContext<ClickableLockStateContextInterface>({\n lockHoverStateBubbling: undefined,\n lockActiveStateBubbling: undefined,\n });\n\n/**\n * Блокирует стейт на всплытие.\n */\nfunction useLockState(\n setParentStateLockBubbling: (v: boolean) => void,\n): readonly [boolean, (v: boolean) => void, (...args: any[]) => void] {\n const [lockState, setLockState] = React.useState(false);\n\n const setStateLockBubblingImmediate = React.useCallback(\n (isLock: boolean) => {\n setLockState(isLock);\n setParentStateLockBubbling(isLock);\n },\n [setParentStateLockBubbling],\n );\n\n return [lockState, setParentStateLockBubbling, setStateLockBubblingImmediate] as const;\n}\n\n/**\n * Управляет состоянием компонента.\n */\nexport function useState({\n hovered,\n hasHover,\n activated,\n hasActive,\n activeEffectDelay,\n unlockParentHover,\n hoverClassName,\n activeClassName,\n}: StateProps): {\n stateClassName: string;\n setLockHoverBubblingImmediate: (...args: any[]) => void;\n setLockActiveBubblingImmediate: (...args: any[]) => void;\n} {\n const { lockHoverStateBubbling = noop, lockActiveStateBubbling = noop } =\n React.useContext(ClickableLockStateContext);\n\n const [lockHoverState, setParentStateLockHoverBubbling, setLockHoverBubblingImmediate] =\n useLockState(unlockParentHover ? noop : lockHoverStateBubbling);\n const [lockActiveState, setParentStateLockActiveBubbling, setLockActiveBubblingImmediate] =\n useLockState(lockActiveStateBubbling);\n\n const { isHovered, ...hoverEvent } = useHover({\n hasHover,\n hovered,\n lockState: lockHoverState,\n setParentStateLock: setParentStateLockHoverBubbling,\n });\n\n const { isActivated, ...activeEvent } = useActive({\n activated,\n hasActive,\n activeEffectDelay,\n lockState: lockActiveState,\n setParentStateLock: setParentStateLockActiveBubbling,\n });\n\n const stateClassName = classNames(isHovered && hoverClassName, isActivated && activeClassName);\n const handlers = mergeCalls(hoverEvent, activeEvent);\n\n return {\n stateClassName,\n setLockHoverBubblingImmediate,\n setLockActiveBubblingImmediate,\n ...handlers,\n };\n}\n\n// Общая функция для определения конечного состояния active/hovered\nfunction calculateStateValue({\n hasState,\n isLocked,\n stateValueLocal,\n}: {\n hasState: boolean;\n isLocked: boolean;\n stateValueLocal: boolean;\n}): boolean {\n return hasState && !isLocked && stateValueLocal;\n}\n"],"names":["React","classNames","noop","mergeCalls","useStateWithDelay","DEFAULT_ACTIVE_EFFECT_DELAY","ACTIVE_DELAY","useHover","hovered","hasHover","lockState","setParentStateLock","hoveredStateLocal","setHoveredStateLocal","useState","prevIsHoveredRef","useRef","undefined","useEffect","current","handleHover","useCallback","isHover","isHovered","calculateStateValue","hasState","isLocked","stateValueLocal","onPointerEnter","e","pointerType","onPointerLeave","useActive","activated","activeEffectDelay","hasActive","activatedState","setActivated","pointersUpRef","Set","onPointerDown","onPointerCancel","has","pointerId","delete","onPointerUp","add","isActivated","ClickableLockStateContext","createContext","lockHoverStateBubbling","lockActiveStateBubbling","useLockState","setParentStateLockBubbling","setLockState","setStateLockBubblingImmediate","isLock","unlockParentHover","hoverClassName","activeClassName","useContext","lockHoverState","setParentStateLockHoverBubbling","setLockHoverBubblingImmediate","lockActiveState","setParentStateLockActiveBubbling","setLockActiveBubblingImmediate","hoverEvent","activeEvent","stateClassName","handlers"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProvider.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { IconAppearanceProvider } from '@vkontakte/icons';\nimport { useAutoDetectColorScheme } from '../../hooks/useAutoDetectColorScheme';\nimport { useAutoDetectDirection } from '../../hooks/useAutoDetectDirection';\nimport { TokensClassProvider } from '../../lib/tokens/TokensClassProvider';\nimport { excludeKeysWithUndefined } from '../../lib/utils';\nimport {\n ConfigProviderContext,\n type ConfigProviderContextInterface,\n useConfigProvider,\n useConfigProviderContextMemo,\n} from './ConfigProviderContext';\n\nexport interface ConfigProviderProps extends Partial<ConfigProviderContextInterface> {\n /**\n * Содержимое.\n */\n children: React.ReactNode;\n}\n\n/**\n * @see https://vkui.io/components/config-provider\n */\nexport const ConfigProvider = (propsRaw: ConfigProviderProps): React.ReactNode => {\n const props = excludeKeysWithUndefined(propsRaw);\n const parentConfig = useConfigProvider();\n\n const mergeProps = {\n ...parentConfig,\n ...props,\n };\n\n const colorScheme = useAutoDetectColorScheme(mergeProps.colorScheme);\n const direction = useAutoDetectDirection(mergeProps.direction);\n\n const configContext = useConfigProviderContextMemo({\n ...mergeProps,\n colorScheme,\n direction,\n });\n\n return (\n <ConfigProviderContext.Provider value={configContext}>\n <IconAppearanceProvider value={colorScheme}>\n <TokensClassProvider>{mergeProps.children}</TokensClassProvider>\n </IconAppearanceProvider>\n </ConfigProviderContext.Provider>\n );\n};\n"],"names":["IconAppearanceProvider","useAutoDetectColorScheme","useAutoDetectDirection","TokensClassProvider","excludeKeysWithUndefined","ConfigProviderContext","useConfigProvider","useConfigProviderContextMemo","ConfigProvider","propsRaw","props","parentConfig","mergeProps","colorScheme","direction","configContext","Provider","value","children"],"mappings":"AAAA;;AAGA,SAASA,sBAAsB,QAAQ,mBAAmB;AAC1D,SAASC,wBAAwB,QAAQ,0CAAuC;AAChF,SAASC,sBAAsB,QAAQ,wCAAqC;AAC5E,SAASC,mBAAmB,QAAQ,0CAAuC;AAC3E,SAASC,wBAAwB,QAAQ,qBAAkB;AAC3D,SACEC,qBAAqB,EAErBC,iBAAiB,EACjBC,4BAA4B,QACvB,6BAA0B;AASjC;;CAEC,GACD,OAAO,MAAMC,iBAAiB,CAACC;IAC7B,MAAMC,QAAQN,yBAAyBK;IACvC,MAAME,eAAeL;IAErB,MAAMM,aAAa;QACjB,GAAGD,YAAY;QACf,GAAGD,KAAK;IACV;IAEA,MAAMG,cAAcZ,yBAAyBW,WAAWC,WAAW;IACnE,MAAMC,YAAYZ,uBAAuBU,WAAWE,SAAS;IAE7D,MAAMC,gBAAgBR,6BAA6B;QACjD,GAAGK,UAAU;QACbC;QACAC;IACF;IAEA,qBACE,KAACT,sBAAsBW,QAAQ;QAACC,OAAOF;kBACrC,cAAA,KAACf;YAAuBiB,OAAOJ;sBAC7B,cAAA,KAACV;0BAAqBS,WAAWM,QAAQ;;;;AAIjD,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProvider.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { IconAppearanceProvider } from '@vkontakte/icons';\nimport { useAutoDetectColorScheme } from '../../hooks/useAutoDetectColorScheme';\nimport { useAutoDetectDirection } from '../../hooks/useAutoDetectDirection';\nimport { TokensClassProvider } from '../../lib/tokens/TokensClassProvider';\nimport { excludeKeysWithUndefined } from '../../lib/utils';\nimport type { PartialWithUndefined } from '../../types';\nimport {\n ConfigProviderContext,\n type ConfigProviderContextInterface,\n useConfigProvider,\n useConfigProviderContextMemo,\n} from './ConfigProviderContext';\n\nexport interface ConfigProviderProps extends PartialWithUndefined<ConfigProviderContextInterface> {\n /**\n * Содержимое.\n */\n children: React.ReactNode;\n}\n\n/**\n * @see https://vkui.io/components/config-provider\n */\nexport const ConfigProvider = (propsRaw: ConfigProviderProps): React.ReactNode => {\n const props = excludeKeysWithUndefined(propsRaw);\n const parentConfig = useConfigProvider();\n\n const mergeProps = {\n ...parentConfig,\n ...props,\n };\n\n const colorScheme = useAutoDetectColorScheme(mergeProps.colorScheme);\n const direction = useAutoDetectDirection(mergeProps.direction);\n\n const configContext = useConfigProviderContextMemo({\n ...mergeProps,\n colorScheme,\n direction,\n });\n\n return (\n <ConfigProviderContext.Provider value={configContext}>\n <IconAppearanceProvider value={colorScheme}>\n <TokensClassProvider>{mergeProps.children}</TokensClassProvider>\n </IconAppearanceProvider>\n </ConfigProviderContext.Provider>\n );\n};\n"],"names":["IconAppearanceProvider","useAutoDetectColorScheme","useAutoDetectDirection","TokensClassProvider","excludeKeysWithUndefined","ConfigProviderContext","useConfigProvider","useConfigProviderContextMemo","ConfigProvider","propsRaw","props","parentConfig","mergeProps","colorScheme","direction","configContext","Provider","value","children"],"mappings":"AAAA;;AAGA,SAASA,sBAAsB,QAAQ,mBAAmB;AAC1D,SAASC,wBAAwB,QAAQ,0CAAuC;AAChF,SAASC,sBAAsB,QAAQ,wCAAqC;AAC5E,SAASC,mBAAmB,QAAQ,0CAAuC;AAC3E,SAASC,wBAAwB,QAAQ,qBAAkB;AAE3D,SACEC,qBAAqB,EAErBC,iBAAiB,EACjBC,4BAA4B,QACvB,6BAA0B;AASjC;;CAEC,GACD,OAAO,MAAMC,iBAAiB,CAACC;IAC7B,MAAMC,QAAQN,yBAAyBK;IACvC,MAAME,eAAeL;IAErB,MAAMM,aAAa;QACjB,GAAGD,YAAY;QACf,GAAGD,KAAK;IACV;IAEA,MAAMG,cAAcZ,yBAAyBW,WAAWC,WAAW;IACnE,MAAMC,YAAYZ,uBAAuBU,WAAWE,SAAS;IAE7D,MAAMC,gBAAgBR,6BAA6B;QACjD,GAAGK,UAAU;QACbC;QACAC;IACF;IAEA,qBACE,KAACT,sBAAsBW,QAAQ;QAACC,OAAOF;kBACrC,cAAA,KAACf;YAAuBiB,OAAOJ;sBAC7B,cAAA,KAACV;0BAAqBS,WAAWM,QAAQ;;;;AAIjD,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ContentBadge/ContentBadge.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { Tappable } from '../Tappable/Tappable';\nimport { captionClassNames } from '../Typography/Caption/Caption';\nimport { footnoteClassNames } from '../Typography/Footnote/Footnote';\nimport { type TypographyProps, weightClassNames } from '../Typography/Typography';\nimport { ContentBadgeContext } from './ContentBadgeContext';\nimport { ContentBadgeIconSlot } from './ContentBadgeIconSlot';\nimport type { ContentBadgeModeType, ContentBadgeSizeType } from './types';\nimport styles from './ContentBadge.module.css';\n\nconst appearanceClassNames = {\n 'accent': {\n primary: styles.primaryAccent,\n secondary: styles.secondaryAccent,\n outline: styles.outlineAccent,\n },\n 'neutral': {\n primary: styles.primaryNeutral,\n secondary: styles.secondaryNeutral,\n outline: styles.outlineNeutral,\n },\n 'accent-green': {\n primary: styles.primaryAccentGreen,\n secondary: styles.secondaryAccentGreen,\n outline: styles.outlineAccentGreen,\n },\n 'accent-red': {\n primary: styles.primaryAccentRed,\n secondary: styles.secondaryAccentRed,\n outline: styles.outlineAccentRed,\n },\n 'overlay': {\n primary: styles.primaryOverlay,\n secondary: styles.secondaryOverlay,\n outline: styles.outlineOverlay,\n },\n};\n\nconst sizeClassNames = {\n s: styles.sizeS,\n m: styles.sizeM,\n l: styles.sizeL,\n};\n\nexport interface ContentBadgeProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n Pick<TypographyProps, 'weight'> {\n /**\n * Вид отображения.\n */\n mode?: ContentBadgeModeType;\n /**\n * Цвет оформления.\n */\n appearance?: 'accent' | 'neutral' | 'accent-green' | 'accent-red' | 'overlay';\n /**\n * Включает приближение значения закругления к форме круга.\n *\n * > Note: игнорируется при size=\"s\".\n */\n capsule?: boolean;\n /**\n * Определяет отступы и размер текста.\n *\n * Соответствие размеров иконок в слоте `<ContentBadge.SlotIcon />`:\n *\n * - size=\"s\" – ⚠️ не поддерживает иконки;\n * - size=\"m\" – при **одиночной** иконке `16x16`, в остальных случаях `12x12`;\n * - size=\"l\" – при **одиночной** иконке `20x20`, в остальных случаях `16x16`.\n */\n size?: ContentBadgeSizeType;\n}\n\n/**\n * Компонент, который позволяет добавить текстовые или иконочные бейджи. Как правило, используются\n * поверх других элементов или рядом с ними.\n *\n * Используйте `ContentBadge.SlotIcon` для размещения иконок внутри `ContentBadge`.\n *\n * @since 6.1.0\n * @see https://vkui.io/components/content-badge\n */\nexport const ContentBadge: React.FC<ContentBadgeProps> & {\n IconSlot: typeof ContentBadgeIconSlot;\n /**\n * @deprecated Since 7.3.4. Используйте `IconSlot`.\n */\n SlotIcon: typeof ContentBadgeIconSlot;\n} = ({\n appearance = 'accent',\n mode = 'primary',\n capsule,\n size = 'm',\n weight = '2',\n children,\n ...restProps\n}: ContentBadgeProps) => {\n const { density = 'none' } = useAdaptivity();\n const typographyClassNames =\n size === 'l' ? footnoteClassNames(density) : captionClassNames(density);\n\n return (\n <Tappable\n baseClassName={classNames(\n styles.host,\n size !== 's' && capsule && styles.capsule,\n mode === 'outline' && styles.modeOutline,\n appearanceClassNames[appearance][mode],\n sizeClassNames[size],\n typographyClassNames,\n weightClassNames(weight),\n )}\n DefaultComponent=\"span\"\n hoverMode=\"opacity\"\n activeMode=\"opacity\"\n {...restProps}\n >\n <ContentBadgeContext.Provider\n value={{ isSingleChild: React.Children.count(children) === 1, size }}\n >\n {children}\n </ContentBadgeContext.Provider>\n </Tappable>\n );\n};\n\nContentBadge.IconSlot = ContentBadgeIconSlot;\nContentBadge.SlotIcon = ContentBadgeIconSlot;\n\nif (process.env.NODE_ENV !== 'production') {\n defineComponentDisplayNames(ContentBadge.IconSlot, 'ContentBadge.IconSlot');\n defineComponentDisplayNames(ContentBadge.SlotIcon, 'ContentBadge.SlotIcon');\n}\n"],"names":["React","classNames","useAdaptivity","defineComponentDisplayNames","Tappable","captionClassNames","footnoteClassNames","weightClassNames","ContentBadgeContext","ContentBadgeIconSlot","styles","appearanceClassNames","primary","primaryAccent","secondary","secondaryAccent","outline","outlineAccent","primaryNeutral","secondaryNeutral","outlineNeutral","primaryAccentGreen","secondaryAccentGreen","outlineAccentGreen","primaryAccentRed","secondaryAccentRed","outlineAccentRed","primaryOverlay","secondaryOverlay","outlineOverlay","sizeClassNames","s","sizeS","m","sizeM","l","sizeL","ContentBadge","appearance","mode","capsule","size","weight","children","restProps","density","typographyClassNames","baseClassName","host","modeOutline","DefaultComponent","hoverMode","activeMode","Provider","value","isSingleChild","Children","count","IconSlot","SlotIcon","process","env","NODE_ENV"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,2BAA2B,QAAQ,iDAA8C;AAE1F,SAASC,QAAQ,QAAQ,0BAAuB;AAChD,SAASC,iBAAiB,QAAQ,mCAAgC;AAClE,SAASC,kBAAkB,QAAQ,qCAAkC;AACrE,SAA+BC,gBAAgB,QAAQ,8BAA2B;AAClF,SAASC,mBAAmB,QAAQ,2BAAwB;AAC5D,SAASC,oBAAoB,QAAQ,4BAAyB;AAE9D,OAAOC,YAAY,4BAA4B;AAE/C,MAAMC,uBAAuB;IAC3B,UAAU;QACRC,SAASF,OAAOG,aAAa;QAC7BC,WAAWJ,OAAOK,eAAe;QACjCC,SAASN,OAAOO,aAAa;IAC/B;IACA,WAAW;QACTL,SAASF,OAAOQ,cAAc;QAC9BJ,WAAWJ,OAAOS,gBAAgB;QAClCH,SAASN,OAAOU,cAAc;IAChC;IACA,gBAAgB;QACdR,SAASF,OAAOW,kBAAkB;QAClCP,WAAWJ,OAAOY,oBAAoB;QACtCN,SAASN,OAAOa,kBAAkB;IACpC;IACA,cAAc;QACZX,SAASF,OAAOc,gBAAgB;QAChCV,WAAWJ,OAAOe,kBAAkB;QACpCT,SAASN,OAAOgB,gBAAgB;IAClC;IACA,WAAW;QACTd,SAASF,OAAOiB,cAAc;QAC9Bb,WAAWJ,OAAOkB,gBAAgB;QAClCZ,SAASN,OAAOmB,cAAc;IAChC;AACF;AAEA,MAAMC,iBAAiB;IACrBC,GAAGrB,OAAOsB,KAAK;IACfC,GAAGvB,OAAOwB,KAAK;IACfC,GAAGzB,OAAO0B,KAAK;AACjB;AA+BA;;;;;;;;CAQC,GACD,OAAO,MAAMC,eAMT,CAAC,EACHC,aAAa,QAAQ,EACrBC,OAAO,SAAS,EAChBC,OAAO,EACPC,OAAO,GAAG,EACVC,SAAS,GAAG,EACZC,QAAQ,EACR,GAAGC,WACe;IAClB,MAAM,EAAEC,UAAU,MAAM,EAAE,GAAG3C;IAC7B,MAAM4C,uBACJL,SAAS,MAAMnC,mBAAmBuC,WAAWxC,kBAAkBwC;IAEjE,qBACE,KAACzC;QACC2C,eAAe9C,WACbS,OAAOsC,IAAI,EACXP,SAAS,OAAOD,WAAW9B,OAAO8B,OAAO,EACzCD,SAAS,aAAa7B,OAAOuC,WAAW,EACxCtC,oBAAoB,CAAC2B,WAAW,CAACC,KAAK,EACtCT,cAAc,CAACW,KAAK,EACpBK,sBACAvC,iBAAiBmC;QAEnBQ,kBAAiB;QACjBC,WAAU;QACVC,YAAW;QACV,GAAGR,SAAS;kBAEb,cAAA,KAACpC,oBAAoB6C,QAAQ;YAC3BC,OAAO;gBAAEC,eAAevD,MAAMwD,QAAQ,CAACC,KAAK,CAACd,cAAc;gBAAGF;YAAK;sBAElEE;;;AAIT,EAAE;AAEFN,aAAaqB,QAAQ,GAAGjD;AACxB4B,aAAasB,QAAQ,GAAGlD;AAExB,IAAImD,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;IACzC3D,4BAA4BkC,aAAaqB,QAAQ,EAAE;IACnDvD,4BAA4BkC,aAAasB,QAAQ,EAAE;AACrD"}
1
+ {"version":3,"sources":["../../../../src/components/ContentBadge/ContentBadge.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { Tappable } from '../Tappable/Tappable';\nimport { captionClassNames } from '../Typography/Caption/Caption';\nimport { footnoteClassNames } from '../Typography/Footnote/Footnote';\nimport { type TypographyProps, weightClassNames } from '../Typography/Typography';\nimport { ContentBadgeContext } from './ContentBadgeContext';\nimport { ContentBadgeIconSlot } from './ContentBadgeIconSlot';\nimport type { ContentBadgeModeType, ContentBadgeSizeType } from './types';\nimport styles from './ContentBadge.module.css';\n\nconst appearanceClassNames = {\n 'accent': {\n primary: styles.primaryAccent,\n secondary: styles.secondaryAccent,\n outline: styles.outlineAccent,\n },\n 'neutral': {\n primary: styles.primaryNeutral,\n secondary: styles.secondaryNeutral,\n outline: styles.outlineNeutral,\n },\n 'accent-green': {\n primary: styles.primaryAccentGreen,\n secondary: styles.secondaryAccentGreen,\n outline: styles.outlineAccentGreen,\n },\n 'accent-red': {\n primary: styles.primaryAccentRed,\n secondary: styles.secondaryAccentRed,\n outline: styles.outlineAccentRed,\n },\n 'overlay': {\n primary: styles.primaryOverlay,\n secondary: styles.secondaryOverlay,\n outline: styles.outlineOverlay,\n },\n};\n\nconst sizeClassNames = {\n s: styles.sizeS,\n m: styles.sizeM,\n l: styles.sizeL,\n};\n\nexport interface ContentBadgeProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n Pick<TypographyProps, 'weight'> {\n /**\n * Вид отображения.\n */\n mode?: ContentBadgeModeType | undefined;\n /**\n * Цвет оформления.\n */\n appearance?: 'accent' | 'neutral' | 'accent-green' | 'accent-red' | 'overlay' | undefined;\n /**\n * Включает приближение значения закругления к форме круга.\n *\n * > Note: игнорируется при size=\"s\".\n */\n capsule?: boolean | undefined;\n /**\n * Определяет отступы и размер текста.\n *\n * Соответствие размеров иконок в слоте `<ContentBadge.SlotIcon />`:\n *\n * - size=\"s\" – ⚠️ не поддерживает иконки;\n * - size=\"m\" – при **одиночной** иконке `16x16`, в остальных случаях `12x12`;\n * - size=\"l\" – при **одиночной** иконке `20x20`, в остальных случаях `16x16`.\n */\n size?: ContentBadgeSizeType | undefined;\n}\n\n/**\n * Компонент, который позволяет добавить текстовые или иконочные бейджи. Как правило, используются\n * поверх других элементов или рядом с ними.\n *\n * Используйте `ContentBadge.SlotIcon` для размещения иконок внутри `ContentBadge`.\n *\n * @since 6.1.0\n * @see https://vkui.io/components/content-badge\n */\nexport const ContentBadge: React.FC<ContentBadgeProps> & {\n IconSlot: typeof ContentBadgeIconSlot;\n /**\n * @deprecated Since 7.3.4. Используйте `IconSlot`.\n */\n SlotIcon: typeof ContentBadgeIconSlot;\n} = ({\n appearance = 'accent',\n mode = 'primary',\n capsule,\n size = 'm',\n weight = '2',\n children,\n ...restProps\n}: ContentBadgeProps) => {\n const { density = 'none' } = useAdaptivity();\n const typographyClassNames =\n size === 'l' ? footnoteClassNames(density) : captionClassNames(density);\n\n return (\n <Tappable\n baseClassName={classNames(\n styles.host,\n size !== 's' && capsule && styles.capsule,\n mode === 'outline' && styles.modeOutline,\n appearanceClassNames[appearance][mode],\n sizeClassNames[size],\n typographyClassNames,\n weightClassNames(weight),\n )}\n DefaultComponent=\"span\"\n hoverMode=\"opacity\"\n activeMode=\"opacity\"\n {...restProps}\n >\n <ContentBadgeContext.Provider\n value={{ isSingleChild: React.Children.count(children) === 1, size }}\n >\n {children}\n </ContentBadgeContext.Provider>\n </Tappable>\n );\n};\n\nContentBadge.IconSlot = ContentBadgeIconSlot;\nContentBadge.SlotIcon = ContentBadgeIconSlot;\n\nif (process.env.NODE_ENV !== 'production') {\n defineComponentDisplayNames(ContentBadge.IconSlot, 'ContentBadge.IconSlot');\n defineComponentDisplayNames(ContentBadge.SlotIcon, 'ContentBadge.SlotIcon');\n}\n"],"names":["React","classNames","useAdaptivity","defineComponentDisplayNames","Tappable","captionClassNames","footnoteClassNames","weightClassNames","ContentBadgeContext","ContentBadgeIconSlot","styles","appearanceClassNames","primary","primaryAccent","secondary","secondaryAccent","outline","outlineAccent","primaryNeutral","secondaryNeutral","outlineNeutral","primaryAccentGreen","secondaryAccentGreen","outlineAccentGreen","primaryAccentRed","secondaryAccentRed","outlineAccentRed","primaryOverlay","secondaryOverlay","outlineOverlay","sizeClassNames","s","sizeS","m","sizeM","l","sizeL","ContentBadge","appearance","mode","capsule","size","weight","children","restProps","density","typographyClassNames","baseClassName","host","modeOutline","DefaultComponent","hoverMode","activeMode","Provider","value","isSingleChild","Children","count","IconSlot","SlotIcon","process","env","NODE_ENV"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,2BAA2B,QAAQ,iDAA8C;AAE1F,SAASC,QAAQ,QAAQ,0BAAuB;AAChD,SAASC,iBAAiB,QAAQ,mCAAgC;AAClE,SAASC,kBAAkB,QAAQ,qCAAkC;AACrE,SAA+BC,gBAAgB,QAAQ,8BAA2B;AAClF,SAASC,mBAAmB,QAAQ,2BAAwB;AAC5D,SAASC,oBAAoB,QAAQ,4BAAyB;AAE9D,OAAOC,YAAY,4BAA4B;AAE/C,MAAMC,uBAAuB;IAC3B,UAAU;QACRC,SAASF,OAAOG,aAAa;QAC7BC,WAAWJ,OAAOK,eAAe;QACjCC,SAASN,OAAOO,aAAa;IAC/B;IACA,WAAW;QACTL,SAASF,OAAOQ,cAAc;QAC9BJ,WAAWJ,OAAOS,gBAAgB;QAClCH,SAASN,OAAOU,cAAc;IAChC;IACA,gBAAgB;QACdR,SAASF,OAAOW,kBAAkB;QAClCP,WAAWJ,OAAOY,oBAAoB;QACtCN,SAASN,OAAOa,kBAAkB;IACpC;IACA,cAAc;QACZX,SAASF,OAAOc,gBAAgB;QAChCV,WAAWJ,OAAOe,kBAAkB;QACpCT,SAASN,OAAOgB,gBAAgB;IAClC;IACA,WAAW;QACTd,SAASF,OAAOiB,cAAc;QAC9Bb,WAAWJ,OAAOkB,gBAAgB;QAClCZ,SAASN,OAAOmB,cAAc;IAChC;AACF;AAEA,MAAMC,iBAAiB;IACrBC,GAAGrB,OAAOsB,KAAK;IACfC,GAAGvB,OAAOwB,KAAK;IACfC,GAAGzB,OAAO0B,KAAK;AACjB;AA+BA;;;;;;;;CAQC,GACD,OAAO,MAAMC,eAMT,CAAC,EACHC,aAAa,QAAQ,EACrBC,OAAO,SAAS,EAChBC,OAAO,EACPC,OAAO,GAAG,EACVC,SAAS,GAAG,EACZC,QAAQ,EACR,GAAGC,WACe;IAClB,MAAM,EAAEC,UAAU,MAAM,EAAE,GAAG3C;IAC7B,MAAM4C,uBACJL,SAAS,MAAMnC,mBAAmBuC,WAAWxC,kBAAkBwC;IAEjE,qBACE,KAACzC;QACC2C,eAAe9C,WACbS,OAAOsC,IAAI,EACXP,SAAS,OAAOD,WAAW9B,OAAO8B,OAAO,EACzCD,SAAS,aAAa7B,OAAOuC,WAAW,EACxCtC,oBAAoB,CAAC2B,WAAW,CAACC,KAAK,EACtCT,cAAc,CAACW,KAAK,EACpBK,sBACAvC,iBAAiBmC;QAEnBQ,kBAAiB;QACjBC,WAAU;QACVC,YAAW;QACV,GAAGR,SAAS;kBAEb,cAAA,KAACpC,oBAAoB6C,QAAQ;YAC3BC,OAAO;gBAAEC,eAAevD,MAAMwD,QAAQ,CAACC,KAAK,CAACd,cAAc;gBAAGF;YAAK;sBAElEE;;;AAIT,EAAE;AAEFN,aAAaqB,QAAQ,GAAGjD;AACxB4B,aAAasB,QAAQ,GAAGlD;AAExB,IAAImD,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;IACzC3D,4BAA4BkC,aAAaqB,QAAQ,EAAE;IACnDvD,4BAA4BkC,aAAasB,QAAQ,EAAE;AACrD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ContentCard/ContentCard.tsx"],"sourcesContent":["import type * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { getFetchPriorityProp } from '../../lib/utils';\nimport type { HasComponent, HasRef, HasRootRef } from '../../types';\nimport { Card, type CardProps } from '../Card/Card';\nimport { Tappable, type TappableOmitProps } from '../Tappable/Tappable';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './ContentCard.module.css';\n\nexport interface ContentCardProps\n extends HasRootRef<HTMLDivElement>,\n HasComponent,\n Omit<TappableOmitProps, 'getRootRef' | 'crossOrigin' | 'title' | 'src'>,\n Omit<React.ImgHTMLAttributes<HTMLImageElement>, keyof React.HTMLAttributes<HTMLImageElement>>,\n HasRef<HTMLImageElement> {\n /**\n Текст над заголовком.\n */\n overTitle?: React.ReactNode;\n /**\n Заголовок.\n */\n title?: React.ReactNode;\n /**\n Позволяет поменять тег используемый для заголовка.\n */\n titleComponent?: React.ElementType;\n /**\n Текст.\n */\n description?: React.ReactNode;\n /**\n Нижний текст.\n */\n caption?: React.ReactNode;\n /**\n Максимальная высота изображения.\n */\n maxHeight?: number;\n /**\n * Внешний вид карточки.\n */\n mode?: CardProps['mode'];\n /**\n * Пользовательское значения стиля `object-fit` для картинки\n * Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/object-fit).\n */\n imageObjectFit?: React.CSSProperties['objectFit'];\n}\n\n/**\n * @see https://vkui.io/components/content-card\n */\nexport const ContentCard = ({\n overTitle,\n title,\n titleComponent = 'span',\n description,\n caption,\n // card props\n className,\n mode = 'shadow',\n style,\n getRootRef,\n // img props\n getRef,\n maxHeight,\n src,\n srcSet,\n alt = '',\n width = '100%',\n height,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n useMap,\n fetchPriority,\n imageObjectFit,\n hasHover = false,\n hasActive = false,\n Component = 'li',\n ...restProps\n}: ContentCardProps): React.ReactNode => {\n return (\n <Card\n mode={mode}\n getRootRef={getRootRef}\n Component={Component}\n style={style}\n className={classNames(restProps.disabled && styles.disabled, className)}\n >\n <Tappable\n hasHover={hasHover}\n hasActive={hasActive}\n {...restProps}\n baseClassName={styles.tappable}\n >\n {(src || srcSet) && (\n <img\n // safari и firefox нужно чтобы атрибут `loading` был до `src`\n //\n // https://mihaly4.ru/image-loading-lazy-bug\n loading={loading}\n ref={getRef}\n className={styles.img}\n src={src}\n srcSet={srcSet}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n referrerPolicy={referrerPolicy}\n sizes={sizes}\n useMap={useMap}\n {...getFetchPriorityProp(fetchPriority)}\n height={height}\n width={width}\n style={{ maxHeight, objectFit: imageObjectFit }}\n />\n )}\n <div className={styles.body}>\n {hasReactNode(overTitle) && (\n <Caption\n className={classNames(styles.text, styles.overTitle)}\n weight=\"1\"\n level=\"3\"\n caps\n >\n {overTitle}\n </Caption>\n )}\n {hasReactNode(title) && (\n <Headline className={styles.text} weight=\"2\" level=\"1\" Component={titleComponent}>\n {title}\n </Headline>\n )}\n {hasReactNode(description) && <Text className={styles.text}>{description}</Text>}\n {hasReactNode(caption) && (\n <Footnote className={classNames(styles.text, styles.caption)}>{caption}</Footnote>\n )}\n </div>\n </Tappable>\n </Card>\n );\n};\n"],"names":["classNames","hasReactNode","getFetchPriorityProp","Card","Tappable","Caption","Footnote","Headline","Text","styles","ContentCard","overTitle","title","titleComponent","description","caption","className","mode","style","getRootRef","getRef","maxHeight","src","srcSet","alt","width","height","crossOrigin","decoding","loading","referrerPolicy","sizes","useMap","fetchPriority","imageObjectFit","hasHover","hasActive","Component","restProps","disabled","baseClassName","tappable","img","ref","objectFit","div","body","text","weight","level","caps"],"mappings":";AACA,SAASA,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,oBAAoB,QAAQ,qBAAkB;AAEvD,SAASC,IAAI,QAAwB,kBAAe;AACpD,SAASC,QAAQ,QAAgC,0BAAuB;AACxE,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,IAAI,QAAQ,6BAA0B;AAC/C,OAAOC,YAAY,2BAA2B;AA2C9C;;CAEC,GACD,OAAO,MAAMC,cAAc,CAAC,EAC1BC,SAAS,EACTC,KAAK,EACLC,iBAAiB,MAAM,EACvBC,WAAW,EACXC,OAAO,EACP,aAAa;AACbC,SAAS,EACTC,OAAO,QAAQ,EACfC,KAAK,EACLC,UAAU,EACV,YAAY;AACZC,MAAM,EACNC,SAAS,EACTC,GAAG,EACHC,MAAM,EACNC,MAAM,EAAE,EACRC,QAAQ,MAAM,EACdC,MAAM,EACNC,WAAW,EACXC,QAAQ,EACRC,OAAO,EACPC,cAAc,EACdC,KAAK,EACLC,MAAM,EACNC,aAAa,EACbC,cAAc,EACdC,WAAW,KAAK,EAChBC,YAAY,KAAK,EACjBC,YAAY,IAAI,EAChB,GAAGC,WACc;IACjB,qBACE,KAACnC;QACCc,MAAMA;QACNE,YAAYA;QACZkB,WAAWA;QACXnB,OAAOA;QACPF,WAAWhB,WAAWsC,UAAUC,QAAQ,IAAI9B,OAAO8B,QAAQ,EAAEvB;kBAE7D,cAAA,MAACZ;YACC+B,UAAUA;YACVC,WAAWA;YACV,GAAGE,SAAS;YACbE,eAAe/B,OAAOgC,QAAQ;;gBAE5BnB,CAAAA,OAAOC,MAAK,mBACZ,KAACmB;oBACC,8DAA8D;oBAC9D,EAAE;oBACF,4CAA4C;oBAC5Cb,SAASA;oBACTc,KAAKvB;oBACLJ,WAAWP,OAAOiC,GAAG;oBACrBpB,KAAKA;oBACLC,QAAQA;oBACRC,KAAKA;oBACLG,aAAaA;oBACbC,UAAUA;oBACVE,gBAAgBA;oBAChBC,OAAOA;oBACPC,QAAQA;oBACP,GAAG9B,qBAAqB+B,cAAc;oBACvCP,QAAQA;oBACRD,OAAOA;oBACPP,OAAO;wBAAEG;wBAAWuB,WAAWV;oBAAe;;8BAGlD,MAACW;oBAAI7B,WAAWP,OAAOqC,IAAI;;wBACxB7C,aAAaU,4BACZ,KAACN;4BACCW,WAAWhB,WAAWS,OAAOsC,IAAI,EAAEtC,OAAOE,SAAS;4BACnDqC,QAAO;4BACPC,OAAM;4BACNC,IAAI;sCAEHvC;;wBAGJV,aAAaW,wBACZ,KAACL;4BAASS,WAAWP,OAAOsC,IAAI;4BAAEC,QAAO;4BAAIC,OAAM;4BAAIZ,WAAWxB;sCAC/DD;;wBAGJX,aAAaa,8BAAgB,KAACN;4BAAKQ,WAAWP,OAAOsC,IAAI;sCAAGjC;;wBAC5Db,aAAac,0BACZ,KAACT;4BAASU,WAAWhB,WAAWS,OAAOsC,IAAI,EAAEtC,OAAOM,OAAO;sCAAIA;;;;;;;AAM3E,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/ContentCard/ContentCard.tsx"],"sourcesContent":["import type * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { getFetchPriorityProp } from '../../lib/utils';\nimport type { HasComponent, HasRef, HasRootRef } from '../../types';\nimport { Card, type CardProps } from '../Card/Card';\nimport { Tappable, type TappableOmitProps } from '../Tappable/Tappable';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './ContentCard.module.css';\n\nexport interface ContentCardProps\n extends HasRootRef<HTMLDivElement>,\n HasComponent,\n Omit<TappableOmitProps, 'getRootRef' | 'crossOrigin' | 'title' | 'src'>,\n Omit<React.ImgHTMLAttributes<HTMLImageElement>, keyof React.HTMLAttributes<HTMLImageElement>>,\n HasRef<HTMLImageElement> {\n /**\n Текст над заголовком.\n */\n overTitle?: React.ReactNode | undefined;\n /**\n Заголовок.\n */\n title?: React.ReactNode | undefined;\n /**\n Позволяет поменять тег используемый для заголовка.\n */\n titleComponent?: React.ElementType | undefined;\n /**\n Текст.\n */\n description?: React.ReactNode | undefined;\n /**\n Нижний текст.\n */\n caption?: React.ReactNode | undefined;\n /**\n Максимальная высота изображения.\n */\n maxHeight?: number | undefined;\n /**\n * Внешний вид карточки.\n */\n mode?: CardProps['mode'] | undefined;\n /**\n * Пользовательское значения стиля `object-fit` для картинки\n * Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/object-fit).\n */\n imageObjectFit?: React.CSSProperties['objectFit'] | undefined;\n}\n\n/**\n * @see https://vkui.io/components/content-card\n */\nexport const ContentCard = ({\n overTitle,\n title,\n titleComponent = 'span',\n description,\n caption,\n // card props\n className,\n mode = 'shadow',\n style,\n getRootRef,\n // img props\n getRef,\n maxHeight,\n src,\n srcSet,\n alt = '',\n width = '100%',\n height,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n useMap,\n fetchPriority,\n imageObjectFit,\n hasHover = false,\n hasActive = false,\n Component = 'li',\n ...restProps\n}: ContentCardProps): React.ReactNode => {\n return (\n <Card\n mode={mode}\n getRootRef={getRootRef}\n Component={Component}\n style={style}\n className={classNames(restProps.disabled && styles.disabled, className)}\n >\n <Tappable\n hasHover={hasHover}\n hasActive={hasActive}\n {...restProps}\n baseClassName={styles.tappable}\n >\n {(src || srcSet) && (\n <img\n // safari и firefox нужно чтобы атрибут `loading` был до `src`\n //\n // https://mihaly4.ru/image-loading-lazy-bug\n loading={loading}\n ref={getRef}\n className={styles.img}\n src={src}\n srcSet={srcSet}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n referrerPolicy={referrerPolicy}\n sizes={sizes}\n useMap={useMap}\n {...getFetchPriorityProp(fetchPriority)}\n height={height}\n width={width}\n style={{ maxHeight, objectFit: imageObjectFit }}\n />\n )}\n <div className={styles.body}>\n {hasReactNode(overTitle) && (\n <Caption\n className={classNames(styles.text, styles.overTitle)}\n weight=\"1\"\n level=\"3\"\n caps\n >\n {overTitle}\n </Caption>\n )}\n {hasReactNode(title) && (\n <Headline className={styles.text} weight=\"2\" level=\"1\" Component={titleComponent}>\n {title}\n </Headline>\n )}\n {hasReactNode(description) && <Text className={styles.text}>{description}</Text>}\n {hasReactNode(caption) && (\n <Footnote className={classNames(styles.text, styles.caption)}>{caption}</Footnote>\n )}\n </div>\n </Tappable>\n </Card>\n );\n};\n"],"names":["classNames","hasReactNode","getFetchPriorityProp","Card","Tappable","Caption","Footnote","Headline","Text","styles","ContentCard","overTitle","title","titleComponent","description","caption","className","mode","style","getRootRef","getRef","maxHeight","src","srcSet","alt","width","height","crossOrigin","decoding","loading","referrerPolicy","sizes","useMap","fetchPriority","imageObjectFit","hasHover","hasActive","Component","restProps","disabled","baseClassName","tappable","img","ref","objectFit","div","body","text","weight","level","caps"],"mappings":";AACA,SAASA,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,oBAAoB,QAAQ,qBAAkB;AAEvD,SAASC,IAAI,QAAwB,kBAAe;AACpD,SAASC,QAAQ,QAAgC,0BAAuB;AACxE,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,IAAI,QAAQ,6BAA0B;AAC/C,OAAOC,YAAY,2BAA2B;AA2C9C;;CAEC,GACD,OAAO,MAAMC,cAAc,CAAC,EAC1BC,SAAS,EACTC,KAAK,EACLC,iBAAiB,MAAM,EACvBC,WAAW,EACXC,OAAO,EACP,aAAa;AACbC,SAAS,EACTC,OAAO,QAAQ,EACfC,KAAK,EACLC,UAAU,EACV,YAAY;AACZC,MAAM,EACNC,SAAS,EACTC,GAAG,EACHC,MAAM,EACNC,MAAM,EAAE,EACRC,QAAQ,MAAM,EACdC,MAAM,EACNC,WAAW,EACXC,QAAQ,EACRC,OAAO,EACPC,cAAc,EACdC,KAAK,EACLC,MAAM,EACNC,aAAa,EACbC,cAAc,EACdC,WAAW,KAAK,EAChBC,YAAY,KAAK,EACjBC,YAAY,IAAI,EAChB,GAAGC,WACc;IACjB,qBACE,KAACnC;QACCc,MAAMA;QACNE,YAAYA;QACZkB,WAAWA;QACXnB,OAAOA;QACPF,WAAWhB,WAAWsC,UAAUC,QAAQ,IAAI9B,OAAO8B,QAAQ,EAAEvB;kBAE7D,cAAA,MAACZ;YACC+B,UAAUA;YACVC,WAAWA;YACV,GAAGE,SAAS;YACbE,eAAe/B,OAAOgC,QAAQ;;gBAE5BnB,CAAAA,OAAOC,MAAK,mBACZ,KAACmB;oBACC,8DAA8D;oBAC9D,EAAE;oBACF,4CAA4C;oBAC5Cb,SAASA;oBACTc,KAAKvB;oBACLJ,WAAWP,OAAOiC,GAAG;oBACrBpB,KAAKA;oBACLC,QAAQA;oBACRC,KAAKA;oBACLG,aAAaA;oBACbC,UAAUA;oBACVE,gBAAgBA;oBAChBC,OAAOA;oBACPC,QAAQA;oBACP,GAAG9B,qBAAqB+B,cAAc;oBACvCP,QAAQA;oBACRD,OAAOA;oBACPP,OAAO;wBAAEG;wBAAWuB,WAAWV;oBAAe;;8BAGlD,MAACW;oBAAI7B,WAAWP,OAAOqC,IAAI;;wBACxB7C,aAAaU,4BACZ,KAACN;4BACCW,WAAWhB,WAAWS,OAAOsC,IAAI,EAAEtC,OAAOE,SAAS;4BACnDqC,QAAO;4BACPC,OAAM;4BACNC,IAAI;sCAEHvC;;wBAGJV,aAAaW,wBACZ,KAACL;4BAASS,WAAWP,OAAOsC,IAAI;4BAAEC,QAAO;4BAAIC,OAAM;4BAAIZ,WAAWxB;sCAC/DD;;wBAGJX,aAAaa,8BAAgB,KAACN;4BAAKQ,WAAWP,OAAOsC,IAAI;sCAAGjC;;wBAC5Db,aAAac,0BACZ,KAACT;4BAASU,WAAWhB,WAAWS,OAAOsC,IAAI,EAAEtC,OAAOM,OAAO;sCAAIA;;;;;;;AAM3E,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Counter/Counter.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Headline } from '../Typography/Headline/Headline';\nimport styles from './Counter.module.css';\n\nconst modeClassNames = {\n primary: styles.modePrimary,\n contrast: styles.modeContrast,\n tertiary: styles.modeTertiary,\n inherit: styles.modeInherit,\n};\n\nconst appearanceClassNames: Record<string, string> = {\n 'custom': styles.appearanceCustom,\n 'accent': styles.appearanceAccent,\n 'neutral': styles.appearanceNeutral,\n 'accent-green': styles.appearanceAccentGreen,\n 'accent-red': styles.appearanceAccentRed,\n};\n\nconst sizeClassNames = {\n s: styles.sizeS,\n m: styles.sizeM,\n};\n\nexport interface CounterProps extends HTMLAttributesWithRootRef<HTMLSpanElement> {\n /**\n * Режим отображения счетчика.\n */\n mode?: 'primary' | 'contrast' | 'tertiary' | 'inherit';\n\n /**\n * Внешний вид счетчика.\n */\n appearance?: 'accent' | 'neutral' | 'accent-green' | 'accent-red' | 'custom';\n\n /**\n * Пользовательский цвет (работает только при appearance=\"custom\")\n * - При mode=\"primary\" - изменяет фон\n * - При mode=\"contrast\" - изменяет цвет текста\n * - При mode=\"tertiary\" - изменяет цвет текста\n * - При mode=\"inherit\" - не работает.\n */\n color?: string;\n /**\n * Размер счетчика.\n */\n size?: 's' | 'm';\n}\n\n/**\n * @see https://vkui.io/components/counter\n */\nexport const Counter = ({\n mode = 'inherit',\n appearance: appearanceProp,\n color,\n size = 'm',\n children,\n className,\n style: styleProp,\n ...restProps\n}: CounterProps): React.ReactNode => {\n const appearance = React.useMemo<CounterProps['appearance']>(() => {\n if (mode === 'inherit') {\n return undefined;\n }\n if (appearanceProp) {\n return appearanceProp;\n }\n return 'accent';\n }, [appearanceProp, mode]);\n\n const style: (React.CSSProperties & CSSCustomProperties<string | undefined>) | undefined =\n React.useMemo(() => {\n if (mode === 'inherit' || appearance !== 'custom' || !color) {\n return undefined;\n }\n switch (mode) {\n case 'primary':\n return {\n '--vkui_internal--counter_background': color,\n };\n case 'contrast':\n case 'tertiary':\n return {\n '--vkui_internal--counter_foreground': color,\n };\n }\n }, [appearance, color, mode]);\n\n if (React.Children.count(children) === 0) {\n return null;\n }\n\n const CounterTypography = size === 's' ? Caption : Headline;\n const counterLevel = size === 's' ? '1' : '2';\n\n return (\n <CounterTypography\n {...restProps}\n style={mergeStyle(style, styleProp)}\n Component=\"span\"\n className={classNames(\n 'vkuiInternalCounter',\n styles.host,\n modeClassNames[mode],\n !!appearance && appearanceClassNames[appearance],\n sizeClassNames[size],\n className,\n )}\n level={counterLevel}\n >\n {children}\n </CounterTypography>\n );\n};\n"],"names":["React","classNames","mergeStyle","Caption","Headline","styles","modeClassNames","primary","modePrimary","contrast","modeContrast","tertiary","modeTertiary","inherit","modeInherit","appearanceClassNames","appearanceCustom","appearanceAccent","appearanceNeutral","appearanceAccentGreen","appearanceAccentRed","sizeClassNames","s","sizeS","m","sizeM","Counter","mode","appearance","appearanceProp","color","size","children","className","style","styleProp","restProps","useMemo","undefined","Children","count","CounterTypography","counterLevel","Component","host","level"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,QAAQ,8BAA2B;AAEtD,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,OAAOC,YAAY,uBAAuB;AAE1C,MAAMC,iBAAiB;IACrBC,SAASF,OAAOG,WAAW;IAC3BC,UAAUJ,OAAOK,YAAY;IAC7BC,UAAUN,OAAOO,YAAY;IAC7BC,SAASR,OAAOS,WAAW;AAC7B;AAEA,MAAMC,uBAA+C;IACnD,UAAUV,OAAOW,gBAAgB;IACjC,UAAUX,OAAOY,gBAAgB;IACjC,WAAWZ,OAAOa,iBAAiB;IACnC,gBAAgBb,OAAOc,qBAAqB;IAC5C,cAAcd,OAAOe,mBAAmB;AAC1C;AAEA,MAAMC,iBAAiB;IACrBC,GAAGjB,OAAOkB,KAAK;IACfC,GAAGnB,OAAOoB,KAAK;AACjB;AA2BA;;CAEC,GACD,OAAO,MAAMC,UAAU,CAAC,EACtBC,OAAO,SAAS,EAChBC,YAAYC,cAAc,EAC1BC,KAAK,EACLC,OAAO,GAAG,EACVC,QAAQ,EACRC,SAAS,EACTC,OAAOC,SAAS,EAChB,GAAGC,WACU;IACb,MAAMR,aAAa5B,MAAMqC,OAAO,CAA6B;QAC3D,IAAIV,SAAS,WAAW;YACtB,OAAOW;QACT;QACA,IAAIT,gBAAgB;YAClB,OAAOA;QACT;QACA,OAAO;IACT,GAAG;QAACA;QAAgBF;KAAK;IAEzB,MAAMO,QACJlC,MAAMqC,OAAO,CAAC;QACZ,IAAIV,SAAS,aAAaC,eAAe,YAAY,CAACE,OAAO;YAC3D,OAAOQ;QACT;QACA,OAAQX;YACN,KAAK;gBACH,OAAO;oBACL,uCAAuCG;gBACzC;YACF,KAAK;YACL,KAAK;gBACH,OAAO;oBACL,uCAAuCA;gBACzC;QACJ;IACF,GAAG;QAACF;QAAYE;QAAOH;KAAK;IAE9B,IAAI3B,MAAMuC,QAAQ,CAACC,KAAK,CAACR,cAAc,GAAG;QACxC,OAAO;IACT;IAEA,MAAMS,oBAAoBV,SAAS,MAAM5B,UAAUC;IACnD,MAAMsC,eAAeX,SAAS,MAAM,MAAM;IAE1C,qBACE,KAACU;QACE,GAAGL,SAAS;QACbF,OAAOhC,WAAWgC,OAAOC;QACzBQ,WAAU;QACVV,WAAWhC,WACT,uBACAI,OAAOuC,IAAI,EACXtC,cAAc,CAACqB,KAAK,EACpB,CAAC,CAACC,cAAcb,oBAAoB,CAACa,WAAW,EAChDP,cAAc,CAACU,KAAK,EACpBE;QAEFY,OAAOH;kBAENV;;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Counter/Counter.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Headline } from '../Typography/Headline/Headline';\nimport styles from './Counter.module.css';\n\nconst modeClassNames = {\n primary: styles.modePrimary,\n contrast: styles.modeContrast,\n tertiary: styles.modeTertiary,\n inherit: styles.modeInherit,\n};\n\nconst appearanceClassNames: Record<string, string> = {\n 'custom': styles.appearanceCustom,\n 'accent': styles.appearanceAccent,\n 'neutral': styles.appearanceNeutral,\n 'accent-green': styles.appearanceAccentGreen,\n 'accent-red': styles.appearanceAccentRed,\n};\n\nconst sizeClassNames = {\n s: styles.sizeS,\n m: styles.sizeM,\n};\n\nexport interface CounterProps extends HTMLAttributesWithRootRef<HTMLSpanElement> {\n /**\n * Режим отображения счетчика.\n */\n mode?: 'primary' | 'contrast' | 'tertiary' | 'inherit' | undefined;\n\n /**\n * Внешний вид счетчика.\n */\n appearance?: 'accent' | 'neutral' | 'accent-green' | 'accent-red' | 'custom' | undefined;\n\n /**\n * Пользовательский цвет (работает только при appearance=\"custom\")\n * - При mode=\"primary\" - изменяет фон\n * - При mode=\"contrast\" - изменяет цвет текста\n * - При mode=\"tertiary\" - изменяет цвет текста\n * - При mode=\"inherit\" - не работает.\n */\n color?: string | undefined;\n /**\n * Размер счетчика.\n */\n size?: 's' | 'm' | undefined;\n}\n\n/**\n * @see https://vkui.io/components/counter\n */\nexport const Counter = ({\n mode = 'inherit',\n appearance: appearanceProp,\n color,\n size = 'm',\n children,\n className,\n style: styleProp,\n ...restProps\n}: CounterProps): React.ReactNode => {\n const appearance = React.useMemo<CounterProps['appearance']>(() => {\n if (mode === 'inherit') {\n return undefined;\n }\n if (appearanceProp) {\n return appearanceProp;\n }\n return 'accent';\n }, [appearanceProp, mode]);\n\n const style: (React.CSSProperties & CSSCustomProperties<string | undefined>) | undefined =\n React.useMemo(() => {\n if (mode === 'inherit' || appearance !== 'custom' || !color) {\n return undefined;\n }\n switch (mode) {\n case 'primary':\n return {\n '--vkui_internal--counter_background': color,\n };\n case 'contrast':\n case 'tertiary':\n return {\n '--vkui_internal--counter_foreground': color,\n };\n }\n }, [appearance, color, mode]);\n\n if (React.Children.count(children) === 0) {\n return null;\n }\n\n const CounterTypography = size === 's' ? Caption : Headline;\n const counterLevel = size === 's' ? '1' : '2';\n\n return (\n <CounterTypography\n {...restProps}\n style={mergeStyle(style, styleProp)}\n Component=\"span\"\n className={classNames(\n 'vkuiInternalCounter',\n styles.host,\n modeClassNames[mode],\n !!appearance && appearanceClassNames[appearance],\n sizeClassNames[size],\n className,\n )}\n level={counterLevel}\n >\n {children}\n </CounterTypography>\n );\n};\n"],"names":["React","classNames","mergeStyle","Caption","Headline","styles","modeClassNames","primary","modePrimary","contrast","modeContrast","tertiary","modeTertiary","inherit","modeInherit","appearanceClassNames","appearanceCustom","appearanceAccent","appearanceNeutral","appearanceAccentGreen","appearanceAccentRed","sizeClassNames","s","sizeS","m","sizeM","Counter","mode","appearance","appearanceProp","color","size","children","className","style","styleProp","restProps","useMemo","undefined","Children","count","CounterTypography","counterLevel","Component","host","level"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,QAAQ,8BAA2B;AAEtD,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,OAAOC,YAAY,uBAAuB;AAE1C,MAAMC,iBAAiB;IACrBC,SAASF,OAAOG,WAAW;IAC3BC,UAAUJ,OAAOK,YAAY;IAC7BC,UAAUN,OAAOO,YAAY;IAC7BC,SAASR,OAAOS,WAAW;AAC7B;AAEA,MAAMC,uBAA+C;IACnD,UAAUV,OAAOW,gBAAgB;IACjC,UAAUX,OAAOY,gBAAgB;IACjC,WAAWZ,OAAOa,iBAAiB;IACnC,gBAAgBb,OAAOc,qBAAqB;IAC5C,cAAcd,OAAOe,mBAAmB;AAC1C;AAEA,MAAMC,iBAAiB;IACrBC,GAAGjB,OAAOkB,KAAK;IACfC,GAAGnB,OAAOoB,KAAK;AACjB;AA2BA;;CAEC,GACD,OAAO,MAAMC,UAAU,CAAC,EACtBC,OAAO,SAAS,EAChBC,YAAYC,cAAc,EAC1BC,KAAK,EACLC,OAAO,GAAG,EACVC,QAAQ,EACRC,SAAS,EACTC,OAAOC,SAAS,EAChB,GAAGC,WACU;IACb,MAAMR,aAAa5B,MAAMqC,OAAO,CAA6B;QAC3D,IAAIV,SAAS,WAAW;YACtB,OAAOW;QACT;QACA,IAAIT,gBAAgB;YAClB,OAAOA;QACT;QACA,OAAO;IACT,GAAG;QAACA;QAAgBF;KAAK;IAEzB,MAAMO,QACJlC,MAAMqC,OAAO,CAAC;QACZ,IAAIV,SAAS,aAAaC,eAAe,YAAY,CAACE,OAAO;YAC3D,OAAOQ;QACT;QACA,OAAQX;YACN,KAAK;gBACH,OAAO;oBACL,uCAAuCG;gBACzC;YACF,KAAK;YACL,KAAK;gBACH,OAAO;oBACL,uCAAuCA;gBACzC;QACJ;IACF,GAAG;QAACF;QAAYE;QAAOH;KAAK;IAE9B,IAAI3B,MAAMuC,QAAQ,CAACC,KAAK,CAACR,cAAc,GAAG;QACxC,OAAO;IACT;IAEA,MAAMS,oBAAoBV,SAAS,MAAM5B,UAAUC;IACnD,MAAMsC,eAAeX,SAAS,MAAM,MAAM;IAE1C,qBACE,KAACU;QACE,GAAGL,SAAS;QACbF,OAAOhC,WAAWgC,OAAOC;QACzBQ,WAAU;QACVV,WAAWhC,WACT,uBACAI,OAAOuC,IAAI,EACXtC,cAAc,CAACqB,KAAK,EACpB,CAAC,CAACC,cAAcb,oBAAoB,CAACa,WAAW,EAChDP,cAAc,CAACU,KAAK,EACpBE;QAEFY,OAAOH;kBAENV;;AAGP,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CustomScrollView/CustomScrollView.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HasRootRef } from '../../types';\nimport styles from './CustomScrollView.module.css';\n\nconst overscrollBehaviorClassNames = {\n auto: undefined,\n contain: styles.overscrollBehaviorContain,\n none: styles.overscrollBehaviorNone,\n};\n\nconst scrollBehaviorClassNames = {\n auto: undefined,\n smooth: styles.scrollBehaviorSmooth,\n};\n\nexport interface CustomScrollViewProps\n extends React.AllHTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n /**\n * `className` для компонента.\n */\n className?: HTMLDivElement['className'];\n /**\n * Обработчик события `scroll`.\n */\n onScroll?: (event: React.UIEvent<HTMLDivElement>) => void;\n /**\n * Содержимое.\n */\n children: React.ReactNode;\n /**\n * Поведение overscroll, подробнее можно почитать в [документации](https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior).\n */\n overscrollBehavior?: 'auto' | 'contain' | 'none';\n /**\n * Поведение scroll-behavior, подробнее можно почитать в [документации](https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior).\n */\n scrollBehavior?: 'auto' | 'smooth';\n /**\n * Включение отображения горизонтального скролла.\n */\n enableHorizontalScroll?: boolean;\n /**\n * Скрытие скроллбара.\n *\n * > В версии ниже Firefox 64 будет виден скролл.\n */\n scrollbarHidden?: boolean;\n}\n\n/**\n * @see https://vkui.io/components/custom-scroll-view\n */\nexport const CustomScrollView = ({\n className,\n children,\n enableHorizontalScroll = false,\n onScroll,\n getRootRef,\n overscrollBehavior = 'auto',\n scrollBehavior = 'auto',\n scrollbarHidden = false,\n ...restProps\n}: CustomScrollViewProps): React.ReactNode => {\n return (\n <div\n className={classNames(\n className,\n styles.host,\n enableHorizontalScroll && styles.horizontalScrollEnabled,\n overscrollBehaviorClassNames[overscrollBehavior],\n scrollBehaviorClassNames[scrollBehavior],\n scrollbarHidden && styles.scrollbarHidden,\n )}\n ref={getRootRef}\n onScroll={onScroll}\n {...restProps}\n >\n {children}\n </div>\n );\n};\n"],"names":["classNames","styles","overscrollBehaviorClassNames","auto","undefined","contain","overscrollBehaviorContain","none","overscrollBehaviorNone","scrollBehaviorClassNames","smooth","scrollBehaviorSmooth","CustomScrollView","className","children","enableHorizontalScroll","onScroll","getRootRef","overscrollBehavior","scrollBehavior","scrollbarHidden","restProps","div","host","horizontalScrollEnabled","ref"],"mappings":"AAAA;;AAGA,SAASA,UAAU,QAAQ,kBAAkB;AAE7C,OAAOC,YAAY,gCAAgC;AAEnD,MAAMC,+BAA+B;IACnCC,MAAMC;IACNC,SAASJ,OAAOK,yBAAyB;IACzCC,MAAMN,OAAOO,sBAAsB;AACrC;AAEA,MAAMC,2BAA2B;IAC/BN,MAAMC;IACNM,QAAQT,OAAOU,oBAAoB;AACrC;AAqCA;;CAEC,GACD,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,SAAS,EACTC,QAAQ,EACRC,yBAAyB,KAAK,EAC9BC,QAAQ,EACRC,UAAU,EACVC,qBAAqB,MAAM,EAC3BC,iBAAiB,MAAM,EACvBC,kBAAkB,KAAK,EACvB,GAAGC,WACmB;IACtB,qBACE,KAACC;QACCT,WAAWb,WACTa,WACAZ,OAAOsB,IAAI,EACXR,0BAA0Bd,OAAOuB,uBAAuB,EACxDtB,4BAA4B,CAACgB,mBAAmB,EAChDT,wBAAwB,CAACU,eAAe,EACxCC,mBAAmBnB,OAAOmB,eAAe;QAE3CK,KAAKR;QACLD,UAAUA;QACT,GAAGK,SAAS;kBAEZP;;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/CustomScrollView/CustomScrollView.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HasRootRef } from '../../types';\nimport styles from './CustomScrollView.module.css';\n\nconst overscrollBehaviorClassNames = {\n auto: undefined,\n contain: styles.overscrollBehaviorContain,\n none: styles.overscrollBehaviorNone,\n};\n\nconst scrollBehaviorClassNames = {\n auto: undefined,\n smooth: styles.scrollBehaviorSmooth,\n};\n\nexport interface CustomScrollViewProps\n extends React.AllHTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n /**\n * `className` для компонента.\n */\n className?: HTMLDivElement['className'] | undefined;\n /**\n * Обработчик события `scroll`.\n */\n onScroll?: ((event: React.UIEvent<HTMLDivElement>) => void) | undefined;\n /**\n * Содержимое.\n */\n children: React.ReactNode;\n /**\n * Поведение overscroll, подробнее можно почитать в [документации](https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior).\n */\n overscrollBehavior?: 'auto' | 'contain' | 'none' | undefined;\n /**\n * Поведение scroll-behavior, подробнее можно почитать в [документации](https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior).\n */\n scrollBehavior?: 'auto' | 'smooth' | undefined;\n /**\n * Включение отображения горизонтального скролла.\n */\n enableHorizontalScroll?: boolean | undefined;\n /**\n * Скрытие скроллбара.\n *\n * > В версии ниже Firefox 64 будет виден скролл.\n */\n scrollbarHidden?: boolean | undefined;\n}\n\n/**\n * @see https://vkui.io/components/custom-scroll-view\n */\nexport const CustomScrollView = ({\n className,\n children,\n enableHorizontalScroll = false,\n onScroll,\n getRootRef,\n overscrollBehavior = 'auto',\n scrollBehavior = 'auto',\n scrollbarHidden = false,\n ...restProps\n}: CustomScrollViewProps): React.ReactNode => {\n return (\n <div\n className={classNames(\n className,\n styles.host,\n enableHorizontalScroll && styles.horizontalScrollEnabled,\n overscrollBehaviorClassNames[overscrollBehavior],\n scrollBehaviorClassNames[scrollBehavior],\n scrollbarHidden && styles.scrollbarHidden,\n )}\n ref={getRootRef}\n onScroll={onScroll}\n {...restProps}\n >\n {children}\n </div>\n );\n};\n"],"names":["classNames","styles","overscrollBehaviorClassNames","auto","undefined","contain","overscrollBehaviorContain","none","overscrollBehaviorNone","scrollBehaviorClassNames","smooth","scrollBehaviorSmooth","CustomScrollView","className","children","enableHorizontalScroll","onScroll","getRootRef","overscrollBehavior","scrollBehavior","scrollbarHidden","restProps","div","host","horizontalScrollEnabled","ref"],"mappings":"AAAA;;AAGA,SAASA,UAAU,QAAQ,kBAAkB;AAE7C,OAAOC,YAAY,gCAAgC;AAEnD,MAAMC,+BAA+B;IACnCC,MAAMC;IACNC,SAASJ,OAAOK,yBAAyB;IACzCC,MAAMN,OAAOO,sBAAsB;AACrC;AAEA,MAAMC,2BAA2B;IAC/BN,MAAMC;IACNM,QAAQT,OAAOU,oBAAoB;AACrC;AAqCA;;CAEC,GACD,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,SAAS,EACTC,QAAQ,EACRC,yBAAyB,KAAK,EAC9BC,QAAQ,EACRC,UAAU,EACVC,qBAAqB,MAAM,EAC3BC,iBAAiB,MAAM,EACvBC,kBAAkB,KAAK,EACvB,GAAGC,WACmB;IACtB,qBACE,KAACC;QACCT,WAAWb,WACTa,WACAZ,OAAOsB,IAAI,EACXR,0BAA0Bd,OAAOuB,uBAAuB,EACxDtB,4BAA4B,CAACgB,mBAAmB,EAChDT,wBAAwB,CAACU,eAAe,EACxCC,mBAAmBnB,OAAOmB,eAAe;QAE3CK,KAAKR;QACLD,UAAUA;QACT,GAAGK,SAAS;kBAEZP;;AAGP,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CustomSelect/CustomSelect.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { getRequiredValueByKey } from '../../helpers/getValueByKey';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { useDOM } from '../../lib/dom';\nimport type { Placement } from '../../lib/floating';\nimport { defaultFilterFn, type FilterFn } from '../../lib/select';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { preventDefault } from '../../lib/utils';\nimport type { HasDataAttribute, HasRootRef } from '../../types';\nimport {\n CustomSelectDropdown,\n type CustomSelectDropdownProps,\n} from '../CustomSelectDropdown/CustomSelectDropdown';\nimport { CustomSelectOption } from '../CustomSelectOption/CustomSelectOption';\nimport type { FormFieldProps } from '../FormField/FormField';\nimport {\n type NativeSelectProps,\n NOT_SELECTED,\n remapFromNativeValueToSelectValue,\n type SelectValue,\n} from '../NativeSelect/NativeSelect';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport type { CustomSelectClearButtonProps } from './CustomSelectClearButton';\nimport {\n CustomSelectInput,\n type CustomSelectInputProps,\n} from './CustomSelectInput/CustomSelectInput';\nimport {\n checkDeprecatedProps,\n checkMixControlledAndUncontrolledState,\n checkOptionsValueType,\n filter,\n findSelectedIndex,\n getOptionByValue,\n} from './helpers';\nimport { useAfterItems } from './hooks/useAfterItems';\nimport { useDropdownOpenedController } from './hooks/useDropdownOpenedController';\nimport { useFocusedOptionController } from './hooks/useFocusedOptionController';\nimport { useInputKeyboardController } from './hooks/useInputKeyboardController';\nimport { useInputValueController } from './hooks/useInputValueController';\nimport { useScrollListController } from './hooks/useScrollListController';\nimport { useSelectedOptionController } from './hooks/useSelectedOptionController';\nimport type {\n CustomSelectOptionInterface,\n CustomSelectRenderOption,\n MousePosition,\n PopupDirection,\n} from './types';\nimport styles from './CustomSelect.module.css';\n\nconst densityClassNames = {\n none: styles.densityNone,\n compact: styles.densityCompact,\n};\n\nfunction defaultRenderOptionFn<T extends CustomSelectOptionInterface>({\n option,\n ...props\n}: CustomSelectRenderOption<T>): React.ReactNode {\n return <CustomSelectOption {...props} />;\n}\n\nfunction isMousePositionChanged(event: React.MouseEvent, prevPosition: MousePosition) {\n return (\n Math.abs(prevPosition.x - event.clientX) >= 1 || Math.abs(prevPosition.y - event.clientY) >= 1\n );\n}\n\nconst FETCH_STATUS_RESET_DELAY = 2000;\n\nconst FetchingStatus = ({\n fetching = false,\n options,\n fetchingInProgressLabel = 'Список опций загружается...',\n fetchingCompletedLabel = `Загружено опций: ${options.length}`,\n}: Pick<\n SelectProps,\n 'fetching' | 'fetchingInProgressLabel' | 'fetchingCompletedLabel' | 'options'\n>) => {\n const [status, setStatus] = React.useState<'fetching' | 'loaded' | 'none'>('none');\n\n const content = getRequiredValueByKey(status, {\n fetching: fetchingInProgressLabel,\n loaded:\n typeof fetchingCompletedLabel === 'function'\n ? fetchingCompletedLabel(options.length)\n : fetchingCompletedLabel,\n none: '',\n });\n\n useIsomorphicLayoutEffect(\n function updateStatus() {\n if (fetching) {\n setStatus('fetching');\n } else {\n if (status === 'fetching') {\n setStatus('loaded');\n setTimeout(() => setStatus('none'), FETCH_STATUS_RESET_DELAY);\n }\n }\n },\n [fetching],\n );\n\n return <VisuallyHidden aria-live=\"polite\">{content}</VisuallyHidden>;\n};\n\nexport type { CustomSelectClearButtonProps };\n\nexport interface SelectProps<\n OptionInterfaceT extends CustomSelectOptionInterface = CustomSelectOptionInterface,\n> extends Omit<NativeSelectProps, 'slotProps'>,\n Omit<FormFieldProps, 'maxHeight'>,\n Pick<CustomSelectDropdownProps, 'overscrollBehavior'>,\n Pick<CustomSelectInputProps, 'minLength' | 'maxLength' | 'pattern' | 'form' | 'readOnly'> {\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `root`: свойства для прокидывания в корень компонента;\n * - `select`: свойства для прокидывания в нативный `select`;\n * - `input`: свойства для прокидывания в нативный `input`.\n */\n slotProps?: NativeSelectProps['slotProps'] & {\n input?: React.InputHTMLAttributes<HTMLInputElement> &\n HasDataAttribute &\n HasRootRef<HTMLInputElement>;\n };\n /**\n * @deprecated Since 7.9.0. Вместо этого используйте `slotProps={ input: { getRootRef: ... } }`.\n *\n * Ref на внутрений компонент input.\n */\n getSelectInputRef?: React.Ref<HTMLInputElement>;\n /**\n * Если `true`, то при нажатии на `CustomSelect` в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean;\n /**\n * Текст, который будет отображен, если приходит пустой `options`.\n */\n emptyText?: string;\n /**\n * Событие изменения текстового поля.\n */\n onInputChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /**\n * Список опций в списке.\n */\n options: OptionInterfaceT[];\n /**\n * Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.\n */\n filterFn?: false | FilterFn<OptionInterfaceT>;\n /**\n * Направление раскрытия выпадающего списка.\n */\n popupDirection?: PopupDirection;\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](https://vkui.io/components/custom-select#custom-select-option-api).\n *\n * > ⚠️ Важно: свойство опции `disabled` должно выставляться только через проп `options`.\n * > Запрещается выставлять `disabled` проп опциям в обход `options`, иначе `CustomSelect` не будет знать об актуальном состоянии\n * опции.\n */\n renderOption?: (props: CustomSelectRenderOption<OptionInterfaceT>) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если `true`, то в дропдауне вместо списка опций рисуется спиннер. При переданных `renderDropdown` и `fetching: true`\n * \"победит\" `renderDropdown`.\n */\n fetching?: boolean;\n /**\n * Обработчик закрытия выпадающего списка.\n */\n onClose?: VoidFunction;\n /**\n * Обработчик открытия выпадающего списка.\n */\n onOpen?: VoidFunction;\n /**\n * Кастомная кнопка для очистки значения.\n * Должна принимать обязательное свойство `onClick`.\n */\n ClearButton?: React.ComponentType<CustomSelectClearButtonProps>;\n /**\n * Если `true`, то справа будет отображаться кнопка для очистки значения.\n */\n allowClearButton?: boolean;\n /**\n * Передает атрибут `data-testid` для кнопки очистки.\n */\n clearButtonTestId?: string;\n /**\n * Отступ от выпадающего списка.\n */\n dropdownOffsetDistance?: number;\n /**\n * Ширина раскрывающегося списка зависит от контента.\n */\n dropdownAutoWidth?: boolean;\n /**\n * Использовать Portal для рендеринга выпадающего списка.\n */\n forceDropdownPortal?: boolean;\n /**\n * Отключает максимальную высоту по умолчанию.\n */\n noMaxHeight?: boolean;\n /**\n * Передает атрибут `data-testid` для элемента, внутри которого отображается текст выбранной опции `CustomSelect` или плейсхолдер.\n */\n labelTextTestId?: string;\n /**\n * @deprecated Since 7.9.0. Вместо этого используйте `slotProps={ select: { 'data-testid': ... } }`.\n *\n * Передает атрибут `data-testid` для нативного элемента `select`.\n */\n nativeSelectTestId?: string;\n /**\n * Обработчик события `keyDown` в поле ввода.\n */\n onInputKeyDown?: (e: React.KeyboardEvent, isOpen: boolean) => void;\n /**\n * @deprecated Since 8.0.0. Будет удалено в 9.0.0.\n *\n * Включает режим в котором выбранное значение `CustomSelect` читается скринридерами корректно.\n * В данном режиме введенное в поле ввода значение не сбрасывается при потере фокуса.\n */\n accessible?: boolean /* TODO [>=v9] удалить свойство */;\n /**\n * Текстовая метка для индикации процесса загрузки данных для пользователей скринридерами. По умолчанию: `\"Список опций загружается...\"`.\n */\n fetchingInProgressLabel?: string;\n /**\n * Текстовая метка для индикации завершения процесса загрузки данных для пользователей скринридерами. По умолчанию: `\"Загружено опций: ${options.length}\"`.\n */\n fetchingCompletedLabel?: string | ((optionsCount: number) => string);\n}\n\n/**\n * @see https://vkui.io/components/custom-select\n */\nexport function CustomSelect<OptionInterfaceT extends CustomSelectOptionInterface>(\n props: SelectProps<OptionInterfaceT>,\n): React.ReactNode {\n const {\n // FormFieldProps\n status,\n before,\n\n // CustomSelectDropdownProps\n overscrollBehavior,\n\n // SelectProps\n children,\n getSelectInputRef,\n searchable = false,\n emptyText = 'Ничего не найдено',\n 'onInputChange': onInputChangeProp,\n 'options': options,\n filterFn = defaultFilterFn,\n popupDirection = 'bottom',\n 'renderOption': renderOptionProp = defaultRenderOptionFn,\n renderDropdown,\n fetching,\n onClose,\n onOpen,\n ClearButton,\n allowClearButton = false,\n clearButtonTestId,\n dropdownOffsetDistance = 0,\n dropdownAutoWidth = false,\n forceDropdownPortal,\n noMaxHeight = false,\n labelTextTestId,\n nativeSelectTestId,\n 'onInputKeyDown': onInputKeyDownProp,\n accessible = true,\n fetchingInProgressLabel,\n fetchingCompletedLabel,\n\n // NativeSelectProps\n 'value': selectValue,\n defaultValue,\n onChange,\n getRef,\n multiline,\n placeholder,\n 'icon': iconProp,\n selectType,\n mode,\n align,\n form,\n\n // Input props\n minLength,\n maxLength,\n pattern,\n autoFocus,\n disabled,\n id,\n 'readOnly': readOnlyProp,\n\n // Select props\n required,\n name,\n 'onClick': onSelectClick,\n 'onFocus': onSelectFocus,\n 'onBlur': onSelectBlur,\n\n // other\n 'aria-labelledby': ariaLabelledBy,\n\n slotProps,\n ...restProps\n } = props;\n\n if (process.env.NODE_ENV === 'development') {\n checkOptionsValueType(options);\n checkDeprecatedProps(props);\n }\n\n const { density = 'none' } = useAdaptivity();\n\n const {\n onClick: onRootClick,\n onMouseMove: onRootMouseMove,\n onMouseDown: onRootMouseDown,\n getRootRef: rootRef,\n ...rootRest\n } = useMergeProps<\n Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> &\n HasDataAttribute &\n HasRootRef<HTMLDivElement>\n >(restProps, slotProps?.root);\n\n const { getRootRef: getSelectRef, ...selectRest } = useMergeProps(\n {\n getRootRef: getRef,\n required,\n name,\n form,\n onClick: onSelectClick,\n onFocus: onSelectFocus,\n onBlur: onSelectBlur,\n },\n slotProps?.select,\n );\n\n const {\n getRootRef: getInputRef,\n onChange: onChangeInput,\n onFocus: onInputFocus,\n onBlur: onInputBlur,\n onKeyDown: onNativeInputKeyDown,\n onClick: onNativeInputClick,\n readOnly,\n ...inputRest\n } = useMergeProps(\n {\n getRootRef: getSelectInputRef,\n onChange: onInputChangeProp,\n minLength,\n maxLength,\n pattern,\n autoFocus,\n disabled,\n id,\n readOnly: readOnlyProp,\n placeholder,\n },\n slotProps?.input,\n );\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const handleRootRef = useExternRef(containerRef, rootRef);\n const selectElRef = useExternRef(getSelectRef);\n const selectInputRef = useExternRef(getInputRef);\n\n const propsValue = React.useMemo<SelectValue | undefined>(() => {\n if (selectValue === undefined) {\n return undefined;\n }\n return getOptionByValue(options, selectValue)?.value ?? null;\n }, [options, selectValue]);\n\n const [isControlledOutside, setIsControlledOutside] = React.useState(selectValue !== undefined);\n const [popperPlacement, setPopperPlacement] = React.useState<Placement>(popupDirection);\n\n const {\n nativeSelectValue,\n setNativeSelectValue,\n selectedOptionValue,\n setSelectedOptionValue,\n onNativeSelectChange,\n } = useSelectedOptionController({\n value: propsValue,\n defaultValue,\n isControlledOutside,\n allowClearButton,\n onChange,\n });\n\n const selected = React.useMemo(\n () => options.find((option) => option.value === selectedOptionValue),\n [options, selectedOptionValue],\n );\n\n const { inputValue, onInputChange, resetInputValue, resetInputValueBySelectedOption } =\n useInputValueController({\n options,\n accessible,\n selectedValue: selectedOptionValue,\n onInputChange: onChangeInput,\n });\n\n const filteredOptions = React.useMemo(\n () => filter(options, searchable ? inputValue : '', filterFn),\n [filterFn, inputValue, options, searchable],\n );\n\n const { scrollToElement, optionsWrapperRef, scrollBoxRef } = useScrollListController();\n\n const {\n focusedOptionValue,\n setFocusedOptionValue,\n resetFocusedOption,\n focusOptionByIndex,\n focusOption,\n selectFocusedValue,\n } = useFocusedOptionController({\n selectedOptionValue,\n filteredOptions,\n scrollToElement,\n });\n\n const scrollToSelectedOption = () => {\n scrollToElement(findSelectedIndex(filteredOptions, selectedOptionValue), true);\n };\n\n const [opened, open, close, toggleOpened] = useDropdownOpenedController({\n onOpen: callMultiple(selectFocusedValue, onOpen),\n onOpened: scrollToSelectedOption,\n onClose,\n onClosed: accessible ? resetInputValueBySelectedOption : resetInputValue,\n });\n\n React.useEffect(\n function updateOptionsValue() {\n const value =\n propsValue !== undefined\n ? propsValue\n : remapFromNativeValueToSelectValue(nativeSelectValue);\n setSelectedOptionValue(value);\n setFocusedOptionValue(value);\n },\n [propsValue, nativeSelectValue, setFocusedOptionValue, setSelectedOptionValue],\n );\n\n React.useEffect(\n function syncIsControlledState() {\n setIsControlledOutside((oldIsControlled) => {\n const newIsControlled = propsValue !== undefined;\n checkMixControlledAndUncontrolledState(oldIsControlled, newIsControlled);\n return newIsControlled;\n });\n },\n [propsValue],\n );\n\n useIsomorphicLayoutEffect(() => {\n if (\n filteredOptions.some(({ value }) => nativeSelectValue === value) ||\n (allowClearButton && nativeSelectValue === NOT_SELECTED.NATIVE)\n ) {\n const event = new Event('change', { bubbles: true });\n\n selectElRef.current?.dispatchEvent(event);\n }\n }, [nativeSelectValue]);\n\n const openedClassNames = React.useMemo(\n () =>\n (opened &&\n dropdownOffsetDistance === 0 &&\n (popperPlacement.includes('top') ? styles.popUp : styles.popDown)) ||\n undefined,\n [dropdownOffsetDistance, opened, popperPlacement],\n );\n\n const selectOption = React.useCallback(\n (value: Exclude<SelectValue, null>) => {\n setNativeSelectValue(value ?? NOT_SELECTED.NATIVE);\n close();\n\n const shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync =\n isControlledOutside && propsValue !== nativeSelectValue && nativeSelectValue === value;\n\n if (shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync) {\n const event = new Event('change', { bubbles: true });\n selectElRef.current?.dispatchEvent(event);\n }\n },\n [close, setNativeSelectValue, isControlledOutside, propsValue, nativeSelectValue, selectElRef],\n );\n\n const selectFocused = React.useCallback(() => {\n if (focusedOptionValue === null) {\n return;\n }\n\n selectOption(focusedOptionValue);\n }, [focusedOptionValue, selectOption]);\n\n const handleInputKeyDown = useInputKeyboardController({\n opened,\n open,\n close,\n resetFocusedOption,\n selectFocused,\n focusOption,\n scrollBoxRef,\n onInputKeyDown: onInputKeyDownProp,\n });\n\n const onBlur = React.useCallback(() => {\n close();\n const event = new Event('focusout', { bubbles: true });\n selectElRef.current?.dispatchEvent(event);\n }, [close, selectElRef]);\n\n const onFocus = React.useCallback(() => {\n const event = new Event('focusin', { bubbles: true });\n selectElRef.current?.dispatchEvent(event);\n }, [selectElRef]);\n\n const handleOptionClick = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget,\n );\n const option = filteredOptions[index];\n\n if (option && !option.disabled) {\n selectOption(option.value);\n }\n },\n [filteredOptions, selectOption],\n );\n\n const lastMousePositionRef = React.useRef<MousePosition>({ x: 0, y: 0 });\n const focusOptionOnMouseMove = React.useCallback(\n (e: React.MouseEvent<HTMLElement>, index: number) => {\n if (isMousePositionChanged(e, lastMousePositionRef.current)) {\n focusOptionByIndex(index, false);\n }\n },\n [focusOptionByIndex],\n );\n\n const popupAriaId = React.useId();\n const renderOption = React.useCallback(\n (option: OptionInterfaceT, index: number) => {\n const hovered = option.value === focusedOptionValue;\n const selected = option.value === selectedOptionValue;\n\n return (\n <React.Fragment key={`${typeof option.value}-${option.value}`}>\n {renderOptionProp({\n /**\n * Компилятор сходит с ума из-за рефа внутри focusOptionOnMouseMove.\n * Обходной путь прокидывать ref в свойства для рендер пропов.\n */\n ...(false\n ? {\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: lastMousePositionRef,\n }\n : {}),\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: handleOptionClick,\n onMouseDown: preventDefault,\n // Используем `onMouseMove` вместо `onMouseEnter/onMouseOver`.\n // Потому что если при навигации с клавиатуры курсор наведён на\n // список, то при первом автоматическом скролле списка вызывается событие MouseOver/MouseEnter\n // обработчик которого фокусирует опцию под курсором, хотя при навигация с клавиатуры пользователь мог уйти дальше по списку, это путает.\n // Причём координаты события меняются на пару пикселей по сравнению с прошлым вызовом,\n // а значит нельзя на них опираться, чтобы запретить обработку такого события.\n // C mousemove такой проблемы нет, что позволяет реализовать поведение при наведении с клавиатуры и при наведении мышью идентично `<select>`.\n onMouseMove: (e) => focusOptionOnMouseMove(e, index),\n id: `${popupAriaId}-${option.value}`,\n ...option,\n })}\n </React.Fragment>\n );\n },\n [\n focusedOptionValue,\n selectedOptionValue,\n renderOptionProp,\n handleOptionClick,\n popupAriaId,\n focusOptionOnMouseMove,\n ],\n );\n\n const resolvedContent = React.useMemo(() => {\n const defaultDropdownContent =\n filteredOptions.length > 0 ? (\n <div ref={optionsWrapperRef}>{filteredOptions.map(renderOption)}</div>\n ) : (\n <Footnote className={styles.empty}>{emptyText}</Footnote>\n );\n\n if (typeof renderDropdown === 'function') {\n return renderDropdown({ defaultDropdownContent });\n } else {\n return defaultDropdownContent;\n }\n }, [emptyText, filteredOptions, optionsWrapperRef, renderDropdown, renderOption]);\n\n const afterItems = useAfterItems({\n value: propsValue,\n nativeSelectValue,\n isControlledOutside,\n opened,\n allowClearButton,\n ClearButton,\n onClearButtonClick: () => {\n setNativeSelectValue(NOT_SELECTED.NATIVE);\n resetInputValue();\n selectInputRef.current && selectInputRef.current.focus();\n },\n clearButtonTestId,\n disabled: inputRest.disabled,\n readOnly,\n icon: iconProp,\n });\n\n const { document } = useDOM();\n const passClickAndFocusToInputOnClick = React.useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n // Раньше внешней оберткой CustomSelect был <label>, что позволяло по клику в любую область CustomSelect,\n // даже где нету интерактивного элемента, фокусировать <input> и передавать на него событие клика.\n // Так как мы больше не оборачиваем CustomSelect в <label>, то для обертки CustomSelect мы симулируем работу <label>.\n // передаем фокус и клик по <input>, если пользователь кликнул в зоне обертки.\n // В <label> мы не больше не оборачиваем, потому что это заставляет скринридер\n // дважды произносить текст выбранной опции при фокусе, если CustomSelect связан с внешним <label>.\n // Воспроизводится в некоторых версиях Chrome, при навигации по странице с помощью стрелок.\n // Договорились со специалистом по доступности убрать <label>-обёртки из Select и CustomSelect\n\n if (!selectInputRef.current || !document) {\n return;\n }\n\n const clickTargetIsNotAnInput = e.target !== selectInputRef.current;\n if (clickTargetIsNotAnInput) {\n selectInputRef.current.click();\n\n const inputIsNotFocused = document.activeElement !== selectInputRef.current;\n if (inputIsNotFocused) {\n selectInputRef.current.focus();\n }\n }\n },\n [document, selectInputRef],\n );\n\n const preventInputBlurWhenClickInsideFocusedSelectArea = (\n e: React.MouseEvent<HTMLDivElement>,\n ) => {\n // Так как инпут больше не оборачивается пустым лэйблом, то клик внутри обертки,\n // но вне инпута (например по иконке дропдауна), будет убирать фокус с инпута.\n // Чтобы в такой ситуации отключить blur инпута мы превентим mousedown событие обёртки\n const isInputFocused = document && document.activeElement === selectInputRef.current;\n if (isInputFocused) {\n e.preventDefault();\n }\n };\n\n const ariaActiveDescendantId = focusedOptionValue !== null ? focusedOptionValue : undefined;\n\n const selectInputAriaProps: React.HTMLAttributes<HTMLElement> = {\n 'role': 'combobox',\n 'aria-controls': popupAriaId,\n 'aria-expanded': opened,\n 'aria-activedescendant':\n ariaActiveDescendantId && opened ? `${popupAriaId}-${ariaActiveDescendantId}` : undefined,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-haspopup': 'listbox',\n 'aria-autocomplete': 'none',\n };\n\n const resetOptionFocusOnMouseLeave = React.useCallback(\n (event: React.MouseEvent) => {\n // В Хроме eсли мышка пользователя находится над инпутом селекта,\n // и он с клавиатуры открывает опции, причём одна из опций\n // уже выбрана, то видно, как выбранная опция получает фокус,\n // но потом сразу же его теряет.\n // Связано это с тем, что в этот момент вызывается onMouseLeave, на который у нас\n // завязан сброс состония фокуса у опции. По хорошему фокус должен оставаться.\n // Нам не интересен вызов onMouseLeave если мышка при этом не двигалась.\n if (isMousePositionChanged(event, lastMousePositionRef.current)) {\n resetFocusedOption();\n }\n },\n [resetFocusedOption],\n );\n\n const updateLastMousePosition = (e: React.MouseEvent) => {\n lastMousePositionRef.current = { x: e.clientX, y: e.clientY };\n };\n\n const onClick = (event: React.MouseEvent<HTMLDivElement>) => {\n onRootClick?.(event);\n passClickAndFocusToInputOnClick(event);\n };\n\n const onMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n onRootMouseDown?.(event);\n preventInputBlurWhenClickInsideFocusedSelectArea(event);\n };\n\n const onMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n onRootMouseMove?.(event);\n updateLastMousePosition(event);\n };\n\n const onCustomSelectInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n onFocus();\n onInputFocus?.(event);\n };\n\n const onCustomSelectInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n onBlur();\n onInputBlur?.(event);\n };\n\n return (\n <RootComponent\n baseClassName={classNames(styles.host, density !== 'regular' && densityClassNames[density])}\n getRootRef={handleRootRef}\n onClick={onClick}\n onMouseDown={onMouseDown}\n onMouseMove={onMouseMove}\n {...rootRest}\n >\n <CustomSelectInput\n fetching={fetching}\n searchable={searchable}\n accessible={accessible}\n before={before}\n after={afterItems}\n selectType={selectType || mode || 'default'}\n align={align}\n status={status}\n multiline={multiline}\n labelTextTestId={labelTextTestId}\n slotProps={{\n root: { className: openedClassNames },\n input: {\n autoComplete: 'off',\n autoCapitalize: 'none',\n autoCorrect: 'off',\n spellCheck: 'false',\n getRootRef: selectInputRef,\n onChange: onInputChange,\n value: inputValue,\n readOnly: readOnly || !searchable,\n placeholder,\n onFocus: onCustomSelectInputFocus,\n onBlur: onCustomSelectInputBlur,\n onKeyDown: !readOnly\n ? callMultiple(handleInputKeyDown, onNativeInputKeyDown)\n : onNativeInputKeyDown,\n onClick: !readOnly\n ? callMultiple(toggleOpened, onNativeInputClick)\n : onNativeInputClick,\n ...selectInputAriaProps,\n ...inputRest,\n },\n }}\n >\n {selected?.label}\n </CustomSelectInput>\n\n <FetchingStatus\n fetching={fetching}\n options={filteredOptions}\n fetchingInProgressLabel={fetchingInProgressLabel}\n fetchingCompletedLabel={fetchingCompletedLabel}\n />\n <RootComponent\n Component=\"select\"\n baseClassName={styles.control}\n tabIndex={-1}\n value={nativeSelectValue}\n aria-hidden\n data-testid={nativeSelectTestId}\n onChange={onNativeSelectChange}\n getRootRef={selectElRef}\n {...selectRest}\n >\n {(allowClearButton || nativeSelectValue === NOT_SELECTED.NATIVE) && (\n <option key={NOT_SELECTED.NATIVE} value={NOT_SELECTED.NATIVE} />\n )}\n {options.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </RootComponent>\n {opened && (\n <CustomSelectDropdown\n targetRef={containerRef}\n placement={popperPlacement}\n scrollBoxRef={scrollBoxRef}\n onPlacementChange={setPopperPlacement}\n onMouseLeave={resetOptionFocusOnMouseLeave}\n fetching={fetching}\n overscrollBehavior={overscrollBehavior}\n offsetDistance={dropdownOffsetDistance}\n autoWidth={dropdownAutoWidth}\n forcePortal={forceDropdownPortal}\n noMaxHeight={noMaxHeight}\n role=\"listbox\"\n id={popupAriaId}\n aria-labelledby={ariaLabelledBy}\n tabIndex={-1}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </RootComponent>\n );\n}\n"],"names":["React","classNames","getRequiredValueByKey","useAdaptivity","useExternRef","useMergeProps","callMultiple","useDOM","defaultFilterFn","useIsomorphicLayoutEffect","preventDefault","CustomSelectDropdown","CustomSelectOption","NOT_SELECTED","remapFromNativeValueToSelectValue","RootComponent","Footnote","VisuallyHidden","CustomSelectInput","checkDeprecatedProps","checkMixControlledAndUncontrolledState","checkOptionsValueType","filter","findSelectedIndex","getOptionByValue","useAfterItems","useDropdownOpenedController","useFocusedOptionController","useInputKeyboardController","useInputValueController","useScrollListController","useSelectedOptionController","styles","densityClassNames","none","densityNone","compact","densityCompact","defaultRenderOptionFn","option","props","isMousePositionChanged","event","prevPosition","Math","abs","x","clientX","y","clientY","FETCH_STATUS_RESET_DELAY","FetchingStatus","fetching","options","fetchingInProgressLabel","fetchingCompletedLabel","length","status","setStatus","useState","content","loaded","updateStatus","setTimeout","aria-live","CustomSelect","before","overscrollBehavior","children","getSelectInputRef","searchable","emptyText","onInputChangeProp","filterFn","popupDirection","renderOptionProp","renderDropdown","onClose","onOpen","ClearButton","allowClearButton","clearButtonTestId","dropdownOffsetDistance","dropdownAutoWidth","forceDropdownPortal","noMaxHeight","labelTextTestId","nativeSelectTestId","onInputKeyDownProp","accessible","selectValue","defaultValue","onChange","getRef","multiline","placeholder","iconProp","selectType","mode","align","form","minLength","maxLength","pattern","autoFocus","disabled","id","readOnlyProp","required","name","onSelectClick","onSelectFocus","onSelectBlur","ariaLabelledBy","slotProps","restProps","process","env","NODE_ENV","density","onClick","onRootClick","onMouseMove","onRootMouseMove","onMouseDown","onRootMouseDown","getRootRef","rootRef","rootRest","root","getSelectRef","selectRest","onFocus","onBlur","select","getInputRef","onChangeInput","onInputFocus","onInputBlur","onKeyDown","onNativeInputKeyDown","onNativeInputClick","readOnly","inputRest","input","containerRef","useRef","handleRootRef","selectElRef","selectInputRef","propsValue","useMemo","undefined","value","isControlledOutside","setIsControlledOutside","popperPlacement","setPopperPlacement","nativeSelectValue","setNativeSelectValue","selectedOptionValue","setSelectedOptionValue","onNativeSelectChange","selected","find","inputValue","onInputChange","resetInputValue","resetInputValueBySelectedOption","selectedValue","filteredOptions","scrollToElement","optionsWrapperRef","scrollBoxRef","focusedOptionValue","setFocusedOptionValue","resetFocusedOption","focusOptionByIndex","focusOption","selectFocusedValue","scrollToSelectedOption","opened","open","close","toggleOpened","onOpened","onClosed","useEffect","updateOptionsValue","syncIsControlledState","oldIsControlled","newIsControlled","some","NATIVE","Event","bubbles","current","dispatchEvent","openedClassNames","includes","popUp","popDown","selectOption","useCallback","shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync","selectFocused","handleInputKeyDown","onInputKeyDown","handleOptionClick","e","index","Array","prototype","indexOf","call","currentTarget","parentNode","lastMousePositionRef","focusOptionOnMouseMove","popupAriaId","useId","renderOption","hovered","Fragment","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","label","resolvedContent","defaultDropdownContent","div","ref","map","className","empty","afterItems","onClearButtonClick","focus","icon","document","passClickAndFocusToInputOnClick","clickTargetIsNotAnInput","target","click","inputIsNotFocused","activeElement","preventInputBlurWhenClickInsideFocusedSelectArea","isInputFocused","ariaActiveDescendantId","selectInputAriaProps","resetOptionFocusOnMouseLeave","updateLastMousePosition","onCustomSelectInputFocus","onCustomSelectInputBlur","baseClassName","host","after","autoComplete","autoCapitalize","autoCorrect","spellCheck","Component","control","tabIndex","aria-hidden","data-testid","item","targetRef","placement","onPlacementChange","onMouseLeave","offsetDistance","autoWidth","forcePortal","role","aria-labelledby"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/CustomSelect/CustomSelect.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { getRequiredValueByKey } from '../../helpers/getValueByKey';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { useDOM } from '../../lib/dom';\nimport type { Placement } from '../../lib/floating';\nimport { defaultFilterFn, type FilterFn } from '../../lib/select';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { preventDefault } from '../../lib/utils';\nimport type { HasDataAttribute, HasRootRef } from '../../types';\nimport {\n CustomSelectDropdown,\n type CustomSelectDropdownProps,\n} from '../CustomSelectDropdown/CustomSelectDropdown';\nimport { CustomSelectOption } from '../CustomSelectOption/CustomSelectOption';\nimport type { FormFieldProps } from '../FormField/FormField';\nimport {\n type NativeSelectProps,\n NOT_SELECTED,\n remapFromNativeValueToSelectValue,\n type SelectValue,\n} from '../NativeSelect/NativeSelect';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport type { CustomSelectClearButtonProps } from './CustomSelectClearButton';\nimport {\n CustomSelectInput,\n type CustomSelectInputProps,\n} from './CustomSelectInput/CustomSelectInput';\nimport {\n checkDeprecatedProps,\n checkMixControlledAndUncontrolledState,\n checkOptionsValueType,\n filter,\n findSelectedIndex,\n getOptionByValue,\n} from './helpers';\nimport { useAfterItems } from './hooks/useAfterItems';\nimport { useDropdownOpenedController } from './hooks/useDropdownOpenedController';\nimport { useFocusedOptionController } from './hooks/useFocusedOptionController';\nimport { useInputKeyboardController } from './hooks/useInputKeyboardController';\nimport { useInputValueController } from './hooks/useInputValueController';\nimport { useScrollListController } from './hooks/useScrollListController';\nimport { useSelectedOptionController } from './hooks/useSelectedOptionController';\nimport type {\n CustomSelectOptionInterface,\n CustomSelectRenderOption,\n MousePosition,\n PopupDirection,\n} from './types';\nimport styles from './CustomSelect.module.css';\n\nconst densityClassNames = {\n none: styles.densityNone,\n compact: styles.densityCompact,\n};\n\nfunction defaultRenderOptionFn<T extends CustomSelectOptionInterface>({\n option,\n ...props\n}: CustomSelectRenderOption<T>): React.ReactNode {\n return <CustomSelectOption {...props} />;\n}\n\nfunction isMousePositionChanged(event: React.MouseEvent, prevPosition: MousePosition) {\n return (\n Math.abs(prevPosition.x - event.clientX) >= 1 || Math.abs(prevPosition.y - event.clientY) >= 1\n );\n}\n\nconst FETCH_STATUS_RESET_DELAY = 2000;\n\nconst FetchingStatus = ({\n fetching = false,\n options,\n fetchingInProgressLabel = 'Список опций загружается...',\n fetchingCompletedLabel = `Загружено опций: ${options.length}`,\n}: Pick<\n SelectProps,\n 'fetching' | 'fetchingInProgressLabel' | 'fetchingCompletedLabel' | 'options'\n>) => {\n const [status, setStatus] = React.useState<'fetching' | 'loaded' | 'none'>('none');\n\n const content = getRequiredValueByKey(status, {\n fetching: fetchingInProgressLabel,\n loaded:\n typeof fetchingCompletedLabel === 'function'\n ? fetchingCompletedLabel(options.length)\n : fetchingCompletedLabel,\n none: '',\n });\n\n useIsomorphicLayoutEffect(\n function updateStatus() {\n if (fetching) {\n setStatus('fetching');\n } else {\n if (status === 'fetching') {\n setStatus('loaded');\n setTimeout(() => setStatus('none'), FETCH_STATUS_RESET_DELAY);\n }\n }\n },\n [fetching],\n );\n\n return <VisuallyHidden aria-live=\"polite\">{content}</VisuallyHidden>;\n};\n\nexport type { CustomSelectClearButtonProps };\n\nexport interface SelectProps<\n OptionInterfaceT extends CustomSelectOptionInterface = CustomSelectOptionInterface,\n> extends Omit<NativeSelectProps, 'slotProps'>,\n Omit<FormFieldProps, 'maxHeight' | 'mode'>,\n Pick<CustomSelectDropdownProps, 'overscrollBehavior'>,\n Pick<CustomSelectInputProps, 'minLength' | 'maxLength' | 'pattern' | 'form' | 'readOnly'> {\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `root`: свойства для прокидывания в корень компонента;\n * - `select`: свойства для прокидывания в нативный `select`;\n * - `input`: свойства для прокидывания в нативный `input`.\n */\n slotProps?:\n | (NativeSelectProps['slotProps'] & {\n input?:\n | (React.InputHTMLAttributes<HTMLInputElement> &\n HasDataAttribute &\n HasRootRef<HTMLInputElement>)\n | undefined;\n })\n | undefined;\n /**\n * @deprecated Since 7.9.0. Вместо этого используйте `slotProps={ input: { getRootRef: ... } }`.\n *\n * Ref на внутрений компонент input.\n */\n getSelectInputRef?: React.Ref<HTMLInputElement> | undefined;\n /**\n * Если `true`, то при нажатии на `CustomSelect` в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean | undefined;\n /**\n * Текст, который будет отображен, если приходит пустой `options`.\n */\n emptyText?: string | undefined;\n /**\n * Событие изменения текстового поля.\n */\n onInputChange?: ((e: React.ChangeEvent<HTMLInputElement>) => void) | undefined;\n /**\n * Список опций в списке.\n */\n options: OptionInterfaceT[];\n /**\n * Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.\n */\n filterFn?: false | FilterFn<OptionInterfaceT> | undefined;\n /**\n * Направление раскрытия выпадающего списка.\n */\n popupDirection?: PopupDirection | undefined;\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](https://vkui.io/components/custom-select#custom-select-option-api).\n *\n * > ⚠️ Важно: свойство опции `disabled` должно выставляться только через проп `options`.\n * > Запрещается выставлять `disabled` проп опциям в обход `options`, иначе `CustomSelect` не будет знать об актуальном состоянии\n * опции.\n */\n renderOption?: (props: CustomSelectRenderOption<OptionInterfaceT>) => React.ReactNode | undefined;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если `true`, то в дропдауне вместо списка опций рисуется спиннер. При переданных `renderDropdown` и `fetching: true`\n * \"победит\" `renderDropdown`.\n */\n fetching?: boolean | undefined;\n /**\n * Обработчик закрытия выпадающего списка.\n */\n onClose?: VoidFunction | undefined;\n /**\n * Обработчик открытия выпадающего списка.\n */\n onOpen?: VoidFunction | undefined;\n /**\n * Кастомная кнопка для очистки значения.\n * Должна принимать обязательное свойство `onClick`.\n */\n ClearButton?: React.ComponentType<CustomSelectClearButtonProps> | undefined;\n /**\n * Если `true`, то справа будет отображаться кнопка для очистки значения.\n */\n allowClearButton?: boolean | undefined;\n /**\n * Передает атрибут `data-testid` для кнопки очистки.\n */\n clearButtonTestId?: string | undefined;\n /**\n * Отступ от выпадающего списка.\n */\n dropdownOffsetDistance?: number | undefined;\n /**\n * Ширина раскрывающегося списка зависит от контента.\n */\n dropdownAutoWidth?: boolean | undefined;\n /**\n * Использовать Portal для рендеринга выпадающего списка.\n */\n forceDropdownPortal?: boolean | undefined;\n /**\n * Отключает максимальную высоту по умолчанию.\n */\n noMaxHeight?: boolean | undefined;\n /**\n * Передает атрибут `data-testid` для элемента, внутри которого отображается текст выбранной опции `CustomSelect` или плейсхолдер.\n */\n labelTextTestId?: string | undefined;\n /**\n * @deprecated Since 7.9.0. Вместо этого используйте `slotProps={ select: { 'data-testid': ... } }`.\n *\n * Передает атрибут `data-testid` для нативного элемента `select`.\n */\n nativeSelectTestId?: string | undefined;\n /**\n * Обработчик события `keyDown` в поле ввода.\n */\n onInputKeyDown?: ((e: React.KeyboardEvent, isOpen: boolean) => void) | undefined;\n /**\n * @deprecated Since 8.0.0. Будет удалено в 9.0.0.\n *\n * Включает режим в котором выбранное значение `CustomSelect` читается скринридерами корректно.\n * В данном режиме введенное в поле ввода значение не сбрасывается при потере фокуса.\n */\n accessible?: boolean | undefined /* TODO [>=v9] удалить свойство */;\n /**\n * Текстовая метка для индикации процесса загрузки данных для пользователей скринридерами. По умолчанию: `\"Список опций загружается...\"`.\n */\n fetchingInProgressLabel?: string | undefined;\n /**\n * Текстовая метка для индикации завершения процесса загрузки данных для пользователей скринридерами. По умолчанию: `\"Загружено опций: ${options.length}\"`.\n */\n fetchingCompletedLabel?: string | ((optionsCount: number) => string) | undefined;\n /**\n * @deprecated Будет удалено в 10.0.0, используйте `selectType`.\n *\n * Режим отображения.\n *\n * - `default` — показывает фон, обводку и, при наличии, текст-подсказку.\n * - `plain` — показывает только текст-подсказку.\n */\n mode?: 'default' | 'plain' | undefined;\n}\n\n/**\n * @see https://vkui.io/components/custom-select\n */\nexport function CustomSelect<OptionInterfaceT extends CustomSelectOptionInterface>(\n props: SelectProps<OptionInterfaceT>,\n): React.ReactNode {\n const {\n // FormFieldProps\n status,\n before,\n\n // CustomSelectDropdownProps\n overscrollBehavior,\n\n // SelectProps\n children,\n getSelectInputRef,\n searchable = false,\n emptyText = 'Ничего не найдено',\n 'onInputChange': onInputChangeProp,\n 'options': options,\n filterFn = defaultFilterFn,\n popupDirection = 'bottom',\n 'renderOption': renderOptionProp = defaultRenderOptionFn,\n renderDropdown,\n fetching,\n onClose,\n onOpen,\n ClearButton,\n allowClearButton = false,\n clearButtonTestId,\n dropdownOffsetDistance = 0,\n dropdownAutoWidth = false,\n forceDropdownPortal,\n noMaxHeight = false,\n labelTextTestId,\n nativeSelectTestId,\n 'onInputKeyDown': onInputKeyDownProp,\n accessible = true,\n fetchingInProgressLabel,\n fetchingCompletedLabel,\n\n // NativeSelectProps\n 'value': selectValue,\n defaultValue,\n onChange,\n getRef,\n multiline,\n placeholder,\n 'icon': iconProp,\n selectType,\n mode,\n align,\n form,\n\n // Input props\n minLength,\n maxLength,\n pattern,\n autoFocus,\n disabled,\n id,\n 'readOnly': readOnlyProp,\n\n // Select props\n required,\n name,\n 'onClick': onSelectClick,\n 'onFocus': onSelectFocus,\n 'onBlur': onSelectBlur,\n\n // other\n 'aria-labelledby': ariaLabelledBy,\n\n slotProps,\n ...restProps\n } = props;\n\n if (process.env.NODE_ENV === 'development') {\n checkOptionsValueType(options);\n checkDeprecatedProps(props);\n }\n\n const { density = 'none' } = useAdaptivity();\n\n const {\n onClick: onRootClick,\n onMouseMove: onRootMouseMove,\n onMouseDown: onRootMouseDown,\n getRootRef: rootRef,\n ...rootRest\n } = useMergeProps<\n Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> &\n HasDataAttribute &\n HasRootRef<HTMLDivElement>\n >(restProps, slotProps?.root);\n\n const { getRootRef: getSelectRef, ...selectRest } = useMergeProps(\n {\n getRootRef: getRef,\n required,\n name,\n form,\n onClick: onSelectClick,\n onFocus: onSelectFocus,\n onBlur: onSelectBlur,\n },\n slotProps?.select,\n );\n\n const {\n getRootRef: getInputRef,\n onChange: onChangeInput,\n onFocus: onInputFocus,\n onBlur: onInputBlur,\n onKeyDown: onNativeInputKeyDown,\n onClick: onNativeInputClick,\n readOnly,\n ...inputRest\n } = useMergeProps(\n {\n getRootRef: getSelectInputRef,\n onChange: onInputChangeProp,\n minLength,\n maxLength,\n pattern,\n autoFocus,\n disabled,\n id,\n readOnly: readOnlyProp,\n placeholder,\n },\n slotProps?.input,\n );\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const handleRootRef = useExternRef(containerRef, rootRef);\n const selectElRef = useExternRef(getSelectRef);\n const selectInputRef = useExternRef(getInputRef);\n\n const propsValue = React.useMemo<SelectValue | undefined>(() => {\n if (selectValue === undefined) {\n return undefined;\n }\n return getOptionByValue(options, selectValue)?.value ?? null;\n }, [options, selectValue]);\n\n const [isControlledOutside, setIsControlledOutside] = React.useState(selectValue !== undefined);\n const [popperPlacement, setPopperPlacement] = React.useState<Placement>(popupDirection);\n\n const {\n nativeSelectValue,\n setNativeSelectValue,\n selectedOptionValue,\n setSelectedOptionValue,\n onNativeSelectChange,\n } = useSelectedOptionController({\n value: propsValue,\n defaultValue,\n isControlledOutside,\n allowClearButton,\n onChange,\n });\n\n const selected = React.useMemo(\n () => options.find((option) => option.value === selectedOptionValue),\n [options, selectedOptionValue],\n );\n\n const { inputValue, onInputChange, resetInputValue, resetInputValueBySelectedOption } =\n useInputValueController({\n options,\n accessible,\n selectedValue: selectedOptionValue,\n onInputChange: onChangeInput,\n });\n\n const filteredOptions = React.useMemo(\n () => filter(options, searchable ? inputValue : '', filterFn),\n [filterFn, inputValue, options, searchable],\n );\n\n const { scrollToElement, optionsWrapperRef, scrollBoxRef } = useScrollListController();\n\n const {\n focusedOptionValue,\n setFocusedOptionValue,\n resetFocusedOption,\n focusOptionByIndex,\n focusOption,\n selectFocusedValue,\n } = useFocusedOptionController({\n selectedOptionValue,\n filteredOptions,\n scrollToElement,\n });\n\n const scrollToSelectedOption = () => {\n scrollToElement(findSelectedIndex(filteredOptions, selectedOptionValue), true);\n };\n\n const [opened, open, close, toggleOpened] = useDropdownOpenedController({\n onOpen: callMultiple(selectFocusedValue, onOpen),\n onOpened: scrollToSelectedOption,\n onClose,\n onClosed: accessible ? resetInputValueBySelectedOption : resetInputValue,\n });\n\n React.useEffect(\n function updateOptionsValue() {\n const value =\n propsValue !== undefined\n ? propsValue\n : remapFromNativeValueToSelectValue(nativeSelectValue);\n setSelectedOptionValue(value);\n setFocusedOptionValue(value);\n },\n [propsValue, nativeSelectValue, setFocusedOptionValue, setSelectedOptionValue],\n );\n\n React.useEffect(\n function syncIsControlledState() {\n setIsControlledOutside((oldIsControlled) => {\n const newIsControlled = propsValue !== undefined;\n checkMixControlledAndUncontrolledState(oldIsControlled, newIsControlled);\n return newIsControlled;\n });\n },\n [propsValue],\n );\n\n useIsomorphicLayoutEffect(() => {\n if (\n filteredOptions.some(({ value }) => nativeSelectValue === value) ||\n (allowClearButton && nativeSelectValue === NOT_SELECTED.NATIVE)\n ) {\n const event = new Event('change', { bubbles: true });\n\n selectElRef.current?.dispatchEvent(event);\n }\n }, [nativeSelectValue]);\n\n const openedClassNames = React.useMemo(\n () =>\n (opened &&\n dropdownOffsetDistance === 0 &&\n (popperPlacement.includes('top') ? styles.popUp : styles.popDown)) ||\n undefined,\n [dropdownOffsetDistance, opened, popperPlacement],\n );\n\n const selectOption = React.useCallback(\n (value: Exclude<SelectValue, null>) => {\n setNativeSelectValue(value ?? NOT_SELECTED.NATIVE);\n close();\n\n const shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync =\n isControlledOutside && propsValue !== nativeSelectValue && nativeSelectValue === value;\n\n if (shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync) {\n const event = new Event('change', { bubbles: true });\n selectElRef.current?.dispatchEvent(event);\n }\n },\n [close, setNativeSelectValue, isControlledOutside, propsValue, nativeSelectValue, selectElRef],\n );\n\n const selectFocused = React.useCallback(() => {\n if (focusedOptionValue === null) {\n return;\n }\n\n selectOption(focusedOptionValue);\n }, [focusedOptionValue, selectOption]);\n\n const handleInputKeyDown = useInputKeyboardController({\n opened,\n open,\n close,\n resetFocusedOption,\n selectFocused,\n focusOption,\n scrollBoxRef,\n onInputKeyDown: onInputKeyDownProp,\n });\n\n const onBlur = React.useCallback(() => {\n close();\n const event = new Event('focusout', { bubbles: true });\n selectElRef.current?.dispatchEvent(event);\n }, [close, selectElRef]);\n\n const onFocus = React.useCallback(() => {\n const event = new Event('focusin', { bubbles: true });\n selectElRef.current?.dispatchEvent(event);\n }, [selectElRef]);\n\n const handleOptionClick = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget,\n );\n const option = filteredOptions[index];\n\n if (option && !option.disabled) {\n selectOption(option.value);\n }\n },\n [filteredOptions, selectOption],\n );\n\n const lastMousePositionRef = React.useRef<MousePosition>({ x: 0, y: 0 });\n const focusOptionOnMouseMove = React.useCallback(\n (e: React.MouseEvent<HTMLElement>, index: number) => {\n if (isMousePositionChanged(e, lastMousePositionRef.current)) {\n focusOptionByIndex(index, false);\n }\n },\n [focusOptionByIndex],\n );\n\n const popupAriaId = React.useId();\n const renderOption = React.useCallback(\n (option: OptionInterfaceT, index: number) => {\n const hovered = option.value === focusedOptionValue;\n const selected = option.value === selectedOptionValue;\n\n return (\n <React.Fragment key={`${typeof option.value}-${option.value}`}>\n {renderOptionProp({\n /**\n * Компилятор сходит с ума из-за рефа внутри focusOptionOnMouseMove.\n * Обходной путь прокидывать ref в свойства для рендер пропов.\n */\n ...(false\n ? {\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: lastMousePositionRef,\n }\n : {}),\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: handleOptionClick,\n onMouseDown: preventDefault,\n // Используем `onMouseMove` вместо `onMouseEnter/onMouseOver`.\n // Потому что если при навигации с клавиатуры курсор наведён на\n // список, то при первом автоматическом скролле списка вызывается событие MouseOver/MouseEnter\n // обработчик которого фокусирует опцию под курсором, хотя при навигация с клавиатуры пользователь мог уйти дальше по списку, это путает.\n // Причём координаты события меняются на пару пикселей по сравнению с прошлым вызовом,\n // а значит нельзя на них опираться, чтобы запретить обработку такого события.\n // C mousemove такой проблемы нет, что позволяет реализовать поведение при наведении с клавиатуры и при наведении мышью идентично `<select>`.\n onMouseMove: (e) => focusOptionOnMouseMove(e, index),\n id: `${popupAriaId}-${option.value}`,\n ...option,\n })}\n </React.Fragment>\n );\n },\n [\n focusedOptionValue,\n selectedOptionValue,\n renderOptionProp,\n handleOptionClick,\n popupAriaId,\n focusOptionOnMouseMove,\n ],\n );\n\n const resolvedContent = React.useMemo(() => {\n const defaultDropdownContent =\n filteredOptions.length > 0 ? (\n <div ref={optionsWrapperRef}>{filteredOptions.map(renderOption)}</div>\n ) : (\n <Footnote className={styles.empty}>{emptyText}</Footnote>\n );\n\n if (typeof renderDropdown === 'function') {\n return renderDropdown({ defaultDropdownContent });\n } else {\n return defaultDropdownContent;\n }\n }, [emptyText, filteredOptions, optionsWrapperRef, renderDropdown, renderOption]);\n\n const afterItems = useAfterItems({\n value: propsValue,\n nativeSelectValue,\n isControlledOutside,\n opened,\n allowClearButton,\n ClearButton,\n onClearButtonClick: () => {\n setNativeSelectValue(NOT_SELECTED.NATIVE);\n resetInputValue();\n selectInputRef.current && selectInputRef.current.focus();\n },\n clearButtonTestId,\n disabled: inputRest.disabled,\n readOnly,\n icon: iconProp,\n });\n\n const { document } = useDOM();\n const passClickAndFocusToInputOnClick = React.useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n // Раньше внешней оберткой CustomSelect был <label>, что позволяло по клику в любую область CustomSelect,\n // даже где нету интерактивного элемента, фокусировать <input> и передавать на него событие клика.\n // Так как мы больше не оборачиваем CustomSelect в <label>, то для обертки CustomSelect мы симулируем работу <label>.\n // передаем фокус и клик по <input>, если пользователь кликнул в зоне обертки.\n // В <label> мы не больше не оборачиваем, потому что это заставляет скринридер\n // дважды произносить текст выбранной опции при фокусе, если CustomSelect связан с внешним <label>.\n // Воспроизводится в некоторых версиях Chrome, при навигации по странице с помощью стрелок.\n // Договорились со специалистом по доступности убрать <label>-обёртки из Select и CustomSelect\n\n if (!selectInputRef.current || !document) {\n return;\n }\n\n const clickTargetIsNotAnInput = e.target !== selectInputRef.current;\n if (clickTargetIsNotAnInput) {\n selectInputRef.current.click();\n\n const inputIsNotFocused = document.activeElement !== selectInputRef.current;\n if (inputIsNotFocused) {\n selectInputRef.current.focus();\n }\n }\n },\n [document, selectInputRef],\n );\n\n const preventInputBlurWhenClickInsideFocusedSelectArea = (\n e: React.MouseEvent<HTMLDivElement>,\n ) => {\n // Так как инпут больше не оборачивается пустым лэйблом, то клик внутри обертки,\n // но вне инпута (например по иконке дропдауна), будет убирать фокус с инпута.\n // Чтобы в такой ситуации отключить blur инпута мы превентим mousedown событие обёртки\n const isInputFocused = document && document.activeElement === selectInputRef.current;\n if (isInputFocused) {\n e.preventDefault();\n }\n };\n\n const ariaActiveDescendantId = focusedOptionValue !== null ? focusedOptionValue : undefined;\n\n const selectInputAriaProps: React.HTMLAttributes<HTMLElement> = {\n 'role': 'combobox',\n 'aria-controls': popupAriaId,\n 'aria-expanded': opened,\n 'aria-activedescendant':\n ariaActiveDescendantId && opened ? `${popupAriaId}-${ariaActiveDescendantId}` : undefined,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-haspopup': 'listbox',\n 'aria-autocomplete': 'none',\n };\n\n const resetOptionFocusOnMouseLeave = React.useCallback(\n (event: React.MouseEvent) => {\n // В Хроме eсли мышка пользователя находится над инпутом селекта,\n // и он с клавиатуры открывает опции, причём одна из опций\n // уже выбрана, то видно, как выбранная опция получает фокус,\n // но потом сразу же его теряет.\n // Связано это с тем, что в этот момент вызывается onMouseLeave, на который у нас\n // завязан сброс состония фокуса у опции. По хорошему фокус должен оставаться.\n // Нам не интересен вызов onMouseLeave если мышка при этом не двигалась.\n if (isMousePositionChanged(event, lastMousePositionRef.current)) {\n resetFocusedOption();\n }\n },\n [resetFocusedOption],\n );\n\n const updateLastMousePosition = (e: React.MouseEvent) => {\n lastMousePositionRef.current = { x: e.clientX, y: e.clientY };\n };\n\n const onClick = (event: React.MouseEvent<HTMLDivElement>) => {\n onRootClick?.(event);\n passClickAndFocusToInputOnClick(event);\n };\n\n const onMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n onRootMouseDown?.(event);\n preventInputBlurWhenClickInsideFocusedSelectArea(event);\n };\n\n const onMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n onRootMouseMove?.(event);\n updateLastMousePosition(event);\n };\n\n const onCustomSelectInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n onFocus();\n onInputFocus?.(event);\n };\n\n const onCustomSelectInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n onBlur();\n onInputBlur?.(event);\n };\n\n return (\n <RootComponent\n baseClassName={classNames(styles.host, density !== 'regular' && densityClassNames[density])}\n getRootRef={handleRootRef}\n onClick={onClick}\n onMouseDown={onMouseDown}\n onMouseMove={onMouseMove}\n {...rootRest}\n >\n <CustomSelectInput\n fetching={fetching}\n searchable={searchable}\n accessible={accessible}\n before={before}\n after={afterItems}\n selectType={selectType || mode || 'default'}\n align={align}\n status={status}\n multiline={multiline}\n labelTextTestId={labelTextTestId}\n slotProps={{\n root: { className: openedClassNames },\n input: {\n autoComplete: 'off',\n autoCapitalize: 'none',\n autoCorrect: 'off',\n spellCheck: 'false',\n getRootRef: selectInputRef,\n onChange: onInputChange,\n value: inputValue,\n readOnly: readOnly || !searchable,\n placeholder,\n onFocus: onCustomSelectInputFocus,\n onBlur: onCustomSelectInputBlur,\n onKeyDown: !readOnly\n ? callMultiple(handleInputKeyDown, onNativeInputKeyDown)\n : onNativeInputKeyDown,\n onClick: !readOnly\n ? callMultiple(toggleOpened, onNativeInputClick)\n : onNativeInputClick,\n ...selectInputAriaProps,\n ...inputRest,\n },\n }}\n >\n {selected?.label}\n </CustomSelectInput>\n\n <FetchingStatus\n fetching={fetching}\n options={filteredOptions}\n fetchingInProgressLabel={fetchingInProgressLabel}\n fetchingCompletedLabel={fetchingCompletedLabel}\n />\n <RootComponent\n Component=\"select\"\n baseClassName={styles.control}\n tabIndex={-1}\n value={nativeSelectValue}\n aria-hidden\n data-testid={nativeSelectTestId}\n onChange={onNativeSelectChange}\n getRootRef={selectElRef}\n {...selectRest}\n >\n {(allowClearButton || nativeSelectValue === NOT_SELECTED.NATIVE) && (\n <option key={NOT_SELECTED.NATIVE} value={NOT_SELECTED.NATIVE} />\n )}\n {options.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </RootComponent>\n {opened && (\n <CustomSelectDropdown\n targetRef={containerRef}\n placement={popperPlacement}\n scrollBoxRef={scrollBoxRef}\n onPlacementChange={setPopperPlacement}\n onMouseLeave={resetOptionFocusOnMouseLeave}\n fetching={fetching}\n overscrollBehavior={overscrollBehavior}\n offsetDistance={dropdownOffsetDistance}\n autoWidth={dropdownAutoWidth}\n forcePortal={forceDropdownPortal}\n noMaxHeight={noMaxHeight}\n role=\"listbox\"\n id={popupAriaId}\n aria-labelledby={ariaLabelledBy}\n tabIndex={-1}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </RootComponent>\n );\n}\n"],"names":["React","classNames","getRequiredValueByKey","useAdaptivity","useExternRef","useMergeProps","callMultiple","useDOM","defaultFilterFn","useIsomorphicLayoutEffect","preventDefault","CustomSelectDropdown","CustomSelectOption","NOT_SELECTED","remapFromNativeValueToSelectValue","RootComponent","Footnote","VisuallyHidden","CustomSelectInput","checkDeprecatedProps","checkMixControlledAndUncontrolledState","checkOptionsValueType","filter","findSelectedIndex","getOptionByValue","useAfterItems","useDropdownOpenedController","useFocusedOptionController","useInputKeyboardController","useInputValueController","useScrollListController","useSelectedOptionController","styles","densityClassNames","none","densityNone","compact","densityCompact","defaultRenderOptionFn","option","props","isMousePositionChanged","event","prevPosition","Math","abs","x","clientX","y","clientY","FETCH_STATUS_RESET_DELAY","FetchingStatus","fetching","options","fetchingInProgressLabel","fetchingCompletedLabel","length","status","setStatus","useState","content","loaded","updateStatus","setTimeout","aria-live","CustomSelect","before","overscrollBehavior","children","getSelectInputRef","searchable","emptyText","onInputChangeProp","filterFn","popupDirection","renderOptionProp","renderDropdown","onClose","onOpen","ClearButton","allowClearButton","clearButtonTestId","dropdownOffsetDistance","dropdownAutoWidth","forceDropdownPortal","noMaxHeight","labelTextTestId","nativeSelectTestId","onInputKeyDownProp","accessible","selectValue","defaultValue","onChange","getRef","multiline","placeholder","iconProp","selectType","mode","align","form","minLength","maxLength","pattern","autoFocus","disabled","id","readOnlyProp","required","name","onSelectClick","onSelectFocus","onSelectBlur","ariaLabelledBy","slotProps","restProps","process","env","NODE_ENV","density","onClick","onRootClick","onMouseMove","onRootMouseMove","onMouseDown","onRootMouseDown","getRootRef","rootRef","rootRest","root","getSelectRef","selectRest","onFocus","onBlur","select","getInputRef","onChangeInput","onInputFocus","onInputBlur","onKeyDown","onNativeInputKeyDown","onNativeInputClick","readOnly","inputRest","input","containerRef","useRef","handleRootRef","selectElRef","selectInputRef","propsValue","useMemo","undefined","value","isControlledOutside","setIsControlledOutside","popperPlacement","setPopperPlacement","nativeSelectValue","setNativeSelectValue","selectedOptionValue","setSelectedOptionValue","onNativeSelectChange","selected","find","inputValue","onInputChange","resetInputValue","resetInputValueBySelectedOption","selectedValue","filteredOptions","scrollToElement","optionsWrapperRef","scrollBoxRef","focusedOptionValue","setFocusedOptionValue","resetFocusedOption","focusOptionByIndex","focusOption","selectFocusedValue","scrollToSelectedOption","opened","open","close","toggleOpened","onOpened","onClosed","useEffect","updateOptionsValue","syncIsControlledState","oldIsControlled","newIsControlled","some","NATIVE","Event","bubbles","current","dispatchEvent","openedClassNames","includes","popUp","popDown","selectOption","useCallback","shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync","selectFocused","handleInputKeyDown","onInputKeyDown","handleOptionClick","e","index","Array","prototype","indexOf","call","currentTarget","parentNode","lastMousePositionRef","focusOptionOnMouseMove","popupAriaId","useId","renderOption","hovered","Fragment","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","label","resolvedContent","defaultDropdownContent","div","ref","map","className","empty","afterItems","onClearButtonClick","focus","icon","document","passClickAndFocusToInputOnClick","clickTargetIsNotAnInput","target","click","inputIsNotFocused","activeElement","preventInputBlurWhenClickInsideFocusedSelectArea","isInputFocused","ariaActiveDescendantId","selectInputAriaProps","resetOptionFocusOnMouseLeave","updateLastMousePosition","onCustomSelectInputFocus","onCustomSelectInputBlur","baseClassName","host","after","autoComplete","autoCapitalize","autoCorrect","spellCheck","Component","control","tabIndex","aria-hidden","data-testid","item","targetRef","placement","onPlacementChange","onMouseLeave","offsetDistance","autoWidth","forcePortal","role","aria-labelledby"],"mappings":"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"}
@@ -26,12 +26,6 @@
26
26
  text-align: center;
27
27
  }
28
28
 
29
- .fetching {
30
- display: flex;
31
- align-items: center;
32
- justify-content: center;
33
- }
34
-
35
29
  .dropdownIcon {
36
30
  margin-inline-end: 10px;
37
31
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CustomSelect/CustomSelectClearButton.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { Icon16Cancel } from '@vkontakte/icons';\nimport { stopPropagation } from '../../lib/utils';\nimport type { HasDataAttribute } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\n\nexport interface CustomSelectClearButtonProps extends HasDataAttribute {\n /**\n * `className` для компонента.\n */\n className?: string;\n /**\n * Обработчик нажатия на кнопку.\n */\n onClick: () => void;\n /**\n * Блокировка взаимодействия с компонентом.\n */\n disabled?: boolean;\n}\n\nexport const CustomSelectClearButton = ({\n className,\n onClick,\n ...restProps\n}: CustomSelectClearButtonProps): React.ReactNode => {\n return (\n <IconButton\n Component=\"button\"\n label=\"Очистить поле\"\n onKeyDown={stopPropagation}\n type=\"button\"\n activeMode=\"opacity\"\n hoverMode=\"opacity\"\n {...restProps}\n className={className}\n onClick={(e) => {\n stopPropagation(e);\n e.preventDefault();\n onClick();\n }}\n >\n <Icon16Cancel />\n </IconButton>\n );\n};\n"],"names":["Icon16Cancel","stopPropagation","IconButton","CustomSelectClearButton","className","onClick","restProps","Component","label","onKeyDown","type","activeMode","hoverMode","e","preventDefault"],"mappings":"AAAA;;AAGA,SAASA,YAAY,QAAQ,mBAAmB;AAChD,SAASC,eAAe,QAAQ,qBAAkB;AAElD,SAASC,UAAU,QAAQ,8BAA2B;AAiBtD,OAAO,MAAMC,0BAA0B,CAAC,EACtCC,SAAS,EACTC,OAAO,EACP,GAAGC,WAC0B;IAC7B,qBACE,KAACJ;QACCK,WAAU;QACVC,OAAM;QACNC,WAAWR;QACXS,MAAK;QACLC,YAAW;QACXC,WAAU;QACT,GAAGN,SAAS;QACbF,WAAWA;QACXC,SAAS,CAACQ;YACRZ,gBAAgBY;YAChBA,EAAEC,cAAc;YAChBT;QACF;kBAEA,cAAA,KAACL;;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/CustomSelect/CustomSelectClearButton.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { Icon16Cancel } from '@vkontakte/icons';\nimport { stopPropagation } from '../../lib/utils';\nimport type { HasDataAttribute } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\n\nexport interface CustomSelectClearButtonProps extends HasDataAttribute {\n /**\n * `className` для компонента.\n */\n className?: string | undefined;\n /**\n * Обработчик нажатия на кнопку.\n */\n onClick: () => void;\n /**\n * Блокировка взаимодействия с компонентом.\n */\n disabled?: boolean | undefined;\n}\n\nexport const CustomSelectClearButton = ({\n className,\n onClick,\n ...restProps\n}: CustomSelectClearButtonProps): React.ReactNode => {\n return (\n <IconButton\n Component=\"button\"\n label=\"Очистить поле\"\n onKeyDown={stopPropagation}\n type=\"button\"\n activeMode=\"opacity\"\n hoverMode=\"opacity\"\n {...restProps}\n className={className}\n onClick={(e) => {\n stopPropagation(e);\n e.preventDefault();\n onClick();\n }}\n >\n <Icon16Cancel />\n </IconButton>\n );\n};\n"],"names":["Icon16Cancel","stopPropagation","IconButton","CustomSelectClearButton","className","onClick","restProps","Component","label","onKeyDown","type","activeMode","hoverMode","e","preventDefault"],"mappings":"AAAA;;AAGA,SAASA,YAAY,QAAQ,mBAAmB;AAChD,SAASC,eAAe,QAAQ,qBAAkB;AAElD,SAASC,UAAU,QAAQ,8BAA2B;AAiBtD,OAAO,MAAMC,0BAA0B,CAAC,EACtCC,SAAS,EACTC,OAAO,EACP,GAAGC,WAC0B;IAC7B,qBACE,KAACJ;QACCK,WAAU;QACVC,OAAM;QACNC,WAAWR;QACXS,MAAK;QACLC,YAAW;QACXC,WAAU;QACT,GAAGN,SAAS;QACbF,WAAWA;QACXC,SAAS,CAACQ;YACRZ,gBAAgBY;YAChBA,EAAEC,cAAc;YAChBT;QACF;kBAEA,cAAA,KAACL;;AAGP,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/CustomSelect/CustomSelectInput/CustomSelectInput.tsx"],"sourcesContent":["'use client';\n/* eslint-disable jsdoc/require-jsdoc */\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { useExternRef } from '../../../hooks/useExternRef';\nimport { useFocusWithin } from '../../../hooks/useFocusWithin';\nimport { useMergeProps } from '../../../hooks/useMergeProps';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { getFormFieldModeFromSelectType } from '../../../lib/select';\nimport type { HasAlign, HasDataAttribute, HasRef, HasRootRef } from '../../../types';\nimport { FormField, type FormFieldProps } from '../../FormField/FormField';\nimport type { SelectType } from '../../Select/Select';\nimport { SelectTypography } from '../../SelectTypography/SelectTypography';\nimport { Text } from '../../Typography/Text/Text';\nimport { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';\nimport styles from './CustomSelectInput.module.css';\n\nconst densityClassNames = {\n none: styles.densityNone,\n compact: styles.densityCompact,\n};\n\nexport interface CustomSelectInputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign,\n Omit<FormFieldProps, 'mode' | 'type' | 'maxHeight'> {\n slotProps?: {\n input?: React.InputHTMLAttributes<HTMLInputElement> &\n HasRootRef<HTMLInputElement> &\n HasDataAttribute;\n root?: Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> &\n HasRootRef<HTMLDivElement> &\n HasDataAttribute;\n };\n selectType?: SelectType;\n multiline?: boolean;\n labelTextTestId?: string;\n fetching?: boolean;\n searchable?: boolean;\n accessible?: boolean;\n}\n\n/**\n * @since 5.10.0\n * @private\n */\nexport const CustomSelectInput = ({\n style: rootStyle,\n className: rootClassName,\n getRootRef: rootGetRootRef,\n align = 'left',\n getRef,\n before,\n after,\n status,\n children,\n placeholder: placeholderProp,\n selectType = 'default',\n multiline,\n fetching,\n labelTextTestId,\n searchable,\n accessible,\n\n slotProps,\n ...restProps\n}: CustomSelectInputProps): React.ReactNode => {\n const { density = 'none' } = useAdaptivity();\n\n const { style, className, getRootRef, ...rootRest } = useMergeProps(\n {\n style: rootStyle,\n className: rootClassName,\n getRootRef: rootGetRootRef,\n },\n slotProps?.root,\n );\n\n const {\n className: inputClassName,\n value,\n readOnly,\n disabled,\n placeholder,\n ...inputProps\n } = useMergeProps(\n {\n getRootRef: getRef,\n placeholder: placeholderProp,\n ...restProps,\n },\n slotProps?.input,\n );\n\n const title = children || placeholder;\n const showLabelOrPlaceholder = !Boolean(value);\n\n const handleRootRef = useExternRef(getRootRef);\n const focusWithin = useFocusWithin(handleRootRef);\n\n const inputReadonly = readOnly || (disabled && fetching);\n\n const input = (\n <Text\n type=\"text\"\n disabled={disabled && !fetching}\n readOnly={inputReadonly}\n Component=\"input\"\n normalize={false}\n placeholder={children ? '' : placeholder}\n className={classNames(\n styles.el,\n (readOnly || (showLabelOrPlaceholder && !focusWithin)) && styles.elCursorPointer,\n inputClassName,\n )}\n value={value}\n {...inputProps}\n />\n );\n\n const inputHidden = React.useMemo(() => {\n if (accessible) {\n if (!searchable) {\n return true;\n }\n return !focusWithin || (inputReadonly && !fetching);\n } else {\n return false;\n }\n }, [accessible, fetching, focusWithin, inputReadonly, searchable]);\n\n const labelHidden = showLabelOrPlaceholder ? false : !inputHidden;\n\n const platform = usePlatform();\n return (\n <FormField\n Component=\"div\"\n style={style}\n className={classNames(\n styles.host,\n align === 'right' && styles.alignRight,\n align === 'center' && styles.alignCenter,\n !children && styles.empty,\n multiline && styles.multiline,\n density !== 'regular' && densityClassNames[density],\n before && styles.hasBefore,\n after && styles.hasAfter,\n inputHidden && styles.inputHidden,\n labelHidden && styles.labelHidden,\n accessible && styles.accessible,\n value && styles.hasInputValue,\n className,\n )}\n getRootRef={handleRootRef}\n before={before}\n after={after}\n disabled={disabled}\n mode={getFormFieldModeFromSelectType(selectType)}\n status={status}\n {...rootRest}\n >\n <div className={styles.inputGroup}>\n <div\n className={classNames(styles.container, className)}\n tabIndex={-1}\n aria-hidden\n data-testid={labelTextTestId}\n >\n <SelectTypography selectType={selectType} className={styles.title}>\n {title}\n </SelectTypography>\n </div>\n {/* Чтобы отключить autosuggestion в iOS, тултипы которого начинают всплывать даже когда input\n * в режиме readonly, мы оборачиваем инпут в VisuallyHidden.\n * Тултипы появляются при каждом клике на input.\n * смотри: https://github.com/VKCOM/VKUI/issues/6205\n *\n * Достаточно не дать пользователю кликнуть по инпуту.\n * Делаем это только для режима read-only. Потому что проблема именно в режиме read-only.\n * Обертка вокруг инпута обрабатывает клики и передаёт фокус, так что на взаимодействии с инпутом это никак не скажется.\n **/}\n {readOnly && platform === 'ios' ? <VisuallyHidden>{input}</VisuallyHidden> : input}\n </div>\n </FormField>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useExternRef","useFocusWithin","useMergeProps","usePlatform","getFormFieldModeFromSelectType","FormField","SelectTypography","Text","VisuallyHidden","styles","densityClassNames","none","densityNone","compact","densityCompact","CustomSelectInput","style","rootStyle","className","rootClassName","getRootRef","rootGetRootRef","align","getRef","before","after","status","children","placeholder","placeholderProp","selectType","multiline","fetching","labelTextTestId","searchable","accessible","slotProps","restProps","density","rootRest","root","inputClassName","value","readOnly","disabled","inputProps","input","title","showLabelOrPlaceholder","Boolean","handleRootRef","focusWithin","inputReadonly","type","Component","normalize","el","elCursorPointer","inputHidden","useMemo","labelHidden","platform","host","alignRight","alignCenter","empty","hasBefore","hasAfter","hasInputValue","mode","div","inputGroup","container","tabIndex","aria-hidden","data-testid"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/CustomSelect/CustomSelectInput/CustomSelectInput.tsx"],"sourcesContent":["'use client';\n/* eslint-disable jsdoc/require-jsdoc */\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { useExternRef } from '../../../hooks/useExternRef';\nimport { useFocusWithin } from '../../../hooks/useFocusWithin';\nimport { useMergeProps } from '../../../hooks/useMergeProps';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { getFormFieldModeFromSelectType } from '../../../lib/select';\nimport type { HasAlign, HasDataAttribute, HasRef, HasRootRef } from '../../../types';\nimport { FormField, type FormFieldProps } from '../../FormField/FormField';\nimport type { SelectType } from '../../Select/Select';\nimport { SelectTypography } from '../../SelectTypography/SelectTypography';\nimport { Text } from '../../Typography/Text/Text';\nimport { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';\nimport styles from './CustomSelectInput.module.css';\n\nconst densityClassNames = {\n none: styles.densityNone,\n compact: styles.densityCompact,\n};\n\nexport interface CustomSelectInputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign,\n Omit<FormFieldProps, 'mode' | 'type' | 'maxHeight'> {\n slotProps?:\n | {\n input?:\n | (React.InputHTMLAttributes<HTMLInputElement> &\n HasRootRef<HTMLInputElement> &\n HasDataAttribute)\n | undefined;\n root?:\n | (Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> &\n HasRootRef<HTMLDivElement> &\n HasDataAttribute)\n | undefined;\n }\n | undefined;\n selectType?: SelectType | undefined;\n multiline?: boolean | undefined;\n labelTextTestId?: string | undefined;\n fetching?: boolean | undefined;\n searchable?: boolean | undefined;\n accessible?: boolean | undefined;\n}\n\n/**\n * @since 5.10.0\n * @private\n */\nexport const CustomSelectInput = ({\n style: rootStyle,\n className: rootClassName,\n getRootRef: rootGetRootRef,\n align = 'left',\n getRef,\n before,\n after,\n status,\n children,\n placeholder: placeholderProp,\n selectType = 'default',\n multiline,\n fetching,\n labelTextTestId,\n searchable,\n accessible,\n\n slotProps,\n ...restProps\n}: CustomSelectInputProps): React.ReactNode => {\n const { density = 'none' } = useAdaptivity();\n\n const { style, className, getRootRef, ...rootRest } = useMergeProps(\n {\n style: rootStyle,\n className: rootClassName,\n getRootRef: rootGetRootRef,\n },\n slotProps?.root,\n );\n\n const {\n className: inputClassName,\n value,\n readOnly,\n disabled,\n placeholder,\n ...inputProps\n } = useMergeProps(\n {\n getRootRef: getRef,\n placeholder: placeholderProp,\n ...restProps,\n },\n slotProps?.input,\n );\n\n const title = children || placeholder;\n const showLabelOrPlaceholder = !Boolean(value);\n\n const handleRootRef = useExternRef(getRootRef);\n const focusWithin = useFocusWithin(handleRootRef);\n\n const inputReadonly = readOnly || (disabled && fetching);\n\n const input = (\n <Text\n type=\"text\"\n disabled={disabled && !fetching}\n readOnly={inputReadonly}\n Component=\"input\"\n normalize={false}\n placeholder={children ? '' : placeholder}\n className={classNames(\n styles.el,\n (readOnly || (showLabelOrPlaceholder && !focusWithin)) && styles.elCursorPointer,\n inputClassName,\n )}\n value={value}\n {...inputProps}\n />\n );\n\n const inputHidden = React.useMemo(() => {\n if (accessible) {\n if (!searchable) {\n return true;\n }\n return !focusWithin || (inputReadonly && !fetching);\n } else {\n return false;\n }\n }, [accessible, fetching, focusWithin, inputReadonly, searchable]);\n\n const labelHidden = showLabelOrPlaceholder ? false : !inputHidden;\n\n const platform = usePlatform();\n return (\n <FormField\n Component=\"div\"\n style={style}\n className={classNames(\n styles.host,\n align === 'right' && styles.alignRight,\n align === 'center' && styles.alignCenter,\n !children && styles.empty,\n multiline && styles.multiline,\n density !== 'regular' && densityClassNames[density],\n before && styles.hasBefore,\n after && styles.hasAfter,\n inputHidden && styles.inputHidden,\n labelHidden && styles.labelHidden,\n accessible && styles.accessible,\n value && styles.hasInputValue,\n className,\n )}\n getRootRef={handleRootRef}\n before={before}\n after={after}\n disabled={disabled}\n mode={getFormFieldModeFromSelectType(selectType)}\n status={status}\n {...rootRest}\n >\n <div className={styles.inputGroup}>\n <div\n className={classNames(styles.container, className)}\n tabIndex={-1}\n aria-hidden\n data-testid={labelTextTestId}\n >\n <SelectTypography selectType={selectType} className={styles.title}>\n {title}\n </SelectTypography>\n </div>\n {/* Чтобы отключить autosuggestion в iOS, тултипы которого начинают всплывать даже когда input\n * в режиме readonly, мы оборачиваем инпут в VisuallyHidden.\n * Тултипы появляются при каждом клике на input.\n * смотри: https://github.com/VKCOM/VKUI/issues/6205\n *\n * Достаточно не дать пользователю кликнуть по инпуту.\n * Делаем это только для режима read-only. Потому что проблема именно в режиме read-only.\n * Обертка вокруг инпута обрабатывает клики и передаёт фокус, так что на взаимодействии с инпутом это никак не скажется.\n **/}\n {readOnly && platform === 'ios' ? <VisuallyHidden>{input}</VisuallyHidden> : input}\n </div>\n </FormField>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useExternRef","useFocusWithin","useMergeProps","usePlatform","getFormFieldModeFromSelectType","FormField","SelectTypography","Text","VisuallyHidden","styles","densityClassNames","none","densityNone","compact","densityCompact","CustomSelectInput","style","rootStyle","className","rootClassName","getRootRef","rootGetRootRef","align","getRef","before","after","status","children","placeholder","placeholderProp","selectType","multiline","fetching","labelTextTestId","searchable","accessible","slotProps","restProps","density","rootRest","root","inputClassName","value","readOnly","disabled","inputProps","input","title","showLabelOrPlaceholder","Boolean","handleRootRef","focusWithin","inputReadonly","type","Component","normalize","el","elCursorPointer","inputHidden","useMemo","labelHidden","platform","host","alignRight","alignCenter","empty","hasBefore","hasAfter","hasInputValue","mode","div","inputGroup","container","tabIndex","aria-hidden","data-testid"],"mappings":"AAAA;;AACA,sCAAsC,GAEtC,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,kCAA+B;AAC7D,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,cAAc,QAAQ,mCAAgC;AAC/D,SAASC,aAAa,QAAQ,kCAA+B;AAC7D,SAASC,WAAW,QAAQ,gCAA6B;AACzD,SAASC,8BAA8B,QAAQ,yBAAsB;AAErE,SAASC,SAAS,QAA6B,+BAA4B;AAE3E,SAASC,gBAAgB,QAAQ,6CAA0C;AAC3E,SAASC,IAAI,QAAQ,gCAA6B;AAClD,SAASC,cAAc,QAAQ,yCAAsC;AACrE,OAAOC,YAAY,iCAAiC;AAEpD,MAAMC,oBAAoB;IACxBC,MAAMF,OAAOG,WAAW;IACxBC,SAASJ,OAAOK,cAAc;AAChC;AA8BA;;;CAGC,GACD,OAAO,MAAMC,oBAAoB,CAAC,EAChCC,OAAOC,SAAS,EAChBC,WAAWC,aAAa,EACxBC,YAAYC,cAAc,EAC1BC,QAAQ,MAAM,EACdC,MAAM,EACNC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,QAAQ,EACRC,aAAaC,eAAe,EAC5BC,aAAa,SAAS,EACtBC,SAAS,EACTC,QAAQ,EACRC,eAAe,EACfC,UAAU,EACVC,UAAU,EAEVC,SAAS,EACT,GAAGC,WACoB;IACvB,MAAM,EAAEC,UAAU,MAAM,EAAE,GAAGvC;IAE7B,MAAM,EAAEiB,KAAK,EAAEE,SAAS,EAAEE,UAAU,EAAE,GAAGmB,UAAU,GAAGrC,cACpD;QACEc,OAAOC;QACPC,WAAWC;QACXC,YAAYC;IACd,GACAe,WAAWI;IAGb,MAAM,EACJtB,WAAWuB,cAAc,EACzBC,KAAK,EACLC,QAAQ,EACRC,QAAQ,EACRhB,WAAW,EACX,GAAGiB,YACJ,GAAG3C,cACF;QACEkB,YAAYG;QACZK,aAAaC;QACb,GAAGQ,SAAS;IACd,GACAD,WAAWU;IAGb,MAAMC,QAAQpB,YAAYC;IAC1B,MAAMoB,yBAAyB,CAACC,QAAQP;IAExC,MAAMQ,gBAAgBlD,aAAaoB;IACnC,MAAM+B,cAAclD,eAAeiD;IAEnC,MAAME,gBAAgBT,YAAaC,YAAYZ;IAE/C,MAAMc,sBACJ,KAACvC;QACC8C,MAAK;QACLT,UAAUA,YAAY,CAACZ;QACvBW,UAAUS;QACVE,WAAU;QACVC,WAAW;QACX3B,aAAaD,WAAW,KAAKC;QAC7BV,WAAWpB,WACTW,OAAO+C,EAAE,EACT,AAACb,CAAAA,YAAaK,0BAA0B,CAACG,WAAW,KAAM1C,OAAOgD,eAAe,EAChFhB;QAEFC,OAAOA;QACN,GAAGG,UAAU;;IAIlB,MAAMa,cAAc7D,MAAM8D,OAAO,CAAC;QAChC,IAAIxB,YAAY;YACd,IAAI,CAACD,YAAY;gBACf,OAAO;YACT;YACA,OAAO,CAACiB,eAAgBC,iBAAiB,CAACpB;QAC5C,OAAO;YACL,OAAO;QACT;IACF,GAAG;QAACG;QAAYH;QAAUmB;QAAaC;QAAelB;KAAW;IAEjE,MAAM0B,cAAcZ,yBAAyB,QAAQ,CAACU;IAEtD,MAAMG,WAAW1D;IACjB,qBACE,KAACE;QACCiD,WAAU;QACVtC,OAAOA;QACPE,WAAWpB,WACTW,OAAOqD,IAAI,EACXxC,UAAU,WAAWb,OAAOsD,UAAU,EACtCzC,UAAU,YAAYb,OAAOuD,WAAW,EACxC,CAACrC,YAAYlB,OAAOwD,KAAK,EACzBlC,aAAatB,OAAOsB,SAAS,EAC7BO,YAAY,aAAa5B,iBAAiB,CAAC4B,QAAQ,EACnDd,UAAUf,OAAOyD,SAAS,EAC1BzC,SAAShB,OAAO0D,QAAQ,EACxBT,eAAejD,OAAOiD,WAAW,EACjCE,eAAenD,OAAOmD,WAAW,EACjCzB,cAAc1B,OAAO0B,UAAU,EAC/BO,SAASjC,OAAO2D,aAAa,EAC7BlD;QAEFE,YAAY8B;QACZ1B,QAAQA;QACRC,OAAOA;QACPmB,UAAUA;QACVyB,MAAMjE,+BAA+B0B;QACrCJ,QAAQA;QACP,GAAGa,QAAQ;kBAEZ,cAAA,MAAC+B;YAAIpD,WAAWT,OAAO8D,UAAU;;8BAC/B,KAACD;oBACCpD,WAAWpB,WAAWW,OAAO+D,SAAS,EAAEtD;oBACxCuD,UAAU,CAAC;oBACXC,aAAW;oBACXC,eAAa1C;8BAEb,cAAA,KAAC3B;wBAAiBwB,YAAYA;wBAAYZ,WAAWT,OAAOsC,KAAK;kCAC9DA;;;gBAYJJ,YAAYkB,aAAa,sBAAQ,KAACrD;8BAAgBsC;qBAA0BA;;;;AAIrF,EAAE"}