@vkontakte/vkui 5.3.2 → 5.4.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 (786) hide show
  1. package/dist/cjs/components/Accordion/Accordion.d.ts +2 -2
  2. package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
  3. package/dist/cjs/components/Accordion/AccordionSummary.d.ts +1 -1
  4. package/dist/cjs/components/Accordion/AccordionSummary.js.map +1 -1
  5. package/dist/cjs/components/ActionSheet/types.d.ts +1 -1
  6. package/dist/cjs/components/ActionSheet/types.js.map +1 -1
  7. package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
  8. package/dist/cjs/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +4 -4
  9. package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
  10. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  11. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  12. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  13. package/dist/cjs/components/AppRoot/AppRootPortal.d.ts +3 -3
  14. package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
  15. package/dist/cjs/components/AppRoot/ScrollContext.d.ts +2 -2
  16. package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
  17. package/dist/cjs/components/Button/Button.d.ts +1 -0
  18. package/dist/cjs/components/Button/Button.js +2 -2
  19. package/dist/cjs/components/Button/Button.js.map +1 -1
  20. package/dist/cjs/components/Card/Card.js +1 -3
  21. package/dist/cjs/components/Card/Card.js.map +1 -1
  22. package/dist/cjs/components/CardGrid/CardGrid.js +4 -4
  23. package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
  24. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
  25. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +10 -6
  26. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  27. package/dist/cjs/components/Checkbox/Checkbox.d.ts +2 -1
  28. package/dist/cjs/components/Checkbox/Checkbox.js +12 -8
  29. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  30. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  31. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +3 -2
  32. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  33. package/dist/cjs/components/Counter/Counter.js +3 -5
  34. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  35. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +3 -0
  36. package/dist/cjs/components/CustomSelect/CustomSelect.js +1 -1
  37. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  38. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +1 -1
  39. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  40. package/dist/cjs/components/Epic/ScrollSaver.d.ts +3 -3
  41. package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
  42. package/dist/cjs/components/File/File.js +4 -3
  43. package/dist/cjs/components/File/File.js.map +1 -1
  44. package/dist/cjs/components/FixedLayout/FixedLayout.js +1 -1
  45. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  46. package/dist/cjs/components/FocusVisible/FocusVisible.d.ts +4 -2
  47. package/dist/cjs/components/FocusVisible/FocusVisible.js +4 -3
  48. package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
  49. package/dist/cjs/components/FormField/FormField.js +10 -1
  50. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  51. package/dist/cjs/components/FormItem/FormItem.d.ts +3 -1
  52. package/dist/cjs/components/FormItem/FormItem.js +2 -1
  53. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  54. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
  55. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  56. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  57. package/dist/cjs/components/Group/Group.d.ts +5 -3
  58. package/dist/cjs/components/Group/Group.js +2 -2
  59. package/dist/cjs/components/Group/Group.js.map +1 -1
  60. package/dist/cjs/components/Header/Header.js +20 -16
  61. package/dist/cjs/components/Header/Header.js.map +1 -1
  62. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
  63. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +4 -1
  64. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  65. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
  66. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js +6 -2
  67. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  68. package/dist/cjs/components/HoverPopper/HoverPopper.d.ts +1 -1
  69. package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
  70. package/dist/cjs/components/IconButton/IconButton.d.ts +3 -3
  71. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  72. package/dist/cjs/components/LocaleProvider/LocaleProvider.d.ts +2 -2
  73. package/dist/cjs/components/LocaleProvider/LocaleProvider.js.map +1 -1
  74. package/dist/cjs/components/ModalPage/ModalPage.d.ts +1 -1
  75. package/dist/cjs/components/ModalPage/ModalPage.js +19 -3
  76. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  77. package/dist/cjs/components/ModalPage/ModalPageContext.d.ts +5 -0
  78. package/dist/cjs/components/{Typography/types.js → ModalPage/ModalPageContext.js} +8 -1
  79. package/dist/cjs/components/ModalPage/ModalPageContext.js.map +1 -0
  80. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +6 -1
  81. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  82. package/dist/cjs/components/ModalRoot/ModalRoot.d.ts +2 -27
  83. package/dist/cjs/components/ModalRoot/ModalRoot.js +13 -22
  84. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  85. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
  86. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  87. package/dist/cjs/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
  88. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +145 -219
  89. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  90. package/dist/cjs/components/ModalRoot/types.d.ts +28 -0
  91. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  92. package/dist/cjs/components/ModalRoot/useModalManager.d.ts +6 -5
  93. package/dist/cjs/components/ModalRoot/useModalManager.js +3 -3
  94. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
  95. package/dist/cjs/components/NativeSelect/NativeSelect.d.ts +6 -2
  96. package/dist/cjs/components/NativeSelect/NativeSelect.js +6 -3
  97. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  98. package/dist/cjs/components/Panel/Panel.js +2 -2
  99. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  100. package/dist/cjs/components/PanelHeader/PanelHeader.d.ts +11 -2
  101. package/dist/cjs/components/PanelHeader/PanelHeader.js +17 -7
  102. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  103. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  104. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  105. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  106. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
  107. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  108. package/dist/cjs/components/PlatformProvider/PlatformProvider.d.ts +1 -1
  109. package/dist/cjs/components/PlatformProvider/PlatformProvider.js.map +1 -1
  110. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  111. package/dist/cjs/components/Popover/Popover.d.ts +3 -2
  112. package/dist/cjs/components/Popover/Popover.js +5 -3
  113. package/dist/cjs/components/Popover/Popover.js.map +1 -1
  114. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  115. package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +3 -4
  116. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  117. package/dist/cjs/components/Radio/Radio.d.ts +2 -1
  118. package/dist/cjs/components/Radio/Radio.js +14 -8
  119. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  120. package/dist/cjs/components/Removable/Removable.d.ts +7 -2
  121. package/dist/cjs/components/Removable/Removable.js +4 -3
  122. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  123. package/dist/cjs/components/Root/Root.js.map +1 -1
  124. package/dist/cjs/components/Search/Search.d.ts +3 -1
  125. package/dist/cjs/components/Search/Search.js +42 -57
  126. package/dist/cjs/components/Search/Search.js.map +1 -1
  127. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
  128. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +8 -4
  129. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  130. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +1 -1
  131. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  132. package/dist/cjs/components/SelectTypography/SelectTypography.d.ts +2 -3
  133. package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
  134. package/dist/cjs/components/SimpleCell/SimpleCell.js +8 -5
  135. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  136. package/dist/cjs/components/Spacing/Spacing.d.ts +2 -2
  137. package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
  138. package/dist/cjs/components/SplitCol/SplitCol.js +1 -0
  139. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  140. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +1 -3
  141. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  142. package/dist/cjs/components/Switch/Switch.d.ts +4 -5
  143. package/dist/cjs/components/Switch/Switch.js +12 -8
  144. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  145. package/dist/cjs/components/Tabbar/Tabbar.js +2 -4
  146. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  147. package/dist/cjs/components/TabbarItem/TabbarItem.js +1 -1
  148. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  149. package/dist/cjs/components/Tappable/Tappable.d.ts +2 -3
  150. package/dist/cjs/components/Tappable/Tappable.js +1 -0
  151. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  152. package/dist/cjs/components/Typography/Caption/Caption.d.ts +2 -2
  153. package/dist/cjs/components/Typography/Caption/Caption.js +10 -13
  154. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  155. package/dist/cjs/components/Typography/Footnote/Footnote.d.ts +2 -2
  156. package/dist/cjs/components/Typography/Footnote/Footnote.js +10 -13
  157. package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
  158. package/dist/cjs/components/Typography/Headline/Headline.d.ts +3 -4
  159. package/dist/cjs/components/Typography/Headline/Headline.js +9 -12
  160. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  161. package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts +3 -5
  162. package/dist/cjs/components/Typography/Paragraph/Paragraph.js +8 -13
  163. package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
  164. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +2 -2
  165. package/dist/cjs/components/Typography/Subhead/Subhead.js +9 -12
  166. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  167. package/dist/cjs/components/Typography/Text/Text.d.ts +3 -5
  168. package/dist/cjs/components/Typography/Text/Text.js +8 -13
  169. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  170. package/dist/cjs/components/Typography/Title/Title.d.ts +2 -2
  171. package/dist/cjs/components/Typography/Title/Title.js +10 -13
  172. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  173. package/dist/cjs/components/Typography/Typography.d.ts +16 -0
  174. package/dist/cjs/components/Typography/Typography.js +35 -0
  175. package/dist/cjs/components/Typography/Typography.js.map +1 -0
  176. package/dist/cjs/components/UsersStack/UsersStack.d.ts +2 -2
  177. package/dist/cjs/components/UsersStack/UsersStack.js +2 -1
  178. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  179. package/dist/cjs/components/View/View.js +1 -1
  180. package/dist/cjs/components/View/View.js.map +1 -1
  181. package/dist/cjs/components/View/ViewInfinite.js +1 -1
  182. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  183. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
  184. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js +29 -0
  185. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
  186. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
  187. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js +5 -0
  188. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  189. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +2 -2
  190. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  191. package/dist/cjs/helpers/getPlatformClassName.js +1 -1
  192. package/dist/cjs/helpers/getPlatformClassName.js.map +1 -1
  193. package/dist/cjs/hooks/useFocusWithin.d.ts +2 -0
  194. package/dist/cjs/hooks/useFocusWithin.js +38 -0
  195. package/dist/cjs/hooks/useFocusWithin.js.map +1 -0
  196. package/dist/cjs/hooks/useId.js +1 -1
  197. package/dist/cjs/hooks/useId.js.map +1 -1
  198. package/dist/cjs/hooks/useWaitTransitionFinish.d.ts +1 -1
  199. package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
  200. package/dist/cjs/index.d.ts +4 -2
  201. package/dist/cjs/index.js +8 -0
  202. package/dist/cjs/index.js.map +1 -1
  203. package/dist/cjs/lib/utils.js +2 -2
  204. package/dist/cjs/lib/utils.js.map +1 -1
  205. package/dist/components/Accordion/Accordion.d.ts +2 -2
  206. package/dist/components/Accordion/Accordion.js +2 -2
  207. package/dist/components/Accordion/Accordion.js.map +1 -1
  208. package/dist/components/Accordion/AccordionSummary.d.ts +1 -1
  209. package/dist/components/Accordion/AccordionSummary.js +1 -1
  210. package/dist/components/Accordion/AccordionSummary.js.map +1 -1
  211. package/dist/components/ActionSheet/types.d.ts +1 -1
  212. package/dist/components/ActionSheet/types.js.map +1 -1
  213. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
  214. package/dist/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +5 -2
  215. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
  216. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  217. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  218. package/dist/components/Alert/Alert.js.map +1 -1
  219. package/dist/components/AppRoot/AppRootPortal.d.ts +3 -3
  220. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  221. package/dist/components/AppRoot/ScrollContext.d.ts +2 -2
  222. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  223. package/dist/components/Button/Button.d.ts +1 -0
  224. package/dist/components/Button/Button.js +2 -2
  225. package/dist/components/Button/Button.js.map +1 -1
  226. package/dist/components/Card/Card.js +1 -3
  227. package/dist/components/Card/Card.js.map +1 -1
  228. package/dist/components/CardGrid/CardGrid.js +4 -4
  229. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  230. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
  231. package/dist/components/Cell/CellCheckbox/CellCheckbox.js +10 -6
  232. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  233. package/dist/components/Checkbox/Checkbox.d.ts +2 -1
  234. package/dist/components/Checkbox/Checkbox.js +12 -8
  235. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  236. package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  237. package/dist/components/ChipsSelect/ChipsSelect.js +3 -2
  238. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  239. package/dist/components/Counter/Counter.js +4 -6
  240. package/dist/components/Counter/Counter.js.map +1 -1
  241. package/dist/components/CustomSelect/CustomSelect.d.ts +3 -0
  242. package/dist/components/CustomSelect/CustomSelect.js +1 -1
  243. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  244. package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -1
  245. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  246. package/dist/components/Epic/ScrollSaver.d.ts +3 -3
  247. package/dist/components/Epic/ScrollSaver.js.map +1 -1
  248. package/dist/components/File/File.js +4 -3
  249. package/dist/components/File/File.js.map +1 -1
  250. package/dist/components/FixedLayout/FixedLayout.js +1 -1
  251. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  252. package/dist/components/FocusVisible/FocusVisible.d.ts +4 -2
  253. package/dist/components/FocusVisible/FocusVisible.js +4 -3
  254. package/dist/components/FocusVisible/FocusVisible.js.map +1 -1
  255. package/dist/components/FormField/FormField.js +10 -1
  256. package/dist/components/FormField/FormField.js.map +1 -1
  257. package/dist/components/FormItem/FormItem.d.ts +3 -1
  258. package/dist/components/FormItem/FormItem.js +2 -1
  259. package/dist/components/FormItem/FormItem.js.map +1 -1
  260. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
  261. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  262. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  263. package/dist/components/Group/Group.d.ts +5 -3
  264. package/dist/components/Group/Group.js +5 -3
  265. package/dist/components/Group/Group.js.map +1 -1
  266. package/dist/components/Header/Header.js +20 -16
  267. package/dist/components/Header/Header.js.map +1 -1
  268. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
  269. package/dist/components/HorizontalScroll/HorizontalScroll.js +4 -1
  270. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  271. package/dist/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
  272. package/dist/components/HorizontalScroll/HorizontalScrollArrow.js +6 -2
  273. package/dist/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  274. package/dist/components/HoverPopper/HoverPopper.d.ts +1 -1
  275. package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
  276. package/dist/components/IconButton/IconButton.d.ts +3 -3
  277. package/dist/components/IconButton/IconButton.js.map +1 -1
  278. package/dist/components/LocaleProvider/LocaleProvider.d.ts +2 -2
  279. package/dist/components/LocaleProvider/LocaleProvider.js +2 -2
  280. package/dist/components/LocaleProvider/LocaleProvider.js.map +1 -1
  281. package/dist/components/ModalPage/ModalPage.d.ts +1 -1
  282. package/dist/components/ModalPage/ModalPage.js +19 -3
  283. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  284. package/dist/components/ModalPage/ModalPageContext.d.ts +5 -0
  285. package/dist/components/ModalPage/ModalPageContext.js +4 -0
  286. package/dist/components/ModalPage/ModalPageContext.js.map +1 -0
  287. package/dist/components/ModalPageHeader/ModalPageHeader.js +6 -1
  288. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  289. package/dist/components/ModalRoot/ModalRoot.d.ts +2 -27
  290. package/dist/components/ModalRoot/ModalRoot.js +13 -22
  291. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  292. package/dist/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
  293. package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  294. package/dist/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
  295. package/dist/components/ModalRoot/ModalRootDesktop.js +149 -223
  296. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  297. package/dist/components/ModalRoot/types.d.ts +28 -0
  298. package/dist/components/ModalRoot/types.js.map +1 -1
  299. package/dist/components/ModalRoot/useModalManager.d.ts +6 -5
  300. package/dist/components/ModalRoot/useModalManager.js +3 -3
  301. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  302. package/dist/components/NativeSelect/NativeSelect.d.ts +6 -2
  303. package/dist/components/NativeSelect/NativeSelect.js +6 -3
  304. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  305. package/dist/components/Panel/Panel.js +2 -2
  306. package/dist/components/Panel/Panel.js.map +1 -1
  307. package/dist/components/PanelHeader/PanelHeader.d.ts +11 -2
  308. package/dist/components/PanelHeader/PanelHeader.js +17 -7
  309. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  310. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  311. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  312. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  313. package/dist/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
  314. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  315. package/dist/components/PlatformProvider/PlatformProvider.d.ts +1 -1
  316. package/dist/components/PlatformProvider/PlatformProvider.js +1 -1
  317. package/dist/components/PlatformProvider/PlatformProvider.js.map +1 -1
  318. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  319. package/dist/components/Popover/Popover.d.ts +3 -2
  320. package/dist/components/Popover/Popover.js +5 -3
  321. package/dist/components/Popover/Popover.js.map +1 -1
  322. package/dist/components/PromoBanner/PromoBanner.js +1 -0
  323. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  324. package/dist/components/PullToRefresh/PullToRefresh.d.ts +3 -4
  325. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  326. package/dist/components/Radio/Radio.d.ts +2 -1
  327. package/dist/components/Radio/Radio.js +14 -8
  328. package/dist/components/Radio/Radio.js.map +1 -1
  329. package/dist/components/Removable/Removable.d.ts +7 -2
  330. package/dist/components/Removable/Removable.js +4 -3
  331. package/dist/components/Removable/Removable.js.map +1 -1
  332. package/dist/components/Root/Root.js.map +1 -1
  333. package/dist/components/Search/Search.d.ts +3 -1
  334. package/dist/components/Search/Search.js +42 -57
  335. package/dist/components/Search/Search.js.map +1 -1
  336. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
  337. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +8 -4
  338. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  339. package/dist/components/SelectMimicry/SelectMimicry.js +1 -1
  340. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  341. package/dist/components/SelectTypography/SelectTypography.d.ts +2 -3
  342. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  343. package/dist/components/SimpleCell/SimpleCell.js +8 -5
  344. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  345. package/dist/components/Spacing/Spacing.d.ts +2 -2
  346. package/dist/components/Spacing/Spacing.js.map +1 -1
  347. package/dist/components/SplitCol/SplitCol.js +1 -0
  348. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  349. package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -3
  350. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  351. package/dist/components/Switch/Switch.d.ts +4 -5
  352. package/dist/components/Switch/Switch.js +12 -8
  353. package/dist/components/Switch/Switch.js.map +1 -1
  354. package/dist/components/Tabbar/Tabbar.js +2 -4
  355. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  356. package/dist/components/TabbarItem/TabbarItem.js +1 -1
  357. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  358. package/dist/components/Tappable/Tappable.d.ts +2 -3
  359. package/dist/components/Tappable/Tappable.js +1 -0
  360. package/dist/components/Tappable/Tappable.js.map +1 -1
  361. package/dist/components/Typography/Caption/Caption.d.ts +2 -2
  362. package/dist/components/Typography/Caption/Caption.js +10 -13
  363. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  364. package/dist/components/Typography/Footnote/Footnote.d.ts +2 -2
  365. package/dist/components/Typography/Footnote/Footnote.js +10 -13
  366. package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
  367. package/dist/components/Typography/Headline/Headline.d.ts +3 -4
  368. package/dist/components/Typography/Headline/Headline.js +9 -12
  369. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  370. package/dist/components/Typography/Paragraph/Paragraph.d.ts +3 -5
  371. package/dist/components/Typography/Paragraph/Paragraph.js +8 -13
  372. package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
  373. package/dist/components/Typography/Subhead/Subhead.d.ts +2 -2
  374. package/dist/components/Typography/Subhead/Subhead.js +9 -12
  375. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  376. package/dist/components/Typography/Text/Text.d.ts +3 -5
  377. package/dist/components/Typography/Text/Text.js +8 -13
  378. package/dist/components/Typography/Text/Text.js.map +1 -1
  379. package/dist/components/Typography/Title/Title.d.ts +2 -2
  380. package/dist/components/Typography/Title/Title.js +10 -13
  381. package/dist/components/Typography/Title/Title.js.map +1 -1
  382. package/dist/components/Typography/Typography.d.ts +16 -0
  383. package/dist/components/Typography/Typography.js +24 -0
  384. package/dist/components/Typography/Typography.js.map +1 -0
  385. package/dist/components/UsersStack/UsersStack.d.ts +2 -2
  386. package/dist/components/UsersStack/UsersStack.js +2 -1
  387. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  388. package/dist/components/View/View.js +1 -1
  389. package/dist/components/View/View.js.map +1 -1
  390. package/dist/components/View/ViewInfinite.js +1 -1
  391. package/dist/components/View/ViewInfinite.js.map +1 -1
  392. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
  393. package/dist/components/VisuallyHidden/VisuallyHidden.js +25 -0
  394. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
  395. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
  396. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js +9 -4
  397. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  398. package/dist/components/WriteBarIcon/WriteBarIcon.js +2 -2
  399. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  400. package/dist/components.css +138 -138
  401. package/dist/components.css.map +1 -1
  402. package/dist/components.js.tmp +3802 -3692
  403. package/dist/cssm/components/Accordion/Accordion.d.ts +2 -2
  404. package/dist/cssm/components/Accordion/Accordion.js +2 -2
  405. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  406. package/dist/cssm/components/Accordion/Accordion.module.css +13 -1
  407. package/dist/cssm/components/Accordion/AccordionSummary.d.ts +1 -1
  408. package/dist/cssm/components/Accordion/AccordionSummary.js +1 -1
  409. package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
  410. package/dist/cssm/components/ActionSheet/ActionSheet.module.css +115 -1
  411. package/dist/cssm/components/ActionSheet/types.d.ts +1 -1
  412. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  413. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +241 -1
  414. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
  415. package/dist/cssm/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +5 -2
  416. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
  417. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  418. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  419. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  420. package/dist/cssm/components/Alert/Alert.module.css +287 -1
  421. package/dist/cssm/components/AppRoot/AppRoot.module.css +23 -1
  422. package/dist/cssm/components/AppRoot/AppRootPortal.d.ts +3 -3
  423. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  424. package/dist/cssm/components/AppRoot/ScrollContext.d.ts +2 -2
  425. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  426. package/dist/cssm/components/Avatar/Avatar.module.css +55 -1
  427. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.module.css +29 -1
  428. package/dist/cssm/components/Badge/Badge.module.css +27 -1
  429. package/dist/cssm/components/Banner/Banner.module.css +167 -1
  430. package/dist/cssm/components/BaseGallery/BaseGallery.module.css +82 -1
  431. package/dist/cssm/components/Button/Button.d.ts +1 -0
  432. package/dist/cssm/components/Button/Button.js +2 -1
  433. package/dist/cssm/components/Button/Button.js.map +1 -1
  434. package/dist/cssm/components/Button/Button.module.css +676 -1
  435. package/dist/cssm/components/ButtonGroup/ButtonGroup.module.css +77 -1
  436. package/dist/cssm/components/Calendar/Calendar.module.css +30 -1
  437. package/dist/cssm/components/CalendarDay/CalendarDay.module.css +84 -1
  438. package/dist/cssm/components/CalendarDays/CalendarDays.module.css +31 -1
  439. package/dist/cssm/components/CalendarHeader/CalendarHeader.module.css +41 -1
  440. package/dist/cssm/components/CalendarRange/CalendarRange.module.css +26 -1
  441. package/dist/cssm/components/CalendarTime/CalendarTime.module.css +19 -1
  442. package/dist/cssm/components/Card/Card.js +1 -3
  443. package/dist/cssm/components/Card/Card.js.map +1 -1
  444. package/dist/cssm/components/Card/Card.module.css +131 -3
  445. package/dist/cssm/components/CardGrid/CardGrid.js +4 -4
  446. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  447. package/dist/cssm/components/CardGrid/CardGrid.module.css +59 -1
  448. package/dist/cssm/components/CardScroll/CardScroll.module.css +64 -1
  449. package/dist/cssm/components/Cell/Cell.module.css +63 -1
  450. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
  451. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +7 -5
  452. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  453. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.module.css +13 -1
  454. package/dist/cssm/components/Cell/CellDragger/CellDragger.module.css +4 -1
  455. package/dist/cssm/components/CellButton/CellButton.module.css +57 -1
  456. package/dist/cssm/components/Checkbox/Checkbox.d.ts +2 -1
  457. package/dist/cssm/components/Checkbox/Checkbox.js +10 -7
  458. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  459. package/dist/cssm/components/Checkbox/Checkbox.module.css +172 -1
  460. package/dist/cssm/components/Chip/Chip.module.css +67 -1
  461. package/dist/cssm/components/ChipsInput/ChipsInput.module.css +3 -1
  462. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +115 -1
  463. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  464. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -2
  465. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  466. package/dist/cssm/components/ChipsSelect/ChipsSelect.module.css +27 -1
  467. package/dist/cssm/components/ContentCard/ContentCard.module.css +31 -1
  468. package/dist/cssm/components/Counter/Counter.js +4 -6
  469. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  470. package/dist/cssm/components/Counter/Counter.module.css +72 -3
  471. package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +86 -1
  472. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +3 -0
  473. package/dist/cssm/components/CustomSelect/CustomSelect.js +1 -1
  474. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  475. package/dist/cssm/components/CustomSelect/CustomSelect.module.css +58 -1
  476. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.module.css +43 -1
  477. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
  478. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  479. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +81 -1
  480. package/dist/cssm/components/DateInput/DateInput.module.css +30 -1
  481. package/dist/cssm/components/DatePicker/DatePicker.module.css +30 -1
  482. package/dist/cssm/components/DateRangeInput/DateRangeInput.module.css +26 -1
  483. package/dist/cssm/components/Div/Div.module.css +4 -1
  484. package/dist/cssm/components/Epic/Epic.module.css +4 -1
  485. package/dist/cssm/components/Epic/ScrollSaver.d.ts +3 -3
  486. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  487. package/dist/cssm/components/File/File.js +4 -3
  488. package/dist/cssm/components/File/File.js.map +1 -1
  489. package/dist/cssm/components/FixedLayout/FixedLayout.js +1 -1
  490. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  491. package/dist/cssm/components/FixedLayout/FixedLayout.module.css +58 -1
  492. package/dist/cssm/components/FocusVisible/FocusVisible.d.ts +4 -2
  493. package/dist/cssm/components/FocusVisible/FocusVisible.js +4 -3
  494. package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
  495. package/dist/cssm/components/FocusVisible/FocusVisible.module.css +104 -1
  496. package/dist/cssm/components/Footer/Footer.module.css +9 -1
  497. package/dist/cssm/components/FormField/FormField.js +10 -1
  498. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  499. package/dist/cssm/components/FormField/FormField.module.css +211 -1
  500. package/dist/cssm/components/FormItem/FormItem.d.ts +3 -1
  501. package/dist/cssm/components/FormItem/FormItem.js +2 -1
  502. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  503. package/dist/cssm/components/FormItem/FormItem.module.css +104 -1
  504. package/dist/cssm/components/FormLayout/FormLayout.module.css +18 -1
  505. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
  506. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  507. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  508. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +61 -1
  509. package/dist/cssm/components/FormStatus/FormStatus.module.css +3 -1
  510. package/dist/cssm/components/Gradient/Gradient.module.css +23 -1
  511. package/dist/cssm/components/GridAvatar/GridAvatar.module.css +37 -1
  512. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +9 -1
  513. package/dist/cssm/components/Group/Group.d.ts +5 -3
  514. package/dist/cssm/components/Group/Group.js +5 -3
  515. package/dist/cssm/components/Group/Group.js.map +1 -1
  516. package/dist/cssm/components/Group/Group.module.css +166 -1
  517. package/dist/cssm/components/Header/Header.js +23 -18
  518. package/dist/cssm/components/Header/Header.js.map +1 -1
  519. package/dist/cssm/components/Header/Header.module.css +207 -1
  520. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +79 -1
  521. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
  522. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +3 -1
  523. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  524. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +59 -1
  525. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
  526. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js +5 -2
  527. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  528. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.module.css +67 -1
  529. package/dist/cssm/components/HoverPopper/HoverPopper.d.ts +1 -1
  530. package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
  531. package/dist/cssm/components/IconButton/IconButton.d.ts +3 -3
  532. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  533. package/dist/cssm/components/IconButton/IconButton.module.css +152 -1
  534. package/dist/cssm/components/Image/ImageBadge/ImageBadge.module.css +10 -1
  535. package/dist/cssm/components/ImageBase/ImageBase.module.css +131 -1
  536. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +28 -1
  537. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +36 -1
  538. package/dist/cssm/components/InfoRow/InfoRow.module.css +17 -1
  539. package/dist/cssm/components/Input/Input.module.css +101 -1
  540. package/dist/cssm/components/InputLike/InputLike.module.css +31 -1
  541. package/dist/cssm/components/Link/Link.module.css +43 -1
  542. package/dist/cssm/components/List/List.module.css +3 -1
  543. package/dist/cssm/components/LocaleProvider/LocaleProvider.d.ts +2 -2
  544. package/dist/cssm/components/LocaleProvider/LocaleProvider.js +2 -2
  545. package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
  546. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +78 -1
  547. package/dist/cssm/components/ModalCard/ModalCard.module.css +62 -1
  548. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +102 -1
  549. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.module.css +38 -1
  550. package/dist/cssm/components/ModalPage/ModalPage.d.ts +1 -1
  551. package/dist/cssm/components/ModalPage/ModalPage.js +17 -3
  552. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  553. package/dist/cssm/components/ModalPage/ModalPage.module.css +151 -1
  554. package/dist/cssm/components/ModalPage/ModalPageContext.d.ts +5 -0
  555. package/dist/cssm/components/ModalPage/ModalPageContext.js +4 -0
  556. package/dist/cssm/components/ModalPage/ModalPageContext.js.map +1 -0
  557. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +6 -1
  558. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  559. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +18 -1
  560. package/dist/cssm/components/ModalRoot/ModalRoot.d.ts +2 -27
  561. package/dist/cssm/components/ModalRoot/ModalRoot.js +12 -18
  562. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  563. package/dist/cssm/components/ModalRoot/ModalRoot.module.css +65 -1
  564. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
  565. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  566. package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
  567. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +106 -125
  568. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  569. package/dist/cssm/components/ModalRoot/types.d.ts +28 -0
  570. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  571. package/dist/cssm/components/ModalRoot/useModalManager.d.ts +6 -5
  572. package/dist/cssm/components/ModalRoot/useModalManager.js +3 -3
  573. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  574. package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +6 -2
  575. package/dist/cssm/components/NativeSelect/NativeSelect.js +4 -3
  576. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  577. package/dist/cssm/components/Pagination/Pagination.module.css +83 -1
  578. package/dist/cssm/components/Panel/Panel.js +2 -2
  579. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  580. package/dist/cssm/components/Panel/Panel.module.css +177 -1
  581. package/dist/cssm/components/PanelHeader/PanelHeader.d.ts +11 -2
  582. package/dist/cssm/components/PanelHeader/PanelHeader.js +16 -7
  583. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  584. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +321 -1
  585. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  586. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  587. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +111 -1
  588. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  589. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +96 -1
  590. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
  591. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  592. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.module.css +169 -1
  593. package/dist/cssm/components/Placeholder/Placeholder.module.css +41 -1
  594. package/dist/cssm/components/PlatformProvider/PlatformProvider.d.ts +1 -1
  595. package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
  596. package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
  597. package/dist/cssm/components/PopoutRoot/PopoutRoot.module.css +32 -1
  598. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +1 -1
  599. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  600. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.module.css +96 -1
  601. package/dist/cssm/components/Popover/Popover.d.ts +3 -2
  602. package/dist/cssm/components/Popover/Popover.js +3 -2
  603. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  604. package/dist/cssm/components/Popover/Popover.module.css +28 -1
  605. package/dist/cssm/components/Popper/Popper.module.css +16 -1
  606. package/dist/cssm/components/PopperArrow/PopperArrow.module.css +23 -1
  607. package/dist/cssm/components/Progress/Progress.module.css +12 -1
  608. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -0
  609. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  610. package/dist/cssm/components/PromoBanner/PromoBanner.module.css +39 -1
  611. package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts +3 -4
  612. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  613. package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +101 -1
  614. package/dist/cssm/components/Radio/Radio.d.ts +2 -1
  615. package/dist/cssm/components/Radio/Radio.js +11 -7
  616. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  617. package/dist/cssm/components/Radio/Radio.module.css +140 -1
  618. package/dist/cssm/components/RadioGroup/RadioGroup.module.css +13 -1
  619. package/dist/cssm/components/Removable/Removable.d.ts +7 -2
  620. package/dist/cssm/components/Removable/Removable.js +2 -2
  621. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  622. package/dist/cssm/components/Removable/Removable.module.css +153 -1
  623. package/dist/cssm/components/RichCell/RichCell.module.css +144 -1
  624. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.module.css +11 -1
  625. package/dist/cssm/components/RichTooltip/RichTooltip.module.css +57 -1
  626. package/dist/cssm/components/Root/Root.js +4 -4
  627. package/dist/cssm/components/Root/Root.js.map +1 -1
  628. package/dist/cssm/components/Root/Root.module.css +136 -1
  629. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +66 -1
  630. package/dist/cssm/components/Search/Search.d.ts +3 -1
  631. package/dist/cssm/components/Search/Search.js +38 -54
  632. package/dist/cssm/components/Search/Search.js.map +1 -1
  633. package/dist/cssm/components/Search/Search.module.css +156 -1
  634. package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +64 -1
  635. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
  636. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +7 -4
  637. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  638. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +52 -1
  639. package/dist/cssm/components/Select/Select.module.css +87 -1
  640. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -1
  641. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  642. package/dist/cssm/components/SelectTypography/SelectTypography.d.ts +2 -3
  643. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  644. package/dist/cssm/components/SelectTypography/SelectTypography.module.css +30 -1
  645. package/dist/cssm/components/Separator/Separator.module.css +48 -1
  646. package/dist/cssm/components/SimpleCell/SimpleCell.js +8 -5
  647. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  648. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +223 -1
  649. package/dist/cssm/components/Slider/Slider.module.css +134 -1
  650. package/dist/cssm/components/Snackbar/Snackbar.module.css +165 -1
  651. package/dist/cssm/components/Spacing/Spacing.d.ts +2 -2
  652. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  653. package/dist/cssm/components/Spacing/Spacing.module.css +4 -1
  654. package/dist/cssm/components/Spinner/Spinner.module.css +36 -1
  655. package/dist/cssm/components/SplitCol/SplitCol.js +1 -0
  656. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  657. package/dist/cssm/components/SplitCol/SplitCol.module.css +51 -1
  658. package/dist/cssm/components/SplitLayout/SplitLayout.module.css +29 -1
  659. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.module.css +16 -1
  660. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -3
  661. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  662. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.module.css +166 -1
  663. package/dist/cssm/components/Switch/Switch.d.ts +4 -5
  664. package/dist/cssm/components/Switch/Switch.js +11 -8
  665. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  666. package/dist/cssm/components/Switch/Switch.module.css +200 -1
  667. package/dist/cssm/components/Tabbar/Tabbar.js +2 -4
  668. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  669. package/dist/cssm/components/Tabbar/Tabbar.module.css +34 -1
  670. package/dist/cssm/components/TabbarItem/TabbarItem.js +1 -1
  671. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  672. package/dist/cssm/components/TabbarItem/TabbarItem.module.css +118 -1
  673. package/dist/cssm/components/Tabs/Tabs.module.css +62 -1
  674. package/dist/cssm/components/TabsItem/TabsItem.module.css +229 -1
  675. package/dist/cssm/components/Tappable/Tappable.d.ts +2 -3
  676. package/dist/cssm/components/Tappable/Tappable.js +1 -0
  677. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  678. package/dist/cssm/components/Tappable/Tappable.module.css +142 -1
  679. package/dist/cssm/components/TextTooltip/TextTooltip.module.css +58 -1
  680. package/dist/cssm/components/Textarea/Textarea.module.css +87 -1
  681. package/dist/cssm/components/Tooltip/Tooltip.module.css +57 -1
  682. package/dist/cssm/components/Typography/Caption/Caption.d.ts +2 -2
  683. package/dist/cssm/components/Typography/Caption/Caption.js +9 -10
  684. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  685. package/dist/cssm/components/Typography/Caption/Caption.module.css +45 -1
  686. package/dist/cssm/components/Typography/Footnote/Footnote.d.ts +2 -2
  687. package/dist/cssm/components/Typography/Footnote/Footnote.js +7 -10
  688. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  689. package/dist/cssm/components/Typography/Footnote/Footnote.module.css +14 -1
  690. package/dist/cssm/components/Typography/Headline/Headline.d.ts +3 -4
  691. package/dist/cssm/components/Typography/Headline/Headline.js +9 -10
  692. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  693. package/dist/cssm/components/Typography/Headline/Headline.module.css +48 -1
  694. package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts +3 -5
  695. package/dist/cssm/components/Typography/Paragraph/Paragraph.js +8 -10
  696. package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
  697. package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +6 -1
  698. package/dist/cssm/components/Typography/Subhead/Subhead.d.ts +2 -2
  699. package/dist/cssm/components/Typography/Subhead/Subhead.js +8 -9
  700. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  701. package/dist/cssm/components/Typography/Subhead/Subhead.module.css +18 -1
  702. package/dist/cssm/components/Typography/Text/Text.d.ts +3 -5
  703. package/dist/cssm/components/Typography/Text/Text.js +8 -10
  704. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  705. package/dist/cssm/components/Typography/Text/Text.module.css +29 -1
  706. package/dist/cssm/components/Typography/Title/Title.d.ts +2 -2
  707. package/dist/cssm/components/Typography/Title/Title.js +9 -10
  708. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  709. package/dist/cssm/components/Typography/Title/Title.module.css +20 -1
  710. package/dist/cssm/components/Typography/Typography.d.ts +16 -0
  711. package/dist/cssm/components/Typography/Typography.js +14 -0
  712. package/dist/cssm/components/Typography/Typography.js.map +1 -0
  713. package/dist/cssm/components/Typography/Typography.module.css +18 -0
  714. package/dist/cssm/components/UsersStack/UsersStack.d.ts +2 -2
  715. package/dist/cssm/components/UsersStack/UsersStack.js +2 -1
  716. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  717. package/dist/cssm/components/UsersStack/UsersStack.module.css +77 -1
  718. package/dist/cssm/components/View/View.js +6 -7
  719. package/dist/cssm/components/View/View.js.map +1 -1
  720. package/dist/cssm/components/View/View.module.css +228 -1
  721. package/dist/cssm/components/View/ViewInfinite.js +6 -7
  722. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  723. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
  724. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +19 -0
  725. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
  726. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +10 -0
  727. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
  728. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +9 -4
  729. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  730. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.module.css +10 -1
  731. package/dist/cssm/components/WriteBar/WriteBar.module.css +119 -1
  732. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +2 -2
  733. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  734. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +66 -1
  735. package/dist/cssm/helpers/getPlatformClassName.js +1 -1
  736. package/dist/cssm/helpers/getPlatformClassName.js.map +1 -1
  737. package/dist/cssm/hooks/useFocusWithin.d.ts +2 -0
  738. package/dist/cssm/hooks/useFocusWithin.js +26 -0
  739. package/dist/cssm/hooks/useFocusWithin.js.map +1 -0
  740. package/dist/cssm/hooks/useId.js +1 -1
  741. package/dist/cssm/hooks/useId.js.map +1 -1
  742. package/dist/cssm/hooks/useWaitTransitionFinish.d.ts +1 -1
  743. package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
  744. package/dist/cssm/index.d.ts +4 -2
  745. package/dist/cssm/index.js +2 -1
  746. package/dist/cssm/index.js.map +1 -1
  747. package/dist/cssm/lib/utils.js +2 -2
  748. package/dist/cssm/lib/utils.js.map +1 -1
  749. package/dist/cssm/styles/adaptivity.module.css +87 -1
  750. package/dist/cssm/styles/common.css +36 -1
  751. package/dist/cssm/styles/constants.css +86 -1
  752. package/dist/cssm/styles/themes.css +1039 -1
  753. package/dist/helpers/getPlatformClassName.js +1 -1
  754. package/dist/helpers/getPlatformClassName.js.map +1 -1
  755. package/dist/hooks/useFocusWithin.d.ts +2 -0
  756. package/dist/hooks/useFocusWithin.js +27 -0
  757. package/dist/hooks/useFocusWithin.js.map +1 -0
  758. package/dist/hooks/useId.js +1 -1
  759. package/dist/hooks/useId.js.map +1 -1
  760. package/dist/hooks/useWaitTransitionFinish.d.ts +1 -1
  761. package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
  762. package/dist/index.d.ts +4 -2
  763. package/dist/index.js +2 -0
  764. package/dist/index.js.map +1 -1
  765. package/dist/lib/utils.js +2 -2
  766. package/dist/lib/utils.js.map +1 -1
  767. package/dist/vkui.css +139 -139
  768. package/dist/vkui.css.map +1 -1
  769. package/dist/vkui.js.tmp +3802 -3692
  770. package/package.json +24 -17
  771. package/dist/cjs/components/Typography/types.d.ts +0 -11
  772. package/dist/cjs/components/Typography/types.js.map +0 -1
  773. package/dist/cjs/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
  774. package/dist/cjs/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
  775. package/dist/components/Typography/types.d.ts +0 -11
  776. package/dist/components/Typography/types.js +0 -3
  777. package/dist/components/Typography/types.js.map +0 -1
  778. package/dist/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
  779. package/dist/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
  780. package/dist/cssm/components/Typography/types.d.ts +0 -11
  781. package/dist/cssm/components/Typography/types.js +0 -3
  782. package/dist/cssm/components/Typography/types.js.map +0 -1
  783. package/dist/cssm/components/View/ViewIOS.module.css +0 -1
  784. package/dist/cssm/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
  785. package/dist/cssm/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
  786. package/dist/cssm/styles/animations.css +0 -1
@@ -25,14 +25,14 @@ var _platform = require("../../lib/platform");
25
25
  var _warnOnce = require("../../lib/warnOnce");
26
26
  var _tappable = require("../Tappable/Tappable");
27
27
  var _footnote = require("../Typography/Footnote/Footnote");
28
- var _visuallyHiddenInput = require("../VisuallyHiddenInput/VisuallyHiddenInput");
28
+ var _visuallyHidden = require("../VisuallyHidden/VisuallyHidden");
29
29
  var _obj;
30
30
  var sizeYClassNames = (_obj = {
31
31
  none: "vkuiCheckbox--sizeY-none"
32
32
  }, _defineProperty(_obj, _adaptivity.SizeType.COMPACT, "vkuiCheckbox--sizeY-compact"), _defineProperty(_obj, _adaptivity.SizeType.REGULAR, "vkuiCheckbox--sizeY-regular"), _obj);
33
33
  var warn = (0, _warnOnce.warnOnce)("Checkbox");
34
34
  var Checkbox = function(_param) {
35
- var children = _param.children, className = _param.className, style = _param.style, getRootRef = _param.getRootRef, getRef = _param.getRef, description = _param.description, indeterminate = _param.indeterminate, defaultIndeterminate = _param.defaultIndeterminate, hoverMode = _param.hoverMode, activeMode = _param.activeMode, hasHover = _param.hasHover, hasActive = _param.hasActive, focusVisibleMode = _param.focusVisibleMode, onChange = _param.onChange, restProps = _objectWithoutProperties(_param, [
35
+ var children = _param.children, className = _param.className, style = _param.style, getRootRef = _param.getRootRef, getRef = _param.getRef, description = _param.description, indeterminate = _param.indeterminate, defaultIndeterminate = _param.defaultIndeterminate, hoverMode = _param.hoverMode, activeMode = _param.activeMode, hasHover = _param.hasHover, hasActive = _param.hasActive, focusVisibleMode = _param.focusVisibleMode, onChange = _param.onChange, titleAfter = _param.titleAfter, restProps = _objectWithoutProperties(_param, [
36
36
  "children",
37
37
  "className",
38
38
  "style",
@@ -46,7 +46,8 @@ var Checkbox = function(_param) {
46
46
  "hasHover",
47
47
  "hasActive",
48
48
  "focusVisibleMode",
49
- "onChange"
49
+ "onChange",
50
+ "titleAfter"
50
51
  ]);
51
52
  var inputRef = (0, _useExternRef.useExternRef)(getRef);
52
53
  var platform = (0, _usePlatform.usePlatform)();
@@ -100,11 +101,12 @@ var Checkbox = function(_param) {
100
101
  hasHover: hasHover,
101
102
  hasActive: hasActive,
102
103
  focusVisibleMode: focusVisibleMode
103
- }, /*#__PURE__*/ _react.createElement(_visuallyHiddenInput.VisuallyHiddenInput, _objectSpreadProps(_objectSpread({}, restProps), {
104
- onChange: handleChange,
104
+ }, /*#__PURE__*/ _react.createElement(_visuallyHidden.VisuallyHidden, _objectSpreadProps(_objectSpread({}, restProps), {
105
+ Component: "input",
105
106
  type: "checkbox",
107
+ onChange: handleChange,
106
108
  className: "vkuiCheckbox__input",
107
- getRef: inputRef
109
+ getRootRef: inputRef
108
110
  })), /*#__PURE__*/ _react.createElement("div", {
109
111
  className: (0, _vkjs.classNames)("vkuiCheckbox__icon", "vkuiCheckbox__icon--on")
110
112
  }, platform === _platform.Platform.VKCOM ? /*#__PURE__*/ _react.createElement(_icons.Icon20CheckBoxOn, null) : /*#__PURE__*/ _react.createElement(_react.Fragment, null, adaptiveSizeY.compact && /*#__PURE__*/ _react.createElement(_icons.Icon20CheckBoxOn, {
@@ -133,8 +135,10 @@ var Checkbox = function(_param) {
133
135
  }))), /*#__PURE__*/ _react.createElement("div", {
134
136
  className: "vkuiCheckbox__content"
135
137
  }, /*#__PURE__*/ _react.createElement("div", {
136
- className: "vkuiCheckbox__children"
137
- }, children), (0, _vkjs.hasReactNode)(description) && /*#__PURE__*/ _react.createElement(_footnote.Footnote, {
138
+ className: "vkuiCheckbox__title"
139
+ }, /*#__PURE__*/ _react.createElement("span", null, children), /*#__PURE__*/ _react.createElement("div", {
140
+ className: "vkuiCheckbox__titleAfter"
141
+ }, titleAfter)), (0, _vkjs.hasReactNode)(description) && /*#__PURE__*/ _react.createElement(_footnote.Footnote, {
138
142
  className: "vkuiCheckbox__description"
139
143
  }, description)));
140
144
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon20CheckBoxIndetermanate,\n Icon20CheckBoxOff,\n Icon20CheckBoxOn,\n Icon24CheckBoxOff,\n Icon24CheckBoxOn,\n} from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasRef, HasRootRef } from '../../types';\nimport { ACTIVE_EFFECT_DELAY, Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { VisuallyHiddenInput } from '../VisuallyHiddenInput/VisuallyHiddenInput';\nimport styles from './Checkbox.module.css';\n\nconst sizeYClassNames = {\n none: styles['Checkbox--sizeY-none'],\n [SizeType.COMPACT]: styles['Checkbox--sizeY-compact'],\n [SizeType.REGULAR]: styles['Checkbox--sizeY-regular'],\n};\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n HasRef<HTMLInputElement>,\n Pick<\n TappableProps,\n 'hoverMode' | 'activeMode' | 'hasHover' | 'hasActive' | 'focusVisibleMode'\n > {\n description?: React.ReactNode;\n indeterminate?: boolean;\n defaultIndeterminate?: boolean;\n}\n\nconst warn = warnOnce('Checkbox');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Checkbox\n */\nexport const Checkbox = ({\n children,\n className,\n style,\n getRootRef,\n getRef,\n description,\n indeterminate,\n defaultIndeterminate,\n hoverMode,\n activeMode,\n hasHover,\n hasActive,\n focusVisibleMode,\n onChange,\n ...restProps\n}: CheckboxProps) => {\n const inputRef = useExternRef(getRef);\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n const { sizeY: adaptiveSizeY } = useAdaptivityConditionalRender();\n\n React.useEffect(() => {\n const indeterminateValue = indeterminate === undefined ? defaultIndeterminate : indeterminate;\n\n if (inputRef.current) {\n inputRef.current.indeterminate = Boolean(indeterminateValue);\n }\n }, [defaultIndeterminate, indeterminate, inputRef]);\n\n const handleChange: CheckboxProps['onChange'] = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (\n defaultIndeterminate !== undefined &&\n indeterminate === undefined &&\n restProps.checked === undefined &&\n inputRef.current\n ) {\n inputRef.current.indeterminate = false;\n }\n if (indeterminate !== undefined && inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n onChange && onChange(event);\n },\n [defaultIndeterminate, indeterminate, restProps.checked, onChange, inputRef],\n );\n\n if (process.env.NODE_ENV === 'development') {\n if (defaultIndeterminate && restProps.defaultChecked) {\n warn('defaultIndeterminate и defaultChecked не могут быть true одновременно', 'error');\n }\n\n if (indeterminate && restProps.checked) {\n warn('indeterminate и checked не могут быть true одновременно', 'error');\n }\n\n if (restProps.defaultChecked && restProps.checked) {\n warn('defaultChecked и checked не могут быть true одновременно', 'error');\n }\n }\n\n return (\n <Tappable\n Component=\"label\"\n className={classNames(\n styles['Checkbox'],\n platform === Platform.VKCOM && styles['Checkbox--vkcom'],\n sizeYClassNames[sizeY],\n !(hasReactNode(children) || hasReactNode(description)) && styles['Checkbox--simple'],\n className,\n )}\n style={style}\n disabled={restProps.disabled}\n activeEffectDelay={platform === Platform.IOS ? 100 : ACTIVE_EFFECT_DELAY}\n getRootRef={getRootRef}\n hoverMode={hoverMode}\n activeMode={activeMode}\n hasHover={hasHover}\n hasActive={hasActive}\n focusVisibleMode={focusVisibleMode}\n >\n <VisuallyHiddenInput\n {...restProps}\n onChange={handleChange}\n type=\"checkbox\"\n className={styles['Checkbox__input']}\n getRef={inputRef}\n />\n <div className={classNames(styles['Checkbox__icon'], styles['Checkbox__icon--on'])}>\n {platform === Platform.VKCOM ? (\n <Icon20CheckBoxOn />\n ) : (\n <React.Fragment>\n {adaptiveSizeY.compact && (\n <Icon20CheckBoxOn className={adaptiveSizeY.compact.className} />\n )}\n {adaptiveSizeY.regular && (\n <Icon24CheckBoxOn className={adaptiveSizeY.regular.className} />\n )}\n </React.Fragment>\n )}\n </div>\n <div className={classNames(styles['Checkbox__icon'], styles['Checkbox__icon--off'])}>\n {platform === Platform.VKCOM ? (\n <Icon20CheckBoxOff />\n ) : (\n <React.Fragment>\n {adaptiveSizeY.compact && (\n <Icon20CheckBoxOff className={adaptiveSizeY.compact.className} />\n )}\n {adaptiveSizeY.regular && (\n <Icon24CheckBoxOff className={adaptiveSizeY.regular.className} />\n )}\n </React.Fragment>\n )}\n </div>\n <div\n className={classNames(styles['Checkbox__icon'], styles['Checkbox__icon--indeterminate'])}\n >\n {platform === Platform.VKCOM ? (\n <Icon20CheckBoxIndetermanate width={20} height={20} />\n ) : (\n <React.Fragment>\n {adaptiveSizeY.compact && (\n <Icon20CheckBoxIndetermanate\n className={adaptiveSizeY.compact.className}\n width={20}\n height={20}\n />\n )}\n {adaptiveSizeY.regular && (\n <Icon20CheckBoxIndetermanate\n className={adaptiveSizeY.regular.className}\n width={24}\n height={24}\n />\n )}\n </React.Fragment>\n )}\n </div>\n <div className={styles['Checkbox__content']}>\n <div className={styles['Checkbox__children']}>{children}</div>\n {hasReactNode(description) && (\n <Footnote className={styles['Checkbox__description']}>{description}</Footnote>\n )}\n </div>\n </Tappable>\n );\n};\n"],"names":["Checkbox","sizeYClassNames","none","SizeType","COMPACT","REGULAR","warn","warnOnce","children","className","style","getRootRef","getRef","description","indeterminate","defaultIndeterminate","hoverMode","activeMode","hasHover","hasActive","focusVisibleMode","onChange","restProps","inputRef","useExternRef","platform","usePlatform","useAdaptivity","sizeY","useAdaptivityConditionalRender","adaptiveSizeY","React","useEffect","indeterminateValue","undefined","current","Boolean","handleChange","useCallback","event","checked","process","env","NODE_ENV","defaultChecked","Tappable","Component","classNames","Platform","VKCOM","hasReactNode","disabled","activeEffectDelay","IOS","ACTIVE_EFFECT_DELAY","VisuallyHiddenInput","type","div","Icon20CheckBoxOn","Fragment","compact","regular","Icon24CheckBoxOn","Icon20CheckBoxOff","Icon24CheckBoxOff","Icon20CheckBoxIndetermanate","width","height","Footnote"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon20CheckBoxIndetermanate,\n Icon20CheckBoxOff,\n Icon20CheckBoxOn,\n Icon24CheckBoxOff,\n Icon24CheckBoxOn,\n} from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasRef, HasRootRef } from '../../types';\nimport { ACTIVE_EFFECT_DELAY, Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Checkbox.module.css';\n\nconst sizeYClassNames = {\n none: styles['Checkbox--sizeY-none'],\n [SizeType.COMPACT]: styles['Checkbox--sizeY-compact'],\n [SizeType.REGULAR]: styles['Checkbox--sizeY-regular'],\n};\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n HasRef<HTMLInputElement>,\n Pick<\n TappableProps,\n 'hoverMode' | 'activeMode' | 'hasHover' | 'hasActive' | 'focusVisibleMode'\n > {\n description?: React.ReactNode;\n indeterminate?: boolean;\n defaultIndeterminate?: boolean;\n titleAfter?: React.ReactNode;\n}\n\nconst warn = warnOnce('Checkbox');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Checkbox\n */\nexport const Checkbox = ({\n children,\n className,\n style,\n getRootRef,\n getRef,\n description,\n indeterminate,\n defaultIndeterminate,\n hoverMode,\n activeMode,\n hasHover,\n hasActive,\n focusVisibleMode,\n onChange,\n titleAfter,\n ...restProps\n}: CheckboxProps) => {\n const inputRef = useExternRef(getRef);\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n const { sizeY: adaptiveSizeY } = useAdaptivityConditionalRender();\n\n React.useEffect(() => {\n const indeterminateValue = indeterminate === undefined ? defaultIndeterminate : indeterminate;\n\n if (inputRef.current) {\n inputRef.current.indeterminate = Boolean(indeterminateValue);\n }\n }, [defaultIndeterminate, indeterminate, inputRef]);\n\n const handleChange: CheckboxProps['onChange'] = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (\n defaultIndeterminate !== undefined &&\n indeterminate === undefined &&\n restProps.checked === undefined &&\n inputRef.current\n ) {\n inputRef.current.indeterminate = false;\n }\n if (indeterminate !== undefined && inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n onChange && onChange(event);\n },\n [defaultIndeterminate, indeterminate, restProps.checked, onChange, inputRef],\n );\n\n if (process.env.NODE_ENV === 'development') {\n if (defaultIndeterminate && restProps.defaultChecked) {\n warn('defaultIndeterminate и defaultChecked не могут быть true одновременно', 'error');\n }\n\n if (indeterminate && restProps.checked) {\n warn('indeterminate и checked не могут быть true одновременно', 'error');\n }\n\n if (restProps.defaultChecked && restProps.checked) {\n warn('defaultChecked и checked не могут быть true одновременно', 'error');\n }\n }\n\n return (\n <Tappable\n Component=\"label\"\n className={classNames(\n styles['Checkbox'],\n platform === Platform.VKCOM && styles['Checkbox--vkcom'],\n sizeYClassNames[sizeY],\n !(hasReactNode(children) || hasReactNode(description)) && styles['Checkbox--simple'],\n className,\n )}\n style={style}\n disabled={restProps.disabled}\n activeEffectDelay={platform === Platform.IOS ? 100 : ACTIVE_EFFECT_DELAY}\n getRootRef={getRootRef}\n hoverMode={hoverMode}\n activeMode={activeMode}\n hasHover={hasHover}\n hasActive={hasActive}\n focusVisibleMode={focusVisibleMode}\n >\n <VisuallyHidden\n {...restProps}\n Component=\"input\"\n type=\"checkbox\"\n onChange={handleChange}\n className={styles['Checkbox__input']}\n getRootRef={inputRef}\n />\n <div className={classNames(styles['Checkbox__icon'], styles['Checkbox__icon--on'])}>\n {platform === Platform.VKCOM ? (\n <Icon20CheckBoxOn />\n ) : (\n <React.Fragment>\n {adaptiveSizeY.compact && (\n <Icon20CheckBoxOn className={adaptiveSizeY.compact.className} />\n )}\n {adaptiveSizeY.regular && (\n <Icon24CheckBoxOn className={adaptiveSizeY.regular.className} />\n )}\n </React.Fragment>\n )}\n </div>\n <div className={classNames(styles['Checkbox__icon'], styles['Checkbox__icon--off'])}>\n {platform === Platform.VKCOM ? (\n <Icon20CheckBoxOff />\n ) : (\n <React.Fragment>\n {adaptiveSizeY.compact && (\n <Icon20CheckBoxOff className={adaptiveSizeY.compact.className} />\n )}\n {adaptiveSizeY.regular && (\n <Icon24CheckBoxOff className={adaptiveSizeY.regular.className} />\n )}\n </React.Fragment>\n )}\n </div>\n <div\n className={classNames(styles['Checkbox__icon'], styles['Checkbox__icon--indeterminate'])}\n >\n {platform === Platform.VKCOM ? (\n <Icon20CheckBoxIndetermanate width={20} height={20} />\n ) : (\n <React.Fragment>\n {adaptiveSizeY.compact && (\n <Icon20CheckBoxIndetermanate\n className={adaptiveSizeY.compact.className}\n width={20}\n height={20}\n />\n )}\n {adaptiveSizeY.regular && (\n <Icon20CheckBoxIndetermanate\n className={adaptiveSizeY.regular.className}\n width={24}\n height={24}\n />\n )}\n </React.Fragment>\n )}\n </div>\n <div className={styles['Checkbox__content']}>\n <div className={styles['Checkbox__title']}>\n <span>{children}</span>\n <div className={styles['Checkbox__titleAfter']}>{titleAfter}</div>\n </div>\n {hasReactNode(description) && (\n <Footnote className={styles['Checkbox__description']}>{description}</Footnote>\n )}\n </div>\n </Tappable>\n );\n};\n"],"names":["Checkbox","sizeYClassNames","none","SizeType","COMPACT","REGULAR","warn","warnOnce","children","className","style","getRootRef","getRef","description","indeterminate","defaultIndeterminate","hoverMode","activeMode","hasHover","hasActive","focusVisibleMode","onChange","titleAfter","restProps","inputRef","useExternRef","platform","usePlatform","useAdaptivity","sizeY","useAdaptivityConditionalRender","adaptiveSizeY","React","useEffect","indeterminateValue","undefined","current","Boolean","handleChange","useCallback","event","checked","process","env","NODE_ENV","defaultChecked","Tappable","Component","classNames","Platform","VKCOM","hasReactNode","disabled","activeEffectDelay","IOS","ACTIVE_EFFECT_DELAY","VisuallyHidden","type","div","Icon20CheckBoxOn","Fragment","compact","regular","Icon24CheckBoxOn","Icon20CheckBoxOff","Icon24CheckBoxOff","Icon20CheckBoxIndetermanate","width","height","span","Footnote"],"mappings":"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"}
@@ -37,6 +37,10 @@ export interface ChipsSelectProps<Option extends ChipOption> extends Omit<ChipsI
37
37
  closeAfterSelect?: boolean;
38
38
  fixDropdownWidth?: boolean;
39
39
  forceDropdownPortal?: boolean;
40
+ /**
41
+ * Иконка раскрывающегося списка
42
+ */
43
+ icon?: React.ReactNode;
40
44
  }
41
45
  /**
42
46
  * @see https://vkcom.github.io/VKUI/#/ChipsSelect
@@ -46,7 +46,7 @@ var chipsSelectDefaultProps = _objectSpreadProps(_objectSpread({}, _chipsInputBa
46
46
  });
47
47
  var ChipsSelect = function(props) {
48
48
  var propsWithDefault = _objectSpread({}, chipsSelectDefaultProps, props);
49
- var style = propsWithDefault.style, onFocus = propsWithDefault.onFocus, onKeyDown = propsWithDefault.onKeyDown, className = propsWithDefault.className, fetching = propsWithDefault.fetching, renderOption = propsWithDefault.renderOption, emptyText = propsWithDefault.emptyText, getRef = propsWithDefault.getRef, getRootRef = propsWithDefault.getRootRef, disabled = propsWithDefault.disabled, placeholder = propsWithDefault.placeholder, tabIndex = propsWithDefault.tabIndex, getOptionValue = propsWithDefault.getOptionValue, getOptionLabel = propsWithDefault.getOptionLabel, showSelected = propsWithDefault.showSelected, getNewOptionData = propsWithDefault.getNewOptionData, renderChip = propsWithDefault.renderChip, popupDirection = propsWithDefault.popupDirection, creatable = propsWithDefault.creatable, filterFn = propsWithDefault.filterFn, inputValue = propsWithDefault.inputValue, creatableText = propsWithDefault.creatableText, closeAfterSelect = propsWithDefault.closeAfterSelect, onChangeStart = propsWithDefault.onChangeStart, before = propsWithDefault.before, options = propsWithDefault.options, fixDropdownWidth = propsWithDefault.fixDropdownWidth, forceDropdownPortal = propsWithDefault.forceDropdownPortal, restProps = _objectWithoutProperties(propsWithDefault, [
49
+ var style = propsWithDefault.style, onFocus = propsWithDefault.onFocus, onKeyDown = propsWithDefault.onKeyDown, className = propsWithDefault.className, fetching = propsWithDefault.fetching, renderOption = propsWithDefault.renderOption, emptyText = propsWithDefault.emptyText, getRef = propsWithDefault.getRef, getRootRef = propsWithDefault.getRootRef, disabled = propsWithDefault.disabled, placeholder = propsWithDefault.placeholder, tabIndex = propsWithDefault.tabIndex, getOptionValue = propsWithDefault.getOptionValue, getOptionLabel = propsWithDefault.getOptionLabel, showSelected = propsWithDefault.showSelected, getNewOptionData = propsWithDefault.getNewOptionData, renderChip = propsWithDefault.renderChip, popupDirection = propsWithDefault.popupDirection, creatable = propsWithDefault.creatable, filterFn = propsWithDefault.filterFn, inputValue = propsWithDefault.inputValue, creatableText = propsWithDefault.creatableText, closeAfterSelect = propsWithDefault.closeAfterSelect, onChangeStart = propsWithDefault.onChangeStart, before = propsWithDefault.before, icon = propsWithDefault.icon, options = propsWithDefault.options, fixDropdownWidth = propsWithDefault.fixDropdownWidth, forceDropdownPortal = propsWithDefault.forceDropdownPortal, restProps = _objectWithoutProperties(propsWithDefault, [
50
50
  "style",
51
51
  "onFocus",
52
52
  "onKeyDown",
@@ -72,6 +72,7 @@ var ChipsSelect = function(props) {
72
72
  "closeAfterSelect",
73
73
  "onChangeStart",
74
74
  "before",
75
+ "icon",
75
76
  "options",
76
77
  "fixDropdownWidth",
77
78
  "forceDropdownPortal"
@@ -251,7 +252,7 @@ var ChipsSelect = function(props) {
251
252
  // TODO: add label customization
252
253
  "aria-label": opened ? "Скрыть" : "Развернуть",
253
254
  onClick: toggleOpened
254
- }, /*#__PURE__*/ _react.createElement(_dropdownIcon.DropdownIcon, {
255
+ }, icon !== null && icon !== void 0 ? icon : /*#__PURE__*/ _react.createElement(_dropdownIcon.DropdownIcon, {
255
256
  className: "vkuiChipsSelect__icon",
256
257
  opened: opened
257
258
  })),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ChipsSelect/ChipsSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useChipsSelect } from '../../hooks/useChipsSelect';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { useDOM } from '../../lib/dom';\nimport type { Placement } from '../../lib/floating';\nimport { defaultFilterFn } from '../../lib/select';\nimport { ChipOption, ChipValue, RenderChip } from '../Chip/Chip';\nimport { ChipsInputProps } from '../ChipsInput/ChipsInput';\nimport { ChipsInputBase, chipsInputDefaultProps } from '../ChipsInputBase/ChipsInputBase';\nimport { CustomSelectDropdown } from '../CustomSelectDropdown/CustomSelectDropdown';\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from '../CustomSelectOption/CustomSelectOption';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormField } from '../FormField/FormField';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './ChipsSelect.module.css';\n\nexport interface ChipsSelectProps<Option extends ChipOption>\n extends Omit<ChipsInputProps<Option>, 'after'> {\n popupDirection?: 'top' | 'bottom';\n options?: Option[];\n filterFn?:\n | false\n | ((\n value?: string,\n option?: Option,\n getOptionLabel?: Pick<ChipsInputProps<Option>, 'getOptionLabel'>['getOptionLabel'],\n ) => boolean);\n /**\n * Возможность создавать чипы которых нет в списке (по enter или с помощью пункта в меню, см creatableText)\n */\n creatable?: boolean;\n /**\n * Отрисовка лоадера вместо списка опций в выпадающем списке\n */\n fetching?: boolean;\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Показывать или скрывать уже выбранные опции\n */\n showSelected?: boolean;\n /**\n * Текст для пункта создающего чипы при клике, так же отвечает за то будет ли показан этот пункт (показывается после того как в списке не отсанется опций)\n */\n creatableText?: string;\n /**\n * Текст который показывается если список опций пуст\n */\n emptyText?: string;\n /**\n * Событие срабатывающее перед onChange\n */\n onChangeStart?: (e: React.MouseEvent | React.KeyboardEvent, option: Option) => void;\n /**\n * Закрытие выпадающего списка после выбора элемента\n */\n closeAfterSelect?: boolean;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n}\n\ntype FocusActionType = 'next' | 'prev';\n\nconst FOCUS_ACTION_NEXT: FocusActionType = 'next';\nconst FOCUS_ACTION_PREV: FocusActionType = 'prev';\n\nconst chipsSelectDefaultProps: ChipsSelectProps<any> = {\n ...chipsInputDefaultProps,\n emptyText: 'Ничего не найдено',\n creatableText: 'Создать значение',\n onChangeStart: noop,\n creatable: false,\n fetching: false,\n showSelected: true,\n closeAfterSelect: true,\n options: [],\n filterFn: defaultFilterFn,\n renderOption(props) {\n return <CustomSelectOption {...props} />;\n },\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ChipsSelect\n */\nexport const ChipsSelect = <Option extends ChipOption>(props: ChipsSelectProps<Option>) => {\n const propsWithDefault = { ...chipsSelectDefaultProps, ...props };\n const {\n style,\n onFocus,\n onKeyDown,\n className,\n fetching,\n renderOption,\n emptyText,\n getRef,\n getRootRef,\n disabled,\n placeholder,\n tabIndex,\n getOptionValue,\n getOptionLabel,\n showSelected,\n getNewOptionData,\n renderChip,\n popupDirection,\n creatable,\n filterFn,\n inputValue,\n creatableText,\n closeAfterSelect,\n onChangeStart,\n before,\n options,\n fixDropdownWidth,\n forceDropdownPortal,\n ...restProps\n } = propsWithDefault;\n\n const { document } = useDOM();\n\n const [popperPlacement, setPopperPlacement] = React.useState<Placement | undefined>(undefined);\n\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const rootRef = useExternRef(getRef);\n const {\n fieldValue,\n selectedOptions = [],\n opened,\n setOpened,\n addOptionFromInput,\n filteredOptions,\n addOption,\n handleInputChange,\n clearInput,\n focusedOption,\n setFocusedOption,\n focusedOptionIndex,\n setFocusedOptionIndex,\n } = useChipsSelect(propsWithDefault);\n\n const showCreatable = Boolean(\n creatable && creatableText && !filteredOptions.length && fieldValue,\n );\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setOpened(true);\n setFocusedOptionIndex(0);\n onFocus!(e);\n };\n\n const handleClickOutside = (e: MouseEvent) => {\n if (e.target !== rootRef.current && !rootRef.current?.contains(e.target as Node)) {\n setOpened(false);\n }\n };\n\n const chipsSelectOptions = React.useRef<HTMLElement[]>([]).current;\n\n const scrollToElement = (index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = chipsSelectOptions[index];\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n };\n\n const focusOptionByIndex = (index: number, oldIndex: number) => {\n const { length } = filteredOptions;\n\n if (index < 0) {\n index = length - 1;\n } else if (index >= length) {\n index = 0;\n }\n\n if (index === oldIndex) {\n return;\n }\n\n scrollToElement(index);\n setFocusedOptionIndex(index);\n };\n\n const focusOption = (nextIndex: number | null, type: FocusActionType) => {\n let index = typeof nextIndex !== 'number' ? -1 : nextIndex;\n\n if (type === FOCUS_ACTION_NEXT) {\n index = index + 1;\n } else if (type === FOCUS_ACTION_PREV) {\n index = index - 1;\n }\n\n if (focusedOptionIndex != null) {\n focusOptionByIndex(index, focusedOptionIndex);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown!(e);\n\n if (e.key === 'ArrowUp' && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_PREV);\n }\n }\n\n if (e.key === 'ArrowDown' && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_NEXT);\n }\n }\n\n if (e.key === 'Enter' && !e.defaultPrevented && opened && focusedOptionIndex != null) {\n const option = filteredOptions[focusedOptionIndex];\n\n if (option) {\n onChangeStart!(e, option);\n\n if (!e.defaultPrevented) {\n addOption(option);\n setFocusedOptionIndex(null);\n clearInput();\n closeAfterSelect && setOpened(false);\n e.preventDefault();\n }\n } else if (!creatable) {\n e.preventDefault();\n }\n }\n\n if (['Escape', 'Tab'].includes(e.key) && !e.defaultPrevented && opened) {\n setOpened(false);\n }\n };\n\n React.useEffect(() => {\n if (focusedOptionIndex != null && filteredOptions[focusedOptionIndex]) {\n setFocusedOption(filteredOptions[focusedOptionIndex]);\n } else if (focusedOptionIndex === null || focusedOptionIndex === 0) {\n setFocusedOption(null);\n }\n }, [focusedOptionIndex, filteredOptions, setFocusedOption]);\n\n React.useEffect(() => {\n const index = focusedOption\n ? filteredOptions.findIndex(({ value }) => value === focusedOption.value)\n : -1;\n\n if (index === -1 && !!filteredOptions.length && !showCreatable && closeAfterSelect) {\n setFocusedOption(filteredOptions[0]);\n }\n }, [filteredOptions, focusedOption, showCreatable, closeAfterSelect, setFocusedOption]);\n\n useGlobalEventListener(document, 'click', handleClickOutside);\n\n const renderChipWrapper = (renderChipProps: RenderChip<Option> | undefined) => {\n if (renderChipProps === undefined) {\n return null;\n }\n const onRemoveWrapper = (e: React.MouseEvent | undefined, value: ChipValue | undefined) => {\n e?.preventDefault();\n e?.stopPropagation();\n\n renderChipProps.onRemove?.(e, value);\n };\n\n return renderChip!({\n ...renderChipProps,\n onRemove: onRemoveWrapper,\n });\n };\n\n const isPopperDirectionTop = popperPlacement?.includes('top');\n\n const onPlacementChange = React.useCallback(\n (placement?: Placement) => {\n setPopperPlacement(placement);\n },\n [setPopperPlacement],\n );\n\n const onDropdownMouseLeave = React.useCallback(() => {\n setFocusedOptionIndex(null);\n }, [setFocusedOptionIndex]);\n\n const toggleOpened = () => {\n setOpened((prevOpened) => !prevOpened);\n };\n\n return (\n <>\n <FormField\n getRootRef={rootRef}\n style={style}\n className={classNames(\n styles['ChipsSelect'],\n opened &&\n (isPopperDirectionTop\n ? styles['ChipsSelect--pop-up']\n : styles['ChipsSelect--pop-down']),\n className,\n )}\n disabled={disabled}\n role=\"application\"\n aria-disabled={disabled}\n aria-readonly={restProps.readOnly}\n after={\n <IconButton\n className={styles['ChipsSelect__dropdown']}\n activeMode=\"\"\n hoverMode=\"\"\n // TODO: add label customization\n aria-label={opened ? 'Скрыть' : 'Развернуть'}\n onClick={toggleOpened}\n >\n <DropdownIcon className={styles['ChipsSelect__icon']} opened={opened} />\n </IconButton>\n }\n before={before}\n >\n <ChipsInputBase\n {...restProps}\n tabIndex={tabIndex}\n value={selectedOptions}\n inputValue={fieldValue}\n getNewOptionData={getNewOptionData}\n getOptionLabel={getOptionLabel}\n getOptionValue={getOptionValue}\n renderChip={renderChipWrapper}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n getRef={getRef}\n disabled={disabled}\n onInputChange={handleInputChange}\n />\n </FormField>\n {opened && (\n <CustomSelectDropdown\n targetRef={rootRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n onPlacementChange={onPlacementChange}\n onMouseLeave={onDropdownMouseLeave}\n fetching={fetching}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n >\n {showCreatable && (\n <CustomSelectOption\n hovered={focusedOptionIndex === 0}\n onMouseDown={addOptionFromInput}\n onMouseEnter={() => setFocusedOptionIndex(0)}\n >\n {creatableText}\n </CustomSelectOption>\n )}\n {!filteredOptions?.length && !showCreatable && emptyText ? (\n <Footnote className={styles['ChipsSelect__empty']}>{emptyText}</Footnote>\n ) : (\n filteredOptions.map((option: Option, index: number) => {\n const label = getOptionLabel!(option);\n const hovered =\n focusedOption && getOptionValue!(option) === getOptionValue!(focusedOption);\n const selected = selectedOptions.find((selectedOption: Option) => {\n return getOptionValue!(selectedOption) === getOptionValue!(option);\n });\n const value = getOptionValue!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderOption!({\n option,\n hovered: Boolean(hovered),\n children: label,\n selected: !!selected,\n getRootRef: (e) => {\n if (e) {\n return (chipsSelectOptions[index] = e);\n }\n return undefined;\n },\n onMouseDown: (e: React.MouseEvent<HTMLDivElement>) => {\n onChangeStart?.(e, option);\n\n if (!e.defaultPrevented) {\n closeAfterSelect && setOpened(false);\n addOption(option);\n clearInput();\n }\n },\n onMouseEnter: () => setFocusedOptionIndex(index),\n })}\n </React.Fragment>\n );\n })\n )}\n </CustomSelectDropdown>\n )}\n </>\n );\n};\n"],"names":["ChipsSelect","FOCUS_ACTION_NEXT","FOCUS_ACTION_PREV","chipsSelectDefaultProps","chipsInputDefaultProps","emptyText","creatableText","onChangeStart","noop","creatable","fetching","showSelected","closeAfterSelect","options","filterFn","defaultFilterFn","renderOption","props","CustomSelectOption","propsWithDefault","style","onFocus","onKeyDown","className","getRef","getRootRef","disabled","placeholder","tabIndex","getOptionValue","getOptionLabel","getNewOptionData","renderChip","popupDirection","inputValue","before","fixDropdownWidth","forceDropdownPortal","restProps","document","useDOM","React","useState","undefined","popperPlacement","setPopperPlacement","scrollBoxRef","useRef","rootRef","useExternRef","useChipsSelect","fieldValue","selectedOptions","opened","setOpened","addOptionFromInput","filteredOptions","addOption","handleInputChange","clearInput","focusedOption","setFocusedOption","focusedOptionIndex","setFocusedOptionIndex","showCreatable","Boolean","length","handleFocus","e","handleClickOutside","target","current","contains","chipsSelectOptions","scrollToElement","index","center","dropdown","item","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","focusOptionByIndex","oldIndex","focusOption","nextIndex","type","handleKeyDown","key","defaultPrevented","preventDefault","option","includes","useEffect","findIndex","value","useGlobalEventListener","renderChipWrapper","renderChipProps","onRemoveWrapper","stopPropagation","onRemove","isPopperDirectionTop","onPlacementChange","useCallback","placement","onDropdownMouseLeave","toggleOpened","prevOpened","FormField","classNames","role","aria-disabled","aria-readonly","readOnly","after","IconButton","activeMode","hoverMode","aria-label","onClick","DropdownIcon","ChipsInputBase","onInputChange","CustomSelectDropdown","targetRef","onMouseLeave","sameWidth","forcePortal","hovered","onMouseDown","onMouseEnter","Footnote","map","label","selected","find","selectedOption","Fragment","children"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/ChipsSelect/ChipsSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useChipsSelect } from '../../hooks/useChipsSelect';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { useDOM } from '../../lib/dom';\nimport type { Placement } from '../../lib/floating';\nimport { defaultFilterFn } from '../../lib/select';\nimport { ChipOption, ChipValue, RenderChip } from '../Chip/Chip';\nimport { ChipsInputProps } from '../ChipsInput/ChipsInput';\nimport { ChipsInputBase, chipsInputDefaultProps } from '../ChipsInputBase/ChipsInputBase';\nimport { CustomSelectDropdown } from '../CustomSelectDropdown/CustomSelectDropdown';\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from '../CustomSelectOption/CustomSelectOption';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormField } from '../FormField/FormField';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './ChipsSelect.module.css';\n\nexport interface ChipsSelectProps<Option extends ChipOption>\n extends Omit<ChipsInputProps<Option>, 'after'> {\n popupDirection?: 'top' | 'bottom';\n options?: Option[];\n filterFn?:\n | false\n | ((\n value?: string,\n option?: Option,\n getOptionLabel?: Pick<ChipsInputProps<Option>, 'getOptionLabel'>['getOptionLabel'],\n ) => boolean);\n /**\n * Возможность создавать чипы которых нет в списке (по enter или с помощью пункта в меню, см creatableText)\n */\n creatable?: boolean;\n /**\n * Отрисовка лоадера вместо списка опций в выпадающем списке\n */\n fetching?: boolean;\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Показывать или скрывать уже выбранные опции\n */\n showSelected?: boolean;\n /**\n * Текст для пункта создающего чипы при клике, так же отвечает за то будет ли показан этот пункт (показывается после того как в списке не отсанется опций)\n */\n creatableText?: string;\n /**\n * Текст который показывается если список опций пуст\n */\n emptyText?: string;\n /**\n * Событие срабатывающее перед onChange\n */\n onChangeStart?: (e: React.MouseEvent | React.KeyboardEvent, option: Option) => void;\n /**\n * Закрытие выпадающего списка после выбора элемента\n */\n closeAfterSelect?: boolean;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n /**\n * Иконка раскрывающегося списка\n */\n icon?: React.ReactNode;\n}\n\ntype FocusActionType = 'next' | 'prev';\n\nconst FOCUS_ACTION_NEXT: FocusActionType = 'next';\nconst FOCUS_ACTION_PREV: FocusActionType = 'prev';\n\nconst chipsSelectDefaultProps: ChipsSelectProps<any> = {\n ...chipsInputDefaultProps,\n emptyText: 'Ничего не найдено',\n creatableText: 'Создать значение',\n onChangeStart: noop,\n creatable: false,\n fetching: false,\n showSelected: true,\n closeAfterSelect: true,\n options: [],\n filterFn: defaultFilterFn,\n renderOption(props) {\n return <CustomSelectOption {...props} />;\n },\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ChipsSelect\n */\nexport const ChipsSelect = <Option extends ChipOption>(props: ChipsSelectProps<Option>) => {\n const propsWithDefault = { ...chipsSelectDefaultProps, ...props };\n const {\n style,\n onFocus,\n onKeyDown,\n className,\n fetching,\n renderOption,\n emptyText,\n getRef,\n getRootRef,\n disabled,\n placeholder,\n tabIndex,\n getOptionValue,\n getOptionLabel,\n showSelected,\n getNewOptionData,\n renderChip,\n popupDirection,\n creatable,\n filterFn,\n inputValue,\n creatableText,\n closeAfterSelect,\n onChangeStart,\n before,\n icon,\n options,\n fixDropdownWidth,\n forceDropdownPortal,\n ...restProps\n } = propsWithDefault;\n\n const { document } = useDOM();\n\n const [popperPlacement, setPopperPlacement] = React.useState<Placement | undefined>(undefined);\n\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const rootRef = useExternRef(getRef);\n const {\n fieldValue,\n selectedOptions = [],\n opened,\n setOpened,\n addOptionFromInput,\n filteredOptions,\n addOption,\n handleInputChange,\n clearInput,\n focusedOption,\n setFocusedOption,\n focusedOptionIndex,\n setFocusedOptionIndex,\n } = useChipsSelect(propsWithDefault);\n\n const showCreatable = Boolean(\n creatable && creatableText && !filteredOptions.length && fieldValue,\n );\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setOpened(true);\n setFocusedOptionIndex(0);\n onFocus!(e);\n };\n\n const handleClickOutside = (e: MouseEvent) => {\n if (e.target !== rootRef.current && !rootRef.current?.contains(e.target as Node)) {\n setOpened(false);\n }\n };\n\n const chipsSelectOptions = React.useRef<HTMLElement[]>([]).current;\n\n const scrollToElement = (index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = chipsSelectOptions[index];\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n };\n\n const focusOptionByIndex = (index: number, oldIndex: number) => {\n const { length } = filteredOptions;\n\n if (index < 0) {\n index = length - 1;\n } else if (index >= length) {\n index = 0;\n }\n\n if (index === oldIndex) {\n return;\n }\n\n scrollToElement(index);\n setFocusedOptionIndex(index);\n };\n\n const focusOption = (nextIndex: number | null, type: FocusActionType) => {\n let index = typeof nextIndex !== 'number' ? -1 : nextIndex;\n\n if (type === FOCUS_ACTION_NEXT) {\n index = index + 1;\n } else if (type === FOCUS_ACTION_PREV) {\n index = index - 1;\n }\n\n if (focusedOptionIndex != null) {\n focusOptionByIndex(index, focusedOptionIndex);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown!(e);\n\n if (e.key === 'ArrowUp' && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_PREV);\n }\n }\n\n if (e.key === 'ArrowDown' && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_NEXT);\n }\n }\n\n if (e.key === 'Enter' && !e.defaultPrevented && opened && focusedOptionIndex != null) {\n const option = filteredOptions[focusedOptionIndex];\n\n if (option) {\n onChangeStart!(e, option);\n\n if (!e.defaultPrevented) {\n addOption(option);\n setFocusedOptionIndex(null);\n clearInput();\n closeAfterSelect && setOpened(false);\n e.preventDefault();\n }\n } else if (!creatable) {\n e.preventDefault();\n }\n }\n\n if (['Escape', 'Tab'].includes(e.key) && !e.defaultPrevented && opened) {\n setOpened(false);\n }\n };\n\n React.useEffect(() => {\n if (focusedOptionIndex != null && filteredOptions[focusedOptionIndex]) {\n setFocusedOption(filteredOptions[focusedOptionIndex]);\n } else if (focusedOptionIndex === null || focusedOptionIndex === 0) {\n setFocusedOption(null);\n }\n }, [focusedOptionIndex, filteredOptions, setFocusedOption]);\n\n React.useEffect(() => {\n const index = focusedOption\n ? filteredOptions.findIndex(({ value }) => value === focusedOption.value)\n : -1;\n\n if (index === -1 && !!filteredOptions.length && !showCreatable && closeAfterSelect) {\n setFocusedOption(filteredOptions[0]);\n }\n }, [filteredOptions, focusedOption, showCreatable, closeAfterSelect, setFocusedOption]);\n\n useGlobalEventListener(document, 'click', handleClickOutside);\n\n const renderChipWrapper = (renderChipProps: RenderChip<Option> | undefined) => {\n if (renderChipProps === undefined) {\n return null;\n }\n const onRemoveWrapper = (e: React.MouseEvent | undefined, value: ChipValue | undefined) => {\n e?.preventDefault();\n e?.stopPropagation();\n\n renderChipProps.onRemove?.(e, value);\n };\n\n return renderChip!({\n ...renderChipProps,\n onRemove: onRemoveWrapper,\n });\n };\n\n const isPopperDirectionTop = popperPlacement?.includes('top');\n\n const onPlacementChange = React.useCallback(\n (placement?: Placement) => {\n setPopperPlacement(placement);\n },\n [setPopperPlacement],\n );\n\n const onDropdownMouseLeave = React.useCallback(() => {\n setFocusedOptionIndex(null);\n }, [setFocusedOptionIndex]);\n\n const toggleOpened = () => {\n setOpened((prevOpened) => !prevOpened);\n };\n\n return (\n <>\n <FormField\n getRootRef={rootRef}\n style={style}\n className={classNames(\n styles['ChipsSelect'],\n opened &&\n (isPopperDirectionTop\n ? styles['ChipsSelect--pop-up']\n : styles['ChipsSelect--pop-down']),\n className,\n )}\n disabled={disabled}\n role=\"application\"\n aria-disabled={disabled}\n aria-readonly={restProps.readOnly}\n after={\n <IconButton\n className={styles['ChipsSelect__dropdown']}\n activeMode=\"\"\n hoverMode=\"\"\n // TODO: add label customization\n aria-label={opened ? 'Скрыть' : 'Развернуть'}\n onClick={toggleOpened}\n >\n {icon ?? <DropdownIcon className={styles['ChipsSelect__icon']} opened={opened} />}\n </IconButton>\n }\n before={before}\n >\n <ChipsInputBase\n {...restProps}\n tabIndex={tabIndex}\n value={selectedOptions}\n inputValue={fieldValue}\n getNewOptionData={getNewOptionData}\n getOptionLabel={getOptionLabel}\n getOptionValue={getOptionValue}\n renderChip={renderChipWrapper}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n getRef={getRef}\n disabled={disabled}\n onInputChange={handleInputChange}\n />\n </FormField>\n {opened && (\n <CustomSelectDropdown\n targetRef={rootRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n onPlacementChange={onPlacementChange}\n onMouseLeave={onDropdownMouseLeave}\n fetching={fetching}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n >\n {showCreatable && (\n <CustomSelectOption\n hovered={focusedOptionIndex === 0}\n onMouseDown={addOptionFromInput}\n onMouseEnter={() => setFocusedOptionIndex(0)}\n >\n {creatableText}\n </CustomSelectOption>\n )}\n {!filteredOptions?.length && !showCreatable && emptyText ? (\n <Footnote className={styles['ChipsSelect__empty']}>{emptyText}</Footnote>\n ) : (\n filteredOptions.map((option: Option, index: number) => {\n const label = getOptionLabel!(option);\n const hovered =\n focusedOption && getOptionValue!(option) === getOptionValue!(focusedOption);\n const selected = selectedOptions.find((selectedOption: Option) => {\n return getOptionValue!(selectedOption) === getOptionValue!(option);\n });\n const value = getOptionValue!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderOption!({\n option,\n hovered: Boolean(hovered),\n children: label,\n selected: !!selected,\n getRootRef: (e) => {\n if (e) {\n return (chipsSelectOptions[index] = e);\n }\n return undefined;\n },\n onMouseDown: (e: React.MouseEvent<HTMLDivElement>) => {\n onChangeStart?.(e, option);\n\n if (!e.defaultPrevented) {\n closeAfterSelect && setOpened(false);\n addOption(option);\n clearInput();\n }\n },\n onMouseEnter: () => setFocusedOptionIndex(index),\n })}\n </React.Fragment>\n );\n })\n )}\n </CustomSelectDropdown>\n )}\n </>\n );\n};\n"],"names":["ChipsSelect","FOCUS_ACTION_NEXT","FOCUS_ACTION_PREV","chipsSelectDefaultProps","chipsInputDefaultProps","emptyText","creatableText","onChangeStart","noop","creatable","fetching","showSelected","closeAfterSelect","options","filterFn","defaultFilterFn","renderOption","props","CustomSelectOption","propsWithDefault","style","onFocus","onKeyDown","className","getRef","getRootRef","disabled","placeholder","tabIndex","getOptionValue","getOptionLabel","getNewOptionData","renderChip","popupDirection","inputValue","before","icon","fixDropdownWidth","forceDropdownPortal","restProps","document","useDOM","React","useState","undefined","popperPlacement","setPopperPlacement","scrollBoxRef","useRef","rootRef","useExternRef","useChipsSelect","fieldValue","selectedOptions","opened","setOpened","addOptionFromInput","filteredOptions","addOption","handleInputChange","clearInput","focusedOption","setFocusedOption","focusedOptionIndex","setFocusedOptionIndex","showCreatable","Boolean","length","handleFocus","e","handleClickOutside","target","current","contains","chipsSelectOptions","scrollToElement","index","center","dropdown","item","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","focusOptionByIndex","oldIndex","focusOption","nextIndex","type","handleKeyDown","key","defaultPrevented","preventDefault","option","includes","useEffect","findIndex","value","useGlobalEventListener","renderChipWrapper","renderChipProps","onRemoveWrapper","stopPropagation","onRemove","isPopperDirectionTop","onPlacementChange","useCallback","placement","onDropdownMouseLeave","toggleOpened","prevOpened","FormField","classNames","role","aria-disabled","aria-readonly","readOnly","after","IconButton","activeMode","hoverMode","aria-label","onClick","DropdownIcon","ChipsInputBase","onInputChange","CustomSelectDropdown","targetRef","onMouseLeave","sameWidth","forcePortal","hovered","onMouseDown","onMouseEnter","Footnote","map","label","selected","find","selectedOption","Fragment","children"],"mappings":"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"}
@@ -39,13 +39,11 @@ var Counter = function(_param) {
39
39
  }
40
40
  var CounterTypography = size === "s" ? _caption.Caption : _headline.Headline;
41
41
  var counterLevel = size === "s" ? "1" : "2";
42
- return /*#__PURE__*/ _react.createElement("span", _objectSpreadProps(_objectSpread({}, restProps), {
43
- className: (0, _vkjs.classNames)("vkuiCounter", modeClassNames[mode], sizeClassNames[size], className)
44
- }), (0, _vkjs.hasReactNode)(children) && /*#__PURE__*/ _react.createElement(CounterTypography, {
42
+ return /*#__PURE__*/ _react.createElement(CounterTypography, _objectSpreadProps(_objectSpread({}, restProps), {
45
43
  Component: "span",
46
- className: "vkuiCounter__in",
44
+ className: (0, _vkjs.classNames)("vkuiInternalCounter", "vkuiCounter", modeClassNames[mode], sizeClassNames[size], className),
47
45
  level: counterLevel
48
- }, children));
46
+ }), children);
49
47
  };
50
48
 
51
49
  //# sourceMappingURL=Counter.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Counter/Counter.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Headline } from '../Typography/Headline/Headline';\nimport styles from './Counter.module.css';\n\nconst modeClassNames = {\n secondary: styles['Counter--mode-secondary'],\n primary: styles['Counter--mode-primary'],\n prominent: styles['Counter--mode-prominent'],\n contrast: styles['Counter--mode-contrast'],\n inherit: styles['Counter--mode-inherit'],\n};\n\nconst sizeClassNames = {\n s: styles['Counter--size-s'],\n m: styles['Counter--size-m'],\n};\n\nexport interface CounterProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * Тип счетчика. В режиме `inherit` если компонент находится в кнопке, то\n * цвета зависят от кнопки. Если компонент находится вне кнопки, применяется\n * режим `secondary`\n */\n mode?: 'secondary' | 'primary' | 'prominent' | 'contrast' | 'inherit';\n size?: 's' | 'm';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Counter\n */\nexport const Counter = ({\n mode = 'inherit',\n size = 'm',\n children,\n className,\n ...restProps\n}: CounterProps) => {\n if (React.Children.count(children) === 0) {\n return null;\n }\n\n const CounterTypography = size === 's' ? Caption : Headline;\n const counterLevel = size === 's' ? '1' : '2';\n\n return (\n <span\n {...restProps}\n className={classNames(\n styles['Counter'],\n modeClassNames[mode],\n sizeClassNames[size],\n className,\n )}\n >\n {hasReactNode(children) && (\n <CounterTypography Component=\"span\" className={styles['Counter__in']} level={counterLevel}>\n {children}\n </CounterTypography>\n )}\n </span>\n );\n};\n"],"names":["Counter","modeClassNames","secondary","primary","prominent","contrast","inherit","sizeClassNames","s","m","mode","size","children","className","restProps","React","Children","count","CounterTypography","Caption","Headline","counterLevel","span","classNames","hasReactNode","Component","level"],"mappings":";;;;+BAgCaA;;;eAAAA;;;;;;;2DAhCU;oBACkB;uBACjB;wBACC;AAGzB,IAAMC,iBAAiB;IACrBC,SAAS;IACTC,OAAO;IACPC,SAAS;IACTC,QAAQ;IACRC,OAAO;AACT;AAEA,IAAMC,iBAAiB;IACrBC,CAAC;IACDC,CAAC;AACH;AAeO,IAAMT,UAAU,iBAMH;6BALlBU,MAAAA,gCAAO,8CACPC,MAAAA,gCAAO,mBACPC,kBAAAA,UACAC,mBAAAA,WACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAIE,OAAMC,QAAQ,CAACC,KAAK,CAACL,cAAc,GAAG;QACxC,OAAO,IAAI;IACb,CAAC;IAED,IAAMM,oBAAoBP,SAAS,MAAMQ,gBAAO,GAAGC,kBAAQ;IAC3D,IAAMC,eAAeV,SAAS,MAAM,MAAM,GAAG;IAE7C,qBACE,qBAACW,6CACKR;QACJD,WAAWU,IAAAA,gBAAU,iBAEnBtB,cAAc,CAACS,KAAK,EACpBH,cAAc,CAACI,KAAK,EACpBE;QAGDW,IAAAA,kBAAY,EAACZ,2BACZ,qBAACM;QAAkBO,WAAU;QAAOZ,SAAS;QAAyBa,OAAOL;OAC1ET;AAKX"}
1
+ {"version":3,"sources":["../../../../src/components/Counter/Counter.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Headline } from '../Typography/Headline/Headline';\nimport styles from './Counter.module.css';\n\nconst modeClassNames = {\n secondary: styles['Counter--mode-secondary'],\n primary: styles['Counter--mode-primary'],\n prominent: styles['Counter--mode-prominent'],\n contrast: styles['Counter--mode-contrast'],\n inherit: styles['Counter--mode-inherit'],\n};\n\nconst sizeClassNames = {\n s: styles['Counter--size-s'],\n m: styles['Counter--size-m'],\n};\n\nexport interface CounterProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * Тип счетчика. В режиме `inherit` если компонент находится в кнопке, то\n * цвета зависят от кнопки. Если компонент находится вне кнопки, применяется\n * режим `secondary`\n */\n mode?: 'secondary' | 'primary' | 'prominent' | 'contrast' | 'inherit';\n size?: 's' | 'm';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Counter\n */\nexport const Counter = ({\n mode = 'inherit',\n size = 'm',\n children,\n className,\n ...restProps\n}: CounterProps) => {\n if (React.Children.count(children) === 0) {\n return null;\n }\n\n const CounterTypography = size === 's' ? Caption : Headline;\n const counterLevel = size === 's' ? '1' : '2';\n\n return (\n <CounterTypography\n {...restProps}\n Component=\"span\"\n className={classNames(\n 'vkuiInternalCounter',\n styles['Counter'],\n modeClassNames[mode],\n sizeClassNames[size],\n className,\n )}\n level={counterLevel}\n >\n {children}\n </CounterTypography>\n );\n};\n"],"names":["Counter","modeClassNames","secondary","primary","prominent","contrast","inherit","sizeClassNames","s","m","mode","size","children","className","restProps","React","Children","count","CounterTypography","Caption","Headline","counterLevel","Component","classNames","level"],"mappings":";;;;+BAgCaA;;;eAAAA;;;;;;;2DAhCU;oBACI;uBACH;wBACC;AAGzB,IAAMC,iBAAiB;IACrBC,SAAS;IACTC,OAAO;IACPC,SAAS;IACTC,QAAQ;IACRC,OAAO;AACT;AAEA,IAAMC,iBAAiB;IACrBC,CAAC;IACDC,CAAC;AACH;AAeO,IAAMT,UAAU,iBAMH;6BALlBU,MAAAA,gCAAO,8CACPC,MAAAA,gCAAO,mBACPC,kBAAAA,UACAC,mBAAAA,WACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAIE,OAAMC,QAAQ,CAACC,KAAK,CAACL,cAAc,GAAG;QACxC,OAAO,IAAI;IACb,CAAC;IAED,IAAMM,oBAAoBP,SAAS,MAAMQ,gBAAO,GAAGC,kBAAQ;IAC3D,IAAMC,eAAeV,SAAS,MAAM,MAAM,GAAG;IAE7C,qBACE,qBAACO,wDACKJ;QACJQ,WAAU;QACVT,WAAWU,IAAAA,gBAAU,EACnB,sCAEAtB,cAAc,CAACS,KAAK,EACpBH,cAAc,CAACI,KAAK,EACpBE;QAEFW,OAAOH;QAENT;AAGP"}
@@ -52,6 +52,9 @@ export interface SelectProps extends NativeSelectProps, FormFieldProps, TrackerO
52
52
  fetching?: boolean;
53
53
  onClose?: VoidFunction;
54
54
  onOpen?: VoidFunction;
55
+ /**
56
+ * Иконка раскрывающегося списка
57
+ */
55
58
  icon?: React.ReactNode;
56
59
  /**
57
60
  * Кастомная кнопка для очистки значения.
@@ -407,7 +407,7 @@ function CustomSelect(props) {
407
407
  selectFocused
408
408
  ]);
409
409
  var onInputChange = _react.useCallback(function(e) {
410
- // TODO v6 удалить `onInputChangeProp`.
410
+ // TODO [>=6]: удалить `onInputChangeProp`.
411
411
  if (onInputChangeProp) {
412
412
  var options = onInputChangeProp(e, optionsProp);
413
413
  if (options) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CustomSelect/CustomSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport type { PlacementWithAuto } from '../../lib/floating';\nimport { defaultFilterFn, getFormFieldModeFromSelectType } from '../../lib/select';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { debounce, getTitleFromChildren } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { TrackerOptionsProps } from '../CustomScrollView/useTrackerVisibility';\nimport { CustomSelectDropdown } from '../CustomSelectDropdown/CustomSelectDropdown';\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from '../CustomSelectOption/CustomSelectOption';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormFieldProps } from '../FormField/FormField';\nimport { Input } from '../Input/Input';\nimport { NativeSelectProps } from '../NativeSelect/NativeSelect';\nimport { SelectType } from '../Select/Select';\nimport { SelectMimicry } from '../SelectMimicry/SelectMimicry';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { CustomSelectClearButton, CustomSelectClearButtonProps } from './CustomSelectClearButton';\nimport styles from './CustomSelect.module.css';\n\nconst sizeYClassNames = {\n none: styles['CustomSelect--sizeY-none'],\n [SizeType.COMPACT]: styles['CustomSelect--sizeY-compact'],\n};\n\nconst findIndexAfter = (options: CustomSelectOptionInterface[] = [], startIndex = -1) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex((option, i) => i > startIndex && !option.disabled);\n};\n\nconst findIndexBefore = (\n options: CustomSelectOptionInterface[] = [],\n endIndex: number = options.length,\n) => {\n let result = -1;\n if (endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nconst warn = warnOnce('CustomSelect');\n\nconst checkOptionsValueType = (options: CustomSelectOptionInterface[]) => {\n if (new Set(options.map((item) => typeof item.value)).size > 1) {\n warn(\n 'Некоторые значения ваших опций имеют разные типы. onChange всегда возвращает строковый тип.',\n 'error',\n );\n }\n};\n\nfunction defaultRenderOptionFn({ option, ...props }: CustomSelectOptionProps): React.ReactNode {\n return <CustomSelectOption {...props} />;\n}\n\nconst handleOptionDown: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n};\n\nfunction findSelectedIndex(\n options: CustomSelectOptionInterface[],\n value: SelectValue,\n withClear: boolean,\n) {\n if (withClear && value === '') {\n return -1;\n }\n return (\n options.findIndex((item) => {\n value = typeof item.value === 'number' ? Number(value) : value;\n return item.value === value;\n }) ?? -1\n );\n}\n\nconst filter = (\n options: SelectProps['options'],\n inputValue: string,\n filterFn: SelectProps['filterFn'],\n) => {\n return typeof filterFn === 'function'\n ? options.filter((option) => filterFn(inputValue, option))\n : options;\n};\n\nconst defaultOptions: CustomSelectOptionInterface[] = [];\n\ntype SelectValue = React.SelectHTMLAttributes<HTMLSelectElement>['value'];\n\nexport interface CustomSelectOptionInterface {\n value: SelectValue;\n label: React.ReactElement | string;\n disabled?: boolean;\n [index: string]: any;\n}\n\nexport interface SelectProps extends NativeSelectProps, FormFieldProps, TrackerOptionsProps {\n /**\n * Если `true`, то при клике на селект в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean;\n /**\n * Текст, который будет отображен, если приходит пустой `options`.\n */\n emptyText?: string;\n /**\n * > ⚠️ В v6 из возвращаемых типов будет удалён `CustomSelectOptionInterface[]`. Для кастомной фильтрации используйте\n * > `filterFn`.\n */\n onInputChange?: (\n e: React.ChangeEvent,\n options: CustomSelectOptionInterface[],\n ) => void | CustomSelectOptionInterface[];\n options: CustomSelectOptionInterface[];\n /**\n * Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.\n */\n filterFn?:\n | false\n | ((\n value: string,\n option: CustomSelectOptionInterface,\n getOptionLabel?: (option: Partial<CustomSelectOptionInterface>) => string,\n ) => boolean);\n popupDirection?: 'top' | 'bottom';\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](https://vkcom.github.io/VKUI/#/CustomSelectOption?id=props)\n */\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если `true`, то в дропдауне вместо списка опций рисуется спиннер. При переданных `renderDropdown` и `fetching: true`\n * \"победит\" `renderDropdown`.\n */\n fetching?: boolean;\n onClose?: VoidFunction;\n onOpen?: VoidFunction;\n icon?: React.ReactNode;\n /**\n * Кастомная кнопка для очистки значения.\n * Должна принимать обязательное свойство `onClick`\n */\n ClearButton?: React.ComponentType<CustomSelectClearButtonProps>;\n /**\n * Если `true`, то справа будет отображаться кнопка для очистки значения\n */\n allowClearButton?: boolean;\n dropdownOffsetDistance?: number;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n selectType?: SelectType;\n}\n\ntype MouseEventHandler = (event: React.MouseEvent<HTMLElement>) => void;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelect\n */\nexport function CustomSelect(props: SelectProps) {\n const [opened, setOpened] = React.useState(false);\n const {\n before,\n name,\n className,\n getRef,\n getRootRef,\n popupDirection,\n style,\n onChange,\n children,\n onInputChange: onInputChangeProp,\n renderDropdown,\n onOpen,\n onClose,\n fetching,\n forceDropdownPortal,\n selectType = 'default',\n autoHideScrollbar,\n autoHideScrollbarDelay,\n searchable = false,\n renderOption: renderOptionProp = defaultRenderOptionFn,\n options: optionsProp = defaultOptions,\n emptyText = 'Ничего не найдено',\n filterFn = defaultFilterFn,\n icon: iconProp,\n ClearButton = CustomSelectClearButton,\n allowClearButton = false,\n dropdownOffsetDistance = 0,\n fixDropdownWidth = true,\n ...restProps\n } = props;\n\n if (process.env.NODE_ENV === 'development') {\n checkOptionsValueType(optionsProp);\n }\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const containerRef = React.useRef<HTMLLabelElement>(null);\n const handleRootRef = useExternRef(containerRef, getRootRef);\n const scrollBoxRef = React.useRef<HTMLDivElement | null>(null);\n const selectElRef = useExternRef(getRef);\n\n const [focusedOptionIndex, setFocusedOptionIndex] = React.useState<number | undefined>(-1);\n const [isControlledOutside, setIsControlledOutside] = React.useState(props.value !== undefined);\n const [inputValue, setInputValue] = React.useState('');\n const [nativeSelectValue, setNativeSelectValue] = React.useState(\n () => props.value ?? props.defaultValue ?? (allowClearButton ? '' : undefined),\n );\n const [keyboardInput, setKeyboardInput] = React.useState('');\n const [popperPlacement, setPopperPlacement] = React.useState<PlacementWithAuto | undefined>(\n undefined,\n );\n const [options, setOptions] = React.useState(optionsProp);\n const [selectedOptionIndex, setSelectedOptionIndex] = React.useState<number | undefined>(\n findSelectedIndex(optionsProp, props.value ?? props.defaultValue, allowClearButton),\n );\n\n React.useEffect(() => {\n setIsControlledOutside(props.value !== undefined);\n setNativeSelectValue((nativeSelectValue) => props.value ?? nativeSelectValue);\n }, [props.value]);\n\n useIsomorphicLayoutEffect(() => {\n if (\n options.some(({ value }) => nativeSelectValue === value) ||\n (allowClearButton && nativeSelectValue === '')\n ) {\n const event = new Event('change', { bubbles: true });\n\n selectElRef.current?.dispatchEvent(event);\n }\n }, [nativeSelectValue]);\n\n const selected = React.useMemo(() => {\n if (!options.length) {\n return null;\n }\n\n return selectedOptionIndex !== undefined ? options[selectedOptionIndex] : undefined;\n }, [options, selectedOptionIndex]);\n\n const openedClassNames = React.useMemo(\n () =>\n classNames(\n opened &&\n dropdownOffsetDistance === 0 &&\n (popperPlacement?.includes('top')\n ? styles['CustomSelect--pop-up']\n : styles['CustomSelect--pop-down']),\n ),\n [dropdownOffsetDistance, opened, popperPlacement],\n );\n\n const resetKeyboardInput = React.useCallback(() => {\n setKeyboardInput('');\n }, []);\n\n const scrollToElement = React.useCallback((index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = dropdown ? (dropdown.children[index] as HTMLElement) : null;\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n }, []);\n\n const isValidIndex = React.useCallback(\n (index: number) => {\n return index >= 0 && index < (options.length ?? 0);\n },\n [options.length],\n );\n\n const focusOptionByIndex = React.useCallback(\n (index: number | undefined, scrollTo = true) => {\n if (index === undefined || index < 0 || index > (options.length ?? 0) - 1) {\n return;\n }\n\n const option = options[index];\n\n if (option?.disabled) {\n return;\n }\n\n if (scrollTo) {\n scrollToElement(index);\n }\n\n // Это оптимизация, прежде всего, под `onMouseOver`\n setFocusedOptionIndex((focusedOptionIndex) =>\n focusedOptionIndex !== index ? index : focusedOptionIndex,\n );\n },\n [options, scrollToElement],\n );\n\n const areOptionsShown = React.useCallback(() => {\n return scrollBoxRef.current !== null;\n }, []);\n\n const setScrollBoxRef = React.useCallback(\n (ref: HTMLDivElement | null) => {\n scrollBoxRef.current = ref;\n\n if (ref && selectedOptionIndex !== undefined && isValidIndex(selectedOptionIndex)) {\n {\n scrollToElement(selectedOptionIndex, true);\n }\n }\n },\n [isValidIndex, scrollToElement, selectedOptionIndex],\n );\n\n const onKeyboardInput = React.useCallback(\n (key: string) => {\n const fullInput = keyboardInput + key;\n\n const optionIndex = options.findIndex((option) => {\n return getTitleFromChildren(option.label).toLowerCase().includes(fullInput);\n });\n\n if (optionIndex !== undefined && optionIndex > -1) {\n focusOptionByIndex(optionIndex);\n }\n\n setKeyboardInput(fullInput);\n },\n [focusOptionByIndex, keyboardInput, options],\n );\n\n /**\n * Note: сбрасывать `options` через `setOptions(optionsProp)` не нужно.\n * Сброс происходит в одном из эффекте `updateOptionsAndSelectedOptionIndex()`.\n */\n const close = React.useCallback(() => {\n resetKeyboardInput();\n\n setInputValue('');\n setOpened(false);\n setFocusedOptionIndex(-1);\n onClose?.();\n }, [onClose, resetKeyboardInput]);\n\n const selectFocused = React.useCallback(() => {\n if (focusedOptionIndex !== undefined && isValidIndex(focusedOptionIndex)) {\n const item = options[focusedOptionIndex];\n\n setNativeSelectValue(item?.value);\n close();\n }\n }, [close, focusedOptionIndex, isValidIndex, options]);\n\n const open = React.useCallback(() => {\n setOpened(true);\n setFocusedOptionIndex(selectedOptionIndex);\n\n if (typeof onOpen === 'function') {\n onOpen();\n }\n }, [onOpen, selectedOptionIndex]);\n\n const onBlur = React.useCallback(() => {\n close();\n const event = new Event('blur');\n selectElRef.current?.dispatchEvent(event);\n }, [close, selectElRef]);\n\n const resetFocusedOption = React.useCallback(() => {\n setFocusedOptionIndex(-1);\n }, []);\n\n const onFocus = React.useCallback(() => {\n const event = new Event('focus');\n selectElRef.current?.dispatchEvent(event);\n }, [selectElRef]);\n\n const onClick = React.useCallback(() => {\n if (opened) {\n close();\n } else {\n open();\n }\n }, [close, open, opened]);\n\n const handleKeyUp = React.useMemo(() => debounce(resetKeyboardInput, 1000), [resetKeyboardInput]);\n\n const focusOption = React.useCallback(\n (type: 'next' | 'prev') => {\n let index = focusedOptionIndex;\n\n if (type === 'next') {\n const nextIndex = findIndexAfter(options, index);\n index = nextIndex === -1 ? findIndexAfter(options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === 'prev') {\n const beforeIndex = findIndexBefore(options, index);\n index = beforeIndex === -1 ? findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n focusOptionByIndex(index);\n },\n [focusOptionByIndex, focusedOptionIndex, options],\n );\n\n React.useEffect(\n function updateOptionsAndSelectedOptionIndex() {\n const value = props.value ?? nativeSelectValue ?? props.defaultValue;\n\n const options =\n searchable && inputValue !== undefined\n ? filter(optionsProp, inputValue, filterFn)\n : optionsProp;\n\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, value, allowClearButton));\n },\n [\n filterFn,\n inputValue,\n nativeSelectValue,\n optionsProp,\n props.defaultValue,\n props.value,\n searchable,\n allowClearButton,\n ],\n );\n\n /**\n * Нужен для правильного поведения обработчика onClick на select. Фильтрует клики, которые были сделаны по\n * выпадающему списку.\n */\n const onLabelClick = React.useCallback((e: React.MouseEvent<HTMLLabelElement>) => {\n if (scrollBoxRef.current?.contains(e.target as Node)) {\n e.preventDefault();\n }\n }, []);\n\n const onNativeSelectChange: React.ChangeEventHandler<HTMLSelectElement> = (e) => {\n const newSelectedOptionIndex = findSelectedIndex(\n options,\n e.currentTarget.value,\n allowClearButton,\n );\n\n if (selectedOptionIndex !== newSelectedOptionIndex) {\n if (!isControlledOutside) {\n setSelectedOptionIndex(newSelectedOptionIndex);\n }\n onChange?.(e);\n }\n };\n\n const onInputKeyDown: React.KeyboardEventHandler<HTMLInputElement> = React.useCallback(\n (event) => {\n ['ArrowUp', 'ArrowDown', 'Escape', 'Enter'].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case 'ArrowUp':\n areOptionsShown() && focusOption('prev');\n break;\n case 'ArrowDown':\n areOptionsShown() && focusOption('next');\n break;\n case 'Escape':\n close();\n break;\n case 'Enter':\n areOptionsShown() && selectFocused();\n break;\n }\n },\n [areOptionsShown, close, focusOption, selectFocused],\n );\n\n const onInputChange: React.ChangeEventHandler<HTMLInputElement> = React.useCallback(\n (e) => {\n // TODO v6 удалить `onInputChangeProp`.\n if (onInputChangeProp) {\n const options = onInputChangeProp(e, optionsProp);\n if (options) {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Этот метод фильтрации устарел. Возвращаемое значение onInputChange будет ' +\n 'проигнорировано в v6.0.0. Для фильтрации обновляйте props.options самостоятельно или используйте свойство filterFn.',\n );\n }\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, nativeSelectValue, allowClearButton));\n }\n } else {\n const options = filter(optionsProp, e.target.value, filterFn);\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, nativeSelectValue, allowClearButton));\n }\n setInputValue(e.target.value);\n },\n [filterFn, nativeSelectValue, onInputChangeProp, optionsProp, allowClearButton],\n );\n\n const handleKeyDownSelect = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key.length === 1 && event.key !== ' ') {\n onKeyboardInput(event.key);\n return;\n }\n\n ['ArrowUp', 'ArrowDown', 'Escape', 'Enter'].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case 'ArrowUp':\n if (opened) {\n areOptionsShown() && focusOption('prev');\n } else {\n open();\n }\n break;\n case 'ArrowDown':\n if (opened) {\n areOptionsShown() && focusOption('next');\n } else {\n open();\n }\n break;\n case 'Escape':\n close();\n break;\n case 'Enter':\n case 'Spacebar':\n case ' ':\n if (opened) {\n areOptionsShown() && selectFocused();\n } else {\n open();\n }\n break;\n }\n },\n [areOptionsShown, close, focusOption, onKeyboardInput, open, opened, selectFocused],\n );\n\n const handleOptionClick = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget,\n );\n const option = options[index];\n\n if (option && !option.disabled) {\n selectFocused();\n }\n },\n [options, selectFocused],\n );\n\n const handleOptionHover = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n focusOptionByIndex(\n Array.prototype.indexOf.call(e.currentTarget.parentNode?.children, e.currentTarget),\n false,\n );\n },\n [focusOptionByIndex],\n );\n\n const renderOption = React.useCallback(\n (option: CustomSelectOptionInterface, index: number) => {\n const hovered = index === focusedOptionIndex;\n const selected = index === selectedOptionIndex;\n\n return (\n <React.Fragment key={`${option.value}`}>\n {renderOptionProp({\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: handleOptionClick,\n onMouseDown: handleOptionDown,\n // Используем `onMouseOver` вместо `onMouseEnter`.\n // При параметре `searchable`, обновляется \"ребёнок\", из-за чего `onMouseEnter` не срабатывает в следующих кейсах:\n // 1. До загрузки выпадающего списка, курсор мышки находится над произвольным элементом этого списка.\n // > Лечение: только увод курсора мыши и возвращении его обратно вызывает событие `onMouseEnter` на этот элемент.\n // 2. Если это тач-устройство.\n // > Лечение: нужно нажать на какой-нибудь произвольный элемент списка, после чего `onMouseEnter` будет работать на соседние элементы,\n // но не на тот, на который нажали в первый раз.\n // Более подробно по ссылке https://github.com/facebook/react/issues/13956#issuecomment-1082055744\n onMouseOver: handleOptionHover,\n })}\n </React.Fragment>\n );\n },\n [\n focusedOptionIndex,\n handleOptionClick,\n handleOptionHover,\n renderOptionProp,\n selectedOptionIndex,\n ],\n );\n\n const resolvedContent = React.useMemo(() => {\n const defaultDropdownContent =\n options?.length > 0 ? (\n options.map(renderOption)\n ) : (\n <Footnote className={styles['CustomSelect__empty']}>{emptyText}</Footnote>\n );\n\n if (typeof renderDropdown === 'function') {\n return renderDropdown({ defaultDropdownContent });\n } else {\n return defaultDropdownContent;\n }\n }, [emptyText, options, renderDropdown, renderOption]);\n\n const clearButtonShown = allowClearButton && !opened && nativeSelectValue !== '';\n\n const clearButton = React.useMemo(() => {\n if (!clearButtonShown) {\n return null;\n }\n\n return (\n <ClearButton\n className={iconProp === undefined ? styles['CustomSelect--clear-icon'] : undefined}\n onClick={() => setNativeSelectValue('')}\n />\n );\n }, [clearButtonShown, ClearButton, iconProp]);\n\n const icon = React.useMemo(() => {\n if (iconProp !== undefined) {\n return iconProp;\n }\n\n return (\n <DropdownIcon\n className={clearButtonShown ? styles['CustomSelect__dropdown-icon'] : undefined}\n opened={opened}\n />\n );\n }, [clearButtonShown, iconProp, opened]);\n\n const afterIcons = (icon || clearButtonShown) && (\n <React.Fragment>\n {clearButton}\n {icon}\n </React.Fragment>\n );\n\n return (\n <label\n className={classNames(\n styles['CustomSelect'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n className,\n )}\n style={style}\n ref={handleRootRef}\n onClick={onLabelClick}\n >\n {opened && searchable ? (\n <Input\n {...restProps}\n autoFocus\n onBlur={onBlur}\n className={openedClassNames}\n value={inputValue}\n onKeyDown={onInputKeyDown}\n onChange={onInputChange}\n // TODO Ожидается, что клик поймает нативный select, но его перехватывает Input. К сожалению, это приводит к конфликтам типизации.\n // TODO Нужно перестать пытаться превратить CustomSelect в select. Тогда эта проблема уйдёт.\n // @ts-expect-error: TS2322 MouseEventHandler<HTMLSelectElement> !== MouseEventHandler<HTMLInputElement>\n onClick={props.onClick}\n before={before}\n after={afterIcons}\n mode={getFormFieldModeFromSelectType(selectType)}\n />\n ) : (\n <SelectMimicry\n {...restProps}\n aria-hidden\n onClick={onClick}\n onKeyDown={handleKeyDownSelect}\n onKeyUp={handleKeyUp}\n onFocus={onFocus}\n onBlur={onBlur}\n className={openedClassNames}\n before={before}\n after={afterIcons}\n selectType={selectType}\n >\n {selected?.label}\n </SelectMimicry>\n )}\n <select\n ref={selectElRef}\n name={name}\n onChange={onNativeSelectChange}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onClick={props.onClick}\n value={nativeSelectValue}\n aria-hidden\n className={styles['CustomSelect__control']}\n >\n {allowClearButton && <option key=\"\" value=\"\" />}\n {optionsProp.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </select>\n {opened && (\n <CustomSelectDropdown\n targetRef={containerRef}\n placement={popupDirection}\n scrollBoxRef={setScrollBoxRef}\n onPlacementChange={setPopperPlacement}\n onMouseLeave={resetFocusedOption}\n fetching={fetching}\n offsetDistance={dropdownOffsetDistance}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n autoHideScrollbar={autoHideScrollbar}\n autoHideScrollbarDelay={autoHideScrollbarDelay}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </label>\n );\n}\n"],"names":["CustomSelect","sizeYClassNames","none","SizeType","COMPACT","findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","warn","warnOnce","checkOptionsValueType","Set","map","item","value","size","defaultRenderOptionFn","props","CustomSelectOption","handleOptionDown","e","preventDefault","findSelectedIndex","withClear","Number","filter","inputValue","filterFn","defaultOptions","React","useState","opened","setOpened","before","name","className","getRef","getRootRef","popupDirection","style","onChange","children","onInputChange","onInputChangeProp","renderDropdown","onOpen","onClose","fetching","forceDropdownPortal","selectType","autoHideScrollbar","autoHideScrollbarDelay","searchable","renderOptionProp","renderOption","optionsProp","emptyText","defaultFilterFn","icon","iconProp","ClearButton","CustomSelectClearButton","allowClearButton","dropdownOffsetDistance","fixDropdownWidth","restProps","process","env","NODE_ENV","useAdaptivity","sizeY","containerRef","useRef","handleRootRef","useExternRef","scrollBoxRef","selectElRef","focusedOptionIndex","setFocusedOptionIndex","undefined","isControlledOutside","setIsControlledOutside","setInputValue","defaultValue","nativeSelectValue","setNativeSelectValue","keyboardInput","setKeyboardInput","popperPlacement","setPopperPlacement","setOptions","selectedOptionIndex","setSelectedOptionIndex","useEffect","useIsomorphicLayoutEffect","some","event","Event","bubbles","current","dispatchEvent","selected","useMemo","openedClassNames","classNames","includes","resetKeyboardInput","useCallback","scrollToElement","index","center","dropdown","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","isValidIndex","focusOptionByIndex","scrollTo","areOptionsShown","setScrollBoxRef","ref","onKeyboardInput","key","fullInput","optionIndex","getTitleFromChildren","label","toLowerCase","close","selectFocused","open","onBlur","resetFocusedOption","onFocus","onClick","handleKeyUp","debounce","focusOption","type","nextIndex","beforeIndex","updateOptionsAndSelectedOptionIndex","onLabelClick","contains","target","onNativeSelectChange","newSelectedOptionIndex","currentTarget","onInputKeyDown","handleKeyDownSelect","handleOptionClick","Array","prototype","indexOf","call","parentNode","handleOptionHover","hovered","Fragment","onMouseDown","onMouseOver","resolvedContent","defaultDropdownContent","Footnote","clearButtonShown","clearButton","DropdownIcon","afterIcons","REGULAR","Input","autoFocus","onKeyDown","after","mode","getFormFieldModeFromSelectType","SelectMimicry","aria-hidden","onKeyUp","select","CustomSelectDropdown","targetRef","placement","onPlacementChange","onMouseLeave","offsetDistance","sameWidth","forcePortal"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/CustomSelect/CustomSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport type { PlacementWithAuto } from '../../lib/floating';\nimport { defaultFilterFn, getFormFieldModeFromSelectType } from '../../lib/select';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { debounce, getTitleFromChildren } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { TrackerOptionsProps } from '../CustomScrollView/useTrackerVisibility';\nimport { CustomSelectDropdown } from '../CustomSelectDropdown/CustomSelectDropdown';\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from '../CustomSelectOption/CustomSelectOption';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormFieldProps } from '../FormField/FormField';\nimport { Input } from '../Input/Input';\nimport { NativeSelectProps } from '../NativeSelect/NativeSelect';\nimport { SelectType } from '../Select/Select';\nimport { SelectMimicry } from '../SelectMimicry/SelectMimicry';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { CustomSelectClearButton, CustomSelectClearButtonProps } from './CustomSelectClearButton';\nimport styles from './CustomSelect.module.css';\n\nconst sizeYClassNames = {\n none: styles['CustomSelect--sizeY-none'],\n [SizeType.COMPACT]: styles['CustomSelect--sizeY-compact'],\n};\n\nconst findIndexAfter = (options: CustomSelectOptionInterface[] = [], startIndex = -1) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex((option, i) => i > startIndex && !option.disabled);\n};\n\nconst findIndexBefore = (\n options: CustomSelectOptionInterface[] = [],\n endIndex: number = options.length,\n) => {\n let result = -1;\n if (endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nconst warn = warnOnce('CustomSelect');\n\nconst checkOptionsValueType = (options: CustomSelectOptionInterface[]) => {\n if (new Set(options.map((item) => typeof item.value)).size > 1) {\n warn(\n 'Некоторые значения ваших опций имеют разные типы. onChange всегда возвращает строковый тип.',\n 'error',\n );\n }\n};\n\nfunction defaultRenderOptionFn({ option, ...props }: CustomSelectOptionProps): React.ReactNode {\n return <CustomSelectOption {...props} />;\n}\n\nconst handleOptionDown: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n};\n\nfunction findSelectedIndex(\n options: CustomSelectOptionInterface[],\n value: SelectValue,\n withClear: boolean,\n) {\n if (withClear && value === '') {\n return -1;\n }\n return (\n options.findIndex((item) => {\n value = typeof item.value === 'number' ? Number(value) : value;\n return item.value === value;\n }) ?? -1\n );\n}\n\nconst filter = (\n options: SelectProps['options'],\n inputValue: string,\n filterFn: SelectProps['filterFn'],\n) => {\n return typeof filterFn === 'function'\n ? options.filter((option) => filterFn(inputValue, option))\n : options;\n};\n\nconst defaultOptions: CustomSelectOptionInterface[] = [];\n\ntype SelectValue = React.SelectHTMLAttributes<HTMLSelectElement>['value'];\n\nexport interface CustomSelectOptionInterface {\n value: SelectValue;\n label: React.ReactElement | string;\n disabled?: boolean;\n [index: string]: any;\n}\n\nexport interface SelectProps extends NativeSelectProps, FormFieldProps, TrackerOptionsProps {\n /**\n * Если `true`, то при клике на селект в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean;\n /**\n * Текст, который будет отображен, если приходит пустой `options`.\n */\n emptyText?: string;\n /**\n * > ⚠️ В v6 из возвращаемых типов будет удалён `CustomSelectOptionInterface[]`. Для кастомной фильтрации используйте\n * > `filterFn`.\n */\n onInputChange?: (\n e: React.ChangeEvent,\n options: CustomSelectOptionInterface[],\n ) => void | CustomSelectOptionInterface[];\n options: CustomSelectOptionInterface[];\n /**\n * Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.\n */\n filterFn?:\n | false\n | ((\n value: string,\n option: CustomSelectOptionInterface,\n getOptionLabel?: (option: Partial<CustomSelectOptionInterface>) => string,\n ) => boolean);\n popupDirection?: 'top' | 'bottom';\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](https://vkcom.github.io/VKUI/#/CustomSelectOption?id=props)\n */\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если `true`, то в дропдауне вместо списка опций рисуется спиннер. При переданных `renderDropdown` и `fetching: true`\n * \"победит\" `renderDropdown`.\n */\n fetching?: boolean;\n onClose?: VoidFunction;\n onOpen?: VoidFunction;\n /**\n * Иконка раскрывающегося списка\n */\n icon?: React.ReactNode;\n /**\n * Кастомная кнопка для очистки значения.\n * Должна принимать обязательное свойство `onClick`\n */\n ClearButton?: React.ComponentType<CustomSelectClearButtonProps>;\n /**\n * Если `true`, то справа будет отображаться кнопка для очистки значения\n */\n allowClearButton?: boolean;\n dropdownOffsetDistance?: number;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n selectType?: SelectType;\n}\n\ntype MouseEventHandler = (event: React.MouseEvent<HTMLElement>) => void;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelect\n */\nexport function CustomSelect(props: SelectProps) {\n const [opened, setOpened] = React.useState(false);\n const {\n before,\n name,\n className,\n getRef,\n getRootRef,\n popupDirection,\n style,\n onChange,\n children,\n onInputChange: onInputChangeProp,\n renderDropdown,\n onOpen,\n onClose,\n fetching,\n forceDropdownPortal,\n selectType = 'default',\n autoHideScrollbar,\n autoHideScrollbarDelay,\n searchable = false,\n renderOption: renderOptionProp = defaultRenderOptionFn,\n options: optionsProp = defaultOptions,\n emptyText = 'Ничего не найдено',\n filterFn = defaultFilterFn,\n icon: iconProp,\n ClearButton = CustomSelectClearButton,\n allowClearButton = false,\n dropdownOffsetDistance = 0,\n fixDropdownWidth = true,\n ...restProps\n } = props;\n\n if (process.env.NODE_ENV === 'development') {\n checkOptionsValueType(optionsProp);\n }\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const containerRef = React.useRef<HTMLLabelElement>(null);\n const handleRootRef = useExternRef(containerRef, getRootRef);\n const scrollBoxRef = React.useRef<HTMLDivElement | null>(null);\n const selectElRef = useExternRef(getRef);\n\n const [focusedOptionIndex, setFocusedOptionIndex] = React.useState<number | undefined>(-1);\n const [isControlledOutside, setIsControlledOutside] = React.useState(props.value !== undefined);\n const [inputValue, setInputValue] = React.useState('');\n const [nativeSelectValue, setNativeSelectValue] = React.useState(\n () => props.value ?? props.defaultValue ?? (allowClearButton ? '' : undefined),\n );\n const [keyboardInput, setKeyboardInput] = React.useState('');\n const [popperPlacement, setPopperPlacement] = React.useState<PlacementWithAuto | undefined>(\n undefined,\n );\n const [options, setOptions] = React.useState(optionsProp);\n const [selectedOptionIndex, setSelectedOptionIndex] = React.useState<number | undefined>(\n findSelectedIndex(optionsProp, props.value ?? props.defaultValue, allowClearButton),\n );\n\n React.useEffect(() => {\n setIsControlledOutside(props.value !== undefined);\n setNativeSelectValue((nativeSelectValue) => props.value ?? nativeSelectValue);\n }, [props.value]);\n\n useIsomorphicLayoutEffect(() => {\n if (\n options.some(({ value }) => nativeSelectValue === value) ||\n (allowClearButton && nativeSelectValue === '')\n ) {\n const event = new Event('change', { bubbles: true });\n\n selectElRef.current?.dispatchEvent(event);\n }\n }, [nativeSelectValue]);\n\n const selected = React.useMemo(() => {\n if (!options.length) {\n return null;\n }\n\n return selectedOptionIndex !== undefined ? options[selectedOptionIndex] : undefined;\n }, [options, selectedOptionIndex]);\n\n const openedClassNames = React.useMemo(\n () =>\n classNames(\n opened &&\n dropdownOffsetDistance === 0 &&\n (popperPlacement?.includes('top')\n ? styles['CustomSelect--pop-up']\n : styles['CustomSelect--pop-down']),\n ),\n [dropdownOffsetDistance, opened, popperPlacement],\n );\n\n const resetKeyboardInput = React.useCallback(() => {\n setKeyboardInput('');\n }, []);\n\n const scrollToElement = React.useCallback((index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = dropdown ? (dropdown.children[index] as HTMLElement) : null;\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n }, []);\n\n const isValidIndex = React.useCallback(\n (index: number) => {\n return index >= 0 && index < (options.length ?? 0);\n },\n [options.length],\n );\n\n const focusOptionByIndex = React.useCallback(\n (index: number | undefined, scrollTo = true) => {\n if (index === undefined || index < 0 || index > (options.length ?? 0) - 1) {\n return;\n }\n\n const option = options[index];\n\n if (option?.disabled) {\n return;\n }\n\n if (scrollTo) {\n scrollToElement(index);\n }\n\n // Это оптимизация, прежде всего, под `onMouseOver`\n setFocusedOptionIndex((focusedOptionIndex) =>\n focusedOptionIndex !== index ? index : focusedOptionIndex,\n );\n },\n [options, scrollToElement],\n );\n\n const areOptionsShown = React.useCallback(() => {\n return scrollBoxRef.current !== null;\n }, []);\n\n const setScrollBoxRef = React.useCallback(\n (ref: HTMLDivElement | null) => {\n scrollBoxRef.current = ref;\n\n if (ref && selectedOptionIndex !== undefined && isValidIndex(selectedOptionIndex)) {\n {\n scrollToElement(selectedOptionIndex, true);\n }\n }\n },\n [isValidIndex, scrollToElement, selectedOptionIndex],\n );\n\n const onKeyboardInput = React.useCallback(\n (key: string) => {\n const fullInput = keyboardInput + key;\n\n const optionIndex = options.findIndex((option) => {\n return getTitleFromChildren(option.label).toLowerCase().includes(fullInput);\n });\n\n if (optionIndex !== undefined && optionIndex > -1) {\n focusOptionByIndex(optionIndex);\n }\n\n setKeyboardInput(fullInput);\n },\n [focusOptionByIndex, keyboardInput, options],\n );\n\n /**\n * Note: сбрасывать `options` через `setOptions(optionsProp)` не нужно.\n * Сброс происходит в одном из эффекте `updateOptionsAndSelectedOptionIndex()`.\n */\n const close = React.useCallback(() => {\n resetKeyboardInput();\n\n setInputValue('');\n setOpened(false);\n setFocusedOptionIndex(-1);\n onClose?.();\n }, [onClose, resetKeyboardInput]);\n\n const selectFocused = React.useCallback(() => {\n if (focusedOptionIndex !== undefined && isValidIndex(focusedOptionIndex)) {\n const item = options[focusedOptionIndex];\n\n setNativeSelectValue(item?.value);\n close();\n }\n }, [close, focusedOptionIndex, isValidIndex, options]);\n\n const open = React.useCallback(() => {\n setOpened(true);\n setFocusedOptionIndex(selectedOptionIndex);\n\n if (typeof onOpen === 'function') {\n onOpen();\n }\n }, [onOpen, selectedOptionIndex]);\n\n const onBlur = React.useCallback(() => {\n close();\n const event = new Event('blur');\n selectElRef.current?.dispatchEvent(event);\n }, [close, selectElRef]);\n\n const resetFocusedOption = React.useCallback(() => {\n setFocusedOptionIndex(-1);\n }, []);\n\n const onFocus = React.useCallback(() => {\n const event = new Event('focus');\n selectElRef.current?.dispatchEvent(event);\n }, [selectElRef]);\n\n const onClick = React.useCallback(() => {\n if (opened) {\n close();\n } else {\n open();\n }\n }, [close, open, opened]);\n\n const handleKeyUp = React.useMemo(() => debounce(resetKeyboardInput, 1000), [resetKeyboardInput]);\n\n const focusOption = React.useCallback(\n (type: 'next' | 'prev') => {\n let index = focusedOptionIndex;\n\n if (type === 'next') {\n const nextIndex = findIndexAfter(options, index);\n index = nextIndex === -1 ? findIndexAfter(options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === 'prev') {\n const beforeIndex = findIndexBefore(options, index);\n index = beforeIndex === -1 ? findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n focusOptionByIndex(index);\n },\n [focusOptionByIndex, focusedOptionIndex, options],\n );\n\n React.useEffect(\n function updateOptionsAndSelectedOptionIndex() {\n const value = props.value ?? nativeSelectValue ?? props.defaultValue;\n\n const options =\n searchable && inputValue !== undefined\n ? filter(optionsProp, inputValue, filterFn)\n : optionsProp;\n\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, value, allowClearButton));\n },\n [\n filterFn,\n inputValue,\n nativeSelectValue,\n optionsProp,\n props.defaultValue,\n props.value,\n searchable,\n allowClearButton,\n ],\n );\n\n /**\n * Нужен для правильного поведения обработчика onClick на select. Фильтрует клики, которые были сделаны по\n * выпадающему списку.\n */\n const onLabelClick = React.useCallback((e: React.MouseEvent<HTMLLabelElement>) => {\n if (scrollBoxRef.current?.contains(e.target as Node)) {\n e.preventDefault();\n }\n }, []);\n\n const onNativeSelectChange: React.ChangeEventHandler<HTMLSelectElement> = (e) => {\n const newSelectedOptionIndex = findSelectedIndex(\n options,\n e.currentTarget.value,\n allowClearButton,\n );\n\n if (selectedOptionIndex !== newSelectedOptionIndex) {\n if (!isControlledOutside) {\n setSelectedOptionIndex(newSelectedOptionIndex);\n }\n onChange?.(e);\n }\n };\n\n const onInputKeyDown: React.KeyboardEventHandler<HTMLInputElement> = React.useCallback(\n (event) => {\n ['ArrowUp', 'ArrowDown', 'Escape', 'Enter'].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case 'ArrowUp':\n areOptionsShown() && focusOption('prev');\n break;\n case 'ArrowDown':\n areOptionsShown() && focusOption('next');\n break;\n case 'Escape':\n close();\n break;\n case 'Enter':\n areOptionsShown() && selectFocused();\n break;\n }\n },\n [areOptionsShown, close, focusOption, selectFocused],\n );\n\n const onInputChange: React.ChangeEventHandler<HTMLInputElement> = React.useCallback(\n (e) => {\n // TODO [>=6]: удалить `onInputChangeProp`.\n if (onInputChangeProp) {\n const options = onInputChangeProp(e, optionsProp);\n if (options) {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Этот метод фильтрации устарел. Возвращаемое значение onInputChange будет ' +\n 'проигнорировано в v6.0.0. Для фильтрации обновляйте props.options самостоятельно или используйте свойство filterFn.',\n );\n }\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, nativeSelectValue, allowClearButton));\n }\n } else {\n const options = filter(optionsProp, e.target.value, filterFn);\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, nativeSelectValue, allowClearButton));\n }\n setInputValue(e.target.value);\n },\n [filterFn, nativeSelectValue, onInputChangeProp, optionsProp, allowClearButton],\n );\n\n const handleKeyDownSelect = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key.length === 1 && event.key !== ' ') {\n onKeyboardInput(event.key);\n return;\n }\n\n ['ArrowUp', 'ArrowDown', 'Escape', 'Enter'].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case 'ArrowUp':\n if (opened) {\n areOptionsShown() && focusOption('prev');\n } else {\n open();\n }\n break;\n case 'ArrowDown':\n if (opened) {\n areOptionsShown() && focusOption('next');\n } else {\n open();\n }\n break;\n case 'Escape':\n close();\n break;\n case 'Enter':\n case 'Spacebar':\n case ' ':\n if (opened) {\n areOptionsShown() && selectFocused();\n } else {\n open();\n }\n break;\n }\n },\n [areOptionsShown, close, focusOption, onKeyboardInput, open, opened, selectFocused],\n );\n\n const handleOptionClick = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget,\n );\n const option = options[index];\n\n if (option && !option.disabled) {\n selectFocused();\n }\n },\n [options, selectFocused],\n );\n\n const handleOptionHover = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n focusOptionByIndex(\n Array.prototype.indexOf.call(e.currentTarget.parentNode?.children, e.currentTarget),\n false,\n );\n },\n [focusOptionByIndex],\n );\n\n const renderOption = React.useCallback(\n (option: CustomSelectOptionInterface, index: number) => {\n const hovered = index === focusedOptionIndex;\n const selected = index === selectedOptionIndex;\n\n return (\n <React.Fragment key={`${option.value}`}>\n {renderOptionProp({\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: handleOptionClick,\n onMouseDown: handleOptionDown,\n // Используем `onMouseOver` вместо `onMouseEnter`.\n // При параметре `searchable`, обновляется \"ребёнок\", из-за чего `onMouseEnter` не срабатывает в следующих кейсах:\n // 1. До загрузки выпадающего списка, курсор мышки находится над произвольным элементом этого списка.\n // > Лечение: только увод курсора мыши и возвращении его обратно вызывает событие `onMouseEnter` на этот элемент.\n // 2. Если это тач-устройство.\n // > Лечение: нужно нажать на какой-нибудь произвольный элемент списка, после чего `onMouseEnter` будет работать на соседние элементы,\n // но не на тот, на который нажали в первый раз.\n // Более подробно по ссылке https://github.com/facebook/react/issues/13956#issuecomment-1082055744\n onMouseOver: handleOptionHover,\n })}\n </React.Fragment>\n );\n },\n [\n focusedOptionIndex,\n handleOptionClick,\n handleOptionHover,\n renderOptionProp,\n selectedOptionIndex,\n ],\n );\n\n const resolvedContent = React.useMemo(() => {\n const defaultDropdownContent =\n options?.length > 0 ? (\n options.map(renderOption)\n ) : (\n <Footnote className={styles['CustomSelect__empty']}>{emptyText}</Footnote>\n );\n\n if (typeof renderDropdown === 'function') {\n return renderDropdown({ defaultDropdownContent });\n } else {\n return defaultDropdownContent;\n }\n }, [emptyText, options, renderDropdown, renderOption]);\n\n const clearButtonShown = allowClearButton && !opened && nativeSelectValue !== '';\n\n const clearButton = React.useMemo(() => {\n if (!clearButtonShown) {\n return null;\n }\n\n return (\n <ClearButton\n className={iconProp === undefined ? styles['CustomSelect--clear-icon'] : undefined}\n onClick={() => setNativeSelectValue('')}\n />\n );\n }, [clearButtonShown, ClearButton, iconProp]);\n\n const icon = React.useMemo(() => {\n if (iconProp !== undefined) {\n return iconProp;\n }\n\n return (\n <DropdownIcon\n className={clearButtonShown ? styles['CustomSelect__dropdown-icon'] : undefined}\n opened={opened}\n />\n );\n }, [clearButtonShown, iconProp, opened]);\n\n const afterIcons = (icon || clearButtonShown) && (\n <React.Fragment>\n {clearButton}\n {icon}\n </React.Fragment>\n );\n\n return (\n <label\n className={classNames(\n styles['CustomSelect'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n className,\n )}\n style={style}\n ref={handleRootRef}\n onClick={onLabelClick}\n >\n {opened && searchable ? (\n <Input\n {...restProps}\n autoFocus\n onBlur={onBlur}\n className={openedClassNames}\n value={inputValue}\n onKeyDown={onInputKeyDown}\n onChange={onInputChange}\n // TODO Ожидается, что клик поймает нативный select, но его перехватывает Input. К сожалению, это приводит к конфликтам типизации.\n // TODO Нужно перестать пытаться превратить CustomSelect в select. Тогда эта проблема уйдёт.\n // @ts-expect-error: TS2322 MouseEventHandler<HTMLSelectElement> !== MouseEventHandler<HTMLInputElement>\n onClick={props.onClick}\n before={before}\n after={afterIcons}\n mode={getFormFieldModeFromSelectType(selectType)}\n />\n ) : (\n <SelectMimicry\n {...restProps}\n aria-hidden\n onClick={onClick}\n onKeyDown={handleKeyDownSelect}\n onKeyUp={handleKeyUp}\n onFocus={onFocus}\n onBlur={onBlur}\n className={openedClassNames}\n before={before}\n after={afterIcons}\n selectType={selectType}\n >\n {selected?.label}\n </SelectMimicry>\n )}\n <select\n ref={selectElRef}\n name={name}\n onChange={onNativeSelectChange}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onClick={props.onClick}\n value={nativeSelectValue}\n aria-hidden\n className={styles['CustomSelect__control']}\n >\n {allowClearButton && <option key=\"\" value=\"\" />}\n {optionsProp.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </select>\n {opened && (\n <CustomSelectDropdown\n targetRef={containerRef}\n placement={popupDirection}\n scrollBoxRef={setScrollBoxRef}\n onPlacementChange={setPopperPlacement}\n onMouseLeave={resetFocusedOption}\n fetching={fetching}\n offsetDistance={dropdownOffsetDistance}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n autoHideScrollbar={autoHideScrollbar}\n autoHideScrollbarDelay={autoHideScrollbarDelay}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </label>\n );\n}\n"],"names":["CustomSelect","sizeYClassNames","none","SizeType","COMPACT","findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","warn","warnOnce","checkOptionsValueType","Set","map","item","value","size","defaultRenderOptionFn","props","CustomSelectOption","handleOptionDown","e","preventDefault","findSelectedIndex","withClear","Number","filter","inputValue","filterFn","defaultOptions","React","useState","opened","setOpened","before","name","className","getRef","getRootRef","popupDirection","style","onChange","children","onInputChange","onInputChangeProp","renderDropdown","onOpen","onClose","fetching","forceDropdownPortal","selectType","autoHideScrollbar","autoHideScrollbarDelay","searchable","renderOptionProp","renderOption","optionsProp","emptyText","defaultFilterFn","icon","iconProp","ClearButton","CustomSelectClearButton","allowClearButton","dropdownOffsetDistance","fixDropdownWidth","restProps","process","env","NODE_ENV","useAdaptivity","sizeY","containerRef","useRef","handleRootRef","useExternRef","scrollBoxRef","selectElRef","focusedOptionIndex","setFocusedOptionIndex","undefined","isControlledOutside","setIsControlledOutside","setInputValue","defaultValue","nativeSelectValue","setNativeSelectValue","keyboardInput","setKeyboardInput","popperPlacement","setPopperPlacement","setOptions","selectedOptionIndex","setSelectedOptionIndex","useEffect","useIsomorphicLayoutEffect","some","event","Event","bubbles","current","dispatchEvent","selected","useMemo","openedClassNames","classNames","includes","resetKeyboardInput","useCallback","scrollToElement","index","center","dropdown","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","isValidIndex","focusOptionByIndex","scrollTo","areOptionsShown","setScrollBoxRef","ref","onKeyboardInput","key","fullInput","optionIndex","getTitleFromChildren","label","toLowerCase","close","selectFocused","open","onBlur","resetFocusedOption","onFocus","onClick","handleKeyUp","debounce","focusOption","type","nextIndex","beforeIndex","updateOptionsAndSelectedOptionIndex","onLabelClick","contains","target","onNativeSelectChange","newSelectedOptionIndex","currentTarget","onInputKeyDown","handleKeyDownSelect","handleOptionClick","Array","prototype","indexOf","call","parentNode","handleOptionHover","hovered","Fragment","onMouseDown","onMouseOver","resolvedContent","defaultDropdownContent","Footnote","clearButtonShown","clearButton","DropdownIcon","afterIcons","REGULAR","Input","autoFocus","onKeyDown","after","mode","getFormFieldModeFromSelectType","SelectMimicry","aria-hidden","onKeyUp","select","CustomSelectDropdown","targetRef","placement","onPlacementChange","onMouseLeave","offsetDistance","sameWidth","forcePortal"],"mappings":"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"}
@@ -50,7 +50,7 @@ var CustomSelectOption = function(_param) {
50
50
  styleProp
51
51
  ]);
52
52
  if (!!option && process.env.NODE_ENV === "development") {
53
- // TODO v6.0.0. Удалить св-во `option`
53
+ // TODO [>=6]: Удалить св-во `option`
54
54
  warn("Свойство option было добавлено по ошибке и будет удалено в v6.0.0.");
55
55
  }
56
56
  return /*#__PURE__*/ _react.createElement(_paragraph.Paragraph, _objectSpreadProps(_objectSpread({}, restProps), {