@consta/uikit 3.24.2 → 3.24.5

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 (456) hide show
  1. package/Attach/package.json +1 -1
  2. package/Attachment/package.json +1 -1
  3. package/Avatar/package.json +1 -1
  4. package/Badge/package.json +1 -1
  5. package/BasicSelectDeprecated/package.json +1 -1
  6. package/Breadcrumbs/package.json +1 -1
  7. package/BreadcrumbsCanary/package.json +1 -1
  8. package/Button/package.json +1 -1
  9. package/CHANGELOG.md +32 -69
  10. package/Calendar/package.json +1 -1
  11. package/Card/package.json +1 -1
  12. package/Checkbox/package.json +1 -1
  13. package/CheckboxGroup/package.json +1 -1
  14. package/CheckboxGroupCanary/package.json +1 -1
  15. package/ChoiceGroup/package.json +1 -1
  16. package/ChoiceGroupCanary/package.json +1 -1
  17. package/Collapse/package.json +1 -1
  18. package/CollapseGroup/package.json +1 -1
  19. package/Combobox/package.json +1 -1
  20. package/ComboboxDeprecated/package.json +1 -1
  21. package/ContextMenu/package.json +1 -1
  22. package/ContextMenuCanary/package.json +1 -1
  23. package/DatePickerCanary/package.json +1 -1
  24. package/DateTimeCanary/package.json +1 -1
  25. package/DragNDropField/package.json +1 -1
  26. package/EventInterceptor/package.json +1 -1
  27. package/FieldCaption/package.json +1 -1
  28. package/FieldLabel/package.json +1 -1
  29. package/File/package.json +1 -1
  30. package/FileField/package.json +1 -1
  31. package/FileIcon/package.json +1 -1
  32. package/FileIconAvi/package.json +1 -1
  33. package/FileIconBmp/package.json +1 -1
  34. package/FileIconCsv/package.json +1 -1
  35. package/FileIconDoc/package.json +1 -1
  36. package/FileIconExe/package.json +1 -1
  37. package/FileIconGif/package.json +1 -1
  38. package/FileIconJpg/package.json +1 -1
  39. package/FileIconJson/package.json +1 -1
  40. package/FileIconLoading/package.json +1 -1
  41. package/FileIconMov/package.json +1 -1
  42. package/FileIconMp3/package.json +1 -1
  43. package/FileIconMp4/package.json +1 -1
  44. package/FileIconPdf/package.json +1 -1
  45. package/FileIconPng/package.json +1 -1
  46. package/FileIconPpt/package.json +1 -1
  47. package/FileIconRar/package.json +1 -1
  48. package/FileIconRtf/package.json +1 -1
  49. package/FileIconTiff/package.json +1 -1
  50. package/FileIconTxt/package.json +1 -1
  51. package/FileIconUndefined/package.json +1 -1
  52. package/FileIconWav/package.json +1 -1
  53. package/FileIconXls/package.json +1 -1
  54. package/FileIconZip/package.json +1 -1
  55. package/Grid/package.json +1 -1
  56. package/Header/package.json +1 -1
  57. package/Icon/package.json +1 -1
  58. package/IconAdd/package.json +1 -1
  59. package/IconAddToComparison/package.json +1 -1
  60. package/IconAlert/package.json +1 -1
  61. package/IconAlignBlocksLeft/package.json +1 -1
  62. package/IconAlignBlocksRight/package.json +1 -1
  63. package/IconAlignCenter/package.json +1 -1
  64. package/IconAlignJustify/package.json +1 -1
  65. package/IconAlignLeft/package.json +1 -1
  66. package/IconAlignRight/package.json +1 -1
  67. package/IconAllDone/package.json +1 -1
  68. package/IconArrowDown/package.json +1 -1
  69. package/IconArrowLeft/package.json +1 -1
  70. package/IconArrowRight/package.json +1 -1
  71. package/IconArrowUp/package.json +1 -1
  72. package/IconArtBrush/package.json +1 -1
  73. package/IconAttach/package.json +1 -1
  74. package/IconBackward/package.json +1 -1
  75. package/IconBag/package.json +1 -1
  76. package/IconBarrier/package.json +1 -1
  77. package/IconBento/package.json +1 -1
  78. package/IconBold/package.json +1 -1
  79. package/IconBook/package.json +1 -1
  80. package/IconBookmarkFilled/package.json +1 -1
  81. package/IconBookmarkStroked/package.json +1 -1
  82. package/IconCalculator/package.json +1 -1
  83. package/IconCalendar/package.json +1 -1
  84. package/IconCamera/package.json +1 -1
  85. package/IconCancel/package.json +1 -1
  86. package/IconCards/package.json +1 -1
  87. package/IconChat/package.json +1 -1
  88. package/IconCheck/package.json +1 -1
  89. package/IconClose/package.json +1 -1
  90. package/IconCollapse/package.json +1 -1
  91. package/IconColorFill/package.json +1 -1
  92. package/IconColorText/package.json +1 -1
  93. package/IconColumns/package.json +1 -1
  94. package/IconComment/package.json +1 -1
  95. package/IconConnection/package.json +1 -1
  96. package/IconCopy/package.json +1 -1
  97. package/IconCrown/package.json +1 -1
  98. package/IconCursorMouse/package.json +1 -1
  99. package/IconDataNull/package.json +1 -1
  100. package/IconDiamond/package.json +1 -1
  101. package/IconDinosaur/package.json +1 -1
  102. package/IconDisconnection/package.json +1 -1
  103. package/IconDocAdd/package.json +1 -1
  104. package/IconDocBlank/package.json +1 -1
  105. package/IconDocDelete/package.json +1 -1
  106. package/IconDocExport/package.json +1 -1
  107. package/IconDocFilled/package.json +1 -1
  108. package/IconDown/package.json +1 -1
  109. package/IconDownload/package.json +1 -1
  110. package/IconDrag/package.json +1 -1
  111. package/IconDraggable/package.json +1 -1
  112. package/IconDrillingRig/package.json +1 -1
  113. package/IconDrop/package.json +1 -1
  114. package/IconEdit/package.json +1 -1
  115. package/IconExit/package.json +1 -1
  116. package/IconExpand/package.json +1 -1
  117. package/IconEye/package.json +1 -1
  118. package/IconEyeClose/package.json +1 -1
  119. package/IconFacebook/package.json +1 -1
  120. package/IconFavorite/package.json +1 -1
  121. package/IconFilter/package.json +1 -1
  122. package/IconFitToDefault/package.json +1 -1
  123. package/IconFlagFilled/package.json +1 -1
  124. package/IconFlagStroked/package.json +1 -1
  125. package/IconFolders/package.json +1 -1
  126. package/IconForward/package.json +1 -1
  127. package/IconFunnel/package.json +1 -1
  128. package/IconGas/package.json +1 -1
  129. package/IconGeo/package.json +1 -1
  130. package/IconGrouping/package.json +1 -1
  131. package/IconHamburger/package.json +1 -1
  132. package/IconHand/package.json +1 -1
  133. package/IconHealth/package.json +1 -1
  134. package/IconHome/package.json +1 -1
  135. package/IconInComparison/package.json +1 -1
  136. package/IconInfo/package.json +1 -1
  137. package/IconInstagram/package.json +1 -1
  138. package/IconIntroduction/package.json +1 -1
  139. package/IconIpad/package.json +1 -1
  140. package/IconItalic/package.json +1 -1
  141. package/IconKebab/package.json +1 -1
  142. package/IconLaptop/package.json +1 -1
  143. package/IconLayers/package.json +1 -1
  144. package/IconLeaf/package.json +1 -1
  145. package/IconLightningBolt/package.json +1 -1
  146. package/IconLineAndBarChart/package.json +1 -1
  147. package/IconLink/package.json +1 -1
  148. package/IconList/package.json +1 -1
  149. package/IconListNumbered/package.json +1 -1
  150. package/IconLock/package.json +1 -1
  151. package/IconLogicalElement/package.json +1 -1
  152. package/IconMBU/package.json +1 -1
  153. package/IconMGRP/package.json +1 -1
  154. package/IconMLSP/package.json +1 -1
  155. package/IconMMP/package.json +1 -1
  156. package/IconMail/package.json +1 -1
  157. package/IconMap/package.json +1 -1
  158. package/IconMaxHeight/package.json +1 -1
  159. package/IconMaxWidth/package.json +1 -1
  160. package/IconMeatball/package.json +1 -1
  161. package/IconMic/package.json +1 -1
  162. package/IconMolecules/package.json +1 -1
  163. package/IconMoon/package.json +1 -1
  164. package/IconNodeEnd/package.json +1 -1
  165. package/IconNodeStart/package.json +1 -1
  166. package/IconNodeStep/package.json +1 -1
  167. package/IconNodes/package.json +1 -1
  168. package/IconOpenInNew/package.json +1 -1
  169. package/IconOperators/package.json +1 -1
  170. package/IconPanelBottom/package.json +1 -1
  171. package/IconPanelLeft/package.json +1 -1
  172. package/IconPanelRight/package.json +1 -1
  173. package/IconPanelTop/package.json +1 -1
  174. package/IconPaste/package.json +1 -1
  175. package/IconPause/package.json +1 -1
  176. package/IconPhone/package.json +1 -1
  177. package/IconPhoto/package.json +1 -1
  178. package/IconPicture/package.json +1 -1
  179. package/IconPlay/package.json +1 -1
  180. package/IconPressure/package.json +1 -1
  181. package/IconPriceLabel/package.json +1 -1
  182. package/IconProcessing/package.json +1 -1
  183. package/IconQuestion/package.json +1 -1
  184. package/IconQuote/package.json +1 -1
  185. package/IconRUO/package.json +1 -1
  186. package/IconRUS/package.json +1 -1
  187. package/IconRecord/package.json +1 -1
  188. package/IconRemove/package.json +1 -1
  189. package/IconRemoveFromComparison/package.json +1 -1
  190. package/IconReply/package.json +1 -1
  191. package/IconResize/package.json +1 -1
  192. package/IconRestart/package.json +1 -1
  193. package/IconRevert/package.json +1 -1
  194. package/IconRing/package.json +1 -1
  195. package/IconRouble/package.json +1 -1
  196. package/IconRuler/package.json +1 -1
  197. package/IconSave/package.json +1 -1
  198. package/IconScreen/package.json +1 -1
  199. package/IconSearch/package.json +1 -1
  200. package/IconSelect/package.json +1 -1
  201. package/IconSelectOpen/package.json +1 -1
  202. package/IconSendMessage/package.json +1 -1
  203. package/IconSettings/package.json +1 -1
  204. package/IconShape/package.json +1 -1
  205. package/IconShuffle/package.json +1 -1
  206. package/IconSmile/package.json +1 -1
  207. package/IconSortDown/package.json +1 -1
  208. package/IconSortDownCenter/package.json +1 -1
  209. package/IconSortUp/package.json +1 -1
  210. package/IconSortUpCenter/package.json +1 -1
  211. package/IconStop/package.json +1 -1
  212. package/IconStorage/package.json +1 -1
  213. package/IconStrikethrough/package.json +1 -1
  214. package/IconSun/package.json +1 -1
  215. package/IconTable/package.json +1 -1
  216. package/IconTable2/package.json +1 -1
  217. package/IconTarget/package.json +1 -1
  218. package/IconTeam/package.json +1 -1
  219. package/IconTechResponse/package.json +1 -1
  220. package/IconTest/package.json +1 -1
  221. package/IconThumbUp/package.json +1 -1
  222. package/IconTie/package.json +1 -1
  223. package/IconTop/package.json +1 -1
  224. package/IconTrash/package.json +1 -1
  225. package/IconType/package.json +1 -1
  226. package/IconUnderline/package.json +1 -1
  227. package/IconUnlock/package.json +1 -1
  228. package/IconUnsort/package.json +1 -1
  229. package/IconUnsortCenter/package.json +1 -1
  230. package/IconUpload/package.json +1 -1
  231. package/IconUser/package.json +1 -1
  232. package/IconVZD/package.json +1 -1
  233. package/IconVideo/package.json +1 -1
  234. package/IconVkontakte/package.json +1 -1
  235. package/IconWarning/package.json +1 -1
  236. package/IconWatch/package.json +1 -1
  237. package/IconWideScreen/package.json +1 -1
  238. package/IconWorld/package.json +1 -1
  239. package/IconWrench/package.json +1 -1
  240. package/IconYandexDzen/package.json +1 -1
  241. package/IconYoutube/package.json +1 -1
  242. package/Informer/package.json +1 -1
  243. package/LayoutCanary/package.json +1 -1
  244. package/Loader/package.json +1 -1
  245. package/MixCard/package.json +1 -1
  246. package/MixFocus/package.json +1 -1
  247. package/MixPopoverAnimate/package.json +1 -1
  248. package/MixPopoverArrow/package.json +1 -1
  249. package/MixSpace/package.json +1 -1
  250. package/MixVisuallyHidden/package.json +1 -1
  251. package/Modal/package.json +1 -1
  252. package/MultiComboboxDeprecated/package.json +1 -1
  253. package/Pagination/package.json +1 -1
  254. package/Popover/package.json +1 -1
  255. package/PortalWithTheme/package.json +1 -1
  256. package/ProgressSpin/package.json +1 -1
  257. package/ProgressStepBarCanary/package.json +1 -1
  258. package/Radio/package.json +1 -1
  259. package/RadioGroup/package.json +1 -1
  260. package/Responses/package.json +1 -1
  261. package/Responses403/package.json +1 -1
  262. package/Responses404/package.json +1 -1
  263. package/Responses500/package.json +1 -1
  264. package/Responses503/package.json +1 -1
  265. package/ResponsesConnectionError/package.json +1 -1
  266. package/ResponsesDeleted/package.json +1 -1
  267. package/ResponsesEmptyBox/package.json +1 -1
  268. package/ResponsesEmptyPockets/package.json +1 -1
  269. package/ResponsesExit/package.json +1 -1
  270. package/ResponsesImage/package.json +1 -1
  271. package/ResponsesImage403/package.json +1 -1
  272. package/ResponsesImage404/package.json +1 -1
  273. package/ResponsesImage500/package.json +1 -1
  274. package/ResponsesImage503/package.json +1 -1
  275. package/ResponsesImageConnectionError/package.json +1 -1
  276. package/ResponsesImageDeleted/package.json +1 -1
  277. package/ResponsesImageEmptyBox/package.json +1 -1
  278. package/ResponsesImageEmptyPockets/package.json +1 -1
  279. package/ResponsesImageNothingFound/package.json +1 -1
  280. package/ResponsesImageSuccess/package.json +1 -1
  281. package/ResponsesNothingFound/package.json +1 -1
  282. package/ResponsesSuccess/package.json +1 -1
  283. package/Select/package.json +1 -1
  284. package/Sidebar/package.json +1 -1
  285. package/Skeleton/package.json +1 -1
  286. package/SliderCanary/package.json +1 -1
  287. package/SnackBar/package.json +1 -1
  288. package/Steps/package.json +1 -1
  289. package/StepsCanary/package.json +1 -1
  290. package/Switch/package.json +1 -1
  291. package/SwitchGroup/package.json +1 -1
  292. package/SwitchGroupCanary/package.json +1 -1
  293. package/Table/package.json +1 -1
  294. package/Tabs/package.json +1 -1
  295. package/TabsCanary/package.json +1 -1
  296. package/Tag/package.json +1 -1
  297. package/TagBase/package.json +1 -1
  298. package/Text/package.json +1 -1
  299. package/TextField/package.json +1 -1
  300. package/Theme/package.json +1 -1
  301. package/ThemeToggler/package.json +1 -1
  302. package/Timer/package.json +1 -1
  303. package/Tooltip/package.json +1 -1
  304. package/User/package.json +1 -1
  305. package/UserSelect/package.json +1 -1
  306. package/UserSelectDeprecated/package.json +1 -1
  307. package/__internal__/cjs-src/components/Combobox/helpers.d.ts +1 -1
  308. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDate/DatePickerFieldTypeDate.d.ts +1 -0
  309. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDate/DatePickerFieldTypeDate.js +29 -29
  310. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDate/helpers.d.ts +5 -1
  311. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDate/helpers.js +33 -19
  312. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.d.ts +2 -1
  313. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.js +7 -63
  314. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.d.ts +1 -0
  315. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.js +21 -18
  316. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateTime/helpers.d.ts +5 -1
  317. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateTime/helpers.js +21 -5
  318. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.d.ts +2 -1
  319. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js +7 -63
  320. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.d.ts +1 -0
  321. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.js +27 -27
  322. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeMonth/helpers.d.ts +5 -1
  323. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeMonth/helpers.js +24 -9
  324. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.d.ts +2 -1
  325. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.js +7 -63
  326. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeMonthRange/helpers.d.ts +2 -2
  327. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeTime/DatePickerFieldTypeTime.d.ts +1 -0
  328. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeTime/DatePickerFieldTypeTime.js +21 -18
  329. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeTime/helpers.d.ts +5 -1
  330. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeTime/helpers.js +19 -3
  331. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeYear/DatePickerFieldTypeYear.d.ts +1 -0
  332. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeYear/DatePickerFieldTypeYear.js +25 -25
  333. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeYear/helpers.d.ts +1 -0
  334. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.d.ts +2 -1
  335. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.js +7 -63
  336. package/__internal__/cjs-src/components/DatePickerCanary/getChangeFnRange.d.ts +14 -0
  337. package/__internal__/cjs-src/components/DatePickerCanary/getChangeFnRange.js +40 -0
  338. package/__internal__/cjs-src/components/DatePickerCanary/types.d.ts +1 -0
  339. package/__internal__/cjs-src/components/DragNDropField/DragNDropField.css +10 -1
  340. package/__internal__/cjs-src/components/DragNDropField/DragNDropField.d.ts +11 -2
  341. package/__internal__/cjs-src/components/DragNDropField/DragNDropField.js +15 -12
  342. package/__internal__/cjs-src/components/DragNDropField/DragNDropFieldContent/DragNDropFieldContent.css +3 -0
  343. package/__internal__/cjs-src/components/DragNDropField/DragNDropFieldContent/DragNDropFieldContent.js +4 -4
  344. package/__internal__/cjs-src/components/DragNDropField/DragNDropFieldContent/formatFileRequirements.d.ts +1 -1
  345. package/__internal__/cjs-src/components/DragNDropField/DragNDropFieldContent/formatFileRequirements.js +15 -14
  346. package/__internal__/cjs-src/components/DragNDropField/getErrorsList.js +1 -1
  347. package/__internal__/cjs-src/components/DragNDropField/locale.d.ts +1 -1
  348. package/__internal__/cjs-src/components/DragNDropField/locale.js +10 -4
  349. package/__internal__/cjs-src/components/DragNDropField/types.d.ts +6 -3
  350. package/__internal__/cjs-src/components/Popover/Popover.css +2 -36
  351. package/__internal__/cjs-src/components/Popover/Popover.js +41 -12
  352. package/__internal__/cjs-src/components/Popover/helpers.d.ts +4 -4
  353. package/__internal__/cjs-src/components/Popover/helpers.js +9 -11
  354. package/__internal__/cjs-src/components/Popover/usePopoverReposition.d.ts +2 -1
  355. package/__internal__/cjs-src/components/Popover/usePopoverReposition.js +12 -12
  356. package/__internal__/cjs-src/components/SelectComponents/SelectDropdown/SelectDropdown.js +2 -3
  357. package/__internal__/cjs-src/components/SliderCanary/SliderInput/SliderInput.d.ts +1 -1
  358. package/__internal__/cjs-src/components/Table/Table.d.ts +4 -0
  359. package/__internal__/cjs-src/components/Table/filtering.d.ts +1 -5
  360. package/__internal__/cjs-src/components/TextField/TextField.css +24 -2
  361. package/__internal__/cjs-src/components/TextField/TextField.d.ts +2 -2
  362. package/__internal__/cjs-src/components/TextField/TextField.js +51 -45
  363. package/__internal__/cjs-src/components/TextField/helpers.d.ts +6 -100
  364. package/__internal__/cjs-src/components/TextField/helpers.js +18 -30
  365. package/__internal__/cjs-src/components/TextField/types.d.ts +87 -0
  366. package/__internal__/cjs-src/components/TextField/types.js +27 -0
  367. package/__internal__/cjs-src/mixs/MixPopoverAnimate/MixPopoverAnimate.css +40 -4
  368. package/__internal__/src/components/Combobox/helpers.d.ts +1 -1
  369. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDate/DatePickerFieldTypeDate.d.ts +1 -0
  370. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDate/DatePickerFieldTypeDate.js +29 -29
  371. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDate/helpers.d.ts +5 -1
  372. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDate/helpers.js +34 -20
  373. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.d.ts +2 -1
  374. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.js +8 -64
  375. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.d.ts +1 -0
  376. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.js +21 -18
  377. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateTime/helpers.d.ts +5 -1
  378. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateTime/helpers.js +22 -6
  379. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.d.ts +2 -1
  380. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js +8 -64
  381. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.d.ts +1 -0
  382. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.js +27 -27
  383. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeMonth/helpers.d.ts +5 -1
  384. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeMonth/helpers.js +25 -10
  385. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.d.ts +2 -1
  386. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.js +8 -64
  387. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeMonthRange/helpers.d.ts +2 -2
  388. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeTime/DatePickerFieldTypeTime.d.ts +1 -0
  389. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeTime/DatePickerFieldTypeTime.js +21 -18
  390. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeTime/helpers.d.ts +5 -1
  391. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeTime/helpers.js +20 -4
  392. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeYear/DatePickerFieldTypeYear.d.ts +1 -0
  393. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeYear/DatePickerFieldTypeYear.js +25 -25
  394. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeYear/helpers.d.ts +1 -0
  395. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.d.ts +2 -1
  396. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.js +8 -64
  397. package/__internal__/src/components/DatePickerCanary/getChangeFnRange.d.ts +14 -0
  398. package/__internal__/src/components/DatePickerCanary/getChangeFnRange.js +36 -0
  399. package/__internal__/src/components/DatePickerCanary/types.d.ts +1 -0
  400. package/__internal__/src/components/DragNDropField/DragNDropField.css +10 -1
  401. package/__internal__/src/components/DragNDropField/DragNDropField.d.ts +11 -2
  402. package/__internal__/src/components/DragNDropField/DragNDropField.js +17 -14
  403. package/__internal__/src/components/DragNDropField/DragNDropFieldContent/DragNDropFieldContent.css +3 -0
  404. package/__internal__/src/components/DragNDropField/DragNDropFieldContent/DragNDropFieldContent.js +4 -4
  405. package/__internal__/src/components/DragNDropField/DragNDropFieldContent/formatFileRequirements.d.ts +1 -1
  406. package/__internal__/src/components/DragNDropField/DragNDropFieldContent/formatFileRequirements.js +15 -14
  407. package/__internal__/src/components/DragNDropField/getErrorsList.js +1 -1
  408. package/__internal__/src/components/DragNDropField/locale.d.ts +1 -1
  409. package/__internal__/src/components/DragNDropField/locale.js +10 -4
  410. package/__internal__/src/components/DragNDropField/types.d.ts +6 -3
  411. package/__internal__/src/components/Popover/Popover.css +2 -36
  412. package/__internal__/src/components/Popover/Popover.js +42 -13
  413. package/__internal__/src/components/Popover/helpers.d.ts +4 -4
  414. package/__internal__/src/components/Popover/helpers.js +8 -10
  415. package/__internal__/src/components/Popover/usePopoverReposition.d.ts +2 -1
  416. package/__internal__/src/components/Popover/usePopoverReposition.js +12 -12
  417. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js +4 -5
  418. package/__internal__/src/components/SliderCanary/SliderInput/SliderInput.d.ts +1 -1
  419. package/__internal__/src/components/Table/Table.d.ts +4 -0
  420. package/__internal__/src/components/Table/filtering.d.ts +1 -5
  421. package/__internal__/src/components/TextField/TextField.css +24 -2
  422. package/__internal__/src/components/TextField/TextField.d.ts +2 -2
  423. package/__internal__/src/components/TextField/TextField.js +52 -46
  424. package/__internal__/src/components/TextField/helpers.d.ts +6 -100
  425. package/__internal__/src/components/TextField/helpers.js +17 -29
  426. package/__internal__/src/components/TextField/types.d.ts +87 -0
  427. package/__internal__/src/components/TextField/types.js +24 -0
  428. package/__internal__/src/mixs/MixPopoverAnimate/MixPopoverAnimate.css +40 -4
  429. package/createIcon/package.json +1 -1
  430. package/createResponsesImage/package.json +1 -1
  431. package/fonts/index.d.ts +1 -0
  432. package/fonts/index.js +1 -0
  433. package/package.json +4 -3
  434. package/useBreakpoints/package.json +1 -1
  435. package/useChoiceGroup/package.json +1 -1
  436. package/useChoiceGroupIndexed/package.json +1 -1
  437. package/useClickOutside/package.json +1 -1
  438. package/useComponentSize/package.json +1 -1
  439. package/useDebounce/package.json +1 -1
  440. package/useFlag/package.json +1 -1
  441. package/useForkRef/package.json +1 -1
  442. package/useGlobalKeys/package.json +1 -1
  443. package/useHideElementsInLine/package.json +1 -1
  444. package/useKeys/package.json +1 -1
  445. package/useMutableRef/package.json +1 -1
  446. package/useOverflow/package.json +1 -1
  447. package/usePrevious/package.json +1 -1
  448. package/useRefs/package.json +1 -1
  449. package/useResizeObserved/package.json +1 -1
  450. package/useScrollElements/package.json +1 -1
  451. package/useScrollPosition/package.json +1 -1
  452. package/useSelect/package.json +1 -1
  453. package/useSortSteps/package.json +1 -1
  454. package/useThemeVars/package.json +1 -1
  455. package/useTimer/package.json +1 -1
  456. package/withTooltip/package.json +1 -1
@@ -8,6 +8,7 @@ var useClickOutside_1 = require("../../hooks/useClickOutside/useClickOutside");
8
8
  var useComponentSize_1 = require("../../hooks/useComponentSize/useComponentSize");
9
9
  var useForkRef_1 = require("../../hooks/useForkRef/useForkRef");
10
10
  var bem_1 = require("../../utils/bem");
11
+ var type_guards_1 = require("../../utils/type-guards");
11
12
  var PortalWithTheme_1 = require("../PortalWithTheme/PortalWithTheme");
12
13
  var Theme_1 = require("../Theme/Theme");
13
14
  var helpers_1 = require("./helpers");
@@ -56,6 +57,29 @@ exports.popoverPropOffset = [
56
57
  '6xl',
57
58
  ];
58
59
  exports.directions = tslib_1.__spread(exports.directionsStartCenter, exports.directionsStartEdge);
60
+ var getOffset = function (ref, propOffset) {
61
+ if (type_guards_1.isNumber(propOffset)) {
62
+ return propOffset;
63
+ }
64
+ if (type_guards_1.isString(propOffset) && ref.current) {
65
+ var cssVar = getComputedStyle(ref.current).getPropertyValue("--space-" + propOffset);
66
+ if (cssVar && /px$/.test(cssVar)) {
67
+ return Number(cssVar.slice(0, cssVar.length - 2));
68
+ }
69
+ if (cssVar && /rem$/.test(cssVar)) {
70
+ var fontSize = parseFloat(getComputedStyle(document.documentElement).fontSize);
71
+ var rem = Number(cssVar.slice(0, cssVar.length - 3));
72
+ return fontSize * rem;
73
+ }
74
+ if (cssVar && /em$/.test(cssVar)) {
75
+ var fontSize = parseFloat(getComputedStyle(ref.current).fontSize);
76
+ var em = Number(cssVar.slice(0, cssVar.length - 2));
77
+ return fontSize * em;
78
+ }
79
+ return 0;
80
+ }
81
+ return 0;
82
+ };
59
83
  var isRenderProp = function (children) { return typeof children === 'function'; };
60
84
  /**
61
85
  * Подписчик на PortalWithThemeProvider
@@ -75,7 +99,7 @@ var ContextConsumer = function (_a) {
75
99
  var cnPopover = bem_1.cn('Popover');
76
100
  exports.Popover = react_1.forwardRef(function (props, componentRef) {
77
101
  var _a;
78
- var children = props.children, _b = props.direction, passedDirection = _b === void 0 ? 'upCenter' : _b, _c = props.offset, offset = _c === void 0 ? 0 : _c, arrowOffset = props.arrowOffset, _d = props.possibleDirections, possibleDirections = _d === void 0 ? exports.directions : _d, _e = props.isInteractive, isInteractive = _e === void 0 ? true : _e, onClickOutside = props.onClickOutside, _f = props.spareDirection, spareDirection = _f === void 0 ? 'downStartLeft' : _f, style = props.style, className = props.className, passedPosition = props.position, anchorRef = props.anchorRef, equalAnchorWidth = props.equalAnchorWidth, onSetDirection = props.onSetDirection, otherProps = tslib_1.__rest(props, ["children", "direction", "offset", "arrowOffset", "possibleDirections", "isInteractive", "onClickOutside", "spareDirection", "style", "className", "position", "anchorRef", "equalAnchorWidth", "onSetDirection"]);
102
+ var children = props.children, _b = props.direction, passedDirection = _b === void 0 ? 'upCenter' : _b, _c = props.offset, propOffset = _c === void 0 ? 0 : _c, arrowOffset = props.arrowOffset, _d = props.possibleDirections, possibleDirections = _d === void 0 ? exports.directions : _d, _e = props.isInteractive, isInteractive = _e === void 0 ? true : _e, onClickOutside = props.onClickOutside, _f = props.spareDirection, spareDirection = _f === void 0 ? 'downStartLeft' : _f, style = props.style, className = props.className, passedPosition = props.position, anchorRef = props.anchorRef, equalAnchorWidth = props.equalAnchorWidth, onSetDirection = props.onSetDirection, otherProps = tslib_1.__rest(props, ["children", "direction", "offset", "arrowOffset", "possibleDirections", "isInteractive", "onClickOutside", "spareDirection", "style", "className", "position", "anchorRef", "equalAnchorWidth", "onSetDirection"]);
79
103
  var ref = react_1["default"].useRef(null);
80
104
  var theme = Theme_1.useTheme().theme;
81
105
  var _g = tslib_1.__read(react_1["default"].useState(), 2), anchorClientRect = _g[0], setAnchorClientRect = _g[1];
@@ -88,6 +112,7 @@ exports.Popover = react_1.forwardRef(function (props, componentRef) {
88
112
  previousDirectionRef.current = null;
89
113
  };
90
114
  var updateAnchorClientRect = function () { var _a; return setAnchorClientRect((_a = anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect()); };
115
+ var offset = react_1.useMemo(function () { return getOffset(ref, propOffset); }, [propOffset, Boolean(ref.current)]);
91
116
  var _k = helpers_1.getComputedPositionAndDirection({
92
117
  contentSize: { width: width, height: height },
93
118
  viewportSize: {
@@ -96,6 +121,7 @@ exports.Popover = react_1.forwardRef(function (props, componentRef) {
96
121
  height: document.documentElement.clientHeight
97
122
  },
98
123
  arrowOffset: arrowOffset,
124
+ offset: offset,
99
125
  direction: passedDirection,
100
126
  possibleDirections: possibleDirections,
101
127
  bannedDirections: bannedDirections,
@@ -105,11 +131,10 @@ exports.Popover = react_1.forwardRef(function (props, componentRef) {
105
131
  anchorSize: anchorSize,
106
132
  spareDirection: spareDirection
107
133
  }), position = _k.position, direction = _k.direction;
108
- var content = isRenderProp(children) ? children(direction) : children;
109
134
  react_1.useLayoutEffect(function () { return onSetDirection === null || onSetDirection === void 0 ? void 0 : onSetDirection(direction); }, [direction]);
110
- react_1.useLayoutEffect(resetBannedDirections, [props]);
111
135
  react_1.useEffect(updateAnchorClientRect, [anchorSize]);
112
136
  usePopoverReposition_1.usePopoverReposition({
137
+ isActive: true,
113
138
  scrollAnchorRef: anchorRef || { current: null },
114
139
  onRequestReposition: function () {
115
140
  resetBannedDirections();
@@ -122,16 +147,20 @@ exports.Popover = react_1.forwardRef(function (props, componentRef) {
122
147
  * которые не подошли, чтобы не возвращаться к ним и предотвратить бесконечный ререндер.
123
148
  * См. PopoverBannedPositionsStory
124
149
  */
125
- if (previousDirectionRef.current !== direction) {
126
- if (previousDirectionRef.current && !bannedDirections.includes(previousDirectionRef.current)) {
127
- setBannedDirections(function (state) {
128
- return previousDirectionRef.current ? tslib_1.__spread(state, [previousDirectionRef.current]) : state;
129
- });
150
+ react_1.useLayoutEffect(function () {
151
+ if (previousDirectionRef.current !== direction) {
152
+ if (previousDirectionRef.current &&
153
+ !bannedDirections.includes(previousDirectionRef.current)) {
154
+ setBannedDirections(function (state) {
155
+ return previousDirectionRef.current ? tslib_1.__spread(state, [previousDirectionRef.current]) : state;
156
+ });
157
+ }
158
+ previousDirectionRef.current = direction;
130
159
  }
131
- previousDirectionRef.current = direction;
132
- }
160
+ }, [direction]);
133
161
  // Сбрасываем при любом изменении пропсов, чтобы заново начать перебор направлений
134
162
  // Главное не сбрасывать при изменении размеров поповера, т.к. именно оно может вызвать бесконечный перебор
135
- return (react_1["default"].createElement(PortalWithTheme_1.PortalWithTheme, tslib_1.__assign({}, otherProps, { preset: theme, className: cnPopover({ direction: direction }, [className]), container: window.document.body, ref: useForkRef_1.useForkRef([ref, componentRef]), style: tslib_1.__assign(tslib_1.__assign({}, style), (_a = {}, _a['--popover-top'] = ((position === null || position === void 0 ? void 0 : position.y) || 0) + window.scrollY + "px", _a['--popover-left'] = ((position === null || position === void 0 ? void 0 : position.x) || 0) + window.scrollX + "px", _a["--popover-width"] = equalAnchorWidth ? anchorSize.width + "px" : undefined, _a["--popover-pointer-events"] = isInteractive ? undefined : 'none', _a["--popover-visibility"] = position ? undefined : 'hidden', _a["--popover-offset"] = typeof offset === 'string' ? "var(--space-" + offset + ")" : offset + "px", _a)) }),
136
- react_1["default"].createElement(ContextConsumer, { onClickOutside: onClickOutside, ignoreClicksInsideRefs: [ref, anchorRef || { current: null }] }, content)));
163
+ react_1.useLayoutEffect(resetBannedDirections, [props]);
164
+ return (react_1["default"].createElement(PortalWithTheme_1.PortalWithTheme, tslib_1.__assign({}, otherProps, { preset: theme, className: cnPopover({ direction: direction }, [className]), container: window.document.body, ref: useForkRef_1.useForkRef([ref, componentRef]), style: tslib_1.__assign(tslib_1.__assign({}, style), (_a = {}, _a['--popover-top'] = ((position === null || position === void 0 ? void 0 : position.y) || 0) + window.scrollY + "px", _a['--popover-left'] = ((position === null || position === void 0 ? void 0 : position.x) || 0) + window.scrollX + "px", _a["--popover-width"] = equalAnchorWidth ? anchorSize.width + "px" : undefined, _a["--popover-pointer-events"] = isInteractive ? undefined : 'none', _a["--popover-visibility"] = position ? undefined : 'hidden', _a)) }),
165
+ react_1["default"].createElement(ContextConsumer, { onClickOutside: onClickOutside, ignoreClicksInsideRefs: [ref, anchorRef || { current: null }] }, isRenderProp(children) ? children(direction) : children)));
137
166
  });
@@ -1,26 +1,26 @@
1
1
  import { Direction, Position } from './Popover';
2
2
  declare type Size = Pick<ClientRect, 'width' | 'height'>;
3
3
  declare type PositionsByDirection = Record<Direction, NonNullable<Position>>;
4
- export declare const convertPixelsToNumber: (pixels: string) => number;
5
- export declare const getPositionsByDirection: ({ contentSize, anchorSize, position: { x, y }, arrowOffset, }: {
4
+ export declare const getPositionsByDirection: ({ contentSize, anchorSize, position: { x, y }, arrowOffset, offset, }: {
6
5
  contentSize: Size;
7
6
  anchorSize: Size;
8
7
  position: NonNullable<Position>;
9
8
  arrowOffset?: number | undefined;
9
+ offset?: number | undefined;
10
10
  }) => PositionsByDirection;
11
11
  declare type ComputedPositionAndDirectionParams = {
12
12
  position: Position;
13
13
  contentSize: Size;
14
14
  viewportSize: Size;
15
15
  anchorSize?: Size;
16
- offset?: number | string;
16
+ offset?: number;
17
17
  arrowOffset?: number;
18
18
  direction: Direction;
19
19
  spareDirection: Direction;
20
20
  possibleDirections: readonly Direction[];
21
21
  bannedDirections: readonly Direction[];
22
22
  };
23
- export declare const getComputedPositionAndDirection: ({ position: initialPosition, contentSize, viewportSize, anchorSize, arrowOffset, direction: initialDirection, possibleDirections, bannedDirections, spareDirection, }: ComputedPositionAndDirectionParams) => {
23
+ export declare const getComputedPositionAndDirection: ({ position: initialPosition, contentSize, viewportSize, anchorSize, arrowOffset, direction: initialDirection, possibleDirections, bannedDirections, spareDirection, offset, }: ComputedPositionAndDirectionParams) => {
24
24
  direction: Direction;
25
25
  position: Position;
26
26
  };
@@ -1,31 +1,28 @@
1
1
  "use strict";
2
2
  exports.__esModule = true;
3
- exports.getComputedPositionAndDirection = exports.getPositionsByDirection = exports.convertPixelsToNumber = void 0;
3
+ exports.getComputedPositionAndDirection = exports.getPositionsByDirection = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var getPosition = function (x, y) { return ({
6
6
  x: Math.round(x),
7
7
  y: Math.round(y)
8
8
  }); };
9
- exports.convertPixelsToNumber = function (pixels) {
10
- return Number(pixels.slice(0, pixels.length - 2));
11
- };
12
9
  exports.getPositionsByDirection = function (_a) {
13
- var contentSize = _a.contentSize, anchorSize = _a.anchorSize, _b = _a.position, x = _b.x, y = _b.y, _c = _a.arrowOffset, arrowOffset = _c === void 0 ? 0 : _c;
10
+ var contentSize = _a.contentSize, anchorSize = _a.anchorSize, _b = _a.position, x = _b.x, y = _b.y, _c = _a.arrowOffset, arrowOffset = _c === void 0 ? 0 : _c, _d = _a.offset, offset = _d === void 0 ? 0 : _d;
14
11
  var contentWidth = contentSize.width, contentHeight = contentSize.height;
15
12
  var anchorWidth = anchorSize.width, anchorHeight = anchorSize.height;
16
13
  var anchorCenter = {
17
14
  x: x + anchorWidth / 2,
18
15
  y: y + anchorHeight / 2
19
16
  };
20
- var xForRightDirections = x + anchorWidth;
21
- var xForLeftDirections = x - contentWidth;
17
+ var xForRightDirections = x + anchorWidth + offset;
18
+ var xForLeftDirections = x - contentWidth - offset;
22
19
  var xForVerticalDirections = {
23
20
  right: anchorCenter.x - arrowOffset,
24
21
  center: anchorCenter.x - contentWidth / 2,
25
22
  left: anchorCenter.x - contentWidth + arrowOffset
26
23
  };
27
- var yForDownDirections = y + anchorHeight;
28
- var yForUpDirections = y - contentHeight;
24
+ var yForDownDirections = y + anchorHeight + offset;
25
+ var yForUpDirections = y - contentHeight - offset;
29
26
  var yForHorizontalDirections = {
30
27
  up: anchorCenter.y - contentHeight + arrowOffset,
31
28
  center: anchorCenter.y - contentHeight / 2,
@@ -59,7 +56,7 @@ exports.getPositionsByDirection = function (_a) {
59
56
  };
60
57
  };
61
58
  exports.getComputedPositionAndDirection = function (_a) {
62
- var initialPosition = _a.position, contentSize = _a.contentSize, viewportSize = _a.viewportSize, _b = _a.anchorSize, anchorSize = _b === void 0 ? { width: 0, height: 0 } : _b, arrowOffset = _a.arrowOffset, initialDirection = _a.direction, possibleDirections = _a.possibleDirections, bannedDirections = _a.bannedDirections, spareDirection = _a.spareDirection;
59
+ var initialPosition = _a.position, contentSize = _a.contentSize, viewportSize = _a.viewportSize, _b = _a.anchorSize, anchorSize = _b === void 0 ? { width: 0, height: 0 } : _b, arrowOffset = _a.arrowOffset, initialDirection = _a.direction, possibleDirections = _a.possibleDirections, bannedDirections = _a.bannedDirections, spareDirection = _a.spareDirection, _c = _a.offset, offset = _c === void 0 ? 0 : _c;
63
60
  if (!initialPosition) {
64
61
  return { position: initialPosition, direction: initialDirection };
65
62
  }
@@ -67,7 +64,8 @@ exports.getComputedPositionAndDirection = function (_a) {
67
64
  contentSize: contentSize,
68
65
  anchorSize: anchorSize,
69
66
  position: initialPosition,
70
- arrowOffset: arrowOffset
67
+ arrowOffset: arrowOffset,
68
+ offset: offset
71
69
  });
72
70
  var direction = tslib_1.__spread([initialDirection], possibleDirections).filter(function (dir) { return !bannedDirections.includes(dir); })
73
71
  .find(function (dir) {
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  /** Запрос репозиции поповера при ресайзе окна и скролле */
3
- export declare const usePopoverReposition: ({ scrollAnchorRef, onRequestReposition, }: {
3
+ export declare const usePopoverReposition: ({ isActive, scrollAnchorRef, onRequestReposition, }: {
4
+ isActive: boolean;
4
5
  /** При скролле родителей этого элемента будет запрашиваться репозиция поповера */
5
6
  scrollAnchorRef: React.RefObject<HTMLElement | null>;
6
7
  onRequestReposition: () => void;
@@ -14,19 +14,19 @@ var getAllParents = function (element) {
14
14
  };
15
15
  /** Запрос репозиции поповера при ресайзе окна и скролле */
16
16
  exports.usePopoverReposition = function (_a) {
17
- var scrollAnchorRef = _a.scrollAnchorRef, onRequestReposition = _a.onRequestReposition;
17
+ var isActive = _a.isActive, scrollAnchorRef = _a.scrollAnchorRef, onRequestReposition = _a.onRequestReposition;
18
18
  var onRequestRepositionRef = useMutableRef_1.useMutableRef(onRequestReposition);
19
19
  react_1.useEffect(function () {
20
- window.addEventListener('resize', onRequestRepositionRef.current);
21
- var allParents = (scrollAnchorRef === null || scrollAnchorRef === void 0 ? void 0 : scrollAnchorRef.current) ? getAllParents(scrollAnchorRef.current) : [];
22
- allParents.forEach(function (parentEl) {
23
- return parentEl.addEventListener('scroll', onRequestRepositionRef.current);
24
- });
25
- return function () {
26
- window.removeEventListener('resize', onRequestRepositionRef.current);
27
- allParents.forEach(function (parentEl) {
28
- return parentEl.removeEventListener('scroll', onRequestRepositionRef.current);
29
- });
30
- };
20
+ var fn = function () { return onRequestRepositionRef.current(); };
21
+ if (isActive) {
22
+ window.addEventListener('resize', fn);
23
+ var allParents_1 = (scrollAnchorRef === null || scrollAnchorRef === void 0 ? void 0 : scrollAnchorRef.current) ? getAllParents(scrollAnchorRef.current) : [];
24
+ allParents_1.forEach(function (parentEl) { return parentEl.addEventListener('scroll', fn); });
25
+ return function () {
26
+ window.removeEventListener('resize', fn);
27
+ allParents_1.forEach(function (parentEl) { return parentEl.removeEventListener('scroll', fn); });
28
+ };
29
+ }
30
+ return undefined;
31
31
  }, [scrollAnchorRef]);
32
32
  };
@@ -19,7 +19,6 @@ exports.defaultSelectDropdownPropForm = exports.selectDropdownform[0];
19
19
  var cnSelectDropdown = bem_1.cn('SelectDropdown');
20
20
  exports.SelectDropdown = function (props) {
21
21
  var controlRef = props.controlRef, size = props.size, getOptionProps = props.getOptionProps, dropdownRef = props.dropdownRef, labelForCreate = props.labelForCreate, className = props.className, labelForNotFound = props.labelForNotFound, labelForEmptyItems = props.labelForEmptyItems, _a = props.hasItems, hasItems = _a === void 0 ? true : _a, form = props.form, isOpen = props.isOpen, renderItem = props.renderItem, visibleItems = props.visibleItems, isLoading = props.isLoading, getGroupLabel = props.getGroupLabel, notFound = props.notFound, otherProps = tslib_1.__rest(props, ["controlRef", "size", "getOptionProps", "dropdownRef", "labelForCreate", "className", "labelForNotFound", "labelForEmptyItems", "hasItems", "form", "isOpen", "renderItem", "visibleItems", "isLoading", "getGroupLabel", "notFound"]);
22
- var _b = tslib_1.__read(react_1.useState('downStartLeft'), 2), direction = _b[0], setDirection = _b[1];
23
22
  var indent = form === 'round' ? 'increased' : 'normal';
24
23
  var popoverRef = react_1.useRef(null);
25
24
  var isListShowed = react_1.useMemo(function () {
@@ -29,9 +28,9 @@ exports.SelectDropdown = function (props) {
29
28
  }, [visibleItems]);
30
29
  return (react_1["default"].createElement(react_transition_group_1.Transition, { "in": isOpen, unmountOnExit: true, nodeRef: popoverRef, timeout: MixPopoverAnimate_1.animateTimeout }, function (animate) {
31
30
  var getIndex = fabricIndex_1.fabricIndex(-1);
32
- return (react_1["default"].createElement(Popover_1.Popover, tslib_1.__assign({}, otherProps, { anchorRef: controlRef, direction: "downStartLeft", possibleDirections: ['downStartLeft', 'upStartLeft', 'downStartRight', 'upStartRight'], offset: "2xs", ref: popoverRef, role: "listbox", onSetDirection: setDirection, className: cnSelectDropdown({ form: form, size: size }, [
31
+ return (react_1["default"].createElement(Popover_1.Popover, tslib_1.__assign({}, otherProps, { anchorRef: controlRef, direction: "downStartLeft", possibleDirections: ['downStartLeft', 'upStartLeft', 'downStartRight', 'upStartRight'], offset: "2xs", ref: popoverRef, role: "listbox", className: cnSelectDropdown({ form: form, size: size }, [
33
32
  className,
34
- MixPopoverAnimate_1.cnMixPopoverAnimate({ direction: direction, animate: animate }),
33
+ MixPopoverAnimate_1.cnMixPopoverAnimate({ animate: animate }),
35
34
  ]), equalAnchorWidth: true }),
36
35
  react_1["default"].createElement("div", { className: cnSelectDropdown('List', { size: size, form: form }), ref: dropdownRef },
37
36
  isLoading && react_1["default"].createElement(SelectLoader_1.SelectLoader, { mode: isListShowed ? 'blur' : 'empty' }),
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TextFieldProps } from '../../TextField/helpers';
2
+ import { TextFieldProps } from '../../TextField/TextField';
3
3
  declare type Props = Omit<TextFieldProps<'number'>, 'value' | 'onChange' | 'min' | 'max' | 'step'> & {
4
4
  value: number;
5
5
  step?: number | number[];
@@ -80,6 +80,10 @@ declare type GroupColumnAddition<T extends TableRow> = {
80
80
  export interface TableControl<T extends TableRow> {
81
81
  column: Header<T> & ColumnMetaData;
82
82
  }
83
+ export declare type SortByProps<T extends TableRow> = {
84
+ sortingBy: keyof T;
85
+ sortOrder: 'asc' | 'desc';
86
+ };
83
87
  export declare type TableColumn<T extends TableRow> = {
84
88
  title: React.ReactNode;
85
89
  align?: HorizontalAlign;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TableColumn, TableRow, ValueOf } from './Table';
2
+ import { SortByProps, TableColumn, TableRow, ValueOf } from './Table';
3
3
  export declare type FilterComponentProps = {
4
4
  onConfirm: (value: unknown) => void;
5
5
  onCancel: () => void;
@@ -20,10 +20,6 @@ export declare type Filters<T extends TableRow> = ValueOf<{
20
20
  };
21
21
  });
22
22
  }>[];
23
- export declare type SortByProps<T extends TableRow> = {
24
- sortingBy: keyof T;
25
- sortOrder: 'asc' | 'desc';
26
- };
27
23
  export declare type onSortBy<T extends TableRow> = (props: SortByProps<T> | null) => void;
28
24
  export declare type FieldSelectedValues = string[];
29
25
  declare type SelectedFilter = {
@@ -437,21 +437,43 @@
437
437
  transition: background-color 0.15s;
438
438
  }
439
439
 
440
- .TextField-ClearButton {
440
+ .TextField-ClearButton,
441
+ .TextField-EyeButton {
442
+ display: -webkit-box;
443
+ display: -ms-flexbox;
444
+ display: flex;
445
+ -webkit-box-orient: vertical;
446
+ -webkit-box-direction: normal;
447
+ -ms-flex-direction: column;
448
+ flex-direction: column;
449
+ -webkit-box-pack: center;
450
+ -ms-flex-pack: center;
451
+ justify-content: center;
441
452
  height: calc(var(--input-height) - (var(--control-border-width) * 2));
442
453
  margin: 0;
443
454
  margin-left: var(--input-space);
444
455
  padding: 0;
445
- color: var(--clear-button-color);
446
456
  background-color: transparent;
447
457
  border: none;
448
458
  cursor: pointer;
449
459
  }
450
460
 
461
+ .TextField-ClearButton {
462
+ color: var(--clear-button-color);
463
+ }
464
+
451
465
  .TextField-ClearButton:hover {
452
466
  --clear-button-color: var(--color-control-typo-clear-hover);
453
467
  }
454
468
 
469
+ .TextField-EyeButton {
470
+ color: var(--color-control-typo-placeholder);
471
+ }
472
+
473
+ .TextField-EyeButton:hover {
474
+ color: var(--color-control-typo-clear-hover);
475
+ }
476
+
455
477
  .TextField-ClearButtonIcon {
456
478
  position: relative;
457
479
  top: 1px;
@@ -1,8 +1,8 @@
1
1
  import './TextField.css';
2
2
  import React from 'react';
3
- import { TextFieldComponent, TextFieldProps } from './helpers';
3
+ import { TextFieldComponent, TextFieldProps } from './types';
4
4
  export declare const COMPONENT_NAME: "TextField";
5
5
  export declare const cnTextField: import("@bem-react/classname").ClassNameFormatter;
6
6
  export declare function TextFieldRender<TYPE extends string>(props: TextFieldProps<TYPE>, ref: React.Ref<HTMLDivElement>): JSX.Element;
7
7
  export declare const TextField: TextFieldComponent;
8
- export * from './helpers';
8
+ export * from './types';
@@ -5,41 +5,57 @@ var tslib_1 = require("tslib");
5
5
  require("./TextField.css");
6
6
  var react_1 = tslib_1.__importStar(require("react"));
7
7
  var react_textarea_autosize_1 = tslib_1.__importDefault(require("react-textarea-autosize"));
8
+ var useFlag_1 = require("../../hooks/useFlag/useFlag");
8
9
  var useForkRef_1 = require("../../hooks/useForkRef/useForkRef");
10
+ var useMutableRef_1 = require("../../hooks/useMutableRef/useMutableRef");
9
11
  var useSortSteps_1 = require("../../hooks/useSortSteps/useSortSteps");
10
12
  var IconClose_1 = require("../../icons/IconClose/IconClose");
13
+ var IconEye_1 = require("../../icons/IconEye/IconEye");
14
+ var IconEyeClose_1 = require("../../icons/IconEyeClose/IconEyeClose");
11
15
  var IconSelect_1 = require("../../icons/IconSelect/IconSelect");
12
16
  var IconSelectOpen_1 = require("../../icons/IconSelectOpen/IconSelectOpen");
13
17
  var bem_1 = require("../../utils/bem");
14
18
  var getByMap_1 = require("../../utils/getByMap");
19
+ var type_guards_1 = require("../../utils/type-guards");
15
20
  var usePropsHandler_1 = require("../EventInterceptor/usePropsHandler");
16
21
  var FieldCaption_1 = require("../FieldCaption/FieldCaption");
17
22
  var FieldLabel_1 = require("../FieldLabel/FieldLabel");
18
23
  var helpers_1 = require("./helpers");
24
+ var types_1 = require("./types");
19
25
  exports.COMPONENT_NAME = 'TextField';
20
26
  exports.cnTextField = bem_1.cn(exports.COMPONENT_NAME);
21
27
  function TextFieldRender(props, ref) {
22
28
  var textFieldRef = react_1["default"].useRef(null);
23
29
  var inputRef = react_1["default"].useRef(null);
24
- var _a = usePropsHandler_1.usePropsHandler(exports.COMPONENT_NAME, props, textFieldRef), className = _a.className, _b = _a.type, type = _b === void 0 ? 'text' : _b, value = _a.value, onChange = _a.onChange, id = _a.id, name = _a.name, rows = _a.rows, cols = _a.cols, minRows = _a.minRows, maxRows = _a.maxRows, inputRefProp = _a.inputRef, maxLength = _a.maxLength, disabled = _a.disabled, _c = _a.size, size = _c === void 0 ? helpers_1.textFieldPropSizeDefault : _c, _d = _a.view, view = _d === void 0 ? helpers_1.textFieldPropViewDefault : _d, _e = _a.form, form = _e === void 0 ? helpers_1.textFieldPropFormDefault : _e, state = _a.state, status = _a.status, _f = _a.width, width = _f === void 0 ? helpers_1.textFieldPropWidthDefault : _f, onBlur = _a.onBlur, onFocus = _a.onFocus, _g = _a.autoFocus, autoFocus = _g === void 0 ? false : _g, placeholder = _a.placeholder, leftSide = _a.leftSide, rightSide = _a.rightSide, autoComplete = _a.autoComplete, withClearButton = _a.withClearButton, max = _a.max, min = _a.min, readOnly = _a.readOnly, required = _a.required, _h = _a.step, step = _h === void 0 ? 1 : _h, tabIndex = _a.tabIndex, ariaLabel = _a.ariaLabel, label = _a.label, inputContainerRef = _a.inputContainerRef, _j = _a.labelPosition, labelPosition = _j === void 0 ? 'top' : _j, caption = _a.caption, iconSizeProp = _a.iconSize, focused = _a.focused, onClick = _a.onClick, otherProps = tslib_1.__rest(_a, ["className", "type", "value", "onChange", "id", "name", "rows", "cols", "minRows", "maxRows", "inputRef", "maxLength", "disabled", "size", "view", "form", "state", "status", "width", "onBlur", "onFocus", "autoFocus", "placeholder", "leftSide", "rightSide", "autoComplete", "withClearButton", "max", "min", "readOnly", "required", "step", "tabIndex", "ariaLabel", "label", "inputContainerRef", "labelPosition", "caption", "iconSize", "focused", "onClick"]);
25
- var _k = tslib_1.__read(react_1.useState(autoFocus), 2), focus = _k[0], setFocus = _k[1];
30
+ var _a = usePropsHandler_1.usePropsHandler(exports.COMPONENT_NAME, props, textFieldRef), className = _a.className, _b = _a.type, type = _b === void 0 ? 'text' : _b, value = _a.value, onChange = _a.onChange, id = _a.id, name = _a.name, rows = _a.rows, cols = _a.cols, minRows = _a.minRows, maxRows = _a.maxRows, inputRefProp = _a.inputRef, maxLength = _a.maxLength, disabled = _a.disabled, _c = _a.size, size = _c === void 0 ? types_1.textFieldPropSizeDefault : _c, _d = _a.view, view = _d === void 0 ? types_1.textFieldPropViewDefault : _d, _e = _a.form, form = _e === void 0 ? types_1.textFieldPropFormDefault : _e, state = _a.state, status = _a.status, _f = _a.width, width = _f === void 0 ? types_1.textFieldPropWidthDefault : _f, onBlur = _a.onBlur, onFocus = _a.onFocus, _g = _a.autoFocus, autoFocus = _g === void 0 ? false : _g, placeholder = _a.placeholder, leftSide = _a.leftSide, rightSide = _a.rightSide, autoComplete = _a.autoComplete, withClearButton = _a.withClearButton, max = _a.max, min = _a.min, readOnly = _a.readOnly, required = _a.required, _h = _a.step, step = _h === void 0 ? 1 : _h, tabIndex = _a.tabIndex, ariaLabel = _a.ariaLabel, label = _a.label, inputContainerRef = _a.inputContainerRef, _j = _a.labelPosition, labelPosition = _j === void 0 ? 'top' : _j, caption = _a.caption, iconSizeProp = _a.iconSize, focused = _a.focused, onClick = _a.onClick, otherProps = tslib_1.__rest(_a, ["className", "type", "value", "onChange", "id", "name", "rows", "cols", "minRows", "maxRows", "inputRef", "maxLength", "disabled", "size", "view", "form", "state", "status", "width", "onBlur", "onFocus", "autoFocus", "placeholder", "leftSide", "rightSide", "autoComplete", "withClearButton", "max", "min", "readOnly", "required", "step", "tabIndex", "ariaLabel", "label", "inputContainerRef", "labelPosition", "caption", "iconSize", "focused", "onClick"]);
31
+ var _k = tslib_1.__read(useFlag_1.useFlag(autoFocus), 2), focus = _k[0], setFocus = _k[1];
32
+ var _l = tslib_1.__read(useFlag_1.useFlag(false), 2), passwordVisible = _l[0], setPasswordVisuble = _l[1];
33
+ var valueRef = useMutableRef_1.useMutableRef(value);
34
+ var onClickRef = useMutableRef_1.useMutableRef(onClick);
35
+ var onChangeRef = useMutableRef_1.useMutableRef(onChange);
36
+ var handleEyeClick = react_1.useCallback(function (e) {
37
+ var _a;
38
+ e.stopPropagation();
39
+ setPasswordVisuble.toogle();
40
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
41
+ }, []);
26
42
  var textarea = type === 'textarea';
27
43
  var LeftIcon = leftSide;
28
44
  var RightIcon = rightSide;
29
- var leftSideIsString = typeof leftSide === 'string';
30
- var rightSideIsString = typeof rightSide === 'string';
45
+ var leftSideIsString = type_guards_1.isString(leftSide);
46
+ var rightSideIsString = type_guards_1.isString(rightSide);
31
47
  var iconSize = getByMap_1.getByMap(helpers_1.sizeMap, size, iconSizeProp);
32
48
  var sortedSteps = useSortSteps_1.useSortSteps({ step: step, min: Number(min), max: Number(max) });
33
- var handleChange = function (e) {
34
- var value = e.target.value;
35
- !disabled && (onChange === null || onChange === void 0 ? void 0 : onChange({ e: e, id: id, name: name, value: value || null }));
36
- };
49
+ var handleChange = react_1.useCallback(function (e) {
50
+ var _a;
51
+ !disabled && ((_a = onChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onChangeRef, { e: e, id: id, name: name, value: e.target.value || null }));
52
+ }, [id, name]);
37
53
  var handleBlur = function (e) {
38
- setFocus(false);
54
+ setFocus.off();
39
55
  onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
40
56
  };
41
57
  var handleFocus = function (e) {
42
- setFocus(true);
58
+ setFocus.on();
43
59
  onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);
44
60
  };
45
61
  var commonProps = {
@@ -54,27 +70,19 @@ function TextFieldRender(props, ref) {
54
70
  placeholder: placeholder,
55
71
  autoComplete: autoComplete,
56
72
  readOnly: readOnly,
57
- required: required,
58
73
  tabIndex: tabIndex,
59
74
  name: name,
60
75
  'id': id ? id.toString() : '',
61
76
  'aria-label': ariaLabel
62
77
  };
63
- react_1.useEffect(function () {
64
- if (autoFocus) {
65
- setTimeout(function () {
66
- var _a;
67
- (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
68
- });
69
- }
70
- }, []);
78
+ var Eye = passwordVisible ? IconEyeClose_1.IconEyeClose : IconEye_1.IconEye;
71
79
  var onKeyDown = function (e) {
72
80
  var flag = helpers_1.getIncrementFlag(e);
73
81
  if (type === 'number' && typeof flag === 'boolean' && !disabled) {
74
82
  e.preventDefault();
75
83
  onChange === null || onChange === void 0 ? void 0 : onChange({
76
84
  e: e,
77
- value: getValueByStep(flag).toString()
85
+ value: helpers_1.getValueByStep(sortedSteps, value, flag, min, max)
78
86
  });
79
87
  }
80
88
  };
@@ -83,48 +91,44 @@ function TextFieldRender(props, ref) {
83
91
  cols: cols,
84
92
  minRows: minRows || rows,
85
93
  maxRows: maxRows || rows,
86
- inputRef: useForkRef_1.useForkRef([inputRef, inputRefProp])
94
+ ref: useForkRef_1.useForkRef([inputRef, inputRefProp])
87
95
  };
88
96
  var inputProps = {
89
- type: type,
97
+ type: helpers_1.getTypeForRender(type, passwordVisible),
90
98
  max: max,
91
99
  min: min,
92
100
  step: !Array.isArray(sortedSteps) ? sortedSteps : 0,
93
101
  onKeyDown: onKeyDown,
94
102
  ref: useForkRef_1.useForkRef([inputRef, inputRefProp])
95
103
  };
96
- var handleClear = function (e) {
97
- onChange === null || onChange === void 0 ? void 0 : onChange({
104
+ var handleClear = react_1.useCallback(function (e) {
105
+ var _a;
106
+ (_a = onChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onChangeRef, {
98
107
  e: e,
99
- value: ''
108
+ value: null
100
109
  });
101
- };
102
- var getValueByStep = function (isIncrement) {
103
- var _a;
104
- return Array.isArray(sortedSteps)
105
- ? (_a = helpers_1.getValueByStepArray({
106
- min: min,
107
- max: max,
108
- value: value,
109
- isIncrement: isIncrement,
110
- steps: sortedSteps
111
- })) !== null && _a !== void 0 ? _a : 0 : helpers_1.getValueByStepNumber({ value: value, step: sortedSteps, isIncrement: isIncrement, min: min, max: max });
112
- };
110
+ }, []);
113
111
  var changeNumberValue = function (e, isIncrement) {
114
112
  if (isIncrement === void 0) { isIncrement = true; }
115
113
  onChange === null || onChange === void 0 ? void 0 : onChange({
116
114
  e: e,
117
- value: getValueByStep(isIncrement).toString()
115
+ value: helpers_1.getValueByStep(sortedSteps, value, isIncrement, min, max)
118
116
  });
119
117
  };
120
118
  var rootProps = {
121
- // для того чтобы любые клики во внутренним элементам фокусили инпут
122
- onClick: function (e) {
123
- var _a;
119
+ onClick: react_1.useCallback(function (e) {
120
+ var _a, _b;
124
121
  (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
125
- onClick === null || onClick === void 0 ? void 0 : onClick(e);
126
- }
122
+ (_b = onClickRef.current) === null || _b === void 0 ? void 0 : _b.call(onClickRef, e);
123
+ }, [])
127
124
  };
125
+ // при смене passwordVible, перемещаем курсор в конец строки
126
+ react_1.useEffect(function () {
127
+ var _a;
128
+ if (type === 'password' && inputRef.current) {
129
+ inputRef.current.selectionStart = ((_a = valueRef.current) === null || _a === void 0 ? void 0 : _a.length) || 0;
130
+ }
131
+ }, [passwordVisible]);
128
132
  return (react_1["default"].createElement("div", tslib_1.__assign({ className: exports.cnTextField({ labelPosition: labelPosition, size: size, view: view, width: width }, [className]), ref: useForkRef_1.useForkRef([ref, textFieldRef]) }, rootProps, otherProps),
129
133
  label && (react_1["default"].createElement(FieldLabel_1.FieldLabel, { required: required, className: exports.cnTextField('Label', { labelPosition: labelPosition }), size: size }, label)),
130
134
  react_1["default"].createElement("div", { className: exports.cnTextField('Body') },
@@ -149,7 +153,9 @@ function TextFieldRender(props, ref) {
149
153
  react_1["default"].createElement(IconSelect_1.IconSelect, { size: "xs" })))),
150
154
  value && withClearButton && type !== 'number' && (react_1["default"].createElement("button", { type: "button", disabled: disabled, onClick: handleClear, className: exports.cnTextField('ClearButton') },
151
155
  react_1["default"].createElement(IconClose_1.IconClose, { size: "xs", className: exports.cnTextField('ClearButtonIcon') }))),
152
- RightIcon && type !== 'number' && (react_1["default"].createElement("div", { className: exports.cnTextField('Side', {
156
+ type === 'password' && value && (react_1["default"].createElement("button", { className: exports.cnTextField('ClearButton'), type: "button", onClick: handleEyeClick },
157
+ react_1["default"].createElement(Eye, { className: exports.cnTextField('Icon'), size: iconSize }))),
158
+ RightIcon && type !== 'number' && type !== 'password' && (react_1["default"].createElement("div", { className: exports.cnTextField('Side', {
153
159
  position: 'right',
154
160
  type: rightSideIsString ? 'string' : 'icon'
155
161
  }), title: typeof rightSide === 'string' ? rightSide : undefined }, rightSideIsString ? (rightSide) : (react_1["default"].createElement(RightIcon, { className: exports.cnTextField('Icon'), size: iconSize }))))),
@@ -157,4 +163,4 @@ function TextFieldRender(props, ref) {
157
163
  }
158
164
  exports.TextFieldRender = TextFieldRender;
159
165
  exports.TextField = react_1.forwardRef(TextFieldRender);
160
- tslib_1.__exportStar(require("./helpers"), exports);
166
+ tslib_1.__exportStar(require("./types"), exports);