@vkontakte/vkui 6.5.0 → 6.5.2

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 (334) hide show
  1. package/dist/cjs/components/Button/Button.js +1 -1
  2. package/dist/cjs/components/Button/Button.js.map +1 -1
  3. package/dist/cjs/components/Cell/Cell.d.ts.map +1 -1
  4. package/dist/cjs/components/Cell/Cell.js +10 -14
  5. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  6. package/dist/cjs/components/ChipsInputBase/Chip/Chip.js +2 -2
  7. package/dist/cjs/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  8. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +9 -9
  9. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  10. package/dist/cjs/components/Clickable/Clickable.d.ts.map +1 -1
  11. package/dist/cjs/components/Clickable/Clickable.js +1 -1
  12. package/dist/cjs/components/Clickable/Clickable.js.map +1 -1
  13. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +3 -13
  14. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  15. package/dist/cjs/components/CustomSelect/CustomSelect.js +45 -70
  16. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  17. package/dist/cjs/components/CustomSelect/CustomSelectInput.d.ts +4 -2
  18. package/dist/cjs/components/CustomSelect/CustomSelectInput.d.ts.map +1 -1
  19. package/dist/cjs/components/CustomSelect/CustomSelectInput.js +19 -24
  20. package/dist/cjs/components/CustomSelect/CustomSelectInput.js.map +1 -1
  21. package/dist/cjs/components/CustomSelect/helpers.d.ts +8 -0
  22. package/dist/cjs/components/CustomSelect/helpers.d.ts.map +1 -0
  23. package/dist/cjs/components/CustomSelect/helpers.js +76 -0
  24. package/dist/cjs/components/CustomSelect/helpers.js.map +1 -0
  25. package/dist/cjs/components/CustomSelect/types.d.ts +12 -0
  26. package/dist/cjs/components/CustomSelect/types.d.ts.map +1 -0
  27. package/dist/cjs/components/CustomSelect/types.js +6 -0
  28. package/dist/cjs/components/CustomSelect/types.js.map +1 -0
  29. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
  30. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  31. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -14
  32. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  33. package/dist/cjs/components/DateInput/DateInput.d.ts +1 -1
  34. package/dist/cjs/components/DateInput/DateInput.d.ts.map +1 -1
  35. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  36. package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts +1 -1
  37. package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  38. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  39. package/dist/cjs/components/Flex/FlexItem/FlexItem.d.ts +6 -4
  40. package/dist/cjs/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  41. package/dist/cjs/components/Flex/FlexItem/FlexItem.js.map +1 -1
  42. package/dist/cjs/components/Footer/Footer.d.ts +1 -1
  43. package/dist/cjs/components/Footer/Footer.d.ts.map +1 -1
  44. package/dist/cjs/components/Footer/Footer.js +7 -3
  45. package/dist/cjs/components/Footer/Footer.js.map +1 -1
  46. package/dist/cjs/components/FormItem/FormItem.js +2 -2
  47. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  48. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
  49. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +3 -3
  50. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  51. package/dist/cjs/components/Group/Group.d.ts.map +1 -1
  52. package/dist/cjs/components/Group/Group.js +3 -2
  53. package/dist/cjs/components/Group/Group.js.map +1 -1
  54. package/dist/cjs/components/Link/Link.d.ts +1 -1
  55. package/dist/cjs/components/Link/Link.d.ts.map +1 -1
  56. package/dist/cjs/components/Link/Link.js +3 -5
  57. package/dist/cjs/components/Link/Link.js.map +1 -1
  58. package/dist/cjs/components/Removable/Removable.d.ts +5 -1
  59. package/dist/cjs/components/Removable/Removable.d.ts.map +1 -1
  60. package/dist/cjs/components/Removable/Removable.js +8 -5
  61. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  62. package/dist/cjs/components/RootComponent/RootComponent.d.ts +1 -1
  63. package/dist/cjs/components/RootComponent/RootComponent.d.ts.map +1 -1
  64. package/dist/cjs/components/RootComponent/RootComponent.js +1 -1
  65. package/dist/cjs/components/RootComponent/RootComponent.js.map +1 -1
  66. package/dist/cjs/components/Search/Search.d.ts.map +1 -1
  67. package/dist/cjs/components/Search/Search.js +3 -2
  68. package/dist/cjs/components/Search/Search.js.map +1 -1
  69. package/dist/cjs/components/Select/Select.d.ts.map +1 -1
  70. package/dist/cjs/components/Select/Select.js +1 -2
  71. package/dist/cjs/components/Select/Select.js.map +1 -1
  72. package/dist/cjs/components/SelectTypography/SelectTypography.d.ts +2 -2
  73. package/dist/cjs/components/SelectTypography/SelectTypography.d.ts.map +1 -1
  74. package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
  75. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +1 -1
  76. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  77. package/dist/cjs/components/SimpleCell/SimpleCell.js +1 -1
  78. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  79. package/dist/cjs/components/Snackbar/Snackbar.js +2 -2
  80. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  81. package/dist/cjs/components/ToolButton/ToolButton.d.ts +1 -1
  82. package/dist/cjs/components/ToolButton/ToolButton.d.ts.map +1 -1
  83. package/dist/cjs/components/ToolButton/ToolButton.js +1 -3
  84. package/dist/cjs/components/ToolButton/ToolButton.js.map +1 -1
  85. package/dist/cjs/components/View/View.d.ts.map +1 -1
  86. package/dist/cjs/components/View/View.js +16 -32
  87. package/dist/cjs/components/View/View.js.map +1 -1
  88. package/dist/cjs/hooks/useEnsuredControl.d.ts.map +1 -1
  89. package/dist/cjs/hooks/useEnsuredControl.js +27 -3
  90. package/dist/cjs/hooks/useEnsuredControl.js.map +1 -1
  91. package/dist/cjs/hooks/useIsClient.d.ts +1 -1
  92. package/dist/cjs/hooks/useIsClient.js.map +1 -1
  93. package/dist/cjs/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  94. package/dist/components/Button/Button.js +2 -2
  95. package/dist/components/Button/Button.js.map +1 -1
  96. package/dist/components/Cell/Cell.d.ts.map +1 -1
  97. package/dist/components/Cell/Cell.js +11 -15
  98. package/dist/components/Cell/Cell.js.map +1 -1
  99. package/dist/components/ChipsInputBase/Chip/Chip.js +3 -3
  100. package/dist/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  101. package/dist/components/ChipsSelect/ChipsSelect.js +9 -9
  102. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  103. package/dist/components/Clickable/Clickable.d.ts.map +1 -1
  104. package/dist/components/Clickable/Clickable.js +1 -1
  105. package/dist/components/Clickable/Clickable.js.map +1 -1
  106. package/dist/components/CustomSelect/CustomSelect.d.ts +3 -13
  107. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  108. package/dist/components/CustomSelect/CustomSelect.js +37 -62
  109. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  110. package/dist/components/CustomSelect/CustomSelectInput.d.ts +4 -2
  111. package/dist/components/CustomSelect/CustomSelectInput.d.ts.map +1 -1
  112. package/dist/components/CustomSelect/CustomSelectInput.js +19 -24
  113. package/dist/components/CustomSelect/CustomSelectInput.js.map +1 -1
  114. package/dist/components/CustomSelect/helpers.d.ts +8 -0
  115. package/dist/components/CustomSelect/helpers.d.ts.map +1 -0
  116. package/dist/components/CustomSelect/helpers.js +48 -0
  117. package/dist/components/CustomSelect/helpers.js.map +1 -0
  118. package/dist/components/CustomSelect/types.d.ts +12 -0
  119. package/dist/components/CustomSelect/types.d.ts.map +1 -0
  120. package/dist/components/CustomSelect/types.js +3 -0
  121. package/dist/components/CustomSelect/types.js.map +1 -0
  122. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
  123. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  124. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -14
  125. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  126. package/dist/components/DateInput/DateInput.d.ts +1 -1
  127. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  128. package/dist/components/DateInput/DateInput.js.map +1 -1
  129. package/dist/components/DateRangeInput/DateRangeInput.d.ts +1 -1
  130. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  131. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  132. package/dist/components/Flex/FlexItem/FlexItem.d.ts +6 -4
  133. package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  134. package/dist/components/Flex/FlexItem/FlexItem.js.map +1 -1
  135. package/dist/components/Footer/Footer.d.ts +1 -1
  136. package/dist/components/Footer/Footer.d.ts.map +1 -1
  137. package/dist/components/Footer/Footer.js +7 -3
  138. package/dist/components/Footer/Footer.js.map +1 -1
  139. package/dist/components/FormItem/FormItem.js +3 -3
  140. package/dist/components/FormItem/FormItem.js.map +1 -1
  141. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
  142. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +4 -4
  143. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  144. package/dist/components/Group/Group.d.ts.map +1 -1
  145. package/dist/components/Group/Group.js +3 -2
  146. package/dist/components/Group/Group.js.map +1 -1
  147. package/dist/components/Link/Link.d.ts +1 -1
  148. package/dist/components/Link/Link.d.ts.map +1 -1
  149. package/dist/components/Link/Link.js +4 -6
  150. package/dist/components/Link/Link.js.map +1 -1
  151. package/dist/components/Removable/Removable.d.ts +5 -1
  152. package/dist/components/Removable/Removable.d.ts.map +1 -1
  153. package/dist/components/Removable/Removable.js +9 -6
  154. package/dist/components/Removable/Removable.js.map +1 -1
  155. package/dist/components/RootComponent/RootComponent.d.ts +1 -1
  156. package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
  157. package/dist/components/RootComponent/RootComponent.js +1 -1
  158. package/dist/components/RootComponent/RootComponent.js.map +1 -1
  159. package/dist/components/Search/Search.d.ts.map +1 -1
  160. package/dist/components/Search/Search.js +3 -2
  161. package/dist/components/Search/Search.js.map +1 -1
  162. package/dist/components/Select/Select.d.ts.map +1 -1
  163. package/dist/components/Select/Select.js +1 -2
  164. package/dist/components/Select/Select.js.map +1 -1
  165. package/dist/components/SelectTypography/SelectTypography.d.ts +2 -2
  166. package/dist/components/SelectTypography/SelectTypography.d.ts.map +1 -1
  167. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  168. package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
  169. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  170. package/dist/components/SimpleCell/SimpleCell.js +1 -1
  171. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  172. package/dist/components/Snackbar/Snackbar.js +3 -3
  173. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  174. package/dist/components/ToolButton/ToolButton.d.ts +1 -1
  175. package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
  176. package/dist/components/ToolButton/ToolButton.js +2 -4
  177. package/dist/components/ToolButton/ToolButton.js.map +1 -1
  178. package/dist/components/View/View.d.ts.map +1 -1
  179. package/dist/components/View/View.js +17 -33
  180. package/dist/components/View/View.js.map +1 -1
  181. package/dist/components.css +3 -3
  182. package/dist/components.css.map +1 -1
  183. package/dist/components.js.tmp +260 -263
  184. package/dist/cssm/components/Button/Button.js +2 -2
  185. package/dist/cssm/components/Button/Button.js.map +1 -1
  186. package/dist/cssm/components/Cell/Cell.d.ts.map +1 -1
  187. package/dist/cssm/components/Cell/Cell.js +11 -14
  188. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  189. package/dist/cssm/components/Cell/Cell.module.css +0 -4
  190. package/dist/cssm/components/ChipsInputBase/Chip/Chip.js +3 -3
  191. package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  192. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +9 -9
  193. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  194. package/dist/cssm/components/Clickable/Clickable.d.ts.map +1 -1
  195. package/dist/cssm/components/Clickable/Clickable.js +1 -1
  196. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  197. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +3 -13
  198. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  199. package/dist/cssm/components/CustomSelect/CustomSelect.js +36 -59
  200. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  201. package/dist/cssm/components/CustomSelect/CustomSelectInput.d.ts +4 -2
  202. package/dist/cssm/components/CustomSelect/CustomSelectInput.d.ts.map +1 -1
  203. package/dist/cssm/components/CustomSelect/CustomSelectInput.js +16 -21
  204. package/dist/cssm/components/CustomSelect/CustomSelectInput.js.map +1 -1
  205. package/dist/cssm/components/CustomSelect/CustomSelectInput.module.css +74 -40
  206. package/dist/cssm/components/CustomSelect/helpers.d.ts +8 -0
  207. package/dist/cssm/components/CustomSelect/helpers.d.ts.map +1 -0
  208. package/dist/cssm/components/CustomSelect/helpers.js +44 -0
  209. package/dist/cssm/components/CustomSelect/helpers.js.map +1 -0
  210. package/dist/cssm/components/CustomSelect/types.d.ts +12 -0
  211. package/dist/cssm/components/CustomSelect/types.d.ts.map +1 -0
  212. package/dist/cssm/components/CustomSelect/types.js +3 -0
  213. package/dist/cssm/components/CustomSelect/types.js.map +1 -0
  214. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
  215. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  216. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -13
  217. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  218. package/dist/cssm/components/DateInput/DateInput.d.ts +1 -1
  219. package/dist/cssm/components/DateInput/DateInput.d.ts.map +1 -1
  220. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  221. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +1 -1
  222. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  223. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  224. package/dist/cssm/components/Flex/FlexItem/FlexItem.d.ts +6 -4
  225. package/dist/cssm/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  226. package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
  227. package/dist/cssm/components/Footer/Footer.d.ts +1 -1
  228. package/dist/cssm/components/Footer/Footer.d.ts.map +1 -1
  229. package/dist/cssm/components/Footer/Footer.js +4 -2
  230. package/dist/cssm/components/Footer/Footer.js.map +1 -1
  231. package/dist/cssm/components/FormField/FormField.module.css +36 -23
  232. package/dist/cssm/components/FormItem/FormItem.js +3 -3
  233. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  234. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
  235. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +4 -4
  236. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  237. package/dist/cssm/components/Group/Group.d.ts.map +1 -1
  238. package/dist/cssm/components/Group/Group.js +3 -2
  239. package/dist/cssm/components/Group/Group.js.map +1 -1
  240. package/dist/cssm/components/ImageBase/ImageBase.module.css +0 -4
  241. package/dist/cssm/components/Link/Link.d.ts +1 -1
  242. package/dist/cssm/components/Link/Link.d.ts.map +1 -1
  243. package/dist/cssm/components/Link/Link.js +2 -3
  244. package/dist/cssm/components/Link/Link.js.map +1 -1
  245. package/dist/cssm/components/Removable/Removable.d.ts +5 -1
  246. package/dist/cssm/components/Removable/Removable.d.ts.map +1 -1
  247. package/dist/cssm/components/Removable/Removable.js +7 -5
  248. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  249. package/dist/cssm/components/Removable/Removable.module.css +4 -0
  250. package/dist/cssm/components/RootComponent/RootComponent.d.ts +1 -1
  251. package/dist/cssm/components/RootComponent/RootComponent.d.ts.map +1 -1
  252. package/dist/cssm/components/RootComponent/RootComponent.js +2 -1
  253. package/dist/cssm/components/RootComponent/RootComponent.js.map +1 -1
  254. package/dist/cssm/components/RootComponent/RootComponent.module.css +10 -0
  255. package/dist/cssm/components/Search/Search.d.ts.map +1 -1
  256. package/dist/cssm/components/Search/Search.js +3 -2
  257. package/dist/cssm/components/Search/Search.js.map +1 -1
  258. package/dist/cssm/components/Select/Select.d.ts.map +1 -1
  259. package/dist/cssm/components/Select/Select.js +1 -1
  260. package/dist/cssm/components/Select/Select.js.map +1 -1
  261. package/dist/cssm/components/SelectTypography/SelectTypography.d.ts +2 -2
  262. package/dist/cssm/components/SelectTypography/SelectTypography.d.ts.map +1 -1
  263. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  264. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +1 -1
  265. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  266. package/dist/cssm/components/SimpleCell/SimpleCell.js +1 -1
  267. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  268. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +4 -0
  269. package/dist/cssm/components/Snackbar/Snackbar.js +3 -3
  270. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  271. package/dist/cssm/components/ToolButton/ToolButton.d.ts +1 -1
  272. package/dist/cssm/components/ToolButton/ToolButton.d.ts.map +1 -1
  273. package/dist/cssm/components/ToolButton/ToolButton.js +2 -3
  274. package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
  275. package/dist/cssm/components/View/View.d.ts.map +1 -1
  276. package/dist/cssm/components/View/View.js +17 -33
  277. package/dist/cssm/components/View/View.js.map +1 -1
  278. package/dist/cssm/hooks/useEnsuredControl.d.ts.map +1 -1
  279. package/dist/cssm/hooks/useEnsuredControl.js +27 -3
  280. package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
  281. package/dist/cssm/hooks/useIsClient.d.ts +1 -1
  282. package/dist/cssm/hooks/useIsClient.js +1 -1
  283. package/dist/cssm/hooks/useIsClient.js.map +1 -1
  284. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  285. package/dist/cssm/styles/constants.css +2 -3
  286. package/dist/hooks/useEnsuredControl.d.ts.map +1 -1
  287. package/dist/hooks/useEnsuredControl.js +27 -3
  288. package/dist/hooks/useEnsuredControl.js.map +1 -1
  289. package/dist/hooks/useIsClient.d.ts +1 -1
  290. package/dist/hooks/useIsClient.js +1 -1
  291. package/dist/hooks/useIsClient.js.map +1 -1
  292. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  293. package/dist/vkui.css +3 -3
  294. package/dist/vkui.css.map +1 -1
  295. package/dist/vkui.js.tmp +260 -263
  296. package/package.json +1 -1
  297. package/src/components/Button/Button.tsx +2 -2
  298. package/src/components/Cell/Cell.module.css +0 -4
  299. package/src/components/Cell/Cell.tsx +9 -16
  300. package/src/components/ChipsInputBase/Chip/Chip.tsx +3 -3
  301. package/src/components/ChipsSelect/ChipsSelect.tsx +12 -12
  302. package/src/components/Clickable/Clickable.tsx +4 -1
  303. package/src/components/CustomSelect/CustomSelect.tsx +52 -104
  304. package/src/components/CustomSelect/CustomSelectInput.module.css +55 -35
  305. package/src/components/CustomSelect/CustomSelectInput.tsx +25 -36
  306. package/src/components/CustomSelect/helpers.tsx +61 -0
  307. package/src/components/CustomSelect/types.ts +15 -0
  308. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +3 -17
  309. package/src/components/DateInput/DateInput.tsx +1 -1
  310. package/src/components/DateRangeInput/DateRangeInput.tsx +1 -1
  311. package/src/components/Flex/FlexItem/FlexItem.tsx +6 -4
  312. package/src/components/Footer/Footer.tsx +14 -2
  313. package/src/components/FormField/FormField.module.css +32 -21
  314. package/src/components/FormItem/FormItem.tsx +3 -3
  315. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +4 -8
  316. package/src/components/Group/Group.tsx +3 -2
  317. package/src/components/ImageBase/ImageBase.module.css +0 -4
  318. package/src/components/Link/Link.tsx +1 -3
  319. package/src/components/Removable/Removable.module.css +4 -0
  320. package/src/components/Removable/Removable.tsx +12 -4
  321. package/src/components/RootComponent/RootComponent.module.css +10 -0
  322. package/src/components/RootComponent/RootComponent.tsx +12 -2
  323. package/src/components/Search/Search.tsx +3 -2
  324. package/src/components/Select/Select.tsx +0 -1
  325. package/src/components/SelectTypography/SelectTypography.tsx +2 -5
  326. package/src/components/SimpleCell/SimpleCell.module.css +4 -0
  327. package/src/components/SimpleCell/SimpleCell.tsx +2 -1
  328. package/src/components/Snackbar/Snackbar.tsx +3 -3
  329. package/src/components/ToolButton/ToolButton.tsx +1 -3
  330. package/src/components/View/View.tsx +21 -36
  331. package/src/hooks/useEnsuredControl.ts +38 -4
  332. package/src/hooks/useIsClient.ts +1 -1
  333. package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +1 -1
  334. package/src/styles/constants.css +2 -3
@@ -3,7 +3,7 @@ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
3
  import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import * as React from 'react';
6
- import { classNames, hasReactNode, noop } from '@vkontakte/vkjs';
6
+ import { classNames, hasReactNode } from '@vkontakte/vkjs';
7
7
  import { useAdaptivity } from '../../hooks/useAdaptivity';
8
8
  import { useExternRef } from '../../hooks/useExternRef';
9
9
  import { useObjectMemo } from '../../hooks/useObjectMemo';
@@ -25,7 +25,7 @@ const stylesStatus = {
25
25
  /**
26
26
  * @see https://vkcom.github.io/VKUI/#/FormItem
27
27
  */ export const FormItem = (_param)=>{
28
- var { children, top, topId, topMultiline, topComponent: topComponentProp, bottom, status = 'default', removable, onRemove = noop, removePlaceholder = 'Удалить', getRootRef, htmlFor, bottomId, noPadding, topNode, required = false } = _param, restProps = _object_without_properties(_param, [
28
+ var { children, top, topId, topMultiline, topComponent: topComponentProp, bottom, status = 'default', removable, onRemove, removePlaceholder = 'Удалить', getRootRef, htmlFor, bottomId, noPadding, topNode, required = false } = _param, restProps = _object_without_properties(_param, [
29
29
  "children",
30
30
  "top",
31
31
  "topId",
@@ -78,7 +78,7 @@ const stylesStatus = {
78
78
  align: "start",
79
79
  onRemove: (e)=>{
80
80
  if (rootEl === null || rootEl === void 0 ? void 0 : rootEl.current) {
81
- onRemove(e, rootEl.current);
81
+ onRemove === null || onRemove === void 0 ? void 0 : onRemove(e, rootEl.current);
82
82
  }
83
83
  },
84
84
  removePlaceholder: removePlaceholder,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FormItem/FormItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { HasComponent, HasRootRef } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { FormItemTop } from './FormItemTop/FormItemTop';\nimport { FormItemTopAside } from './FormItemTop/FormItemTopAside';\nimport { FormItemTopLabel } from './FormItemTop/FormItemTopLabel';\nimport { FormItemContext } from './context';\nimport styles from './FormItem.module.css';\n\nconst sizeYClassNames = {\n none: classNames(styles['FormItem--sizeY-none'], 'vkuiInternalFormItem--sizeY-none'),\n ['compact']: classNames(styles['FormItem--sizeY-compact'], 'vkuiInternalFormItem--sizeY-compact'),\n};\n\nconst stylesStatus = {\n error: classNames(styles['FormItem--status-error'], 'vkuiInternalFormItem--status-error'),\n valid: classNames(styles['FormItem--status-valid'], 'vkuiInternalFormItem--status-valid'),\n};\n\nexport interface FormItemProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent,\n RemovableProps {\n top?: React.ReactNode;\n topId?: string;\n /**\n * Многострочный вывод заголовка. По умолчанию текст не переносится при переполнении.\n */\n topMultiline?: boolean;\n /**\n * Позволяет поменять тег используемый для top\n * Если оставить пустым, то тег top будет span.\n * Если оставить пустым и использовать htmlFor, то тег top будет label.\n */\n topComponent?: React.ElementType;\n /**\n * Позволяет полностью заменить шапку поля пользовательским компонентом.\n *\n * @since 6.1.0\n *\n * TODO [>=7]: удалить и использовать top - оно будет принимать либо строку, либо подкомпонент\n */\n topNode?: React.ReactNode;\n bottom?: React.ReactNode;\n /**\n * Передаётся при использовании `bottom`.\n *\n * Должен совпадать с `aria-describedby`, который передаётся в компонент, отвечающий за пользовательский ввод.\n */\n bottomId?: string;\n status?: 'default' | 'error' | 'valid';\n /**\n * Дает возможность удалить `FormItem`. Рекомендуется использовать только для `Input` или `Select`.\n *\n * Режим `indent` предназначен для визуального отступа\n */\n removable?: boolean | 'indent';\n /**\n * Удаляет внешние отступы вокруг компонента\n * @since 5.8.0\n */\n noPadding?: boolean;\n /**\n * Помечает поле обязательным\n */\n required?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormItem\n */\nexport const FormItem: React.FC<FormItemProps> & {\n Top: typeof FormItemTop;\n TopLabel: typeof FormItemTopLabel;\n TopAside: typeof FormItemTopAside;\n} = ({\n children,\n top,\n topId,\n topMultiline,\n topComponent: topComponentProp,\n bottom,\n status = 'default',\n removable,\n onRemove = noop,\n removePlaceholder = 'Удалить',\n getRootRef,\n htmlFor,\n bottomId,\n noPadding,\n topNode,\n required = false,\n ...restProps\n}: FormItemProps) => {\n const rootEl = useExternRef(getRootRef);\n const { sizeY = 'none' } = useAdaptivity();\n\n const wrappedChildren = (\n <React.Fragment>\n {hasReactNode(topNode) ? (\n topNode\n ) : hasReactNode(top) ? (\n <FormItemTop>\n <FormItemTopLabel\n htmlFor={htmlFor}\n Component={topComponentProp}\n multiline={topMultiline}\n id={topId}\n >\n {top}\n </FormItemTopLabel>\n </FormItemTop>\n ) : null}\n {children}\n {hasReactNode(bottom) && (\n <Footnote\n className={styles['FormItem__bottom']}\n id={bottomId}\n role={status === 'error' ? 'alert' : undefined}\n >\n {bottom}\n </Footnote>\n )}\n </React.Fragment>\n );\n\n const context = useObjectMemo({ required, topMultiline });\n\n return (\n <RootComponent\n {...restProps}\n getRootRef={rootEl}\n baseClassName={classNames(\n styles['FormItem'],\n !noPadding && styles['FormItem--withPadding'],\n 'vkuiInternalFormItem',\n status !== 'default' && stylesStatus[status],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n hasReactNode(top) &&\n classNames(styles['FormItem--withTop'], 'vkuiInternalFormItem--withTop'),\n removable && classNames(styles['FormItem--removable'], 'vkuiInternalFormItem--removable'),\n )}\n >\n <FormItemContext.Provider value={context}>\n {removable ? (\n <Removable\n align=\"start\"\n onRemove={(e) => {\n if (rootEl?.current) {\n onRemove(e, rootEl.current);\n }\n }}\n removePlaceholder={removePlaceholder}\n indent={removable === 'indent'}\n >\n <div\n className={classNames(\n styles['FormItem__removable'],\n 'vkuiInternalFormItem__removable',\n )}\n >\n {wrappedChildren}\n </div>\n </Removable>\n ) : (\n wrappedChildren\n )}\n </FormItemContext.Provider>\n </RootComponent>\n );\n};\n\nFormItem.displayName = 'FormItem';\n\nFormItem.Top = FormItemTop;\nFormItem.Top.displayName = 'FormItem.Top';\n\nFormItem.TopLabel = FormItemTopLabel;\nFormItem.TopLabel.displayName = 'FormItem.TopLabel';\n\nFormItem.TopAside = FormItemTopAside;\nFormItem.TopAside.displayName = 'FormItem.TopAside';\n"],"names":["React","classNames","hasReactNode","noop","useAdaptivity","useExternRef","useObjectMemo","Removable","RootComponent","Footnote","FormItemTop","FormItemTopAside","FormItemTopLabel","FormItemContext","sizeYClassNames","none","stylesStatus","error","valid","FormItem","children","top","topId","topMultiline","topComponent","topComponentProp","bottom","status","removable","onRemove","removePlaceholder","getRootRef","htmlFor","bottomId","noPadding","topNode","required","restProps","rootEl","sizeY","wrappedChildren","Fragment","Component","multiline","id","className","role","undefined","context","baseClassName","Provider","value","align","e","current","indent","div","displayName","Top","TopLabel","TopAside"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,EAAEC,IAAI,QAAQ,kBAAkB;AACjE,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,aAAa,QAAQ,4BAA4B;AAE1D,SAASC,SAAS,QAAwB,yBAAyB;AACnE,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,WAAW,QAAQ,4BAA4B;AACxD,SAASC,gBAAgB,QAAQ,iCAAiC;AAClE,SAASC,gBAAgB,QAAQ,iCAAiC;AAClE,SAASC,eAAe,QAAQ,YAAY;AAG5C,MAAMC,kBAAkB;IACtBC,MAAMd,uCAA2C;IACjD,CAAC,UAAU,EAAEA,0CAA8C;AAC7D;AAEA,MAAMe,eAAe;IACnBC,OAAOhB,yCAA6C;IACpDiB,OAAOjB,yCAA6C;AACtD;AAoDA;;CAEC,GACD,OAAO,MAAMkB,WAIT;QAAC,EACHC,QAAQ,EACRC,GAAG,EACHC,KAAK,EACLC,YAAY,EACZC,cAAcC,gBAAgB,EAC9BC,MAAM,EACNC,SAAS,SAAS,EAClBC,SAAS,EACTC,WAAW1B,IAAI,EACf2B,oBAAoB,SAAS,EAC7BC,UAAU,EACVC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,OAAO,EACPC,WAAW,KAAK,EAEF,WADXC;QAhBHjB;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,SAASjC,aAAa0B;IAC5B,MAAM,EAAEQ,QAAQ,MAAM,EAAE,GAAGnC;IAE3B,MAAMoC,gCACJ,MAACxC,MAAMyC,QAAQ;;YACZvC,aAAaiC,WACZA,UACEjC,aAAamB,qBACf,KAACX;0BACC,cAAA,KAACE;oBACCoB,SAASA;oBACTU,WAAWjB;oBACXkB,WAAWpB;oBACXqB,IAAItB;8BAEHD;;iBAGH;YACHD;YACAlB,aAAawB,yBACZ,KAACjB;gBACCoC,SAAS;gBACTD,IAAIX;gBACJa,MAAMnB,WAAW,UAAU,UAAUoB;0BAEpCrB;;;;IAMT,MAAMsB,UAAU1C,cAAc;QAAE8B;QAAUb;IAAa;IAEvD,qBACE,KAACf,uDACK6B;QACJN,YAAYO;QACZW,eAAehD,2BAEb,CAACiC,0CACD,wBACAP,WAAW,aAAaX,YAAY,CAACW,OAAO,EAC5CY,UAAU,aAAazB,eAAe,CAACyB,MAAM,EAC7CrC,aAAamB,QACXpB,oCAAwC,kCAC1C2B,aAAa3B,sCAA0C;kBAGzD,cAAA,KAACY,gBAAgBqC,QAAQ;YAACC,OAAOH;sBAC9BpB,0BACC,KAACrB;gBACC6C,OAAM;gBACNvB,UAAU,CAACwB;oBACT,IAAIf,mBAAAA,6BAAAA,OAAQgB,OAAO,EAAE;wBACnBzB,SAASwB,GAAGf,OAAOgB,OAAO;oBAC5B;gBACF;gBACAxB,mBAAmBA;gBACnByB,QAAQ3B,cAAc;0BAEtB,cAAA,KAAC4B;oBACCX,WAAW5C,sCAET;8BAGDuC;;iBAILA;;;AAKV,EAAE;AAEFrB,SAASsC,WAAW,GAAG;AAEvBtC,SAASuC,GAAG,GAAGhD;AACfS,SAASuC,GAAG,CAACD,WAAW,GAAG;AAE3BtC,SAASwC,QAAQ,GAAG/C;AACpBO,SAASwC,QAAQ,CAACF,WAAW,GAAG;AAEhCtC,SAASyC,QAAQ,GAAGjD;AACpBQ,SAASyC,QAAQ,CAACH,WAAW,GAAG"}
1
+ {"version":3,"sources":["../../../src/components/FormItem/FormItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { HasComponent, HasRootRef } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { FormItemTop } from './FormItemTop/FormItemTop';\nimport { FormItemTopAside } from './FormItemTop/FormItemTopAside';\nimport { FormItemTopLabel } from './FormItemTop/FormItemTopLabel';\nimport { FormItemContext } from './context';\nimport styles from './FormItem.module.css';\n\nconst sizeYClassNames = {\n none: classNames(styles['FormItem--sizeY-none'], 'vkuiInternalFormItem--sizeY-none'),\n ['compact']: classNames(styles['FormItem--sizeY-compact'], 'vkuiInternalFormItem--sizeY-compact'),\n};\n\nconst stylesStatus = {\n error: classNames(styles['FormItem--status-error'], 'vkuiInternalFormItem--status-error'),\n valid: classNames(styles['FormItem--status-valid'], 'vkuiInternalFormItem--status-valid'),\n};\n\nexport interface FormItemProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent,\n RemovableProps {\n top?: React.ReactNode;\n topId?: string;\n /**\n * Многострочный вывод заголовка. По умолчанию текст не переносится при переполнении.\n */\n topMultiline?: boolean;\n /**\n * Позволяет поменять тег используемый для top\n * Если оставить пустым, то тег top будет span.\n * Если оставить пустым и использовать htmlFor, то тег top будет label.\n */\n topComponent?: React.ElementType;\n /**\n * Позволяет полностью заменить шапку поля пользовательским компонентом.\n *\n * @since 6.1.0\n *\n * TODO [>=7]: удалить и использовать top - оно будет принимать либо строку, либо подкомпонент\n */\n topNode?: React.ReactNode;\n bottom?: React.ReactNode;\n /**\n * Передаётся при использовании `bottom`.\n *\n * Должен совпадать с `aria-describedby`, который передаётся в компонент, отвечающий за пользовательский ввод.\n */\n bottomId?: string;\n status?: 'default' | 'error' | 'valid';\n /**\n * Дает возможность удалить `FormItem`. Рекомендуется использовать только для `Input` или `Select`.\n *\n * Режим `indent` предназначен для визуального отступа\n */\n removable?: boolean | 'indent';\n /**\n * Удаляет внешние отступы вокруг компонента\n * @since 5.8.0\n */\n noPadding?: boolean;\n /**\n * Помечает поле обязательным\n */\n required?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormItem\n */\nexport const FormItem: React.FC<FormItemProps> & {\n Top: typeof FormItemTop;\n TopLabel: typeof FormItemTopLabel;\n TopAside: typeof FormItemTopAside;\n} = ({\n children,\n top,\n topId,\n topMultiline,\n topComponent: topComponentProp,\n bottom,\n status = 'default',\n removable,\n onRemove,\n removePlaceholder = 'Удалить',\n getRootRef,\n htmlFor,\n bottomId,\n noPadding,\n topNode,\n required = false,\n ...restProps\n}: FormItemProps) => {\n const rootEl = useExternRef(getRootRef);\n const { sizeY = 'none' } = useAdaptivity();\n\n const wrappedChildren = (\n <React.Fragment>\n {hasReactNode(topNode) ? (\n topNode\n ) : hasReactNode(top) ? (\n <FormItemTop>\n <FormItemTopLabel\n htmlFor={htmlFor}\n Component={topComponentProp}\n multiline={topMultiline}\n id={topId}\n >\n {top}\n </FormItemTopLabel>\n </FormItemTop>\n ) : null}\n {children}\n {hasReactNode(bottom) && (\n <Footnote\n className={styles['FormItem__bottom']}\n id={bottomId}\n role={status === 'error' ? 'alert' : undefined}\n >\n {bottom}\n </Footnote>\n )}\n </React.Fragment>\n );\n\n const context = useObjectMemo({ required, topMultiline });\n\n return (\n <RootComponent\n {...restProps}\n getRootRef={rootEl}\n baseClassName={classNames(\n styles['FormItem'],\n !noPadding && styles['FormItem--withPadding'],\n 'vkuiInternalFormItem',\n status !== 'default' && stylesStatus[status],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n hasReactNode(top) &&\n classNames(styles['FormItem--withTop'], 'vkuiInternalFormItem--withTop'),\n removable && classNames(styles['FormItem--removable'], 'vkuiInternalFormItem--removable'),\n )}\n >\n <FormItemContext.Provider value={context}>\n {removable ? (\n <Removable\n align=\"start\"\n onRemove={(e) => {\n if (rootEl?.current) {\n onRemove?.(e, rootEl.current);\n }\n }}\n removePlaceholder={removePlaceholder}\n indent={removable === 'indent'}\n >\n <div\n className={classNames(\n styles['FormItem__removable'],\n 'vkuiInternalFormItem__removable',\n )}\n >\n {wrappedChildren}\n </div>\n </Removable>\n ) : (\n wrappedChildren\n )}\n </FormItemContext.Provider>\n </RootComponent>\n );\n};\n\nFormItem.displayName = 'FormItem';\n\nFormItem.Top = FormItemTop;\nFormItem.Top.displayName = 'FormItem.Top';\n\nFormItem.TopLabel = FormItemTopLabel;\nFormItem.TopLabel.displayName = 'FormItem.TopLabel';\n\nFormItem.TopAside = FormItemTopAside;\nFormItem.TopAside.displayName = 'FormItem.TopAside';\n"],"names":["React","classNames","hasReactNode","useAdaptivity","useExternRef","useObjectMemo","Removable","RootComponent","Footnote","FormItemTop","FormItemTopAside","FormItemTopLabel","FormItemContext","sizeYClassNames","none","stylesStatus","error","valid","FormItem","children","top","topId","topMultiline","topComponent","topComponentProp","bottom","status","removable","onRemove","removePlaceholder","getRootRef","htmlFor","bottomId","noPadding","topNode","required","restProps","rootEl","sizeY","wrappedChildren","Fragment","Component","multiline","id","className","role","undefined","context","baseClassName","Provider","value","align","e","current","indent","div","displayName","Top","TopLabel","TopAside"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,aAAa,QAAQ,4BAA4B;AAE1D,SAASC,SAAS,QAAwB,yBAAyB;AACnE,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,WAAW,QAAQ,4BAA4B;AACxD,SAASC,gBAAgB,QAAQ,iCAAiC;AAClE,SAASC,gBAAgB,QAAQ,iCAAiC;AAClE,SAASC,eAAe,QAAQ,YAAY;AAG5C,MAAMC,kBAAkB;IACtBC,MAAMb,uCAA2C;IACjD,CAAC,UAAU,EAAEA,0CAA8C;AAC7D;AAEA,MAAMc,eAAe;IACnBC,OAAOf,yCAA6C;IACpDgB,OAAOhB,yCAA6C;AACtD;AAoDA;;CAEC,GACD,OAAO,MAAMiB,WAIT;QAAC,EACHC,QAAQ,EACRC,GAAG,EACHC,KAAK,EACLC,YAAY,EACZC,cAAcC,gBAAgB,EAC9BC,MAAM,EACNC,SAAS,SAAS,EAClBC,SAAS,EACTC,QAAQ,EACRC,oBAAoB,SAAS,EAC7BC,UAAU,EACVC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,OAAO,EACPC,WAAW,KAAK,EAEF,WADXC;QAhBHjB;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,SAASjC,aAAa0B;IAC5B,MAAM,EAAEQ,QAAQ,MAAM,EAAE,GAAGnC;IAE3B,MAAMoC,gCACJ,MAACvC,MAAMwC,QAAQ;;YACZtC,aAAagC,WACZA,UACEhC,aAAakB,qBACf,KAACX;0BACC,cAAA,KAACE;oBACCoB,SAASA;oBACTU,WAAWjB;oBACXkB,WAAWpB;oBACXqB,IAAItB;8BAEHD;;iBAGH;YACHD;YACAjB,aAAauB,yBACZ,KAACjB;gBACCoC,SAAS;gBACTD,IAAIX;gBACJa,MAAMnB,WAAW,UAAU,UAAUoB;0BAEpCrB;;;;IAMT,MAAMsB,UAAU1C,cAAc;QAAE8B;QAAUb;IAAa;IAEvD,qBACE,KAACf,uDACK6B;QACJN,YAAYO;QACZW,eAAe/C,2BAEb,CAACgC,0CACD,wBACAP,WAAW,aAAaX,YAAY,CAACW,OAAO,EAC5CY,UAAU,aAAazB,eAAe,CAACyB,MAAM,EAC7CpC,aAAakB,QACXnB,oCAAwC,kCAC1C0B,aAAa1B,sCAA0C;kBAGzD,cAAA,KAACW,gBAAgBqC,QAAQ;YAACC,OAAOH;sBAC9BpB,0BACC,KAACrB;gBACC6C,OAAM;gBACNvB,UAAU,CAACwB;oBACT,IAAIf,mBAAAA,6BAAAA,OAAQgB,OAAO,EAAE;wBACnBzB,qBAAAA,+BAAAA,SAAWwB,GAAGf,OAAOgB,OAAO;oBAC9B;gBACF;gBACAxB,mBAAmBA;gBACnByB,QAAQ3B,cAAc;0BAEtB,cAAA,KAAC4B;oBACCX,WAAW3C,sCAET;8BAGDsC;;iBAILA;;;AAKV,EAAE;AAEFrB,SAASsC,WAAW,GAAG;AAEvBtC,SAASuC,GAAG,GAAGhD;AACfS,SAASuC,GAAG,CAACD,WAAW,GAAG;AAE3BtC,SAASwC,QAAQ,GAAG/C;AACpBO,SAASwC,QAAQ,CAACF,WAAW,GAAG;AAEhCtC,SAASyC,QAAQ,GAAGjD;AACpBQ,SAASyC,QAAQ,CAACH,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormLayoutGroup.d.ts","sourceRoot":"","sources":["../../../src/components/FormLayoutGroup/FormLayoutGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAa,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAenE,MAAM,WAAW,oBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,cAAc;IAChB,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,oGASzB,oBAAoB,KAAG,KAAK,CAAC,SAyD/B,CAAC"}
1
+ {"version":3,"file":"FormLayoutGroup.d.ts","sourceRoot":"","sources":["../../../src/components/FormLayoutGroup/FormLayoutGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAa,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAenE,MAAM,WAAW,oBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,cAAc;IAChB,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,oGASzB,oBAAoB,KAAG,KAAK,CAAC,SAqD/B,CAAC"}
@@ -3,7 +3,7 @@ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
3
  import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import * as React from 'react';
6
- import { classNames, noop } from '@vkontakte/vkjs';
6
+ import { classNames } from '@vkontakte/vkjs';
7
7
  import { useAdaptivity } from '../../hooks/useAdaptivity';
8
8
  import { useExternRef } from '../../hooks/useExternRef';
9
9
  import { Removable } from '../Removable/Removable';
@@ -15,7 +15,7 @@ const sizeYClassNames = {
15
15
  /**
16
16
  * @see https://vkcom.github.io/VKUI/#/FormLayoutGroup
17
17
  */ export const FormLayoutGroup = (_param)=>{
18
- var { children, mode = 'vertical', removable, segmented, removePlaceholder = 'Удалить', onRemove = noop, getRootRef } = _param, restProps = _object_without_properties(_param, [
18
+ var { children, mode = 'vertical', removable, segmented, removePlaceholder = 'Удалить', onRemove, getRootRef } = _param, restProps = _object_without_properties(_param, [
19
19
  "children",
20
20
  "mode",
21
21
  "removable",
@@ -30,7 +30,7 @@ const sizeYClassNames = {
30
30
  return /*#__PURE__*/ _jsx(RootComponent, _object_spread_props(_object_spread({
31
31
  getRootRef: rootEl,
32
32
  Component: "fieldset",
33
- baseClassName: classNames("vkuiFormLayoutGroup", sizeY !== 'regular' && sizeYClassNames[sizeY], mode === 'horizontal' && classNames("vkuiFormLayoutGroup--mode-horizontal", 'vkuiInternalFormLayoutGroup--mode-horizontal'), mode === 'vertical' && classNames("vkuiFormLayoutGroup--mode-vertical", 'vkuiInternalFormLayoutGroup--mode-vertical'), isRemovable && classNames("vkuiFormLayoutGroup--removable", 'vkuiInternalFormLayoutGroup--removable'), segmented && classNames("vkuiFormLayoutGroup--segmented", 'vkuiInternalFormLayoutGroup--segmented'))
33
+ baseClassName: classNames("vkuiFormLayoutGroup", sizeY !== 'regular' && sizeYClassNames[sizeY], mode === 'horizontal' && classNames("vkuiFormLayoutGroup--mode-horizontal", 'vkuiInternalFormLayoutGroup--mode-horizontal'), mode === 'vertical' && 'vkuiInternalFormLayoutGroup--mode-vertical', isRemovable && classNames("vkuiFormLayoutGroup--removable", 'vkuiInternalFormLayoutGroup--removable'), segmented && classNames("vkuiFormLayoutGroup--segmented", 'vkuiInternalFormLayoutGroup--segmented'))
34
34
  }, restProps), {
35
35
  children: isRemovable ? /*#__PURE__*/ _jsx(Removable, {
36
36
  className: "vkuiFormLayoutGroup__removable",
@@ -38,7 +38,7 @@ const sizeYClassNames = {
38
38
  removePlaceholder: removePlaceholder,
39
39
  onRemove: (e)=>{
40
40
  if (rootEl === null || rootEl === void 0 ? void 0 : rootEl.current) {
41
- onRemove(e, rootEl.current);
41
+ onRemove === null || onRemove === void 0 ? void 0 : onRemove(e, rootEl.current);
42
42
  }
43
43
  },
44
44
  indent: removable === 'indent',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FormLayoutGroup/FormLayoutGroup.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './FormLayoutGroup.module.css';\n\nconst sizeYClassNames = {\n none: classNames(\n styles['FormLayoutGroup--sizeY-none'],\n 'vkuiInternalFormLayoutGroup--sizeY-none',\n ),\n ['compact']: classNames(\n styles['FormLayoutGroup--sizeY-compact'],\n 'vkuiInternalFormLayoutGroup--sizeY-compact',\n ),\n};\n\nexport interface FormLayoutGroupProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n RemovableProps {\n mode?: 'vertical' | 'horizontal';\n /**\n * Только для режима horizontal. Дает возможность удалить всю группу `FormItem`.\n *\n * Режим `indent` предназначен для визуального отступа.\n */\n removable?: boolean | 'indent';\n\n /**\n * Дает возможность склеить несколько `FormItem`.\n */\n segmented?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormLayoutGroup\n */\nexport const FormLayoutGroup = ({\n children,\n mode = 'vertical',\n removable,\n segmented,\n removePlaceholder = 'Удалить',\n onRemove = noop,\n getRootRef,\n ...restProps\n}: FormLayoutGroupProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n const isRemovable = removable && mode === 'horizontal';\n const rootEl = useExternRef(getRootRef);\n\n return (\n <RootComponent\n getRootRef={rootEl}\n Component=\"fieldset\"\n baseClassName={classNames(\n styles['FormLayoutGroup'],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n mode === 'horizontal' &&\n classNames(\n styles['FormLayoutGroup--mode-horizontal'],\n 'vkuiInternalFormLayoutGroup--mode-horizontal',\n ),\n mode === 'vertical' &&\n classNames(\n styles['FormLayoutGroup--mode-vertical'],\n 'vkuiInternalFormLayoutGroup--mode-vertical',\n ),\n isRemovable &&\n classNames(\n styles['FormLayoutGroup--removable'],\n 'vkuiInternalFormLayoutGroup--removable',\n ),\n segmented &&\n classNames(\n styles['FormLayoutGroup--segmented'],\n 'vkuiInternalFormLayoutGroup--segmented',\n ),\n )}\n {...restProps}\n >\n {isRemovable ? (\n <Removable\n className={styles['FormLayoutGroup__removable']}\n align=\"start\"\n removePlaceholder={removePlaceholder}\n onRemove={(e) => {\n if (rootEl?.current) {\n onRemove(e, rootEl.current);\n }\n }}\n indent={removable === 'indent'}\n >\n {children}\n </Removable>\n ) : (\n <React.Fragment>\n {children}\n <span className={styles['FormLayoutGroup__offset']} aria-hidden />\n </React.Fragment>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","noop","useAdaptivity","useExternRef","Removable","RootComponent","sizeYClassNames","none","FormLayoutGroup","children","mode","removable","segmented","removePlaceholder","onRemove","getRootRef","restProps","sizeY","isRemovable","rootEl","Component","baseClassName","className","align","e","current","indent","Fragment","span","aria-hidden"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AAExD,SAASC,SAAS,QAAwB,yBAAyB;AACnE,SAASC,aAAa,QAAQ,iCAAiC;AAG/D,MAAMC,kBAAkB;IACtBC,MAAMP,8CAEJ;IAEF,CAAC,UAAU,EAAEA,iDAEX;AAEJ;AAmBA;;CAEC,GACD,OAAO,MAAMQ,kBAAkB;QAAC,EAC9BC,QAAQ,EACRC,OAAO,UAAU,EACjBC,SAAS,EACTC,SAAS,EACTC,oBAAoB,SAAS,EAC7BC,WAAWb,IAAI,EACfc,UAAU,EAEW,WADlBC;QAPHP;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,QAAQ,MAAM,EAAE,GAAGf;IAC3B,MAAMgB,cAAcP,aAAaD,SAAS;IAC1C,MAAMS,SAAShB,aAAaY;IAE5B,qBACE,KAACV;QACCU,YAAYI;QACZC,WAAU;QACVC,eAAerB,kCAEbiB,UAAU,aAAaX,eAAe,CAACW,MAAM,EAC7CP,SAAS,gBACPV,mDAEE,iDAEJU,SAAS,cACPV,iDAEE,+CAEJkB,eACElB,6CAEE,2CAEJY,aACEZ,6CAEE;OAGFgB;kBAEHE,4BACC,KAACd;YACCkB,SAAS;YACTC,OAAM;YACNV,mBAAmBA;YACnBC,UAAU,CAACU;gBACT,IAAIL,mBAAAA,6BAAAA,OAAQM,OAAO,EAAE;oBACnBX,SAASU,GAAGL,OAAOM,OAAO;gBAC5B;YACF;YACAC,QAAQf,cAAc;sBAErBF;2BAGH,MAACV,MAAM4B,QAAQ;;gBACZlB;8BACD,KAACmB;oBAAKN,SAAS;oBAAqCO,aAAW;;;;;AAKzE,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/FormLayoutGroup/FormLayoutGroup.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './FormLayoutGroup.module.css';\n\nconst sizeYClassNames = {\n none: classNames(\n styles['FormLayoutGroup--sizeY-none'],\n 'vkuiInternalFormLayoutGroup--sizeY-none',\n ),\n ['compact']: classNames(\n styles['FormLayoutGroup--sizeY-compact'],\n 'vkuiInternalFormLayoutGroup--sizeY-compact',\n ),\n};\n\nexport interface FormLayoutGroupProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n RemovableProps {\n mode?: 'vertical' | 'horizontal';\n /**\n * Только для режима horizontal. Дает возможность удалить всю группу `FormItem`.\n *\n * Режим `indent` предназначен для визуального отступа.\n */\n removable?: boolean | 'indent';\n\n /**\n * Дает возможность склеить несколько `FormItem`.\n */\n segmented?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormLayoutGroup\n */\nexport const FormLayoutGroup = ({\n children,\n mode = 'vertical',\n removable,\n segmented,\n removePlaceholder = 'Удалить',\n onRemove,\n getRootRef,\n ...restProps\n}: FormLayoutGroupProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n const isRemovable = removable && mode === 'horizontal';\n const rootEl = useExternRef(getRootRef);\n\n return (\n <RootComponent\n getRootRef={rootEl}\n Component=\"fieldset\"\n baseClassName={classNames(\n styles['FormLayoutGroup'],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n mode === 'horizontal' &&\n classNames(\n styles['FormLayoutGroup--mode-horizontal'],\n 'vkuiInternalFormLayoutGroup--mode-horizontal',\n ),\n mode === 'vertical' && 'vkuiInternalFormLayoutGroup--mode-vertical',\n isRemovable &&\n classNames(\n styles['FormLayoutGroup--removable'],\n 'vkuiInternalFormLayoutGroup--removable',\n ),\n segmented &&\n classNames(\n styles['FormLayoutGroup--segmented'],\n 'vkuiInternalFormLayoutGroup--segmented',\n ),\n )}\n {...restProps}\n >\n {isRemovable ? (\n <Removable\n className={styles['FormLayoutGroup__removable']}\n align=\"start\"\n removePlaceholder={removePlaceholder}\n onRemove={(e) => {\n if (rootEl?.current) {\n onRemove?.(e, rootEl.current);\n }\n }}\n indent={removable === 'indent'}\n >\n {children}\n </Removable>\n ) : (\n <React.Fragment>\n {children}\n <span className={styles['FormLayoutGroup__offset']} aria-hidden />\n </React.Fragment>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useExternRef","Removable","RootComponent","sizeYClassNames","none","FormLayoutGroup","children","mode","removable","segmented","removePlaceholder","onRemove","getRootRef","restProps","sizeY","isRemovable","rootEl","Component","baseClassName","className","align","e","current","indent","Fragment","span","aria-hidden"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AAExD,SAASC,SAAS,QAAwB,yBAAyB;AACnE,SAASC,aAAa,QAAQ,iCAAiC;AAG/D,MAAMC,kBAAkB;IACtBC,MAAMN,8CAEJ;IAEF,CAAC,UAAU,EAAEA,iDAEX;AAEJ;AAmBA;;CAEC,GACD,OAAO,MAAMO,kBAAkB;QAAC,EAC9BC,QAAQ,EACRC,OAAO,UAAU,EACjBC,SAAS,EACTC,SAAS,EACTC,oBAAoB,SAAS,EAC7BC,QAAQ,EACRC,UAAU,EAEW,WADlBC;QAPHP;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,QAAQ,MAAM,EAAE,GAAGf;IAC3B,MAAMgB,cAAcP,aAAaD,SAAS;IAC1C,MAAMS,SAAShB,aAAaY;IAE5B,qBACE,KAACV;QACCU,YAAYI;QACZC,WAAU;QACVC,eAAepB,kCAEbgB,UAAU,aAAaX,eAAe,CAACW,MAAM,EAC7CP,SAAS,gBACPT,mDAEE,iDAEJS,SAAS,cAAc,8CACvBQ,eACEjB,6CAEE,2CAEJW,aACEX,6CAEE;OAGFe;kBAEHE,4BACC,KAACd;YACCkB,SAAS;YACTC,OAAM;YACNV,mBAAmBA;YACnBC,UAAU,CAACU;gBACT,IAAIL,mBAAAA,6BAAAA,OAAQM,OAAO,EAAE;oBACnBX,qBAAAA,+BAAAA,SAAWU,GAAGL,OAAOM,OAAO;gBAC9B;YACF;YACAC,QAAQf,cAAc;sBAErBF;2BAGH,MAACT,MAAM2B,QAAQ;;gBACZlB;8BACD,KAACmB;oBAAKN,SAAS;oBAAqCO,aAAW;;;;;AAKzE,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../src/components/Group/Group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAoDxD,MAAM,WAAW,UAAW,SAAQ,yBAAyB,CAAC,WAAW,CAAC;IACxE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CACrB;AAGD;;GAEG;AACH,eAAO,MAAM,KAAK,iHASf,UAAU,KAAG,KAAK,CAAC,SAiErB,CAAC"}
1
+ {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../src/components/Group/Group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAqDxD,MAAM,WAAW,UAAW,SAAQ,yBAAyB,CAAC,WAAW,CAAC;IACxE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CACrB;AAGD;;GAEG;AACH,eAAO,MAAM,KAAK,iHASf,UAAU,KAAG,KAAK,CAAC,SAiErB,CAAC"}
@@ -12,7 +12,8 @@ import { RootComponent } from '../RootComponent/RootComponent';
12
12
  import { Footnote } from '../Typography/Footnote/Footnote';
13
13
  const sizeXClassNames = {
14
14
  none: classNames("vkuiGroup--sizeX-none", 'vkuiInternalGroup--sizeX-none'),
15
- ['compact']: "vkuiGroup--sizeX-compact"
15
+ regular: "vkuiGroup--sizeX-regular",
16
+ compact: "vkuiGroup--sizeX-compact"
16
17
  };
17
18
  const stylesMode = {
18
19
  none: classNames("vkuiGroup--mode-none", 'vkuiInternalGroup--mode-none'),
@@ -83,7 +84,7 @@ const warn = warnOnce('Group');
83
84
  Component: "section"
84
85
  }, restProps), {
85
86
  tabIndex: tabIndex,
86
- baseClassName: classNames('vkuiInternalGroup', "vkuiGroup", sizeX !== 'regular' && sizeXClassNames[sizeX], mode === 'plain' && isInsideModal && "vkuiGroup--mode-plain-inside-modal", stylesMode[mode], stylesPadding[padding]),
87
+ baseClassName: classNames('vkuiInternalGroup', "vkuiGroup", sizeXClassNames[sizeX], mode === 'plain' && isInsideModal && "vkuiGroup--mode-plain-inside-modal", stylesMode[mode], stylesPadding[padding]),
87
88
  children: [
88
89
  hasReactNode(header) && /*#__PURE__*/ _jsx("div", {
89
90
  className: "vkuiGroup__header",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Group/Group.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { SizeTypeValues } from '../../lib/adaptivity';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { AppRootContext } from '../AppRoot/AppRootContext';\nimport { ModalRootContext } from '../ModalRoot/ModalRootContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './Group.module.css';\n\nconst sizeXClassNames = {\n none: classNames(styles['Group--sizeX-none'], 'vkuiInternalGroup--sizeX-none'),\n ['compact']: styles['Group--sizeX-compact'],\n};\n\nconst stylesMode = {\n none: classNames(styles['Group--mode-none'], 'vkuiInternalGroup--mode-none'),\n plain: classNames(styles['Group--mode-plain'], 'vkuiInternalGroup--mode-plain'),\n card: classNames(styles['Group--mode-card'], 'vkuiInternalGroup--mode-card'),\n};\n\nconst stylesPadding = {\n s: styles['Group--padding-s'],\n m: styles['Group--padding-m'],\n};\n\n/**\n * Вычисляем mode для Group.\n */\nfunction useGroupMode(\n forcedMode: GroupProps['mode'],\n sizeX: SizeTypeValues | 'none',\n isInsideModal: boolean,\n): 'plain' | 'card' | 'none' {\n const { layout } = React.useContext(AppRootContext);\n\n if (forcedMode) {\n return forcedMode;\n }\n\n if (isInsideModal) {\n return 'plain';\n }\n\n if (layout) {\n return layout;\n }\n\n if (sizeX !== 'none') {\n return sizeX === 'regular' ? 'card' : 'plain';\n }\n\n return 'none';\n}\n\nexport interface GroupProps extends HTMLAttributesWithRootRef<HTMLElement> {\n header?: React.ReactNode;\n description?: React.ReactNode;\n /**\n `show` (только для `mode=\"plain\"`) - разделитель всегда показывается\n `hide` - разделитель всегда спрятан,\n `auto` - разделитель рисуется автоматически между соседними группами.\n */\n separator?: 'show' | 'hide' | 'auto';\n /**\n * Режим отображения. Если установлен `card`, выглядит как карточка c\n * обводкой и внешними отступами. Если `plain` — без отступов и обводки.\n * По умолчанию режим отображения зависит от `sizeX` (`mode=card` при `sizeX=REGULAR` и `mode=plain` при `sizeX=COMPACT`)\n * В модальных окнах по умолчанию `plain`.\n */\n mode?: 'plain' | 'card';\n /**\n * Отвечает за отступы вокруг контента в режиме `card`.\n */\n padding?: 's' | 'm';\n}\n\nconst warn = warnOnce('Group');\n/**\n * @see https://vkcom.github.io/VKUI/#/Group\n */\nexport const Group = ({\n header,\n description,\n children,\n separator = 'auto',\n mode: modeProps,\n padding = 'm',\n tabIndex: tabIndexProp,\n ...restProps\n}: GroupProps): React.ReactNode => {\n const { isInsideModal } = React.useContext(ModalRootContext);\n const { sizeX = 'none' } = useAdaptivity();\n\n const mode = useGroupMode(modeProps, sizeX, isInsideModal);\n\n const isTabPanel = restProps.role === 'tabpanel';\n\n if (\n process.env.NODE_ENV === 'development' &&\n isTabPanel &&\n (!restProps['aria-controls'] || !restProps['id'])\n ) {\n warn(\n 'При использовании роли \"tabpanel\" необходимо задать значение свойств \"aria-controls\" и \"id\"',\n );\n }\n\n const tabIndex = isTabPanel && tabIndexProp === undefined ? 0 : tabIndexProp;\n\n let siblingSeparatorElement: React.ReactNode = null;\n switch (separator) {\n case 'auto':\n siblingSeparatorElement = <div className={styles['Group__separator-sibling']} />;\n break;\n case 'show':\n siblingSeparatorElement = (\n <div\n className={classNames(\n styles['Group__separator-sibling'],\n mode === 'plain' || mode === 'none'\n ? styles['Group__separator-sibling--forced']\n : undefined,\n )}\n />\n );\n break;\n case 'hide':\n break;\n }\n\n return (\n <>\n <RootComponent\n Component=\"section\"\n {...restProps}\n tabIndex={tabIndex}\n baseClassName={classNames(\n 'vkuiInternalGroup',\n styles['Group'],\n sizeX !== 'regular' && sizeXClassNames[sizeX],\n mode === 'plain' && isInsideModal && styles['Group--mode-plain-inside-modal'],\n stylesMode[mode],\n stylesPadding[padding],\n )}\n >\n {hasReactNode(header) && <div className={styles['Group__header']}>{header}</div>}\n {children}\n {hasReactNode(description) && (\n <Footnote className={styles['Group__description']}>{description}</Footnote>\n )}\n </RootComponent>\n {siblingSeparatorElement}\n </>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivity","warnOnce","AppRootContext","ModalRootContext","RootComponent","Footnote","sizeXClassNames","none","stylesMode","plain","card","stylesPadding","s","m","useGroupMode","forcedMode","sizeX","isInsideModal","layout","useContext","warn","Group","header","description","children","separator","mode","modeProps","padding","tabIndex","tabIndexProp","restProps","isTabPanel","role","process","env","NODE_ENV","undefined","siblingSeparatorElement","div","className","Component","baseClassName"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,aAAa,QAAQ,4BAA4B;AAE1D,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,QAAQ,QAAQ,kCAAkC;AAG3D,MAAMC,kBAAkB;IACtBC,MAAMT,oCAAwC;IAC9C,CAAC,UAAU;AACb;AAEA,MAAMU,aAAa;IACjBD,MAAMT,mCAAuC;IAC7CW,OAAOX,oCAAwC;IAC/CY,MAAMZ,mCAAuC;AAC/C;AAEA,MAAMa,gBAAgB;IACpBC,CAAC;IACDC,CAAC;AACH;AAEA;;CAEC,GACD,SAASC,aACPC,UAA8B,EAC9BC,KAA8B,EAC9BC,aAAsB;IAEtB,MAAM,EAAEC,MAAM,EAAE,GAAGrB,MAAMsB,UAAU,CAACjB;IAEpC,IAAIa,YAAY;QACd,OAAOA;IACT;IAEA,IAAIE,eAAe;QACjB,OAAO;IACT;IAEA,IAAIC,QAAQ;QACV,OAAOA;IACT;IAEA,IAAIF,UAAU,QAAQ;QACpB,OAAOA,UAAU,YAAY,SAAS;IACxC;IAEA,OAAO;AACT;AAwBA,MAAMI,OAAOnB,SAAS;AACtB;;CAEC,GACD,OAAO,MAAMoB,QAAQ;QAAC,EACpBC,MAAM,EACNC,WAAW,EACXC,QAAQ,EACRC,YAAY,MAAM,EAClBC,MAAMC,SAAS,EACfC,UAAU,GAAG,EACbC,UAAUC,YAAY,EAEX,WADRC;QAPHT;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;;IAGA,MAAM,EAAEZ,aAAa,EAAE,GAAGpB,MAAMsB,UAAU,CAAChB;IAC3C,MAAM,EAAEa,QAAQ,MAAM,EAAE,GAAGhB;IAE3B,MAAM0B,OAAOZ,aAAaa,WAAWX,OAAOC;IAE5C,MAAMe,aAAaD,UAAUE,IAAI,KAAK;IAEtC,IACEC,QAAQC,GAAG,CAACC,QAAQ,KAAK,iBACzBJ,cACC,CAAA,CAACD,SAAS,CAAC,gBAAgB,IAAI,CAACA,SAAS,CAAC,KAAK,AAAD,GAC/C;QACAX,KACE;IAEJ;IAEA,MAAMS,WAAWG,cAAcF,iBAAiBO,YAAY,IAAIP;IAEhE,IAAIQ,0BAA2C;IAC/C,OAAQb;QACN,KAAK;YACHa,wCAA0B,KAACC;gBAAIC,SAAS;;YACxC;QACF,KAAK;YACHF,wCACE,KAACC;gBACCC,WAAW1C,2CAET4B,SAAS,WAAWA,SAAS,kDAEzBW;;YAIV;QACF,KAAK;YACH;IACJ;IAEA,qBACE;;0BACE,MAACjC;gBACCqC,WAAU;eACNV;gBACJF,UAAUA;gBACVa,eAAe5C,WACb,kCAEAkB,UAAU,aAAaV,eAAe,CAACU,MAAM,EAC7CU,SAAS,WAAWT,uDACpBT,UAAU,CAACkB,KAAK,EAChBf,aAAa,CAACiB,QAAQ;;oBAGvB7B,aAAauB,yBAAW,KAACiB;wBAAIC,SAAS;kCAA4BlB;;oBAClEE;oBACAzB,aAAawB,8BACZ,KAAClB;wBAASmC,SAAS;kCAAiCjB;;;;YAGvDe;;;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Group/Group.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { SizeTypeValues } from '../../lib/adaptivity';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { AppRootContext } from '../AppRoot/AppRootContext';\nimport { ModalRootContext } from '../ModalRoot/ModalRootContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './Group.module.css';\n\nconst sizeXClassNames = {\n none: classNames(styles['Group--sizeX-none'], 'vkuiInternalGroup--sizeX-none'),\n regular: styles['Group--sizeX-regular'],\n compact: styles['Group--sizeX-compact'],\n};\n\nconst stylesMode = {\n none: classNames(styles['Group--mode-none'], 'vkuiInternalGroup--mode-none'),\n plain: classNames(styles['Group--mode-plain'], 'vkuiInternalGroup--mode-plain'),\n card: classNames(styles['Group--mode-card'], 'vkuiInternalGroup--mode-card'),\n};\n\nconst stylesPadding = {\n s: styles['Group--padding-s'],\n m: styles['Group--padding-m'],\n};\n\n/**\n * Вычисляем mode для Group.\n */\nfunction useGroupMode(\n forcedMode: GroupProps['mode'],\n sizeX: SizeTypeValues | 'none',\n isInsideModal: boolean,\n): 'plain' | 'card' | 'none' {\n const { layout } = React.useContext(AppRootContext);\n\n if (forcedMode) {\n return forcedMode;\n }\n\n if (isInsideModal) {\n return 'plain';\n }\n\n if (layout) {\n return layout;\n }\n\n if (sizeX !== 'none') {\n return sizeX === 'regular' ? 'card' : 'plain';\n }\n\n return 'none';\n}\n\nexport interface GroupProps extends HTMLAttributesWithRootRef<HTMLElement> {\n header?: React.ReactNode;\n description?: React.ReactNode;\n /**\n `show` (только для `mode=\"plain\"`) - разделитель всегда показывается\n `hide` - разделитель всегда спрятан,\n `auto` - разделитель рисуется автоматически между соседними группами.\n */\n separator?: 'show' | 'hide' | 'auto';\n /**\n * Режим отображения. Если установлен `card`, выглядит как карточка c\n * обводкой и внешними отступами. Если `plain` — без отступов и обводки.\n * По умолчанию режим отображения зависит от `sizeX` (`mode=card` при `sizeX=REGULAR` и `mode=plain` при `sizeX=COMPACT`)\n * В модальных окнах по умолчанию `plain`.\n */\n mode?: 'plain' | 'card';\n /**\n * Отвечает за отступы вокруг контента в режиме `card`.\n */\n padding?: 's' | 'm';\n}\n\nconst warn = warnOnce('Group');\n/**\n * @see https://vkcom.github.io/VKUI/#/Group\n */\nexport const Group = ({\n header,\n description,\n children,\n separator = 'auto',\n mode: modeProps,\n padding = 'm',\n tabIndex: tabIndexProp,\n ...restProps\n}: GroupProps): React.ReactNode => {\n const { isInsideModal } = React.useContext(ModalRootContext);\n const { sizeX = 'none' } = useAdaptivity();\n\n const mode = useGroupMode(modeProps, sizeX, isInsideModal);\n\n const isTabPanel = restProps.role === 'tabpanel';\n\n if (\n process.env.NODE_ENV === 'development' &&\n isTabPanel &&\n (!restProps['aria-controls'] || !restProps['id'])\n ) {\n warn(\n 'При использовании роли \"tabpanel\" необходимо задать значение свойств \"aria-controls\" и \"id\"',\n );\n }\n\n const tabIndex = isTabPanel && tabIndexProp === undefined ? 0 : tabIndexProp;\n\n let siblingSeparatorElement: React.ReactNode = null;\n switch (separator) {\n case 'auto':\n siblingSeparatorElement = <div className={styles['Group__separator-sibling']} />;\n break;\n case 'show':\n siblingSeparatorElement = (\n <div\n className={classNames(\n styles['Group__separator-sibling'],\n mode === 'plain' || mode === 'none'\n ? styles['Group__separator-sibling--forced']\n : undefined,\n )}\n />\n );\n break;\n case 'hide':\n break;\n }\n\n return (\n <>\n <RootComponent\n Component=\"section\"\n {...restProps}\n tabIndex={tabIndex}\n baseClassName={classNames(\n 'vkuiInternalGroup',\n styles['Group'],\n sizeXClassNames[sizeX],\n mode === 'plain' && isInsideModal && styles['Group--mode-plain-inside-modal'],\n stylesMode[mode],\n stylesPadding[padding],\n )}\n >\n {hasReactNode(header) && <div className={styles['Group__header']}>{header}</div>}\n {children}\n {hasReactNode(description) && (\n <Footnote className={styles['Group__description']}>{description}</Footnote>\n )}\n </RootComponent>\n {siblingSeparatorElement}\n </>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivity","warnOnce","AppRootContext","ModalRootContext","RootComponent","Footnote","sizeXClassNames","none","regular","compact","stylesMode","plain","card","stylesPadding","s","m","useGroupMode","forcedMode","sizeX","isInsideModal","layout","useContext","warn","Group","header","description","children","separator","mode","modeProps","padding","tabIndex","tabIndexProp","restProps","isTabPanel","role","process","env","NODE_ENV","undefined","siblingSeparatorElement","div","className","Component","baseClassName"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,aAAa,QAAQ,4BAA4B;AAE1D,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,QAAQ,QAAQ,kCAAkC;AAG3D,MAAMC,kBAAkB;IACtBC,MAAMT,oCAAwC;IAC9CU,OAAO;IACPC,OAAO;AACT;AAEA,MAAMC,aAAa;IACjBH,MAAMT,mCAAuC;IAC7Ca,OAAOb,oCAAwC;IAC/Cc,MAAMd,mCAAuC;AAC/C;AAEA,MAAMe,gBAAgB;IACpBC,CAAC;IACDC,CAAC;AACH;AAEA;;CAEC,GACD,SAASC,aACPC,UAA8B,EAC9BC,KAA8B,EAC9BC,aAAsB;IAEtB,MAAM,EAAEC,MAAM,EAAE,GAAGvB,MAAMwB,UAAU,CAACnB;IAEpC,IAAIe,YAAY;QACd,OAAOA;IACT;IAEA,IAAIE,eAAe;QACjB,OAAO;IACT;IAEA,IAAIC,QAAQ;QACV,OAAOA;IACT;IAEA,IAAIF,UAAU,QAAQ;QACpB,OAAOA,UAAU,YAAY,SAAS;IACxC;IAEA,OAAO;AACT;AAwBA,MAAMI,OAAOrB,SAAS;AACtB;;CAEC,GACD,OAAO,MAAMsB,QAAQ;QAAC,EACpBC,MAAM,EACNC,WAAW,EACXC,QAAQ,EACRC,YAAY,MAAM,EAClBC,MAAMC,SAAS,EACfC,UAAU,GAAG,EACbC,UAAUC,YAAY,EAEX,WADRC;QAPHT;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;;IAGA,MAAM,EAAEZ,aAAa,EAAE,GAAGtB,MAAMwB,UAAU,CAAClB;IAC3C,MAAM,EAAEe,QAAQ,MAAM,EAAE,GAAGlB;IAE3B,MAAM4B,OAAOZ,aAAaa,WAAWX,OAAOC;IAE5C,MAAMe,aAAaD,UAAUE,IAAI,KAAK;IAEtC,IACEC,QAAQC,GAAG,CAACC,QAAQ,KAAK,iBACzBJ,cACC,CAAA,CAACD,SAAS,CAAC,gBAAgB,IAAI,CAACA,SAAS,CAAC,KAAK,AAAD,GAC/C;QACAX,KACE;IAEJ;IAEA,MAAMS,WAAWG,cAAcF,iBAAiBO,YAAY,IAAIP;IAEhE,IAAIQ,0BAA2C;IAC/C,OAAQb;QACN,KAAK;YACHa,wCAA0B,KAACC;gBAAIC,SAAS;;YACxC;QACF,KAAK;YACHF,wCACE,KAACC;gBACCC,WAAW5C,2CAET8B,SAAS,WAAWA,SAAS,kDAEzBW;;YAIV;QACF,KAAK;YACH;IACJ;IAEA,qBACE;;0BACE,MAACnC;gBACCuC,WAAU;eACNV;gBACJF,UAAUA;gBACVa,eAAe9C,WACb,kCAEAQ,eAAe,CAACY,MAAM,EACtBU,SAAS,WAAWT,uDACpBT,UAAU,CAACkB,KAAK,EAChBf,aAAa,CAACiB,QAAQ;;oBAGvB/B,aAAayB,yBAAW,KAACiB;wBAAIC,SAAS;kCAA4BlB;;oBAClEE;oBACA3B,aAAa0B,8BACZ,KAACpB;wBAASqC,SAAS;kCAAiCjB;;;;YAGvDe;;;AAGP,EAAE"}
@@ -8,5 +8,5 @@ export interface LinkProps extends TappableProps {
8
8
  /**
9
9
  * @see https://vkcom.github.io/VKUI/#/Link
10
10
  */
11
- export declare const Link: ({ hasVisited, children, className, onClick, ...restProps }: LinkProps) => React.ReactNode;
11
+ export declare const Link: ({ hasVisited, children, className, ...restProps }: LinkProps) => React.ReactNode;
12
12
  //# sourceMappingURL=Link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/components/Link/Link.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG/D,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,+DAMd,SAAS,KAAG,KAAK,CAAC,SAepB,CAAC"}
1
+ {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/components/Link/Link.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG/D,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,sDAKd,SAAS,KAAG,KAAK,CAAC,SAcpB,CAAC"}
@@ -2,20 +2,18 @@ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
2
  import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
3
  import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- import { classNames, noop } from '@vkontakte/vkjs';
5
+ import { classNames } from '@vkontakte/vkjs';
6
6
  import { Tappable } from '../Tappable/Tappable';
7
7
  /**
8
8
  * @see https://vkcom.github.io/VKUI/#/Link
9
9
  */ export const Link = (_param)=>{
10
- var { hasVisited, children, className, onClick = noop } = _param, restProps = _object_without_properties(_param, [
10
+ var { hasVisited, children, className } = _param, restProps = _object_without_properties(_param, [
11
11
  "hasVisited",
12
12
  "children",
13
- "className",
14
- "onClick"
13
+ "className"
15
14
  ]);
16
15
  return /*#__PURE__*/ _jsx(Tappable, _object_spread_props(_object_spread({
17
- Component: restProps.href ? 'a' : 'button',
18
- onClick: onClick
16
+ Component: restProps.href ? 'a' : 'button'
19
17
  }, restProps), {
20
18
  className: classNames("vkuiLink", hasVisited && "vkuiLink--has-visited", className),
21
19
  hasHover: false,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { classNames, noop } from '@vkontakte/vkjs';\nimport { Tappable, TappableProps } from '../Tappable/Tappable';\nimport styles from './Link.module.css';\n\nexport interface LinkProps extends TappableProps {\n /**\n * Включает состояние `visited`, которое позволяет пользователю понять посещал ли он ссылку или нет\n */\n hasVisited?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Link\n */\nexport const Link = ({\n hasVisited,\n children,\n className,\n onClick = noop,\n ...restProps\n}: LinkProps): React.ReactNode => {\n return (\n <Tappable\n Component={restProps.href ? 'a' : 'button'}\n onClick={onClick}\n {...restProps}\n className={classNames(styles['Link'], hasVisited && styles['Link--has-visited'], className)}\n hasHover={false}\n activeMode=\"opacity\"\n hoverMode=\"none\"\n focusVisibleMode=\"outside\"\n >\n {children}\n </Tappable>\n );\n};\n"],"names":["classNames","noop","Tappable","Link","hasVisited","children","className","onClick","restProps","Component","href","hasHover","activeMode","hoverMode","focusVisibleMode"],"mappings":";;;;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,QAAQ,QAAuB,uBAAuB;AAU/D;;CAEC,GACD,OAAO,MAAMC,OAAO;QAAC,EACnBC,UAAU,EACVC,QAAQ,EACRC,SAAS,EACTC,UAAUN,IAAI,EAEJ,WADPO;QAJHJ;QACAC;QACAC;QACAC;;IAGA,qBACE,KAACL;QACCO,WAAWD,UAAUE,IAAI,GAAG,MAAM;QAClCH,SAASA;OACLC;QACJF,WAAWN,uBAA2BI,uCAA2CE;QACjFK,UAAU;QACVC,YAAW;QACXC,WAAU;QACVC,kBAAiB;kBAEhBT;;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport { Tappable, TappableProps } from '../Tappable/Tappable';\nimport styles from './Link.module.css';\n\nexport interface LinkProps extends TappableProps {\n /**\n * Включает состояние `visited`, которое позволяет пользователю понять посещал ли он ссылку или нет\n */\n hasVisited?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Link\n */\nexport const Link = ({\n hasVisited,\n children,\n className,\n ...restProps\n}: LinkProps): React.ReactNode => {\n return (\n <Tappable\n Component={restProps.href ? 'a' : 'button'}\n {...restProps}\n className={classNames(styles['Link'], hasVisited && styles['Link--has-visited'], className)}\n hasHover={false}\n activeMode=\"opacity\"\n hoverMode=\"none\"\n focusVisibleMode=\"outside\"\n >\n {children}\n </Tappable>\n );\n};\n"],"names":["classNames","Tappable","Link","hasVisited","children","className","restProps","Component","href","hasHover","activeMode","hoverMode","focusVisibleMode"],"mappings":";;;;AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAuB,uBAAuB;AAU/D;;CAEC,GACD,OAAO,MAAMC,OAAO;QAAC,EACnBC,UAAU,EACVC,QAAQ,EACRC,SAAS,EAEC,WADPC;QAHHH;QACAC;QACAC;;IAGA,qBACE,KAACJ;QACCM,WAAWD,UAAUE,IAAI,GAAG,MAAM;OAC9BF;QACJD,WAAWL,uBAA2BG,uCAA2CE;QACjFI,UAAU;QACVC,YAAW;QACXC,WAAU;QACVC,kBAAiB;kBAEhBR;;AAGP,EAAE"}
@@ -17,6 +17,10 @@ export interface RemovableProps {
17
17
  * (test) testId кнопки удаления
18
18
  */
19
19
  removeButtonTestId?: string;
20
+ /**
21
+ * Ячейка превращается в неактивную
22
+ */
23
+ disabled?: boolean;
20
24
  }
21
25
  interface RemovableIosRenderProps {
22
26
  /**
@@ -42,6 +46,6 @@ interface RemovableOwnProps extends Omit<HTMLAttributesWithRootRef<HTMLDivElemen
42
46
  /**
43
47
  * @see https://vkcom.github.io/VKUI/#/Removable
44
48
  */
45
- export declare const Removable: ({ children, onRemove, removePlaceholder, align, indent, toggleButtonTestId, removeButtonTestId, ...restProps }: RemovableOwnProps) => React.ReactNode;
49
+ export declare const Removable: ({ children, onRemove, removePlaceholder, align, indent, toggleButtonTestId, removeButtonTestId, disabled, ...restProps }: RemovableOwnProps) => React.ReactNode;
46
50
  export {};
47
51
  //# sourceMappingURL=Removable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Removable.d.ts","sourceRoot":"","sources":["../../../src/components/Removable/Removable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAOxD,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACtE;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAgGD,UAAU,uBAAuB;IAC/B;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,iBACR,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EACjE,cAAc;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,WAAW,EAAE,uBAAuB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;CAC1F;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,mHASnB,iBAAiB,KAAG,KAAK,CAAC,SAmD5B,CAAC"}
1
+ {"version":3,"file":"Removable.d.ts","sourceRoot":"","sources":["../../../src/components/Removable/Removable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAOxD,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACtE;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiGD,UAAU,uBAAuB;IAC/B;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,iBACR,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EACjE,cAAc;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,WAAW,EAAE,uBAAuB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;CAC1F;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,6HAUnB,iBAAiB,KAAG,KAAK,CAAC,SAqD5B,CAAC"}
@@ -4,7 +4,7 @@ import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import * as React from 'react';
6
6
  import { Icon24Cancel } from '@vkontakte/icons';
7
- import { classNames, noop } from '@vkontakte/vkjs';
7
+ import { classNames } from '@vkontakte/vkjs';
8
8
  import { useGlobalEventListener } from '../../hooks/useGlobalEventListener';
9
9
  import { usePlatform } from '../../hooks/usePlatform';
10
10
  import { getTextFromChildren } from '../../lib/children';
@@ -15,7 +15,7 @@ import { Tappable } from '../Tappable/Tappable';
15
15
  import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
16
16
  /**
17
17
  * @see https://vkcom.github.io/VKUI/#/RemovableIos
18
- */ const RemovableIos = ({ onRemove, removePlaceholder, removePlaceholderString, children: childrenProp, toggleButtonTestId, removeButtonTestId })=>{
18
+ */ const RemovableIos = ({ onRemove, removePlaceholder, removePlaceholderString, children: childrenProp, toggleButtonTestId, removeButtonTestId, disabled })=>{
19
19
  const { window } = useDOM();
20
20
  const removeButtonRef = React.useRef(null);
21
21
  const disabledRef = React.useRef(true);
@@ -56,7 +56,7 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
56
56
  hasHover: false,
57
57
  className: classNames("vkuiRemovable__action", "vkuiRemovable__toggle", 'vkuiInternalRemovable__action'),
58
58
  onClick: onRemoveActivateClick,
59
- disabled: removeOffset > 0,
59
+ disabled: removeOffset > 0 || disabled,
60
60
  "data-testid": toggleButtonTestId,
61
61
  children: [
62
62
  /*#__PURE__*/ _jsx(VisuallyHidden, {
@@ -95,19 +95,20 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
95
95
  /**
96
96
  * @see https://vkcom.github.io/VKUI/#/Removable
97
97
  */ export const Removable = (_param)=>{
98
- var { children, onRemove = noop, removePlaceholder = 'Удалить', align = 'center', indent = false, toggleButtonTestId, removeButtonTestId } = _param, restProps = _object_without_properties(_param, [
98
+ var { children, onRemove, removePlaceholder = 'Удалить', align = 'center', indent = false, toggleButtonTestId, removeButtonTestId, disabled } = _param, restProps = _object_without_properties(_param, [
99
99
  "children",
100
100
  "onRemove",
101
101
  "removePlaceholder",
102
102
  "align",
103
103
  "indent",
104
104
  "toggleButtonTestId",
105
- "removeButtonTestId"
105
+ "removeButtonTestId",
106
+ "disabled"
106
107
  ]);
107
108
  const platform = usePlatform();
108
109
  const onRemoveClick = (e)=>{
109
110
  e.preventDefault();
110
- onRemove(e);
111
+ onRemove === null || onRemove === void 0 ? void 0 : onRemove(e);
111
112
  };
112
113
  const removePlaceholderString = getTextFromChildren(removePlaceholder);
113
114
  return /*#__PURE__*/ _jsxs(RootComponent, _object_spread_props(_object_spread({}, restProps), {
@@ -126,6 +127,7 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
126
127
  onClick: onRemoveClick,
127
128
  label: removePlaceholderString,
128
129
  "data-testid": removeButtonTestId,
130
+ disabled: disabled,
129
131
  children: /*#__PURE__*/ _jsx(Icon24Cancel, {
130
132
  role: "presentation"
131
133
  })
@@ -142,6 +144,7 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
142
144
  removePlaceholderString: removePlaceholderString,
143
145
  toggleButtonTestId: toggleButtonTestId,
144
146
  removeButtonTestId: removeButtonTestId,
147
+ disabled: disabled,
145
148
  children: children
146
149
  })
147
150
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Removable/Removable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { getTextFromChildren } from '../../lib/children';\nimport { useDOM } from '../../lib/dom';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Tappable } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Removable.module.css';\n\nexport interface RemovableProps {\n /**\n * Текст кнопки удаления ячейки. Визуально скрыт везде, кроме iOS. На iOS появляется в выезжающей кнопке для удаления ячейки.\n */\n removePlaceholder?: React.ReactNode;\n /**\n * Коллбэк срабатывает при клике на контрол удаления.\n */\n onRemove?: (e: React.MouseEvent, rootEl?: HTMLElement | null) => void;\n /**\n * (test) iOS only. testId кнопки, которая активирует кнопку удаления\n */\n toggleButtonTestId?: string;\n /**\n * (test) testId кнопки удаления\n */\n removeButtonTestId?: string;\n}\n\ninterface RemovableIosOwnProps extends RemovableProps {\n removePlaceholderString?: string;\n children?: React.ReactNode | ((renderProps: RemovableIosRenderProps) => React.ReactNode);\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/RemovableIos\n */\nconst RemovableIos = ({\n onRemove,\n removePlaceholder,\n removePlaceholderString,\n children: childrenProp,\n toggleButtonTestId,\n removeButtonTestId,\n}: RemovableIosOwnProps) => {\n const { window } = useDOM();\n\n const removeButtonRef = React.useRef<HTMLElement>(null);\n const disabledRef = React.useRef(true);\n const [removeOffset, updateRemoveOffset] = React.useState(0);\n\n useGlobalEventListener(\n window,\n 'click',\n () => {\n if (removeOffset > 0) {\n updateRemoveOffset(0);\n }\n },\n { capture: true },\n );\n\n const onRemoveTransitionEnd = () => {\n if (removeOffset > 0) {\n removeButtonRef?.current?.focus();\n } else {\n disabledRef.current = true;\n }\n };\n\n const onRemoveActivateClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!removeButtonRef.current) {\n return;\n }\n const { offsetWidth } = removeButtonRef.current;\n disabledRef.current = false;\n updateRemoveOffset(offsetWidth);\n };\n\n return (\n <div\n className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}\n style={{ transform: `translateX(-${removeOffset ?? 0}px)` }}\n onTransitionEnd={onRemoveTransitionEnd}\n >\n <IconButton\n hasActive={false}\n hasHover={false}\n className={classNames(\n styles['Removable__action'],\n styles['Removable__toggle'],\n 'vkuiInternalRemovable__action',\n )}\n onClick={onRemoveActivateClick}\n disabled={removeOffset > 0}\n data-testid={toggleButtonTestId}\n >\n <VisuallyHidden>{removePlaceholderString}</VisuallyHidden>\n <i className={styles['Removable__toggle-in']} role=\"presentation\" />\n </IconButton>\n {typeof childrenProp === 'function'\n ? childrenProp({ isRemoving: removeOffset > 0 })\n : childrenProp}\n\n <span className={styles['Removable__offset']} aria-hidden />\n\n <Tappable\n Component=\"button\"\n hasActive={false}\n hasHover={false}\n disabled={disabledRef.current}\n getRootRef={removeButtonRef}\n className={styles['Removable__remove']}\n onClick={onRemove}\n data-testid={removeButtonTestId}\n >\n <span className={styles['Removable__remove-in']}>{removePlaceholder}</span>\n </Tappable>\n </div>\n );\n};\n\ninterface RemovableIosRenderProps {\n /**\n * Показывает состояние Removable на платформе iOS при клике на иконку удаления.\n * Для имитации поведения на iOS при клике на иконку удаления самого удаление не происходит,\n * контент сдвигается влево и справа выезжает настоящая кнопка \"Удалить\".\n * Когда контент сдвинут `isRemoving = true`.\n */\n isRemoving: boolean;\n}\n\ninterface RemovableOwnProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'children'>,\n RemovableProps {\n /**\n * Расположение кнопки удаления.\n */\n align?: 'start' | 'center';\n /**\n * Скрывает кнопку, но оставляет отступ.\n * @since 5.4.0\n */\n indent?: boolean;\n children?: React.ReactNode | ((renderProps: RemovableIosRenderProps) => React.ReactNode);\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Removable\n */\nexport const Removable = ({\n children,\n onRemove = noop,\n removePlaceholder = 'Удалить',\n align = 'center',\n indent = false,\n toggleButtonTestId,\n removeButtonTestId,\n ...restProps\n}: RemovableOwnProps): React.ReactNode => {\n const platform = usePlatform();\n\n const onRemoveClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onRemove(e);\n };\n\n const removePlaceholderString: string = getTextFromChildren(removePlaceholder);\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n platform === 'ios' && styles['Removable--ios'],\n align === 'start' && styles['Removable--align-start'],\n indent && styles['Removable--indent'],\n )}\n >\n {platform !== 'ios' && (\n <div className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}>\n {typeof children === 'function' ? children({ isRemoving: false }) : children}\n\n <IconButton\n activeMode=\"opacity\"\n hoverMode=\"opacity\"\n className={classNames(styles['Removable__action'], 'vkuiInternalRemovable__action')}\n onClick={onRemoveClick}\n label={removePlaceholderString}\n data-testid={removeButtonTestId}\n >\n <Icon24Cancel role=\"presentation\" />\n </IconButton>\n\n <span className={styles['Removable__offset']} aria-hidden />\n </div>\n )}\n\n {platform === 'ios' && (\n <RemovableIos\n onRemove={onRemoveClick}\n removePlaceholder={removePlaceholder}\n removePlaceholderString={removePlaceholderString}\n toggleButtonTestId={toggleButtonTestId}\n removeButtonTestId={removeButtonTestId}\n >\n {children}\n </RemovableIos>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","Icon24Cancel","classNames","noop","useGlobalEventListener","usePlatform","getTextFromChildren","useDOM","IconButton","RootComponent","Tappable","VisuallyHidden","RemovableIos","onRemove","removePlaceholder","removePlaceholderString","children","childrenProp","toggleButtonTestId","removeButtonTestId","window","removeButtonRef","useRef","disabledRef","removeOffset","updateRemoveOffset","useState","capture","onRemoveTransitionEnd","current","focus","onRemoveActivateClick","e","stopPropagation","offsetWidth","div","className","style","transform","onTransitionEnd","hasActive","hasHover","onClick","disabled","data-testid","i","role","isRemoving","span","aria-hidden","Component","getRootRef","Removable","align","indent","restProps","platform","onRemoveClick","preventDefault","baseClassName","activeMode","hoverMode","label"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Removable/Removable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Cancel } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { getTextFromChildren } from '../../lib/children';\nimport { useDOM } from '../../lib/dom';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Tappable } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Removable.module.css';\n\nexport interface RemovableProps {\n /**\n * Текст кнопки удаления ячейки. Визуально скрыт везде, кроме iOS. На iOS появляется в выезжающей кнопке для удаления ячейки.\n */\n removePlaceholder?: React.ReactNode;\n /**\n * Коллбэк срабатывает при клике на контрол удаления.\n */\n onRemove?: (e: React.MouseEvent, rootEl?: HTMLElement | null) => void;\n /**\n * (test) iOS only. testId кнопки, которая активирует кнопку удаления\n */\n toggleButtonTestId?: string;\n /**\n * (test) testId кнопки удаления\n */\n removeButtonTestId?: string;\n /**\n * Ячейка превращается в неактивную\n */\n disabled?: boolean;\n}\n\ninterface RemovableIosOwnProps extends RemovableProps {\n removePlaceholderString?: string;\n children?: React.ReactNode | ((renderProps: RemovableIosRenderProps) => React.ReactNode);\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/RemovableIos\n */\nconst RemovableIos = ({\n onRemove,\n removePlaceholder,\n removePlaceholderString,\n children: childrenProp,\n toggleButtonTestId,\n removeButtonTestId,\n disabled,\n}: RemovableIosOwnProps) => {\n const { window } = useDOM();\n\n const removeButtonRef = React.useRef<HTMLElement>(null);\n const disabledRef = React.useRef(true);\n const [removeOffset, updateRemoveOffset] = React.useState(0);\n\n useGlobalEventListener(\n window,\n 'click',\n () => {\n if (removeOffset > 0) {\n updateRemoveOffset(0);\n }\n },\n { capture: true },\n );\n\n const onRemoveTransitionEnd = () => {\n if (removeOffset > 0) {\n removeButtonRef?.current?.focus();\n } else {\n disabledRef.current = true;\n }\n };\n\n const onRemoveActivateClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!removeButtonRef.current) {\n return;\n }\n const { offsetWidth } = removeButtonRef.current;\n disabledRef.current = false;\n updateRemoveOffset(offsetWidth);\n };\n\n return (\n <div\n className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}\n style={{ transform: `translateX(-${removeOffset ?? 0}px)` }}\n onTransitionEnd={onRemoveTransitionEnd}\n >\n <IconButton\n hasActive={false}\n hasHover={false}\n className={classNames(\n styles['Removable__action'],\n styles['Removable__toggle'],\n 'vkuiInternalRemovable__action',\n )}\n onClick={onRemoveActivateClick}\n disabled={removeOffset > 0 || disabled}\n data-testid={toggleButtonTestId}\n >\n <VisuallyHidden>{removePlaceholderString}</VisuallyHidden>\n <i className={styles['Removable__toggle-in']} role=\"presentation\" />\n </IconButton>\n {typeof childrenProp === 'function'\n ? childrenProp({ isRemoving: removeOffset > 0 })\n : childrenProp}\n\n <span className={styles['Removable__offset']} aria-hidden />\n\n <Tappable\n Component=\"button\"\n hasActive={false}\n hasHover={false}\n disabled={disabledRef.current}\n getRootRef={removeButtonRef}\n className={styles['Removable__remove']}\n onClick={onRemove}\n data-testid={removeButtonTestId}\n >\n <span className={styles['Removable__remove-in']}>{removePlaceholder}</span>\n </Tappable>\n </div>\n );\n};\n\ninterface RemovableIosRenderProps {\n /**\n * Показывает состояние Removable на платформе iOS при клике на иконку удаления.\n * Для имитации поведения на iOS при клике на иконку удаления самого удаление не происходит,\n * контент сдвигается влево и справа выезжает настоящая кнопка \"Удалить\".\n * Когда контент сдвинут `isRemoving = true`.\n */\n isRemoving: boolean;\n}\n\ninterface RemovableOwnProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'children'>,\n RemovableProps {\n /**\n * Расположение кнопки удаления.\n */\n align?: 'start' | 'center';\n /**\n * Скрывает кнопку, но оставляет отступ.\n * @since 5.4.0\n */\n indent?: boolean;\n children?: React.ReactNode | ((renderProps: RemovableIosRenderProps) => React.ReactNode);\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Removable\n */\nexport const Removable = ({\n children,\n onRemove,\n removePlaceholder = 'Удалить',\n align = 'center',\n indent = false,\n toggleButtonTestId,\n removeButtonTestId,\n disabled,\n ...restProps\n}: RemovableOwnProps): React.ReactNode => {\n const platform = usePlatform();\n\n const onRemoveClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onRemove?.(e);\n };\n\n const removePlaceholderString: string = getTextFromChildren(removePlaceholder);\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n platform === 'ios' && styles['Removable--ios'],\n align === 'start' && styles['Removable--align-start'],\n indent && styles['Removable--indent'],\n )}\n >\n {platform !== 'ios' && (\n <div className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}>\n {typeof children === 'function' ? children({ isRemoving: false }) : children}\n\n <IconButton\n activeMode=\"opacity\"\n hoverMode=\"opacity\"\n className={classNames(styles['Removable__action'], 'vkuiInternalRemovable__action')}\n onClick={onRemoveClick}\n label={removePlaceholderString}\n data-testid={removeButtonTestId}\n disabled={disabled}\n >\n <Icon24Cancel role=\"presentation\" />\n </IconButton>\n\n <span className={styles['Removable__offset']} aria-hidden />\n </div>\n )}\n\n {platform === 'ios' && (\n <RemovableIos\n onRemove={onRemoveClick}\n removePlaceholder={removePlaceholder}\n removePlaceholderString={removePlaceholderString}\n toggleButtonTestId={toggleButtonTestId}\n removeButtonTestId={removeButtonTestId}\n disabled={disabled}\n >\n {children}\n </RemovableIos>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","Icon24Cancel","classNames","useGlobalEventListener","usePlatform","getTextFromChildren","useDOM","IconButton","RootComponent","Tappable","VisuallyHidden","RemovableIos","onRemove","removePlaceholder","removePlaceholderString","children","childrenProp","toggleButtonTestId","removeButtonTestId","disabled","window","removeButtonRef","useRef","disabledRef","removeOffset","updateRemoveOffset","useState","capture","onRemoveTransitionEnd","current","focus","onRemoveActivateClick","e","stopPropagation","offsetWidth","div","className","style","transform","onTransitionEnd","hasActive","hasHover","onClick","data-testid","i","role","isRemoving","span","aria-hidden","Component","getRootRef","Removable","align","indent","restProps","platform","onRemoveClick","preventDefault","baseClassName","activeMode","hoverMode","label"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { HasComponent, HasRootRef } from '../../types';
2
+ import type { HasComponent, HasRootRef } from '../../types';
3
3
  export interface RootComponentProps<T> extends React.AllHTMLAttributes<T>, HasRootRef<T>, HasComponent {
4
4
  baseClassName?: string | false;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RootComponent.d.ts","sourceRoot":"","sources":["../../../src/components/RootComponent/RootComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,WAAW,kBAAkB,CAAC,CAAC,CACnC,SAAQ,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAChC,UAAU,CAAC,CAAC,CAAC,EACb,YAAY;IACd,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,qEAM5B,kBAAkB,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,SAEhC,CAAC"}
1
+ {"version":3,"file":"RootComponent.d.ts","sourceRoot":"","sources":["../../../src/components/RootComponent/RootComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG5D,MAAM,WAAW,kBAAkB,CAAC,CAAC,CACnC,SAAQ,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAChC,UAAU,CAAC,CAAC,CAAC,EACb,YAAY;IACd,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,qEAM5B,kBAAkB,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,SAWhC,CAAC"}
@@ -14,7 +14,7 @@ import { classNames } from '@vkontakte/vkjs';
14
14
  ]);
15
15
  return /*#__PURE__*/ _jsx(Component, _object_spread({
16
16
  ref: getRootRef,
17
- className: classNames(baseClassName, className)
17
+ className: classNames(className, baseClassName, "vkuiRootComponent", restProps.hidden === true && "vkuiRootComponent--hidden")
18
18
  }, restProps));
19
19
  };
20
20
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/RootComponent/RootComponent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasComponent, HasRootRef } from '../../types';\n\nexport interface RootComponentProps<T>\n extends React.AllHTMLAttributes<T>,\n HasRootRef<T>,\n HasComponent {\n baseClassName?: string | false;\n}\n\n/**\n * Базовый корневой компонент.\n */\nexport const RootComponent = <T,>({\n Component = 'div',\n baseClassName,\n className,\n getRootRef,\n ...restProps\n}: RootComponentProps<T>): React.ReactNode => (\n <Component ref={getRootRef} className={classNames(baseClassName, className)} {...restProps} />\n);\n"],"names":["React","classNames","RootComponent","Component","baseClassName","className","getRootRef","restProps","ref"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAU7C;;CAEC,GACD,OAAO,MAAMC,gBAAgB;QAAK,EAChCC,YAAY,KAAK,EACjBC,aAAa,EACbC,SAAS,EACTC,UAAU,EAEY,WADnBC;QAJHJ;QACAC;QACAC;QACAC;;yBAGA,KAACH;QAAUK,KAAKF;QAAYD,WAAWJ,WAAWG,eAAeC;OAAgBE;EACjF"}
1
+ {"version":3,"sources":["../../../src/components/RootComponent/RootComponent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HasComponent, HasRootRef } from '../../types';\nimport styles from './RootComponent.module.css';\n\nexport interface RootComponentProps<T>\n extends React.AllHTMLAttributes<T>,\n HasRootRef<T>,\n HasComponent {\n baseClassName?: string | false;\n}\n\n/**\n * Базовый корневой компонент.\n */\nexport const RootComponent = <T,>({\n Component = 'div',\n baseClassName,\n className,\n getRootRef,\n ...restProps\n}: RootComponentProps<T>): React.ReactNode => (\n <Component\n ref={getRootRef}\n className={classNames(\n className,\n baseClassName,\n styles['RootComponent'],\n restProps.hidden === true && styles['RootComponent--hidden'],\n )}\n {...restProps}\n />\n);\n"],"names":["React","classNames","RootComponent","Component","baseClassName","className","getRootRef","restProps","ref","hidden"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAW7C;;CAEC,GACD,OAAO,MAAMC,gBAAgB;QAAK,EAChCC,YAAY,KAAK,EACjBC,aAAa,EACbC,SAAS,EACTC,UAAU,EAEY,WADnBC;QAJHJ;QACAC;QACAC;QACAC;;yBAGA,KAACH;QACCK,KAAKF;QACLD,WAAWJ,WACTI,WACAD,oCAEAG,UAAUE,MAAM,KAAK;OAEnBF;EAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../../src/components/Search/Search.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAc,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAKvE,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,KAAK,CAAC,SAAS,EACrB,KAAK,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,KAC7B,KAAK,CAAC,SAAS,CAAC;AAErB,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,UAAU,CAAC,cAAc,CAAC,EAC1B,MAAM,CAAC,gBAAgB,CAAC;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7E,WAAW,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,8NAmBhB,WAAW,KAAG,KAAK,CAAC,SAuKtB,CAAC"}
1
+ {"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../../src/components/Search/Search.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAc,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAKvE,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,KAAK,CAAC,SAAS,EACrB,KAAK,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,KAC7B,KAAK,CAAC,SAAS,CAAC;AAErB,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,UAAU,CAAC,cAAc,CAAC,EAC1B,MAAM,CAAC,gBAAgB,CAAC;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7E,WAAW,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,8NAmBhB,WAAW,KAAG,KAAK,CAAC,SAwKtB,CAAC"}
@@ -21,7 +21,7 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
21
21
  /**
22
22
  * @see https://vkcom.github.io/VKUI/#/Search
23
23
  */ export const Search = (_param)=>{
24
- var { id: idProp, before = /*#__PURE__*/ _jsx(Icon16SearchOutline, {}), className, placeholder = 'Поиск', after = 'Отмена', getRef, icon: iconProp, onIconClick = noop, style, autoComplete = 'off', onChange, iconLabel, clearLabel = 'Очистить', noPadding, getRootRef, findButtonText = 'Найти', onFindButtonClick } = _param, inputProps = _object_without_properties(_param, [
24
+ var { id: idProp, before = /*#__PURE__*/ _jsx(Icon16SearchOutline, {}), className, placeholder = 'Поиск', after = 'Отмена', getRef, icon: iconProp, onIconClick, style, autoComplete = 'off', onChange, iconLabel, clearLabel = 'Очистить', noPadding, getRootRef, findButtonText = 'Найти', onFindButtonClick } = _param, inputProps = _object_without_properties(_param, [
25
25
  "id",
26
26
  "before",
27
27
  "className",
@@ -69,7 +69,7 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
69
69
  }, [
70
70
  inputRef
71
71
  ]);
72
- const onIconClickStart = React.useCallback((e)=>onIconClick(e), [
72
+ const onIconClickStart = React.useCallback((e)=>onIconClick === null || onIconClick === void 0 ? void 0 : onIconClick(e), [
73
73
  onIconClick
74
74
  ]);
75
75
  const onIconCancelClickStart = React.useCallback((e)=>{
@@ -152,6 +152,7 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
152
152
  onClick: onCancel,
153
153
  className: "vkuiSearch__icon",
154
154
  tabIndex: hasValue ? undefined : -1,
155
+ disabled: inputProps.disabled,
155
156
  children: [
156
157
  /*#__PURE__*/ _jsx(VisuallyHidden, {
157
158
  children: clearLabel
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Search/Search.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Clear, Icon16SearchOutline, Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\nimport { useBooleanState } from '../../hooks/useBooleanState';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useNativeFormResetListener } from '../../hooks/useNativeFormResetListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { touchEnabled } from '../../lib/touch';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { HasRef, HasRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { IconButton, IconButtonProps } from '../IconButton/IconButton';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Search.module.css';\n\nexport type RenderIconButtonFn = (\n icon: React.ReactNode,\n props?: Partial<IconButtonProps>,\n) => React.ReactNode;\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLInputElement> {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode | ((renderFn: RenderIconButtonFn) => React.ReactNode);\n onIconClick?: React.PointerEventHandler<HTMLElement>;\n defaultValue?: string;\n iconLabel?: string;\n clearLabel?: string;\n /**\n * Удаляет отступы у компонента\n */\n noPadding?: boolean;\n /**\n * Текст для кнопки Найти\n */\n findButtonText?: string;\n /**\n * Коллбэк для кнопки Найти\n */\n onFindButtonClick?: React.MouseEventHandler<HTMLElement>;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Search\n */\nexport const Search = ({\n id: idProp,\n before = <Icon16SearchOutline />,\n className,\n placeholder = 'Поиск',\n after = 'Отмена',\n getRef,\n icon: iconProp,\n onIconClick = noop,\n style,\n autoComplete = 'off',\n onChange,\n iconLabel,\n clearLabel = 'Очистить',\n noPadding,\n getRootRef,\n findButtonText = 'Найти',\n onFindButtonClick,\n ...inputProps\n}: SearchProps): React.ReactNode => {\n const inputRef = useExternRef(getRef);\n const {\n value: isFocused,\n setTrue: setFocusedTrue,\n setFalse: setFocusedFalse,\n } = useBooleanState(false);\n const generatedId = React.useId();\n const inputId = idProp ? idProp : `search-${generatedId}`;\n\n const [hasValue, setHasValue] = React.useState<boolean>(() =>\n Boolean(inputProps.value || inputProps.defaultValue),\n );\n const checkHasValue: React.ChangeEventHandler<HTMLInputElement> = (e) =>\n setHasValue(Boolean(e.currentTarget.value));\n\n const { sizeY = 'none' } = useAdaptivity();\n const { sizeY: adaptiveSizeY } = useAdaptivityConditionalRender();\n const platform = usePlatform();\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedTrue();\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedFalse();\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value',\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, '');\n\n const ev2 = new Event('input', { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart: React.PointerEventHandler<HTMLElement> = React.useCallback(\n (e) => onIconClick(e),\n [onIconClick],\n );\n\n const onIconCancelClickStart: React.PointerEventHandler<HTMLElement> = React.useCallback(\n (e) => {\n e.preventDefault();\n inputRef.current?.focus();\n if (touchEnabled()) {\n onCancel();\n }\n },\n [inputRef, onCancel],\n );\n\n useIsomorphicLayoutEffect(() => {\n if (inputProps.value !== undefined) {\n setHasValue(Boolean(inputProps.value));\n }\n }, [inputProps.value]);\n\n useNativeFormResetListener(inputRef, () => {\n setHasValue(Boolean(inputProps.defaultValue));\n });\n\n const renderIconButton: RenderIconButtonFn = (icon, props = {}) => (\n <IconButton\n hoverMode=\"opacity\"\n onPointerDown={onIconClickStart}\n className={styles['Search__icon']}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n onClick={noop}\n {...props}\n >\n <VisuallyHidden>{iconLabel}</VisuallyHidden>\n {icon}\n </IconButton>\n );\n\n return (\n <div\n className={classNames(\n 'vkuiInternalSearch',\n styles['Search'],\n sizeY === 'none' && styles['Search--sizeY-none'],\n sizeY === 'compact' && styles['Search--sizeY-compact'],\n isFocused && styles['Search--focused'],\n hasValue && styles['Search--has-value'],\n after && styles['Search--has-after'],\n iconProp && styles['Search--has-icon'],\n inputProps.disabled && styles['Search--disabled'],\n !noPadding && styles['Search--withPadding'],\n className,\n )}\n ref={getRootRef}\n style={style}\n >\n <div className={styles['Search__field']}>\n <label htmlFor={inputId} className={styles['Search__label']}>\n {placeholder}\n </label>\n <div className={styles['Search__input']}>\n {before}\n <Headline\n Component=\"input\"\n type=\"search\"\n level=\"1\"\n weight=\"3\"\n {...inputProps}\n id={inputId}\n placeholder={placeholder}\n autoComplete={autoComplete}\n getRootRef={inputRef}\n className={styles['Search__nativeInput']}\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={callMultiple(onChange, checkHasValue)}\n />\n </div>\n <div className={styles['Search__controls']}>\n {iconProp &&\n (typeof iconProp === 'function'\n ? iconProp(renderIconButton)\n : renderIconButton(iconProp))}\n <IconButton\n hoverMode=\"opacity\"\n onPointerDown={onIconCancelClickStart}\n onClick={onCancel}\n className={styles['Search__icon']}\n tabIndex={hasValue ? undefined : -1}\n >\n <VisuallyHidden>{clearLabel}</VisuallyHidden>\n {platform === 'ios' ? <Icon16Clear /> : <Icon24Cancel />}\n </IconButton>\n {adaptiveSizeY.compact && onFindButtonClick && (\n <Button\n mode=\"primary\"\n size=\"m\"\n className={classNames(styles['Search__findButton'], adaptiveSizeY.compact.className)}\n focusVisibleMode=\"inside\"\n onClick={onFindButtonClick}\n tabIndex={hasValue ? undefined : -1}\n >\n {findButtonText}\n </Button>\n )}\n </div>\n </div>\n {platform === 'ios' && after && (\n <Button\n mode=\"tertiary\"\n size=\"m\"\n className={styles['Search__after']}\n focusVisibleMode=\"inside\"\n onClick={onCancel}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n >\n <span className={styles['Search__afterText']}>{after}</span>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["React","Icon16Clear","Icon16SearchOutline","Icon24Cancel","classNames","noop","useAdaptivity","useAdaptivityConditionalRender","useBooleanState","useExternRef","useNativeFormResetListener","usePlatform","callMultiple","touchEnabled","useIsomorphicLayoutEffect","Button","IconButton","Headline","VisuallyHidden","Search","id","idProp","before","className","placeholder","after","getRef","icon","iconProp","onIconClick","style","autoComplete","onChange","iconLabel","clearLabel","noPadding","getRootRef","findButtonText","onFindButtonClick","inputProps","inputRef","value","isFocused","setTrue","setFocusedTrue","setFalse","setFocusedFalse","generatedId","useId","inputId","hasValue","setHasValue","useState","Boolean","defaultValue","checkHasValue","e","currentTarget","sizeY","adaptiveSizeY","platform","onFocus","onBlur","onCancel","useCallback","Object","nativeInputValueSetter","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","onIconCancelClickStart","preventDefault","focus","undefined","renderIconButton","props","hoverMode","onPointerDown","onClick","div","disabled","ref","label","htmlFor","Component","type","level","weight","tabIndex","compact","mode","size","focusVisibleMode","span"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Search/Search.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Clear, Icon16SearchOutline, Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\nimport { useBooleanState } from '../../hooks/useBooleanState';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useNativeFormResetListener } from '../../hooks/useNativeFormResetListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { touchEnabled } from '../../lib/touch';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { HasRef, HasRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { IconButton, IconButtonProps } from '../IconButton/IconButton';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Search.module.css';\n\nexport type RenderIconButtonFn = (\n icon: React.ReactNode,\n props?: Partial<IconButtonProps>,\n) => React.ReactNode;\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLInputElement> {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode | ((renderFn: RenderIconButtonFn) => React.ReactNode);\n onIconClick?: React.PointerEventHandler<HTMLElement>;\n defaultValue?: string;\n iconLabel?: string;\n clearLabel?: string;\n /**\n * Удаляет отступы у компонента\n */\n noPadding?: boolean;\n /**\n * Текст для кнопки Найти\n */\n findButtonText?: string;\n /**\n * Коллбэк для кнопки Найти\n */\n onFindButtonClick?: React.MouseEventHandler<HTMLElement>;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Search\n */\nexport const Search = ({\n id: idProp,\n before = <Icon16SearchOutline />,\n className,\n placeholder = 'Поиск',\n after = 'Отмена',\n getRef,\n icon: iconProp,\n onIconClick,\n style,\n autoComplete = 'off',\n onChange,\n iconLabel,\n clearLabel = 'Очистить',\n noPadding,\n getRootRef,\n findButtonText = 'Найти',\n onFindButtonClick,\n ...inputProps\n}: SearchProps): React.ReactNode => {\n const inputRef = useExternRef(getRef);\n const {\n value: isFocused,\n setTrue: setFocusedTrue,\n setFalse: setFocusedFalse,\n } = useBooleanState(false);\n const generatedId = React.useId();\n const inputId = idProp ? idProp : `search-${generatedId}`;\n\n const [hasValue, setHasValue] = React.useState<boolean>(() =>\n Boolean(inputProps.value || inputProps.defaultValue),\n );\n const checkHasValue: React.ChangeEventHandler<HTMLInputElement> = (e) =>\n setHasValue(Boolean(e.currentTarget.value));\n\n const { sizeY = 'none' } = useAdaptivity();\n const { sizeY: adaptiveSizeY } = useAdaptivityConditionalRender();\n const platform = usePlatform();\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedTrue();\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedFalse();\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value',\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, '');\n\n const ev2 = new Event('input', { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart: React.PointerEventHandler<HTMLElement> = React.useCallback(\n (e) => onIconClick?.(e),\n [onIconClick],\n );\n\n const onIconCancelClickStart: React.PointerEventHandler<HTMLElement> = React.useCallback(\n (e) => {\n e.preventDefault();\n inputRef.current?.focus();\n if (touchEnabled()) {\n onCancel();\n }\n },\n [inputRef, onCancel],\n );\n\n useIsomorphicLayoutEffect(() => {\n if (inputProps.value !== undefined) {\n setHasValue(Boolean(inputProps.value));\n }\n }, [inputProps.value]);\n\n useNativeFormResetListener(inputRef, () => {\n setHasValue(Boolean(inputProps.defaultValue));\n });\n\n const renderIconButton: RenderIconButtonFn = (icon, props = {}) => (\n <IconButton\n hoverMode=\"opacity\"\n onPointerDown={onIconClickStart}\n className={styles['Search__icon']}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n onClick={noop}\n {...props}\n >\n <VisuallyHidden>{iconLabel}</VisuallyHidden>\n {icon}\n </IconButton>\n );\n\n return (\n <div\n className={classNames(\n 'vkuiInternalSearch',\n styles['Search'],\n sizeY === 'none' && styles['Search--sizeY-none'],\n sizeY === 'compact' && styles['Search--sizeY-compact'],\n isFocused && styles['Search--focused'],\n hasValue && styles['Search--has-value'],\n after && styles['Search--has-after'],\n iconProp && styles['Search--has-icon'],\n inputProps.disabled && styles['Search--disabled'],\n !noPadding && styles['Search--withPadding'],\n className,\n )}\n ref={getRootRef}\n style={style}\n >\n <div className={styles['Search__field']}>\n <label htmlFor={inputId} className={styles['Search__label']}>\n {placeholder}\n </label>\n <div className={styles['Search__input']}>\n {before}\n <Headline\n Component=\"input\"\n type=\"search\"\n level=\"1\"\n weight=\"3\"\n {...inputProps}\n id={inputId}\n placeholder={placeholder}\n autoComplete={autoComplete}\n getRootRef={inputRef}\n className={styles['Search__nativeInput']}\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={callMultiple(onChange, checkHasValue)}\n />\n </div>\n <div className={styles['Search__controls']}>\n {iconProp &&\n (typeof iconProp === 'function'\n ? iconProp(renderIconButton)\n : renderIconButton(iconProp))}\n <IconButton\n hoverMode=\"opacity\"\n onPointerDown={onIconCancelClickStart}\n onClick={onCancel}\n className={styles['Search__icon']}\n tabIndex={hasValue ? undefined : -1}\n disabled={inputProps.disabled}\n >\n <VisuallyHidden>{clearLabel}</VisuallyHidden>\n {platform === 'ios' ? <Icon16Clear /> : <Icon24Cancel />}\n </IconButton>\n {adaptiveSizeY.compact && onFindButtonClick && (\n <Button\n mode=\"primary\"\n size=\"m\"\n className={classNames(styles['Search__findButton'], adaptiveSizeY.compact.className)}\n focusVisibleMode=\"inside\"\n onClick={onFindButtonClick}\n tabIndex={hasValue ? undefined : -1}\n >\n {findButtonText}\n </Button>\n )}\n </div>\n </div>\n {platform === 'ios' && after && (\n <Button\n mode=\"tertiary\"\n size=\"m\"\n className={styles['Search__after']}\n focusVisibleMode=\"inside\"\n onClick={onCancel}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n >\n <span className={styles['Search__afterText']}>{after}</span>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["React","Icon16Clear","Icon16SearchOutline","Icon24Cancel","classNames","noop","useAdaptivity","useAdaptivityConditionalRender","useBooleanState","useExternRef","useNativeFormResetListener","usePlatform","callMultiple","touchEnabled","useIsomorphicLayoutEffect","Button","IconButton","Headline","VisuallyHidden","Search","id","idProp","before","className","placeholder","after","getRef","icon","iconProp","onIconClick","style","autoComplete","onChange","iconLabel","clearLabel","noPadding","getRootRef","findButtonText","onFindButtonClick","inputProps","inputRef","value","isFocused","setTrue","setFocusedTrue","setFalse","setFocusedFalse","generatedId","useId","inputId","hasValue","setHasValue","useState","Boolean","defaultValue","checkHasValue","e","currentTarget","sizeY","adaptiveSizeY","platform","onFocus","onBlur","onCancel","useCallback","Object","nativeInputValueSetter","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","onIconCancelClickStart","preventDefault","focus","undefined","renderIconButton","props","hoverMode","onPointerDown","onClick","div","disabled","ref","label","htmlFor","Component","type","level","weight","tabIndex","compact","mode","size","focusVisibleMode","span"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,SAAS,2BAA2B,qCAI/D,WAAW,CAAC,OAAO,CAAC,KAAG,KAAK,CAAC,SA0D/B,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,SAAS,2BAA2B,qCAI/D,WAAW,CAAC,OAAO,CAAC,KAAG,KAAK,CAAC,SAyD/B,CAAC"}