@vkontakte/vkui 6.4.0 → 6.5.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 (740) hide show
  1. package/dist/cjs/components/ActionSheet/ActionSheet.js +2 -1
  2. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  3. package/dist/cjs/components/ActionSheet/ActionSheetContext.d.ts +1 -0
  4. package/dist/cjs/components/ActionSheet/ActionSheetContext.d.ts.map +1 -1
  5. package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
  6. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
  7. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +38 -12
  8. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  9. package/dist/cjs/components/ActionSheetItem/helpers.d.ts +10 -0
  10. package/dist/cjs/components/ActionSheetItem/helpers.d.ts.map +1 -0
  11. package/dist/cjs/components/ActionSheetItem/helpers.js +22 -0
  12. package/dist/cjs/components/ActionSheetItem/helpers.js.map +1 -0
  13. package/dist/cjs/components/Alert/Alert.js +1 -1
  14. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  15. package/dist/cjs/components/Avatar/Avatar.d.ts +0 -1
  16. package/dist/cjs/components/Avatar/Avatar.d.ts.map +1 -1
  17. package/dist/cjs/components/Avatar/Avatar.js +3 -11
  18. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  19. package/dist/cjs/components/Avatar/AvatarBadge/icons.d.ts +8 -3
  20. package/dist/cjs/components/Avatar/AvatarBadge/icons.d.ts.map +1 -1
  21. package/dist/cjs/components/Avatar/AvatarBadge/icons.js +2 -2
  22. package/dist/cjs/components/Avatar/AvatarBadge/icons.js.map +1 -1
  23. package/dist/cjs/components/BaseGallery/BaseGallery.d.ts.map +1 -1
  24. package/dist/cjs/components/BaseGallery/BaseGallery.js +0 -2
  25. package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
  26. package/dist/cjs/components/Calendar/Calendar.js +3 -3
  27. package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
  28. package/dist/cjs/components/CalendarDays/CalendarDays.js +3 -3
  29. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
  30. package/dist/cjs/components/CalendarHeader/CalendarHeader.js +5 -5
  31. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
  32. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  33. package/dist/cjs/components/CalendarRange/CalendarRange.js +17 -15
  34. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  35. package/dist/cjs/components/CalendarTime/CalendarTime.js +5 -5
  36. package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
  37. package/dist/cjs/components/Cell/Cell.d.ts.map +1 -1
  38. package/dist/cjs/components/Cell/Cell.js +2 -2
  39. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  40. package/dist/cjs/components/Checkbox/Checkbox.d.ts +7 -5
  41. package/dist/cjs/components/Checkbox/Checkbox.d.ts.map +1 -1
  42. package/dist/cjs/components/Checkbox/Checkbox.js +21 -143
  43. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  44. package/dist/cjs/components/Checkbox/CheckboxInput/CheckboxInput.d.ts +8 -0
  45. package/dist/cjs/components/Checkbox/CheckboxInput/CheckboxInput.d.ts.map +1 -0
  46. package/dist/cjs/components/Checkbox/CheckboxInput/CheckboxInput.js +134 -0
  47. package/dist/cjs/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -0
  48. package/dist/cjs/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts +3 -0
  49. package/dist/cjs/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts.map +1 -0
  50. package/dist/cjs/components/Checkbox/CheckboxSimple/CheckboxSimple.js +52 -0
  51. package/dist/cjs/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -0
  52. package/dist/cjs/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  53. package/dist/cjs/components/ChipsInput/ChipsInput.js +1 -2
  54. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  55. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +1 -1
  56. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  57. package/dist/cjs/components/ChipsInputBase/helpers.d.ts.map +1 -1
  58. package/dist/cjs/components/ChipsInputBase/helpers.js +0 -3
  59. package/dist/cjs/components/ChipsInputBase/helpers.js.map +1 -1
  60. package/dist/cjs/components/ChipsInputBase/types.d.ts +1 -1
  61. package/dist/cjs/components/ChipsInputBase/types.d.ts.map +1 -1
  62. package/dist/cjs/components/ChipsInputBase/types.js.map +1 -1
  63. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  64. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +1 -7
  65. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  66. package/dist/cjs/components/Clickable/useState.d.ts +0 -5
  67. package/dist/cjs/components/Clickable/useState.d.ts.map +1 -1
  68. package/dist/cjs/components/Clickable/useState.js +3 -7
  69. package/dist/cjs/components/Clickable/useState.js.map +1 -1
  70. package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts +10 -1
  71. package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  72. package/dist/cjs/components/CustomScrollView/CustomScrollView.js +41 -132
  73. package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
  74. package/dist/cjs/components/CustomScrollView/ScrollX.d.ts +3 -0
  75. package/dist/cjs/components/CustomScrollView/ScrollX.d.ts.map +1 -0
  76. package/dist/cjs/components/CustomScrollView/ScrollX.js +42 -0
  77. package/dist/cjs/components/CustomScrollView/ScrollX.js.map +1 -0
  78. package/dist/cjs/components/CustomScrollView/ScrollY.d.ts +3 -0
  79. package/dist/cjs/components/CustomScrollView/ScrollY.d.ts.map +1 -0
  80. package/dist/cjs/components/CustomScrollView/ScrollY.js +42 -0
  81. package/dist/cjs/components/CustomScrollView/ScrollY.js.map +1 -0
  82. package/dist/cjs/components/CustomScrollView/types.d.ts +21 -0
  83. package/dist/cjs/components/CustomScrollView/types.d.ts.map +1 -0
  84. package/dist/cjs/components/CustomScrollView/types.js +8 -0
  85. package/dist/cjs/components/CustomScrollView/types.js.map +1 -0
  86. package/dist/cjs/components/CustomScrollView/useCustomScrollViewResize.d.ts +8 -0
  87. package/dist/cjs/components/CustomScrollView/useCustomScrollViewResize.d.ts.map +1 -0
  88. package/dist/cjs/components/CustomScrollView/useCustomScrollViewResize.js +32 -0
  89. package/dist/cjs/components/CustomScrollView/useCustomScrollViewResize.js.map +1 -0
  90. package/dist/cjs/components/CustomScrollView/useDetectScrollDirection.d.ts +6 -0
  91. package/dist/cjs/components/CustomScrollView/useDetectScrollDirection.d.ts.map +1 -0
  92. package/dist/cjs/components/CustomScrollView/useDetectScrollDirection.js +29 -0
  93. package/dist/cjs/components/CustomScrollView/useDetectScrollDirection.js.map +1 -0
  94. package/dist/cjs/components/CustomScrollView/useDragAndDrop.d.ts +5 -0
  95. package/dist/cjs/components/CustomScrollView/useDragAndDrop.d.ts.map +1 -0
  96. package/dist/cjs/components/CustomScrollView/useDragAndDrop.js +57 -0
  97. package/dist/cjs/components/CustomScrollView/useDragAndDrop.js.map +1 -0
  98. package/dist/cjs/components/CustomScrollView/useHorizontalScrollController.d.ts +4 -0
  99. package/dist/cjs/components/CustomScrollView/useHorizontalScrollController.d.ts.map +1 -0
  100. package/dist/cjs/components/CustomScrollView/useHorizontalScrollController.js +102 -0
  101. package/dist/cjs/components/CustomScrollView/useHorizontalScrollController.js.map +1 -0
  102. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
  103. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js +5 -0
  104. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  105. package/dist/cjs/components/CustomScrollView/useVerticalScrollController.d.ts +4 -0
  106. package/dist/cjs/components/CustomScrollView/useVerticalScrollController.d.ts.map +1 -0
  107. package/dist/cjs/components/CustomScrollView/useVerticalScrollController.js +102 -0
  108. package/dist/cjs/components/CustomScrollView/useVerticalScrollController.js.map +1 -0
  109. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  110. package/dist/cjs/components/CustomSelect/CustomSelect.js +3 -4
  111. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  112. package/dist/cjs/components/DateInput/DateInput.js +2 -2
  113. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  114. package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  115. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +4 -3
  116. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  117. package/dist/cjs/components/FixedLayout/FixedLayout.d.ts +2 -2
  118. package/dist/cjs/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  119. package/dist/cjs/components/FixedLayout/FixedLayout.js +1 -1
  120. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  121. package/dist/cjs/components/Flex/FlexItem/FlexItem.d.ts +3 -3
  122. package/dist/cjs/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  123. package/dist/cjs/components/Flex/FlexItem/FlexItem.js.map +1 -1
  124. package/dist/cjs/components/FocusTrap/FocusTrap.js +1 -1
  125. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  126. package/dist/cjs/components/GridAvatar/GridAvatar.d.ts +0 -1
  127. package/dist/cjs/components/GridAvatar/GridAvatar.d.ts.map +1 -1
  128. package/dist/cjs/components/GridAvatar/GridAvatar.js +0 -3
  129. package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -1
  130. package/dist/cjs/components/Group/Group.d.ts +1 -1
  131. package/dist/cjs/components/Group/Group.d.ts.map +1 -1
  132. package/dist/cjs/components/Group/Group.js +17 -12
  133. package/dist/cjs/components/Group/Group.js.map +1 -1
  134. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  135. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +7 -10
  136. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  137. package/dist/cjs/components/Image/Image.d.ts +0 -1
  138. package/dist/cjs/components/Image/Image.d.ts.map +1 -1
  139. package/dist/cjs/components/Image/Image.js +3 -11
  140. package/dist/cjs/components/Image/Image.js.map +1 -1
  141. package/dist/cjs/components/ImageBase/validators.js +1 -1
  142. package/dist/cjs/components/ImageBase/validators.js.map +1 -1
  143. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  144. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +17 -15
  145. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  146. package/dist/cjs/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  147. package/dist/cjs/components/ModalRoot/ModalRoot.js +4 -28
  148. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  149. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts +2 -2
  150. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
  151. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltipContainer.js +4 -3
  152. package/dist/cjs/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  153. package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  154. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +1 -3
  155. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  156. package/dist/cjs/components/Radio/Radio.d.ts +5 -1
  157. package/dist/cjs/components/Radio/Radio.d.ts.map +1 -1
  158. package/dist/cjs/components/Radio/Radio.js +12 -75
  159. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  160. package/dist/cjs/components/Radio/RadioInput/RadioInput.d.ts +6 -0
  161. package/dist/cjs/components/Radio/RadioInput/RadioInput.d.ts.map +1 -0
  162. package/dist/cjs/components/Radio/RadioInput/RadioInput.js +104 -0
  163. package/dist/cjs/components/Radio/RadioInput/RadioInput.js.map +1 -0
  164. package/dist/cjs/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  165. package/dist/cjs/components/SegmentedControl/SegmentedControl.js +1 -2
  166. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  167. package/dist/cjs/components/SelectionControl/SelectionControl.d.ts +14 -0
  168. package/dist/cjs/components/SelectionControl/SelectionControl.d.ts.map +1 -0
  169. package/dist/cjs/components/SelectionControl/SelectionControl.js +36 -0
  170. package/dist/cjs/components/SelectionControl/SelectionControl.js.map +1 -0
  171. package/dist/cjs/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +7 -0
  172. package/dist/cjs/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -0
  173. package/dist/cjs/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +56 -0
  174. package/dist/cjs/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -0
  175. package/dist/cjs/components/Textarea/Textarea.d.ts +1 -1
  176. package/dist/cjs/components/Textarea/Textarea.d.ts.map +1 -1
  177. package/dist/cjs/components/Textarea/Textarea.js +13 -3
  178. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  179. package/dist/cjs/components/Textarea/useResizeTextarea.d.ts +1 -1
  180. package/dist/cjs/components/Textarea/useResizeTextarea.d.ts.map +1 -1
  181. package/dist/cjs/components/Textarea/useResizeTextarea.js +2 -2
  182. package/dist/cjs/components/Textarea/useResizeTextarea.js.map +1 -1
  183. package/dist/cjs/components/View/View.d.ts.map +1 -1
  184. package/dist/cjs/components/View/View.js +2 -4
  185. package/dist/cjs/components/View/View.js.map +1 -1
  186. package/dist/cjs/components/View/ViewInfinite.d.ts.map +1 -1
  187. package/dist/cjs/components/View/ViewInfinite.js +1 -3
  188. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  189. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  190. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
  191. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js +4 -3
  192. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  193. package/dist/cjs/hooks/useCalendar.d.ts.map +1 -1
  194. package/dist/cjs/hooks/useCalendar.js +6 -6
  195. package/dist/cjs/hooks/useCalendar.js.map +1 -1
  196. package/dist/cjs/hooks/useTodayDate.js +3 -3
  197. package/dist/cjs/hooks/useTodayDate.js.map +1 -1
  198. package/dist/cjs/index.d.ts +3 -0
  199. package/dist/cjs/index.d.ts.map +1 -1
  200. package/dist/cjs/index.js +8 -0
  201. package/dist/cjs/index.js.map +1 -1
  202. package/dist/cjs/lib/calendar.d.ts.map +1 -1
  203. package/dist/cjs/lib/calendar.js +27 -16
  204. package/dist/cjs/lib/calendar.js.map +1 -1
  205. package/dist/cjs/lib/date.d.ts +1 -28
  206. package/dist/cjs/lib/date.d.ts.map +1 -1
  207. package/dist/cjs/lib/date.js +8 -180
  208. package/dist/cjs/lib/date.js.map +1 -1
  209. package/dist/components/ActionSheet/ActionSheet.js +2 -1
  210. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  211. package/dist/components/ActionSheet/ActionSheetContext.d.ts +1 -0
  212. package/dist/components/ActionSheet/ActionSheetContext.d.ts.map +1 -1
  213. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  214. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
  215. package/dist/components/ActionSheetItem/ActionSheetItem.js +38 -12
  216. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  217. package/dist/components/ActionSheetItem/helpers.d.ts +10 -0
  218. package/dist/components/ActionSheetItem/helpers.d.ts.map +1 -0
  219. package/dist/components/ActionSheetItem/helpers.js +12 -0
  220. package/dist/components/ActionSheetItem/helpers.js.map +1 -0
  221. package/dist/components/Alert/Alert.js +1 -1
  222. package/dist/components/Alert/Alert.js.map +1 -1
  223. package/dist/components/Avatar/Avatar.d.ts +0 -1
  224. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  225. package/dist/components/Avatar/Avatar.js +1 -1
  226. package/dist/components/Avatar/Avatar.js.map +1 -1
  227. package/dist/components/Avatar/AvatarBadge/icons.d.ts +8 -3
  228. package/dist/components/Avatar/AvatarBadge/icons.d.ts.map +1 -1
  229. package/dist/components/Avatar/AvatarBadge/icons.js +2 -2
  230. package/dist/components/Avatar/AvatarBadge/icons.js.map +1 -1
  231. package/dist/components/BaseGallery/BaseGallery.d.ts.map +1 -1
  232. package/dist/components/BaseGallery/BaseGallery.js +0 -2
  233. package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
  234. package/dist/components/Calendar/Calendar.js +1 -1
  235. package/dist/components/Calendar/Calendar.js.map +1 -1
  236. package/dist/components/CalendarDays/CalendarDays.js +1 -1
  237. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  238. package/dist/components/CalendarHeader/CalendarHeader.js +1 -1
  239. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  240. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  241. package/dist/components/CalendarRange/CalendarRange.js +6 -4
  242. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  243. package/dist/components/CalendarTime/CalendarTime.js +1 -1
  244. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  245. package/dist/components/Cell/Cell.d.ts.map +1 -1
  246. package/dist/components/Cell/Cell.js +2 -2
  247. package/dist/components/Cell/Cell.js.map +1 -1
  248. package/dist/components/Checkbox/Checkbox.d.ts +7 -5
  249. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  250. package/dist/components/Checkbox/Checkbox.js +24 -146
  251. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  252. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts +8 -0
  253. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts.map +1 -0
  254. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.js +123 -0
  255. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -0
  256. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts +3 -0
  257. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts.map +1 -0
  258. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js +42 -0
  259. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -0
  260. package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  261. package/dist/components/ChipsInput/ChipsInput.js +1 -2
  262. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  263. package/dist/components/ChipsInputBase/ChipsInputBase.js +1 -1
  264. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  265. package/dist/components/ChipsInputBase/helpers.d.ts.map +1 -1
  266. package/dist/components/ChipsInputBase/helpers.js +0 -3
  267. package/dist/components/ChipsInputBase/helpers.js.map +1 -1
  268. package/dist/components/ChipsInputBase/types.d.ts +1 -1
  269. package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
  270. package/dist/components/ChipsInputBase/types.js.map +1 -1
  271. package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  272. package/dist/components/ChipsSelect/ChipsSelect.js +1 -7
  273. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  274. package/dist/components/Clickable/useState.d.ts +0 -5
  275. package/dist/components/Clickable/useState.d.ts.map +1 -1
  276. package/dist/components/Clickable/useState.js +2 -2
  277. package/dist/components/Clickable/useState.js.map +1 -1
  278. package/dist/components/CustomScrollView/CustomScrollView.d.ts +10 -1
  279. package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  280. package/dist/components/CustomScrollView/CustomScrollView.js +44 -133
  281. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  282. package/dist/components/CustomScrollView/ScrollX.d.ts +3 -0
  283. package/dist/components/CustomScrollView/ScrollX.d.ts.map +1 -0
  284. package/dist/components/CustomScrollView/ScrollX.js +31 -0
  285. package/dist/components/CustomScrollView/ScrollX.js.map +1 -0
  286. package/dist/components/CustomScrollView/ScrollY.d.ts +3 -0
  287. package/dist/components/CustomScrollView/ScrollY.d.ts.map +1 -0
  288. package/dist/components/CustomScrollView/ScrollY.js +31 -0
  289. package/dist/components/CustomScrollView/ScrollY.js.map +1 -0
  290. package/dist/components/CustomScrollView/types.d.ts +21 -0
  291. package/dist/components/CustomScrollView/types.d.ts.map +1 -0
  292. package/dist/components/CustomScrollView/types.js +3 -0
  293. package/dist/components/CustomScrollView/types.js.map +1 -0
  294. package/dist/components/CustomScrollView/useCustomScrollViewResize.d.ts +8 -0
  295. package/dist/components/CustomScrollView/useCustomScrollViewResize.d.ts.map +1 -0
  296. package/dist/components/CustomScrollView/useCustomScrollViewResize.js +22 -0
  297. package/dist/components/CustomScrollView/useCustomScrollViewResize.js.map +1 -0
  298. package/dist/components/CustomScrollView/useDetectScrollDirection.d.ts +6 -0
  299. package/dist/components/CustomScrollView/useDetectScrollDirection.d.ts.map +1 -0
  300. package/dist/components/CustomScrollView/useDetectScrollDirection.js +20 -0
  301. package/dist/components/CustomScrollView/useDetectScrollDirection.js.map +1 -0
  302. package/dist/components/CustomScrollView/useDragAndDrop.d.ts +5 -0
  303. package/dist/components/CustomScrollView/useDragAndDrop.d.ts.map +1 -0
  304. package/dist/components/CustomScrollView/useDragAndDrop.js +46 -0
  305. package/dist/components/CustomScrollView/useDragAndDrop.js.map +1 -0
  306. package/dist/components/CustomScrollView/useHorizontalScrollController.d.ts +4 -0
  307. package/dist/components/CustomScrollView/useHorizontalScrollController.d.ts.map +1 -0
  308. package/dist/components/CustomScrollView/useHorizontalScrollController.js +91 -0
  309. package/dist/components/CustomScrollView/useHorizontalScrollController.js.map +1 -0
  310. package/dist/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
  311. package/dist/components/CustomScrollView/useTrackerVisibility.js +5 -0
  312. package/dist/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  313. package/dist/components/CustomScrollView/useVerticalScrollController.d.ts +4 -0
  314. package/dist/components/CustomScrollView/useVerticalScrollController.d.ts.map +1 -0
  315. package/dist/components/CustomScrollView/useVerticalScrollController.js +91 -0
  316. package/dist/components/CustomScrollView/useVerticalScrollController.js.map +1 -0
  317. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  318. package/dist/components/CustomSelect/CustomSelect.js +3 -4
  319. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  320. package/dist/components/DateInput/DateInput.js +2 -2
  321. package/dist/components/DateInput/DateInput.js.map +1 -1
  322. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  323. package/dist/components/DateRangeInput/DateRangeInput.js +4 -3
  324. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  325. package/dist/components/FixedLayout/FixedLayout.d.ts +2 -2
  326. package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  327. package/dist/components/FixedLayout/FixedLayout.js +1 -1
  328. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  329. package/dist/components/Flex/FlexItem/FlexItem.d.ts +3 -3
  330. package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  331. package/dist/components/Flex/FlexItem/FlexItem.js.map +1 -1
  332. package/dist/components/FocusTrap/FocusTrap.js +1 -1
  333. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  334. package/dist/components/GridAvatar/GridAvatar.d.ts +0 -1
  335. package/dist/components/GridAvatar/GridAvatar.d.ts.map +1 -1
  336. package/dist/components/GridAvatar/GridAvatar.js +1 -1
  337. package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
  338. package/dist/components/Group/Group.d.ts +1 -1
  339. package/dist/components/Group/Group.d.ts.map +1 -1
  340. package/dist/components/Group/Group.js +17 -12
  341. package/dist/components/Group/Group.js.map +1 -1
  342. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  343. package/dist/components/HorizontalScroll/HorizontalScroll.js +7 -10
  344. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  345. package/dist/components/Image/Image.d.ts +0 -1
  346. package/dist/components/Image/Image.d.ts.map +1 -1
  347. package/dist/components/Image/Image.js +1 -1
  348. package/dist/components/Image/Image.js.map +1 -1
  349. package/dist/components/ImageBase/validators.js +1 -1
  350. package/dist/components/ImageBase/validators.js.map +1 -1
  351. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  352. package/dist/components/ModalPageHeader/ModalPageHeader.js +18 -16
  353. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  354. package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  355. package/dist/components/ModalRoot/ModalRoot.js +4 -28
  356. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  357. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts +2 -2
  358. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
  359. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js +4 -3
  360. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  361. package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  362. package/dist/components/PullToRefresh/PullToRefresh.js +1 -3
  363. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  364. package/dist/components/Radio/Radio.d.ts +5 -1
  365. package/dist/components/Radio/Radio.d.ts.map +1 -1
  366. package/dist/components/Radio/Radio.js +13 -76
  367. package/dist/components/Radio/Radio.js.map +1 -1
  368. package/dist/components/Radio/RadioInput/RadioInput.d.ts +6 -0
  369. package/dist/components/Radio/RadioInput/RadioInput.d.ts.map +1 -0
  370. package/dist/components/Radio/RadioInput/RadioInput.js +93 -0
  371. package/dist/components/Radio/RadioInput/RadioInput.js.map +1 -0
  372. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  373. package/dist/components/SegmentedControl/SegmentedControl.js +1 -2
  374. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  375. package/dist/components/SelectionControl/SelectionControl.d.ts +14 -0
  376. package/dist/components/SelectionControl/SelectionControl.d.ts.map +1 -0
  377. package/dist/components/SelectionControl/SelectionControl.js +27 -0
  378. package/dist/components/SelectionControl/SelectionControl.js.map +1 -0
  379. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +7 -0
  380. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -0
  381. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +46 -0
  382. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -0
  383. package/dist/components/Textarea/Textarea.d.ts +1 -1
  384. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  385. package/dist/components/Textarea/Textarea.js +13 -3
  386. package/dist/components/Textarea/Textarea.js.map +1 -1
  387. package/dist/components/Textarea/useResizeTextarea.d.ts +1 -1
  388. package/dist/components/Textarea/useResizeTextarea.d.ts.map +1 -1
  389. package/dist/components/Textarea/useResizeTextarea.js +2 -2
  390. package/dist/components/Textarea/useResizeTextarea.js.map +1 -1
  391. package/dist/components/View/View.d.ts.map +1 -1
  392. package/dist/components/View/View.js +2 -4
  393. package/dist/components/View/View.js.map +1 -1
  394. package/dist/components/View/ViewInfinite.d.ts.map +1 -1
  395. package/dist/components/View/ViewInfinite.js +1 -3
  396. package/dist/components/View/ViewInfinite.js.map +1 -1
  397. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  398. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
  399. package/dist/components/VisuallyHidden/VisuallyHidden.js +4 -3
  400. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  401. package/dist/components.css +2 -2
  402. package/dist/components.css.map +1 -1
  403. package/dist/components.js.tmp +1584 -1013
  404. package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -1
  405. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  406. package/dist/cssm/components/ActionSheet/ActionSheetContext.d.ts +1 -0
  407. package/dist/cssm/components/ActionSheet/ActionSheetContext.d.ts.map +1 -1
  408. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  409. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
  410. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +38 -13
  411. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  412. package/dist/cssm/components/ActionSheetItem/helpers.d.ts +10 -0
  413. package/dist/cssm/components/ActionSheetItem/helpers.d.ts.map +1 -0
  414. package/dist/cssm/components/ActionSheetItem/helpers.js +12 -0
  415. package/dist/cssm/components/ActionSheetItem/helpers.js.map +1 -0
  416. package/dist/cssm/components/Alert/Alert.js +1 -1
  417. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  418. package/dist/cssm/components/Avatar/Avatar.d.ts +0 -1
  419. package/dist/cssm/components/Avatar/Avatar.d.ts.map +1 -1
  420. package/dist/cssm/components/Avatar/Avatar.js +1 -1
  421. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  422. package/dist/cssm/components/Avatar/AvatarBadge/icons.d.ts +8 -3
  423. package/dist/cssm/components/Avatar/AvatarBadge/icons.d.ts.map +1 -1
  424. package/dist/cssm/components/Avatar/AvatarBadge/icons.js +2 -2
  425. package/dist/cssm/components/Avatar/AvatarBadge/icons.js.map +1 -1
  426. package/dist/cssm/components/BaseGallery/BaseGallery.d.ts.map +1 -1
  427. package/dist/cssm/components/BaseGallery/BaseGallery.js +0 -2
  428. package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
  429. package/dist/cssm/components/Calendar/Calendar.js +1 -1
  430. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  431. package/dist/cssm/components/CalendarDays/CalendarDays.js +1 -1
  432. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  433. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +1 -1
  434. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  435. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  436. package/dist/cssm/components/CalendarRange/CalendarRange.js +6 -4
  437. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  438. package/dist/cssm/components/CalendarTime/CalendarTime.js +1 -1
  439. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  440. package/dist/cssm/components/Cell/Cell.d.ts.map +1 -1
  441. package/dist/cssm/components/Cell/Cell.js +2 -2
  442. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  443. package/dist/cssm/components/Cell/Cell.module.css +12 -0
  444. package/dist/cssm/components/CellButton/CellButton.module.css +2 -2
  445. package/dist/cssm/components/Checkbox/Checkbox.d.ts +7 -5
  446. package/dist/cssm/components/Checkbox/Checkbox.d.ts.map +1 -1
  447. package/dist/cssm/components/Checkbox/Checkbox.js +28 -141
  448. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  449. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.d.ts +8 -0
  450. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.d.ts.map +1 -0
  451. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.js +113 -0
  452. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -0
  453. package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.module.css +30 -0
  454. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts +3 -0
  455. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts.map +1 -0
  456. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js +30 -0
  457. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -0
  458. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +28 -0
  459. package/dist/cssm/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  460. package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -2
  461. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  462. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +1 -1
  463. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  464. package/dist/cssm/components/ChipsInputBase/helpers.d.ts.map +1 -1
  465. package/dist/cssm/components/ChipsInputBase/helpers.js +0 -3
  466. package/dist/cssm/components/ChipsInputBase/helpers.js.map +1 -1
  467. package/dist/cssm/components/ChipsInputBase/types.d.ts +1 -1
  468. package/dist/cssm/components/ChipsInputBase/types.d.ts.map +1 -1
  469. package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
  470. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  471. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +1 -7
  472. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  473. package/dist/cssm/components/Clickable/useState.d.ts +0 -5
  474. package/dist/cssm/components/Clickable/useState.d.ts.map +1 -1
  475. package/dist/cssm/components/Clickable/useState.js +2 -2
  476. package/dist/cssm/components/Clickable/useState.js.map +1 -1
  477. package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts +10 -1
  478. package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  479. package/dist/cssm/components/CustomScrollView/CustomScrollView.js +39 -131
  480. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  481. package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +52 -13
  482. package/dist/cssm/components/CustomScrollView/ScrollX.d.ts +3 -0
  483. package/dist/cssm/components/CustomScrollView/ScrollX.d.ts.map +1 -0
  484. package/dist/cssm/components/CustomScrollView/ScrollX.js +32 -0
  485. package/dist/cssm/components/CustomScrollView/ScrollX.js.map +1 -0
  486. package/dist/cssm/components/CustomScrollView/ScrollY.d.ts +3 -0
  487. package/dist/cssm/components/CustomScrollView/ScrollY.d.ts.map +1 -0
  488. package/dist/cssm/components/CustomScrollView/ScrollY.js +32 -0
  489. package/dist/cssm/components/CustomScrollView/ScrollY.js.map +1 -0
  490. package/dist/cssm/components/CustomScrollView/types.d.ts +21 -0
  491. package/dist/cssm/components/CustomScrollView/types.d.ts.map +1 -0
  492. package/dist/cssm/components/CustomScrollView/types.js +3 -0
  493. package/dist/cssm/components/CustomScrollView/types.js.map +1 -0
  494. package/dist/cssm/components/CustomScrollView/useCustomScrollViewResize.d.ts +8 -0
  495. package/dist/cssm/components/CustomScrollView/useCustomScrollViewResize.d.ts.map +1 -0
  496. package/dist/cssm/components/CustomScrollView/useCustomScrollViewResize.js +22 -0
  497. package/dist/cssm/components/CustomScrollView/useCustomScrollViewResize.js.map +1 -0
  498. package/dist/cssm/components/CustomScrollView/useDetectScrollDirection.d.ts +6 -0
  499. package/dist/cssm/components/CustomScrollView/useDetectScrollDirection.d.ts.map +1 -0
  500. package/dist/cssm/components/CustomScrollView/useDetectScrollDirection.js +20 -0
  501. package/dist/cssm/components/CustomScrollView/useDetectScrollDirection.js.map +1 -0
  502. package/dist/cssm/components/CustomScrollView/useDragAndDrop.d.ts +5 -0
  503. package/dist/cssm/components/CustomScrollView/useDragAndDrop.d.ts.map +1 -0
  504. package/dist/cssm/components/CustomScrollView/useDragAndDrop.js +46 -0
  505. package/dist/cssm/components/CustomScrollView/useDragAndDrop.js.map +1 -0
  506. package/dist/cssm/components/CustomScrollView/useHorizontalScrollController.d.ts +4 -0
  507. package/dist/cssm/components/CustomScrollView/useHorizontalScrollController.d.ts.map +1 -0
  508. package/dist/cssm/components/CustomScrollView/useHorizontalScrollController.js +91 -0
  509. package/dist/cssm/components/CustomScrollView/useHorizontalScrollController.js.map +1 -0
  510. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
  511. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js +5 -0
  512. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  513. package/dist/cssm/components/CustomScrollView/useVerticalScrollController.d.ts +4 -0
  514. package/dist/cssm/components/CustomScrollView/useVerticalScrollController.d.ts.map +1 -0
  515. package/dist/cssm/components/CustomScrollView/useVerticalScrollController.js +91 -0
  516. package/dist/cssm/components/CustomScrollView/useVerticalScrollController.js.map +1 -0
  517. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  518. package/dist/cssm/components/CustomSelect/CustomSelect.js +3 -4
  519. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  520. package/dist/cssm/components/DateInput/DateInput.js +2 -2
  521. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  522. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  523. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -3
  524. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  525. package/dist/cssm/components/FixedLayout/FixedLayout.d.ts +2 -2
  526. package/dist/cssm/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  527. package/dist/cssm/components/FixedLayout/FixedLayout.js +1 -1
  528. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  529. package/dist/cssm/components/Flex/FlexItem/FlexItem.d.ts +3 -3
  530. package/dist/cssm/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  531. package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
  532. package/dist/cssm/components/FocusTrap/FocusTrap.js +1 -1
  533. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  534. package/dist/cssm/components/FormField/FormField.module.css +0 -3
  535. package/dist/cssm/components/GridAvatar/GridAvatar.d.ts +0 -1
  536. package/dist/cssm/components/GridAvatar/GridAvatar.d.ts.map +1 -1
  537. package/dist/cssm/components/GridAvatar/GridAvatar.js +1 -1
  538. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  539. package/dist/cssm/components/Group/Group.d.ts +1 -1
  540. package/dist/cssm/components/Group/Group.d.ts.map +1 -1
  541. package/dist/cssm/components/Group/Group.js +17 -12
  542. package/dist/cssm/components/Group/Group.js.map +1 -1
  543. package/dist/cssm/components/Group/Group.module.css +166 -139
  544. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  545. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +7 -10
  546. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  547. package/dist/cssm/components/Image/Image.d.ts +0 -1
  548. package/dist/cssm/components/Image/Image.d.ts.map +1 -1
  549. package/dist/cssm/components/Image/Image.js +1 -1
  550. package/dist/cssm/components/Image/Image.js.map +1 -1
  551. package/dist/cssm/components/ImageBase/validators.js +1 -1
  552. package/dist/cssm/components/ImageBase/validators.js.map +1 -1
  553. package/dist/cssm/components/List/List.module.css +1 -0
  554. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  555. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +18 -16
  556. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  557. package/dist/cssm/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  558. package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -28
  559. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  560. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts +2 -2
  561. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
  562. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js +2 -2
  563. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  564. package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  565. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +1 -3
  566. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  567. package/dist/cssm/components/Radio/Radio.d.ts +5 -1
  568. package/dist/cssm/components/Radio/Radio.d.ts.map +1 -1
  569. package/dist/cssm/components/Radio/Radio.js +13 -76
  570. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  571. package/dist/cssm/components/Radio/Radio.module.css +0 -145
  572. package/dist/cssm/components/Radio/RadioInput/RadioInput.d.ts +6 -0
  573. package/dist/cssm/components/Radio/RadioInput/RadioInput.d.ts.map +1 -0
  574. package/dist/cssm/components/Radio/RadioInput/RadioInput.js +86 -0
  575. package/dist/cssm/components/Radio/RadioInput/RadioInput.js.map +1 -0
  576. package/dist/cssm/components/Radio/RadioInput/RadioInput.module.css +20 -0
  577. package/dist/cssm/components/Search/Search.module.css +3 -1
  578. package/dist/cssm/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  579. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +1 -2
  580. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  581. package/dist/cssm/components/SelectionControl/SelectionControl.d.ts +14 -0
  582. package/dist/cssm/components/SelectionControl/SelectionControl.d.ts.map +1 -0
  583. package/dist/cssm/components/SelectionControl/SelectionControl.js +28 -0
  584. package/dist/cssm/components/SelectionControl/SelectionControl.js.map +1 -0
  585. package/dist/cssm/components/SelectionControl/SelectionControl.module.css +35 -0
  586. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +7 -0
  587. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -0
  588. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +39 -0
  589. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -0
  590. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +48 -0
  591. package/dist/cssm/components/Textarea/Textarea.d.ts +1 -1
  592. package/dist/cssm/components/Textarea/Textarea.d.ts.map +1 -1
  593. package/dist/cssm/components/Textarea/Textarea.js +11 -2
  594. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  595. package/dist/cssm/components/Textarea/Textarea.module.css +3 -3
  596. package/dist/cssm/components/Textarea/useResizeTextarea.d.ts +1 -1
  597. package/dist/cssm/components/Textarea/useResizeTextarea.d.ts.map +1 -1
  598. package/dist/cssm/components/Textarea/useResizeTextarea.js +2 -2
  599. package/dist/cssm/components/Textarea/useResizeTextarea.js.map +1 -1
  600. package/dist/cssm/components/View/View.d.ts.map +1 -1
  601. package/dist/cssm/components/View/View.js +2 -4
  602. package/dist/cssm/components/View/View.js.map +1 -1
  603. package/dist/cssm/components/View/ViewInfinite.d.ts.map +1 -1
  604. package/dist/cssm/components/View/ViewInfinite.js +1 -3
  605. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  606. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  607. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
  608. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +2 -2
  609. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  610. package/dist/cssm/components/WriteBar/WriteBar.module.css +2 -0
  611. package/dist/cssm/hooks/useCalendar.d.ts.map +1 -1
  612. package/dist/cssm/hooks/useCalendar.js +1 -1
  613. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  614. package/dist/cssm/hooks/useTodayDate.js +2 -2
  615. package/dist/cssm/hooks/useTodayDate.js.map +1 -1
  616. package/dist/cssm/index.d.ts +3 -0
  617. package/dist/cssm/index.d.ts.map +1 -1
  618. package/dist/cssm/index.js +2 -0
  619. package/dist/cssm/index.js.map +1 -1
  620. package/dist/cssm/lib/calendar.d.ts.map +1 -1
  621. package/dist/cssm/lib/calendar.js +15 -4
  622. package/dist/cssm/lib/calendar.js.map +1 -1
  623. package/dist/cssm/lib/date.d.ts +1 -28
  624. package/dist/cssm/lib/date.d.ts.map +1 -1
  625. package/dist/cssm/lib/date.js +8 -105
  626. package/dist/cssm/lib/date.js.map +1 -1
  627. package/dist/cssm/styles/themes.css +63 -19
  628. package/dist/hooks/useCalendar.d.ts.map +1 -1
  629. package/dist/hooks/useCalendar.js +1 -1
  630. package/dist/hooks/useCalendar.js.map +1 -1
  631. package/dist/hooks/useTodayDate.js +2 -2
  632. package/dist/hooks/useTodayDate.js.map +1 -1
  633. package/dist/index.d.ts +3 -0
  634. package/dist/index.d.ts.map +1 -1
  635. package/dist/index.js +2 -0
  636. package/dist/index.js.map +1 -1
  637. package/dist/lib/calendar.d.ts.map +1 -1
  638. package/dist/lib/calendar.js +15 -4
  639. package/dist/lib/calendar.js.map +1 -1
  640. package/dist/lib/date.d.ts +1 -28
  641. package/dist/lib/date.d.ts.map +1 -1
  642. package/dist/lib/date.js +8 -105
  643. package/dist/lib/date.js.map +1 -1
  644. package/dist/vkui.css +3 -3
  645. package/dist/vkui.css.map +1 -1
  646. package/dist/vkui.js.tmp +1586 -1012
  647. package/package.json +3 -4
  648. package/src/components/ActionSheet/ActionSheet.tsx +1 -1
  649. package/src/components/ActionSheet/ActionSheetContext.ts +1 -0
  650. package/src/components/ActionSheetItem/ActionSheetItem.tsx +43 -18
  651. package/src/components/ActionSheetItem/helpers.ts +11 -0
  652. package/src/components/Alert/Alert.tsx +1 -1
  653. package/src/components/Avatar/Avatar.tsx +1 -1
  654. package/src/components/Avatar/AvatarBadge/icons.tsx +9 -8
  655. package/src/components/BaseGallery/BaseGallery.tsx +0 -4
  656. package/src/components/Calendar/Calendar.tsx +1 -1
  657. package/src/components/CalendarDays/CalendarDays.tsx +1 -1
  658. package/src/components/CalendarHeader/CalendarHeader.tsx +1 -1
  659. package/src/components/CalendarRange/CalendarRange.tsx +5 -6
  660. package/src/components/CalendarTime/CalendarTime.tsx +1 -1
  661. package/src/components/Cell/Cell.module.css +10 -0
  662. package/src/components/Cell/Cell.tsx +13 -2
  663. package/src/components/CellButton/CellButton.module.css +2 -2
  664. package/src/components/Checkbox/Checkbox.tsx +30 -166
  665. package/src/components/Checkbox/CheckboxInput/CheckboxInput.module.css +30 -0
  666. package/src/components/Checkbox/CheckboxInput/CheckboxInput.tsx +174 -0
  667. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +28 -0
  668. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.tsx +49 -0
  669. package/src/components/ChipsInput/ChipsInput.tsx +3 -8
  670. package/src/components/ChipsInputBase/ChipsInputBase.tsx +1 -1
  671. package/src/components/ChipsInputBase/helpers.ts +0 -3
  672. package/src/components/ChipsInputBase/types.ts +1 -1
  673. package/src/components/ChipsSelect/ChipsSelect.tsx +1 -9
  674. package/src/components/Clickable/useState.tsx +2 -2
  675. package/src/components/CustomScrollView/CustomScrollView.module.css +49 -11
  676. package/src/components/CustomScrollView/CustomScrollView.tsx +56 -164
  677. package/src/components/CustomScrollView/ScrollX.tsx +57 -0
  678. package/src/components/CustomScrollView/ScrollY.tsx +57 -0
  679. package/src/components/CustomScrollView/types.ts +23 -0
  680. package/src/components/CustomScrollView/useCustomScrollViewResize.ts +32 -0
  681. package/src/components/CustomScrollView/useDetectScrollDirection.ts +21 -0
  682. package/src/components/CustomScrollView/useDragAndDrop.tsx +55 -0
  683. package/src/components/CustomScrollView/useHorizontalScrollController.tsx +120 -0
  684. package/src/components/CustomScrollView/useTrackerVisibility.ts +4 -0
  685. package/src/components/CustomScrollView/useVerticalScrollController.tsx +122 -0
  686. package/src/components/CustomSelect/CustomSelect.tsx +3 -5
  687. package/src/components/DateInput/DateInput.tsx +2 -2
  688. package/src/components/DateRangeInput/DateRangeInput.tsx +5 -4
  689. package/src/components/FixedLayout/FixedLayout.tsx +4 -4
  690. package/src/components/Flex/FlexItem/FlexItem.tsx +3 -3
  691. package/src/components/FocusTrap/FocusTrap.tsx +1 -1
  692. package/src/components/FormField/FormField.module.css +0 -3
  693. package/src/components/GridAvatar/GridAvatar.tsx +1 -1
  694. package/src/components/Group/Group.module.css +155 -132
  695. package/src/components/Group/Group.tsx +25 -19
  696. package/src/components/HorizontalScroll/HorizontalScroll.tsx +7 -12
  697. package/src/components/Image/Image.tsx +1 -1
  698. package/src/components/ImageBase/validators.ts +1 -1
  699. package/src/components/List/List.module.css +1 -0
  700. package/src/components/ModalPageHeader/ModalPageHeader.tsx +24 -22
  701. package/src/components/ModalRoot/ModalRoot.tsx +4 -32
  702. package/src/components/OnboardingTooltip/OnboardingTooltipContainer.tsx +4 -3
  703. package/src/components/PullToRefresh/PullToRefresh.tsx +0 -2
  704. package/src/components/Radio/Radio.module.css +0 -131
  705. package/src/components/Radio/Radio.tsx +14 -53
  706. package/src/components/Radio/RadioInput/RadioInput.module.css +20 -0
  707. package/src/components/Radio/RadioInput/RadioInput.tsx +58 -0
  708. package/src/components/Search/Search.module.css +1 -1
  709. package/src/components/SegmentedControl/SegmentedControl.tsx +0 -1
  710. package/src/components/SelectionControl/SelectionControl.module.css +33 -0
  711. package/src/components/SelectionControl/SelectionControl.tsx +44 -0
  712. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +44 -0
  713. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.tsx +43 -0
  714. package/src/components/Textarea/Textarea.module.css +3 -3
  715. package/src/components/Textarea/Textarea.tsx +9 -1
  716. package/src/components/Textarea/useResizeTextarea.ts +2 -1
  717. package/src/components/View/View.tsx +0 -2
  718. package/src/components/View/ViewInfinite.tsx +0 -2
  719. package/src/components/VisuallyHidden/VisuallyHidden.tsx +2 -0
  720. package/src/components/WriteBar/WriteBar.module.css +1 -1
  721. package/src/hooks/useCalendar.ts +1 -9
  722. package/src/hooks/useTodayDate.ts +2 -2
  723. package/src/index.ts +3 -0
  724. package/src/lib/calendar.ts +8 -7
  725. package/src/lib/date.ts +9 -140
  726. package/dist/cjs/lib/styles.d.ts +0 -2
  727. package/dist/cjs/lib/styles.d.ts.map +0 -1
  728. package/dist/cjs/lib/styles.js +0 -20
  729. package/dist/cjs/lib/styles.js.map +0 -1
  730. package/dist/cssm/components/Checkbox/Checkbox.module.css +0 -183
  731. package/dist/cssm/lib/styles.d.ts +0 -2
  732. package/dist/cssm/lib/styles.d.ts.map +0 -1
  733. package/dist/cssm/lib/styles.js +0 -10
  734. package/dist/cssm/lib/styles.js.map +0 -1
  735. package/dist/lib/styles.d.ts +0 -2
  736. package/dist/lib/styles.d.ts.map +0 -1
  737. package/dist/lib/styles.js +0 -10
  738. package/dist/lib/styles.js.map +0 -1
  739. package/src/components/Checkbox/Checkbox.module.css +0 -170
  740. package/src/lib/styles.ts +0 -12
@@ -9,195 +9,23 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- addDays: function() {
13
- return addDays;
14
- },
15
- addMonths: function() {
16
- return addMonths;
17
- },
18
- addWeeks: function() {
19
- return addWeeks;
20
- },
21
- eachDayOfInterval: function() {
22
- return eachDayOfInterval;
23
- },
24
- endOfDay: function() {
25
- return endOfDay;
26
- },
27
- endOfMonth: function() {
28
- return endOfMonth;
29
- },
30
- endOfWeek: function() {
31
- return endOfWeek;
32
- },
33
12
  format: function() {
34
13
  return format;
35
14
  },
36
- getMillisecondsToTomorrow: function() {
37
- return getMillisecondsToTomorrow;
38
- },
39
- isAfter: function() {
40
- return isAfter;
41
- },
42
- isBefore: function() {
43
- return isBefore;
44
- },
45
- isFirstDayOfMonth: function() {
46
- return isFirstDayOfMonth;
47
- },
48
- isLastDayOfMonth: function() {
49
- return isLastDayOfMonth;
50
- },
51
15
  isMatch: function() {
52
16
  return isMatch;
53
17
  },
54
- isSameDay: function() {
55
- return isSameDay;
56
- },
57
- isSameMonth: function() {
58
- return isSameMonth;
59
- },
60
- isWithinInterval: function() {
61
- return isWithinInterval;
62
- },
63
18
  parse: function() {
64
19
  return parse;
65
- },
66
- setHours: function() {
67
- return setHours;
68
- },
69
- setMinutes: function() {
70
- return setMinutes;
71
- },
72
- setMonth: function() {
73
- return setMonth;
74
- },
75
- setYear: function() {
76
- return setYear;
77
- },
78
- startOfDay: function() {
79
- return startOfDay;
80
- },
81
- startOfMonth: function() {
82
- return startOfMonth;
83
- },
84
- startOfWeek: function() {
85
- return startOfWeek;
86
- },
87
- subDays: function() {
88
- return subDays;
89
- },
90
- subMonths: function() {
91
- return subMonths;
92
- },
93
- subWeeks: function() {
94
- return subWeeks;
95
20
  }
96
21
  });
97
- const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
98
- const _dayjs = /*#__PURE__*/ _interop_require_default._(require("dayjs"));
99
- function startOfDay(date) {
100
- return (0, _dayjs.default)(date).startOf('day').toDate();
101
- }
102
- function endOfDay(date) {
103
- return (0, _dayjs.default)(date).endOf('day').toDate();
104
- }
105
- function startOfWeek(date, weekStart = 0) {
106
- weekStart = weekStart % 7;
107
- const day = (0, _dayjs.default)(date);
108
- const weekDay = day.day();
109
- const diff = (weekDay < weekStart ? 7 : 0) + weekDay - weekStart;
110
- return day.date(day.date() - diff).toDate();
111
- }
112
- function endOfWeek(date, weekStart = 0) {
113
- const day = (0, _dayjs.default)(startOfWeek(date, weekStart));
114
- return day.date(day.date() + 6).toDate();
115
- }
116
- function startOfMonth(date) {
117
- return (0, _dayjs.default)(date).startOf('month').toDate();
118
- }
119
- function endOfMonth(date) {
120
- return (0, _dayjs.default)(date).endOf('month').toDate();
121
- }
122
- function isFirstDayOfMonth(date) {
123
- return (0, _dayjs.default)(date).date() === 1;
124
- }
125
- function isLastDayOfMonth(date) {
126
- // isSameDay -- shorter, but not exact with date-fns behavior
127
- // return isSameDay(date, dayjs(date).endOf("month"));
128
- return (0, _dayjs.default)(date).endOf('day').isSame((0, _dayjs.default)(date).endOf('month'));
129
- }
130
- function format(date, format) {
131
- return (0, _dayjs.default)(date).format(format);
132
- }
133
- function isBefore(date1, date2) {
134
- // Exactly as date-fns does
135
- // dayjs().isBefore() for slightly different approach
136
- return (0, _dayjs.default)(date1) < (0, _dayjs.default)(date2);
137
- }
138
- function isAfter(date1, date2) {
139
- return (0, _dayjs.default)(date1) > (0, _dayjs.default)(date2);
140
- }
141
- function isSameDay(date1, date2) {
142
- return (0, _dayjs.default)(date1).isSame(date2, 'day');
143
- }
144
- function isSameMonth(date1, date2) {
145
- return (0, _dayjs.default)(date1).isSame(date2, 'month');
146
- }
147
- function isWithinInterval(date, start, end) {
148
- const day = (0, _dayjs.default)(date);
149
- return day >= (0, _dayjs.default)(start) && day <= (0, _dayjs.default)(end);
150
- }
151
- function setMinutes(date, minute) {
152
- return (0, _dayjs.default)(date).set('minute', minute).toDate();
153
- }
154
- function setHours(date, hour) {
155
- return (0, _dayjs.default)(date).set('hour', hour).toDate();
156
- }
157
- function setMonth(date, month) {
158
- return (0, _dayjs.default)(date).set('month', month).toDate();
159
- }
160
- function setYear(date, year) {
161
- return (0, _dayjs.default)(date).set('year', year).toDate();
162
- }
163
- function addDays(date, day) {
164
- return (0, _dayjs.default)(date).add(day, 'day').toDate();
165
- }
166
- function subDays(date, day) {
167
- return (0, _dayjs.default)(date).subtract(day, 'day').toDate();
168
- }
169
- function addWeeks(date, week) {
170
- return (0, _dayjs.default)(date).add(week, 'week').toDate();
171
- }
172
- function subWeeks(date, week) {
173
- return (0, _dayjs.default)(date).subtract(week, 'week').toDate();
174
- }
175
- function addMonths(date, month) {
176
- return (0, _dayjs.default)(date).add(month, 'month').toDate();
177
- }
178
- function subMonths(date, month) {
179
- return (0, _dayjs.default)(date).subtract(month, 'month').toDate();
180
- }
181
- function eachDayOfInterval(start, end) {
182
- const dates = [];
183
- const startDate = (0, _dayjs.default)(start).toDate();
184
- const endDate = (0, _dayjs.default)(end).toDate();
185
- const endTime = endDate.getTime();
186
- const currentDate = startDate;
187
- currentDate.setHours(0, 0, 0, 0);
188
- while(currentDate.getTime() <= endTime){
189
- dates.push(new Date(currentDate.getTime()));
190
- currentDate.setDate(currentDate.getDate() + 1);
191
- currentDate.setHours(0, 0, 0, 0);
192
- }
193
- return dates;
194
- }
22
+ const _datefns = require("date-fns");
195
23
  function parse(input, format, referenceDate = new Date()) {
196
24
  const match2 = /^\d\d/; // 00 - 99
197
25
  const match4 = /^\d{4}/; // 0000 - 9999
198
26
  const entries = [
199
27
  [
200
- 'YYYY',
28
+ 'yyyy',
201
29
  match4,
202
30
  (val)=>[
203
31
  'Y',
@@ -219,7 +47,7 @@ function parse(input, format, referenceDate = new Date()) {
219
47
  }
220
48
  ],
221
49
  [
222
- 'DD',
50
+ 'dd',
223
51
  match2,
224
52
  (val)=>[
225
53
  'D',
@@ -256,9 +84,9 @@ function parse(input, format, referenceDate = new Date()) {
256
84
  ];
257
85
  const superRegExp = new RegExp(entries.map((item)=>item[0]).join('|'), 'g');
258
86
  const store = {
259
- Y: referenceDate.getFullYear(),
87
+ y: referenceDate.getFullYear(),
260
88
  M: referenceDate.getMonth(),
261
- D: referenceDate.getDate(),
89
+ d: referenceDate.getDate(),
262
90
  h: referenceDate.getHours(),
263
91
  m: referenceDate.getMinutes(),
264
92
  s: referenceDate.getSeconds(),
@@ -304,11 +132,11 @@ function parse(input, format, referenceDate = new Date()) {
304
132
  }
305
133
  return date;
306
134
  }
135
+ function format(date, format) {
136
+ return (0, _datefns.lightFormat)(date, format);
137
+ }
307
138
  function isMatch(input, format) {
308
139
  return !isNaN(+parse(input, format));
309
140
  }
310
- function getMillisecondsToTomorrow(date) {
311
- return (0, _dayjs.default)(endOfDay(date)).diff((0, _dayjs.default)(date), 'ms');
312
- }
313
141
 
314
142
  //# sourceMappingURL=date.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/date.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\n// Using date-fns-like type for migration\ntype DirtyDate = Date | number;\n\nexport function startOfDay(date: DirtyDate): Date {\n return dayjs(date).startOf('day').toDate();\n}\n\nexport function endOfDay(date: DirtyDate): Date {\n return dayjs(date).endOf('day').toDate();\n}\n\nexport function startOfWeek(date: DirtyDate, weekStart = 0): Date {\n weekStart = weekStart % 7;\n\n const day = dayjs(date);\n const weekDay = day.day();\n const diff = (weekDay < weekStart ? 7 : 0) + weekDay - weekStart;\n\n return day.date(day.date() - diff).toDate();\n}\n\nexport function endOfWeek(date: DirtyDate, weekStart = 0): Date {\n const day = dayjs(startOfWeek(date, weekStart));\n\n return day.date(day.date() + 6).toDate();\n}\n\nexport function startOfMonth(date: DirtyDate): Date {\n return dayjs(date).startOf('month').toDate();\n}\n\nexport function endOfMonth(date: DirtyDate): Date {\n return dayjs(date).endOf('month').toDate();\n}\n\nexport function isFirstDayOfMonth(date: DirtyDate): boolean {\n return dayjs(date).date() === 1;\n}\n\nexport function isLastDayOfMonth(date: DirtyDate): boolean {\n // isSameDay -- shorter, but not exact with date-fns behavior\n // return isSameDay(date, dayjs(date).endOf(\"month\"));\n return dayjs(date).endOf('day').isSame(dayjs(date).endOf('month'));\n}\n\nexport function format(date: DirtyDate, format: string): string {\n return dayjs(date).format(format);\n}\n\nexport function isBefore(date1: DirtyDate, date2: DirtyDate): boolean {\n // Exactly as date-fns does\n // dayjs().isBefore() for slightly different approach\n return dayjs(date1) < dayjs(date2);\n}\n\nexport function isAfter(date1: DirtyDate, date2: DirtyDate): boolean {\n return dayjs(date1) > dayjs(date2);\n}\n\nexport function isSameDay(date1: DirtyDate, date2: DirtyDate): boolean {\n return dayjs(date1).isSame(date2, 'day');\n}\n\nexport function isSameMonth(date1: DirtyDate, date2: DirtyDate): boolean {\n return dayjs(date1).isSame(date2, 'month');\n}\n\nexport function isWithinInterval(date: DirtyDate, start: DirtyDate, end: DirtyDate): boolean {\n const day = dayjs(date);\n return day >= dayjs(start) && day <= dayjs(end);\n}\n\nexport function setMinutes(date: DirtyDate, minute: number): Date {\n return dayjs(date).set('minute', minute).toDate();\n}\n\nexport function setHours(date: DirtyDate, hour: number): Date {\n return dayjs(date).set('hour', hour).toDate();\n}\n\nexport function setMonth(date: DirtyDate, month: number): Date {\n return dayjs(date).set('month', month).toDate();\n}\n\nexport function setYear(date: DirtyDate, year: number): Date {\n return dayjs(date).set('year', year).toDate();\n}\n\nexport function addDays(date: DirtyDate, day: number): Date {\n return dayjs(date).add(day, 'day').toDate();\n}\n\nexport function subDays(date: DirtyDate, day: number): Date {\n return dayjs(date).subtract(day, 'day').toDate();\n}\n\nexport function addWeeks(date: DirtyDate, week: number): Date {\n return dayjs(date).add(week, 'week').toDate();\n}\n\nexport function subWeeks(date: DirtyDate, week: number): Date {\n return dayjs(date).subtract(week, 'week').toDate();\n}\n\nexport function addMonths(date: DirtyDate, month: number): Date {\n return dayjs(date).add(month, 'month').toDate();\n}\n\nexport function subMonths(date: DirtyDate, month: number): Date {\n return dayjs(date).subtract(month, 'month').toDate();\n}\n\n// Rip off date-fns\nexport function eachDayOfInterval(start: DirtyDate, end: DirtyDate): Date[] {\n const dates: Date[] = [];\n const startDate = dayjs(start).toDate();\n const endDate = dayjs(end).toDate();\n\n const endTime = endDate.getTime();\n const currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n\n while (currentDate.getTime() <= endTime) {\n dates.push(new Date(currentDate.getTime()));\n currentDate.setDate(currentDate.getDate() + 1);\n currentDate.setHours(0, 0, 0, 0);\n }\n\n return dates;\n}\n\nexport function parse(input: string, format: string, referenceDate: Date = new Date()): Date {\n const match2 = /^\\d\\d/; // 00 - 99\n const match4 = /^\\d{4}/; // 0000 - 9999\n\n const entries: Array<[string, RegExp, (val: string) => [string, number, boolean]]> = [\n ['YYYY', match4, (val) => ['Y', +val, true]],\n [\n 'MM',\n match2,\n (val) => {\n const numVal = +val;\n const okay = numVal > 0 && numVal <= 12;\n\n return ['M', numVal - 1, okay];\n },\n ],\n ['DD', match2, (val) => ['D', +val, true]],\n [\n 'HH',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 24;\n\n return ['h', numVal, okay];\n },\n ],\n [\n 'mm',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 60;\n\n return ['m', numVal, okay];\n },\n ],\n ];\n\n const superRegExp = new RegExp(entries.map((item) => item[0]).join('|'), 'g');\n\n const store: {\n [key: string]: number;\n } = {\n Y: referenceDate.getFullYear(),\n M: referenceDate.getMonth(),\n D: referenceDate.getDate(),\n h: referenceDate.getHours(),\n m: referenceDate.getMinutes(),\n s: referenceDate.getSeconds(),\n ms: referenceDate.getMilliseconds(),\n };\n\n let prevInputIndex = 0;\n let lastNonFormatting = '';\n let lastFormatIndex = 0;\n let found = false;\n\n while (true) {\n const match = superRegExp.exec(format);\n\n if (!match) {\n break;\n }\n\n const length = match[0].length;\n const atIndex = superRegExp.lastIndex - length;\n\n const item = entries.find((item) => item[0] === match[0])!;\n\n lastNonFormatting = format.slice(lastFormatIndex, atIndex);\n lastFormatIndex = superRegExp.lastIndex;\n\n if (\n input.slice(prevInputIndex, prevInputIndex + lastNonFormatting.length) !== lastNonFormatting\n ) {\n return new Date('');\n }\n\n const value = input.slice(prevInputIndex + lastNonFormatting.length).match(item[1]);\n\n if (!value) {\n return new Date('');\n }\n\n prevInputIndex = prevInputIndex + lastNonFormatting.length + value[0].length;\n\n const [key, newValue, okay] = item[2](value[0]);\n\n if (!okay) {\n return new Date('');\n }\n\n store[key] = newValue;\n found = true;\n }\n\n if (!found) {\n return new Date('');\n }\n\n const date = new Date(store.Y, store.M, store.D, store.h, store.m, store.s, store.ms);\n\n // Since days of months are dynamic, they can't be validated in entries,\n // so we check it here, in the finalized date\n if (date.getMonth() !== store.M || date.getDate() !== store.D) {\n return new Date('');\n }\n\n return date;\n}\n\nexport function isMatch(input: string, format: string): boolean {\n return !isNaN(+parse(input, format));\n}\n\nexport function getMillisecondsToTomorrow(date: DirtyDate): number {\n return dayjs(endOfDay(date)).diff(dayjs(date), 'ms');\n}\n"],"names":["addDays","addMonths","addWeeks","eachDayOfInterval","endOfDay","endOfMonth","endOfWeek","format","getMillisecondsToTomorrow","isAfter","isBefore","isFirstDayOfMonth","isLastDayOfMonth","isMatch","isSameDay","isSameMonth","isWithinInterval","parse","setHours","setMinutes","setMonth","setYear","startOfDay","startOfMonth","startOfWeek","subDays","subMonths","subWeeks","date","dayjs","startOf","toDate","endOf","weekStart","day","weekDay","diff","isSame","date1","date2","start","end","minute","set","hour","month","year","add","subtract","week","dates","startDate","endDate","endTime","getTime","currentDate","push","Date","setDate","getDate","input","referenceDate","match2","match4","entries","val","numVal","okay","parseInt","superRegExp","RegExp","map","item","join","store","Y","getFullYear","M","getMonth","D","h","getHours","m","getMinutes","s","getSeconds","ms","getMilliseconds","prevInputIndex","lastNonFormatting","lastFormatIndex","found","match","exec","length","atIndex","lastIndex","find","slice","value","key","newValue","isNaN"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/lib/date.ts"],"sourcesContent":["import { lightFormat } from 'date-fns';\n\nexport function parse(input: string, format: string, referenceDate: Date = new Date()): Date {\n const match2 = /^\\d\\d/; // 00 - 99\n const match4 = /^\\d{4}/; // 0000 - 9999\n\n const entries: Array<[string, RegExp, (val: string) => [string, number, boolean]]> = [\n ['yyyy', match4, (val) => ['Y', +val, true]],\n [\n 'MM',\n match2,\n (val) => {\n const numVal = +val;\n const okay = numVal > 0 && numVal <= 12;\n\n return ['M', numVal - 1, okay];\n },\n ],\n ['dd', match2, (val) => ['D', +val, true]],\n [\n 'HH',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 24;\n\n return ['h', numVal, okay];\n },\n ],\n [\n 'mm',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 60;\n\n return ['m', numVal, okay];\n },\n ],\n ];\n\n const superRegExp = new RegExp(entries.map((item) => item[0]).join('|'), 'g');\n\n const store: {\n [key: string]: number;\n } = {\n y: referenceDate.getFullYear(),\n M: referenceDate.getMonth(),\n d: referenceDate.getDate(),\n h: referenceDate.getHours(),\n m: referenceDate.getMinutes(),\n s: referenceDate.getSeconds(),\n ms: referenceDate.getMilliseconds(),\n };\n\n let prevInputIndex = 0;\n let lastNonFormatting = '';\n let lastFormatIndex = 0;\n let found = false;\n\n while (true) {\n const match = superRegExp.exec(format);\n\n if (!match) {\n break;\n }\n\n const length = match[0].length;\n const atIndex = superRegExp.lastIndex - length;\n\n const item = entries.find((item) => item[0] === match[0])!;\n\n lastNonFormatting = format.slice(lastFormatIndex, atIndex);\n lastFormatIndex = superRegExp.lastIndex;\n\n if (\n input.slice(prevInputIndex, prevInputIndex + lastNonFormatting.length) !== lastNonFormatting\n ) {\n return new Date('');\n }\n\n const value = input.slice(prevInputIndex + lastNonFormatting.length).match(item[1]);\n\n if (!value) {\n return new Date('');\n }\n\n prevInputIndex = prevInputIndex + lastNonFormatting.length + value[0].length;\n\n const [key, newValue, okay] = item[2](value[0]);\n\n if (!okay) {\n return new Date('');\n }\n\n store[key] = newValue;\n found = true;\n }\n\n if (!found) {\n return new Date('');\n }\n\n const date = new Date(store.Y, store.M, store.D, store.h, store.m, store.s, store.ms);\n\n // Since days of months are dynamic, they can't be validated in entries,\n // so we check it here, in the finalized date\n if (date.getMonth() !== store.M || date.getDate() !== store.D) {\n return new Date('');\n }\n\n return date;\n}\n\nexport function format(date: Date | number, format: string): string {\n return lightFormat(date, format);\n}\n\nexport function isMatch(input: string, format: string): boolean {\n return !isNaN(+parse(input, format));\n}\n"],"names":["format","isMatch","parse","input","referenceDate","Date","match2","match4","entries","val","numVal","okay","parseInt","superRegExp","RegExp","map","item","join","store","y","getFullYear","M","getMonth","d","getDate","h","getHours","m","getMinutes","s","getSeconds","ms","getMilliseconds","prevInputIndex","lastNonFormatting","lastFormatIndex","found","match","exec","length","atIndex","lastIndex","find","slice","value","key","newValue","date","Y","D","lightFormat","isNaN"],"mappings":"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"}
@@ -60,7 +60,8 @@ import { ActionSheetDropdownSheet } from './ActionSheetDropdownSheet';
60
60
  }, []);
61
61
  const contextValue = useObjectMemo({
62
62
  onItemClick,
63
- mode
63
+ mode,
64
+ onClose: onCloseWithOther
64
65
  });
65
66
  const DropdownComponent = mode === 'menu' ? ActionSheetDropdownMenu : ActionSheetDropdownSheet;
66
67
  const dropdownProps = mode === 'menu' ? Object.assign(restProps, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheet.tsx"],"sourcesContent":["import * as React from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useCSSKeyframesAnimationController } from '../../lib/animation';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport { ActionSheetDefaultIosCloseItem } from './ActionSheetDefaultIosCloseItem';\nimport { ActionSheetDropdownMenu } from './ActionSheetDropdownMenu';\nimport { ActionSheetDropdownSheet } from './ActionSheetDropdownSheet';\nimport { SharedDropdownProps } from './types';\nimport styles from './ActionSheet.module.css';\n\ntype CloseInitiators = 'action-item' | 'cancel-item' | 'other';\nexport interface ActionSheetOnCloseOptions {\n closedBy: CloseInitiators;\n}\n\nexport interface ActionSheetProps\n extends Pick<SharedDropdownProps, 'toggleRef' | 'popupOffsetDistance' | 'placement'>,\n React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи.\n */\n onClose: (options: ActionSheetOnCloseOptions) => void;\n /**\n * Только мобильный iOS.\n */\n iosCloseItem?: React.ReactNode;\n mode?: 'sheet' | 'menu';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheet\n */\nexport const ActionSheet = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n popupOffsetDistance,\n placement,\n mode: modeProp,\n onClose,\n ...restProps\n}: ActionSheetProps): React.ReactNode => {\n const platform = usePlatform();\n const [closingBy, setClosingBy] = React.useState<undefined | CloseInitiators>(undefined);\n const onCloseWithOther = () => setClosingBy('other');\n const actionCallbackRef = React.useRef(noop);\n\n const [animationState, animationHandlers] = useCSSKeyframesAnimationController(\n closingBy !== undefined ? 'exit' : 'enter',\n {\n onExited() {\n onClose({ closedBy: closingBy || 'other' });\n actionCallbackRef.current();\n actionCallbackRef.current = noop;\n },\n },\n );\n\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n const mode = modeProp ?? (isDesktop ? 'menu' : 'sheet');\n\n useScrollLock(mode === 'sheet');\n\n const onItemClick = React.useCallback<ItemClickHandler>(\n ({ action, immediateAction, autoClose, isCancelItem }) =>\n (event) => {\n event.persist();\n immediateAction && immediateAction(event);\n if (autoClose) {\n if (action) {\n actionCallbackRef.current = () => action(event);\n }\n setClosingBy(isCancelItem ? 'cancel-item' : 'action-item');\n } else {\n action && action(event);\n }\n },\n [],\n );\n const contextValue = useObjectMemo({ onItemClick, mode });\n\n const DropdownComponent = mode === 'menu' ? ActionSheetDropdownMenu : ActionSheetDropdownSheet;\n\n const dropdownProps =\n mode === 'menu' ? Object.assign(restProps, { popupOffsetDistance, placement }) : restProps;\n\n const actionSheet = (\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={Boolean(closingBy)}\n role=\"dialog\"\n aria-modal=\"true\"\n autoFocus={animationState === 'entered'}\n {...dropdownProps}\n {...animationHandlers}\n onClose={onCloseWithOther}\n className={mode === 'menu' ? className : undefined}\n style={mode === 'menu' ? style : undefined}\n >\n <div className={styles['ActionSheet__content-wrapper']}>\n {(header || text) && (\n <div className={styles['ActionSheet__header']}>\n {header && (\n <Footnote weight=\"2\" className={styles['ActionSheet__title']}>\n {header}\n </Footnote>\n )}\n {text && <Footnote className={styles['ActionSheet__text']}>{text}</Footnote>}\n </div>\n )}\n {children}\n </div>\n {platform === 'ios' && mode === 'sheet' && (\n <div className={styles['ActionSheet__close-item-wrapper--ios']}>\n {iosCloseItem ?? <ActionSheetDefaultIosCloseItem />}\n </div>\n )}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n );\n\n if (mode === 'menu') {\n return actionSheet;\n }\n\n return (\n <PopoutWrapper\n closing={Boolean(closingBy)}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={onCloseWithOther}\n fixed\n >\n {actionSheet}\n </PopoutWrapper>\n );\n};\n"],"names":["React","noop","useAdaptivityWithJSMediaQueries","useObjectMemo","usePlatform","useCSSKeyframesAnimationController","useScrollLock","PopoutWrapper","Footnote","ActionSheetContext","ActionSheetDefaultIosCloseItem","ActionSheetDropdownMenu","ActionSheetDropdownSheet","ActionSheet","children","className","header","text","style","iosCloseItem","popupOffsetDistance","placement","mode","modeProp","onClose","restProps","platform","closingBy","setClosingBy","useState","undefined","onCloseWithOther","actionCallbackRef","useRef","animationState","animationHandlers","onExited","closedBy","current","isDesktop","onItemClick","useCallback","action","immediateAction","autoClose","isCancelItem","event","persist","contextValue","DropdownComponent","dropdownProps","Object","assign","actionSheet","Provider","value","closing","Boolean","role","aria-modal","autoFocus","div","weight","alignY","onClick","fixed"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheet.tsx"],"sourcesContent":["import * as React from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useCSSKeyframesAnimationController } from '../../lib/animation';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport { ActionSheetDefaultIosCloseItem } from './ActionSheetDefaultIosCloseItem';\nimport { ActionSheetDropdownMenu } from './ActionSheetDropdownMenu';\nimport { ActionSheetDropdownSheet } from './ActionSheetDropdownSheet';\nimport { SharedDropdownProps } from './types';\nimport styles from './ActionSheet.module.css';\n\ntype CloseInitiators = 'action-item' | 'cancel-item' | 'other';\nexport interface ActionSheetOnCloseOptions {\n closedBy: CloseInitiators;\n}\n\nexport interface ActionSheetProps\n extends Pick<SharedDropdownProps, 'toggleRef' | 'popupOffsetDistance' | 'placement'>,\n React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи.\n */\n onClose: (options: ActionSheetOnCloseOptions) => void;\n /**\n * Только мобильный iOS.\n */\n iosCloseItem?: React.ReactNode;\n mode?: 'sheet' | 'menu';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheet\n */\nexport const ActionSheet = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n popupOffsetDistance,\n placement,\n mode: modeProp,\n onClose,\n ...restProps\n}: ActionSheetProps): React.ReactNode => {\n const platform = usePlatform();\n const [closingBy, setClosingBy] = React.useState<undefined | CloseInitiators>(undefined);\n const onCloseWithOther = () => setClosingBy('other');\n const actionCallbackRef = React.useRef(noop);\n\n const [animationState, animationHandlers] = useCSSKeyframesAnimationController(\n closingBy !== undefined ? 'exit' : 'enter',\n {\n onExited() {\n onClose({ closedBy: closingBy || 'other' });\n actionCallbackRef.current();\n actionCallbackRef.current = noop;\n },\n },\n );\n\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n const mode = modeProp ?? (isDesktop ? 'menu' : 'sheet');\n\n useScrollLock(mode === 'sheet');\n\n const onItemClick = React.useCallback<ItemClickHandler>(\n ({ action, immediateAction, autoClose, isCancelItem }) =>\n (event) => {\n event.persist();\n immediateAction && immediateAction(event);\n if (autoClose) {\n if (action) {\n actionCallbackRef.current = () => action(event);\n }\n setClosingBy(isCancelItem ? 'cancel-item' : 'action-item');\n } else {\n action && action(event);\n }\n },\n [],\n );\n const contextValue = useObjectMemo({ onItemClick, mode, onClose: onCloseWithOther });\n\n const DropdownComponent = mode === 'menu' ? ActionSheetDropdownMenu : ActionSheetDropdownSheet;\n\n const dropdownProps =\n mode === 'menu' ? Object.assign(restProps, { popupOffsetDistance, placement }) : restProps;\n\n const actionSheet = (\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={Boolean(closingBy)}\n role=\"dialog\"\n aria-modal=\"true\"\n autoFocus={animationState === 'entered'}\n {...dropdownProps}\n {...animationHandlers}\n onClose={onCloseWithOther}\n className={mode === 'menu' ? className : undefined}\n style={mode === 'menu' ? style : undefined}\n >\n <div className={styles['ActionSheet__content-wrapper']}>\n {(header || text) && (\n <div className={styles['ActionSheet__header']}>\n {header && (\n <Footnote weight=\"2\" className={styles['ActionSheet__title']}>\n {header}\n </Footnote>\n )}\n {text && <Footnote className={styles['ActionSheet__text']}>{text}</Footnote>}\n </div>\n )}\n {children}\n </div>\n {platform === 'ios' && mode === 'sheet' && (\n <div className={styles['ActionSheet__close-item-wrapper--ios']}>\n {iosCloseItem ?? <ActionSheetDefaultIosCloseItem />}\n </div>\n )}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n );\n\n if (mode === 'menu') {\n return actionSheet;\n }\n\n return (\n <PopoutWrapper\n closing={Boolean(closingBy)}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={onCloseWithOther}\n fixed\n >\n {actionSheet}\n </PopoutWrapper>\n );\n};\n"],"names":["React","noop","useAdaptivityWithJSMediaQueries","useObjectMemo","usePlatform","useCSSKeyframesAnimationController","useScrollLock","PopoutWrapper","Footnote","ActionSheetContext","ActionSheetDefaultIosCloseItem","ActionSheetDropdownMenu","ActionSheetDropdownSheet","ActionSheet","children","className","header","text","style","iosCloseItem","popupOffsetDistance","placement","mode","modeProp","onClose","restProps","platform","closingBy","setClosingBy","useState","undefined","onCloseWithOther","actionCallbackRef","useRef","animationState","animationHandlers","onExited","closedBy","current","isDesktop","onItemClick","useCallback","action","immediateAction","autoClose","isCancelItem","event","persist","contextValue","DropdownComponent","dropdownProps","Object","assign","actionSheet","Provider","value","closing","Boolean","role","aria-modal","autoFocus","div","weight","alignY","onClick","fixed"],"mappings":"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"}
@@ -8,6 +8,7 @@ export type ItemClickHandler<T extends Element = Element> = (options: {
8
8
  }) => (event: React.MouseEvent) => void;
9
9
  export type ActionSheetContextType<T extends Element = Element> = {
10
10
  onItemClick?: ItemClickHandler<T>;
11
+ onClose?: () => void;
11
12
  mode?: 'sheet' | 'menu';
12
13
  };
13
14
  export declare const ActionSheetContext: React.Context<ActionSheetContextType<any>>;
@@ -1 +1 @@
1
- {"version":3,"file":"ActionSheetContext.d.ts","sourceRoot":"","sources":["../../../src/components/ActionSheet/ActionSheetContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAEjE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE;IACpE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAClC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;AAExC,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI;IAChE,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAEzE,CAAC"}
1
+ {"version":3,"file":"ActionSheetContext.d.ts","sourceRoot":"","sources":["../../../src/components/ActionSheet/ActionSheetContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAEjE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE;IACpE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAClC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;AAExC,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI;IAChE,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAEzE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheetContext.ts"],"sourcesContent":["import * as React from 'react';\n\nexport type ActionType<T> = (event: React.MouseEvent<T>) => void;\n\nexport type ItemClickHandler<T extends Element = Element> = (options: {\n action: ActionType<T> | undefined;\n immediateAction: ActionType<T> | undefined;\n autoClose: boolean;\n isCancelItem: boolean;\n}) => (event: React.MouseEvent) => void;\n\nexport type ActionSheetContextType<T extends Element = Element> = {\n onItemClick?: ItemClickHandler<T>;\n mode?: 'sheet' | 'menu';\n};\n\nexport const ActionSheetContext: React.Context<ActionSheetContextType<any>> = React.createContext(\n {},\n);\n"],"names":["React","ActionSheetContext","createContext"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAgB/B,OAAO,MAAMC,qBAAiED,MAAME,aAAa,CAC/F,CAAC,GACD"}
1
+ {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheetContext.ts"],"sourcesContent":["import * as React from 'react';\n\nexport type ActionType<T> = (event: React.MouseEvent<T>) => void;\n\nexport type ItemClickHandler<T extends Element = Element> = (options: {\n action: ActionType<T> | undefined;\n immediateAction: ActionType<T> | undefined;\n autoClose: boolean;\n isCancelItem: boolean;\n}) => (event: React.MouseEvent) => void;\n\nexport type ActionSheetContextType<T extends Element = Element> = {\n onItemClick?: ItemClickHandler<T>;\n onClose?: () => void;\n mode?: 'sheet' | 'menu';\n};\n\nexport const ActionSheetContext: React.Context<ActionSheetContextType<any>> = React.createContext(\n {},\n);\n"],"names":["React","ActionSheetContext","createContext"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAiB/B,OAAO,MAAMC,qBAAiED,MAAME,aAAa,CAC/F,CAAC,GACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionSheetItem.d.ts","sourceRoot":"","sources":["../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,MAAM,WAAW,oBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EACvC,KAAK,CAAC,oBAAoB,CAAC,WAAW,CAAC,EACvC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACjF,IAAI,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC5C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/C,gBAAgB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACxD;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,+NAqBzB,oBAAoB,KAAG,KAAK,CAAC,SA2F/B,CAAC"}
1
+ {"version":3,"file":"ActionSheetItem.d.ts","sourceRoot":"","sources":["../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,MAAM,WAAW,oBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EACvC,KAAK,CAAC,oBAAoB,CAAC,WAAW,CAAC,EACvC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACjF,IAAI,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC5C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/C,gBAAgB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACxD;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,+NAqBzB,oBAAoB,KAAG,KAAK,CAAC,SAkH/B,CAAC"}
@@ -6,11 +6,13 @@ import * as React from 'react';
6
6
  import { classNames, noop } from '@vkontakte/vkjs';
7
7
  import { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';
8
8
  import { usePlatform } from '../../hooks/usePlatform';
9
+ import { Keys, pressedKey } from '../../lib/accessibility';
9
10
  import { ActionSheetContext } from '../ActionSheet/ActionSheetContext';
10
11
  import { Tappable } from '../Tappable/Tappable';
11
12
  import { Subhead } from '../Typography/Subhead/Subhead';
12
13
  import { Text } from '../Typography/Text/Text';
13
14
  import { Title } from '../Typography/Title/Title';
15
+ import { isRealClickEvent } from './helpers';
14
16
  import { Radio } from './subcomponents/Radio/Radio';
15
17
  /**
16
18
  * @see https://vkcom.github.io/VKUI/#/ActionSheetItem
@@ -37,22 +39,52 @@ import { Radio } from './subcomponents/Radio/Radio';
37
39
  "isCancelItem"
38
40
  ]);
39
41
  const platform = usePlatform();
40
- const { onItemClick = ()=>noop, mode: actionSheetMode } = React.useContext(ActionSheetContext);
42
+ const { onItemClick = ()=>noop, mode: actionSheetMode, onClose: onActionSheetClose } = React.useContext(ActionSheetContext);
41
43
  const { sizeY } = useAdaptivityWithJSMediaQueries();
42
44
  const Component = selectable ? 'label' : undefined;
43
45
  const isRich = subtitle || meta || selectable;
44
46
  const isCentered = !isRich && !before && platform === 'ios';
45
- return /*#__PURE__*/ _jsxs(Tappable, _object_spread_props(_object_spread({}, Component && {
46
- Component
47
- }, restProps), {
48
- onClick: selectable ? onClick : onItemClick({
47
+ const onItemClickHandler = React.useCallback((e)=>{
48
+ var _onItemClick;
49
+ (_onItemClick = onItemClick({
49
50
  action: onClick,
50
51
  immediateAction: onImmediateClick,
51
52
  autoClose: !autoCloseDisabled,
52
53
  isCancelItem: Boolean(isCancelItem)
53
- }),
54
+ })) === null || _onItemClick === void 0 ? void 0 : _onItemClick(e);
55
+ }, [
56
+ autoCloseDisabled,
57
+ isCancelItem,
58
+ onClick,
59
+ onImmediateClick,
60
+ onItemClick
61
+ ]);
62
+ const onKeyDown = React.useCallback((event)=>{
63
+ if (pressedKey(event) === Keys.ENTER) {
64
+ onActionSheetClose === null || onActionSheetClose === void 0 ? void 0 : onActionSheetClose();
65
+ }
66
+ }, [
67
+ onActionSheetClose
68
+ ]);
69
+ const onItemClickImpl = React.useCallback((event)=>{
70
+ if (selectable) {
71
+ if (isRealClickEvent(event)) {
72
+ onItemClickHandler(event);
73
+ }
74
+ } else {
75
+ onItemClickHandler(event);
76
+ }
77
+ }, [
78
+ onItemClickHandler,
79
+ selectable
80
+ ]);
81
+ return /*#__PURE__*/ _jsxs(Tappable, _object_spread_props(_object_spread({}, Component && {
82
+ Component
83
+ }, restProps), {
84
+ onClick: onItemClickImpl,
54
85
  activeMode: platform === 'ios' ? "vkuiActionSheetItem--active" : undefined,
55
86
  className: classNames("vkuiActionSheetItem", platform === 'ios' && "vkuiActionSheetItem--ios", mode === 'cancel' && "vkuiActionSheetItem--mode-cancel", mode === 'destructive' && "vkuiActionSheetItem--mode-destructive", sizeY === 'compact' && "vkuiActionSheetItem--sizeY-compact", isRich && "vkuiActionSheetItem--rich", actionSheetMode === 'menu' && "vkuiActionSheetItem--menu", selectable && "vkuiActionSheetItem--selectable", className),
87
+ onKeyDown: onKeyDown,
56
88
  children: [
57
89
  before && /*#__PURE__*/ _jsx("div", {
58
90
  className: "vkuiActionSheetItem__before",
@@ -93,12 +125,6 @@ import { Radio } from './subcomponents/Radio/Radio';
93
125
  name: name,
94
126
  value: value,
95
127
  onChange: onChange,
96
- onClick: onItemClick({
97
- action: noop,
98
- immediateAction: noop,
99
- autoClose: !autoCloseDisabled,
100
- isCancelItem: Boolean(isCancelItem)
101
- }),
102
128
  defaultChecked: defaultChecked,
103
129
  checked: checked,
104
130
  disabled: restProps.disabled,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { ActionSheetContext, type ActionSheetContextType } from '../ActionSheet/ActionSheetContext';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport { Radio } from './subcomponents/Radio/Radio';\nimport styles from './ActionSheetItem.module.css';\n\nexport interface ActionSheetItemProps\n extends React.HTMLAttributes<HTMLElement>,\n React.AnchorHTMLAttributes<HTMLElement>,\n Pick<React.InputHTMLAttributes<HTMLInputElement>, 'name' | 'checked' | 'value'> {\n mode?: 'default' | 'destructive' | 'cancel';\n before?: React.ReactNode;\n after?: React.ReactNode;\n meta?: React.ReactNode;\n subtitle?: React.ReactNode;\n /**\n * По умолчанию клик на опцию вызывает переданную в `ActionSheet` функцию `onClose`, данное свойство\n * позволяет отключить такое поведение\n */\n autoCloseDisabled?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n /**\n * Все текстовые элементы при необходимости занимают несколько строк\n */\n multiline?: boolean;\n /**\n * По умолчанию onClick будет вызван после завершения анимации скрытия и после вызова onClose.\n * Из этого следует, что в объекте события значения полей типа `currentTarget` будут не определены.\n * Если вам нужен объект события именно на момент клика, используйте `onImmediateClick`.\n */\n onClick?: React.MouseEventHandler<HTMLElement>;\n onImmediateClick?: React.MouseEventHandler<HTMLElement>;\n /**\n * Иконка для `checked` режима.\n */\n iconChecked?: React.ReactNode;\n /**\n * Позволяет отделить ActionItem от CancelItem для определении того,\n * кто вызвал закрытие ActionSheet. Используется в ActionSheet.onClose()\n */\n isCancelItem?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheetItem\n */\nexport const ActionSheetItem = ({\n children,\n autoCloseDisabled = false,\n mode = 'default',\n meta,\n subtitle,\n before,\n after,\n selectable,\n value,\n name,\n checked,\n defaultChecked,\n onChange,\n onClick,\n onImmediateClick,\n multiline = false,\n iconChecked,\n className,\n isCancelItem,\n ...restProps\n}: ActionSheetItemProps): React.ReactNode => {\n const platform = usePlatform();\n const { onItemClick = () => noop, mode: actionSheetMode } =\n React.useContext<ActionSheetContextType<HTMLElement>>(ActionSheetContext);\n const { sizeY } = useAdaptivityWithJSMediaQueries();\n\n const Component: React.ElementType | undefined = selectable ? 'label' : undefined;\n\n const isRich = subtitle || meta || selectable;\n const isCentered = !isRich && !before && platform === 'ios';\n\n return (\n <Tappable\n {...(Component && { Component })}\n {...restProps}\n onClick={\n selectable\n ? onClick\n : onItemClick({\n action: onClick,\n immediateAction: onImmediateClick,\n autoClose: !autoCloseDisabled,\n isCancelItem: Boolean(isCancelItem),\n })\n }\n activeMode={platform === 'ios' ? styles['ActionSheetItem--active'] : undefined}\n className={classNames(\n styles['ActionSheetItem'],\n platform === 'ios' && styles['ActionSheetItem--ios'],\n mode === 'cancel' && styles['ActionSheetItem--mode-cancel'],\n mode === 'destructive' && styles['ActionSheetItem--mode-destructive'],\n sizeY === 'compact' && styles['ActionSheetItem--sizeY-compact'],\n isRich && styles['ActionSheetItem--rich'],\n actionSheetMode === 'menu' && styles['ActionSheetItem--menu'],\n selectable && styles['ActionSheetItem--selectable'],\n className,\n )}\n >\n {before && <div className={styles['ActionSheetItem__before']}>{before}</div>}\n <div\n className={classNames(\n styles['ActionSheetItem__container'],\n !multiline && styles['ActionSheetItem--ellipsis'],\n )}\n >\n <div\n className={classNames(\n styles['ActionSheetItem__content'],\n isCentered && styles['ActionSheetItem--centered'],\n )}\n >\n {platform === 'ios' ? (\n <Title\n className={styles['ActionSheetItem__children']}\n weight={mode === 'cancel' ? '2' : '3'}\n level={isCentered ? '2' : '3'}\n >\n {children}\n </Title>\n ) : (\n <Text className={styles['ActionSheetItem__children']}>{children}</Text>\n )}\n {meta && <Text className={styles['ActionSheetItem__meta']}>{meta}</Text>}\n </div>\n {subtitle && <Subhead className={styles['ActionSheetItem__subtitle']}>{subtitle}</Subhead>}\n </div>\n {(selectable || after) && (\n <div className={styles['ActionSheetItem__after']}>\n {after}\n {selectable && (\n <Radio\n name={name}\n value={value}\n onChange={onChange}\n onClick={onItemClick({\n action: noop,\n immediateAction: noop,\n autoClose: !autoCloseDisabled,\n isCancelItem: Boolean(isCancelItem),\n })}\n defaultChecked={defaultChecked}\n checked={checked}\n disabled={restProps.disabled}\n >\n {iconChecked}\n </Radio>\n )}\n </div>\n )}\n </Tappable>\n );\n};\n"],"names":["React","classNames","noop","useAdaptivityWithJSMediaQueries","usePlatform","ActionSheetContext","Tappable","Subhead","Text","Title","Radio","ActionSheetItem","children","autoCloseDisabled","mode","meta","subtitle","before","after","selectable","value","name","checked","defaultChecked","onChange","onClick","onImmediateClick","multiline","iconChecked","className","isCancelItem","restProps","platform","onItemClick","actionSheetMode","useContext","sizeY","Component","undefined","isRich","isCentered","action","immediateAction","autoClose","Boolean","activeMode","div","weight","level","disabled"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,+BAA+B,QAAQ,8CAA8C;AAC9F,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,kBAAkB,QAAqC,oCAAoC;AACpG,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,SAASC,KAAK,QAAQ,4BAA4B;AAClD,SAASC,KAAK,QAAQ,8BAA8B;AAyCpD;;CAEC,GACD,OAAO,MAAMC,kBAAkB;QAAC,EAC9BC,QAAQ,EACRC,oBAAoB,KAAK,EACzBC,OAAO,SAAS,EAChBC,IAAI,EACJC,QAAQ,EACRC,MAAM,EACNC,KAAK,EACLC,UAAU,EACVC,KAAK,EACLC,IAAI,EACJC,OAAO,EACPC,cAAc,EACdC,QAAQ,EACRC,OAAO,EACPC,gBAAgB,EAChBC,YAAY,KAAK,EACjBC,WAAW,EACXC,SAAS,EACTC,YAAY,EAES,WADlBC;QAnBHnB;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,WAAW5B;IACjB,MAAM,EAAE6B,cAAc,IAAM/B,IAAI,EAAEY,MAAMoB,eAAe,EAAE,GACvDlC,MAAMmC,UAAU,CAAsC9B;IACxD,MAAM,EAAE+B,KAAK,EAAE,GAAGjC;IAElB,MAAMkC,YAA2ClB,aAAa,UAAUmB;IAExE,MAAMC,SAASvB,YAAYD,QAAQI;IACnC,MAAMqB,aAAa,CAACD,UAAU,CAACtB,UAAUe,aAAa;IAEtD,qBACE,MAAC1B,kDACM+B,aAAa;QAAEA;IAAU,GAC1BN;QACJN,SACEN,aACIM,UACAQ,YAAY;YACVQ,QAAQhB;YACRiB,iBAAiBhB;YACjBiB,WAAW,CAAC9B;YACZiB,cAAcc,QAAQd;QACxB;QAENe,YAAYb,aAAa,wCAA4CM;QACrET,WAAW5B,kCAET+B,aAAa,qCACblB,SAAS,gDACTA,SAAS,0DACTsB,UAAU,mDACVG,uCACAL,oBAAoB,uCACpBf,iDACAU;;YAGDZ,wBAAU,KAAC6B;gBAAIjB,SAAS;0BAAsCZ;;0BAC/D,MAAC6B;gBACCjB,WAAW5B,6CAET,CAAC0B;;kCAGH,MAACmB;wBACCjB,WAAW5B,2CAETuC;;4BAGDR,aAAa,sBACZ,KAACvB;gCACCoB,SAAS;gCACTkB,QAAQjC,SAAS,WAAW,MAAM;gCAClCkC,OAAOR,aAAa,MAAM;0CAEzB5B;+CAGH,KAACJ;gCAAKqB,SAAS;0CAAwCjB;;4BAExDG,sBAAQ,KAACP;gCAAKqB,SAAS;0CAAoCd;;;;oBAE7DC,0BAAY,KAACT;wBAAQsB,SAAS;kCAAwCb;;;;YAEvEG,CAAAA,cAAcD,KAAI,mBAClB,MAAC4B;gBAAIjB,SAAS;;oBACXX;oBACAC,4BACC,KAACT;wBACCW,MAAMA;wBACND,OAAOA;wBACPI,UAAUA;wBACVC,SAASQ,YAAY;4BACnBQ,QAAQvC;4BACRwC,iBAAiBxC;4BACjByC,WAAW,CAAC9B;4BACZiB,cAAcc,QAAQd;wBACxB;wBACAP,gBAAgBA;wBAChBD,SAASA;wBACT2B,UAAUlB,UAAUkB,QAAQ;kCAE3BrB;;;;;;AAOf,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Keys, pressedKey } from '../../lib/accessibility';\nimport { ActionSheetContext, type ActionSheetContextType } from '../ActionSheet/ActionSheetContext';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport { isRealClickEvent } from './helpers';\nimport { Radio } from './subcomponents/Radio/Radio';\nimport styles from './ActionSheetItem.module.css';\n\nexport interface ActionSheetItemProps\n extends React.HTMLAttributes<HTMLElement>,\n React.AnchorHTMLAttributes<HTMLElement>,\n Pick<React.InputHTMLAttributes<HTMLInputElement>, 'name' | 'checked' | 'value'> {\n mode?: 'default' | 'destructive' | 'cancel';\n before?: React.ReactNode;\n after?: React.ReactNode;\n meta?: React.ReactNode;\n subtitle?: React.ReactNode;\n /**\n * По умолчанию клик на опцию вызывает переданную в `ActionSheet` функцию `onClose`, данное свойство\n * позволяет отключить такое поведение\n */\n autoCloseDisabled?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n /**\n * Все текстовые элементы при необходимости занимают несколько строк\n */\n multiline?: boolean;\n /**\n * По умолчанию onClick будет вызван после завершения анимации скрытия и после вызова onClose.\n * Из этого следует, что в объекте события значения полей типа `currentTarget` будут не определены.\n * Если вам нужен объект события именно на момент клика, используйте `onImmediateClick`.\n */\n onClick?: React.MouseEventHandler<HTMLElement>;\n onImmediateClick?: React.MouseEventHandler<HTMLElement>;\n /**\n * Иконка для `checked` режима.\n */\n iconChecked?: React.ReactNode;\n /**\n * Позволяет отделить ActionItem от CancelItem для определении того,\n * кто вызвал закрытие ActionSheet. Используется в ActionSheet.onClose()\n */\n isCancelItem?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheetItem\n */\nexport const ActionSheetItem = ({\n children,\n autoCloseDisabled = false,\n mode = 'default',\n meta,\n subtitle,\n before,\n after,\n selectable,\n value,\n name,\n checked,\n defaultChecked,\n onChange,\n onClick,\n onImmediateClick,\n multiline = false,\n iconChecked,\n className,\n isCancelItem,\n ...restProps\n}: ActionSheetItemProps): React.ReactNode => {\n const platform = usePlatform();\n const {\n onItemClick = () => noop,\n mode: actionSheetMode,\n onClose: onActionSheetClose,\n } = React.useContext<ActionSheetContextType<HTMLElement>>(ActionSheetContext);\n const { sizeY } = useAdaptivityWithJSMediaQueries();\n\n const Component: React.ElementType | undefined = selectable ? 'label' : undefined;\n\n const isRich = subtitle || meta || selectable;\n const isCentered = !isRich && !before && platform === 'ios';\n\n const onItemClickHandler = React.useCallback(\n (e: React.MouseEvent) => {\n onItemClick({\n action: onClick,\n immediateAction: onImmediateClick,\n autoClose: !autoCloseDisabled,\n isCancelItem: Boolean(isCancelItem),\n })?.(e);\n },\n [autoCloseDisabled, isCancelItem, onClick, onImmediateClick, onItemClick],\n );\n\n const onKeyDown: React.KeyboardEventHandler<HTMLElement> = React.useCallback(\n (event) => {\n if (pressedKey(event) === Keys.ENTER) {\n onActionSheetClose?.();\n }\n },\n [onActionSheetClose],\n );\n\n const onItemClickImpl: React.MouseEventHandler<HTMLElement> = React.useCallback(\n (event) => {\n if (selectable) {\n if (isRealClickEvent(event)) {\n onItemClickHandler(event);\n }\n } else {\n onItemClickHandler(event);\n }\n },\n [onItemClickHandler, selectable],\n );\n\n return (\n <Tappable\n {...(Component && { Component })}\n {...restProps}\n onClick={onItemClickImpl}\n activeMode={platform === 'ios' ? styles['ActionSheetItem--active'] : undefined}\n className={classNames(\n styles['ActionSheetItem'],\n platform === 'ios' && styles['ActionSheetItem--ios'],\n mode === 'cancel' && styles['ActionSheetItem--mode-cancel'],\n mode === 'destructive' && styles['ActionSheetItem--mode-destructive'],\n sizeY === 'compact' && styles['ActionSheetItem--sizeY-compact'],\n isRich && styles['ActionSheetItem--rich'],\n actionSheetMode === 'menu' && styles['ActionSheetItem--menu'],\n selectable && styles['ActionSheetItem--selectable'],\n className,\n )}\n onKeyDown={onKeyDown}\n >\n {before && <div className={styles['ActionSheetItem__before']}>{before}</div>}\n <div\n className={classNames(\n styles['ActionSheetItem__container'],\n !multiline && styles['ActionSheetItem--ellipsis'],\n )}\n >\n <div\n className={classNames(\n styles['ActionSheetItem__content'],\n isCentered && styles['ActionSheetItem--centered'],\n )}\n >\n {platform === 'ios' ? (\n <Title\n className={styles['ActionSheetItem__children']}\n weight={mode === 'cancel' ? '2' : '3'}\n level={isCentered ? '2' : '3'}\n >\n {children}\n </Title>\n ) : (\n <Text className={styles['ActionSheetItem__children']}>{children}</Text>\n )}\n {meta && <Text className={styles['ActionSheetItem__meta']}>{meta}</Text>}\n </div>\n {subtitle && <Subhead className={styles['ActionSheetItem__subtitle']}>{subtitle}</Subhead>}\n </div>\n {(selectable || after) && (\n <div className={styles['ActionSheetItem__after']}>\n {after}\n {selectable && (\n <Radio\n name={name}\n value={value}\n onChange={onChange}\n defaultChecked={defaultChecked}\n checked={checked}\n disabled={restProps.disabled}\n >\n {iconChecked}\n </Radio>\n )}\n </div>\n )}\n </Tappable>\n );\n};\n"],"names":["React","classNames","noop","useAdaptivityWithJSMediaQueries","usePlatform","Keys","pressedKey","ActionSheetContext","Tappable","Subhead","Text","Title","isRealClickEvent","Radio","ActionSheetItem","children","autoCloseDisabled","mode","meta","subtitle","before","after","selectable","value","name","checked","defaultChecked","onChange","onClick","onImmediateClick","multiline","iconChecked","className","isCancelItem","restProps","platform","onItemClick","actionSheetMode","onClose","onActionSheetClose","useContext","sizeY","Component","undefined","isRich","isCentered","onItemClickHandler","useCallback","e","action","immediateAction","autoClose","Boolean","onKeyDown","event","ENTER","onItemClickImpl","activeMode","div","weight","level","disabled"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * По дизайну `ActionSheet` должен закрывать при клике на `ActionSheetItem`.
3
+ * В режиме `selectable` в реализации используются нативный input type=radio
4
+ * И при навигации стрелочками по элементам происходит событие `click` из-за чего `ActionSheet` закрывается.
5
+ * Поэтому нужно как-то отличить реальное событие клика
6
+ * @see https://github.com/facebook/react/issues/7407
7
+ * @see https://github.com/VKCOM/VKUI/issues/6954
8
+ */
9
+ export declare const isRealClickEvent: (event: React.MouseEvent) => boolean;
10
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/ActionSheetItem/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,UAAW,KAAK,CAAC,UAAU,YAEvD,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * По дизайну `ActionSheet` должен закрывать при клике на `ActionSheetItem`.
3
+ * В режиме `selectable` в реализации используются нативный input type=radio
4
+ * И при навигации стрелочками по элементам происходит событие `click` из-за чего `ActionSheet` закрывается.
5
+ * Поэтому нужно как-то отличить реальное событие клика
6
+ * @see https://github.com/facebook/react/issues/7407
7
+ * @see https://github.com/VKCOM/VKUI/issues/6954
8
+ */ export const isRealClickEvent = (event)=>{
9
+ return event.type === 'click' && event.clientX !== 0 && event.clientY !== 0;
10
+ };
11
+
12
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/ActionSheetItem/helpers.ts"],"sourcesContent":["/**\n * По дизайну `ActionSheet` должен закрывать при клике на `ActionSheetItem`.\n * В режиме `selectable` в реализации используются нативный input type=radio\n * И при навигации стрелочками по элементам происходит событие `click` из-за чего `ActionSheet` закрывается.\n * Поэтому нужно как-то отличить реальное событие клика\n * @see https://github.com/facebook/react/issues/7407\n * @see https://github.com/VKCOM/VKUI/issues/6954\n */\nexport const isRealClickEvent = (event: React.MouseEvent) => {\n return event.type === 'click' && event.clientX !== 0 && event.clientY !== 0;\n};\n"],"names":["isRealClickEvent","event","type","clientX","clientY"],"mappings":"AAAA;;;;;;;CAOC,GACD,OAAO,MAAMA,mBAAmB,CAACC;IAC/B,OAAOA,MAAMC,IAAI,KAAK,WAAWD,MAAME,OAAO,KAAK,KAAKF,MAAMG,OAAO,KAAK;AAC5E,EAAE"}
@@ -19,7 +19,7 @@ import { AlertHeader, AlertText } from './AlertTypography';
19
19
  /**
20
20
  * @see https://vkcom.github.io/VKUI/#/Alert
21
21
  */ export const Alert = (_param)=>{
22
- var { actions = [], actionsLayout = 'horizontal', children, className, style, text, header, onClose, dismissLabel = 'Закрыть предупреждение', renderAction, actionsAlign, dismissButtonMode = 'outside', dismissButtonTestId, getRootRef } = _param, restProps = _object_without_properties(_param, [
22
+ var { actions, actionsLayout = 'horizontal', children, className, style, text, header, onClose, dismissLabel = 'Закрыть предупреждение', renderAction, actionsAlign, dismissButtonMode = 'outside', dismissButtonTestId, getRootRef } = _param, restProps = _object_without_properties(_param, [
23
23
  "actions",
24
24
  "actionsLayout",
25
25
  "children",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Alert/Alert.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon20Cancel } from '@vkontakte/icons';\nimport { classNames, hasReactNode, noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useCSSKeyframesAnimationController } from '../../lib/animation';\nimport { stopPropagation } from '../../lib/utils';\nimport { AlignType, AnchorHTMLAttributesOnly, HasDataAttribute, HasRootRef } from '../../types';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { ButtonProps } from '../Button/Button';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { IconButton } from '../IconButton/IconButton';\nimport { ModalDismissButton } from '../ModalDismissButton/ModalDismissButton';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { AlertActionProps } from './AlertAction';\nimport { AlertActions } from './AlertActions';\nimport { AlertHeader, AlertText } from './AlertTypography';\nimport styles from './Alert.module.css';\n\ntype AlertActionMode = 'cancel' | 'destructive' | 'default';\n\nexport interface AlertActionInterface\n extends Pick<ButtonProps, 'Component'>,\n AnchorHTMLAttributesOnly,\n HasDataAttribute {\n title: string;\n /**\n * Обработчик клика на опцию. Если свойство `autoCloseDisabled` включено,\n * то в аргументы `action` передаётся объект с функцией close,\n * вызвав которую можно закрыть `action` вручную.\n */\n action?: (args?: { close?: VoidFunction }) => void;\n /**\n * По умолчанию клик на опцию вызывает переданную в `Alert` функцию `onClose`, данное свойство\n * позволяет отключить такое поведение\n */\n autoCloseDisabled?: boolean;\n mode: AlertActionMode;\n}\n\nexport interface AlertProps extends React.HTMLAttributes<HTMLElement>, HasRootRef<HTMLDivElement> {\n actionsLayout?: 'vertical' | 'horizontal';\n actionsAlign?: AlignType;\n actions?: AlertActionInterface[];\n renderAction?: (props: AlertActionProps) => React.ReactNode;\n header?: React.ReactNode;\n text?: React.ReactNode;\n onClose: VoidFunction;\n /**\n * Текст кнопки закрытия. Делает ее доступной для ассистивных технологий\n */\n dismissLabel?: string;\n /**\n * Расположение кнопки закрытия (внутри и вне `popout'a`)\n * Доступно только в `compact`-режиме, не отображается на `iOS`\n */\n dismissButtonMode?: 'inside' | 'outside';\n /**\n * `data-testid` для кнопки закрытия\n */\n dismissButtonTestId?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Alert\n */\nexport const Alert = ({\n actions = [],\n actionsLayout = 'horizontal',\n children,\n className,\n style,\n text,\n header,\n onClose,\n dismissLabel = 'Закрыть предупреждение',\n renderAction,\n actionsAlign,\n dismissButtonMode = 'outside',\n dismissButtonTestId,\n getRootRef,\n ...restProps\n}: AlertProps): React.ReactNode => {\n const generatedId = React.useId();\n\n const headerId = `vkui-alert-${generatedId}-header`;\n const textId = `vkui-alert-${generatedId}-text`;\n\n const platform = usePlatform();\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n const [closing, setClosing] = React.useState(false);\n const itemActionCallbackRef = React.useRef(noop);\n const [animationState, animationHandlers] = useCSSKeyframesAnimationController(\n closing ? 'exit' : 'enter',\n {\n onExited() {\n onClose();\n itemActionCallbackRef.current();\n itemActionCallbackRef.current = noop;\n },\n },\n );\n const isDismissButtonVisible = isDesktop && platform !== 'ios';\n const elementRef = React.useRef<HTMLDivElement>(null);\n\n const close = React.useCallback(() => {\n setClosing(true);\n }, []);\n\n const onItemClick = React.useCallback(\n (item: AlertActionInterface) => {\n const { action: itemAction, autoCloseDisabled = false } = item;\n\n if (autoCloseDisabled) {\n itemAction && itemAction({ close });\n } else {\n if (itemAction) {\n itemActionCallbackRef.current = itemAction;\n }\n setClosing(true);\n }\n },\n [close],\n );\n\n useScrollLock();\n\n return (\n <PopoutWrapper\n className={className}\n closing={closing}\n style={style}\n onClick={close}\n getRootRef={getRootRef}\n >\n <FocusTrap\n {...restProps}\n {...animationHandlers}\n getRootRef={elementRef}\n onClick={stopPropagation}\n onClose={close}\n autoFocus={animationState === 'entered'}\n className={classNames(\n styles['Alert'],\n platform === 'ios' && styles['Alert--ios'],\n platform === 'vkcom' && styles['Alert--vkcom'],\n closing ? styles['Alert--closing'] : styles['Alert--opening'],\n isDesktop && styles['Alert--desktop'],\n )}\n role=\"alertdialog\"\n aria-modal\n aria-labelledby={headerId}\n aria-describedby={textId}\n >\n <div\n className={classNames(\n styles['Alert__content'],\n dismissButtonMode === 'inside' && styles['Alert__content--withButton'],\n )}\n >\n {hasReactNode(header) && <AlertHeader id={headerId}>{header}</AlertHeader>}\n {hasReactNode(text) && <AlertText id={textId}>{text}</AlertText>}\n {children}\n {isDismissButtonVisible && dismissButtonMode === 'inside' && (\n <IconButton\n label={dismissLabel}\n className={classNames(styles['Alert__dismiss'], 'vkuiInternalAlert__dismiss')}\n onClick={close}\n hoverMode=\"opacity\"\n activeMode=\"opacity\"\n data-testid={dismissButtonTestId}\n >\n <Icon20Cancel />\n </IconButton>\n )}\n </div>\n <AlertActions\n actions={actions}\n actionsAlign={actionsAlign}\n actionsLayout={actionsLayout}\n renderAction={renderAction}\n onItemClick={onItemClick}\n />\n {isDismissButtonVisible && dismissButtonMode === 'outside' && (\n <ModalDismissButton onClick={close} data-testid={dismissButtonTestId}>\n {dismissLabel}\n </ModalDismissButton>\n )}\n </FocusTrap>\n </PopoutWrapper>\n );\n};\n"],"names":["React","Icon20Cancel","classNames","hasReactNode","noop","useAdaptivityWithJSMediaQueries","usePlatform","useCSSKeyframesAnimationController","stopPropagation","useScrollLock","FocusTrap","IconButton","ModalDismissButton","PopoutWrapper","AlertActions","AlertHeader","AlertText","Alert","actions","actionsLayout","children","className","style","text","header","onClose","dismissLabel","renderAction","actionsAlign","dismissButtonMode","dismissButtonTestId","getRootRef","restProps","generatedId","useId","headerId","textId","platform","isDesktop","closing","setClosing","useState","itemActionCallbackRef","useRef","animationState","animationHandlers","onExited","current","isDismissButtonVisible","elementRef","close","useCallback","onItemClick","item","action","itemAction","autoCloseDisabled","onClick","autoFocus","role","aria-modal","aria-labelledby","aria-describedby","div","id","label","hoverMode","activeMode","data-testid"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Alert/Alert.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon20Cancel } from '@vkontakte/icons';\nimport { classNames, hasReactNode, noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useCSSKeyframesAnimationController } from '../../lib/animation';\nimport { stopPropagation } from '../../lib/utils';\nimport { AlignType, AnchorHTMLAttributesOnly, HasDataAttribute, HasRootRef } from '../../types';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { ButtonProps } from '../Button/Button';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { IconButton } from '../IconButton/IconButton';\nimport { ModalDismissButton } from '../ModalDismissButton/ModalDismissButton';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { AlertActionProps } from './AlertAction';\nimport { AlertActions } from './AlertActions';\nimport { AlertHeader, AlertText } from './AlertTypography';\nimport styles from './Alert.module.css';\n\ntype AlertActionMode = 'cancel' | 'destructive' | 'default';\n\nexport interface AlertActionInterface\n extends Pick<ButtonProps, 'Component'>,\n AnchorHTMLAttributesOnly,\n HasDataAttribute {\n title: string;\n /**\n * Обработчик клика на опцию. Если свойство `autoCloseDisabled` включено,\n * то в аргументы `action` передаётся объект с функцией close,\n * вызвав которую можно закрыть `action` вручную.\n */\n action?: (args?: { close?: VoidFunction }) => void;\n /**\n * По умолчанию клик на опцию вызывает переданную в `Alert` функцию `onClose`, данное свойство\n * позволяет отключить такое поведение\n */\n autoCloseDisabled?: boolean;\n mode: AlertActionMode;\n}\n\nexport interface AlertProps extends React.HTMLAttributes<HTMLElement>, HasRootRef<HTMLDivElement> {\n actionsLayout?: 'vertical' | 'horizontal';\n actionsAlign?: AlignType;\n actions?: AlertActionInterface[];\n renderAction?: (props: AlertActionProps) => React.ReactNode;\n header?: React.ReactNode;\n text?: React.ReactNode;\n onClose: VoidFunction;\n /**\n * Текст кнопки закрытия. Делает ее доступной для ассистивных технологий\n */\n dismissLabel?: string;\n /**\n * Расположение кнопки закрытия (внутри и вне `popout'a`)\n * Доступно только в `compact`-режиме, не отображается на `iOS`\n */\n dismissButtonMode?: 'inside' | 'outside';\n /**\n * `data-testid` для кнопки закрытия\n */\n dismissButtonTestId?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Alert\n */\nexport const Alert = ({\n actions,\n actionsLayout = 'horizontal',\n children,\n className,\n style,\n text,\n header,\n onClose,\n dismissLabel = 'Закрыть предупреждение',\n renderAction,\n actionsAlign,\n dismissButtonMode = 'outside',\n dismissButtonTestId,\n getRootRef,\n ...restProps\n}: AlertProps): React.ReactNode => {\n const generatedId = React.useId();\n\n const headerId = `vkui-alert-${generatedId}-header`;\n const textId = `vkui-alert-${generatedId}-text`;\n\n const platform = usePlatform();\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n const [closing, setClosing] = React.useState(false);\n const itemActionCallbackRef = React.useRef(noop);\n const [animationState, animationHandlers] = useCSSKeyframesAnimationController(\n closing ? 'exit' : 'enter',\n {\n onExited() {\n onClose();\n itemActionCallbackRef.current();\n itemActionCallbackRef.current = noop;\n },\n },\n );\n const isDismissButtonVisible = isDesktop && platform !== 'ios';\n const elementRef = React.useRef<HTMLDivElement>(null);\n\n const close = React.useCallback(() => {\n setClosing(true);\n }, []);\n\n const onItemClick = React.useCallback(\n (item: AlertActionInterface) => {\n const { action: itemAction, autoCloseDisabled = false } = item;\n\n if (autoCloseDisabled) {\n itemAction && itemAction({ close });\n } else {\n if (itemAction) {\n itemActionCallbackRef.current = itemAction;\n }\n setClosing(true);\n }\n },\n [close],\n );\n\n useScrollLock();\n\n return (\n <PopoutWrapper\n className={className}\n closing={closing}\n style={style}\n onClick={close}\n getRootRef={getRootRef}\n >\n <FocusTrap\n {...restProps}\n {...animationHandlers}\n getRootRef={elementRef}\n onClick={stopPropagation}\n onClose={close}\n autoFocus={animationState === 'entered'}\n className={classNames(\n styles['Alert'],\n platform === 'ios' && styles['Alert--ios'],\n platform === 'vkcom' && styles['Alert--vkcom'],\n closing ? styles['Alert--closing'] : styles['Alert--opening'],\n isDesktop && styles['Alert--desktop'],\n )}\n role=\"alertdialog\"\n aria-modal\n aria-labelledby={headerId}\n aria-describedby={textId}\n >\n <div\n className={classNames(\n styles['Alert__content'],\n dismissButtonMode === 'inside' && styles['Alert__content--withButton'],\n )}\n >\n {hasReactNode(header) && <AlertHeader id={headerId}>{header}</AlertHeader>}\n {hasReactNode(text) && <AlertText id={textId}>{text}</AlertText>}\n {children}\n {isDismissButtonVisible && dismissButtonMode === 'inside' && (\n <IconButton\n label={dismissLabel}\n className={classNames(styles['Alert__dismiss'], 'vkuiInternalAlert__dismiss')}\n onClick={close}\n hoverMode=\"opacity\"\n activeMode=\"opacity\"\n data-testid={dismissButtonTestId}\n >\n <Icon20Cancel />\n </IconButton>\n )}\n </div>\n <AlertActions\n actions={actions}\n actionsAlign={actionsAlign}\n actionsLayout={actionsLayout}\n renderAction={renderAction}\n onItemClick={onItemClick}\n />\n {isDismissButtonVisible && dismissButtonMode === 'outside' && (\n <ModalDismissButton onClick={close} data-testid={dismissButtonTestId}>\n {dismissLabel}\n </ModalDismissButton>\n )}\n </FocusTrap>\n </PopoutWrapper>\n );\n};\n"],"names":["React","Icon20Cancel","classNames","hasReactNode","noop","useAdaptivityWithJSMediaQueries","usePlatform","useCSSKeyframesAnimationController","stopPropagation","useScrollLock","FocusTrap","IconButton","ModalDismissButton","PopoutWrapper","AlertActions","AlertHeader","AlertText","Alert","actions","actionsLayout","children","className","style","text","header","onClose","dismissLabel","renderAction","actionsAlign","dismissButtonMode","dismissButtonTestId","getRootRef","restProps","generatedId","useId","headerId","textId","platform","isDesktop","closing","setClosing","useState","itemActionCallbackRef","useRef","animationState","animationHandlers","onExited","current","isDismissButtonVisible","elementRef","close","useCallback","onItemClick","item","action","itemAction","autoCloseDisabled","onClick","autoFocus","role","aria-modal","aria-labelledby","aria-describedby","div","id","label","hoverMode","activeMode","data-testid"],"mappings":"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"}