@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
@@ -5729,6 +5729,9 @@ function AppRoot_unsupported_iterable_to_array(o, minLen) {
5729
5729
  }, props), content);
5730
5730
  };
5731
5731
 
5732
+ ;// CONCATENATED MODULE: ./src/components/RootComponent/RootComponent.module.css
5733
+ // extracted by mini-css-extract-plugin
5734
+
5732
5735
  ;// CONCATENATED MODULE: ./src/components/RootComponent/RootComponent.tsx
5733
5736
  function RootComponent_define_property(obj, key, value) {
5734
5737
  if (key in obj) {
@@ -5787,6 +5790,7 @@ function RootComponent_object_without_properties_loose(source, excluded) {
5787
5790
  }
5788
5791
 
5789
5792
 
5793
+
5790
5794
  /**
5791
5795
  * Базовый корневой компонент.
5792
5796
  */ var RootComponent_RootComponent = function(_param) {
@@ -5798,7 +5802,7 @@ function RootComponent_object_without_properties_loose(source, excluded) {
5798
5802
  ]);
5799
5803
  return /*#__PURE__*/ react.createElement(Component, RootComponent_object_spread({
5800
5804
  ref: getRootRef,
5801
- className: clsx(baseClassName, className)
5805
+ className: clsx(className, baseClassName, "vkuiRootComponent", restProps.hidden === true && "vkuiRootComponent--hidden")
5802
5806
  }, restProps));
5803
5807
  };
5804
5808
 
@@ -7751,7 +7755,7 @@ function Clickable_object_without_properties_loose(source, excluded) {
7751
7755
  /**
7752
7756
  * Проверяем, является ли компонент кликабельным
7753
7757
  */ function checkClickable(props) {
7754
- return (props.href !== undefined || props.onClick !== undefined || props.onClickCapture !== undefined || props.Component === 'label') && !props.disabled;
7758
+ return (props.href !== undefined || props.onClick !== undefined || props.onClickCapture !== undefined || props.Component === 'a' || props.Component === 'button' || props.Component === 'label' || props.Component === 'input') && !props.disabled;
7755
7759
  }
7756
7760
  /**
7757
7761
  * Определяет правильный компонент и его свойства
@@ -9387,7 +9391,7 @@ function useIsClient_unsupported_iterable_to_array(o, minLen) {
9387
9391
  * ВНИМАНИЕ: Этот подход сделает ваши компоненты медленнее, потому что они
9388
9392
  * должны рендериться дважды, поэтому используйте хук с осторожностью.
9389
9393
  *
9390
- * @see {@link https://beta.reactjs.org/apis/react-dom/hydrate#handling-different-client-and-server-content React Docs}
9394
+ * @see {@link https://react.dev/reference/react-dom/hydrate#handling-different-client-and-server-content React Docs}
9391
9395
  */ function useIsClient_useIsClient() {
9392
9396
  var initial = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
9393
9397
  var _React_useState = useIsClient_sliced_to_array(react.useState(initial), 2), isClient = _React_useState[0], setIsClient = _React_useState[1];
@@ -11175,7 +11179,7 @@ var Button_sizeYClassNames = Button_define_property({
11175
11179
  /**
11176
11180
  * @see https://vkcom.github.io/VKUI/#/Button
11177
11181
  */ var Button_Button = function(_param) {
11178
- var _param_size = _param.size, size = _param_size === void 0 ? 's' : _param_size, _param_mode = _param.mode, mode = _param_mode === void 0 ? 'primary' : _param_mode, _param_appearance = _param.appearance, appearance = _param_appearance === void 0 ? 'accent' : _param_appearance, _param_stretched = _param.stretched, stretched = _param_stretched === void 0 ? false : _param_stretched, _param_align = _param.align, align = _param_align === void 0 ? 'center' : _param_align, children = _param.children, before = _param.before, after = _param.after, getRootRef = _param.getRootRef, loading = _param.loading, _param_onClick = _param.onClick, onClick = _param_onClick === void 0 ? functions_noop : _param_onClick, className = _param.className, disableSpinnerAnimation = _param.disableSpinnerAnimation, rounded = _param.rounded, restProps = Button_object_without_properties(_param, [
11182
+ var _param_size = _param.size, size = _param_size === void 0 ? 's' : _param_size, _param_mode = _param.mode, mode = _param_mode === void 0 ? 'primary' : _param_mode, _param_appearance = _param.appearance, appearance = _param_appearance === void 0 ? 'accent' : _param_appearance, _param_stretched = _param.stretched, stretched = _param_stretched === void 0 ? false : _param_stretched, _param_align = _param.align, align = _param_align === void 0 ? 'center' : _param_align, children = _param.children, before = _param.before, after = _param.after, getRootRef = _param.getRootRef, loading = _param.loading, onClick = _param.onClick, className = _param.className, disableSpinnerAnimation = _param.disableSpinnerAnimation, rounded = _param.rounded, restProps = Button_object_without_properties(_param, [
11179
11183
  "size",
11180
11184
  "mode",
11181
11185
  "appearance",
@@ -11592,11 +11596,10 @@ var ToolButton_sizeYClassNames = {
11592
11596
  *
11593
11597
  * @see https://vkcom.github.io/VKUI/#/ToolButton
11594
11598
  */ var ToolButton = function(_param) {
11595
- var _param_mode = _param.mode, mode = _param_mode === void 0 ? 'primary' : _param_mode, _param_appearance = _param.appearance, appearance = _param_appearance === void 0 ? 'accent' : _param_appearance, _param_direction = _param.direction, direction = _param_direction === void 0 ? 'row' : _param_direction, _param_onClick = _param.onClick, onClick = _param_onClick === void 0 ? noop : _param_onClick, className = _param.className, children = _param.children, IconCompact = _param.IconCompact, IconRegular = _param.IconRegular, rounded = _param.rounded, restProps = ToolButton_object_without_properties(_param, [
11599
+ var _param_mode = _param.mode, mode = _param_mode === void 0 ? 'primary' : _param_mode, _param_appearance = _param.appearance, appearance = _param_appearance === void 0 ? 'accent' : _param_appearance, _param_direction = _param.direction, direction = _param_direction === void 0 ? 'row' : _param_direction, className = _param.className, children = _param.children, IconCompact = _param.IconCompact, IconRegular = _param.IconRegular, rounded = _param.rounded, restProps = ToolButton_object_without_properties(_param, [
11596
11600
  "mode",
11597
11601
  "appearance",
11598
11602
  "direction",
11599
- "onClick",
11600
11603
  "className",
11601
11604
  "children",
11602
11605
  "IconCompact",
@@ -11610,7 +11613,6 @@ var ToolButton_sizeYClassNames = {
11610
11613
  activeMode: "vkuiToolButton--active",
11611
11614
  Component: restProps.href ? 'a' : 'button',
11612
11615
  focusVisibleMode: "outside",
11613
- onClick: onClick,
11614
11616
  className: classNames(className, "vkuiToolButton", rounded && !hasChildren && "vkuiToolButton--rounded", ToolButton_stylesMode[mode], ToolButton_stylesAppearance[appearance], stylesDirection[direction], sizeY !== 'compact' && ToolButton_sizeYClassNames[sizeY])
11615
11617
  }, restProps), /*#__PURE__*/ React.createElement(AdaptiveIconRenderer, {
11616
11618
  IconCompact: IconCompact,
@@ -13079,6 +13081,7 @@ function useEnsuredControl_unsupported_iterable_to_array(o, minLen) {
13079
13081
 
13080
13082
 
13081
13083
 
13084
+
13082
13085
  function useEnsuredControl_useEnsuredControl(_param) {
13083
13086
  var onChangeProp = _param.onChange, disabled = _param.disabled, props = useEnsuredControl_object_without_properties(_param, [
13084
13087
  "onChange",
@@ -13101,14 +13104,27 @@ function useEnsuredControl_useEnsuredControl(_param) {
13101
13104
  onChange
13102
13105
  ];
13103
13106
  }
13107
+ var useEnsuredControl_warn = warnOnce('useCustomEnsuredControl');
13104
13108
  function useEnsuredControl_useCustomEnsuredControl(param) {
13105
13109
  var value = param.value, defaultValue = param.defaultValue, disabled = param.disabled, onChangeProp = param.onChange;
13106
13110
  var isControlled = value !== undefined;
13107
13111
  var _React_useState = useEnsuredControl_sliced_to_array(react.useState(defaultValue), 2), localValue = _React_useState[0], setLocalValue = _React_useState[1];
13108
- var preservedControlledValueRef = react.useRef(value);
13112
+ var preservedControlledValueRef = react.useRef();
13109
13113
  useIsomorphicLayoutEffect_useIsomorphicLayoutEffect(function() {
13110
13114
  preservedControlledValueRef.current = value;
13111
13115
  });
13116
+ /*
13117
+ * Для ситуации, когда nextValue это пользовательская функция,
13118
+ * и в качестве аргумента мы должны передать prevValue.
13119
+ * Обычно в качестве prevValue используется preservedControlledValueRef, но оно может быть undefined, если
13120
+ * некотролируемое value вдруг стало контролируемым
13121
+ * (value = undefined ---> value = true)
13122
+ * Если в момент вызова onChange preservedControlledValueRef ещё не был
13123
+ * обновлён в useEffect, то мы не можем использовать preservedControlledValueRef как prevValue
13124
+ * В качестве запасного варианта мы храним текущее значение value в currentFallbackValueRef, чтобы
13125
+ * использовать его вместо preservedControlledValueRef.
13126
+ */ var currentFallbackValueRef = react.useRef(value);
13127
+ currentFallbackValueRef.current = value;
13112
13128
  var onChange = react.useCallback(function(nextValue) {
13113
13129
  if (disabled) {
13114
13130
  return;
@@ -13123,8 +13139,14 @@ function useEnsuredControl_useCustomEnsuredControl(param) {
13123
13139
  return resolvedValue;
13124
13140
  });
13125
13141
  } else if (onChangeProp) {
13126
- var resolvedValue = nextValue(preservedControlledValueRef.current);
13127
- onChangeProp(resolvedValue);
13142
+ if (false) {}
13143
+ var prevValue = preservedControlledValueRef.current === undefined ? currentFallbackValueRef.current : preservedControlledValueRef.current;
13144
+ // В теории prevValue не может быть undefined,
13145
+ // но лучше не вызывать nextValue с таким значением
13146
+ if (prevValue !== undefined) {
13147
+ var resolvedValue = nextValue(prevValue);
13148
+ onChangeProp(resolvedValue);
13149
+ }
13128
13150
  }
13129
13151
  } else {
13130
13152
  if (onChangeProp) {
@@ -13907,15 +13929,11 @@ var View_warn = warnOnce('View');
13907
13929
  onTransition,
13908
13930
  scroll
13909
13931
  ]);
13910
- var onAnimationEnd = React.useCallback(function() {
13932
+ var handleAnimatedTargetAnimationEnd = function() {
13911
13933
  if (prevPanel !== null) {
13912
13934
  flushTransition(prevPanel, Boolean(isBack));
13913
13935
  }
13914
- }, [
13915
- flushTransition,
13916
- isBack,
13917
- prevPanel
13918
- ]);
13936
+ };
13919
13937
  var onSwipeBackSuccess = React.useCallback(function() {
13920
13938
  onSwipeBack && onSwipeBack();
13921
13939
  }, [
@@ -14018,45 +14036,33 @@ var View_warn = warnOnce('View');
14018
14036
  }
14019
14037
  }
14020
14038
  };
14021
- var calcPanelSwipeStyles = function(panelId) {
14022
- if (!canUseDOM || !window) {
14023
- return {};
14024
- }
14025
- var isPrev = panelId === swipeBackPrevPanel;
14026
- var isNext = panelId === swipeBackNextPanel;
14039
+ var calcPanelSwipeStyles = function(isPrev, isNext) {
14027
14040
  if (!isPrev && !isNext || swipeBackResult) {
14028
14041
  return {};
14029
14042
  }
14030
- var prevPanelTranslate = "".concat(swipeBackShift, "px");
14031
- var nextPanelTranslate = "".concat(-50 + swipeBackShift * 100 / window.innerWidth / 2, "%");
14032
14043
  if (isNext) {
14033
- return {
14034
- transform: "translate3d(".concat(nextPanelTranslate, ", 0, 0)")
14035
- };
14044
+ return window ? {
14045
+ transform: "translate3d(".concat(-50 + swipeBackShift * 100 / window.innerWidth / 2, "%, 0, 0)")
14046
+ } : {};
14036
14047
  }
14037
14048
  if (isPrev) {
14038
14049
  return {
14039
- transform: "translate3d(".concat(prevPanelTranslate, ", 0, 0)")
14050
+ transform: "translate3d(".concat(swipeBackShift, "px, 0, 0)")
14040
14051
  };
14041
14052
  }
14042
14053
  return {};
14043
14054
  };
14044
- var calcPanelSwipeBackOverlayStyles = function(panelId) {
14045
- if (!canUseDOM || !window) {
14046
- return {};
14047
- }
14048
- var isNext = panelId === swipeBackNextPanel;
14049
- if (!isNext) {
14055
+ var calcPanelSwipeBackOverlayStyles = function(isNext) {
14056
+ if (!window || !isNext) {
14050
14057
  return {};
14051
14058
  }
14052
- var calculatedOpacity = 1 - swipeBackShift / window.innerWidth;
14053
14059
  var opacityOnSwipeEnd = swipeBackResult === 'success' ? 0 : swipeBackResult === 'fail' ? 1 : null;
14054
14060
  return {
14055
14061
  display: 'block',
14056
- opacity: opacityOnSwipeEnd === null ? calculatedOpacity : opacityOnSwipeEnd
14062
+ opacity: opacityOnSwipeEnd === null ? 1 - swipeBackShift / window.innerWidth : opacityOnSwipeEnd
14057
14063
  };
14058
14064
  };
14059
- var onTransitionEnd = function(event) {
14065
+ var handleSwipeBackTargetTransitionEnd = function(event) {
14060
14066
  if (event.propertyName.includes('transform')) {
14061
14067
  swipingBackTransitionEndHandler();
14062
14068
  }
@@ -14183,7 +14189,7 @@ var View_warn = warnOnce('View');
14183
14189
  var isAnimatedTarget = animated && (isBack ? isPanelPrev : isPanelNext);
14184
14190
  var isSwipeBackPrev = panelId === swipeBackPrevPanel;
14185
14191
  var isSwipeBackNext = panelId === swipeBackNextPanel;
14186
- var isSwipeBackTarget = !prevSwipeBackResult && swipeBackResult && isSwipeBackNext;
14192
+ var isSwipeBackTarget = swipeBackResult && isSwipeBackPrev;
14187
14193
  var scrollCompensateStyle = undefined;
14188
14194
  if (isPanelPrev || isPanelNext && isBack || isSwipeBackPrev || isSwipeBackNext) {
14189
14195
  var marginTop = scrolls.current[panelId];
@@ -14195,16 +14201,16 @@ var View_warn = warnOnce('View');
14195
14201
  }
14196
14202
  return /*#__PURE__*/ React.createElement("div", {
14197
14203
  className: classNames("vkuiView__panel", isPanelActive && "vkuiView__panel--active", isPanelPrev && "vkuiView__panel--prev", isPanelNext && "vkuiView__panel--next", isSwipeBackPrev && "vkuiView__panel--swipe-back-prev", isSwipeBackNext && "vkuiView__panel--swipe-back-next", swipeBackResult === 'success' && "vkuiView__panel--swipe-back-success", swipeBackResult === 'fail' && "vkuiView__panel--swipe-back-failed"),
14198
- onTransitionEnd: isSwipeBackTarget ? onTransitionEnd : undefined,
14199
- onAnimationEnd: isAnimatedTarget ? onAnimationEnd : undefined,
14204
+ onTransitionEnd: isSwipeBackTarget ? handleSwipeBackTargetTransitionEnd : undefined,
14205
+ onAnimationEnd: isAnimatedTarget ? handleAnimatedTargetAnimationEnd : undefined,
14200
14206
  ref: function(el) {
14201
14207
  return panelId !== undefined && (panelNodes.current[panelId] = el);
14202
14208
  },
14203
- style: calcPanelSwipeStyles(panelId),
14209
+ style: calcPanelSwipeStyles(isSwipeBackPrev, isSwipeBackNext),
14204
14210
  key: panelId
14205
14211
  }, platform === 'ios' && /*#__PURE__*/ React.createElement("div", {
14206
14212
  className: "vkuiView__panel-overlay",
14207
- style: calcPanelSwipeBackOverlayStyles(panelId)
14213
+ style: calcPanelSwipeBackOverlayStyles(isSwipeBackNext)
14208
14214
  }), /*#__PURE__*/ React.createElement("div", {
14209
14215
  className: "vkuiView__panel-in",
14210
14216
  style: scrollCompensateStyle
@@ -20888,7 +20894,7 @@ var animationStateClassNames = {
20888
20894
  /**
20889
20895
  * @see https://vkcom.github.io/VKUI/#/Snackbar
20890
20896
  */ var Snackbar = function(_param) {
20891
- var _param_placement = _param.placement, placement = _param_placement === void 0 ? 'bottom-start' : _param_placement, children = _param.children, layout = _param.layout, action = _param.action, before = _param.before, after = _param.after, _param_duration = _param.duration, duration = _param_duration === void 0 ? 4000 : _param_duration, _param_onActionClick = _param.onActionClick, onActionClick = _param_onActionClick === void 0 ? functions_noop : _param_onActionClick, onClose = _param.onClose, _param_mode = _param.mode, mode = _param_mode === void 0 ? 'default' : _param_mode, subtitle = _param.subtitle, offsetY = _param.offsetY, style = _param.style, getRootRef = _param.getRootRef, restProps = Snackbar_object_without_properties(_param, [
20897
+ var _param_placement = _param.placement, placement = _param_placement === void 0 ? 'bottom-start' : _param_placement, children = _param.children, layout = _param.layout, action = _param.action, before = _param.before, after = _param.after, _param_duration = _param.duration, duration = _param_duration === void 0 ? 4000 : _param_duration, onActionClick = _param.onActionClick, onClose = _param.onClose, _param_mode = _param.mode, mode = _param_mode === void 0 ? 'default' : _param_mode, subtitle = _param.subtitle, offsetY = _param.offsetY, style = _param.style, getRootRef = _param.getRootRef, restProps = Snackbar_object_without_properties(_param, [
20892
20898
  "placement",
20893
20899
  "children",
20894
20900
  "layout",
@@ -20941,7 +20947,7 @@ var animationStateClassNames = {
20941
20947
  var handleActionClick = function(event) {
20942
20948
  close();
20943
20949
  if (action) {
20944
- onActionClick(event);
20950
+ onActionClick === null || onActionClick === void 0 ? void 0 : onActionClick(event);
20945
20951
  }
20946
20952
  };
20947
20953
  var handleTouchStart = function(event) {
@@ -25232,9 +25238,11 @@ function Group_object_without_properties_loose(source, excluded) {
25232
25238
 
25233
25239
 
25234
25240
 
25235
- var Group_sizeXClassNames = Group_define_property({
25236
- none: clsx("vkuiGroup--sizeX-none", 'vkuiInternalGroup--sizeX-none')
25237
- }, 'compact', "vkuiGroup--sizeX-compact");
25241
+ var Group_sizeXClassNames = {
25242
+ none: clsx("vkuiGroup--sizeX-none", 'vkuiInternalGroup--sizeX-none'),
25243
+ regular: "vkuiGroup--sizeX-regular",
25244
+ compact: "vkuiGroup--sizeX-compact"
25245
+ };
25238
25246
  var Group_stylesMode = {
25239
25247
  none: clsx("vkuiGroup--mode-none", 'vkuiInternalGroup--mode-none'),
25240
25248
  plain: clsx("vkuiGroup--mode-plain", 'vkuiInternalGroup--mode-plain'),
@@ -25300,7 +25308,7 @@ var Group_warn = warnOnce('Group');
25300
25308
  Component: "section"
25301
25309
  }, restProps), {
25302
25310
  tabIndex: tabIndex,
25303
- baseClassName: classNames('vkuiInternalGroup', "vkuiGroup", sizeX !== 'regular' && Group_sizeXClassNames[sizeX], mode === 'plain' && isInsideModal && "vkuiGroup--mode-plain-inside-modal", Group_stylesMode[mode], stylesPadding[padding])
25311
+ baseClassName: classNames('vkuiInternalGroup', "vkuiGroup", Group_sizeXClassNames[sizeX], mode === 'plain' && isInsideModal && "vkuiGroup--mode-plain-inside-modal", Group_stylesMode[mode], stylesPadding[padding])
25304
25312
  }), hasReactNode(header) && /*#__PURE__*/ React.createElement("div", {
25305
25313
  className: "vkuiGroup__header"
25306
25314
  }, header), children, hasReactNode(description) && /*#__PURE__*/ React.createElement(Footnote, {
@@ -26330,7 +26338,7 @@ function Removable_unsupported_iterable_to_array(o, minLen) {
26330
26338
  /**
26331
26339
  * @see https://vkcom.github.io/VKUI/#/RemovableIos
26332
26340
  */ var RemovableIos = function(param) {
26333
- var onRemove = param.onRemove, removePlaceholder = param.removePlaceholder, removePlaceholderString = param.removePlaceholderString, childrenProp = param.children, toggleButtonTestId = param.toggleButtonTestId, removeButtonTestId = param.removeButtonTestId;
26341
+ var onRemove = param.onRemove, removePlaceholder = param.removePlaceholder, removePlaceholderString = param.removePlaceholderString, childrenProp = param.children, toggleButtonTestId = param.toggleButtonTestId, removeButtonTestId = param.removeButtonTestId, disabled = param.disabled;
26334
26342
  var window = dom_useDOM().window;
26335
26343
  var removeButtonRef = react.useRef(null);
26336
26344
  var disabledRef = react.useRef(true);
@@ -26370,7 +26378,7 @@ function Removable_unsupported_iterable_to_array(o, minLen) {
26370
26378
  hasHover: false,
26371
26379
  className: clsx("vkuiRemovable__action", "vkuiRemovable__toggle", 'vkuiInternalRemovable__action'),
26372
26380
  onClick: onRemoveActivateClick,
26373
- disabled: removeOffset > 0,
26381
+ disabled: removeOffset > 0 || disabled,
26374
26382
  "data-testid": toggleButtonTestId
26375
26383
  }, /*#__PURE__*/ react.createElement(VisuallyHidden_VisuallyHidden, null, removePlaceholderString), /*#__PURE__*/ react.createElement("i", {
26376
26384
  className: "vkuiRemovable__toggle-in",
@@ -26396,19 +26404,20 @@ function Removable_unsupported_iterable_to_array(o, minLen) {
26396
26404
  /**
26397
26405
  * @see https://vkcom.github.io/VKUI/#/Removable
26398
26406
  */ var Removable_Removable = function(_param) {
26399
- var children = _param.children, _param_onRemove = _param.onRemove, onRemove = _param_onRemove === void 0 ? functions_noop : _param_onRemove, _param_removePlaceholder = _param.removePlaceholder, removePlaceholder = _param_removePlaceholder === void 0 ? 'Удалить' : _param_removePlaceholder, _param_align = _param.align, align = _param_align === void 0 ? 'center' : _param_align, _param_indent = _param.indent, indent = _param_indent === void 0 ? false : _param_indent, toggleButtonTestId = _param.toggleButtonTestId, removeButtonTestId = _param.removeButtonTestId, restProps = Removable_object_without_properties(_param, [
26407
+ var children = _param.children, onRemove = _param.onRemove, _param_removePlaceholder = _param.removePlaceholder, removePlaceholder = _param_removePlaceholder === void 0 ? 'Удалить' : _param_removePlaceholder, _param_align = _param.align, align = _param_align === void 0 ? 'center' : _param_align, _param_indent = _param.indent, indent = _param_indent === void 0 ? false : _param_indent, toggleButtonTestId = _param.toggleButtonTestId, removeButtonTestId = _param.removeButtonTestId, disabled = _param.disabled, restProps = Removable_object_without_properties(_param, [
26400
26408
  "children",
26401
26409
  "onRemove",
26402
26410
  "removePlaceholder",
26403
26411
  "align",
26404
26412
  "indent",
26405
26413
  "toggleButtonTestId",
26406
- "removeButtonTestId"
26414
+ "removeButtonTestId",
26415
+ "disabled"
26407
26416
  ]);
26408
26417
  var platform = usePlatform_usePlatform();
26409
26418
  var onRemoveClick = function(e) {
26410
26419
  e.preventDefault();
26411
- onRemove(e);
26420
+ onRemove === null || onRemove === void 0 ? void 0 : onRemove(e);
26412
26421
  };
26413
26422
  var removePlaceholderString = children_getTextFromChildren(removePlaceholder);
26414
26423
  return /*#__PURE__*/ react.createElement(RootComponent_RootComponent, Removable_object_spread_props(Removable_object_spread({}, restProps), {
@@ -26423,7 +26432,8 @@ function Removable_unsupported_iterable_to_array(o, minLen) {
26423
26432
  className: clsx("vkuiRemovable__action", 'vkuiInternalRemovable__action'),
26424
26433
  onClick: onRemoveClick,
26425
26434
  label: removePlaceholderString,
26426
- "data-testid": removeButtonTestId
26435
+ "data-testid": removeButtonTestId,
26436
+ disabled: disabled
26427
26437
  }, /*#__PURE__*/ react.createElement(cancel_24_Icon24Cancel, {
26428
26438
  role: "presentation"
26429
26439
  })), /*#__PURE__*/ react.createElement("span", {
@@ -26434,7 +26444,8 @@ function Removable_unsupported_iterable_to_array(o, minLen) {
26434
26444
  removePlaceholder: removePlaceholder,
26435
26445
  removePlaceholderString: removePlaceholderString,
26436
26446
  toggleButtonTestId: toggleButtonTestId,
26437
- removeButtonTestId: removeButtonTestId
26447
+ removeButtonTestId: removeButtonTestId,
26448
+ disabled: disabled
26438
26449
  }, children));
26439
26450
  };
26440
26451
 
@@ -26611,7 +26622,7 @@ var SimpleCell_sizeYClassNames = SimpleCell_define_property({
26611
26622
  var hasAfter = react_utils_hasReactNode(after) || hasChevron;
26612
26623
  var _useAdaptivity = useAdaptivity_useAdaptivity(), _useAdaptivity_sizeY = _useAdaptivity.sizeY, sizeY = _useAdaptivity_sizeY === void 0 ? 'none' : _useAdaptivity_sizeY;
26613
26624
  return /*#__PURE__*/ react.createElement(Tappable_Tappable, SimpleCell_object_spread_props(SimpleCell_object_spread({}, restProps), {
26614
- className: clsx("vkuiSimpleCell", sizeY !== 'regular' && SimpleCell_sizeYClassNames[sizeY], multiline && "vkuiSimpleCell--mult", className)
26625
+ className: clsx("vkuiSimpleCell", restProps.disabled && "vkuiSimpleCell--disabled", sizeY !== 'regular' && SimpleCell_sizeYClassNames[sizeY], multiline && "vkuiSimpleCell--mult", className)
26615
26626
  }), /*#__PURE__*/ react.createElement("div", {
26616
26627
  className: clsx("vkuiSimpleCell__before", platform === 'ios' && "vkuiSimpleCell__before--ios")
26617
26628
  }, before), /*#__PURE__*/ react.createElement("div", {
@@ -27090,7 +27101,7 @@ function Cell_unsupported_iterable_to_array(o, minLen) {
27090
27101
  /**
27091
27102
  * @see https://vkcom.github.io/VKUI/#/Cell
27092
27103
  */ var Cell = function(_param) {
27093
- var mode = _param.mode, _param_onRemove = _param.onRemove, onRemove = _param_onRemove === void 0 ? functions_noop : _param_onRemove, _param_removePlaceholder = _param.removePlaceholder, removePlaceholder = _param_removePlaceholder === void 0 ? 'Удалить' : _param_removePlaceholder, onDragFinish = _param.onDragFinish, before = _param.before, after = _param.after, disabled = _param.disabled, draggable = _param.draggable, ComponentProps = _param.Component, onChange = _param.onChange, name = _param.name, value = _param.value, checked = _param.checked, defaultChecked = _param.defaultChecked, getRootRef = _param.getRootRef, _param_draggerLabel = _param.draggerLabel, draggerLabel = _param_draggerLabel === void 0 ? DEFAULT_DRAGGABLE_LABEL : _param_draggerLabel, className = _param.className, style = _param.style, toggleButtonTestId = _param.toggleButtonTestId, removeButtonTestId = _param.removeButtonTestId, restProps = Cell_object_without_properties(_param, [
27104
+ var mode = _param.mode, onRemove = _param.onRemove, _param_removePlaceholder = _param.removePlaceholder, removePlaceholder = _param_removePlaceholder === void 0 ? 'Удалить' : _param_removePlaceholder, onDragFinish = _param.onDragFinish, before = _param.before, after = _param.after, disabled = _param.disabled, draggable = _param.draggable, ComponentProps = _param.Component, onChange = _param.onChange, name = _param.name, value = _param.value, checked = _param.checked, defaultChecked = _param.defaultChecked, getRootRef = _param.getRootRef, _param_draggerLabel = _param.draggerLabel, draggerLabel = _param_draggerLabel === void 0 ? DEFAULT_DRAGGABLE_LABEL : _param_draggerLabel, className = _param.className, style = _param.style, toggleButtonTestId = _param.toggleButtonTestId, removeButtonTestId = _param.removeButtonTestId, restProps = Cell_object_without_properties(_param, [
27094
27105
  "mode",
27095
27106
  "onRemove",
27096
27107
  "removePlaceholder",
@@ -27121,7 +27132,6 @@ function Cell_unsupported_iterable_to_array(o, minLen) {
27121
27132
  var dragger = draggable ? /*#__PURE__*/ react.createElement(CellDragger, {
27122
27133
  elRef: rootElRef,
27123
27134
  className: clsx("vkuiCell__dragger", !before && !selectable && "vkuiCell__control--noBefore"),
27124
- disabled: disabled,
27125
27135
  onDragStateChange: setDragging,
27126
27136
  onDragFinish: onDragFinish
27127
27137
  }, draggerLabel) : null;
@@ -27139,12 +27149,12 @@ function Cell_unsupported_iterable_to_array(o, minLen) {
27139
27149
  className: clsx("vkuiCell__checkbox", !before && "vkuiCell__control--noBefore")
27140
27150
  }, checkboxProps));
27141
27151
  }
27142
- var simpleCellDisabled = draggable && !selectable || removable && !restProps.onClick || disabled;
27143
- var hasActive = !simpleCellDisabled && !dragging;
27144
- var cellClasses = clsx("vkuiCell", dragging && "vkuiCell--dragging", platform === 'ios' && "vkuiCell--ios", removable && "vkuiCell--removable", Component === 'label' && "vkuiCell--selectable", disabled && "vkuiCell--disabled");
27152
+ var hasActive = !disabled && !dragging;
27153
+ var cellClasses = clsx("vkuiCell", dragging && "vkuiCell--dragging", platform === 'ios' && "vkuiCell--ios", removable && "vkuiCell--removable", Component === 'label' && "vkuiCell--selectable");
27145
27154
  var simpleCellProps = Cell_object_spread_props(Cell_object_spread(Cell_object_spread_props(Cell_object_spread({
27146
27155
  hasActive: hasActive,
27147
- hasHover: hasActive && !removable
27156
+ hasHover: hasActive && !removable,
27157
+ disabled: disabled
27148
27158
  }, restProps), {
27149
27159
  className: "vkuiCell__content"
27150
27160
  }), Component && {
@@ -27153,9 +27163,6 @@ function Cell_unsupported_iterable_to_array(o, minLen) {
27153
27163
  before: /*#__PURE__*/ react.createElement(react.Fragment, null, draggable && platform !== 'ios' && dragger, selectable && checkbox, before),
27154
27164
  after: /*#__PURE__*/ react.createElement(react.Fragment, null, draggable && platform === 'ios' && dragger, after)
27155
27165
  });
27156
- if (restProps.onClick) {
27157
- simpleCellProps.disabled = simpleCellDisabled;
27158
- }
27159
27166
  if (removable) {
27160
27167
  return /*#__PURE__*/ react.createElement(Removable_Removable, {
27161
27168
  className: clsx(cellClasses, className),
@@ -27163,16 +27170,16 @@ function Cell_unsupported_iterable_to_array(o, minLen) {
27163
27170
  getRootRef: rootElRef,
27164
27171
  removePlaceholder: removePlaceholder,
27165
27172
  onRemove: function(e) {
27166
- return onRemove(e, rootElRef.current);
27173
+ return onRemove === null || onRemove === void 0 ? void 0 : onRemove(e, rootElRef.current);
27167
27174
  },
27168
27175
  toggleButtonTestId: toggleButtonTestId,
27169
- removeButtonTestId: removeButtonTestId
27176
+ removeButtonTestId: removeButtonTestId,
27177
+ disabled: disabled
27170
27178
  }, platform === 'ios' ? function(param) {
27171
27179
  var isRemoving = param.isRemoving;
27172
- if (simpleCellProps.onClick) {
27173
- simpleCellProps.disabled = isRemoving || !simpleCellProps.disabled;
27174
- }
27175
- return /*#__PURE__*/ react.createElement(SimpleCell_SimpleCell, simpleCellProps);
27180
+ return /*#__PURE__*/ react.createElement(SimpleCell_SimpleCell, Cell_object_spread({}, simpleCellProps, isRemoving ? {
27181
+ onClick: undefined
27182
+ } : {}));
27176
27183
  } : /*#__PURE__*/ react.createElement(SimpleCell_SimpleCell, simpleCellProps));
27177
27184
  }
27178
27185
  return /*#__PURE__*/ react.createElement("div", {
@@ -28239,12 +28246,16 @@ function Footer_object_without_properties_loose(source, excluded) {
28239
28246
  /**
28240
28247
  * @see https://vkcom.github.io/VKUI/#/Footer
28241
28248
  */ var Footer = function(_param) {
28242
- var children = _param.children, className = _param.className, restProps = Footer_object_without_properties(_param, [
28249
+ var children = _param.children, className = _param.className, _param_Component = _param.Component, Component = _param_Component === void 0 ? 'footer' : _param_Component, roleProp = _param.role, restProps = Footer_object_without_properties(_param, [
28243
28250
  "children",
28244
- "className"
28251
+ "className",
28252
+ "Component",
28253
+ "role"
28245
28254
  ]);
28255
+ var role = roleProp !== null && roleProp !== void 0 ? roleProp : Component === 'footer' ? 'contentinfo' : undefined;
28246
28256
  return /*#__PURE__*/ React.createElement(Footnote, Footer_object_spread_props(Footer_object_spread({
28247
- Component: "footer"
28257
+ Component: Component,
28258
+ role: role
28248
28259
  }, restProps), {
28249
28260
  className: classNames("vkuiFooter", className)
28250
28261
  }), children);
@@ -30564,7 +30575,7 @@ function Search_unsupported_iterable_to_array(o, minLen) {
30564
30575
  /**
30565
30576
  * @see https://vkcom.github.io/VKUI/#/Search
30566
30577
  */ var Search = function(_param) {
30567
- var idProp = _param.id, _param_before = _param.before, before = _param_before === void 0 ? /*#__PURE__*/ React.createElement(Icon16SearchOutline, null) : _param_before, className = _param.className, _param_placeholder = _param.placeholder, placeholder = _param_placeholder === void 0 ? 'Поиск' : _param_placeholder, _param_after = _param.after, after = _param_after === void 0 ? 'Отмена' : _param_after, getRef = _param.getRef, iconProp = _param.icon, _param_onIconClick = _param.onIconClick, onIconClick = _param_onIconClick === void 0 ? noop : _param_onIconClick, style = _param.style, _param_autoComplete = _param.autoComplete, autoComplete = _param_autoComplete === void 0 ? 'off' : _param_autoComplete, onChange = _param.onChange, iconLabel = _param.iconLabel, _param_clearLabel = _param.clearLabel, clearLabel = _param_clearLabel === void 0 ? 'Очистить' : _param_clearLabel, noPadding = _param.noPadding, getRootRef = _param.getRootRef, _param_findButtonText = _param.findButtonText, findButtonText = _param_findButtonText === void 0 ? 'Найти' : _param_findButtonText, onFindButtonClick = _param.onFindButtonClick, inputProps = Search_object_without_properties(_param, [
30578
+ var idProp = _param.id, _param_before = _param.before, before = _param_before === void 0 ? /*#__PURE__*/ React.createElement(Icon16SearchOutline, null) : _param_before, className = _param.className, _param_placeholder = _param.placeholder, placeholder = _param_placeholder === void 0 ? 'Поиск' : _param_placeholder, _param_after = _param.after, after = _param_after === void 0 ? 'Отмена' : _param_after, getRef = _param.getRef, iconProp = _param.icon, onIconClick = _param.onIconClick, style = _param.style, _param_autoComplete = _param.autoComplete, autoComplete = _param_autoComplete === void 0 ? 'off' : _param_autoComplete, onChange = _param.onChange, iconLabel = _param.iconLabel, _param_clearLabel = _param.clearLabel, clearLabel = _param_clearLabel === void 0 ? 'Очистить' : _param_clearLabel, noPadding = _param.noPadding, getRootRef = _param.getRootRef, _param_findButtonText = _param.findButtonText, findButtonText = _param_findButtonText === void 0 ? 'Найти' : _param_findButtonText, onFindButtonClick = _param.onFindButtonClick, inputProps = Search_object_without_properties(_param, [
30568
30579
  "id",
30569
30580
  "before",
30570
30581
  "className",
@@ -30617,7 +30628,7 @@ function Search_unsupported_iterable_to_array(o, minLen) {
30617
30628
  inputRef
30618
30629
  ]);
30619
30630
  var onIconClickStart = React.useCallback(function(e) {
30620
- return onIconClick(e);
30631
+ return onIconClick === null || onIconClick === void 0 ? void 0 : onIconClick(e);
30621
30632
  }, [
30622
30633
  onIconClick
30623
30634
  ]);
@@ -30685,7 +30696,8 @@ function Search_unsupported_iterable_to_array(o, minLen) {
30685
30696
  onPointerDown: onIconCancelClickStart,
30686
30697
  onClick: onCancel,
30687
30698
  className: "vkuiSearch__icon",
30688
- tabIndex: hasValue ? undefined : -1
30699
+ tabIndex: hasValue ? undefined : -1,
30700
+ disabled: inputProps.disabled
30689
30701
  }, /*#__PURE__*/ React.createElement(VisuallyHidden, null, clearLabel), platform === 'ios' ? /*#__PURE__*/ React.createElement(Icon16Clear, null) : /*#__PURE__*/ React.createElement(Icon24Cancel, null)), adaptiveSizeY.compact && onFindButtonClick && /*#__PURE__*/ React.createElement(Button, {
30690
30702
  mode: "primary",
30691
30703
  size: "m",
@@ -31675,15 +31687,13 @@ function Link_object_without_properties_loose(source, excluded) {
31675
31687
  /**
31676
31688
  * @see https://vkcom.github.io/VKUI/#/Link
31677
31689
  */ var Link = function(_param) {
31678
- var hasVisited = _param.hasVisited, children = _param.children, className = _param.className, _param_onClick = _param.onClick, onClick = _param_onClick === void 0 ? noop : _param_onClick, restProps = Link_object_without_properties(_param, [
31690
+ var hasVisited = _param.hasVisited, children = _param.children, className = _param.className, restProps = Link_object_without_properties(_param, [
31679
31691
  "hasVisited",
31680
31692
  "children",
31681
- "className",
31682
- "onClick"
31693
+ "className"
31683
31694
  ]);
31684
31695
  return /*#__PURE__*/ React.createElement(Tappable, Link_object_spread_props(Link_object_spread({
31685
- Component: restProps.href ? 'a' : 'button',
31686
- onClick: onClick
31696
+ Component: restProps.href ? 'a' : 'button'
31687
31697
  }, restProps), {
31688
31698
  className: classNames("vkuiLink", hasVisited && "vkuiLink--has-visited", className),
31689
31699
  hasHover: false,
@@ -34670,7 +34680,7 @@ var stylesStatus = {
34670
34680
  /**
34671
34681
  * @see https://vkcom.github.io/VKUI/#/FormItem
34672
34682
  */ var FormItem = function(_param) {
34673
- var children = _param.children, top = _param.top, topId = _param.topId, topMultiline = _param.topMultiline, topComponentProp = _param.topComponent, bottom = _param.bottom, _param_status = _param.status, status = _param_status === void 0 ? 'default' : _param_status, removable = _param.removable, _param_onRemove = _param.onRemove, onRemove = _param_onRemove === void 0 ? functions_noop : _param_onRemove, _param_removePlaceholder = _param.removePlaceholder, removePlaceholder = _param_removePlaceholder === void 0 ? 'Удалить' : _param_removePlaceholder, getRootRef = _param.getRootRef, htmlFor = _param.htmlFor, bottomId = _param.bottomId, noPadding = _param.noPadding, topNode = _param.topNode, _param_required = _param.required, required = _param_required === void 0 ? false : _param_required, restProps = FormItem_object_without_properties(_param, [
34683
+ var children = _param.children, top = _param.top, topId = _param.topId, topMultiline = _param.topMultiline, topComponentProp = _param.topComponent, bottom = _param.bottom, _param_status = _param.status, status = _param_status === void 0 ? 'default' : _param_status, removable = _param.removable, onRemove = _param.onRemove, _param_removePlaceholder = _param.removePlaceholder, removePlaceholder = _param_removePlaceholder === void 0 ? 'Удалить' : _param_removePlaceholder, getRootRef = _param.getRootRef, htmlFor = _param.htmlFor, bottomId = _param.bottomId, noPadding = _param.noPadding, topNode = _param.topNode, _param_required = _param.required, required = _param_required === void 0 ? false : _param_required, restProps = FormItem_object_without_properties(_param, [
34674
34684
  "children",
34675
34685
  "top",
34676
34686
  "topId",
@@ -34713,7 +34723,7 @@ var stylesStatus = {
34713
34723
  align: "start",
34714
34724
  onRemove: function(e) {
34715
34725
  if (rootEl === null || rootEl === void 0 ? void 0 : rootEl.current) {
34716
- onRemove(e, rootEl.current);
34726
+ onRemove === null || onRemove === void 0 ? void 0 : onRemove(e, rootEl.current);
34717
34727
  }
34718
34728
  },
34719
34729
  removePlaceholder: removePlaceholder,
@@ -35009,7 +35019,7 @@ var FormLayoutGroup_sizeYClassNames = FormLayoutGroup_define_property({
35009
35019
  /**
35010
35020
  * @see https://vkcom.github.io/VKUI/#/FormLayoutGroup
35011
35021
  */ var FormLayoutGroup = function(_param) {
35012
- var children = _param.children, _param_mode = _param.mode, mode = _param_mode === void 0 ? 'vertical' : _param_mode, removable = _param.removable, segmented = _param.segmented, _param_removePlaceholder = _param.removePlaceholder, removePlaceholder = _param_removePlaceholder === void 0 ? 'Удалить' : _param_removePlaceholder, _param_onRemove = _param.onRemove, onRemove = _param_onRemove === void 0 ? noop : _param_onRemove, getRootRef = _param.getRootRef, restProps = FormLayoutGroup_object_without_properties(_param, [
35022
+ var children = _param.children, _param_mode = _param.mode, mode = _param_mode === void 0 ? 'vertical' : _param_mode, removable = _param.removable, segmented = _param.segmented, _param_removePlaceholder = _param.removePlaceholder, removePlaceholder = _param_removePlaceholder === void 0 ? 'Удалить' : _param_removePlaceholder, onRemove = _param.onRemove, getRootRef = _param.getRootRef, restProps = FormLayoutGroup_object_without_properties(_param, [
35013
35023
  "children",
35014
35024
  "mode",
35015
35025
  "removable",
@@ -35024,14 +35034,14 @@ var FormLayoutGroup_sizeYClassNames = FormLayoutGroup_define_property({
35024
35034
  return /*#__PURE__*/ React.createElement(RootComponent, FormLayoutGroup_object_spread({
35025
35035
  getRootRef: rootEl,
35026
35036
  Component: "fieldset",
35027
- baseClassName: classNames("vkuiFormLayoutGroup", sizeY !== 'regular' && FormLayoutGroup_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'))
35037
+ baseClassName: classNames("vkuiFormLayoutGroup", sizeY !== 'regular' && FormLayoutGroup_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'))
35028
35038
  }, restProps), isRemovable ? /*#__PURE__*/ React.createElement(Removable, {
35029
35039
  className: "vkuiFormLayoutGroup__removable",
35030
35040
  align: "start",
35031
35041
  removePlaceholder: removePlaceholder,
35032
35042
  onRemove: function(e) {
35033
35043
  if (rootEl === null || rootEl === void 0 ? void 0 : rootEl.current) {
35034
- onRemove(e, rootEl.current);
35044
+ onRemove === null || onRemove === void 0 ? void 0 : onRemove(e, rootEl.current);
35035
35045
  }
35036
35046
  },
35037
35047
  indent: removable === 'indent'
@@ -35927,7 +35937,7 @@ var Chip_sizeYClassNames = {
35927
35937
  /**
35928
35938
  * @see https://vkcom.github.io/VKUI/#/Chip
35929
35939
  */ var Chip_Chip = function(_param) {
35930
- var _param_Component = _param.Component, Component = _param_Component === void 0 ? 'span' : _param_Component, _param_value = _param.value, value = _param_value === void 0 ? '' : _param_value, _param_removable = _param.removable, removable = _param_removable === void 0 ? true : _param_removable, _param_onRemove = _param.onRemove, onRemove = _param_onRemove === void 0 ? noop : _param_onRemove, _param_removeLabel = _param.removeLabel, removeLabel = _param_removeLabel === void 0 ? 'Удалить' : _param_removeLabel, before = _param.before, after = _param.after, disabled = _param.disabled, readOnly = _param.readOnly, children = _param.children, className = _param.className, onFocusProp = _param.onFocus, onBlurProp = _param.onBlur, restProps = Chip_object_without_properties(_param, [
35940
+ var _param_Component = _param.Component, Component = _param_Component === void 0 ? 'span' : _param_Component, _param_value = _param.value, value = _param_value === void 0 ? '' : _param_value, _param_removable = _param.removable, removable = _param_removable === void 0 ? true : _param_removable, onRemove = _param.onRemove, _param_removeLabel = _param.removeLabel, removeLabel = _param_removeLabel === void 0 ? 'Удалить' : _param_removeLabel, before = _param.before, after = _param.after, disabled = _param.disabled, readOnly = _param.readOnly, children = _param.children, className = _param.className, onFocusProp = _param.onFocus, onBlurProp = _param.onBlur, restProps = Chip_object_without_properties(_param, [
35931
35941
  "Component",
35932
35942
  "value",
35933
35943
  "removable",
@@ -35960,7 +35970,7 @@ var Chip_sizeYClassNames = {
35960
35970
  onBlur(event);
35961
35971
  };
35962
35972
  var onRemoveWrapper = React.useCallback(function(event) {
35963
- onRemove(event, value);
35973
+ onRemove === null || onRemove === void 0 ? void 0 : onRemove(event, value);
35964
35974
  }, [
35965
35975
  onRemove,
35966
35976
  value
@@ -37728,14 +37738,6 @@ var overscrollBehaviorClassNames = {
37728
37738
  // extracted by mini-css-extract-plugin
37729
37739
 
37730
37740
  ;// CONCATENATED MODULE: ./src/components/CustomSelectDropdown/CustomSelectDropdown.tsx
37731
- function CustomSelectDropdown_array_like_to_array(arr, len) {
37732
- if (len == null || len > arr.length) len = arr.length;
37733
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
37734
- return arr2;
37735
- }
37736
- function CustomSelectDropdown_array_with_holes(arr) {
37737
- if (Array.isArray(arr)) return arr;
37738
- }
37739
37741
  function CustomSelectDropdown_define_property(obj, key, value) {
37740
37742
  if (key in obj) {
37741
37743
  Object.defineProperty(obj, key, {
@@ -37749,33 +37751,6 @@ function CustomSelectDropdown_define_property(obj, key, value) {
37749
37751
  }
37750
37752
  return obj;
37751
37753
  }
37752
- function CustomSelectDropdown_iterable_to_array_limit(arr, i) {
37753
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
37754
- if (_i == null) return;
37755
- var _arr = [];
37756
- var _n = true;
37757
- var _d = false;
37758
- var _s, _e;
37759
- try {
37760
- for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
37761
- _arr.push(_s.value);
37762
- if (i && _arr.length === i) break;
37763
- }
37764
- } catch (err) {
37765
- _d = true;
37766
- _e = err;
37767
- } finally{
37768
- try {
37769
- if (!_n && _i["return"] != null) _i["return"]();
37770
- } finally{
37771
- if (_d) throw _e;
37772
- }
37773
- }
37774
- return _arr;
37775
- }
37776
- function CustomSelectDropdown_non_iterable_rest() {
37777
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
37778
- }
37779
37754
  function CustomSelectDropdown_object_spread(target) {
37780
37755
  for(var i = 1; i < arguments.length; i++){
37781
37756
  var source = arguments[i] != null ? arguments[i] : {};
@@ -37818,35 +37793,20 @@ function CustomSelectDropdown_object_without_properties_loose(source, excluded)
37818
37793
  }
37819
37794
  return target;
37820
37795
  }
37821
- function CustomSelectDropdown_sliced_to_array(arr, i) {
37822
- return CustomSelectDropdown_array_with_holes(arr) || CustomSelectDropdown_iterable_to_array_limit(arr, i) || CustomSelectDropdown_unsupported_iterable_to_array(arr, i) || CustomSelectDropdown_non_iterable_rest();
37823
- }
37824
- function CustomSelectDropdown_unsupported_iterable_to_array(o, minLen) {
37825
- if (!o) return;
37826
- if (typeof o === "string") return CustomSelectDropdown_array_like_to_array(o, minLen);
37827
- var n = Object.prototype.toString.call(o).slice(8, -1);
37828
- if (n === "Object" && o.constructor) n = o.constructor.name;
37829
- if (n === "Map" || n === "Set") return Array.from(n);
37830
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return CustomSelectDropdown_array_like_to_array(o, minLen);
37831
- }
37832
37796
 
37833
37797
 
37834
37798
 
37835
37799
 
37836
37800
 
37837
37801
 
37838
- var calcIsTop = function(placement) {
37839
- return placement.startsWith('top');
37840
- };
37841
37802
  var CustomSelectDropdown_CustomSelectDropdown = function(_param) {
37842
- var children = _param.children, targetRef = _param.targetRef, scrollBoxRef = _param.scrollBoxRef, _param_placement = _param.placement, placement = _param_placement === void 0 ? 'bottom' : _param_placement, fetching = _param.fetching, parentOnPlacementChange = _param.onPlacementChange, _param_offsetDistance = _param.offsetDistance, offsetDistance = _param_offsetDistance === void 0 ? 0 : _param_offsetDistance, _param_autoWidth = _param.autoWidth, autoWidth = _param_autoWidth === void 0 ? false : _param_autoWidth, _param_forcePortal = _param.forcePortal, forcePortal = _param_forcePortal === void 0 ? true : _param_forcePortal, autoHideScrollbar = _param.autoHideScrollbar, autoHideScrollbarDelay = _param.autoHideScrollbarDelay, className = _param.className, _param_noMaxHeight = _param.noMaxHeight, noMaxHeight = _param_noMaxHeight === void 0 ? false : _param_noMaxHeight, // CustomScrollView
37803
+ var children = _param.children, targetRef = _param.targetRef, scrollBoxRef = _param.scrollBoxRef, _param_placement = _param.placement, placement = _param_placement === void 0 ? 'bottom' : _param_placement, fetching = _param.fetching, _param_offsetDistance = _param.offsetDistance, offsetDistance = _param_offsetDistance === void 0 ? 0 : _param_offsetDistance, _param_autoWidth = _param.autoWidth, autoWidth = _param_autoWidth === void 0 ? false : _param_autoWidth, _param_forcePortal = _param.forcePortal, forcePortal = _param_forcePortal === void 0 ? true : _param_forcePortal, autoHideScrollbar = _param.autoHideScrollbar, autoHideScrollbarDelay = _param.autoHideScrollbarDelay, className = _param.className, _param_noMaxHeight = _param.noMaxHeight, noMaxHeight = _param_noMaxHeight === void 0 ? false : _param_noMaxHeight, // CustomScrollView
37843
37804
  overscrollBehavior = _param.overscrollBehavior, restProps = CustomSelectDropdown_object_without_properties(_param, [
37844
37805
  "children",
37845
37806
  "targetRef",
37846
37807
  "scrollBoxRef",
37847
37808
  "placement",
37848
37809
  "fetching",
37849
- "onPlacementChange",
37850
37810
  "offsetDistance",
37851
37811
  "autoWidth",
37852
37812
  "forcePortal",
@@ -37856,24 +37816,12 @@ var CustomSelectDropdown_CustomSelectDropdown = function(_param) {
37856
37816
  "noMaxHeight",
37857
37817
  "overscrollBehavior"
37858
37818
  ]);
37859
- var _React_useState = CustomSelectDropdown_sliced_to_array(React.useState(function() {
37860
- return calcIsTop(placement);
37861
- }), 2), isTop = _React_useState[0], setIsTop = _React_useState[1];
37862
- var onPlacementChange = React.useCallback(function(placement) {
37863
- setIsTop(calcIsTop(placement));
37864
- if (parentOnPlacementChange) {
37865
- parentOnPlacementChange(placement);
37866
- }
37867
- }, [
37868
- parentOnPlacementChange
37869
- ]);
37870
37819
  return /*#__PURE__*/ React.createElement(Popper, CustomSelectDropdown_object_spread({
37871
37820
  targetRef: targetRef,
37872
37821
  offsetByMainAxis: offsetDistance,
37873
37822
  sameWidth: !autoWidth,
37874
- onPlacementChange: onPlacementChange,
37875
37823
  placement: placement,
37876
- className: classNames("vkuiCustomSelectDropdown", 'vkuiInternalCustomSelectDropdown', offsetDistance === 0 && (isTop ? "vkuiCustomSelectDropdown--top" : "vkuiCustomSelectDropdown--bottom"), autoWidth && classNames("vkuiCustomSelectDropdown--wide", 'vkuiInternalCustomSelectDropdown--wide'), className),
37824
+ className: classNames("vkuiCustomSelectDropdown", 'vkuiInternalCustomSelectDropdown', offsetDistance === 0 && (placement.includes('top') ? "vkuiCustomSelectDropdown--top" : "vkuiCustomSelectDropdown--bottom"), autoWidth && classNames("vkuiCustomSelectDropdown--wide", 'vkuiInternalCustomSelectDropdown--wide'), className),
37877
37825
  usePortal: forcePortal,
37878
37826
  autoUpdateOnTargetResize: true
37879
37827
  }, restProps), /*#__PURE__*/ React.createElement(CustomScrollView, {
@@ -38547,7 +38495,7 @@ function ChipsSelect_unsupported_iterable_to_array(o, minLen) {
38547
38495
 
38548
38496
 
38549
38497
 
38550
- var findIndexAfter = function() {
38498
+ var ChipsSelect_findIndexAfter = function() {
38551
38499
  var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], startIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : -1;
38552
38500
  if (startIndex >= options.length - 1) {
38553
38501
  return -1;
@@ -38556,7 +38504,7 @@ var findIndexAfter = function() {
38556
38504
  return i > startIndex && (!isNotServicePreset(option) || !option.disabled);
38557
38505
  });
38558
38506
  };
38559
- var findIndexBefore = function() {
38507
+ var ChipsSelect_findIndexBefore = function() {
38560
38508
  var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], endIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : options.length;
38561
38509
  var result = -1;
38562
38510
  if (endIndex <= 0) {
@@ -38652,6 +38600,13 @@ var findIndexBefore = function() {
38652
38600
  var inputRef = useExternRef(getRef, inputRefHook);
38653
38601
  // Связано с CustomSelectDropdownProps
38654
38602
  var _React_useState = ChipsSelect_sliced_to_array(React.useState(placementProp), 2), dropdownVerticalPlacement = _React_useState[0], setDropdownVerticalPlacement = _React_useState[1];
38603
+ var onDropdownPlacementChange = React.useCallback(function(placement) {
38604
+ if (placement.startsWith('top')) {
38605
+ setDropdownVerticalPlacement('top');
38606
+ } else if (placement.startsWith('bottom')) {
38607
+ setDropdownVerticalPlacement('bottom');
38608
+ }
38609
+ }, []);
38655
38610
  var dropdownId = React.useId();
38656
38611
  var dropdownCurrentItemId = focusedOptionIndex !== null ? "".concat(dropdownId, "-").concat(focusedOptionIndex) : undefined;
38657
38612
  var dropdownScrollBoxRef = React.useRef(null);
@@ -38707,11 +38662,11 @@ var findIndexBefore = function() {
38707
38662
  var focusOption = function(nextIndex, type) {
38708
38663
  var index = nextIndex === null ? -1 : nextIndex;
38709
38664
  if (type === FOCUS_ACTION_NEXT) {
38710
- var _$nextIndex = findIndexAfter(options, index);
38711
- index = _$nextIndex === -1 ? findIndexAfter(options) : _$nextIndex; // Следующий за index или первый валидный до index
38665
+ var _$nextIndex = ChipsSelect_findIndexAfter(options, index);
38666
+ index = _$nextIndex === -1 ? ChipsSelect_findIndexAfter(options) : _$nextIndex; // Следующий за index или первый валидный до index
38712
38667
  } else if (type === FOCUS_ACTION_PREV) {
38713
- var beforeIndex = findIndexBefore(options, index);
38714
- index = beforeIndex === -1 ? findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index
38668
+ var beforeIndex = ChipsSelect_findIndexBefore(options, index);
38669
+ index = beforeIndex === -1 ? ChipsSelect_findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index
38715
38670
  }
38716
38671
  focusOptionByIndex(index, focusedOptionIndex);
38717
38672
  };
@@ -38780,13 +38735,6 @@ var findIndexBefore = function() {
38780
38735
  focusedOptionIndex,
38781
38736
  setFocusedOption
38782
38737
  ]);
38783
- var onDropdownPlacementChange = React.useCallback(function(placement) {
38784
- /* istanbul ignore next: */ if (placement.startsWith('top')) {
38785
- setDropdownVerticalPlacement('top');
38786
- } else if (placement.startsWith('bottom')) {
38787
- setDropdownVerticalPlacement('bottom');
38788
- }
38789
- }, []);
38790
38738
  var onDropdownMouseLeave = React.useCallback(function() {
38791
38739
  setFocusedOptionIndex(null);
38792
38740
  }, [
@@ -38799,7 +38747,7 @@ var findIndexBefore = function() {
38799
38747
  ]);
38800
38748
  useGlobalOnClickOutside(handleClickOutside, opened ? rootRef : null, opened ? dropdownScrollBoxRef : null);
38801
38749
  var openedClassNames = React.useMemo(function() {
38802
- return opened && dropdownOffsetDistance === 0 && ((dropdownVerticalPlacement === null || dropdownVerticalPlacement === void 0 ? void 0 : dropdownVerticalPlacement.includes('top')) ? "vkuiChipsSelect--pop-up" : "vkuiChipsSelect--pop-down") || undefined;
38750
+ return opened && dropdownOffsetDistance === 0 && (dropdownVerticalPlacement.includes('top') ? "vkuiChipsSelect--pop-up" : "vkuiChipsSelect--pop-down") || undefined;
38803
38751
  }, [
38804
38752
  dropdownOffsetDistance,
38805
38753
  opened,
@@ -38843,7 +38791,7 @@ var findIndexBefore = function() {
38843
38791
  })), opened && /*#__PURE__*/ React.createElement(CustomSelectDropdown, {
38844
38792
  "data-testid": dropdownTestId,
38845
38793
  targetRef: rootRef,
38846
- placement: placementProp,
38794
+ placement: dropdownVerticalPlacement,
38847
38795
  scrollBoxRef: dropdownScrollBoxRef,
38848
38796
  onPlacementChange: onDropdownPlacementChange,
38849
38797
  onMouseLeave: onDropdownMouseLeave,
@@ -40958,8 +40906,6 @@ function CustomSelectInput_object_without_properties_loose(source, excluded) {
40958
40906
 
40959
40907
 
40960
40908
 
40961
-
40962
-
40963
40909
  var CustomSelectInput_sizeYClassNames = {
40964
40910
  none: "vkuiCustomSelectInput--sizeY-none",
40965
40911
  compact: "vkuiCustomSelectInput--sizeY-compact"
@@ -40968,7 +40914,7 @@ var CustomSelectInput_sizeYClassNames = {
40968
40914
  * @since 5.10.0
40969
40915
  * @private
40970
40916
  */ var CustomSelectInput_CustomSelectInput = function(_param) {
40971
- var _param_align = _param.align, align = _param_align === void 0 ? 'left' : _param_align, getRef = _param.getRef, className = _param.className, getRootRef = _param.getRootRef, style = _param.style, before = _param.before, after = _param.after, status = _param.status, children = _param.children, placeholder = _param.placeholder, _param_selectType = _param.selectType, selectType = _param_selectType === void 0 ? 'default' : _param_selectType, multiline = _param.multiline, disabled = _param.disabled, fetching = _param.fetching, labelTextTestId = _param.labelTextTestId, restProps = CustomSelectInput_object_without_properties(_param, [
40917
+ var _param_align = _param.align, align = _param_align === void 0 ? 'left' : _param_align, getRef = _param.getRef, className = _param.className, getRootRef = _param.getRootRef, style = _param.style, before = _param.before, after = _param.after, status = _param.status, selectedOptionLabel = _param.selectedOptionLabel, _param_selectType = _param.selectType, selectType = _param_selectType === void 0 ? 'default' : _param_selectType, multiline = _param.multiline, disabled = _param.disabled, fetching = _param.fetching, labelTextTestId = _param.labelTextTestId, searchable = _param.searchable, restInputProps = CustomSelectInput_object_without_properties(_param, [
40972
40918
  "align",
40973
40919
  "getRef",
40974
40920
  "className",
@@ -40977,35 +40923,32 @@ var CustomSelectInput_sizeYClassNames = {
40977
40923
  "before",
40978
40924
  "after",
40979
40925
  "status",
40980
- "children",
40981
- "placeholder",
40926
+ "selectedOptionLabel",
40982
40927
  "selectType",
40983
40928
  "multiline",
40984
40929
  "disabled",
40985
40930
  "fetching",
40986
- "labelTextTestId"
40931
+ "labelTextTestId",
40932
+ "searchable"
40987
40933
  ]);
40988
40934
  var _useAdaptivity = useAdaptivity(), _useAdaptivity_sizeY = _useAdaptivity.sizeY, sizeY = _useAdaptivity_sizeY === void 0 ? 'none' : _useAdaptivity_sizeY;
40989
- var title = children || placeholder;
40990
- var showLabelOrPlaceholder = !Boolean(restProps.value);
40991
40935
  var handleRootRef = useExternRef(getRootRef);
40992
- var focusWithin = useFocusWithin(handleRootRef);
40993
- var input = /*#__PURE__*/ React.createElement(Text, CustomSelectInput_object_spread_props(CustomSelectInput_object_spread({
40936
+ var platform = usePlatform();
40937
+ var input = /*#__PURE__*/ React.createElement(SelectTypography, CustomSelectInput_object_spread_props(CustomSelectInput_object_spread({
40938
+ selectType: selectType,
40994
40939
  type: "text"
40995
- }, restProps), {
40940
+ }, restInputProps), {
40996
40941
  disabled: disabled && !fetching,
40997
- readOnly: restProps.readOnly || disabled && fetching,
40942
+ readOnly: restInputProps.readOnly || !searchable || disabled && fetching,
40998
40943
  Component: "input",
40999
40944
  normalize: false,
41000
- className: classNames("vkuiCustomSelectInput__el", (restProps.readOnly || showLabelOrPlaceholder && !focusWithin) && "vkuiCustomSelectInput__el--cursor-pointer"),
41001
- getRootRef: getRef,
41002
- placeholder: children ? '' : placeholder
40945
+ className: "vkuiCustomSelectInput__input",
40946
+ getRootRef: getRef
41003
40947
  }));
41004
- var platform = usePlatform();
41005
40948
  return /*#__PURE__*/ React.createElement(FormField, {
41006
40949
  Component: "div",
41007
40950
  style: style,
41008
- className: classNames("vkuiCustomSelectInput", align === 'right' && "vkuiCustomSelectInput--align-right", align === 'center' && "vkuiCustomSelectInput--align-center", !children && "vkuiCustomSelectInput--empty", multiline && "vkuiCustomSelectInput--multiline", sizeY !== 'regular' && CustomSelectInput_sizeYClassNames[sizeY], before && "vkuiCustomSelectInput--hasBefore", after && "vkuiCustomSelectInput--hasAfter", className),
40951
+ className: classNames("vkuiCustomSelectInput", align === 'right' && "vkuiCustomSelectInput--align-right", align === 'center' && "vkuiCustomSelectInput--align-center", !selectedOptionLabel && "vkuiCustomSelectInput--empty", multiline && "vkuiCustomSelectInput--multiline", sizeY !== 'regular' && CustomSelectInput_sizeYClassNames[sizeY], before && "vkuiCustomSelectInput--hasBefore", after && "vkuiCustomSelectInput--hasAfter", className),
41009
40952
  getRootRef: handleRootRef,
41010
40953
  before: before,
41011
40954
  after: after,
@@ -41014,16 +40957,96 @@ var CustomSelectInput_sizeYClassNames = {
41014
40957
  status: status
41015
40958
  }, /*#__PURE__*/ React.createElement("div", {
41016
40959
  className: "vkuiCustomSelectInput__input-group"
41017
- }, /*#__PURE__*/ React.createElement("div", {
41018
- className: classNames("vkuiCustomSelectInput__container", className),
40960
+ }, !searchable && platform === 'ios' ? /*#__PURE__*/ React.createElement(VisuallyHidden, null, input) : input, /*#__PURE__*/ React.createElement("div", {
40961
+ className: classNames("vkuiCustomSelectInput__label-wrapper", className),
41019
40962
  tabIndex: -1,
41020
40963
  "aria-hidden": true,
41021
40964
  "data-testid": labelTextTestId
41022
40965
  }, /*#__PURE__*/ React.createElement(SelectTypography, {
41023
40966
  selectType: selectType,
41024
- className: "vkuiCustomSelectInput__title"
41025
- }, showLabelOrPlaceholder && title)), restProps.readOnly && platform === 'ios' ? /*#__PURE__*/ React.createElement(VisuallyHidden, null, input) : input));
40967
+ className: "vkuiCustomSelectInput__label"
40968
+ }, selectedOptionLabel || restInputProps.placeholder))));
40969
+ };
40970
+
40971
+ ;// CONCATENATED MODULE: ./src/components/CustomSelect/helpers.tsx
40972
+ function helpers_object_without_properties(source, excluded) {
40973
+ if (source == null) return {};
40974
+ var target = helpers_object_without_properties_loose(source, excluded);
40975
+ var key, i;
40976
+ if (Object.getOwnPropertySymbols) {
40977
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
40978
+ for(i = 0; i < sourceSymbolKeys.length; i++){
40979
+ key = sourceSymbolKeys[i];
40980
+ if (excluded.indexOf(key) >= 0) continue;
40981
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
40982
+ target[key] = source[key];
40983
+ }
40984
+ }
40985
+ return target;
40986
+ }
40987
+ function helpers_object_without_properties_loose(source, excluded) {
40988
+ if (source == null) return {};
40989
+ var target = {};
40990
+ var sourceKeys = Object.keys(source);
40991
+ var key, i;
40992
+ for(i = 0; i < sourceKeys.length; i++){
40993
+ key = sourceKeys[i];
40994
+ if (excluded.indexOf(key) >= 0) continue;
40995
+ target[key] = source[key];
40996
+ }
40997
+ return target;
40998
+ }
40999
+
41000
+
41001
+
41002
+ var helpers_findIndexAfter = function() {
41003
+ var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], startIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : -1;
41004
+ if (startIndex >= options.length - 1) {
41005
+ return -1;
41006
+ }
41007
+ return options.findIndex(function(option, i) {
41008
+ return i > startIndex && !option.disabled;
41009
+ });
41026
41010
  };
41011
+ var helpers_findIndexBefore = function() {
41012
+ var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], endIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : options.length;
41013
+ var result = -1;
41014
+ if (endIndex <= 0) {
41015
+ return result;
41016
+ }
41017
+ for(var i = endIndex - 1; i >= 0; i--){
41018
+ var option = options[i];
41019
+ if (!option.disabled) {
41020
+ result = i;
41021
+ break;
41022
+ }
41023
+ }
41024
+ return result;
41025
+ };
41026
+ function helpers_findSelectedIndex() {
41027
+ var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], value = arguments.length > 1 ? arguments[1] : void 0, withClear = arguments.length > 2 ? arguments[2] : void 0;
41028
+ if (withClear && value === '') {
41029
+ return -1;
41030
+ }
41031
+ var _options_findIndex;
41032
+ return (_options_findIndex = options.findIndex(function(item) {
41033
+ value = typeof item.value === 'number' ? Number(value) : value;
41034
+ return item.value === value;
41035
+ })) !== null && _options_findIndex !== void 0 ? _options_findIndex : -1;
41036
+ }
41037
+ function helpers_calculateInputValueFromOptions() {
41038
+ var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], selectValue = arguments.length > 1 ? arguments[1] : void 0;
41039
+ var selectedOption = options.find(function(option) {
41040
+ return option.value === selectValue;
41041
+ });
41042
+ return selectedOption ? getTextFromChildren(selectedOption.label) : '';
41043
+ }
41044
+ function helpers_defaultRenderOptionFn(_param) {
41045
+ var option = _param.option, props = helpers_object_without_properties(_param, [
41046
+ "option"
41047
+ ]);
41048
+ return /*#__PURE__*/ React.createElement(CustomSelectOption, props);
41049
+ }
41027
41050
 
41028
41051
  ;// CONCATENATED MODULE: ./src/components/CustomSelect/CustomSelect.module.css
41029
41052
  // extracted by mini-css-extract-plugin
@@ -41173,35 +41196,9 @@ function CustomSelect_unsupported_iterable_to_array(o, minLen) {
41173
41196
 
41174
41197
 
41175
41198
 
41176
-
41177
-
41178
41199
  var CustomSelect_sizeYClassNames = CustomSelect_define_property({
41179
41200
  none: "vkuiCustomSelect--sizeY-none"
41180
41201
  }, 'compact', "vkuiCustomSelect--sizeY-compact");
41181
- var CustomSelect_findIndexAfter = function() {
41182
- var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], startIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : -1;
41183
- if (startIndex >= options.length - 1) {
41184
- return -1;
41185
- }
41186
- return options.findIndex(function(option, i) {
41187
- return i > startIndex && !option.disabled;
41188
- });
41189
- };
41190
- var CustomSelect_findIndexBefore = function() {
41191
- var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], endIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : options.length;
41192
- var result = -1;
41193
- if (endIndex <= 0) {
41194
- return result;
41195
- }
41196
- for(var i = endIndex - 1; i >= 0; i--){
41197
- var option = options[i];
41198
- if (!option.disabled) {
41199
- result = i;
41200
- break;
41201
- }
41202
- }
41203
- return result;
41204
- };
41205
41202
  var CustomSelect_warn = warnOnce('CustomSelect');
41206
41203
  var checkOptionsValueType = function(options) {
41207
41204
  if (new Set(options.map(function(item) {
@@ -41210,26 +41207,9 @@ var checkOptionsValueType = function(options) {
41210
41207
  CustomSelect_warn('Некоторые значения ваших опций имеют разные типы. onChange всегда возвращает строковый тип.', 'error');
41211
41208
  }
41212
41209
  };
41213
- function defaultRenderOptionFn(_param) {
41214
- var option = _param.option, props = CustomSelect_object_without_properties(_param, [
41215
- "option"
41216
- ]);
41217
- return /*#__PURE__*/ React.createElement(CustomSelectOption, props);
41218
- }
41219
41210
  var handleOptionDown = function(e) {
41220
41211
  e.preventDefault();
41221
41212
  };
41222
- function findSelectedIndex() {
41223
- var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], value = arguments.length > 1 ? arguments[1] : void 0, withClear = arguments.length > 2 ? arguments[2] : void 0;
41224
- if (withClear && value === '') {
41225
- return -1;
41226
- }
41227
- var _options_findIndex;
41228
- return (_options_findIndex = options.findIndex(function(item) {
41229
- value = typeof item.value === 'number' ? Number(value) : value;
41230
- return item.value === value;
41231
- })) !== null && _options_findIndex !== void 0 ? _options_findIndex : -1;
41232
- }
41233
41213
  var filter = function(options, inputValue, filterFn) {
41234
41214
  return typeof filterFn === 'function' ? options.filter(function(option) {
41235
41215
  return filterFn(inputValue, option);
@@ -41286,11 +41266,13 @@ var filter = function(options, inputValue, filterFn) {
41286
41266
  var optionsWrapperRef = React.useRef(null);
41287
41267
  var _React_useState1 = CustomSelect_sliced_to_array(React.useState(-1), 2), focusedOptionIndex = _React_useState1[0], setFocusedOptionIndex = _React_useState1[1];
41288
41268
  var _React_useState2 = CustomSelect_sliced_to_array(React.useState(props.value !== undefined), 2), isControlledOutside = _React_useState2[0], setIsControlledOutside = _React_useState2[1];
41289
- var _React_useState3 = CustomSelect_sliced_to_array(React.useState(''), 2), inputValue = _React_useState3[0], setInputValue = _React_useState3[1];
41290
- var _React_useState4 = CustomSelect_sliced_to_array(React.useState(function() {
41269
+ var _React_useState3 = CustomSelect_sliced_to_array(React.useState(function() {
41291
41270
  var _props_value, _ref;
41292
41271
  return (_ref = (_props_value = props.value) !== null && _props_value !== void 0 ? _props_value : defaultValue) !== null && _ref !== void 0 ? _ref : allowClearButton ? '' : undefined;
41293
- }), 2), nativeSelectValue = _React_useState4[0], setNativeSelectValue = _React_useState4[1];
41272
+ }), 2), nativeSelectValue = _React_useState3[0], setNativeSelectValue = _React_useState3[1];
41273
+ var _React_useState4 = CustomSelect_sliced_to_array(React.useState(function() {
41274
+ return calculateInputValueFromOptions(optionsProp, nativeSelectValue);
41275
+ }), 2), inputValue = _React_useState4[0], setInputValue = _React_useState4[1];
41294
41276
  var _React_useState5 = CustomSelect_sliced_to_array(React.useState(popupDirection), 2), popperPlacement = _React_useState5[0], setPopperPlacement = _React_useState5[1];
41295
41277
  var _React_useState6 = CustomSelect_sliced_to_array(React.useState(optionsProp), 2), options = _React_useState6[0], setOptions = _React_useState6[1];
41296
41278
  var _props_value;
@@ -41328,7 +41310,7 @@ var filter = function(options, inputValue, filterFn) {
41328
41310
  selectedOptionIndex
41329
41311
  ]);
41330
41312
  var openedClassNames = React.useMemo(function() {
41331
- return opened && dropdownOffsetDistance === 0 && ((popperPlacement === null || popperPlacement === void 0 ? void 0 : popperPlacement.includes('top')) ? "vkuiCustomSelect--pop-up" : "vkuiCustomSelect--pop-down") || undefined;
41313
+ return opened && dropdownOffsetDistance === 0 && (popperPlacement.includes('top') ? "vkuiCustomSelect--pop-up" : "vkuiCustomSelect--pop-down") || undefined;
41332
41314
  }, [
41333
41315
  dropdownOffsetDistance,
41334
41316
  opened,
@@ -41417,7 +41399,6 @@ var filter = function(options, inputValue, filterFn) {
41417
41399
  * Сброс происходит в одном из эффекте `updateOptionsAndSelectedOptionIndex()`.
41418
41400
  */ var close = React.useCallback(function() {
41419
41401
  resetKeyboardInput();
41420
- setInputValue('');
41421
41402
  setOpened(false);
41422
41403
  resetFocusedOption();
41423
41404
  onClose === null || onClose === void 0 ? void 0 : onClose();
@@ -41428,8 +41409,8 @@ var filter = function(options, inputValue, filterFn) {
41428
41409
  ]);
41429
41410
  var selectOption = React.useCallback(function(index) {
41430
41411
  var item = options[index];
41431
- setNativeSelectValue(item === null || item === void 0 ? void 0 : item.value);
41432
41412
  close();
41413
+ setNativeSelectValue(item === null || item === void 0 ? void 0 : item.value);
41433
41414
  var shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync = isControlledOutside && props.value !== nativeSelectValue && nativeSelectValue === (item === null || item === void 0 ? void 0 : item.value);
41434
41415
  if (shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync) {
41435
41416
  var _selectElRef_current;
@@ -41473,9 +41454,12 @@ var filter = function(options, inputValue, filterFn) {
41473
41454
  bubbles: true
41474
41455
  });
41475
41456
  (_selectElRef_current = selectElRef.current) === null || _selectElRef_current === void 0 ? void 0 : _selectElRef_current.dispatchEvent(event);
41457
+ setInputValue(calculateInputValueFromOptions(optionsProp, nativeSelectValue));
41476
41458
  }, [
41477
41459
  close,
41478
- selectElRef
41460
+ selectElRef,
41461
+ optionsProp,
41462
+ nativeSelectValue
41479
41463
  ]);
41480
41464
  var onFocus = React.useCallback(function() {
41481
41465
  var _selectElRef_current;
@@ -41505,11 +41489,11 @@ var filter = function(options, inputValue, filterFn) {
41505
41489
  var focusOption = React.useCallback(function(type) {
41506
41490
  var index = focusedOptionIndex;
41507
41491
  if (type === 'next') {
41508
- var nextIndex = CustomSelect_findIndexAfter(options, index);
41509
- index = nextIndex === -1 ? CustomSelect_findIndexAfter(options) : nextIndex; // Следующий за index или первый валидный до index
41492
+ var nextIndex = findIndexAfter(options, index);
41493
+ index = nextIndex === -1 ? findIndexAfter(options) : nextIndex; // Следующий за index или первый валидный до index
41510
41494
  } else if (type === 'prev') {
41511
- var beforeIndex = CustomSelect_findIndexBefore(options, index);
41512
- index = beforeIndex === -1 ? CustomSelect_findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index
41495
+ var beforeIndex = findIndexBefore(options, index);
41496
+ index = beforeIndex === -1 ? findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index
41513
41497
  }
41514
41498
  focusOptionByIndex(index);
41515
41499
  }, [
@@ -41517,21 +41501,38 @@ var filter = function(options, inputValue, filterFn) {
41517
41501
  focusedOptionIndex,
41518
41502
  options
41519
41503
  ]);
41520
- React.useEffect(function updateOptionsAndSelectedOptionIndex() {
41521
- var _props_value, _ref;
41522
- var value = (_ref = (_props_value = props.value) !== null && _props_value !== void 0 ? _props_value : nativeSelectValue) !== null && _ref !== void 0 ? _ref : defaultValue;
41504
+ React.useEffect(function filterOptions() {
41523
41505
  var options = searchable && inputValue !== undefined ? filter(optionsProp, inputValue, filterFn) : optionsProp;
41524
41506
  setOptions(options);
41525
- setSelectedOptionIndex(findSelectedIndex(options, value, allowClearButton));
41526
41507
  }, [
41527
41508
  filterFn,
41528
41509
  inputValue,
41529
- nativeSelectValue,
41530
41510
  optionsProp,
41531
- defaultValue,
41532
- props.value,
41533
- searchable,
41534
- allowClearButton
41511
+ searchable
41512
+ ]);
41513
+ var _props_value1, _ref;
41514
+ var selectValue = (_ref = (_props_value1 = props.value) !== null && _props_value1 !== void 0 ? _props_value1 : nativeSelectValue) !== null && _ref !== void 0 ? _ref : defaultValue;
41515
+ React.useEffect(function updateSelectedOptionIndexOnValueChange() {
41516
+ setSelectedOptionIndex(findSelectedIndex(options, selectValue, allowClearButton));
41517
+ }, [
41518
+ selectValue,
41519
+ allowClearButton,
41520
+ options
41521
+ ]);
41522
+ var prevSelectValueRef = React.useRef(selectValue);
41523
+ React.useEffect(function updateInputValueOnSelectValueChange() {
41524
+ if (prevSelectValueRef.current === selectValue) {
41525
+ return;
41526
+ }
41527
+ setInputValue(calculateInputValueFromOptions(optionsProp, selectValue));
41528
+ }, [
41529
+ selectValue,
41530
+ optionsProp
41531
+ ]);
41532
+ React.useEffect(function updatePrevSelectValue() {
41533
+ prevSelectValueRef.current = selectValue;
41534
+ }, [
41535
+ selectValue
41535
41536
  ]);
41536
41537
  var onNativeSelectChange = function(e) {
41537
41538
  var newSelectedOptionIndex = findSelectedIndex(options, e.currentTarget.value, allowClearButton);
@@ -41791,19 +41792,15 @@ var filter = function(options, inputValue, filterFn) {
41791
41792
  var selectInputAriaProps = (_obj = {
41792
41793
  'role': 'combobox',
41793
41794
  'aria-controls': popupAriaId,
41794
- 'aria-owns': popupAriaId,
41795
41795
  'aria-expanded': opened
41796
41796
  }, CustomSelect_define_property(_obj, 'aria-activedescendant', ariaActiveDescendantId && opened ? "".concat(popupAriaId, "-").concat(ariaActiveDescendantId) : undefined), CustomSelect_define_property(_obj, 'aria-labelledby', ariaLabelledBy), CustomSelect_define_property(_obj, 'aria-haspopup', 'listbox'), CustomSelect_define_property(_obj, 'aria-autocomplete', 'none'), _obj);
41797
- var focusWithin = useFocusWithin(handleRootRef);
41798
41797
  return /*#__PURE__*/ React.createElement("div", {
41799
41798
  className: classNames("vkuiCustomSelect", sizeY !== 'regular' && CustomSelect_sizeYClassNames[sizeY], className),
41800
41799
  style: style,
41801
41800
  ref: handleRootRef,
41802
41801
  onClick: passClickAndFocusToInputOnClick,
41803
41802
  onMouseDown: preventInputBlurWhenClickInsideFocusedSelectArea
41804
- }, focusWithin && selected && !opened && /*#__PURE__*/ React.createElement(VisuallyHidden, {
41805
- "aria-live": "polite"
41806
- }, selected.label), /*#__PURE__*/ React.createElement(CustomSelectInput, CustomSelect_object_spread_props(CustomSelect_object_spread({
41803
+ }, /*#__PURE__*/ React.createElement(CustomSelectInput, CustomSelect_object_spread_props(CustomSelect_object_spread({
41807
41804
  autoComplete: "off",
41808
41805
  autoCapitalize: "none",
41809
41806
  autoCorrect: "off",
@@ -41813,7 +41810,7 @@ var filter = function(options, inputValue, filterFn) {
41813
41810
  onFocus: onFocus,
41814
41811
  onBlur: onBlur,
41815
41812
  className: openedClassNames,
41816
- readOnly: !searchable,
41813
+ searchable: searchable,
41817
41814
  fetching: fetching,
41818
41815
  value: inputValue,
41819
41816
  onKeyUp: handleKeyUp,
@@ -41822,8 +41819,9 @@ var filter = function(options, inputValue, filterFn) {
41822
41819
  onClick: onClick,
41823
41820
  before: before,
41824
41821
  after: afterIcons,
41825
- selectType: selectType
41826
- }), selected === null || selected === void 0 ? void 0 : selected.label), /*#__PURE__*/ React.createElement("select", {
41822
+ selectType: selectType,
41823
+ selectedOptionLabel: selected === null || selected === void 0 ? void 0 : selected.label
41824
+ })), /*#__PURE__*/ React.createElement("select", {
41827
41825
  ref: selectElRef,
41828
41826
  name: name,
41829
41827
  onChange: onNativeSelectChange,
@@ -41845,7 +41843,7 @@ var filter = function(options, inputValue, filterFn) {
41845
41843
  });
41846
41844
  })), opened && /*#__PURE__*/ React.createElement(CustomSelectDropdown, {
41847
41845
  targetRef: containerRef,
41848
- placement: popupDirection,
41846
+ placement: popperPlacement,
41849
41847
  scrollBoxRef: setScrollBoxRef,
41850
41848
  onPlacementChange: setPopperPlacement,
41851
41849
  onMouseLeave: resetFocusedOption,
@@ -42136,7 +42134,7 @@ function Select_object_without_properties_loose(source, excluded) {
42136
42134
  "children",
42137
42135
  "className"
42138
42136
  ]);
42139
- var _props_options = props.options, options = _props_options === void 0 ? [] : _props_options, searchable = props.searchable, emptyText = props.emptyText, onInputChange = props.onInputChange, filterFn = props.filterFn, popupDirection = props.popupDirection, renderOption = props.renderOption, renderDropdown = props.renderDropdown, fetching = props.fetching, onClose = props.onClose, onOpen = props.onOpen, icon = props.icon, ClearButton = props.ClearButton, allowClearButton = props.allowClearButton, clearButtonTestId = props.clearButtonTestId, dropdownOffsetDistance = props.dropdownOffsetDistance, dropdownAutoWidth = props.dropdownAutoWidth, forceDropdownPortal = props.forceDropdownPortal, noMaxHeight = props.noMaxHeight, autoHideScrollbar = props.autoHideScrollbar, autoHideScrollbarDelay = props.autoHideScrollbarDelay, labelTextTestId = props.labelTextTestId, nativeSelectTestId = props.nativeSelectTestId, after = props.after, mode = props.mode, maxHeight = props.maxHeight, getSelectInputRef = props.getSelectInputRef, overscrollBehavior = props.overscrollBehavior, beforeAlign = props.beforeAlign, afterAlign = props.afterAlign, restProps = Select_object_without_properties(props, [
42137
+ var _props_options = props.options, options = _props_options === void 0 ? [] : _props_options, searchable = props.searchable, emptyText = props.emptyText, onInputChange = props.onInputChange, filterFn = props.filterFn, popupDirection = props.popupDirection, renderOption = props.renderOption, renderDropdown = props.renderDropdown, fetching = props.fetching, onClose = props.onClose, onOpen = props.onOpen, icon = props.icon, ClearButton = props.ClearButton, allowClearButton = props.allowClearButton, clearButtonTestId = props.clearButtonTestId, dropdownOffsetDistance = props.dropdownOffsetDistance, dropdownAutoWidth = props.dropdownAutoWidth, forceDropdownPortal = props.forceDropdownPortal, noMaxHeight = props.noMaxHeight, autoHideScrollbar = props.autoHideScrollbar, autoHideScrollbarDelay = props.autoHideScrollbarDelay, labelTextTestId = props.labelTextTestId, nativeSelectTestId = props.nativeSelectTestId, after = props.after, mode = props.mode, getSelectInputRef = props.getSelectInputRef, overscrollBehavior = props.overscrollBehavior, beforeAlign = props.beforeAlign, afterAlign = props.afterAlign, restProps = Select_object_without_properties(props, [
42140
42138
  "options",
42141
42139
  "searchable",
42142
42140
  "emptyText",
@@ -42162,7 +42160,6 @@ function Select_object_without_properties_loose(source, excluded) {
42162
42160
  "nativeSelectTestId",
42163
42161
  "after",
42164
42162
  "mode",
42165
- "maxHeight",
42166
42163
  "getSelectInputRef",
42167
42164
  "overscrollBehavior",
42168
42165
  "beforeAlign",