@skbkontur/react-ui 6.0.8 → 6.1.1-9752b.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (814) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/components/Autocomplete/Autocomplete.js +15 -4
  3. package/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/components/Autocomplete/Autocomplete.styles.js.map +1 -1
  5. package/components/Autocomplete/getAutocompleteTheme.js.map +1 -1
  6. package/components/Autocomplete/index.js.map +1 -1
  7. package/components/Autocomplete/locale/index.js.map +1 -1
  8. package/components/Autocomplete/locale/locales/en.js.map +1 -1
  9. package/components/Autocomplete/locale/locales/ru.js.map +1 -1
  10. package/components/Autocomplete/locale/types.js.map +1 -1
  11. package/components/Button/ArrowLeftIcon.js.map +1 -1
  12. package/components/Button/ArrowRightIcon.js.map +1 -1
  13. package/components/Button/Button.d.ts +1 -1
  14. package/components/Button/Button.js +5 -4
  15. package/components/Button/Button.js.map +1 -1
  16. package/components/Button/Button.mixins.js.map +1 -1
  17. package/components/Button/Button.styles.js.map +1 -1
  18. package/components/Button/ButtonArrow.js.map +1 -1
  19. package/components/Button/ButtonIcon.js.map +1 -1
  20. package/components/Button/ButtonIcon.styles.js.map +1 -1
  21. package/components/Button/LoadingButtonIcon.js.map +1 -1
  22. package/components/Button/getInnerLinkTheme.js.map +1 -1
  23. package/components/Button/index.js.map +1 -1
  24. package/components/Calendar/Calendar.js.map +1 -1
  25. package/components/Calendar/Calendar.styles.js.map +1 -1
  26. package/components/Calendar/CalendarContext.js.map +1 -1
  27. package/components/Calendar/CalendarDateShape.js.map +1 -1
  28. package/components/Calendar/CalendarDay.js +3 -0
  29. package/components/Calendar/CalendarDay.js.map +1 -1
  30. package/components/Calendar/CalendarScrollEvents.js.map +1 -1
  31. package/components/Calendar/CalendarUtils.js.map +1 -1
  32. package/components/Calendar/DayCellView.js.map +1 -1
  33. package/components/Calendar/DayCellView.styles.d.ts +1 -0
  34. package/components/Calendar/DayCellView.styles.js +6 -3
  35. package/components/Calendar/DayCellView.styles.js.map +1 -1
  36. package/components/Calendar/DayCellViewModel.js.map +1 -1
  37. package/components/Calendar/Month.js.map +1 -1
  38. package/components/Calendar/MonthView.js.map +1 -1
  39. package/components/Calendar/MonthView.styles.js.map +1 -1
  40. package/components/Calendar/MonthViewModel.js.map +1 -1
  41. package/components/Calendar/config.js.map +1 -1
  42. package/components/Calendar/index.js.map +1 -1
  43. package/components/Calendar/locale/locales/en.js.map +1 -1
  44. package/components/Calendar/locale/locales/ru.js.map +1 -1
  45. package/components/Calendar/locale/types.js.map +1 -1
  46. package/components/Center/Center.js.map +1 -1
  47. package/components/Center/Center.styles.js.map +1 -1
  48. package/components/Center/index.js.map +1 -1
  49. package/components/Checkbox/Checkbox.js.map +1 -1
  50. package/components/Checkbox/Checkbox.mixins.js.map +1 -1
  51. package/components/Checkbox/Checkbox.styles.js.map +1 -1
  52. package/components/Checkbox/CheckedIcon.js.map +1 -1
  53. package/components/Checkbox/IndeterminateIcon.js.map +1 -1
  54. package/components/Checkbox/index.js.map +1 -1
  55. package/components/ComboBox/ComboBox.js.map +1 -1
  56. package/components/ComboBox/index.js.map +1 -1
  57. package/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  58. package/components/CurrencyInput/CurrencyInput.js.map +1 -1
  59. package/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
  60. package/components/CurrencyInput/CurrencyInputKeyboardActions.js.map +1 -1
  61. package/components/CurrencyInput/CursorHelper.js.map +1 -1
  62. package/components/CurrencyInput/SelectionHelper.js.map +1 -1
  63. package/components/CurrencyInput/constants.js.map +1 -1
  64. package/components/CurrencyInput/index.js.map +1 -1
  65. package/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  66. package/components/CurrencyLabel/index.js.map +1 -1
  67. package/components/DateInput/CalendarIcon.js.map +1 -1
  68. package/components/DateInput/DateFragmentsView.js.map +1 -1
  69. package/components/DateInput/DateFragmentsView.styles.js.map +1 -1
  70. package/components/DateInput/DateInput.js.map +1 -1
  71. package/components/DateInput/DateInput.styles.js.map +1 -1
  72. package/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
  73. package/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  74. package/components/DateInput/helpers/inputNumber.js.map +1 -1
  75. package/components/DateInput/index.js.map +1 -1
  76. package/components/DatePicker/DatePicker.js.map +1 -1
  77. package/components/DatePicker/DatePicker.styles.js.map +1 -1
  78. package/components/DatePicker/MobilePicker.js +1 -1
  79. package/components/DatePicker/MobilePicker.js.map +1 -1
  80. package/components/DatePicker/MobilePicker.styles.js.map +1 -1
  81. package/components/DatePicker/getMobilePickerTheme.js.map +1 -1
  82. package/components/DatePicker/index.js.map +1 -1
  83. package/components/DatePicker/locale/index.js.map +1 -1
  84. package/components/DatePicker/locale/locales/en.js.map +1 -1
  85. package/components/DatePicker/locale/locales/ru.js.map +1 -1
  86. package/components/DatePicker/locale/types.js.map +1 -1
  87. package/components/DateRangePicker/DateRangePicker.js +1 -1
  88. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  89. package/components/DateRangePicker/DateRangePicker.styles.js.map +1 -1
  90. package/components/DateRangePicker/DateRangePickerContext.js.map +1 -1
  91. package/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  92. package/components/DateRangePicker/DateRangePickerSeparator.js.map +1 -1
  93. package/components/DateRangePicker/DateRangePickerTheme.js.map +1 -1
  94. package/components/DateRangePicker/helpers/getStateForValue.js.map +1 -1
  95. package/components/DateRangePicker/helpers/validateDateRangePicker.js.map +1 -1
  96. package/components/DateRangePicker/index.js.map +1 -1
  97. package/components/DateRangePicker/locale/index.js.map +1 -1
  98. package/components/DateRangePicker/locale/locales/en.js.map +1 -1
  99. package/components/DateRangePicker/locale/locales/ru.js.map +1 -1
  100. package/components/DateRangePicker/locale/types.js.map +1 -1
  101. package/components/Dropdown/Dropdown.js.map +1 -1
  102. package/components/Dropdown/getDropdownTheme.js.map +1 -1
  103. package/components/Dropdown/index.js.map +1 -1
  104. package/components/DropdownMenu/DropdownMenu.js.map +1 -1
  105. package/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
  106. package/components/DropdownMenu/index.js.map +1 -1
  107. package/components/FileUploader/FileUploader.js.map +1 -1
  108. package/components/FileUploader/FileUploader.mixins.js.map +1 -1
  109. package/components/FileUploader/FileUploader.styles.js.map +1 -1
  110. package/components/FileUploader/FileUploaderControlContext.js.map +1 -1
  111. package/components/FileUploader/FileUploaderControlProvider.js.map +1 -1
  112. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  113. package/components/FileUploader/FileUploaderFile.styles.js.map +1 -1
  114. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  115. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -1
  116. package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -1
  117. package/components/FileUploader/FileUploaderFileTypeIcon.js.map +1 -1
  118. package/components/FileUploader/FileUploaderFileValidationResult.js.map +1 -1
  119. package/components/FileUploader/fileUtils.js.map +1 -1
  120. package/components/FileUploader/hooks/useControlLocale.js.map +1 -1
  121. package/components/FileUploader/hooks/useFileUploaderSize.js.map +1 -1
  122. package/components/FileUploader/hooks/useUpload.js.map +1 -1
  123. package/components/FileUploader/icons/DeleteIcon.js.map +1 -1
  124. package/components/FileUploader/icons/UploadIcon.js.map +1 -1
  125. package/components/FileUploader/icons/row/ArchiveIcon.js.map +1 -1
  126. package/components/FileUploader/icons/row/DocTextIcon.js.map +1 -1
  127. package/components/FileUploader/icons/row/FolderIcon.js.map +1 -1
  128. package/components/FileUploader/icons/row/MarkupIcon.js.map +1 -1
  129. package/components/FileUploader/icons/row/PdfIcon.js.map +1 -1
  130. package/components/FileUploader/icons/row/PictureIcon.js.map +1 -1
  131. package/components/FileUploader/icons/row/PresentationIcon.js.map +1 -1
  132. package/components/FileUploader/icons/row/RowUploadIcon.js.map +1 -1
  133. package/components/FileUploader/icons/row/TableIcon.js.map +1 -1
  134. package/components/FileUploader/icons/row/TextIcon.js.map +1 -1
  135. package/components/FileUploader/icons/row/ValidationErrorIcon.js.map +1 -1
  136. package/components/FileUploader/icons/row/ValidationWarningIcon.js.map +1 -1
  137. package/components/FileUploader/icons/tile/ArchiveIcon.js.map +1 -1
  138. package/components/FileUploader/icons/tile/DocTextIcon.js.map +1 -1
  139. package/components/FileUploader/icons/tile/FolderIcon.js.map +1 -1
  140. package/components/FileUploader/icons/tile/MarkupIcon.js.map +1 -1
  141. package/components/FileUploader/icons/tile/PdfIcon.js.map +1 -1
  142. package/components/FileUploader/icons/tile/PictureIcon.js.map +1 -1
  143. package/components/FileUploader/icons/tile/PresentationIcon.js.map +1 -1
  144. package/components/FileUploader/icons/tile/TableIcon.js.map +1 -1
  145. package/components/FileUploader/icons/tile/TextIcon.js.map +1 -1
  146. package/components/FileUploader/icons/tile/TileUploadIcon.js.map +1 -1
  147. package/components/FileUploader/icons/tile/ValidationErrorIcon.js.map +1 -1
  148. package/components/FileUploader/icons/tile/ValidationWarningIcon.js.map +1 -1
  149. package/components/FileUploader/index.js.map +1 -1
  150. package/components/FileUploader/locale/index.js.map +1 -1
  151. package/components/FileUploader/locale/locales/en.js.map +1 -1
  152. package/components/FileUploader/locale/locales/ru.js.map +1 -1
  153. package/components/FileUploader/locale/types.js.map +1 -1
  154. package/components/FileUploader/withFileUploaderControlProvider.js.map +1 -1
  155. package/components/FxInput/FxInput.js.map +1 -1
  156. package/components/FxInput/FxInputRestoreBtn.js +1 -1
  157. package/components/FxInput/FxInputRestoreBtn.js.map +1 -1
  158. package/components/FxInput/MathFunctionIcon.js.map +1 -1
  159. package/components/FxInput/UndoIcon.js.map +1 -1
  160. package/components/FxInput/index.js.map +1 -1
  161. package/components/Gapped/Gapped.js.map +1 -1
  162. package/components/Gapped/index.js.map +1 -1
  163. package/components/GlobalLoader/GlobalLoader.js.map +1 -1
  164. package/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  165. package/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -1
  166. package/components/GlobalLoader/index.js.map +1 -1
  167. package/components/GlobalLoader/useParams.js.map +1 -1
  168. package/components/Group/Group.js.map +1 -1
  169. package/components/Group/Group.styles.js.map +1 -1
  170. package/components/Group/index.js.map +1 -1
  171. package/components/Hint/Hint.js.map +1 -1
  172. package/components/Hint/Hint.styles.js.map +1 -1
  173. package/components/Hint/index.js.map +1 -1
  174. package/components/Input/Input.d.ts +19 -1
  175. package/components/Input/Input.js +10 -3
  176. package/components/Input/Input.js.map +1 -1
  177. package/components/Input/Input.styles.js.map +1 -1
  178. package/components/Input/Input.typings.js.map +1 -1
  179. package/components/Input/InputLayout/InputLayout.d.ts +3 -1
  180. package/components/Input/InputLayout/InputLayout.js +5 -2
  181. package/components/Input/InputLayout/InputLayout.js.map +1 -1
  182. package/components/Input/InputLayout/InputLayout.styles.d.ts +6 -0
  183. package/components/Input/InputLayout/InputLayout.styles.js +19 -1
  184. package/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
  185. package/components/Input/InputLayout/InputLayoutAside.d.ts +2 -0
  186. package/components/Input/InputLayout/InputLayoutAside.js +2 -2
  187. package/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  188. package/components/Input/InputLayout/InputLayoutAsideCounter.d.ts +11 -0
  189. package/components/Input/InputLayout/InputLayoutAsideCounter.js +74 -0
  190. package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -0
  191. package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  192. package/components/Input/InputLayout/InputLayoutAsideText.js.map +1 -1
  193. package/components/Input/InputLayout/InputLayoutContext.js.map +1 -1
  194. package/components/Input/index.js.map +1 -1
  195. package/components/Kebab/Kebab.js.map +1 -1
  196. package/components/Kebab/Kebab.styles.js.map +1 -1
  197. package/components/Kebab/KebabIcon.js.map +1 -1
  198. package/components/Kebab/index.js.map +1 -1
  199. package/components/Link/Link.js.map +1 -1
  200. package/components/Link/Link.mixins.js.map +1 -1
  201. package/components/Link/Link.styles.js.map +1 -1
  202. package/components/Link/LinkIcon.js.map +1 -1
  203. package/components/Link/index.js.map +1 -1
  204. package/components/Loader/Loader.d.ts +12 -4
  205. package/components/Loader/Loader.js +18 -7
  206. package/components/Loader/Loader.js.map +1 -1
  207. package/components/Loader/Loader.styles.js.map +1 -1
  208. package/components/Loader/index.js.map +1 -1
  209. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  210. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js.map +1 -1
  211. package/components/MaskedInput/ColorableInputElement/index.js.map +1 -1
  212. package/components/MaskedInput/FixedIMaskInput.js.map +1 -1
  213. package/components/MaskedInput/MaskedInput.helpers.js.map +1 -1
  214. package/components/MaskedInput/MaskedInput.js.map +1 -1
  215. package/components/MaskedInput/MaskedInput.styles.js.map +1 -1
  216. package/components/MaskedInput/index.js.map +1 -1
  217. package/components/MenuFooter/MenuFooter.js.map +1 -1
  218. package/components/MenuFooter/MenuFooter.mixins.js.map +1 -1
  219. package/components/MenuFooter/MenuFooter.styles.js.map +1 -1
  220. package/components/MenuFooter/index.js.map +1 -1
  221. package/components/MenuHeader/MenuHeader.js.map +1 -1
  222. package/components/MenuHeader/MenuHeader.mixins.js.map +1 -1
  223. package/components/MenuHeader/MenuHeader.styles.js.map +1 -1
  224. package/components/MenuHeader/index.js.map +1 -1
  225. package/components/MenuItem/MenuItem.d.ts +1 -0
  226. package/components/MenuItem/MenuItem.js +17 -1
  227. package/components/MenuItem/MenuItem.js.map +1 -1
  228. package/components/MenuItem/MenuItem.mixins.js.map +1 -1
  229. package/components/MenuItem/MenuItem.styles.d.ts +3 -0
  230. package/components/MenuItem/MenuItem.styles.js +25 -16
  231. package/components/MenuItem/MenuItem.styles.js.map +1 -1
  232. package/components/MenuItem/index.js.map +1 -1
  233. package/components/MenuSeparator/MenuSeparator.js.map +1 -1
  234. package/components/MenuSeparator/MenuSeparator.styles.js.map +1 -1
  235. package/components/MenuSeparator/index.js.map +1 -1
  236. package/components/MiniModal/MiniModal.js.map +1 -1
  237. package/components/MiniModal/MiniModal.styles.js.map +1 -1
  238. package/components/MiniModal/MiniModalBody.js.map +1 -1
  239. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  240. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  241. package/components/MiniModal/MiniModalIndent.js.map +1 -1
  242. package/components/MiniModal/getMiniModalTheme.js.map +1 -1
  243. package/components/MiniModal/index.js.map +1 -1
  244. package/components/Modal/Modal.js.map +1 -1
  245. package/components/Modal/Modal.styles.js.map +1 -1
  246. package/components/Modal/ModalBody.js.map +1 -1
  247. package/components/Modal/ModalClose.js.map +1 -1
  248. package/components/Modal/ModalContext.js.map +1 -1
  249. package/components/Modal/ModalFooter.js.map +1 -1
  250. package/components/Modal/ModalHeader.js.map +1 -1
  251. package/components/Modal/ModalSeparator.js.map +1 -1
  252. package/components/Modal/getModalBodyTheme.js.map +1 -1
  253. package/components/Modal/getModalTheme.js.map +1 -1
  254. package/components/Modal/index.js.map +1 -1
  255. package/components/Modal/locale/index.js.map +1 -1
  256. package/components/Modal/locale/locales/en.js.map +1 -1
  257. package/components/Modal/locale/locales/ru.js.map +1 -1
  258. package/components/Modal/locale/types.js.map +1 -1
  259. package/components/Paging/DotsIcon.js.map +1 -1
  260. package/components/Paging/ForwardIcon.js.map +1 -1
  261. package/components/Paging/NavigationHelper.js.map +1 -1
  262. package/components/Paging/Paging.js.map +1 -1
  263. package/components/Paging/Paging.styles.js.map +1 -1
  264. package/components/Paging/PagingDefaultComponent.js.map +1 -1
  265. package/components/Paging/PagingHelper.js.map +1 -1
  266. package/components/Paging/index.js.map +1 -1
  267. package/components/Paging/locale/index.js.map +1 -1
  268. package/components/Paging/locale/locales/en.js.map +1 -1
  269. package/components/Paging/locale/locales/ru.js.map +1 -1
  270. package/components/Paging/locale/types.js.map +1 -1
  271. package/components/PasswordInput/ClosedIcon.js.map +1 -1
  272. package/components/PasswordInput/OpenedIcon.js.map +1 -1
  273. package/components/PasswordInput/PasswordInput.js.map +1 -1
  274. package/components/PasswordInput/PasswordInput.styles.js.map +1 -1
  275. package/components/PasswordInput/PasswordInputIcon.js.map +1 -1
  276. package/components/PasswordInput/index.js.map +1 -1
  277. package/components/PasswordInput/locale/index.js.map +1 -1
  278. package/components/PasswordInput/locale/locales/en.js.map +1 -1
  279. package/components/PasswordInput/locale/locales/ru.js.map +1 -1
  280. package/components/PasswordInput/locale/types.js.map +1 -1
  281. package/components/Radio/Radio.js.map +1 -1
  282. package/components/Radio/Radio.mixins.js.map +1 -1
  283. package/components/Radio/Radio.styles.js.map +1 -1
  284. package/components/Radio/index.js.map +1 -1
  285. package/components/RadioGroup/Prevent.js.map +1 -1
  286. package/components/RadioGroup/RadioGroup.js.map +1 -1
  287. package/components/RadioGroup/RadioGroup.styles.js.map +1 -1
  288. package/components/RadioGroup/RadioGroupContext.js.map +1 -1
  289. package/components/RadioGroup/index.js.map +1 -1
  290. package/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  291. package/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  292. package/components/ResponsiveLayout/decorator.js.map +1 -1
  293. package/components/ResponsiveLayout/index.js.map +1 -1
  294. package/components/ResponsiveLayout/types.js.map +1 -1
  295. package/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  296. package/components/ScrollContainer/ScrollBar.js.map +1 -1
  297. package/components/ScrollContainer/ScrollContainer.constants.js.map +1 -1
  298. package/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
  299. package/components/ScrollContainer/ScrollContainer.js.map +1 -1
  300. package/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  301. package/components/ScrollContainer/index.js.map +1 -1
  302. package/components/Select/ArrowDownIcon.js.map +1 -1
  303. package/components/Select/Item.js.map +1 -1
  304. package/components/Select/Select.js +11 -1
  305. package/components/Select/Select.js.map +1 -1
  306. package/components/Select/Select.styles.js.map +1 -1
  307. package/components/Select/index.js.map +1 -1
  308. package/components/Select/locale/index.js.map +1 -1
  309. package/components/Select/locale/locales/en.js.map +1 -1
  310. package/components/Select/locale/locales/ru.js.map +1 -1
  311. package/components/Select/locale/types.js.map +1 -1
  312. package/components/Select/selectTheme.js.map +1 -1
  313. package/components/Select/tids.js.map +1 -1
  314. package/components/SidePage/SidePage.js.map +1 -1
  315. package/components/SidePage/SidePage.styles.js.map +1 -1
  316. package/components/SidePage/SidePageBody.js.map +1 -1
  317. package/components/SidePage/SidePageCloseButton.js.map +1 -1
  318. package/components/SidePage/SidePageContainer.js.map +1 -1
  319. package/components/SidePage/SidePageContext.js.map +1 -1
  320. package/components/SidePage/SidePageFooter.js.map +1 -1
  321. package/components/SidePage/SidePageHeader.js.map +1 -1
  322. package/components/SidePage/index.js.map +1 -1
  323. package/components/SidePage/locale/index.js.map +1 -1
  324. package/components/SidePage/locale/locales/en.js.map +1 -1
  325. package/components/SidePage/locale/locales/ru.js.map +1 -1
  326. package/components/SidePage/locale/types.js.map +1 -1
  327. package/components/SingleToast/SingleToast.d.ts +9 -6
  328. package/components/SingleToast/SingleToast.js +9 -6
  329. package/components/SingleToast/SingleToast.js.map +1 -1
  330. package/components/SingleToast/index.js.map +1 -1
  331. package/components/Spinner/Spinner.d.ts +23 -33
  332. package/components/Spinner/Spinner.js +23 -19
  333. package/components/Spinner/Spinner.js.map +1 -1
  334. package/components/Spinner/Spinner.styles.d.ts +0 -3
  335. package/components/Spinner/Spinner.styles.js +6 -15
  336. package/components/Spinner/Spinner.styles.js.map +1 -1
  337. package/components/Spinner/index.js.map +1 -1
  338. package/components/Sticky/Sticky.js.map +1 -1
  339. package/components/Sticky/Sticky.styles.js.map +1 -1
  340. package/components/Sticky/index.js.map +1 -1
  341. package/components/Switcher/Switcher.js +1 -0
  342. package/components/Switcher/Switcher.js.map +1 -1
  343. package/components/Switcher/Switcher.styles.js.map +1 -1
  344. package/components/Switcher/helpers.js.map +1 -1
  345. package/components/Switcher/index.js.map +1 -1
  346. package/components/Switcher/switcherTheme.js.map +1 -1
  347. package/components/Tabs/Indicator.js.map +1 -1
  348. package/components/Tabs/Indicator.styles.js.map +1 -1
  349. package/components/Tabs/Tab.js.map +1 -1
  350. package/components/Tabs/Tab.styles.js.map +1 -1
  351. package/components/Tabs/Tabs.js.map +1 -1
  352. package/components/Tabs/Tabs.styles.js.map +1 -1
  353. package/components/Tabs/TabsContext.js.map +1 -1
  354. package/components/Tabs/helpers.js.map +1 -1
  355. package/components/Tabs/index.js.map +1 -1
  356. package/components/Textarea/Textarea.js +1 -1
  357. package/components/Textarea/Textarea.js.map +1 -1
  358. package/components/Textarea/Textarea.mixins.js.map +1 -1
  359. package/components/Textarea/Textarea.styles.d.ts +1 -0
  360. package/components/Textarea/Textarea.styles.js +7 -4
  361. package/components/Textarea/Textarea.styles.js.map +1 -1
  362. package/components/Textarea/TextareaCounter.d.ts +2 -0
  363. package/components/Textarea/TextareaCounter.js +22 -4
  364. package/components/Textarea/TextareaCounter.js.map +1 -1
  365. package/components/Textarea/TextareaHelpers.js.map +1 -1
  366. package/components/Textarea/TextareaWithSafari17Workaround.js.map +1 -1
  367. package/components/Textarea/index.js.map +1 -1
  368. package/components/Toast/Toast.d.ts +13 -14
  369. package/components/Toast/Toast.js +3 -3
  370. package/components/Toast/Toast.js.map +1 -1
  371. package/components/Toast/Toast.styles.js.map +1 -1
  372. package/components/Toast/ToastView.d.ts +8 -5
  373. package/components/Toast/ToastView.js +28 -8
  374. package/components/Toast/ToastView.js.map +1 -1
  375. package/components/Toast/ToastView.styles.d.ts +7 -0
  376. package/components/Toast/ToastView.styles.js +30 -8
  377. package/components/Toast/ToastView.styles.js.map +1 -1
  378. package/components/Toast/index.js.map +1 -1
  379. package/components/Toast/locale/index.js.map +1 -1
  380. package/components/Toast/locale/locales/en.js.map +1 -1
  381. package/components/Toast/locale/locales/ru.js.map +1 -1
  382. package/components/Toast/locale/types.js.map +1 -1
  383. package/components/Toggle/Toggle.js.map +1 -1
  384. package/components/Toggle/Toggle.mixins.js.map +1 -1
  385. package/components/Toggle/Toggle.styles.js.map +1 -1
  386. package/components/Toggle/index.js.map +1 -1
  387. package/components/Token/Token.js.map +1 -1
  388. package/components/Token/Token.mixins.js.map +1 -1
  389. package/components/Token/Token.styles.js.map +1 -1
  390. package/components/Token/TokenView.js.map +1 -1
  391. package/components/Token/index.js.map +1 -1
  392. package/components/Token/locale/index.js.map +1 -1
  393. package/components/Token/locale/locales/en.js.map +1 -1
  394. package/components/Token/locale/locales/ru.js.map +1 -1
  395. package/components/Token/locale/types.js.map +1 -1
  396. package/components/TokenInput/TextWidthHelper.js.map +1 -1
  397. package/components/TokenInput/TokenInput.d.ts +18 -2
  398. package/components/TokenInput/TokenInput.js +236 -79
  399. package/components/TokenInput/TokenInput.js.map +1 -1
  400. package/components/TokenInput/TokenInput.mixins.js.map +1 -1
  401. package/components/TokenInput/TokenInput.styles.d.ts +1 -0
  402. package/components/TokenInput/TokenInput.styles.js +12 -9
  403. package/components/TokenInput/TokenInput.styles.js.map +1 -1
  404. package/components/TokenInput/TokenInputMenu.d.ts +2 -1
  405. package/components/TokenInput/TokenInputMenu.js +1 -1
  406. package/components/TokenInput/TokenInputMenu.js.map +1 -1
  407. package/components/TokenInput/TokenInputMobileMenu.d.ts +25 -0
  408. package/components/TokenInput/TokenInputMobileMenu.js +40 -0
  409. package/components/TokenInput/TokenInputMobileMenu.js.map +1 -0
  410. package/components/TokenInput/TokenInputReducer.d.ts +2 -0
  411. package/components/TokenInput/TokenInputReducer.js +14 -0
  412. package/components/TokenInput/TokenInputReducer.js.map +1 -1
  413. package/components/TokenInput/index.js.map +1 -1
  414. package/components/TokenInput/locale/index.js.map +1 -1
  415. package/components/TokenInput/locale/locales/en.js.map +1 -1
  416. package/components/TokenInput/locale/locales/ru.js.map +1 -1
  417. package/components/TokenInput/locale/types.js.map +1 -1
  418. package/components/Tooltip/Tooltip.d.ts +4 -0
  419. package/components/Tooltip/Tooltip.js +50 -11
  420. package/components/Tooltip/Tooltip.js.map +1 -1
  421. package/components/Tooltip/Tooltip.styles.js.map +1 -1
  422. package/components/Tooltip/index.js.map +1 -1
  423. package/components/TooltipMenu/TooltipMenu.js.map +1 -1
  424. package/components/TooltipMenu/index.js.map +1 -1
  425. package/hooks/useDrop.js.map +1 -1
  426. package/hooks/useEffectWithoutInitCall.js.map +1 -1
  427. package/hooks/useMemoObject.js.map +1 -1
  428. package/index.js.map +1 -1
  429. package/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  430. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -1
  431. package/internal/ClearCrossIcon/CrossIcon.js.map +1 -1
  432. package/internal/CloseButtonIcon/CloseButtonIcon.js +1 -1
  433. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  434. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -1
  435. package/internal/CloseButtonIcon/CrossIcon.js.map +1 -1
  436. package/internal/CommonWrapper/CommonWrapper.js +5 -0
  437. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  438. package/internal/CommonWrapper/index.js.map +1 -1
  439. package/internal/CommonWrapper/types.js.map +1 -1
  440. package/internal/CommonWrapper/utils/extractCommonProps.js.map +1 -1
  441. package/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes.js.map +1 -1
  442. package/internal/CommonWrapper/utils/getVisualStateDataAttributes.js.map +1 -1
  443. package/internal/CommonWrapper/utils/tryGetBoolean.js.map +1 -1
  444. package/internal/CustomComboBox/ArrowDownIcon.js.map +1 -1
  445. package/internal/CustomComboBox/ComboBoxMenu.js +1 -1
  446. package/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  447. package/internal/CustomComboBox/ComboBoxView.js +13 -2
  448. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  449. package/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  450. package/internal/CustomComboBox/CustomComboBox.styles.js.map +1 -1
  451. package/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  452. package/internal/CustomComboBox/CustomComboBoxTypes.js.map +1 -1
  453. package/internal/CustomComboBox/getComboBoxTheme.js.map +1 -1
  454. package/internal/CustomComboBox/index.js.map +1 -1
  455. package/internal/CustomComboBox/locale/index.js.map +1 -1
  456. package/internal/CustomComboBox/locale/locales/en.js.map +1 -1
  457. package/internal/CustomComboBox/locale/locales/ru.js.map +1 -1
  458. package/internal/CustomComboBox/locale/types.js.map +1 -1
  459. package/internal/CustomComboBox/tids.js.map +1 -1
  460. package/internal/DateSelect/DateSelect.js.map +1 -1
  461. package/internal/DateSelect/DateSelect.styles.js.map +1 -1
  462. package/internal/DateSelect/index.js.map +1 -1
  463. package/internal/DateSelect/locale/index.js.map +1 -1
  464. package/internal/DateSelect/locale/locales/en.js.map +1 -1
  465. package/internal/DateSelect/locale/locales/ru.js.map +1 -1
  466. package/internal/DateSelect/locale/types.js.map +1 -1
  467. package/internal/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
  468. package/internal/FocusControlWrapper/index.js.map +1 -1
  469. package/internal/FocusControlWrapper/useFocusControl.js.map +1 -1
  470. package/internal/FocusTrap/FocusTrap.js.map +1 -1
  471. package/internal/FocusTrap/index.js.map +1 -1
  472. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  473. package/internal/HideBodyVerticalScroll/index.js.map +1 -1
  474. package/internal/InputLikeText/InputLikeText.d.ts +1 -1
  475. package/internal/InputLikeText/InputLikeText.js.map +1 -1
  476. package/internal/InputLikeText/InputLikeText.styles.js.map +1 -1
  477. package/internal/InputLikeText/index.js.map +1 -1
  478. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  479. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +1 -1
  480. package/internal/MaskCharLowLine/MaskCharLowLine.js.map +1 -1
  481. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js.map +1 -1
  482. package/internal/MaskCharLowLine/index.js.map +1 -1
  483. package/internal/Menu/Menu.js +3 -0
  484. package/internal/Menu/Menu.js.map +1 -1
  485. package/internal/Menu/Menu.styles.d.ts +1 -0
  486. package/internal/Menu/Menu.styles.js +13 -10
  487. package/internal/Menu/Menu.styles.js.map +1 -1
  488. package/internal/Menu/MenuContext.js.map +1 -1
  489. package/internal/Menu/MenuNavigation.js.map +1 -1
  490. package/internal/Menu/index.js.map +1 -1
  491. package/internal/MenuMessage/MenuMessage.js +17 -1
  492. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  493. package/internal/MenuMessage/MenuMessage.styles.d.ts +3 -0
  494. package/internal/MenuMessage/MenuMessage.styles.js +13 -4
  495. package/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
  496. package/internal/MenuMessage/index.js.map +1 -1
  497. package/internal/MobilePopup/MobilePopup.d.ts +8 -0
  498. package/internal/MobilePopup/MobilePopup.js +34 -11
  499. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  500. package/internal/MobilePopup/MobilePopup.styles.d.ts +7 -0
  501. package/internal/MobilePopup/MobilePopup.styles.js +34 -10
  502. package/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
  503. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +8 -1
  504. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +18 -1
  505. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  506. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +3 -0
  507. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +14 -4
  508. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -1
  509. package/internal/MobilePopup/MobilePopupFooter/index.js.map +1 -1
  510. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +4 -0
  511. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +48 -11
  512. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  513. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +6 -0
  514. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +28 -8
  515. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
  516. package/internal/MobilePopup/MobilePopupHeader/index.js.map +1 -1
  517. package/internal/MobilePopup/index.js.map +1 -1
  518. package/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  519. package/internal/NativeDateInput/NativeDateInput.styles.js.map +1 -1
  520. package/internal/NativeDateInput/index.js.map +1 -1
  521. package/internal/NativeDateInput/utils.js.map +1 -1
  522. package/internal/Popup/Popup.d.ts +9 -3
  523. package/internal/Popup/Popup.js +117 -15
  524. package/internal/Popup/Popup.js.map +1 -1
  525. package/internal/Popup/Popup.styles.js +1 -1
  526. package/internal/Popup/Popup.styles.js.map +1 -1
  527. package/internal/Popup/PopupHelper.d.ts +4 -0
  528. package/internal/Popup/PopupHelper.js +8 -0
  529. package/internal/Popup/PopupHelper.js.map +1 -1
  530. package/internal/Popup/PopupPin.d.ts +19 -4
  531. package/internal/Popup/PopupPin.js +109 -8
  532. package/internal/Popup/PopupPin.js.map +1 -1
  533. package/internal/Popup/PopupPin.styles.d.ts +2 -0
  534. package/internal/Popup/PopupPin.styles.js +11 -5
  535. package/internal/Popup/PopupPin.styles.js.map +1 -1
  536. package/internal/Popup/index.js.map +1 -1
  537. package/internal/Popup/types.js.map +1 -1
  538. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  539. package/internal/PopupMenu/PopupMenu.styles.js.map +1 -1
  540. package/internal/PopupMenu/index.js.map +1 -1
  541. package/internal/PopupMenu/tids.js.map +1 -1
  542. package/internal/PopupMenu/validatePositions.js.map +1 -1
  543. package/internal/RenderContainer/RenderContainer.js.map +1 -1
  544. package/internal/RenderContainer/RenderContainerTypes.js.map +1 -1
  545. package/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  546. package/internal/RenderContainer/index.js.map +1 -1
  547. package/internal/RenderLayer/RenderLayer.js.map +1 -1
  548. package/internal/RenderLayer/index.js.map +1 -1
  549. package/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  550. package/internal/ResizeDetector/ResizeDetector.styles.js.map +1 -1
  551. package/internal/ResizeDetector/index.js.map +1 -1
  552. package/internal/SpinnerIcon/SpinnerIcon.d.ts +3 -3
  553. package/internal/SpinnerIcon/SpinnerIcon.js +4 -4
  554. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  555. package/internal/SpinnerIcon/SpinnerIcon.styles.js.map +1 -1
  556. package/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  557. package/internal/TextWidthHelper/TextWidthHelper.styles.js.map +1 -1
  558. package/internal/ZIndex/ZIndex.js.map +1 -1
  559. package/internal/ZIndex/ZIndexStorage.js.map +1 -1
  560. package/internal/ZIndex/index.js.map +1 -1
  561. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.js.map +1 -1
  562. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.js.map +1 -1
  563. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.js.map +1 -1
  564. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.js.map +1 -1
  565. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.js.map +1 -1
  566. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.js.map +1 -1
  567. package/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.js.map +1 -1
  568. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.js.map +1 -1
  569. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.js.map +1 -1
  570. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.js.map +1 -1
  571. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.js.map +1 -1
  572. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.js.map +1 -1
  573. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.js.map +1 -1
  574. package/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.js.map +1 -1
  575. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.js.map +1 -1
  576. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.js.map +1 -1
  577. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.js.map +1 -1
  578. package/internal/icons2022/BaseIcon.js.map +1 -1
  579. package/internal/icons2022/BaseIcon.styles.js.map +1 -1
  580. package/internal/icons2022/CalendarIcon/CalendarIcon16Light.js.map +1 -1
  581. package/internal/icons2022/CalendarIcon/CalendarIcon20Light.js.map +1 -1
  582. package/internal/icons2022/CalendarIcon/CalendarIcon24Regular.js.map +1 -1
  583. package/internal/icons2022/CheckAIcon/CheckAIcon16Solid.js.map +1 -1
  584. package/internal/icons2022/CheckAIcon/CheckAIcon20Solid.js.map +1 -1
  585. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.js.map +1 -1
  586. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.js.map +1 -1
  587. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.js.map +1 -1
  588. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.js.map +1 -1
  589. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.js.map +1 -1
  590. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.js.map +1 -1
  591. package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon16Solid.js.map +1 -1
  592. package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon20Solid.js.map +1 -1
  593. package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon24Regular.js.map +1 -1
  594. package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon24Solid.js.map +1 -1
  595. package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon32Regular.js.map +1 -1
  596. package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon64Regular.js.map +1 -1
  597. package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon16Solid.js.map +1 -1
  598. package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon20Solid.js.map +1 -1
  599. package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon24Regular.js.map +1 -1
  600. package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon24Solid.js.map +1 -1
  601. package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon32Regular.js.map +1 -1
  602. package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon64Regular.js.map +1 -1
  603. package/internal/icons2022/FileTypeFolderIcon/FolderIcon16Solid.js.map +1 -1
  604. package/internal/icons2022/FileTypeFolderIcon/FolderIcon20Solid.js.map +1 -1
  605. package/internal/icons2022/FileTypeFolderIcon/FolderIcon24Regular.js.map +1 -1
  606. package/internal/icons2022/FileTypeFolderIcon/FolderIcon24Solid.js.map +1 -1
  607. package/internal/icons2022/FileTypeFolderIcon/FolderIcon32Regular.js.map +1 -1
  608. package/internal/icons2022/FileTypeFolderIcon/FolderIcon64Regular.js.map +1 -1
  609. package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon16Solid.js.map +1 -1
  610. package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon20Solid.js.map +1 -1
  611. package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon24Regular.js.map +1 -1
  612. package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon24Solid.js.map +1 -1
  613. package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon32Regular.js.map +1 -1
  614. package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon64Regular.js.map +1 -1
  615. package/internal/icons2022/FileTypePdfIcon/PdfIcon16Solid.js.map +1 -1
  616. package/internal/icons2022/FileTypePdfIcon/PdfIcon20Solid.js.map +1 -1
  617. package/internal/icons2022/FileTypePdfIcon/PdfIcon24Regular.js.map +1 -1
  618. package/internal/icons2022/FileTypePdfIcon/PdfIcon24Solid.js.map +1 -1
  619. package/internal/icons2022/FileTypePdfIcon/PdfIcon32Regular.js.map +1 -1
  620. package/internal/icons2022/FileTypePdfIcon/PdfIcon64Regular.js.map +1 -1
  621. package/internal/icons2022/FileTypePictureIcon/PictureIcon16Solid.js.map +1 -1
  622. package/internal/icons2022/FileTypePictureIcon/PictureIcon20Solid.js.map +1 -1
  623. package/internal/icons2022/FileTypePictureIcon/PictureIcon24Regular.js.map +1 -1
  624. package/internal/icons2022/FileTypePictureIcon/PictureIcon24Solid.js.map +1 -1
  625. package/internal/icons2022/FileTypePictureIcon/PictureIcon32Regular.js.map +1 -1
  626. package/internal/icons2022/FileTypePictureIcon/PictureIcon64Regular.js.map +1 -1
  627. package/internal/icons2022/FileTypePresentationIcon/PresentationIcon16Solid.js.map +1 -1
  628. package/internal/icons2022/FileTypePresentationIcon/PresentationIcon20Solid.js.map +1 -1
  629. package/internal/icons2022/FileTypePresentationIcon/PresentationIcon24Regular.js.map +1 -1
  630. package/internal/icons2022/FileTypePresentationIcon/PresentationIcon24Solid.js.map +1 -1
  631. package/internal/icons2022/FileTypePresentationIcon/PresentationIcon32Regular.js.map +1 -1
  632. package/internal/icons2022/FileTypePresentationIcon/PresentationIcon64Regular.js.map +1 -1
  633. package/internal/icons2022/FileTypeTableIcon/TableIcon16Solid.js.map +1 -1
  634. package/internal/icons2022/FileTypeTableIcon/TableIcon20Solid.js.map +1 -1
  635. package/internal/icons2022/FileTypeTableIcon/TableIcon24Regular.js.map +1 -1
  636. package/internal/icons2022/FileTypeTableIcon/TableIcon24Solid.js.map +1 -1
  637. package/internal/icons2022/FileTypeTableIcon/TableIcon32Regular.js.map +1 -1
  638. package/internal/icons2022/FileTypeTableIcon/TableIcon64Regular.js.map +1 -1
  639. package/internal/icons2022/FileTypeTextIcon/TextIcon16Solid.js.map +1 -1
  640. package/internal/icons2022/FileTypeTextIcon/TextIcon20Solid.js.map +1 -1
  641. package/internal/icons2022/FileTypeTextIcon/TextIcon24Regular.js.map +1 -1
  642. package/internal/icons2022/FileTypeTextIcon/TextIcon24Solid.js.map +1 -1
  643. package/internal/icons2022/FileTypeTextIcon/TextIcon32Regular.js.map +1 -1
  644. package/internal/icons2022/FileTypeTextIcon/TextIcon64Regular.js.map +1 -1
  645. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js.map +1 -1
  646. package/internal/icons2022/LoadingIcon.js +1 -1
  647. package/internal/icons2022/LoadingIcon.js.map +1 -1
  648. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.js.map +1 -1
  649. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.js.map +1 -1
  650. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.js.map +1 -1
  651. package/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.js.map +1 -1
  652. package/internal/icons2022/NetUploadIcon/NetUploadIcon20Regular.js.map +1 -1
  653. package/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.js.map +1 -1
  654. package/internal/icons2022/NetUploadIcon/NetUploadIcon32Regular.js.map +1 -1
  655. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.d.ts +2 -0
  656. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js +21 -0
  657. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js.map +1 -0
  658. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.js.map +1 -1
  659. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.d.ts +2 -0
  660. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js +21 -0
  661. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js.map +1 -0
  662. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.d.ts +2 -0
  663. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js +21 -0
  664. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js.map +1 -0
  665. package/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.js.map +1 -1
  666. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js.map +1 -1
  667. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.js.map +1 -1
  668. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.js.map +1 -1
  669. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.js.map +1 -1
  670. package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon16Solid.js.map +1 -1
  671. package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon20Solid.js.map +1 -1
  672. package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon24Regular.js.map +1 -1
  673. package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon24Solid.js.map +1 -1
  674. package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon32Regular.js.map +1 -1
  675. package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon64Regular.js.map +1 -1
  676. package/internal/icons2022/XCircleIcon/XCircleIcon16Solid.js.map +1 -1
  677. package/internal/icons2022/XCircleIcon/XCircleIcon20Solid.js.map +1 -1
  678. package/internal/icons2022/XCircleIcon/XCircleIcon24Regular.js.map +1 -1
  679. package/internal/icons2022/XCircleIcon/XCircleIcon24Solid.js.map +1 -1
  680. package/internal/icons2022/XCircleIcon/XCircleIcon32Regular.js.map +1 -1
  681. package/internal/icons2022/XCircleIcon/XCircleIcon64Regular.js.map +1 -1
  682. package/internal/icons2022/XIcon/XIcon16Light.js.map +1 -1
  683. package/internal/icons2022/XIcon/XIcon20Light.js.map +1 -1
  684. package/internal/icons2022/XIcon/XIcon20Regular.js.map +1 -1
  685. package/internal/icons2022/XIcon/XIcon24Regular.js.map +1 -1
  686. package/internal/icons2022/iconConstants.js.map +1 -1
  687. package/internal/icons2022/iconSizer.js.map +1 -1
  688. package/internal/react-focus-lock/Combination.js.map +1 -1
  689. package/internal/react-focus-lock/FocusGuard.js.map +1 -1
  690. package/internal/react-focus-lock/Lock.js.map +1 -1
  691. package/internal/react-focus-lock/Trap.js.map +1 -1
  692. package/internal/react-focus-lock/constants.js.map +1 -1
  693. package/internal/react-focus-lock/index.js.map +1 -1
  694. package/internal/react-focus-lock/medium.js.map +1 -1
  695. package/internal/react-focus-lock/scope.js.map +1 -1
  696. package/internal/react-focus-lock/util.js.map +1 -1
  697. package/internal/themes/BasicTheme.d.ts +83 -4
  698. package/internal/themes/BasicTheme.js +186 -5
  699. package/internal/themes/BasicTheme.js.map +1 -1
  700. package/internal/themes/DarkTheme6_0.js.map +1 -1
  701. package/internal/themes/DarkTheme6_1.d.ts +1 -0
  702. package/internal/themes/DarkTheme6_1.js +41 -0
  703. package/internal/themes/DarkTheme6_1.js.map +1 -0
  704. package/internal/themes/LightTheme6_0.js.map +1 -1
  705. package/internal/themes/LightTheme6_1.d.ts +1 -0
  706. package/internal/themes/LightTheme6_1.js +39 -0
  707. package/internal/themes/LightTheme6_1.js.map +1 -0
  708. package/lib/ConditionalHandler.js.map +1 -1
  709. package/lib/InstanceWithAnchorElement.js.map +1 -1
  710. package/lib/LayoutEvents.js.map +1 -1
  711. package/lib/ModalStack.js.map +1 -1
  712. package/lib/Upgrades.js.map +1 -1
  713. package/lib/animation/index.js.map +1 -1
  714. package/lib/animation/presets.js.map +1 -1
  715. package/lib/animation/stepper.js.map +1 -1
  716. package/lib/blink.js.map +1 -1
  717. package/lib/callChildRef/callChildRef.js.map +1 -1
  718. package/lib/chars.js.map +1 -1
  719. package/lib/client.js.map +1 -1
  720. package/lib/createPropsGetter.js.map +1 -1
  721. package/lib/currentEnvironment.js.map +1 -1
  722. package/lib/date/InternalDate.js.map +1 -1
  723. package/lib/date/InternalDateCalculator.js.map +1 -1
  724. package/lib/date/InternalDateGetter.js.map +1 -1
  725. package/lib/date/InternalDateSetter.js.map +1 -1
  726. package/lib/date/InternalDateTransformer.js.map +1 -1
  727. package/lib/date/InternalDateValidator.js.map +1 -1
  728. package/lib/date/comparison.js.map +1 -1
  729. package/lib/date/constants.js.map +1 -1
  730. package/lib/date/localeSets.js.map +1 -1
  731. package/lib/date/types.js.map +1 -1
  732. package/lib/delay.js.map +1 -1
  733. package/lib/dom/getDOMRect.js.map +1 -1
  734. package/lib/dom/getParentOrShadowHost.js.map +1 -1
  735. package/lib/dom/getScrollWidth.js.map +1 -1
  736. package/lib/dom/scrollYCenterIntoNearestScrollable.js.map +1 -1
  737. package/lib/dom/selectionHelpers.js.map +1 -1
  738. package/lib/dom/tabbableHelpers.js.map +1 -1
  739. package/lib/events/MouseDrag.js.map +1 -1
  740. package/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  741. package/lib/events/keyListener.js.map +1 -1
  742. package/lib/events/keyboard/KeyboardEventCodes.js.map +1 -1
  743. package/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
  744. package/lib/events/keyboard/extractCode.js.map +1 -1
  745. package/lib/events/keyboard/identifiers.js.map +1 -1
  746. package/lib/extractKeyboardAction.js.map +1 -1
  747. package/lib/featureFlagsContext/FeatureFlagsHelpers.js.map +1 -1
  748. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  749. package/lib/featureFlagsContext/index.js.map +1 -1
  750. package/lib/filterProps.js.map +1 -1
  751. package/lib/forwardRefAndName.js.map +1 -1
  752. package/lib/getElementRef.js.map +1 -1
  753. package/lib/getMenuPositions.js.map +1 -1
  754. package/lib/globalObject.js.map +1 -1
  755. package/lib/isInstanceOf.js.map +1 -1
  756. package/lib/listenFocusOutside.js.map +1 -1
  757. package/lib/locale/LocaleContext.js.map +1 -1
  758. package/lib/locale/LocaleHelper.js.map +1 -1
  759. package/lib/locale/constants.js.map +1 -1
  760. package/lib/locale/decorators.js.map +1 -1
  761. package/lib/locale/index.js.map +1 -1
  762. package/lib/locale/types.js.map +1 -1
  763. package/lib/locale/useLocaleForControl.js.map +1 -1
  764. package/lib/memo.js.map +1 -1
  765. package/lib/mergeRefs.js.map +1 -1
  766. package/lib/needsPolyfillPlaceholder.js.map +1 -1
  767. package/lib/pluralize.js.map +1 -1
  768. package/lib/react-is.js.map +1 -1
  769. package/lib/reactGetTextContent.js.map +1 -1
  770. package/lib/renderEnvironment/RenderEnvironmentContext.js.map +1 -1
  771. package/lib/renderEnvironment/RenderEnvironmentDecorator.js.map +1 -1
  772. package/lib/renderEnvironment/index.js.map +1 -1
  773. package/lib/rootNode/getRootNode.js.map +1 -1
  774. package/lib/rootNode/index.js.map +1 -1
  775. package/lib/rootNode/rootNodeDecorator.js.map +1 -1
  776. package/lib/scrollInputCaretIntoView.js.map +1 -1
  777. package/lib/size/SizeControlContext.js.map +1 -1
  778. package/lib/size/SizeDecorator.js.map +1 -1
  779. package/lib/size/constants.js.map +1 -1
  780. package/lib/size/index.js.map +1 -1
  781. package/lib/size/useSizeControl.js.map +1 -1
  782. package/lib/stringUtils.js.map +1 -1
  783. package/lib/styles/ColorFactory.js.map +1 -1
  784. package/lib/styles/ColorFunctions.js.map +1 -1
  785. package/lib/styles/ColorHelpers.js.map +1 -1
  786. package/lib/styles/ColorKeywords.js.map +1 -1
  787. package/lib/styles/ColorObject.js.map +1 -1
  788. package/lib/styles/DimensionFunctions.js.map +1 -1
  789. package/lib/styles/Mixins.js.map +1 -1
  790. package/lib/styles/UiFont.js.map +1 -1
  791. package/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -1
  792. package/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  793. package/lib/theming/AnimationKeyframes.js.map +1 -1
  794. package/lib/theming/Emotion.js.map +1 -1
  795. package/lib/theming/Theme.js.map +1 -1
  796. package/lib/theming/ThemeContext.js.map +1 -1
  797. package/lib/theming/ThemeFactory.js.map +1 -1
  798. package/lib/theming/ThemeHelpers.js.map +1 -1
  799. package/lib/theming/ThemeVersions.js.map +1 -1
  800. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  801. package/lib/theming/themes/DarkTheme.js +3 -1
  802. package/lib/theming/themes/DarkTheme.js.map +1 -1
  803. package/lib/theming/themes/LightTheme.d.ts +1 -0
  804. package/lib/theming/themes/LightTheme.js +3 -1
  805. package/lib/theming/themes/LightTheme.js.map +1 -1
  806. package/lib/theming/useTheme.js.map +1 -1
  807. package/lib/toKebabCase.js.map +1 -1
  808. package/lib/typeGuards.js.map +1 -1
  809. package/lib/types/button-link.js.map +1 -1
  810. package/lib/types/polymorphic-component.js.map +1 -1
  811. package/lib/types/props.js.map +1 -1
  812. package/lib/uidUtils.js.map +1 -1
  813. package/lib/utils.js.map +1 -1
  814. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputLayoutAsideCounter.js","sourceRoot":"","sources":["InputLayoutAsideCounter.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6EAA6E,CAAC;AACxH,OAAO,EAAE,2BAA2B,EAAE,MAAM,+EAA+E,CAAC;AAC5H,OAAO,EAAE,2BAA2B,EAAE,MAAM,+EAA+E,CAAC;AAC5H,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAmB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAU1D,IAAM,mBAAmB,GAAG,UAAC,CAAiB,IAAK,OAAA,CAAC,CAAC,cAAc,EAAE,EAAlB,CAAkB,CAAC;AAEtE,MAAM,CAAC,IAAM,uBAAuB,GAA0D,UAAC,EAM9F;;QALC,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,IAAI,UAAA,EACJ,WAAW,iBAAA,EACX,IAAI,UAAA;IAEJ,IAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;IAEhD,IAAM,oBAAoB,GAAG,WAAW,CAAC;QACvC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,IAAM,WAAW,GAAG;QAClB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,OAAO;gBACV,OAAO,oBAAC,2BAA2B,eAAK,aAAa,EAAI,CAAC;YAC5D,KAAK,QAAQ;gBACX,OAAO,oBAAC,2BAA2B,eAAK,aAAa,EAAI,CAAC;YAC5D,KAAK,OAAO,CAAC;YACb;gBACE,OAAO,oBAAC,yBAAyB,eAAK,aAAa,EAAI,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;IACF,IAAM,aAAa,GAAG;QACpB,WAAW,EAAE,mBAAmB;QAChC,KAAK,EAAE,KAAK,CAAC,yBAAyB;QACtC,UAAU,EAAE,aAAa,CAAC,eAAe;QACzC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;KAC7B,CAAC;IACF,IAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACrC,IAAI,EAAE,CACP,CAAC,CAAC,CAAC,CACF,oBAAC,OAAO,IACN,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,oBAAoB,EAC5B,YAAY,EAAE,WAAW,EACzB,IAAI,EAAE,IAAI,IAET,WAAW,EAAE,CACN,CACX,CAAC;IAEF,IAAM,cAAc,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5C,IAAM,uBAAuB,GAAG;QAC9B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,OAAO;gBACV,OAAO,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC1C,KAAK,QAAQ;gBACX,OAAO,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,KAAK,OAAO,CAAC;YACb;gBACE,OAAO,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAM,YAAY,GAAG,MAAM,GAAG,gBAAgB,CAAC;IAC/C,IAAM,eAAe,GAAG,YAAY,GAAG,CAAC,CAAC;IAEzC,OAAO,CACL,0CACY,aAAa,CAAC,OAAO,EAC/B,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,uBAAuB,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;YAClF,GAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,IAAG,eAAe;gBACnD;QAED,eAAe,CAAC,CAAC,CAAC,gBAAI,CAAC,YAAY,CAAE,CAAC,CAAC,CAAC,YAAY;QACpD,IAAI,IAAI,8BAAM,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,IAAG,WAAW,CAAQ,CAC1E,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { SyntheticEvent } from 'react';\nimport React, { useCallback } from 'react';\n\nimport { Tooltip } from '../../../components/Tooltip/Tooltip.js';\nimport { QuestionCircleIcon16Light } from '../../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js';\nimport { QuestionCircleIcon20Regular } from '../../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js';\nimport { QuestionCircleIcon24Regular } from '../../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js';\nimport { useEmotion, useStyles } from '../../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../../lib/types/props.js';\nimport { isFunction } from '../../../lib/utils.js';\nimport { InputDataTids, type InputProps } from '../Input.js';\nimport { getStylesLayout } from './InputLayout.styles.js';\n\nexport interface InputLayoutAsideCounterProps {\n length: number;\n inputValue: InputProps['value'];\n help: InputProps['counterHelp'];\n onCloseHelp?: () => void;\n size?: SizeProp;\n}\n\nconst handleHelpMouseDown = (e: SyntheticEvent) => e.preventDefault();\n\nexport const InputLayoutAsideCounter: React.FunctionComponent<InputLayoutAsideCounterProps> = ({\n length,\n inputValue,\n help,\n onCloseHelp,\n size,\n}) => {\n const theme = React.useContext(ThemeContext);\n const { cx } = useEmotion();\n const stylesLayout = useStyles(getStylesLayout);\n\n const renderTooltipContent = useCallback(() => {\n if (typeof help === 'function') {\n return help();\n }\n return help;\n }, [help]);\n\n const getHelpIcon = () => {\n switch (size) {\n case 'large':\n return <QuestionCircleIcon24Regular {...helpIconProps} />;\n case 'medium':\n return <QuestionCircleIcon20Regular {...helpIconProps} />;\n case 'small':\n default:\n return <QuestionCircleIcon16Light {...helpIconProps} />;\n }\n };\n const helpIconProps = {\n onMouseDown: handleHelpMouseDown,\n color: theme.inputCounterHelpIconColor,\n 'data-tid': InputDataTids.counterHelpIcon,\n style: { cursor: 'pointer' },\n };\n const counterHelp = isFunction(help) ? (\n help()\n ) : (\n <Tooltip\n pos={'right bottom'}\n trigger={'click'}\n render={renderTooltipContent}\n onCloseClick={onCloseHelp}\n size={size}\n >\n {getHelpIcon()}\n </Tooltip>\n );\n\n const asideClassName = stylesLayout.aside();\n const getCounterSizeClassName = () => {\n switch (size) {\n case 'large':\n return stylesLayout.counterLarge(theme);\n case 'medium':\n return stylesLayout.counterMedium(theme);\n case 'small':\n default:\n return stylesLayout.counterSmall(theme);\n }\n };\n\n const inputValueLength = inputValue ? inputValue.length : 0;\n const counterValue = length - inputValueLength;\n const isNegativeValue = counterValue < 0;\n\n return (\n <span\n data-tid={InputDataTids.counter}\n className={cx(asideClassName, getCounterSizeClassName(), stylesLayout.counter(theme), {\n [stylesLayout.counterError(theme)]: isNegativeValue,\n })}\n >\n {isNegativeValue ? `–${-counterValue}` : counterValue}\n {help && <span className={stylesLayout.counterHelp(theme)}>{counterHelp}</span>}\n </span>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"InputLayoutAsideIcon.js","sourceRoot":"","sources":["../../../../components/Input/InputLayout/InputLayoutAsideIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAO7D,MAAM,CAAC,IAAM,oBAAoB,GAAuD,UAAC,EAAqB;;QAAnB,YAAW,EAAX,IAAI,mBAAG,IAAI,KAAA,EAAE,IAAI,UAAA;IAC1G,IAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;IAC1C,IAAA,KAA8B,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAhE,OAAO,aAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAyC,CAAC;IAEzE,IAAM,KAAK,GAA6B;QACtC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC;QACzC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAC3C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC;KAC1C,CAAC;IACF,IAAM,IAAI,GAA6B;QACrC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACxC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC1C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;KACzC,CAAC;IAEF,IAAI,KAAK,GAAG,IAAI,YAAY,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAM,SAAS,GAAG,IAAI,CAAC,KAAkB,CAAC;QAC1C,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;YAC/B,IAAI,EAAE,MAAA,SAAS,CAAC,IAAI,mCAAI,KAAK,CAAC,IAAI,CAAC;SACvB,CAAC,CAAC;IAClB,CAAC;IAED,IAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,8BACE,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,EAAE,CACX,YAAY,CAAC,KAAK,EAAE,EACpB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EACxB,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EACxC,QAAQ,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAC7C,IAEA,KAAK,CACD,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport type { IconProps } from '../../../internal/icons2022/BaseIcon.js';\nimport { isElement } from '../../../lib/react-is.js';\nimport { useEmotion, useStyles } from '../../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../../lib/types/props.js';\nimport { isKonturIcon } from '../../../lib/utils.js';\nimport type { InputProps } from '../Input.js';\nimport { getStylesLayout } from './InputLayout.styles.js';\nimport { InputLayoutContext } from './InputLayoutContext.js';\n\nexport interface InputLayoutAsideIconProps {\n icon: InputProps['leftIcon'] | InputProps['rightIcon'];\n side: 'left' | 'right';\n}\n\nexport const InputLayoutAsideIcon: React.FunctionComponent<InputLayoutAsideIconProps> = ({ icon = null, side }) => {\n const theme = React.useContext(ThemeContext);\n const { cx } = useEmotion();\n const stylesLayout = useStyles(getStylesLayout);\n const { focused, disabled, size } = React.useContext(InputLayoutContext);\n\n const sizes: Record<SizeProp, number> = {\n small: parseInt(theme.inputIconSizeSmall),\n medium: parseInt(theme.inputIconSizeMedium),\n large: parseInt(theme.inputIconSizeLarge),\n };\n const gaps: Record<SizeProp, number> = {\n small: parseInt(theme.inputIconGapSmall),\n medium: parseInt(theme.inputIconGapMedium),\n large: parseInt(theme.inputIconGapLarge),\n };\n\n let _icon = icon instanceof Function ? icon() : icon;\n if (isElement(icon) && isKonturIcon(icon)) {\n const iconProps = icon.props as IconProps;\n _icon = React.cloneElement(icon, {\n size: iconProps.size ?? sizes[size],\n } as IconProps);\n }\n\n const style: React.CSSProperties = {};\n if (side) {\n if (side === 'right') {\n style.marginLeft = gaps[size];\n } else {\n style.marginRight = gaps[size];\n }\n }\n\n return _icon ? (\n <span\n style={style}\n className={cx(\n stylesLayout.aside(),\n stylesLayout.icon(theme),\n focused && stylesLayout.iconFocus(theme),\n disabled && stylesLayout.iconDisabled(theme),\n )}\n >\n {_icon}\n </span>\n ) : null;\n};\n"]}
1
+ {"version":3,"file":"InputLayoutAsideIcon.js","sourceRoot":"","sources":["InputLayoutAsideIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAO7D,MAAM,CAAC,IAAM,oBAAoB,GAAuD,UAAC,EAAqB;;QAAnB,YAAW,EAAX,IAAI,mBAAG,IAAI,KAAA,EAAE,IAAI,UAAA;IAC1G,IAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;IAC1C,IAAA,KAA8B,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAhE,OAAO,aAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAyC,CAAC;IAEzE,IAAM,KAAK,GAA6B;QACtC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC;QACzC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAC3C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC;KAC1C,CAAC;IACF,IAAM,IAAI,GAA6B;QACrC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACxC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC1C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;KACzC,CAAC;IAEF,IAAI,KAAK,GAAG,IAAI,YAAY,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAM,SAAS,GAAG,IAAI,CAAC,KAAkB,CAAC;QAC1C,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;YAC/B,IAAI,EAAE,MAAA,SAAS,CAAC,IAAI,mCAAI,KAAK,CAAC,IAAI,CAAC;SACvB,CAAC,CAAC;IAClB,CAAC;IAED,IAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,8BACE,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,EAAE,CACX,YAAY,CAAC,KAAK,EAAE,EACpB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EACxB,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EACxC,QAAQ,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAC7C,IAEA,KAAK,CACD,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport type { IconProps } from '../../../internal/icons2022/BaseIcon.js';\nimport { isElement } from '../../../lib/react-is.js';\nimport { useEmotion, useStyles } from '../../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../../lib/types/props.js';\nimport { isKonturIcon } from '../../../lib/utils.js';\nimport type { InputProps } from '../Input.js';\nimport { getStylesLayout } from './InputLayout.styles.js';\nimport { InputLayoutContext } from './InputLayoutContext.js';\n\nexport interface InputLayoutAsideIconProps {\n icon: InputProps['leftIcon'] | InputProps['rightIcon'];\n side: 'left' | 'right';\n}\n\nexport const InputLayoutAsideIcon: React.FunctionComponent<InputLayoutAsideIconProps> = ({ icon = null, side }) => {\n const theme = React.useContext(ThemeContext);\n const { cx } = useEmotion();\n const stylesLayout = useStyles(getStylesLayout);\n const { focused, disabled, size } = React.useContext(InputLayoutContext);\n\n const sizes: Record<SizeProp, number> = {\n small: parseInt(theme.inputIconSizeSmall),\n medium: parseInt(theme.inputIconSizeMedium),\n large: parseInt(theme.inputIconSizeLarge),\n };\n const gaps: Record<SizeProp, number> = {\n small: parseInt(theme.inputIconGapSmall),\n medium: parseInt(theme.inputIconGapMedium),\n large: parseInt(theme.inputIconGapLarge),\n };\n\n let _icon = icon instanceof Function ? icon() : icon;\n if (isElement(icon) && isKonturIcon(icon)) {\n const iconProps = icon.props as IconProps;\n _icon = React.cloneElement(icon, {\n size: iconProps.size ?? sizes[size],\n } as IconProps);\n }\n\n const style: React.CSSProperties = {};\n if (side) {\n if (side === 'right') {\n style.marginLeft = gaps[size];\n } else {\n style.marginRight = gaps[size];\n }\n }\n\n return _icon ? (\n <span\n style={style}\n className={cx(\n stylesLayout.aside(),\n stylesLayout.icon(theme),\n focused && stylesLayout.iconFocus(theme),\n disabled && stylesLayout.iconDisabled(theme),\n )}\n >\n {_icon}\n </span>\n ) : null;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"InputLayoutAsideText.js","sourceRoot":"","sources":["../../../../components/Input/InputLayout/InputLayoutAsideText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAM7D,MAAM,CAAC,IAAM,oBAAoB,GAAuD,UAAC,EAAe;QAAb,YAAW,EAAX,IAAI,mBAAG,IAAI,KAAA;IACpG,IAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;IACxC,IAAA,QAAQ,GAAK,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAzC,CAA0C;IAE1D,IAAM,cAAc,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;IAE5C,OAAO,IAAI,CAAC,CAAC,CAAC,CACZ,8BAAM,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IACxG,IAAI,CACA,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { useEmotion, useStyles } from '../../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext.js';\nimport type { InputProps } from '../Input.js';\nimport { getStylesLayout } from './InputLayout.styles.js';\nimport { InputLayoutContext } from './InputLayoutContext.js';\n\nexport interface InputLayoutAsideTextProps {\n text: InputProps['prefix'] | InputProps['suffix'];\n}\n\nexport const InputLayoutAsideText: React.FunctionComponent<InputLayoutAsideTextProps> = ({ text = null }) => {\n const theme = React.useContext(ThemeContext);\n const { cx } = useEmotion();\n const stylesLayout = useStyles(getStylesLayout);\n const { disabled } = React.useContext(InputLayoutContext);\n\n const asideClassName = stylesLayout.aside();\n\n return text ? (\n <span className={cx(asideClassName, stylesLayout.text(theme), disabled && stylesLayout.textDisabled(theme))}>\n {text}\n </span>\n ) : null;\n};\n"]}
1
+ {"version":3,"file":"InputLayoutAsideText.js","sourceRoot":"","sources":["InputLayoutAsideText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAM7D,MAAM,CAAC,IAAM,oBAAoB,GAAuD,UAAC,EAAe;QAAb,YAAW,EAAX,IAAI,mBAAG,IAAI,KAAA;IACpG,IAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;IACxC,IAAA,QAAQ,GAAK,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAzC,CAA0C;IAE1D,IAAM,cAAc,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;IAE5C,OAAO,IAAI,CAAC,CAAC,CAAC,CACZ,8BAAM,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IACxG,IAAI,CACA,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { useEmotion, useStyles } from '../../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext.js';\nimport type { InputProps } from '../Input.js';\nimport { getStylesLayout } from './InputLayout.styles.js';\nimport { InputLayoutContext } from './InputLayoutContext.js';\n\nexport interface InputLayoutAsideTextProps {\n text: InputProps['prefix'] | InputProps['suffix'];\n}\n\nexport const InputLayoutAsideText: React.FunctionComponent<InputLayoutAsideTextProps> = ({ text = null }) => {\n const theme = React.useContext(ThemeContext);\n const { cx } = useEmotion();\n const stylesLayout = useStyles(getStylesLayout);\n const { disabled } = React.useContext(InputLayoutContext);\n\n const asideClassName = stylesLayout.aside();\n\n return text ? (\n <span className={cx(asideClassName, stylesLayout.text(theme), disabled && stylesLayout.textDisabled(theme))}>\n {text}\n </span>\n ) : null;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"InputLayoutContext.js","sourceRoot":"","sources":["../../../../components/Input/InputLayout/InputLayoutContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,MAAM,CAAC,IAAM,yBAAyB,GAA4B;IAChE,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,OAAO;CACd,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,CAA0B,yBAAyB,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport type { SizeProp } from '../../../lib/types/props.js';\n\nexport interface InputLayoutContextProps {\n focused: boolean;\n disabled: boolean;\n size: SizeProp;\n}\n\nexport const InputLayoutContextDefault: InputLayoutContextProps = {\n focused: false,\n disabled: false,\n size: 'small',\n};\n\nexport const InputLayoutContext = React.createContext<InputLayoutContextProps>(InputLayoutContextDefault);\n"]}
1
+ {"version":3,"file":"InputLayoutContext.js","sourceRoot":"","sources":["InputLayoutContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,MAAM,CAAC,IAAM,yBAAyB,GAA4B;IAChE,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,OAAO;CACd,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,CAA0B,yBAAyB,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport type { SizeProp } from '../../../lib/types/props.js';\n\nexport interface InputLayoutContextProps {\n focused: boolean;\n disabled: boolean;\n size: SizeProp;\n}\n\nexport const InputLayoutContextDefault: InputLayoutContextProps = {\n focused: false,\n disabled: false,\n size: 'small',\n};\n\nexport const InputLayoutContext = React.createContext<InputLayoutContextProps>(InputLayoutContextDefault);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../components/Input/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './Input.js';\nexport * from './Input.typings.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './Input.js';\nexport * from './Input.typings.js';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Kebab.js","sourceRoot":"","sources":["../../../components/Kebab/Kebab.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oEAAoE,CAAC;AAIlH,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAChH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,YAAY,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAgC3C,MAAM,CAAC,IAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,gBAAgB;CACjB,CAAC;AASX;;GAEG;AAIH;IAA2B,yBAAuC;IAAlE;;QAWU,cAAQ,GAAG,iBAAiB,CAAC,OAAK,CAAC,YAAY,CAAC,CAAC;QAElD,WAAK,GAAe;YACzB,YAAY,EAAE,KAAK;YACnB,MAAM,EAAE,IAAI;SACb,CAAC;QAYM,cAAQ,GAEZ;YACF,MAAM,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS;SACxB,CAAC;QA6DM,mBAAa,GAAG,UAAC,YAAmC;YAClD,IAAA,QAAQ,GAAK,KAAI,CAAC,QAAQ,EAAE,SAApB,CAAqB;YACrC,IAAM,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC;YACvB,IAAM,oBAAoB,GAAG,UAAC,KAA0C;gBACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,KAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC,CAAC;YAEF,IAAM,kBAAkB,GAAG;gBACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,YAAY,CAAC,UAAU,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC;YAEF,OAAO,CACL,8BACE,IAAI,EAAC,QAAQ,cACH,aAAa,CAAC,OAAO,EAC/B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,KAAI,CAAC,WAAW,EACzB,MAAM,EAAE,KAAI,CAAC,UAAU,EACvB,SAAS,EAAE,KAAI,CAAC,EAAE,CAChB,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAI,CAAC,KAAK,CAAC,EAC7B,IAAI,KAAK,OAAO,IAAI,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,EACtD,IAAI,KAAK,QAAQ,IAAI,KAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAI,CAAC,KAAK,CAAC,EACxD,IAAI,KAAK,OAAO,IAAI,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,EACtD,YAAY,CAAC,MAAM,IAAI,KAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAI,CAAC,KAAK,CAAC,EACrD,QAAQ,IAAI,KAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAClC,KAAI,CAAC,KAAK,CAAC,YAAY,IAAI,KAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,CAC3D,sBACiB,KAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAE/C,KAAI,CAAC,UAAU,EAAE,CACb,CACR,CAAC;QACJ,CAAC,CAAC;QAEM,0BAAoB,GAAG,UAC7B,CAAsC,EACtC,QAA2C;YAE3C,IAAI,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC;QAEM,2BAAqB,GAAG,UAAC,QAAiB,EAAE,YAAqB;YACvE,KAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,CAAC,QAAQ,IAAI,YAAY;aACxC,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,iBAAW,GAAG;;YACpB,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACzB,iDAAiD;gBACjD,6CAA6C;gBAC7C,MAAA,MAAA,KAAI,CAAC,YAAY,EAAC,qBAAqB,mDAAG;oBACxC,IAAI,KAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;wBAClC,KAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEM,gBAAU,GAAG;YACnB,KAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC,CAAC;;IAqBJ,CAAC;cA1LY,KAAK;IAkCT,iCAAiB,GAAxB;QACE,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,4CAA4C;QAC5C,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,cAAM,OAAA,SAAS,EAAT,CAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/E,CAAC;IAEM,oCAAoB,GAA3B;QACE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAEM,sBAAM,GAAb;QAAA,iBAsBC;QArBC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtC,OAAO,CACL,oBAAC,YAAY,CAAC,QAAQ,QACnB,UAAC,KAAK;YACL,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,OAAO,CACL,oBAAC,YAAY,CAAC,QAAQ,IACpB,KAAK,EAAE,YAAY,CAAC,MAAM,CACxB;oBACE,WAAW,EAAE,KAAK,CAAC,WAAW;iBAC/B,EACD,KAAK,CACN,IAEA,KAAI,CAAC,UAAU,EAAE,CACI,CACzB,CAAC;QACJ,CAAC,CACqB,CACzB,CAAC;IACJ,CAAC;IAEO,0BAAU,GAAlB;QACU,IAAA,QAAQ,GAAK,IAAI,CAAC,KAAK,SAAf,CAAgB;QAC1B,IAAA,KAAoD,IAAI,CAAC,QAAQ,EAAE,EAAjE,SAAS,eAAA,EAAE,iBAAiB,uBAAA,EAAE,MAAM,YAAA,EAAE,OAAO,aAAoB,CAAC;QAC1E,OAAO,CACL,oBAAC,aAAa,aAAC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAM,IAAI,CAAC,KAAK,EAAM,4BAA4B,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC;YAC1G,oBAAC,SAAS,IACR,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EACjB,WAAW,EAAE,KAAK,EAClB,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,EACjD,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,EAC7C,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EACvC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,gBACvB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAEnC,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CACvB,CACE,CACjB,CAAC;IACJ,CAAC;IA4EO,0BAAU,GAAlB;;QACU,IAAA,KAAyB,IAAI,CAAC,QAAQ,EAAE,KAApB,EAApB,IAAI,mBAAG,oBAAC,SAAS,OAAG,KAAA,CAAqB;QAEjD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,IAAM,SAAS,GAAG,IAAI,CAAC,KAAkB,CAAC;YAC1C,IAAM,KAAK,GAA6B;gBACtC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;gBAC9C,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;gBAChD,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;aAC/C,CAAC;YAEF,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;gBAC9B,IAAI,EAAE,MAAA,SAAS,CAAC,IAAI,mCAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxC,KAAK,EAAE,MAAA,SAAS,CAAC,KAAK,mCAAI,IAAI,CAAC,KAAK,CAAC,cAAc;aACvC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;IAxLa,yBAAmB,GAAG,OAAO,AAAV,CAAW;IAC9B,iBAAW,GAAG,OAAO,AAAV,CAAW;IAEtB,kBAAY,GAAiB;QACzC,MAAM,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS;QACvB,OAAO,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS;QACxB,SAAS,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,CAAC;QACnE,iBAAiB,EAAE,SAAS;KAC7B,AALyB,CAKxB;IATS,KAAK;QAHjB,qBAAqB;QACrB,QAAQ;QACR,QAAQ;OACI,KAAK,CA0LjB;IAAD,YAAC;CAAA,AA1LD,CAA2B,KAAK,CAAC,SAAS,GA0LzC;SA1LY,KAAK","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes, HTMLAttributes, JSX } from 'react';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes.js';\nimport type { IconProps } from '../../internal/icons2022/BaseIcon.js';\nimport type { PopupPositionsType } from '../../internal/Popup/index.js';\nimport type { PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu/index.js';\nimport { PopupMenu } from '../../internal/PopupMenu/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { isTestEnv } from '../../lib/currentEnvironment.js';\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport * as LayoutEvents from '../../lib/LayoutEvents.js';\nimport { isElement } from '../../lib/react-is.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isKonturIcon } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { getStyles } from './Kebab.styles.js';\nimport { KebabIcon } from './KebabIcon.js';\n\nexport interface KebabProps\n extends\n Pick<AriaAttributes, 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Размер кнопки. */\n size?: SizeProp;\n\n /** Список доступных позиций выпадающего меню относительно кнопки.\n * @default ['bottom left', 'bottom right', 'top left', 'top right'].\n */\n positions?: PopupPositionsType[];\n\n /** Максимальная высота меню. */\n menuMaxHeight?: number | string;\n\n /** Блокирует кнопку. */\n disabled?: boolean;\n\n /** Отключает анимацию выпадающего меню. */\n disableAnimations?: boolean;\n\n /** Заменяет иконку кебаба у кнопки. */\n icon?: React.ReactNode;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const KebabDataTids = {\n caption: 'Kebab__caption',\n} as const;\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'disableAnimations'>>;\n\n/**\n * Кебаб-меню содержит действия с объектом.\n */\n@withRenderEnvironment\n@rootNode\n@withSize\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n public static displayName = 'Kebab';\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state: KebabState = {\n focusedByTab: false,\n anchor: null,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined, this.globalObject);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: theme.kebabMargin,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const { positions, disableAnimations, onOpen, onClose } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props} {...getVisualStateDataAttributes({ disabled })}>\n <PopupMenu\n id={this.props.id}\n popupHasPin={false}\n preventIconsOffset={this.props.preventIconsOffset}\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={onOpen}\n onClose={onClose}\n popupMenuId={this.props.popupMenuId}\n aria-label={this.props['aria-label']}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled } = this.getProps();\n const size = this.size;\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n role=\"button\"\n data-tid={KebabDataTids.caption}\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={this.cx(\n this.styles.kebab(this.theme),\n size === 'small' && this.styles.kebabSmall(this.theme),\n size === 'medium' && this.styles.kebabMedium(this.theme),\n size === 'large' && this.styles.kebabLarge(this.theme),\n captionProps.opened && this.styles.opened(this.theme),\n disabled && this.styles.disabled(),\n this.state.focusedByTab && this.styles.focused(this.theme),\n )}\n aria-describedby={this.props['aria-describedby']}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n const { icon = <KebabIcon /> } = this.getProps();\n\n if (isElement(icon) && isKonturIcon(icon)) {\n const iconProps = icon.props as IconProps;\n const sizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.kebabIconSizeSmall),\n medium: parseInt(this.theme.kebabIconSizeMedium),\n large: parseInt(this.theme.kebabIconSizeLarge),\n };\n\n return React.cloneElement(icon, {\n size: iconProps.size ?? sizes[this.size],\n color: iconProps.color ?? this.theme.kebabIconColor,\n } as IconProps);\n }\n\n return icon;\n }\n}\n"]}
1
+ {"version":3,"file":"Kebab.js","sourceRoot":"","sources":["Kebab.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes, HTMLAttributes, JSX } from 'react';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes.js';\nimport type { IconProps } from '../../internal/icons2022/BaseIcon.js';\nimport type { PopupPositionsType } from '../../internal/Popup/index.js';\nimport type { PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu/index.js';\nimport { PopupMenu } from '../../internal/PopupMenu/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { isTestEnv } from '../../lib/currentEnvironment.js';\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport * as LayoutEvents from '../../lib/LayoutEvents.js';\nimport { isElement } from '../../lib/react-is.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isKonturIcon } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { getStyles } from './Kebab.styles.js';\nimport { KebabIcon } from './KebabIcon.js';\n\nexport interface KebabProps\n extends\n Pick<AriaAttributes, 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Размер кнопки. */\n size?: SizeProp;\n\n /** Список доступных позиций выпадающего меню относительно кнопки.\n * @default ['bottom left', 'bottom right', 'top left', 'top right'].\n */\n positions?: PopupPositionsType[];\n\n /** Максимальная высота меню. */\n menuMaxHeight?: number | string;\n\n /** Блокирует кнопку. */\n disabled?: boolean;\n\n /** Отключает анимацию выпадающего меню. */\n disableAnimations?: boolean;\n\n /** Заменяет иконку кебаба у кнопки. */\n icon?: React.ReactNode;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const KebabDataTids = {\n caption: 'Kebab__caption',\n} as const;\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'disableAnimations'>>;\n\n/**\n * Кебаб-меню содержит действия с объектом.\n */\n@withRenderEnvironment\n@rootNode\n@withSize\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n public static displayName = 'Kebab';\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state: KebabState = {\n focusedByTab: false,\n anchor: null,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined, this.globalObject);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: theme.kebabMargin,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const { positions, disableAnimations, onOpen, onClose } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props} {...getVisualStateDataAttributes({ disabled })}>\n <PopupMenu\n id={this.props.id}\n popupHasPin={false}\n preventIconsOffset={this.props.preventIconsOffset}\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={onOpen}\n onClose={onClose}\n popupMenuId={this.props.popupMenuId}\n aria-label={this.props['aria-label']}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled } = this.getProps();\n const size = this.size;\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n role=\"button\"\n data-tid={KebabDataTids.caption}\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={this.cx(\n this.styles.kebab(this.theme),\n size === 'small' && this.styles.kebabSmall(this.theme),\n size === 'medium' && this.styles.kebabMedium(this.theme),\n size === 'large' && this.styles.kebabLarge(this.theme),\n captionProps.opened && this.styles.opened(this.theme),\n disabled && this.styles.disabled(),\n this.state.focusedByTab && this.styles.focused(this.theme),\n )}\n aria-describedby={this.props['aria-describedby']}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n const { icon = <KebabIcon /> } = this.getProps();\n\n if (isElement(icon) && isKonturIcon(icon)) {\n const iconProps = icon.props as IconProps;\n const sizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.kebabIconSizeSmall),\n medium: parseInt(this.theme.kebabIconSizeMedium),\n large: parseInt(this.theme.kebabIconSizeLarge),\n };\n\n return React.cloneElement(icon, {\n size: iconProps.size ?? sizes[this.size],\n color: iconProps.color ?? this.theme.kebabIconColor,\n } as IconProps);\n }\n\n return icon;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Kebab.styles.js","sourceRoot":"","sources":["../../../components/Kebab/Kebab.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,KAAK,YAAC,CAAQ;YACZ,OAAO,GAAG,0gBAAA,sIAKE,EAAa,yDAEN,EAAmB,0IAKtB,EAAiB,4CAGf,EAAsB,sDAItB,EAAuB,kBAExC,KAhBW,CAAC,CAAC,WAAW,EAEN,CAAC,CAAC,iBAAiB,EAKtB,CAAC,CAAC,eAAe,EAGf,CAAC,CAAC,oBAAoB,EAItB,CAAC,CAAC,qBAAqB,EAEvC;QACJ,CAAC;QAED,UAAU,YAAC,CAAQ;YACjB,OAAO,GAAG,oHAAA,iBACC,EAAgB,mBACf,EAAgB,SAC3B,KAFU,CAAC,CAAC,cAAc,EACf,CAAC,CAAC,cAAc,EAC1B;QACJ,CAAC;QAED,WAAW,YAAC,CAAQ;YAClB,OAAO,GAAG,oHAAA,iBACC,EAAiB,mBAChB,EAAiB,SAC5B,KAFU,CAAC,CAAC,eAAe,EAChB,CAAC,CAAC,eAAe,EAC3B;QACJ,CAAC;QAED,UAAU,YAAC,CAAQ;YACjB,OAAO,GAAG,oHAAA,iBACC,EAAgB,mBACf,EAAgB,SAC3B,KAFU,CAAC,CAAC,cAAc,EACf,CAAC,CAAC,cAAc,EAC1B;QACJ,CAAC;QAED,OAAO,YAAC,CAAQ;YACd,OAAO,GAAG,+HAAA,sBACM,EAAsB,yBACpB,EAAkB,SACnC,KAFe,CAAC,CAAC,oBAAoB,EACpB,CAAC,CAAC,gBAAgB,EAClC;QACJ,CAAC;QAED,MAAM,YAAC,CAAQ;YACb,OAAO,GAAG,qKAAA,sBACM,EAAuB,0EAEtC,KAFe,CAAC,CAAC,qBAAqB,EAErC;QACJ,CAAC;QAED,QAAQ;YACN,OAAO,GAAG,0JAAA,uFAMT,KAAC;QACJ,CAAC;QAED,IAAI,YAAC,CAAQ;YACX,OAAO,GAAG,gIAAA,kDAES,EAAmB,SACrC,KADkB,CAAC,CAAC,iBAAiB,EACpC;QACJ,CAAC;KACF,CAAC;AA7E8D,CA6E9D,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n kebab(t: Theme) {\n return css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n border: ${t.kebabBorder};\n box-sizing: border-box;\n border-radius: ${t.kebabBorderRadius};\n user-select: none;\n cursor: pointer;\n outline: 0;\n transition: background 0.12s ease-out;\n background: ${t.kebabBackground};\n\n &:hover {\n background: ${t.kebabBackgroundHover};\n }\n\n &:active {\n background: ${t.kebabBackgroundActive};\n }\n `;\n },\n\n kebabSmall(t: Theme) {\n return css`\n width: ${t.kebabSizeSmall};\n height: ${t.kebabSizeSmall};\n `;\n },\n\n kebabMedium(t: Theme) {\n return css`\n width: ${t.kebabSizeMedium};\n height: ${t.kebabSizeMedium};\n `;\n },\n\n kebabLarge(t: Theme) {\n return css`\n width: ${t.kebabSizeLarge};\n height: ${t.kebabSizeLarge};\n `;\n },\n\n focused(t: Theme) {\n return css`\n background: ${t.kebabBackgroundHover};\n border-color: ${t.borderColorFocus};\n `;\n },\n\n opened(t: Theme) {\n return css`\n background: ${t.kebabBackgroundActive} !important; // override kebab:hover style\n cursor: default;\n `;\n },\n\n disabled() {\n return css`\n cursor: default;\n\n &:hover {\n background: none;\n }\n `;\n },\n\n menu(t: Theme) {\n return css`\n overflow: hidden;\n border-radius: ${t.popupBorderRadius};\n `;\n },\n}));\n"]}
1
+ {"version":3,"file":"Kebab.styles.js","sourceRoot":"","sources":["Kebab.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,KAAK,YAAC,CAAQ;YACZ,OAAO,GAAG,0gBAAA,sIAKE,EAAa,yDAEN,EAAmB,0IAKtB,EAAiB,4CAGf,EAAsB,sDAItB,EAAuB,kBAExC,KAhBW,CAAC,CAAC,WAAW,EAEN,CAAC,CAAC,iBAAiB,EAKtB,CAAC,CAAC,eAAe,EAGf,CAAC,CAAC,oBAAoB,EAItB,CAAC,CAAC,qBAAqB,EAEvC;QACJ,CAAC;QAED,UAAU,YAAC,CAAQ;YACjB,OAAO,GAAG,oHAAA,iBACC,EAAgB,mBACf,EAAgB,SAC3B,KAFU,CAAC,CAAC,cAAc,EACf,CAAC,CAAC,cAAc,EAC1B;QACJ,CAAC;QAED,WAAW,YAAC,CAAQ;YAClB,OAAO,GAAG,oHAAA,iBACC,EAAiB,mBAChB,EAAiB,SAC5B,KAFU,CAAC,CAAC,eAAe,EAChB,CAAC,CAAC,eAAe,EAC3B;QACJ,CAAC;QAED,UAAU,YAAC,CAAQ;YACjB,OAAO,GAAG,oHAAA,iBACC,EAAgB,mBACf,EAAgB,SAC3B,KAFU,CAAC,CAAC,cAAc,EACf,CAAC,CAAC,cAAc,EAC1B;QACJ,CAAC;QAED,OAAO,YAAC,CAAQ;YACd,OAAO,GAAG,+HAAA,sBACM,EAAsB,yBACpB,EAAkB,SACnC,KAFe,CAAC,CAAC,oBAAoB,EACpB,CAAC,CAAC,gBAAgB,EAClC;QACJ,CAAC;QAED,MAAM,YAAC,CAAQ;YACb,OAAO,GAAG,qKAAA,sBACM,EAAuB,0EAEtC,KAFe,CAAC,CAAC,qBAAqB,EAErC;QACJ,CAAC;QAED,QAAQ;YACN,OAAO,GAAG,0JAAA,uFAMT,KAAC;QACJ,CAAC;QAED,IAAI,YAAC,CAAQ;YACX,OAAO,GAAG,gIAAA,kDAES,EAAmB,SACrC,KADkB,CAAC,CAAC,iBAAiB,EACpC;QACJ,CAAC;KACF,CAAC;AA7E8D,CA6E9D,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n kebab(t: Theme) {\n return css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n border: ${t.kebabBorder};\n box-sizing: border-box;\n border-radius: ${t.kebabBorderRadius};\n user-select: none;\n cursor: pointer;\n outline: 0;\n transition: background 0.12s ease-out;\n background: ${t.kebabBackground};\n\n &:hover {\n background: ${t.kebabBackgroundHover};\n }\n\n &:active {\n background: ${t.kebabBackgroundActive};\n }\n `;\n },\n\n kebabSmall(t: Theme) {\n return css`\n width: ${t.kebabSizeSmall};\n height: ${t.kebabSizeSmall};\n `;\n },\n\n kebabMedium(t: Theme) {\n return css`\n width: ${t.kebabSizeMedium};\n height: ${t.kebabSizeMedium};\n `;\n },\n\n kebabLarge(t: Theme) {\n return css`\n width: ${t.kebabSizeLarge};\n height: ${t.kebabSizeLarge};\n `;\n },\n\n focused(t: Theme) {\n return css`\n background: ${t.kebabBackgroundHover};\n border-color: ${t.borderColorFocus};\n `;\n },\n\n opened(t: Theme) {\n return css`\n background: ${t.kebabBackgroundActive} !important; // override kebab:hover style\n cursor: default;\n `;\n },\n\n disabled() {\n return css`\n cursor: default;\n\n &:hover {\n background: none;\n }\n `;\n },\n\n menu(t: Theme) {\n return css`\n overflow: hidden;\n border-radius: ${t.popupBorderRadius};\n `;\n },\n}));\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"KebabIcon.js","sourceRoot":"","sources":["../../../components/Kebab/KebabIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8EAA8E,CAAC;AAC3H,OAAO,EAAE,6BAA6B,EAAE,MAAM,gFAAgF,CAAC;AAC/H,OAAO,EAAE,6BAA6B,EAAE,MAAM,gFAAgF,CAAC;AAE/H,MAAM,CAAC,IAAM,SAAS,GAAG,SAAS,CAChC;IACE,KAAK,EAAE,cAAM,OAAA,oBAAC,2BAA2B,OAAG,EAA/B,CAA+B;IAC5C,MAAM,EAAE,cAAM,OAAA,oBAAC,6BAA6B,OAAG,EAAjC,CAAiC;IAC/C,KAAK,EAAE,cAAM,OAAA,oBAAC,6BAA6B,OAAG,EAAjC,CAAiC;CAC/C,EACD,WAAW,CACZ,CAAC","sourcesContent":["import React from 'react';\n\nimport { iconSizer } from '../../internal/icons2022/iconSizer.js';\nimport { UiMenuDotsThreeVIcon16Light } from '../../internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.js';\nimport { UiMenuDotsThreeVIcon20Regular } from '../../internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.js';\nimport { UiMenuDotsThreeVIcon24Regular } from '../../internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.js';\n\nexport const KebabIcon = iconSizer(\n {\n small: () => <UiMenuDotsThreeVIcon16Light />,\n medium: () => <UiMenuDotsThreeVIcon20Regular />,\n large: () => <UiMenuDotsThreeVIcon24Regular />,\n },\n 'KebabIcon',\n);\n"]}
1
+ {"version":3,"file":"KebabIcon.js","sourceRoot":"","sources":["KebabIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8EAA8E,CAAC;AAC3H,OAAO,EAAE,6BAA6B,EAAE,MAAM,gFAAgF,CAAC;AAC/H,OAAO,EAAE,6BAA6B,EAAE,MAAM,gFAAgF,CAAC;AAE/H,MAAM,CAAC,IAAM,SAAS,GAAG,SAAS,CAChC;IACE,KAAK,EAAE,cAAM,OAAA,oBAAC,2BAA2B,OAAG,EAA/B,CAA+B;IAC5C,MAAM,EAAE,cAAM,OAAA,oBAAC,6BAA6B,OAAG,EAAjC,CAAiC;IAC/C,KAAK,EAAE,cAAM,OAAA,oBAAC,6BAA6B,OAAG,EAAjC,CAAiC;CAC/C,EACD,WAAW,CACZ,CAAC","sourcesContent":["import React from 'react';\n\nimport { iconSizer } from '../../internal/icons2022/iconSizer.js';\nimport { UiMenuDotsThreeVIcon16Light } from '../../internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.js';\nimport { UiMenuDotsThreeVIcon20Regular } from '../../internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.js';\nimport { UiMenuDotsThreeVIcon24Regular } from '../../internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.js';\n\nexport const KebabIcon = iconSizer(\n {\n small: () => <UiMenuDotsThreeVIcon16Light />,\n medium: () => <UiMenuDotsThreeVIcon20Regular />,\n large: () => <UiMenuDotsThreeVIcon24Regular />,\n },\n 'KebabIcon',\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../components/Kebab/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC","sourcesContent":["export * from './Kebab.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC","sourcesContent":["export * from './Kebab.js';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","sourceRoot":"","sources":["../../../components/Link/Link.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport React, { type JSX } from 'react';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes.js';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link.js';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component.js';\nimport { isExternalLink } from '../../lib/utils.js';\nimport { getStyles } from './Link.styles.js';\nimport { LinkIcon } from './LinkIcon.js';\n\nexport interface LinkInnerProps extends CommonProps {\n /** Ссылка меняет цвет на серый и становится недоступна для нажатия. */\n disabled?: boolean;\n\n /** Добавляет иконку слева от ссылки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от ссылки. */\n rightIcon?: React.ReactElement;\n\n /** Стиль ссылки. */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n\n /** @ignore */\n _button?: boolean;\n\n /** @ignore */\n _buttonOpened?: boolean;\n\n /** HTML-атрибут `tabindex`. */\n tabIndex?: number;\n\n /** Переводит ссылку в состояние загрузки. */\n loading?: boolean;\n\n /** Объект с переменными темы. */\n theme?: ThemeIn;\n\n /** Задает состояние фокуса.\n * @ignore */\n focused?: boolean;\n\n /** Переводит ссылку в состояние валидации \"Ошибка\". */\n error?: boolean;\n\n /** Переводит ссылку в состояние валидации \"Предупреждение\". */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * С помощью ссылки пользователь может перейти на другую страницу, раздел приложения или внешний URL.\n */\n@withRenderEnvironment\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href, this.globalObject) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={this.styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n const getUseStyles = () => {\n switch (use) {\n case 'default':\n return this.styles.default(this.theme);\n case 'danger':\n return this.styles.danger(this.theme);\n case 'success':\n return this.styles.success(this.theme);\n case 'grayed':\n return this.styles.grayed(this.theme);\n }\n };\n const getUseLineFocusStyles = () => {\n switch (use) {\n case 'default':\n return this.styles.lineFocus(this.theme);\n case 'danger':\n return this.styles.lineFocusDanger(this.theme);\n case 'success':\n return this.styles.lineFocusSuccess(this.theme);\n case 'grayed':\n return this.styles.lineFocusGrayed(this.theme);\n }\n };\n\n const rootProps = {\n ...rest,\n className: this.cx({\n [this.styles.root(this.theme)]: true,\n [this.styles.reserButton()]: Root === 'button',\n [this.styles.focus(this.theme)]: isFocused,\n [this.styles.disabled(this.theme)]: disabled || loading,\n [getUseStyles()]: true,\n [this.styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [this.styles.button(this.theme)]: !!_button,\n [this.styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [this.styles.warning(this.theme)]: warning,\n [this.styles.error(this.theme)]: error,\n [getUseLineFocusStyles()]: isFocused,\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n const buttonOnlyProps = Root === 'button' ? { disabled: nonInteractive } : {};\n\n return (\n <Root\n data-tid={LinkDataTids.root}\n {...rootProps}\n {...buttonOnlyProps}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"]}
1
+ {"version":3,"file":"Link.js","sourceRoot":"","sources":["Link.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport React, { type JSX } from 'react';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes.js';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link.js';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component.js';\nimport { isExternalLink } from '../../lib/utils.js';\nimport { getStyles } from './Link.styles.js';\nimport { LinkIcon } from './LinkIcon.js';\n\nexport interface LinkInnerProps extends CommonProps {\n /** Ссылка меняет цвет на серый и становится недоступна для нажатия. */\n disabled?: boolean;\n\n /** Добавляет иконку слева от ссылки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от ссылки. */\n rightIcon?: React.ReactElement;\n\n /** Стиль ссылки. */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n\n /** @ignore */\n _button?: boolean;\n\n /** @ignore */\n _buttonOpened?: boolean;\n\n /** HTML-атрибут `tabindex`. */\n tabIndex?: number;\n\n /** Переводит ссылку в состояние загрузки. */\n loading?: boolean;\n\n /** Объект с переменными темы. */\n theme?: ThemeIn;\n\n /** Задает состояние фокуса.\n * @ignore */\n focused?: boolean;\n\n /** Переводит ссылку в состояние валидации \"Ошибка\". */\n error?: boolean;\n\n /** Переводит ссылку в состояние валидации \"Предупреждение\". */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * С помощью ссылки пользователь может перейти на другую страницу, раздел приложения или внешний URL.\n */\n@withRenderEnvironment\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href, this.globalObject) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={this.styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n const getUseStyles = () => {\n switch (use) {\n case 'default':\n return this.styles.default(this.theme);\n case 'danger':\n return this.styles.danger(this.theme);\n case 'success':\n return this.styles.success(this.theme);\n case 'grayed':\n return this.styles.grayed(this.theme);\n }\n };\n const getUseLineFocusStyles = () => {\n switch (use) {\n case 'default':\n return this.styles.lineFocus(this.theme);\n case 'danger':\n return this.styles.lineFocusDanger(this.theme);\n case 'success':\n return this.styles.lineFocusSuccess(this.theme);\n case 'grayed':\n return this.styles.lineFocusGrayed(this.theme);\n }\n };\n\n const rootProps = {\n ...rest,\n className: this.cx({\n [this.styles.root(this.theme)]: true,\n [this.styles.reserButton()]: Root === 'button',\n [this.styles.focus(this.theme)]: isFocused,\n [this.styles.disabled(this.theme)]: disabled || loading,\n [getUseStyles()]: true,\n [this.styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [this.styles.button(this.theme)]: !!_button,\n [this.styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [this.styles.warning(this.theme)]: warning,\n [this.styles.error(this.theme)]: error,\n [getUseLineFocusStyles()]: isFocused,\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n const buttonOnlyProps = Root === 'button' ? { disabled: nonInteractive } : {};\n\n return (\n <Root\n data-tid={LinkDataTids.root}\n {...rootProps}\n {...buttonOnlyProps}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Link.mixins.js","sourceRoot":"","sources":["../../../components/Link/Link.mixins.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,iBAAiB,GAAG;IAC/B,OAAO,mDAGN,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,SAAiB,EAAE,UAAkB,EAAE,WAAmB;IAC3F,OAAO,uBACI,SAAS,8CAGP,UAAU,sDAIV,WAAW,iBAEvB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["export const linkDisabledMixin = (): string => {\n return `\n box-shadow: none;\n cursor: default;\n `;\n};\n\nexport const linkUseColorsMixin = (mainColor: string, hoverColor: string, activeColor: string): string => {\n return `\n color: ${mainColor};\n\n &:hover {\n color: ${hoverColor};\n }\n\n &:active {\n color: ${activeColor};\n }\n `;\n};\n"]}
1
+ {"version":3,"file":"Link.mixins.js","sourceRoot":"","sources":["Link.mixins.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,iBAAiB,GAAG;IAC/B,OAAO,mDAGN,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,SAAiB,EAAE,UAAkB,EAAE,WAAmB;IAC3F,OAAO,uBACI,SAAS,8CAGP,UAAU,sDAIV,WAAW,iBAEvB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["export const linkDisabledMixin = (): string => {\n return `\n box-shadow: none;\n cursor: default;\n `;\n};\n\nexport const linkUseColorsMixin = (mainColor: string, hoverColor: string, activeColor: string): string => {\n return `\n color: ${mainColor};\n\n &:hover {\n color: ${hoverColor};\n }\n\n &:active {\n color: ${activeColor};\n }\n `;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Link.styles.js","sourceRoot":"","sources":["../../../components/Link/Link.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { resetButton } from '../../lib/styles/Mixins.js';\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { linkDisabledMixin, linkUseColorsMixin } from './Link.mixins.js';\n\nconst line = ({ keyframes }: Emotion) => keyframes`\n 0% {\n text-decoration-color: inherit;\n }\n 100% {\n text-decoration-color: transparent;\n }\n`;\n\nconst oldLineText = function (t: Theme, emotion: Emotion) {\n const delay = parseFloat(t.linkTextUnderlineOpacity) - 1;\n return emotion.css`\n animation: ${line(emotion)} 1s linear !important; // override creevey\n animation-play-state: paused !important;\n animation-delay: ${delay}s !important;\n animation-fill-mode: forwards !important;\n `;\n};\n\nexport const getStyles = memoizeGetStyles((emotion: Emotion) => ({\n root(t: Theme) {\n return emotion.css`\n cursor: pointer;\n position: relative;\n\n border-radius: 1px;\n text-decoration: ${t.linkTextDecoration};\n text-decoration-style: ${t.linkTextDecorationStyle};\n text-underline-offset: ${t.linkTextUnderlineOffset};\n text-decoration-thickness: ${t.linkTextDecorationThickness};\n transition: text-decoration-color ${t.transitionDuration} ${t.transitionTimingFunction};\n @supports (text-decoration-color: ${t.linkTextDecorationColor}) {\n text-decoration-color: ${t.linkTextDecorationColor};\n &:hover {\n text-decoration-color: currentColor;\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n }\n }\n @supports not (text-decoration-color: ${t.linkTextDecorationColor}) {\n ${oldLineText(t, emotion)};\n &:hover {\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n animation: none !important;\n }\n }\n `;\n },\n lineFocus(t: Theme) {\n return emotion.css`\n color: ${t.linkHoverColor};\n `;\n },\n\n lineFocusSuccess(t: Theme) {\n return emotion.css`\n color: ${t.linkSuccessHoverColor} !important;\n `;\n },\n\n lineFocusDanger(t: Theme) {\n return emotion.css`\n color: ${t.linkDangerHoverColor} !important;\n `;\n },\n\n lineFocusGrayed(t: Theme) {\n return emotion.css`\n color: ${t.linkGrayedHoverColor} !important;\n `;\n },\n\n button(t: Theme) {\n return emotion.css`\n display: inline-block;\n line-height: ${t.linkButtonLineHeight};\n padding-left: ${t.linkButtonPaddingX};\n padding-right: ${t.linkButtonPaddingX};\n `;\n },\n\n buttonOpened(t: Theme) {\n return emotion.css`\n background: ${t.btnDefaultActiveBg};\n `;\n },\n\n arrow() {\n return emotion.css`\n border: 4px solid transparent;\n border-bottom-width: 0;\n border-top-color: #a0a0a0;\n display: inline-block;\n margin-bottom: 3px;\n margin-left: 3px;\n vertical-align: middle;\n `;\n },\n\n default(t: Theme) {\n return emotion.css`\n ${linkUseColorsMixin(t.linkColor, t.linkHoverColor, t.linkActiveColor)};\n `;\n },\n\n success(t: Theme) {\n return emotion.css`\n ${linkUseColorsMixin(t.linkSuccessColor, t.linkSuccessHoverColor, t.linkSuccessActiveColor)};\n `;\n },\n\n danger(t: Theme) {\n return emotion.css`\n ${linkUseColorsMixin(t.linkDangerColor, t.linkDangerHoverColor, t.linkDangerActiveColor)};\n `;\n },\n\n grayed(t: Theme) {\n return emotion.css`\n ${linkUseColorsMixin(t.linkGrayedColor, t.linkGrayedHoverColor, t.linkGrayedActiveColor)};\n `;\n },\n\n useGrayedFocus(t: Theme) {\n return emotion.css`\n color: ${t.linkDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return emotion.css`\n text-decoration: ${t.linkHoverTextDecoration};\n outline: ${t.linkFocusOutline};\n `;\n },\n\n disabled(t: Theme) {\n return emotion.css`\n ${linkDisabledMixin()};\n\n color: ${t.linkDisabledColor} !important; // override root color\n\n &:hover {\n color: ${t.linkDisabledColor};\n text-decoration-color: ${t.linkTextDecorationColor};\n }\n `;\n },\n\n icon() {\n return emotion.css`\n display: inline-block;\n `;\n },\n\n iconLeft(t: Theme) {\n return emotion.css`\n margin-right: ${t.linkIconMarginRight};\n `;\n },\n\n iconRight(t: Theme) {\n return emotion.css`\n margin-left: ${t.linkIconMarginLeft};\n `;\n },\n\n warning(t: Theme) {\n return emotion.css`\n background-color: ${t.btnWarningSecondary};\n box-shadow: 0 0 0 2px ${t.btnWarningSecondary};\n `;\n },\n\n error(t: Theme) {\n return emotion.css`\n background-color: ${t.btnErrorSecondary};\n box-shadow: 0 0 0 2px ${t.btnErrorSecondary};\n `;\n },\n\n reserButton() {\n return emotion.css`\n ${resetButton()};\n `;\n },\n}));\n"]}
1
+ {"version":3,"file":"Link.styles.js","sourceRoot":"","sources":["Link.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { resetButton } from '../../lib/styles/Mixins.js';\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { linkDisabledMixin, linkUseColorsMixin } from './Link.mixins.js';\n\nconst line = ({ keyframes }: Emotion) => keyframes`\n 0% {\n text-decoration-color: inherit;\n }\n 100% {\n text-decoration-color: transparent;\n }\n`;\n\nconst oldLineText = function (t: Theme, emotion: Emotion) {\n const delay = parseFloat(t.linkTextUnderlineOpacity) - 1;\n return emotion.css`\n animation: ${line(emotion)} 1s linear !important; // override creevey\n animation-play-state: paused !important;\n animation-delay: ${delay}s !important;\n animation-fill-mode: forwards !important;\n `;\n};\n\nexport const getStyles = memoizeGetStyles((emotion: Emotion) => ({\n root(t: Theme) {\n return emotion.css`\n cursor: pointer;\n position: relative;\n\n border-radius: 1px;\n text-decoration: ${t.linkTextDecoration};\n text-decoration-style: ${t.linkTextDecorationStyle};\n text-underline-offset: ${t.linkTextUnderlineOffset};\n text-decoration-thickness: ${t.linkTextDecorationThickness};\n transition: text-decoration-color ${t.transitionDuration} ${t.transitionTimingFunction};\n @supports (text-decoration-color: ${t.linkTextDecorationColor}) {\n text-decoration-color: ${t.linkTextDecorationColor};\n &:hover {\n text-decoration-color: currentColor;\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n }\n }\n @supports not (text-decoration-color: ${t.linkTextDecorationColor}) {\n ${oldLineText(t, emotion)};\n &:hover {\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n animation: none !important;\n }\n }\n `;\n },\n lineFocus(t: Theme) {\n return emotion.css`\n color: ${t.linkHoverColor};\n `;\n },\n\n lineFocusSuccess(t: Theme) {\n return emotion.css`\n color: ${t.linkSuccessHoverColor} !important;\n `;\n },\n\n lineFocusDanger(t: Theme) {\n return emotion.css`\n color: ${t.linkDangerHoverColor} !important;\n `;\n },\n\n lineFocusGrayed(t: Theme) {\n return emotion.css`\n color: ${t.linkGrayedHoverColor} !important;\n `;\n },\n\n button(t: Theme) {\n return emotion.css`\n display: inline-block;\n line-height: ${t.linkButtonLineHeight};\n padding-left: ${t.linkButtonPaddingX};\n padding-right: ${t.linkButtonPaddingX};\n `;\n },\n\n buttonOpened(t: Theme) {\n return emotion.css`\n background: ${t.btnDefaultActiveBg};\n `;\n },\n\n arrow() {\n return emotion.css`\n border: 4px solid transparent;\n border-bottom-width: 0;\n border-top-color: #a0a0a0;\n display: inline-block;\n margin-bottom: 3px;\n margin-left: 3px;\n vertical-align: middle;\n `;\n },\n\n default(t: Theme) {\n return emotion.css`\n ${linkUseColorsMixin(t.linkColor, t.linkHoverColor, t.linkActiveColor)};\n `;\n },\n\n success(t: Theme) {\n return emotion.css`\n ${linkUseColorsMixin(t.linkSuccessColor, t.linkSuccessHoverColor, t.linkSuccessActiveColor)};\n `;\n },\n\n danger(t: Theme) {\n return emotion.css`\n ${linkUseColorsMixin(t.linkDangerColor, t.linkDangerHoverColor, t.linkDangerActiveColor)};\n `;\n },\n\n grayed(t: Theme) {\n return emotion.css`\n ${linkUseColorsMixin(t.linkGrayedColor, t.linkGrayedHoverColor, t.linkGrayedActiveColor)};\n `;\n },\n\n useGrayedFocus(t: Theme) {\n return emotion.css`\n color: ${t.linkDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return emotion.css`\n text-decoration: ${t.linkHoverTextDecoration};\n outline: ${t.linkFocusOutline};\n `;\n },\n\n disabled(t: Theme) {\n return emotion.css`\n ${linkDisabledMixin()};\n\n color: ${t.linkDisabledColor} !important; // override root color\n\n &:hover {\n color: ${t.linkDisabledColor};\n text-decoration-color: ${t.linkTextDecorationColor};\n }\n `;\n },\n\n icon() {\n return emotion.css`\n display: inline-block;\n `;\n },\n\n iconLeft(t: Theme) {\n return emotion.css`\n margin-right: ${t.linkIconMarginRight};\n `;\n },\n\n iconRight(t: Theme) {\n return emotion.css`\n margin-left: ${t.linkIconMarginLeft};\n `;\n },\n\n warning(t: Theme) {\n return emotion.css`\n background-color: ${t.btnWarningSecondary};\n box-shadow: 0 0 0 2px ${t.btnWarningSecondary};\n `;\n },\n\n error(t: Theme) {\n return emotion.css`\n background-color: ${t.btnErrorSecondary};\n box-shadow: 0 0 0 2px ${t.btnErrorSecondary};\n `;\n },\n\n reserButton() {\n return emotion.css`\n ${resetButton()};\n `;\n },\n}));\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkIcon.js","sourceRoot":"","sources":["../../../components/Link/LinkIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAO7C,MAAM,CAAC,IAAM,QAAQ,GAAG,UAAC,EAAwD;QAAtD,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,YAAY,kBAAA,EAAE,QAAQ,cAAA;IAC9D,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,CACL,8BACE,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,IAAI,EAAE,EACb,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC7C,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAChD,IAEA,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAC,OAAO,IAAC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAC,MAAM,SAAG,CAAC,CAAC,CAAC,IAAI,CACtE,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Spinner } from '../Spinner/index.js';\nimport type { LinkProps } from './Link.js';\nimport { getStyles } from './Link.styles.js';\n\nexport interface LinkIconProps extends Pick<LinkProps, 'icon' | 'loading'> {\n position?: 'left' | 'right';\n hasBothIcons?: boolean;\n}\n\nexport const LinkIcon = ({ icon, loading, hasBothIcons, position }: LinkIconProps): React.JSX.Element => {\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n return (\n <span\n className={cx(\n styles.icon(),\n position === 'left' && styles.iconLeft(theme),\n position === 'right' && styles.iconRight(theme),\n )}\n >\n {loading && !hasBothIcons ? <Spinner caption={null} dimmed inline /> : icon}\n </span>\n );\n};\n"]}
1
+ {"version":3,"file":"LinkIcon.js","sourceRoot":"","sources":["LinkIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAO7C,MAAM,CAAC,IAAM,QAAQ,GAAG,UAAC,EAAwD;QAAtD,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,YAAY,kBAAA,EAAE,QAAQ,cAAA;IAC9D,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,CACL,8BACE,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,IAAI,EAAE,EACb,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC7C,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAChD,IAEA,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAC,OAAO,IAAC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAC,MAAM,SAAG,CAAC,CAAC,CAAC,IAAI,CACtE,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Spinner } from '../Spinner/index.js';\nimport type { LinkProps } from './Link.js';\nimport { getStyles } from './Link.styles.js';\n\nexport interface LinkIconProps extends Pick<LinkProps, 'icon' | 'loading'> {\n position?: 'left' | 'right';\n hasBothIcons?: boolean;\n}\n\nexport const LinkIcon = ({ icon, loading, hasBothIcons, position }: LinkIconProps): React.JSX.Element => {\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n return (\n <span\n className={cx(\n styles.icon(),\n position === 'left' && styles.iconLeft(theme),\n position === 'right' && styles.iconRight(theme),\n )}\n >\n {loading && !hasBothIcons ? <Spinner caption={null} dimmed inline /> : icon}\n </span>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../components/Link/index.tsx"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC","sourcesContent":["export * from './Link.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC","sourcesContent":["export * from './Link.js';\n"]}
@@ -1,9 +1,12 @@
1
1
  import React from 'react';
2
2
  import type { CommonProps } from '../../internal/CommonWrapper/index.js';
3
3
  import type { TGetRootNode } from '../../lib/rootNode/index.js';
4
+ import type { SizeProp } from '../../lib/types/props.js';
4
5
  import type { AnyObject } from '../../lib/utils.js';
5
6
  import type { SpinnerProps } from '../Spinner/index.js';
6
7
  declare const types: readonly ["mini", "normal", "big"];
8
+ /** @deprecated Начиная с версии `6.1`, тип и проп устарели в пользу `SizeContext`. Они будут удалены в `7.0`.
9
+ * @see {@link SizeProp} */
7
10
  export type LoaderType = (typeof types)[number];
8
11
  export interface LoaderProps extends CommonProps {
9
12
  /** @ignore */
@@ -12,13 +15,16 @@ export interface LoaderProps extends CommonProps {
12
15
  * @default false */
13
16
  active?: boolean;
14
17
  /** Подпись под спиннером.
15
- * @default ""
16
- */
18
+ * @default "" */
17
19
  caption?: SpinnerProps['caption'];
18
20
  /** Задает компонент, заменяющий спиннер. */
19
21
  component?: React.ReactNode;
20
22
  /** Размер спиннера и текста.
21
- * @default normal. */
23
+ * @default small */
24
+ size?: SizeProp;
25
+ /** Размер спиннера и текста.
26
+ * @deprecated Начиная с версии `6.1`, тип и проп устарели в пользу нового `SizeContext`. Они будут удалены в `7.0`.
27
+ * @see {@link size} */
22
28
  type?: LoaderType;
23
29
  /** Время в миллисекундах для показа вуали без спиннера.
24
30
  * @default 300 */
@@ -38,7 +44,7 @@ export declare const LoaderDataTids: {
38
44
  readonly veil: "Loader__Veil";
39
45
  readonly spinner: "Loader__Spinner";
40
46
  };
41
- type DefaultProps = Required<Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>>;
47
+ type DefaultProps = Required<Pick<LoaderProps, 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>>;
42
48
  /**
43
49
  * С помощью лоадера можно отобразить процесс выполнения задачи.
44
50
  * Лоадер принимает в качестве дочернего элемента другой компонент или контент, который будет показан на экране.
@@ -54,6 +60,7 @@ export declare class Loader extends React.Component<LoaderProps, LoaderState> {
54
60
  private cx;
55
61
  private styles;
56
62
  private theme;
63
+ private size;
57
64
  getRootNode: TGetRootNode;
58
65
  private setRootNode;
59
66
  private spinnerContainerNode;
@@ -77,5 +84,6 @@ export declare class Loader extends React.Component<LoaderProps, LoaderState> {
77
84
  private enableChildrenFocus;
78
85
  private makeObservable;
79
86
  private makeUnobservable;
87
+ private typeToSize;
80
88
  }
81
89
  export {};
@@ -42,6 +42,7 @@ import { isBrowser } from '../../lib/globalObject.js';
42
42
  import * as LayoutEvents from '../../lib/LayoutEvents.js';
43
43
  import { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';
44
44
  import { rootNode } from '../../lib/rootNode/index.js';
45
+ import { withSize } from '../../lib/size/SizeDecorator.js';
45
46
  import { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration.js';
46
47
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
47
48
  import { Spinner } from '../Spinner/index.js';
@@ -162,6 +163,16 @@ var Loader = /** @class */ (function (_super) {
162
163
  (_a = _this.childrenObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
163
164
  _this.childrenObserver = null;
164
165
  };
166
+ _this.typeToSize = function (type) {
167
+ switch (type) {
168
+ case 'mini':
169
+ return 'small';
170
+ case 'normal':
171
+ return 'medium';
172
+ case 'big':
173
+ return 'large';
174
+ }
175
+ };
165
176
  _this.spinnerContainerNode = null;
166
177
  _this.childrenContainerNode = null;
167
178
  _this.childrenObserver = null;
@@ -246,17 +257,17 @@ var Loader = /** @class */ (function (_super) {
246
257
  };
247
258
  Loader.prototype.renderMain = function () {
248
259
  var _a;
249
- var _b = this.props, caption = _b.caption, component = _b.component;
250
- var type = this.getProps().type;
260
+ var _b = this.props, caption = _b.caption, component = _b.component, size = _b.size, type = _b.type;
251
261
  var isLoaderActive = this.state.isLoaderActive;
262
+ var parsedSize = size || !type ? this.size : this.typeToSize(type);
252
263
  return (React.createElement(CommonWrapper, __assign({ rootNodeRef: this.setRootNode }, this.props),
253
264
  React.createElement("div", { className: this.styles.loader(), "data-tid": this.props['data-tid'] || (isLoaderActive ? LoaderDataTids.veil : LoaderDataTids.idle) },
254
265
  React.createElement(ZIndex, { applyZIndex: isLoaderActive, coverChildren: isLoaderActive, style: { height: '100%' }, wrapperRef: this.childrenRef }, this.props.children),
255
266
  isLoaderActive && (React.createElement(ZIndex, { wrapperRef: this.spinnerRef, className: this.cx((_a = {},
256
267
  _a[this.styles.active(this.theme)] = isLoaderActive,
257
- _a)) }, this.state.isSpinnerVisible && this.renderSpinner(type, caption, component))))));
268
+ _a)) }, this.state.isSpinnerVisible && this.renderSpinner(parsedSize, caption, component))))));
258
269
  };
259
- Loader.prototype.renderSpinner = function (type, caption, component) {
270
+ Loader.prototype.renderSpinner = function (size, caption, component) {
260
271
  var _a;
261
272
  var _this = this;
262
273
  return (React.createElement("span", { "data-tid": LoaderDataTids.spinner, className: this.cx(this.styles.spinnerContainer(), (_a = {},
@@ -264,20 +275,20 @@ var Loader = /** @class */ (function (_super) {
264
275
  _a)), style: this.state.spinnerStyle },
265
276
  React.createElement("div", { className: this.styles.spinnerComponentWrapper(), ref: function (element) {
266
277
  _this.spinnerNode = element;
267
- } }, component !== undefined ? component : React.createElement(Spinner, { type: type, caption: caption }))));
278
+ } }, component !== undefined ? component : React.createElement(Spinner, { size: size, caption: caption }))));
268
279
  };
269
280
  var Loader_1;
270
281
  Loader.__KONTUR_REACT_UI__ = 'Loader';
271
282
  Loader.displayName = 'Loader';
272
283
  Loader.defaultProps = {
273
- type: 'normal',
274
284
  active: false,
275
285
  delayBeforeSpinnerShow: isTestEnv ? 0 : 300,
276
286
  minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,
277
287
  };
278
288
  Loader = Loader_1 = __decorate([
279
289
  withRenderEnvironment,
280
- rootNode
290
+ rootNode,
291
+ withSize
281
292
  ], Loader);
282
293
  return Loader;
283
294
  }(React.Component));
@@ -1 +1 @@
1
- {"version":3,"file":"Loader.js","sourceRoot":"","sources":["../../../components/Loader/Loader.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport debounce from 'lodash.debounce';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { isTestEnv } from '../../lib/currentEnvironment.js';\nimport { getDOMRect } from '../../lib/dom/getDOMRect.js';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { isBrowser } from '../../lib/globalObject.js';\nimport * as LayoutEvents from '../../lib/LayoutEvents.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { AnyObject } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { Spinner } from '../Spinner/index.js';\nimport type { SpinnerProps } from '../Spinner/index.js';\nimport { getStyles } from './Loader.styles.js';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\nexport type LoaderType = (typeof types)[number];\n\nexport interface LoaderProps extends CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Показывает лоадер.\n * @default false */\n active?: boolean;\n\n /** Подпись под спиннером.\n * @default \"\"\n */\n caption?: SpinnerProps['caption'];\n\n /** Задает компонент, заменяющий спиннер. */\n component?: React.ReactNode;\n\n /** Размер спиннера и текста.\n * @default normal. */\n type?: LoaderType;\n\n /** Время в миллисекундах для показа вуали без спиннера.\n * @default 300 */\n delayBeforeSpinnerShow?: number;\n\n /** Минимальное время в миллисекундах для показа спиннера.\n * @default 1000. */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n idle: 'Loader__Idle',\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * С помощью лоадера можно отобразить процесс выполнения задачи.\n * Лоадер принимает в качестве дочернего элемента другой компонент или контент, который будет показан на экране.\n * Когда происходит загрузка, поверх этого компонента или контента будет отображаться [Спиннер](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-spinner--docs).\n */\n@withRenderEnvironment\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n public static displayName = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask!: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n }\n\n public componentDidMount() {\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10), this.globalObject);\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n className={this.styles.loader()}\n data-tid={this.props['data-tid'] || (isLoaderActive ? LoaderDataTids.veil : LoaderDataTids.idle)}\n >\n <ZIndex\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n className={this.cx({\n [this.styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: LoaderType, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={this.cx(this.styles.spinnerContainer(), {\n [this.styles.spinnerContainerSticky()]: this.state.isStickySpinner,\n })}\n style={this.state.spinnerStyle}\n >\n <div\n className={this.styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode || !isBrowser(this.globalObject)) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = this.globalObject.innerHeight;\n const windowWidth = this.globalObject.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n\n this.globalObject.document?.querySelectorAll('[origin-tabindex]').forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target || !this.globalObject.MutationObserver) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new this.globalObject.MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"]}
1
+ {"version":3,"file":"Loader.js","sourceRoot":"","sources":["Loader.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport debounce from 'lodash.debounce';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { isTestEnv } from '../../lib/currentEnvironment.js';\nimport { getDOMRect } from '../../lib/dom/getDOMRect.js';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { isBrowser } from '../../lib/globalObject.js';\nimport * as LayoutEvents from '../../lib/LayoutEvents.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { AnyObject } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { Spinner } from '../Spinner/index.js';\nimport type { SpinnerProps } from '../Spinner/index.js';\nimport { getStyles } from './Loader.styles.js';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\n/** @deprecated Начиная с версии `6.1`, тип и проп устарели в пользу `SizeContext`. Они будут удалены в `7.0`.\n * @see {@link SizeProp} */\nexport type LoaderType = (typeof types)[number];\n\nexport interface LoaderProps extends CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Показывает лоадер.\n * @default false */\n active?: boolean;\n\n /** Подпись под спиннером.\n * @default \"\" */\n caption?: SpinnerProps['caption'];\n\n /** Задает компонент, заменяющий спиннер. */\n component?: React.ReactNode;\n\n /** Размер спиннера и текста.\n * @default small */\n size?: SizeProp;\n\n /** Размер спиннера и текста.\n * @deprecated Начиная с версии `6.1`, тип и проп устарели в пользу нового `SizeContext`. Они будут удалены в `7.0`.\n * @see {@link size} */\n type?: LoaderType;\n\n /** Время в миллисекундах для показа вуали без спиннера.\n * @default 300 */\n delayBeforeSpinnerShow?: number;\n\n /** Минимальное время в миллисекундах для показа спиннера.\n * @default 1000. */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n idle: 'Loader__Idle',\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<LoaderProps, 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>>;\n\n/**\n * С помощью лоадера можно отобразить процесс выполнения задачи.\n * Лоадер принимает в качестве дочернего элемента другой компонент или контент, который будет показан на экране.\n * Когда происходит загрузка, поверх этого компонента или контента будет отображаться [Спиннер](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-spinner--docs).\n */\n@withRenderEnvironment\n@rootNode\n@withSize\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n public static displayName = 'Loader';\n\n public static defaultProps: DefaultProps = {\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask!: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n }\n\n public componentDidMount() {\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10), this.globalObject);\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption, component, size, type } = this.props;\n const { isLoaderActive } = this.state;\n\n const parsedSize = size || !type ? this.size : this.typeToSize(type);\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n className={this.styles.loader()}\n data-tid={this.props['data-tid'] || (isLoaderActive ? LoaderDataTids.veil : LoaderDataTids.idle)}\n >\n <ZIndex\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n className={this.cx({\n [this.styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(parsedSize, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(size?: SizeProp, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={this.cx(this.styles.spinnerContainer(), {\n [this.styles.spinnerContainerSticky()]: this.state.isStickySpinner,\n })}\n style={this.state.spinnerStyle}\n >\n <div\n className={this.styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner size={size} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode || !isBrowser(this.globalObject)) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = this.globalObject.innerHeight;\n const windowWidth = this.globalObject.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n\n this.globalObject.document?.querySelectorAll('[origin-tabindex]').forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target || !this.globalObject.MutationObserver) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new this.globalObject.MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n\n private typeToSize = (type: LoaderType) => {\n switch (type) {\n case 'mini':\n return 'small';\n case 'normal':\n return 'medium';\n case 'big':\n return 'large';\n }\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Loader.styles.js","sourceRoot":"","sources":["../../../components/Loader/Loader.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,MAAM,YAAC,CAAQ;YACb,OAAO,GAAG,uZAAA,yBACS,EAAoB,0QAcxB,EAAe,yBACZ,EAAU,kBAE3B,KAjBkB,CAAC,CAAC,kBAAkB,EAcxB,CAAC,CAAC,aAAa,EACZ,CAAC,CAAC,QAAQ,EAE1B;QACJ,CAAC;QAED,MAAM;YACJ,OAAO,GAAG,gNAAA,6IAMT,KAAC;QACJ,CAAC;QAED,gBAAgB;YACd,OAAO,GAAG,yZAAA,sVAkBT,KAAC;QACJ,CAAC;QAED,sBAAsB;YACpB,OAAO,GAAG,mGAAA,gCAET,KAAC;QACJ,CAAC;QAED,uBAAuB;YACrB,OAAO,GAAG,yGAAA,sCAET,KAAC;QACJ,CAAC;KACF,CAAC;AAlE8D,CAkE9D,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n active(t: Theme) {\n return css`\n border-radius: ${t.loaderBorderRadius};\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n\n &:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: ${t.loaderOpacity};\n background: ${t.loaderBg};\n }\n `;\n },\n\n loader() {\n return css`\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n width: 100%;\n z-index: inherit;\n `;\n },\n\n spinnerContainer() {\n return css`\n display: block;\n margin: auto;\n text-align: center;\n\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n\n &::before {\n content: ' ';\n display: inline-block;\n height: 100%;\n min-height: 100%;\n vertical-align: middle;\n }\n `;\n },\n\n spinnerContainerSticky() {\n return css`\n position: fixed;\n `;\n },\n\n spinnerComponentWrapper() {\n return css`\n display: inline-block;\n `;\n },\n}));\n"]}
1
+ {"version":3,"file":"Loader.styles.js","sourceRoot":"","sources":["Loader.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,MAAM,YAAC,CAAQ;YACb,OAAO,GAAG,uZAAA,yBACS,EAAoB,0QAcxB,EAAe,yBACZ,EAAU,kBAE3B,KAjBkB,CAAC,CAAC,kBAAkB,EAcxB,CAAC,CAAC,aAAa,EACZ,CAAC,CAAC,QAAQ,EAE1B;QACJ,CAAC;QAED,MAAM;YACJ,OAAO,GAAG,gNAAA,6IAMT,KAAC;QACJ,CAAC;QAED,gBAAgB;YACd,OAAO,GAAG,yZAAA,sVAkBT,KAAC;QACJ,CAAC;QAED,sBAAsB;YACpB,OAAO,GAAG,mGAAA,gCAET,KAAC;QACJ,CAAC;QAED,uBAAuB;YACrB,OAAO,GAAG,yGAAA,sCAET,KAAC;QACJ,CAAC;KACF,CAAC;AAlE8D,CAkE9D,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n active(t: Theme) {\n return css`\n border-radius: ${t.loaderBorderRadius};\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n\n &:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: ${t.loaderOpacity};\n background: ${t.loaderBg};\n }\n `;\n },\n\n loader() {\n return css`\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n width: 100%;\n z-index: inherit;\n `;\n },\n\n spinnerContainer() {\n return css`\n display: block;\n margin: auto;\n text-align: center;\n\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n\n &::before {\n content: ' ';\n display: inline-block;\n height: 100%;\n min-height: 100%;\n vertical-align: middle;\n }\n `;\n },\n\n spinnerContainerSticky() {\n return css`\n position: fixed;\n `;\n },\n\n spinnerComponentWrapper() {\n return css`\n display: inline-block;\n `;\n },\n}));\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../components/Loader/index.tsx"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC","sourcesContent":["export * from './Loader.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC","sourcesContent":["export * from './Loader.js';\n"]}