@skbkontur/react-ui 6.4.6 → 6.4.7-9ac75.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 (908) hide show
  1. package/README.md +42 -0
  2. package/components/Autocomplete/Autocomplete.css.d.ts +6 -0
  3. package/components/Autocomplete/Autocomplete.css.js +4 -0
  4. package/components/Autocomplete/Autocomplete.css.js.map +1 -0
  5. package/components/Autocomplete/Autocomplete.d.ts +0 -3
  6. package/components/Autocomplete/Autocomplete.js +4 -6
  7. package/components/Autocomplete/Autocomplete.js.map +1 -1
  8. package/components/Autocomplete/getAutocompleteTheme.d.ts +1 -2
  9. package/components/Autocomplete/getAutocompleteTheme.js +3 -2
  10. package/components/Autocomplete/getAutocompleteTheme.js.map +1 -1
  11. package/components/Button/Button.classes.js +1 -1
  12. package/components/Button/Button.classes.js.map +1 -1
  13. package/components/Button/Button.css.d.ts +166 -0
  14. package/components/Button/Button.css.js +77 -0
  15. package/components/Button/Button.css.js.map +1 -0
  16. package/components/Button/Button.d.ts +0 -4
  17. package/components/Button/Button.js +73 -74
  18. package/components/Button/Button.js.map +1 -1
  19. package/components/Button/ButtonArrow.d.ts +1 -4
  20. package/components/Button/ButtonArrow.js +10 -14
  21. package/components/Button/ButtonArrow.js.map +1 -1
  22. package/components/Button/ButtonIcon.css.d.ts +28 -0
  23. package/components/Button/ButtonIcon.css.js +15 -0
  24. package/components/Button/ButtonIcon.css.js.map +1 -0
  25. package/components/Button/ButtonIcon.js +9 -21
  26. package/components/Button/ButtonIcon.js.map +1 -1
  27. package/components/Button/LoadingButtonIcon.js +2 -4
  28. package/components/Button/LoadingButtonIcon.js.map +1 -1
  29. package/components/Button/getInnerLinkTheme.d.ts +1 -2
  30. package/components/Button/getInnerLinkTheme.js +3 -2
  31. package/components/Button/getInnerLinkTheme.js.map +1 -1
  32. package/components/Calendar/Calendar.css.d.ts +8 -0
  33. package/components/Calendar/Calendar.css.js +5 -0
  34. package/components/Calendar/Calendar.css.js.map +1 -0
  35. package/components/Calendar/Calendar.d.ts +0 -3
  36. package/components/Calendar/Calendar.js +5 -5
  37. package/components/Calendar/Calendar.js.map +1 -1
  38. package/components/Calendar/CalendarDay.js +7 -9
  39. package/components/Calendar/CalendarDay.js.map +1 -1
  40. package/components/Calendar/DayCellView.css.d.ts +14 -0
  41. package/components/Calendar/DayCellView.css.js +8 -0
  42. package/components/Calendar/DayCellView.css.js.map +1 -0
  43. package/components/Calendar/DayCellView.js +2 -6
  44. package/components/Calendar/DayCellView.js.map +1 -1
  45. package/components/Calendar/Month.js +5 -25
  46. package/components/Calendar/Month.js.map +1 -1
  47. package/components/Calendar/MonthView.css.d.ts +20 -0
  48. package/components/Calendar/MonthView.css.js +11 -0
  49. package/components/Calendar/MonthView.css.js.map +1 -0
  50. package/components/Calendar/MonthView.js +8 -10
  51. package/components/Calendar/MonthView.js.map +1 -1
  52. package/components/Center/Center.css.d.ts +12 -0
  53. package/components/Center/Center.css.js +7 -0
  54. package/components/Center/Center.css.js.map +1 -0
  55. package/components/Center/Center.d.ts +0 -3
  56. package/components/Center/Center.js +8 -10
  57. package/components/Center/Center.js.map +1 -1
  58. package/components/Checkbox/Checkbox.css.d.ts +62 -0
  59. package/components/Checkbox/Checkbox.css.js +32 -0
  60. package/components/Checkbox/Checkbox.css.js.map +1 -0
  61. package/components/Checkbox/Checkbox.d.ts +0 -3
  62. package/components/Checkbox/Checkbox.js +33 -33
  63. package/components/Checkbox/Checkbox.js.map +1 -1
  64. package/components/Checkbox/Checkbox.mixins.d.ts +19 -4
  65. package/components/Checkbox/Checkbox.mixins.js +16 -15
  66. package/components/Checkbox/Checkbox.mixins.js.map +1 -1
  67. package/components/DateInput/DateFragmentsView.css.d.ts +10 -0
  68. package/components/DateInput/DateFragmentsView.css.js +6 -0
  69. package/components/DateInput/DateFragmentsView.css.js.map +1 -0
  70. package/components/DateInput/DateFragmentsView.d.ts +0 -5
  71. package/components/DateInput/DateFragmentsView.js +9 -17
  72. package/components/DateInput/DateFragmentsView.js.map +1 -1
  73. package/components/DateInput/DateInput.css.d.ts +16 -0
  74. package/components/DateInput/DateInput.css.js +9 -0
  75. package/components/DateInput/DateInput.css.js.map +1 -0
  76. package/components/DateInput/DateInput.d.ts +0 -5
  77. package/components/DateInput/DateInput.js +9 -18
  78. package/components/DateInput/DateInput.js.map +1 -1
  79. package/components/DatePicker/DatePicker.css.d.ts +6 -0
  80. package/components/DatePicker/DatePicker.css.js +4 -0
  81. package/components/DatePicker/DatePicker.css.js.map +1 -0
  82. package/components/DatePicker/DatePicker.d.ts +0 -2
  83. package/components/DatePicker/DatePicker.js +8 -7
  84. package/components/DatePicker/DatePicker.js.map +1 -1
  85. package/components/DatePicker/MobilePicker.css.d.ts +4 -0
  86. package/components/DatePicker/MobilePicker.css.js +3 -0
  87. package/components/DatePicker/MobilePicker.css.js.map +1 -0
  88. package/components/DatePicker/MobilePicker.js +2 -4
  89. package/components/DatePicker/MobilePicker.js.map +1 -1
  90. package/components/DatePicker/getMobilePickerTheme.d.ts +1 -2
  91. package/components/DatePicker/getMobilePickerTheme.js +3 -2
  92. package/components/DatePicker/getMobilePickerTheme.js.map +1 -1
  93. package/components/DateRangePicker/DateRangePicker.css.d.ts +34 -0
  94. package/components/DateRangePicker/DateRangePicker.css.js +18 -0
  95. package/components/DateRangePicker/DateRangePicker.css.js.map +1 -0
  96. package/components/DateRangePicker/DateRangePicker.d.ts +12 -12
  97. package/components/DateRangePicker/DateRangePicker.js +40 -38
  98. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  99. package/components/DateRangePicker/DateRangePickerTheme.d.ts +2 -3
  100. package/components/DateRangePicker/DateRangePickerTheme.js +5 -4
  101. package/components/DateRangePicker/DateRangePickerTheme.js.map +1 -1
  102. package/components/Dropdown/getDropdownTheme.d.ts +1 -2
  103. package/components/Dropdown/getDropdownTheme.js +3 -2
  104. package/components/Dropdown/getDropdownTheme.js.map +1 -1
  105. package/components/DropdownMenu/getDropdownMenuTheme.d.ts +1 -2
  106. package/components/DropdownMenu/getDropdownMenuTheme.js +3 -2
  107. package/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
  108. package/components/FileUploader/FileUploader.css.d.ts +133 -0
  109. package/components/FileUploader/FileUploader.css.js +65 -0
  110. package/components/FileUploader/FileUploader.css.js.map +1 -0
  111. package/components/FileUploader/FileUploader.js +43 -46
  112. package/components/FileUploader/FileUploader.js.map +1 -1
  113. package/components/FileUploader/FileUploader.mixins.d.ts +6 -1
  114. package/components/FileUploader/FileUploader.mixins.js +6 -1
  115. package/components/FileUploader/FileUploader.mixins.js.map +1 -1
  116. package/components/FileUploader/FileUploaderFile.css.d.ts +111 -0
  117. package/components/FileUploader/FileUploaderFile.css.js +56 -0
  118. package/components/FileUploader/FileUploaderFile.css.js.map +1 -0
  119. package/components/FileUploader/FileUploaderFile.js +35 -40
  120. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  121. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.d.ts +60 -0
  122. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js +31 -0
  123. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js.map +1 -0
  124. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js +22 -28
  125. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  126. package/components/FileUploader/FileUploaderFileStatusIcon.js +3 -8
  127. package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -1
  128. package/components/GlobalLoader/GlobalLoaderView.css.d.ts +26 -0
  129. package/components/GlobalLoader/GlobalLoaderView.css.js +14 -0
  130. package/components/GlobalLoader/GlobalLoaderView.css.js.map +1 -0
  131. package/components/GlobalLoader/GlobalLoaderView.js +20 -19
  132. package/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  133. package/components/Group/Group.css.d.ts +14 -0
  134. package/components/Group/Group.css.js +8 -0
  135. package/components/Group/Group.css.js.map +1 -0
  136. package/components/Group/Group.d.ts +0 -3
  137. package/components/Group/Group.js +10 -12
  138. package/components/Group/Group.js.map +1 -1
  139. package/components/Hint/Hint.css.d.ts +6 -0
  140. package/components/Hint/Hint.css.js +4 -0
  141. package/components/Hint/Hint.css.js.map +1 -0
  142. package/components/Hint/Hint.d.ts +0 -3
  143. package/components/Hint/Hint.js +10 -10
  144. package/components/Hint/Hint.js.map +1 -1
  145. package/components/Input/Input.css.d.ts +73 -0
  146. package/components/Input/Input.css.js +22 -0
  147. package/components/Input/Input.css.js.map +1 -0
  148. package/components/Input/Input.d.ts +0 -3
  149. package/components/Input/Input.js +18 -18
  150. package/components/Input/Input.js.map +1 -1
  151. package/components/Input/InputLayout/InputLayout.css.d.ts +32 -0
  152. package/components/Input/InputLayout/InputLayout.css.js +18 -0
  153. package/components/Input/InputLayout/InputLayout.css.js.map +1 -0
  154. package/components/Input/InputLayout/InputLayout.js +2 -4
  155. package/components/Input/InputLayout/InputLayout.js.map +1 -1
  156. package/components/Input/InputLayout/InputLayoutAside.js +2 -4
  157. package/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  158. package/components/Input/InputLayout/InputLayoutAsideCounter.js +9 -11
  159. package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -1
  160. package/components/Input/InputLayout/InputLayoutAsideIcon.js +3 -5
  161. package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  162. package/components/Input/InputLayout/InputLayoutAsideText.js +4 -6
  163. package/components/Input/InputLayout/InputLayoutAsideText.js.map +1 -1
  164. package/components/Kebab/Kebab.css.d.ts +18 -0
  165. package/components/Kebab/Kebab.css.js +10 -0
  166. package/components/Kebab/Kebab.css.js.map +1 -0
  167. package/components/Kebab/Kebab.d.ts +0 -3
  168. package/components/Kebab/Kebab.js +6 -6
  169. package/components/Kebab/Kebab.js.map +1 -1
  170. package/components/Link/Link.css.d.ts +43 -0
  171. package/components/Link/Link.css.js +22 -0
  172. package/components/Link/Link.css.js.map +1 -0
  173. package/components/Link/Link.d.ts +0 -3
  174. package/components/Link/Link.js +25 -24
  175. package/components/Link/Link.js.map +1 -1
  176. package/components/Link/LinkIcon.js +4 -8
  177. package/components/Link/LinkIcon.js.map +1 -1
  178. package/components/Loader/Loader.css.d.ts +12 -0
  179. package/components/Loader/Loader.css.js +7 -0
  180. package/components/Loader/Loader.css.js.map +1 -0
  181. package/components/Loader/Loader.d.ts +0 -5
  182. package/components/Loader/Loader.js +8 -16
  183. package/components/Loader/Loader.js.map +1 -1
  184. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.d.ts +7 -0
  185. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js +4 -0
  186. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js.map +1 -0
  187. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +4 -6
  188. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  189. package/components/MaskedInput/MaskedInput.css.d.ts +7 -0
  190. package/components/MaskedInput/MaskedInput.css.js +5 -0
  191. package/components/MaskedInput/MaskedInput.css.js.map +1 -0
  192. package/components/MaskedInput/MaskedInputLegacy.js +4 -8
  193. package/components/MaskedInput/MaskedInputLegacy.js.map +1 -1
  194. package/components/MaskedInputV2/MaskedInputV2.css.d.ts +7 -0
  195. package/components/MaskedInputV2/MaskedInputV2.css.js +5 -0
  196. package/components/MaskedInputV2/MaskedInputV2.css.js.map +1 -0
  197. package/components/MaskedInputV2/MaskedInputV2.js +4 -8
  198. package/components/MaskedInputV2/MaskedInputV2.js.map +1 -1
  199. package/components/MaskedInputV2/internal/MaskOverlay.js +7 -13
  200. package/components/MaskedInputV2/internal/MaskOverlay.js.map +1 -1
  201. package/components/MaskedInputV2/internal/MaskedCore.js +5 -8
  202. package/components/MaskedInputV2/internal/MaskedCore.js.map +1 -1
  203. package/components/MaskedInputV2/internal/MaskedInternal.css.d.ts +19 -0
  204. package/components/MaskedInputV2/internal/MaskedInternal.css.js +8 -0
  205. package/components/MaskedInputV2/internal/MaskedInternal.css.js.map +1 -0
  206. package/components/MaskedInputV2/react-imask/input.d.ts +1 -1
  207. package/components/MenuFooter/MenuFooter.css.d.ts +16 -0
  208. package/components/MenuFooter/MenuFooter.css.js +9 -0
  209. package/components/MenuFooter/MenuFooter.css.js.map +1 -0
  210. package/components/MenuFooter/MenuFooter.js +10 -14
  211. package/components/MenuFooter/MenuFooter.js.map +1 -1
  212. package/components/MenuFooter/MenuFooter.mixins.d.ts +8 -2
  213. package/components/MenuFooter/MenuFooter.mixins.js +8 -4
  214. package/components/MenuFooter/MenuFooter.mixins.js.map +1 -1
  215. package/components/MenuHeader/MenuHeader.css.d.ts +16 -0
  216. package/components/MenuHeader/MenuHeader.css.js +9 -0
  217. package/components/MenuHeader/MenuHeader.css.js.map +1 -0
  218. package/components/MenuHeader/MenuHeader.js +9 -13
  219. package/components/MenuHeader/MenuHeader.js.map +1 -1
  220. package/components/MenuHeader/MenuHeader.mixins.d.ts +8 -2
  221. package/components/MenuHeader/MenuHeader.mixins.js +8 -4
  222. package/components/MenuHeader/MenuHeader.mixins.js.map +1 -1
  223. package/components/MenuItem/MenuItem.css.d.ts +50 -0
  224. package/components/MenuItem/MenuItem.css.js +26 -0
  225. package/components/MenuItem/MenuItem.css.js.map +1 -0
  226. package/components/MenuItem/MenuItem.d.ts +0 -3
  227. package/components/MenuItem/MenuItem.js +30 -30
  228. package/components/MenuItem/MenuItem.js.map +1 -1
  229. package/components/MenuItem/MenuItem.mixins.d.ts +12 -4
  230. package/components/MenuItem/MenuItem.mixins.js +12 -19
  231. package/components/MenuItem/MenuItem.mixins.js.map +1 -1
  232. package/components/MenuSeparator/MenuSeparator.css.d.ts +6 -0
  233. package/components/MenuSeparator/MenuSeparator.css.js +4 -0
  234. package/components/MenuSeparator/MenuSeparator.css.js.map +1 -0
  235. package/components/MenuSeparator/MenuSeparator.js +7 -13
  236. package/components/MenuSeparator/MenuSeparator.js.map +1 -1
  237. package/components/MiniModal/MiniModal.css.d.ts +17 -0
  238. package/components/MiniModal/MiniModal.css.js +10 -0
  239. package/components/MiniModal/MiniModal.css.js.map +1 -0
  240. package/components/MiniModal/MiniModalBody.js +2 -8
  241. package/components/MiniModal/MiniModalBody.js.map +1 -1
  242. package/components/MiniModal/MiniModalFooter.js +4 -8
  243. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  244. package/components/MiniModal/MiniModalHeader.js +6 -10
  245. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  246. package/components/MiniModal/MiniModalIndent.js +3 -7
  247. package/components/MiniModal/MiniModalIndent.js.map +1 -1
  248. package/components/MiniModal/getMiniModalTheme.d.ts +1 -2
  249. package/components/MiniModal/getMiniModalTheme.js +3 -2
  250. package/components/MiniModal/getMiniModalTheme.js.map +1 -1
  251. package/components/Modal/Modal.css.d.ts +102 -0
  252. package/components/Modal/Modal.css.js +51 -0
  253. package/components/Modal/Modal.css.js.map +1 -0
  254. package/components/Modal/Modal.d.ts +0 -3
  255. package/components/Modal/Modal.js +26 -26
  256. package/components/Modal/Modal.js.map +1 -1
  257. package/components/Modal/ModalBody.d.ts +0 -3
  258. package/components/Modal/ModalBody.js +10 -12
  259. package/components/Modal/ModalBody.js.map +1 -1
  260. package/components/Modal/ModalClose.js +14 -19
  261. package/components/Modal/ModalClose.js.map +1 -1
  262. package/components/Modal/ModalFooter.js +3 -5
  263. package/components/Modal/ModalFooter.js.map +1 -1
  264. package/components/Modal/ModalHeader.js +3 -5
  265. package/components/Modal/ModalHeader.js.map +1 -1
  266. package/components/Modal/ModalSeparator.js +5 -9
  267. package/components/Modal/ModalSeparator.js.map +1 -1
  268. package/components/Modal/getModalBodyTheme.d.ts +1 -2
  269. package/components/Modal/getModalBodyTheme.js +3 -2
  270. package/components/Modal/getModalBodyTheme.js.map +1 -1
  271. package/components/Modal/getModalTheme.d.ts +1 -2
  272. package/components/Modal/getModalTheme.js +3 -2
  273. package/components/Modal/getModalTheme.js.map +1 -1
  274. package/components/Paging/Paging.css.d.ts +60 -0
  275. package/components/Paging/Paging.css.js +31 -0
  276. package/components/Paging/Paging.css.js.map +1 -0
  277. package/components/Paging/Paging.d.ts +0 -4
  278. package/components/Paging/Paging.js +36 -44
  279. package/components/Paging/Paging.js.map +1 -1
  280. package/components/PasswordInput/PasswordInput.css.d.ts +18 -0
  281. package/components/PasswordInput/PasswordInput.css.js +10 -0
  282. package/components/PasswordInput/PasswordInput.css.js.map +1 -0
  283. package/components/PasswordInput/PasswordInput.d.ts +0 -4
  284. package/components/PasswordInput/PasswordInput.js +10 -17
  285. package/components/PasswordInput/PasswordInput.js.map +1 -1
  286. package/components/Radio/Radio.css.d.ts +61 -0
  287. package/components/Radio/Radio.css.js +31 -0
  288. package/components/Radio/Radio.css.js.map +1 -0
  289. package/components/Radio/Radio.d.ts +0 -4
  290. package/components/Radio/Radio.js +33 -38
  291. package/components/Radio/Radio.js.map +1 -1
  292. package/components/Radio/Radio.mixins.d.ts +39 -7
  293. package/components/Radio/Radio.mixins.js +37 -23
  294. package/components/Radio/Radio.mixins.js.map +1 -1
  295. package/components/RadioGroup/RadioGroup.css.d.ts +10 -0
  296. package/components/RadioGroup/RadioGroup.css.js +6 -0
  297. package/components/RadioGroup/RadioGroup.css.js.map +1 -0
  298. package/components/RadioGroup/RadioGroup.d.ts +0 -3
  299. package/components/RadioGroup/RadioGroup.js +8 -10
  300. package/components/RadioGroup/RadioGroup.js.map +1 -1
  301. package/components/ScrollContainer/ScrollBar.d.ts +1 -6
  302. package/components/ScrollContainer/ScrollBar.js +25 -33
  303. package/components/ScrollContainer/ScrollBar.js.map +1 -1
  304. package/components/ScrollContainer/ScrollContainer.css.d.ts +31 -0
  305. package/components/ScrollContainer/ScrollContainer.css.js +14 -0
  306. package/components/ScrollContainer/ScrollContainer.css.js.map +1 -0
  307. package/components/ScrollContainer/ScrollContainer.d.ts +0 -3
  308. package/components/ScrollContainer/ScrollContainer.js +4 -4
  309. package/components/ScrollContainer/ScrollContainer.js.map +1 -1
  310. package/components/Select/Select.css.d.ts +31 -0
  311. package/components/Select/Select.css.js +16 -0
  312. package/components/Select/Select.css.js.map +1 -0
  313. package/components/Select/Select.d.ts +0 -4
  314. package/components/Select/Select.js +25 -24
  315. package/components/Select/Select.js.map +1 -1
  316. package/components/Select/selectTheme.d.ts +1 -3
  317. package/components/Select/selectTheme.js +8 -7
  318. package/components/Select/selectTheme.js.map +1 -1
  319. package/components/SidePage/SidePage.css.d.ts +96 -0
  320. package/components/SidePage/SidePage.css.js +49 -0
  321. package/components/SidePage/SidePage.css.js.map +1 -0
  322. package/components/SidePage/SidePage.d.ts +0 -5
  323. package/components/SidePage/SidePage.js +21 -29
  324. package/components/SidePage/SidePage.js.map +1 -1
  325. package/components/SidePage/SidePageBody.d.ts +0 -3
  326. package/components/SidePage/SidePageBody.js +5 -11
  327. package/components/SidePage/SidePageBody.js.map +1 -1
  328. package/components/SidePage/SidePageCloseButton.js +7 -10
  329. package/components/SidePage/SidePageCloseButton.js.map +1 -1
  330. package/components/SidePage/SidePageContainer.d.ts +0 -4
  331. package/components/SidePage/SidePageContainer.js +10 -17
  332. package/components/SidePage/SidePageContainer.js.map +1 -1
  333. package/components/SidePage/SidePageFooter.d.ts +1 -6
  334. package/components/SidePage/SidePageFooter.js +10 -18
  335. package/components/SidePage/SidePageFooter.js.map +1 -1
  336. package/components/SidePage/SidePageHeader.d.ts +0 -3
  337. package/components/SidePage/SidePageHeader.js +14 -16
  338. package/components/SidePage/SidePageHeader.js.map +1 -1
  339. package/components/Spinner/Spinner.css.d.ts +22 -0
  340. package/components/Spinner/Spinner.css.js +12 -0
  341. package/components/Spinner/Spinner.css.js.map +1 -0
  342. package/components/Spinner/Spinner.d.ts +0 -5
  343. package/components/Spinner/Spinner.js +9 -19
  344. package/components/Spinner/Spinner.js.map +1 -1
  345. package/components/Sticky/Sticky.css.d.ts +12 -0
  346. package/components/Sticky/Sticky.css.js +7 -0
  347. package/components/Sticky/Sticky.css.js.map +1 -0
  348. package/components/Sticky/Sticky.d.ts +0 -4
  349. package/components/Sticky/Sticky.js +7 -10
  350. package/components/Sticky/Sticky.js.map +1 -1
  351. package/components/Switcher/Switcher.css.d.ts +20 -0
  352. package/components/Switcher/Switcher.css.js +11 -0
  353. package/components/Switcher/Switcher.css.js.map +1 -0
  354. package/components/Switcher/Switcher.d.ts +0 -3
  355. package/components/Switcher/Switcher.js +11 -13
  356. package/components/Switcher/Switcher.js.map +1 -1
  357. package/components/Switcher/switcherTheme.d.ts +1 -2
  358. package/components/Switcher/switcherTheme.js +3 -2
  359. package/components/Switcher/switcherTheme.js.map +1 -1
  360. package/components/Tabs/Indicator.css.d.ts +12 -0
  361. package/components/Tabs/Indicator.css.js +7 -0
  362. package/components/Tabs/Indicator.css.js.map +1 -0
  363. package/components/Tabs/Indicator.d.ts +0 -3
  364. package/components/Tabs/Indicator.js +3 -3
  365. package/components/Tabs/Indicator.js.map +1 -1
  366. package/components/Tabs/Tab.css.d.ts +55 -0
  367. package/components/Tabs/Tab.css.js +28 -0
  368. package/components/Tabs/Tab.css.js.map +1 -0
  369. package/components/Tabs/Tab.d.ts +1 -8
  370. package/components/Tabs/Tab.js +23 -33
  371. package/components/Tabs/Tab.js.map +1 -1
  372. package/components/Tabs/Tabs.css.d.ts +10 -0
  373. package/components/Tabs/Tabs.css.js +6 -0
  374. package/components/Tabs/Tabs.css.js.map +1 -0
  375. package/components/Tabs/Tabs.d.ts +0 -4
  376. package/components/Tabs/Tabs.js +25 -30
  377. package/components/Tabs/Tabs.js.map +1 -1
  378. package/components/Textarea/Textarea.css.d.ts +42 -0
  379. package/components/Textarea/Textarea.css.js +22 -0
  380. package/components/Textarea/Textarea.css.js.map +1 -0
  381. package/components/Textarea/Textarea.d.ts +1 -4
  382. package/components/Textarea/Textarea.js +19 -19
  383. package/components/Textarea/Textarea.js.map +1 -1
  384. package/components/Textarea/Textarea.mixins.d.ts +8 -2
  385. package/components/Textarea/Textarea.mixins.js +8 -6
  386. package/components/Textarea/Textarea.mixins.js.map +1 -1
  387. package/components/Textarea/TextareaCounter.js +7 -9
  388. package/components/Textarea/TextareaCounter.js.map +1 -1
  389. package/components/ThemeContainer/ThemeContainer.d.ts +16 -0
  390. package/components/ThemeContainer/ThemeContainer.js +46 -0
  391. package/components/ThemeContainer/ThemeContainer.js.map +1 -0
  392. package/components/ThemeContainer/index.d.ts +1 -0
  393. package/components/ThemeContainer/index.js +2 -0
  394. package/components/ThemeContainer/index.js.map +1 -0
  395. package/components/TimePicker/TimePicker.css.d.ts +19 -0
  396. package/components/TimePicker/TimePicker.css.js +10 -0
  397. package/components/TimePicker/TimePicker.css.js.map +1 -0
  398. package/components/TimePicker/TimePicker.js +4 -6
  399. package/components/TimePicker/TimePicker.js.map +1 -1
  400. package/components/TimePicker/TimePickerItems.js +12 -16
  401. package/components/TimePicker/TimePickerItems.js.map +1 -1
  402. package/components/TimePicker/TimePickerPopup.js +2 -4
  403. package/components/TimePicker/TimePickerPopup.js.map +1 -1
  404. package/components/TimePicker/helpers/TimePicker.constants.d.ts +1 -0
  405. package/components/TimePicker/helpers/TimePicker.constants.js +3 -0
  406. package/components/TimePicker/helpers/TimePicker.constants.js.map +1 -1
  407. package/components/TimePicker/helpers/TimePicker.value.d.ts +0 -1
  408. package/components/TimePicker/helpers/TimePicker.value.js +0 -5
  409. package/components/TimePicker/helpers/TimePicker.value.js.map +1 -1
  410. package/components/Toast/Toast.css.d.ts +10 -0
  411. package/components/Toast/Toast.css.js +6 -0
  412. package/components/Toast/Toast.css.js.map +1 -0
  413. package/components/Toast/Toast.d.ts +0 -2
  414. package/components/Toast/Toast.js +7 -10
  415. package/components/Toast/Toast.js.map +1 -1
  416. package/components/Toast/ToastView.css.d.ts +31 -0
  417. package/components/Toast/ToastView.css.js +16 -0
  418. package/components/Toast/ToastView.css.js.map +1 -0
  419. package/components/Toast/ToastView.d.ts +0 -3
  420. package/components/Toast/ToastView.js +9 -11
  421. package/components/Toast/ToastView.js.map +1 -1
  422. package/components/Toggle/Toggle.classes.js +1 -1
  423. package/components/Toggle/Toggle.classes.js.map +1 -1
  424. package/components/Toggle/Toggle.css.d.ts +93 -0
  425. package/components/Toggle/Toggle.css.js +48 -0
  426. package/components/Toggle/Toggle.css.js.map +1 -0
  427. package/components/Toggle/Toggle.d.ts +1 -6
  428. package/components/Toggle/Toggle.js +52 -60
  429. package/components/Toggle/Toggle.js.map +1 -1
  430. package/components/Token/Token.css.d.ts +39 -0
  431. package/components/Token/Token.css.js +20 -0
  432. package/components/Token/Token.css.js.map +1 -0
  433. package/components/Token/Token.d.ts +0 -5
  434. package/components/Token/Token.js +4 -15
  435. package/components/Token/Token.js.map +1 -1
  436. package/components/Token/Token.mixins.d.ts +6 -1
  437. package/components/Token/Token.mixins.js +6 -3
  438. package/components/Token/Token.mixins.js.map +1 -1
  439. package/components/Token/TokenView.js +8 -12
  440. package/components/Token/TokenView.js.map +1 -1
  441. package/components/TokenInput/TextWidthHelper.d.ts +0 -3
  442. package/components/TokenInput/TextWidthHelper.js +7 -17
  443. package/components/TokenInput/TextWidthHelper.js.map +1 -1
  444. package/components/TokenInput/TokenInput.css.d.ts +40 -0
  445. package/components/TokenInput/TokenInput.css.js +22 -0
  446. package/components/TokenInput/TokenInput.css.js.map +1 -0
  447. package/components/TokenInput/TokenInput.d.ts +0 -3
  448. package/components/TokenInput/TokenInput.js +22 -23
  449. package/components/TokenInput/TokenInput.js.map +1 -1
  450. package/components/TokenInput/TokenInput.mixins.d.ts +8 -2
  451. package/components/TokenInput/TokenInput.mixins.js +8 -6
  452. package/components/TokenInput/TokenInput.mixins.js.map +1 -1
  453. package/components/TokenInput/TokenInputMenu.js +5 -3
  454. package/components/TokenInput/TokenInputMenu.js.map +1 -1
  455. package/components/Tooltip/Tooltip.css.d.ts +18 -0
  456. package/components/Tooltip/Tooltip.css.js +10 -0
  457. package/components/Tooltip/Tooltip.css.js.map +1 -0
  458. package/components/Tooltip/Tooltip.d.ts +0 -3
  459. package/components/Tooltip/Tooltip.js +28 -41
  460. package/components/Tooltip/Tooltip.js.map +1 -1
  461. package/components/TooltipMenu/TooltipMenu.js +10 -6
  462. package/components/TooltipMenu/TooltipMenu.js.map +1 -1
  463. package/index.d.ts +1 -0
  464. package/index.js +1 -0
  465. package/index.js.map +1 -1
  466. package/internal/ClearCrossIcon/ClearCrossIcon.css.d.ts +18 -0
  467. package/internal/ClearCrossIcon/ClearCrossIcon.css.js +10 -0
  468. package/internal/ClearCrossIcon/ClearCrossIcon.css.js.map +1 -0
  469. package/internal/ClearCrossIcon/ClearCrossIcon.js +8 -11
  470. package/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  471. package/internal/CloseButtonIcon/CloseButtonIcon.css.d.ts +14 -0
  472. package/internal/CloseButtonIcon/CloseButtonIcon.css.js +8 -0
  473. package/internal/CloseButtonIcon/CloseButtonIcon.css.js.map +1 -0
  474. package/internal/CloseButtonIcon/CloseButtonIcon.js +15 -13
  475. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  476. package/internal/CommonWrapper/CommonWrapper.d.ts +6 -2
  477. package/internal/CommonWrapper/CommonWrapper.js +29 -7
  478. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  479. package/internal/CustomComboBox/ComboBoxView.d.ts +0 -4
  480. package/internal/CustomComboBox/ComboBoxView.js +6 -9
  481. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  482. package/internal/CustomComboBox/CustomComboBox.css.d.ts +6 -0
  483. package/internal/CustomComboBox/CustomComboBox.css.js +4 -0
  484. package/internal/CustomComboBox/CustomComboBox.css.js.map +1 -0
  485. package/internal/CustomComboBox/getComboBoxTheme.d.ts +1 -2
  486. package/internal/CustomComboBox/getComboBoxTheme.js +3 -2
  487. package/internal/CustomComboBox/getComboBoxTheme.js.map +1 -1
  488. package/internal/DateSelect/DateSelect.css.d.ts +11 -0
  489. package/internal/DateSelect/DateSelect.css.js +6 -0
  490. package/internal/DateSelect/DateSelect.css.js.map +1 -0
  491. package/internal/DateSelect/DateSelect.d.ts +0 -3
  492. package/internal/DateSelect/DateSelect.js +5 -7
  493. package/internal/DateSelect/DateSelect.js.map +1 -1
  494. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.d.ts +4 -0
  495. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js +3 -0
  496. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js.map +1 -0
  497. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -2
  498. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +8 -13
  499. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  500. package/internal/InputLikeText/InputLikeText.css.d.ts +8 -0
  501. package/internal/InputLikeText/InputLikeText.css.js +5 -0
  502. package/internal/InputLikeText/InputLikeText.css.js.map +1 -0
  503. package/internal/InputLikeText/InputLikeText.d.ts +0 -4
  504. package/internal/InputLikeText/InputLikeText.js +28 -29
  505. package/internal/InputLikeText/InputLikeText.js.map +1 -1
  506. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.d.ts +6 -0
  507. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js +5 -0
  508. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js.map +1 -0
  509. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +0 -5
  510. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +33 -33
  511. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  512. package/internal/MaskCharLowLine/MaskCharLowLine.css.d.ts +4 -0
  513. package/internal/MaskCharLowLine/MaskCharLowLine.css.js +3 -0
  514. package/internal/MaskCharLowLine/MaskCharLowLine.css.js.map +1 -0
  515. package/internal/MaskCharLowLine/MaskCharLowLine.js +2 -4
  516. package/internal/MaskCharLowLine/MaskCharLowLine.js.map +1 -1
  517. package/internal/Menu/Menu.css.d.ts +28 -0
  518. package/internal/Menu/Menu.css.js +15 -0
  519. package/internal/Menu/Menu.css.js.map +1 -0
  520. package/internal/Menu/Menu.d.ts +0 -3
  521. package/internal/Menu/Menu.js +28 -24
  522. package/internal/Menu/Menu.js.map +1 -1
  523. package/internal/MenuMessage/MenuMessage.css.d.ts +18 -0
  524. package/internal/MenuMessage/MenuMessage.css.js +10 -0
  525. package/internal/MenuMessage/MenuMessage.css.js.map +1 -0
  526. package/internal/MenuMessage/MenuMessage.js +10 -12
  527. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  528. package/internal/MobilePopup/MobilePopup.css.d.ts +30 -0
  529. package/internal/MobilePopup/MobilePopup.css.js +16 -0
  530. package/internal/MobilePopup/MobilePopup.css.js.map +1 -0
  531. package/internal/MobilePopup/MobilePopup.d.ts +0 -3
  532. package/internal/MobilePopup/MobilePopup.js +17 -19
  533. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  534. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.d.ts +10 -0
  535. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js +6 -0
  536. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js.map +1 -0
  537. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +0 -2
  538. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +5 -16
  539. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  540. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.d.ts +24 -0
  541. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js +13 -0
  542. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js.map +1 -0
  543. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +0 -3
  544. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +18 -28
  545. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  546. package/internal/NativeDateInput/NativeDateInput.css.d.ts +4 -0
  547. package/internal/NativeDateInput/NativeDateInput.css.js +3 -0
  548. package/internal/NativeDateInput/NativeDateInput.css.js.map +1 -0
  549. package/internal/NativeDateInput/NativeDateInput.d.ts +0 -2
  550. package/internal/NativeDateInput/NativeDateInput.js +2 -13
  551. package/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  552. package/internal/NativeTimeInput/NativeTimeInput.css.d.ts +4 -0
  553. package/internal/NativeTimeInput/NativeTimeInput.css.js +3 -0
  554. package/internal/NativeTimeInput/NativeTimeInput.css.js.map +1 -0
  555. package/internal/NativeTimeInput/NativeTimeInput.js +2 -4
  556. package/internal/NativeTimeInput/NativeTimeInput.js.map +1 -1
  557. package/internal/Popup/Popup.css.d.ts +35 -0
  558. package/internal/Popup/Popup.css.js +16 -0
  559. package/internal/Popup/Popup.css.js.map +1 -0
  560. package/internal/Popup/Popup.d.ts +0 -3
  561. package/internal/Popup/Popup.js +22 -20
  562. package/internal/Popup/Popup.js.map +1 -1
  563. package/internal/Popup/PopupPin.css.d.ts +16 -0
  564. package/internal/Popup/PopupPin.css.js +9 -0
  565. package/internal/Popup/PopupPin.css.js.map +1 -0
  566. package/internal/Popup/PopupPin.d.ts +0 -3
  567. package/internal/Popup/PopupPin.js +8 -8
  568. package/internal/Popup/PopupPin.js.map +1 -1
  569. package/internal/PopupMenu/PopupMenu.css.d.ts +6 -0
  570. package/internal/PopupMenu/PopupMenu.css.js +4 -0
  571. package/internal/PopupMenu/PopupMenu.css.js.map +1 -0
  572. package/internal/PopupMenu/PopupMenu.d.ts +0 -2
  573. package/internal/PopupMenu/PopupMenu.js +9 -8
  574. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  575. package/internal/RenderContainer/RenderContainer.d.ts +2 -0
  576. package/internal/RenderContainer/RenderContainer.js +38 -3
  577. package/internal/RenderContainer/RenderContainer.js.map +1 -1
  578. package/internal/RenderContainer/RenderInnerContainer.js +6 -3
  579. package/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  580. package/internal/ResizeDetector/ResizeDetector.css.d.ts +12 -0
  581. package/internal/ResizeDetector/ResizeDetector.css.js +7 -0
  582. package/internal/ResizeDetector/ResizeDetector.css.js.map +1 -0
  583. package/internal/ResizeDetector/ResizeDetector.d.ts +0 -3
  584. package/internal/ResizeDetector/ResizeDetector.js +8 -18
  585. package/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  586. package/internal/SpinnerIcon/SpinnerIcon.css.d.ts +10 -0
  587. package/internal/SpinnerIcon/SpinnerIcon.css.js +6 -0
  588. package/internal/SpinnerIcon/SpinnerIcon.css.js.map +1 -0
  589. package/internal/SpinnerIcon/SpinnerIcon.js +5 -7
  590. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  591. package/internal/TextWidthHelper/TextWidthHelper.css.d.ts +6 -0
  592. package/internal/TextWidthHelper/TextWidthHelper.css.js +4 -0
  593. package/internal/TextWidthHelper/TextWidthHelper.css.js.map +1 -0
  594. package/internal/TextWidthHelper/TextWidthHelper.d.ts +0 -2
  595. package/internal/TextWidthHelper/TextWidthHelper.js +3 -14
  596. package/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  597. package/internal/TimeInput/TimeFragments.css.d.ts +47 -0
  598. package/internal/TimeInput/TimeFragments.css.js +18 -0
  599. package/internal/TimeInput/TimeFragments.css.js.map +1 -0
  600. package/internal/TimeInput/TimeFragments.js +22 -26
  601. package/internal/TimeInput/TimeFragments.js.map +1 -1
  602. package/internal/TimeInput/TimeInput.css.d.ts +10 -0
  603. package/internal/TimeInput/TimeInput.css.js +6 -0
  604. package/internal/TimeInput/TimeInput.css.js.map +1 -0
  605. package/internal/TimeInput/TimeInput.js +6 -8
  606. package/internal/TimeInput/TimeInput.js.map +1 -1
  607. package/internal/icons2022/BaseIcon.css.d.ts +4 -0
  608. package/internal/icons2022/BaseIcon.css.js +3 -0
  609. package/internal/icons2022/BaseIcon.css.js.map +1 -0
  610. package/internal/icons2022/BaseIcon.js +2 -4
  611. package/internal/icons2022/BaseIcon.js.map +1 -1
  612. package/internal/icons2022/LoadingIcon.js +3 -7
  613. package/internal/icons2022/LoadingIcon.js.map +1 -1
  614. package/internal/themes/BasicTheme.d.ts +5 -5
  615. package/internal/themes/BasicTheme.js +42 -12
  616. package/internal/themes/BasicTheme.js.map +1 -1
  617. package/internal/themes/DarkTheme6_0.js +0 -2
  618. package/internal/themes/DarkTheme6_0.js.map +1 -1
  619. package/lib/cx.d.ts +2 -0
  620. package/lib/cx.js +23 -0
  621. package/lib/cx.js.map +1 -0
  622. package/lib/prefix.d.ts +2 -0
  623. package/lib/prefix.js +22 -0
  624. package/lib/prefix.js.map +1 -0
  625. package/lib/renderEnvironment/RenderEnvironmentContext.d.ts +1 -1
  626. package/lib/renderEnvironment/RenderEnvironmentContext.js +23 -14
  627. package/lib/renderEnvironment/RenderEnvironmentContext.js.map +1 -1
  628. package/lib/renderEnvironment/RenderEnvironmentDecorator.js.map +1 -1
  629. package/lib/styles/LabGrotesqueBaseline.css.d.ts +1 -0
  630. package/lib/styles/LabGrotesqueBaseline.css.js +0 -0
  631. package/lib/styles/LabGrotesqueBaseline.css.js.map +1 -0
  632. package/lib/styles/Mixins.d.ts +29 -1
  633. package/lib/styles/Mixins.js +33 -4
  634. package/lib/styles/Mixins.js.map +1 -1
  635. package/lib/styles/UiFont.css.d.ts +1 -0
  636. package/lib/styles/UiFont.css.js +2 -0
  637. package/lib/styles/UiFont.css.js.map +1 -0
  638. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +6 -1
  639. package/lib/styles/getLabGrotesqueBaselineCompensation.js +23 -6
  640. package/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -1
  641. package/lib/theming/Emotion.d.ts +5 -14
  642. package/lib/theming/Emotion.js +12 -68
  643. package/lib/theming/Emotion.js.map +1 -1
  644. package/lib/theming/ThemeFactory.d.ts +1 -10
  645. package/lib/theming/ThemeFactory.js +1 -29
  646. package/lib/theming/ThemeFactory.js.map +1 -1
  647. package/lib/theming/memoizeTheme.d.ts +11 -0
  648. package/lib/theming/memoizeTheme.js +37 -0
  649. package/lib/theming/memoizeTheme.js.map +1 -0
  650. package/lib/theming/themeVars.d.ts +37 -0
  651. package/lib/theming/themeVars.js +136 -0
  652. package/lib/theming/themeVars.js.map +1 -0
  653. package/package.json +21 -6
  654. package/react-ui.css +6096 -0
  655. package/theme-loader.js +51 -0
  656. package/components/Autocomplete/Autocomplete.styles.d.ts +0 -5
  657. package/components/Autocomplete/Autocomplete.styles.js +0 -18
  658. package/components/Autocomplete/Autocomplete.styles.js.map +0 -1
  659. package/components/Button/Button.mixins.d.ts +0 -4
  660. package/components/Button/Button.mixins.js +0 -21
  661. package/components/Button/Button.mixins.js.map +0 -1
  662. package/components/Button/Button.styles.d.ts +0 -95
  663. package/components/Button/Button.styles.js +0 -260
  664. package/components/Button/Button.styles.js.map +0 -1
  665. package/components/Button/ButtonIcon.styles.d.ts +0 -16
  666. package/components/Button/ButtonIcon.styles.js +0 -53
  667. package/components/Button/ButtonIcon.styles.js.map +0 -1
  668. package/components/Calendar/Calendar.styles.d.ts +0 -6
  669. package/components/Calendar/Calendar.styles.js +0 -22
  670. package/components/Calendar/Calendar.styles.js.map +0 -1
  671. package/components/Calendar/DayCellView.styles.d.ts +0 -9
  672. package/components/Calendar/DayCellView.styles.js +0 -31
  673. package/components/Calendar/DayCellView.styles.js.map +0 -1
  674. package/components/Calendar/MonthView.styles.d.ts +0 -13
  675. package/components/Calendar/MonthView.styles.js +0 -47
  676. package/components/Calendar/MonthView.styles.js.map +0 -1
  677. package/components/Center/Center.styles.d.ts +0 -7
  678. package/components/Center/Center.styles.js +0 -27
  679. package/components/Center/Center.styles.js.map +0 -1
  680. package/components/Checkbox/Checkbox.styles.d.ts +0 -34
  681. package/components/Checkbox/Checkbox.styles.js +0 -100
  682. package/components/Checkbox/Checkbox.styles.js.map +0 -1
  683. package/components/DateInput/DateFragmentsView.styles.d.ts +0 -7
  684. package/components/DateInput/DateFragmentsView.styles.js +0 -28
  685. package/components/DateInput/DateFragmentsView.styles.js.map +0 -1
  686. package/components/DateInput/DateInput.styles.d.ts +0 -11
  687. package/components/DateInput/DateInput.styles.js +0 -29
  688. package/components/DateInput/DateInput.styles.js.map +0 -1
  689. package/components/DatePicker/DatePicker.styles.d.ts +0 -5
  690. package/components/DatePicker/DatePicker.styles.js +0 -18
  691. package/components/DatePicker/DatePicker.styles.js.map +0 -1
  692. package/components/DatePicker/MobilePicker.styles.d.ts +0 -3
  693. package/components/DatePicker/MobilePicker.styles.js +0 -15
  694. package/components/DatePicker/MobilePicker.styles.js.map +0 -1
  695. package/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -16
  696. package/components/DateRangePicker/DateRangePicker.styles.js +0 -57
  697. package/components/DateRangePicker/DateRangePicker.styles.js.map +0 -1
  698. package/components/FileUploader/FileUploader.styles.d.ts +0 -74
  699. package/components/FileUploader/FileUploader.styles.js +0 -221
  700. package/components/FileUploader/FileUploader.styles.js.map +0 -1
  701. package/components/FileUploader/FileUploaderFile.styles.d.ts +0 -60
  702. package/components/FileUploader/FileUploaderFile.styles.js +0 -184
  703. package/components/FileUploader/FileUploaderFile.styles.js.map +0 -1
  704. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -34
  705. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js +0 -103
  706. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js.map +0 -1
  707. package/components/GlobalLoader/GlobalLoaderView.styles.d.ts +0 -17
  708. package/components/GlobalLoader/GlobalLoaderView.styles.js +0 -70
  709. package/components/GlobalLoader/GlobalLoaderView.styles.js.map +0 -1
  710. package/components/Group/Group.styles.d.ts +0 -8
  711. package/components/Group/Group.styles.js +0 -30
  712. package/components/Group/Group.styles.js.map +0 -1
  713. package/components/Hint/Hint.styles.d.ts +0 -5
  714. package/components/Hint/Hint.styles.js +0 -18
  715. package/components/Hint/Hint.styles.js.map +0 -1
  716. package/components/Input/Input.styles.d.ts +0 -21
  717. package/components/Input/Input.styles.js +0 -68
  718. package/components/Input/Input.styles.js.map +0 -1
  719. package/components/Input/InputLayout/InputLayout.styles.d.ts +0 -18
  720. package/components/Input/InputLayout/InputLayout.styles.js +0 -59
  721. package/components/Input/InputLayout/InputLayout.styles.js.map +0 -1
  722. package/components/Kebab/Kebab.styles.d.ts +0 -11
  723. package/components/Kebab/Kebab.styles.js +0 -36
  724. package/components/Kebab/Kebab.styles.js.map +0 -1
  725. package/components/Link/Link.mixins.d.ts +0 -2
  726. package/components/Link/Link.mixins.js +0 -7
  727. package/components/Link/Link.mixins.js.map +0 -1
  728. package/components/Link/Link.styles.d.ts +0 -24
  729. package/components/Link/Link.styles.js +0 -82
  730. package/components/Link/Link.styles.js.map +0 -1
  731. package/components/Loader/Loader.styles.d.ts +0 -8
  732. package/components/Loader/Loader.styles.js +0 -27
  733. package/components/Loader/Loader.styles.js.map +0 -1
  734. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.d.ts +0 -6
  735. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js +0 -18
  736. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js.map +0 -1
  737. package/components/MaskedInput/MaskedInput.styles.d.ts +0 -7
  738. package/components/MaskedInput/MaskedInput.styles.js +0 -19
  739. package/components/MaskedInput/MaskedInput.styles.js.map +0 -1
  740. package/components/MaskedInputV2/MaskedInputV2.styles.d.ts +0 -7
  741. package/components/MaskedInputV2/MaskedInputV2.styles.js +0 -19
  742. package/components/MaskedInputV2/MaskedInputV2.styles.js.map +0 -1
  743. package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +0 -15
  744. package/components/MaskedInputV2/internal/MaskedInternal.styles.js +0 -34
  745. package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +0 -1
  746. package/components/MenuFooter/MenuFooter.styles.d.ts +0 -10
  747. package/components/MenuFooter/MenuFooter.styles.js +0 -34
  748. package/components/MenuFooter/MenuFooter.styles.js.map +0 -1
  749. package/components/MenuHeader/MenuHeader.styles.d.ts +0 -10
  750. package/components/MenuHeader/MenuHeader.styles.js +0 -34
  751. package/components/MenuHeader/MenuHeader.styles.js.map +0 -1
  752. package/components/MenuItem/MenuItem.styles.d.ts +0 -29
  753. package/components/MenuItem/MenuItem.styles.js +0 -88
  754. package/components/MenuItem/MenuItem.styles.js.map +0 -1
  755. package/components/MenuSeparator/MenuSeparator.styles.d.ts +0 -5
  756. package/components/MenuSeparator/MenuSeparator.styles.js +0 -18
  757. package/components/MenuSeparator/MenuSeparator.styles.js.map +0 -1
  758. package/components/MiniModal/MiniModal.styles.d.ts +0 -11
  759. package/components/MiniModal/MiniModal.styles.js +0 -37
  760. package/components/MiniModal/MiniModal.styles.js.map +0 -1
  761. package/components/Modal/Modal.styles.d.ts +0 -55
  762. package/components/Modal/Modal.styles.js +0 -167
  763. package/components/Modal/Modal.styles.js.map +0 -1
  764. package/components/Paging/Paging.styles.d.ts +0 -32
  765. package/components/Paging/Paging.styles.js +0 -99
  766. package/components/Paging/Paging.styles.js.map +0 -1
  767. package/components/PasswordInput/PasswordInput.styles.d.ts +0 -11
  768. package/components/PasswordInput/PasswordInput.styles.js +0 -36
  769. package/components/PasswordInput/PasswordInput.styles.js.map +0 -1
  770. package/components/Radio/Radio.styles.d.ts +0 -34
  771. package/components/Radio/Radio.styles.js +0 -100
  772. package/components/Radio/Radio.styles.js.map +0 -1
  773. package/components/RadioGroup/RadioGroup.styles.d.ts +0 -6
  774. package/components/RadioGroup/RadioGroup.styles.js +0 -24
  775. package/components/RadioGroup/RadioGroup.styles.js.map +0 -1
  776. package/components/ScrollContainer/ScrollContainer.styles.d.ts +0 -21
  777. package/components/ScrollContainer/ScrollContainer.styles.js +0 -52
  778. package/components/ScrollContainer/ScrollContainer.styles.js.map +0 -1
  779. package/components/Select/Select.styles.d.ts +0 -18
  780. package/components/Select/Select.styles.js +0 -57
  781. package/components/Select/Select.styles.js.map +0 -1
  782. package/components/SidePage/SidePage.styles.d.ts +0 -50
  783. package/components/SidePage/SidePage.styles.js +0 -158
  784. package/components/SidePage/SidePage.styles.js.map +0 -1
  785. package/components/Spinner/Spinner.styles.d.ts +0 -13
  786. package/components/Spinner/Spinner.styles.js +0 -43
  787. package/components/Spinner/Spinner.styles.js.map +0 -1
  788. package/components/Sticky/Sticky.styles.d.ts +0 -7
  789. package/components/Sticky/Sticky.styles.js +0 -27
  790. package/components/Sticky/Sticky.styles.js.map +0 -1
  791. package/components/Switcher/Switcher.styles.d.ts +0 -12
  792. package/components/Switcher/Switcher.styles.js +0 -39
  793. package/components/Switcher/Switcher.styles.js.map +0 -1
  794. package/components/Tabs/Indicator.styles.d.ts +0 -8
  795. package/components/Tabs/Indicator.styles.js +0 -27
  796. package/components/Tabs/Indicator.styles.js.map +0 -1
  797. package/components/Tabs/Tab.styles.d.ts +0 -33
  798. package/components/Tabs/Tab.styles.js +0 -105
  799. package/components/Tabs/Tab.styles.js.map +0 -1
  800. package/components/Tabs/Tabs.styles.d.ts +0 -7
  801. package/components/Tabs/Tabs.styles.js +0 -26
  802. package/components/Tabs/Tabs.styles.js.map +0 -1
  803. package/components/Textarea/Textarea.styles.d.ts +0 -23
  804. package/components/Textarea/Textarea.styles.js +0 -73
  805. package/components/Textarea/Textarea.styles.js.map +0 -1
  806. package/components/TimePicker/TimePicker.styles.d.ts +0 -12
  807. package/components/TimePicker/TimePicker.styles.js +0 -39
  808. package/components/TimePicker/TimePicker.styles.js.map +0 -1
  809. package/components/Toast/Toast.styles.d.ts +0 -6
  810. package/components/Toast/Toast.styles.js +0 -24
  811. package/components/Toast/Toast.styles.js.map +0 -1
  812. package/components/Toast/ToastView.styles.d.ts +0 -18
  813. package/components/Toast/ToastView.styles.js +0 -67
  814. package/components/Toast/ToastView.styles.js.map +0 -1
  815. package/components/Toggle/Toggle.mixins.d.ts +0 -8
  816. package/components/Toggle/Toggle.mixins.js +0 -32
  817. package/components/Toggle/Toggle.mixins.js.map +0 -1
  818. package/components/Toggle/Toggle.styles.d.ts +0 -49
  819. package/components/Toggle/Toggle.styles.js +0 -147
  820. package/components/Toggle/Toggle.styles.js.map +0 -1
  821. package/components/Token/Token.styles.d.ts +0 -23
  822. package/components/Token/Token.styles.js +0 -67
  823. package/components/Token/Token.styles.js.map +0 -1
  824. package/components/TokenInput/TokenInput.styles.d.ts +0 -22
  825. package/components/TokenInput/TokenInput.styles.js +0 -71
  826. package/components/TokenInput/TokenInput.styles.js.map +0 -1
  827. package/components/Tooltip/Tooltip.styles.d.ts +0 -11
  828. package/components/Tooltip/Tooltip.styles.js +0 -36
  829. package/components/Tooltip/Tooltip.styles.js.map +0 -1
  830. package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +0 -12
  831. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js +0 -36
  832. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +0 -1
  833. package/internal/CloseButtonIcon/CloseButtonIcon.styles.d.ts +0 -8
  834. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js +0 -24
  835. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +0 -1
  836. package/internal/CustomComboBox/CustomComboBox.styles.d.ts +0 -4
  837. package/internal/CustomComboBox/CustomComboBox.styles.js +0 -18
  838. package/internal/CustomComboBox/CustomComboBox.styles.js.map +0 -1
  839. package/internal/DateSelect/DateSelect.styles.d.ts +0 -9
  840. package/internal/DateSelect/DateSelect.styles.js +0 -24
  841. package/internal/DateSelect/DateSelect.styles.js.map +0 -1
  842. package/internal/InputLikeText/InputLikeText.styles.d.ts +0 -8
  843. package/internal/InputLikeText/InputLikeText.styles.js +0 -30
  844. package/internal/InputLikeText/InputLikeText.styles.js.map +0 -1
  845. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +0 -3
  846. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +0 -15
  847. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +0 -1
  848. package/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +0 -3
  849. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js +0 -15
  850. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js.map +0 -1
  851. package/internal/Menu/Menu.styles.d.ts +0 -16
  852. package/internal/Menu/Menu.styles.js +0 -51
  853. package/internal/Menu/Menu.styles.js.map +0 -1
  854. package/internal/MenuMessage/MenuMessage.styles.d.ts +0 -11
  855. package/internal/MenuMessage/MenuMessage.styles.js +0 -41
  856. package/internal/MenuMessage/MenuMessage.styles.js.map +0 -1
  857. package/internal/MobilePopup/MobilePopup.styles.d.ts +0 -17
  858. package/internal/MobilePopup/MobilePopup.styles.js +0 -57
  859. package/internal/MobilePopup/MobilePopup.styles.js.map +0 -1
  860. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +0 -7
  861. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +0 -25
  862. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +0 -1
  863. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +0 -14
  864. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +0 -47
  865. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +0 -1
  866. package/internal/NativeDateInput/NativeDateInput.styles.d.ts +0 -3
  867. package/internal/NativeDateInput/NativeDateInput.styles.js +0 -15
  868. package/internal/NativeDateInput/NativeDateInput.styles.js.map +0 -1
  869. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +0 -3
  870. package/internal/NativeTimeInput/NativeTimeInput.styles.js +0 -15
  871. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +0 -1
  872. package/internal/Popup/Popup.styles.d.ts +0 -22
  873. package/internal/Popup/Popup.styles.js +0 -69
  874. package/internal/Popup/Popup.styles.js.map +0 -1
  875. package/internal/Popup/PopupPin.styles.d.ts +0 -9
  876. package/internal/Popup/PopupPin.styles.js +0 -33
  877. package/internal/Popup/PopupPin.styles.js.map +0 -1
  878. package/internal/PopupMenu/PopupMenu.styles.d.ts +0 -4
  879. package/internal/PopupMenu/PopupMenu.styles.js +0 -18
  880. package/internal/PopupMenu/PopupMenu.styles.js.map +0 -1
  881. package/internal/ResizeDetector/ResizeDetector.styles.d.ts +0 -7
  882. package/internal/ResizeDetector/ResizeDetector.styles.js +0 -27
  883. package/internal/ResizeDetector/ResizeDetector.styles.js.map +0 -1
  884. package/internal/SpinnerIcon/SpinnerIcon.styles.d.ts +0 -6
  885. package/internal/SpinnerIcon/SpinnerIcon.styles.js +0 -24
  886. package/internal/SpinnerIcon/SpinnerIcon.styles.js.map +0 -1
  887. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
  888. package/internal/TextWidthHelper/TextWidthHelper.styles.js +0 -18
  889. package/internal/TextWidthHelper/TextWidthHelper.styles.js.map +0 -1
  890. package/internal/TimeInput/TimeFragments.styles.d.ts +0 -32
  891. package/internal/TimeInput/TimeFragments.styles.js +0 -78
  892. package/internal/TimeInput/TimeFragments.styles.js.map +0 -1
  893. package/internal/TimeInput/TimeInput.styles.d.ts +0 -7
  894. package/internal/TimeInput/TimeInput.styles.js +0 -24
  895. package/internal/TimeInput/TimeInput.styles.js.map +0 -1
  896. package/internal/icons2022/BaseIcon.styles.d.ts +0 -3
  897. package/internal/icons2022/BaseIcon.styles.js +0 -16
  898. package/internal/icons2022/BaseIcon.styles.js.map +0 -1
  899. package/lib/Upgrades.d.ts +0 -6
  900. package/lib/Upgrades.js +0 -34
  901. package/lib/Upgrades.js.map +0 -1
  902. package/lib/styles/UiFont.d.ts +0 -3
  903. package/lib/styles/UiFont.js +0 -18
  904. package/lib/styles/UiFont.js.map +0 -1
  905. package/lib/theming/AnimationKeyframes.d.ts +0 -7
  906. package/lib/theming/AnimationKeyframes.js +0 -24
  907. package/lib/theming/AnimationKeyframes.js.map +0 -1
  908. package/typings/stylis-plugin-extra-scope.d.ts +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"PopupPin.js","sourceRoot":"","sources":["PopupPin.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator.js';\nimport { getDOMRect } from '../../lib/dom/getDOMRect.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport * as LayoutEvents from '../../lib/LayoutEvents.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { PopupDataTids } from './Popup.js';\nimport type { PositionObject, Rect } from './PopupHelper.js';\nimport { PopupHelper } from './PopupHelper.js';\nimport { getStyles } from './PopupPin.styles.js';\n\ninterface PopupPinProps {\n /** Цвет фона пина */\n backgroundColor: string;\n\n /** Смещение пина от края попапа. Край задаётся в пропе position вторым словом */\n offset: number;\n\n /** Ссылка на попап */\n popupElement?: Nullable<Element>;\n\n /** Позиция попапа, по которой будет вычислено положение пина */\n popupPosition: string;\n\n /**\n * Высота пина в px. Ширина основания = 2 × size для top/bottom, для left/right наоборот.\n */\n size: number;\n}\n\ninterface ClampedPinPosition {\n left: number;\n top: number;\n hidden: boolean;\n}\n\n@withRenderEnvironment\n@responsiveLayout\nexport class PopupPin extends React.Component<PopupPinProps> {\n public static __KONTUR_REACT_UI__ = 'PopupPin';\n public static displayName = 'PopupPin';\n\n private positionObject!: PositionObject;\n private theme!: Theme;\n private isMobileLayout!: boolean;\n\n private styles!: ReturnType<typeof getStyles>;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private globalObject!: GlobalObject;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>> = null;\n private layoutUpdateId: Nullable<number> = null;\n private cachedPopupElement: Nullable<Element> = null;\n\n public componentDidMount() {\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent, this.globalObject);\n this.scheduleRemeasure();\n }\n\n public componentDidUpdate(prevProps: PopupPinProps) {\n if (\n prevProps.popupPosition !== this.props.popupPosition ||\n prevProps.offset !== this.props.offset ||\n prevProps.popupElement !== this.props.popupElement\n ) {\n this.scheduleRemeasure();\n }\n }\n\n public componentWillUnmount() {\n this.cancelScheduledRemeasure();\n this.layoutEventsToken?.remove();\n this.layoutEventsToken = null;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderPinContent();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderPinContent() {\n this.styles = getStyles(this.emotion);\n\n if (this.props.popupElement) {\n this.cachedPopupElement = this.props.popupElement;\n }\n\n const popupElement = this.props.popupElement || this.cachedPopupElement;\n\n if (!popupElement) {\n return null;\n }\n\n this.positionObject = PopupHelper.getPositionObject(this.props.popupPosition);\n\n const coords = this.getPinCoordinates(popupElement);\n if (!coords || typeof coords.left !== 'number' || typeof coords.top !== 'number') {\n return null;\n }\n\n const popupRect = this.getPopupElementRect(popupElement);\n const clampedPosition = this.applyEdgeClamp(coords, popupRect);\n const inlineStyle = this.getPinInlineStyle(clampedPosition.left, clampedPosition.top);\n const directionalStyle = this.getPinDirectionalStyle();\n if (!inlineStyle || !directionalStyle) {\n return null;\n }\n\n const pinEdgePadding = this.getPinEdgePadding();\n\n return (\n <div\n data-tid={PopupDataTids.popupPin}\n className={this.cx(\n this.styles.pin(),\n pinEdgePadding > 0 && this.styles.pinAnimated(),\n clampedPosition.hidden && this.styles.pinHidden(),\n directionalStyle,\n )}\n style={inlineStyle}\n ></div>\n );\n }\n\n private getPinEdgePadding(): number {\n return PopupHelper.getPopupViewportSidePadding(this.theme, this.isMobileLayout);\n }\n\n private handleLayoutEvent = () => {\n this.scheduleRemeasure();\n };\n\n private scheduleRemeasure() {\n this.cancelScheduledRemeasure();\n this.layoutUpdateId = this.globalObject.requestAnimationFrame?.(() => {\n this.layoutUpdateId = null;\n this.forceUpdate();\n });\n }\n\n private cancelScheduledRemeasure() {\n if (this.layoutUpdateId && this.layoutUpdateId !== null) {\n this.globalObject.cancelAnimationFrame?.(this.layoutUpdateId);\n this.layoutUpdateId = null;\n }\n }\n\n private getPopupOppositeDirection() {\n const popupDirection = PopupHelper.getPositionObject(this.props.popupPosition).direction;\n switch (popupDirection) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n warning(\n false,\n `Can't get opposite direction: invalid direction ${popupDirection}. Must be one of - 'top', 'bottom', 'left', 'right'.`,\n );\n return 'bottom';\n }\n }\n\n private getPinInlineStyle = (left: number, top: number) => {\n const direction = this.getPopupOppositeDirection();\n if (!direction) {\n return;\n }\n\n // Добавляем запас в 1px, чтобы пофиксить случайные отделения пинов\n const correctedLeft = left - 1;\n const correctedTop = top - 1;\n const correctedSize = this.props.size + 1;\n\n const defaultPinInlineStyle = {\n [direction]: -this.props.size + 'px',\n left: correctedLeft + 'px',\n width: correctedSize * 2 + 'px',\n height: correctedSize + 'px',\n backgroundColor: this.props.backgroundColor,\n };\n\n switch (direction) {\n case 'top':\n case 'bottom':\n return defaultPinInlineStyle;\n case 'left':\n case 'right':\n return {\n [direction]: -this.props.size + 'px',\n top: correctedTop + 'px',\n height: correctedSize * 2 + 'px',\n width: correctedSize + 'px',\n backgroundColor: this.props.backgroundColor,\n };\n default:\n warning(\n false,\n `Can't get inline style: invalid direction '${direction}'. Must be one of - 'top', 'right', 'bottom', 'left'.`,\n );\n return defaultPinInlineStyle;\n }\n };\n\n private clampValue(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n }\n\n private applyEdgeClamp(coords: { left: number; top: number }, popupRect: Rect): ClampedPinPosition {\n const pinEdgePadding = this.getPinEdgePadding();\n\n if (pinEdgePadding <= 0) {\n return { left: coords.left, top: coords.top, hidden: false };\n }\n\n const { direction } = this.positionObject;\n const pinSpan = 2 * this.props.size;\n\n if (direction === 'top' || direction === 'bottom') {\n const minLeft = pinEdgePadding;\n const maxLeft = popupRect.width - pinSpan - pinEdgePadding;\n const clampedLeft = this.clampValue(coords.left, minLeft, maxLeft);\n const centerOffset = coords.left - clampedLeft;\n\n return {\n left: clampedLeft,\n top: coords.top,\n hidden: centerOffset !== 0,\n };\n }\n\n const minTop = pinEdgePadding;\n const maxTop = popupRect.height - pinSpan - pinEdgePadding;\n const clampedTop = this.clampValue(coords.top, minTop, maxTop);\n const centerOffset = coords.top - clampedTop;\n\n return {\n left: coords.left,\n top: clampedTop,\n hidden: centerOffset !== 0,\n };\n }\n\n private getPopupElementRect(popupElement: Element): Rect {\n const rect = getDOMRect(popupElement);\n\n return {\n top: 0,\n left: 0,\n width: rect.width,\n height: rect.height,\n };\n }\n\n private getPinCoordinates = (popupElement: Element) => {\n const popupRect = this.getPopupElementRect(popupElement);\n const { direction, align } = this.positionObject;\n\n switch (direction) {\n case 'top':\n return {\n top: popupRect.height,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n case 'bottom':\n return {\n top: -2 * this.props.size,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n case 'left':\n return {\n top: this.getPinTopCoordinate(popupRect, align),\n left: popupRect.width,\n };\n case 'right':\n return {\n top: this.getPinTopCoordinate(popupRect, align),\n left: -2 * this.props.size,\n };\n default:\n warning(\n false,\n `Can't get coordinates: invalid direction '${direction}'. Must be one of - 'top', 'right', 'bottom', 'left'.`,\n );\n return {\n top: popupRect.height,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n }\n };\n\n private getPinTopCoordinate = (popupRect: Rect, align: string) => {\n const defaultTopCoordinate = this.props.offset;\n switch (align) {\n case 'top':\n return defaultTopCoordinate;\n case 'middle':\n return popupRect.height / 2 - this.props.size;\n case 'bottom':\n return popupRect.height - this.props.offset - 2 * this.props.size;\n default:\n warning(\n false,\n `Can't get top coordinate: invalid align '${align}'. Must be one of - 'top', 'middle', 'bottom'.`,\n );\n return defaultTopCoordinate;\n }\n };\n\n private getPinLeftCoordinate = (popupRect: Rect, align: string) => {\n const defaultLetfCoordinate = popupRect.width / 2 - this.props.size;\n switch (align) {\n case 'left':\n return this.props.offset;\n case 'center':\n return defaultLetfCoordinate + this.props.offset;\n case 'right':\n return popupRect.width - this.props.offset - 2 * this.props.size;\n default:\n warning(\n false,\n `Can't get left coordinate: invalid align '${align}'. Must be one of - 'left', 'center', 'right'.`,\n );\n return defaultLetfCoordinate;\n }\n };\n\n private getPinDirectionalStyle = () => {\n switch (this.positionObject.direction) {\n case 'top':\n return this.styles.pinTop();\n case 'bottom':\n return this.styles.pinBottom();\n case 'left':\n return this.styles.pinLeft();\n case 'right':\n return this.styles.pinRight();\n default:\n warning(\n false,\n `Can't get directional style: invalid direction '${this.positionObject.direction}'. Must be one of - 'top', 'right', 'bottom', 'left'.`,\n );\n return this.styles.pinTop();\n }\n };\n}\n"]}
1
+ {"version":3,"file":"PopupPin.js","sourceRoot":"","sources":["PopupPin.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport warning from 'warning';\n\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator.js';\nimport { cx } from '../../lib/cx.js';\nimport { getDOMRect } from '../../lib/dom/getDOMRect.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport * as LayoutEvents from '../../lib/LayoutEvents.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { PopupDataTids } from './Popup.js';\nimport type { PositionObject, Rect } from './PopupHelper.js';\nimport { PopupHelper } from './PopupHelper.js';\nimport { styles } from './PopupPin.css.js';\n\ninterface PopupPinProps {\n /** Цвет фона пина */\n backgroundColor: string;\n\n /** Смещение пина от края попапа. Край задаётся в пропе position вторым словом */\n offset: number;\n\n /** Ссылка на попап */\n popupElement?: Nullable<Element>;\n\n /** Позиция попапа, по которой будет вычислено положение пина */\n popupPosition: string;\n\n /**\n * Высота пина в px. Ширина основания = 2 × size для top/bottom, для left/right наоборот.\n */\n size: number;\n}\n\ninterface ClampedPinPosition {\n left: number;\n top: number;\n hidden: boolean;\n}\n\n@withRenderEnvironment\n@responsiveLayout\nexport class PopupPin extends React.Component<PopupPinProps> {\n public static __KONTUR_REACT_UI__ = 'PopupPin';\n public static displayName = 'PopupPin';\n\n private positionObject!: PositionObject;\n private theme!: Theme;\n private isMobileLayout!: boolean;\n\n private globalObject!: GlobalObject;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>> = null;\n private layoutUpdateId: Nullable<number> = null;\n private cachedPopupElement: Nullable<Element> = null;\n\n public componentDidMount() {\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent, this.globalObject);\n this.scheduleRemeasure();\n }\n\n public componentDidUpdate(prevProps: PopupPinProps) {\n if (\n prevProps.popupPosition !== this.props.popupPosition ||\n prevProps.offset !== this.props.offset ||\n prevProps.popupElement !== this.props.popupElement\n ) {\n this.scheduleRemeasure();\n }\n }\n\n public componentWillUnmount() {\n this.cancelScheduledRemeasure();\n this.layoutEventsToken?.remove();\n this.layoutEventsToken = null;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderPinContent();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderPinContent() {\n if (this.props.popupElement) {\n this.cachedPopupElement = this.props.popupElement;\n }\n\n const popupElement = this.props.popupElement || this.cachedPopupElement;\n\n if (!popupElement) {\n return null;\n }\n\n this.positionObject = PopupHelper.getPositionObject(this.props.popupPosition);\n\n const coords = this.getPinCoordinates(popupElement);\n if (!coords || typeof coords.left !== 'number' || typeof coords.top !== 'number') {\n return null;\n }\n\n const popupRect = this.getPopupElementRect(popupElement);\n const clampedPosition = this.applyEdgeClamp(coords, popupRect);\n const inlineStyle = this.getPinInlineStyle(clampedPosition.left, clampedPosition.top);\n const directionalStyle = this.getPinDirectionalStyle();\n if (!inlineStyle || !directionalStyle) {\n return null;\n }\n\n const pinEdgePadding = this.getPinEdgePadding();\n\n return (\n <div\n data-tid={PopupDataTids.popupPin}\n className={cx(\n styles.pin,\n pinEdgePadding > 0 && styles.pinAnimated,\n clampedPosition.hidden && styles.pinHidden,\n directionalStyle,\n )}\n style={inlineStyle}\n ></div>\n );\n }\n\n private getPinEdgePadding(): number {\n return PopupHelper.getPopupViewportSidePadding(this.theme, this.isMobileLayout);\n }\n\n private handleLayoutEvent = () => {\n this.scheduleRemeasure();\n };\n\n private scheduleRemeasure() {\n this.cancelScheduledRemeasure();\n this.layoutUpdateId = this.globalObject.requestAnimationFrame?.(() => {\n this.layoutUpdateId = null;\n this.forceUpdate();\n });\n }\n\n private cancelScheduledRemeasure() {\n if (this.layoutUpdateId && this.layoutUpdateId !== null) {\n this.globalObject.cancelAnimationFrame?.(this.layoutUpdateId);\n this.layoutUpdateId = null;\n }\n }\n\n private getPopupOppositeDirection() {\n const popupDirection = PopupHelper.getPositionObject(this.props.popupPosition).direction;\n switch (popupDirection) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n warning(\n false,\n `Can't get opposite direction: invalid direction ${popupDirection}. Must be one of - 'top', 'bottom', 'left', 'right'.`,\n );\n return 'bottom';\n }\n }\n\n private getPinInlineStyle = (left: number, top: number) => {\n const direction = this.getPopupOppositeDirection();\n if (!direction) {\n return;\n }\n\n // Добавляем запас в 1px, чтобы пофиксить случайные отделения пинов\n const correctedLeft = left - 1;\n const correctedTop = top - 1;\n const correctedSize = this.props.size + 1;\n\n const defaultPinInlineStyle = {\n [direction]: -this.props.size + 'px',\n left: correctedLeft + 'px',\n width: correctedSize * 2 + 'px',\n height: correctedSize + 'px',\n backgroundColor: this.props.backgroundColor,\n };\n\n switch (direction) {\n case 'top':\n case 'bottom':\n return defaultPinInlineStyle;\n case 'left':\n case 'right':\n return {\n [direction]: -this.props.size + 'px',\n top: correctedTop + 'px',\n height: correctedSize * 2 + 'px',\n width: correctedSize + 'px',\n backgroundColor: this.props.backgroundColor,\n };\n default:\n warning(\n false,\n `Can't get inline style: invalid direction '${direction}'. Must be one of - 'top', 'right', 'bottom', 'left'.`,\n );\n return defaultPinInlineStyle;\n }\n };\n\n private clampValue(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n }\n\n private applyEdgeClamp(coords: { left: number; top: number }, popupRect: Rect): ClampedPinPosition {\n const pinEdgePadding = this.getPinEdgePadding();\n\n if (pinEdgePadding <= 0) {\n return { left: coords.left, top: coords.top, hidden: false };\n }\n\n const { direction } = this.positionObject;\n const pinSpan = 2 * this.props.size;\n\n if (direction === 'top' || direction === 'bottom') {\n const minLeft = pinEdgePadding;\n const maxLeft = popupRect.width - pinSpan - pinEdgePadding;\n const clampedLeft = this.clampValue(coords.left, minLeft, maxLeft);\n const centerOffset = coords.left - clampedLeft;\n\n return {\n left: clampedLeft,\n top: coords.top,\n hidden: centerOffset !== 0,\n };\n }\n\n const minTop = pinEdgePadding;\n const maxTop = popupRect.height - pinSpan - pinEdgePadding;\n const clampedTop = this.clampValue(coords.top, minTop, maxTop);\n const centerOffset = coords.top - clampedTop;\n\n return {\n left: coords.left,\n top: clampedTop,\n hidden: centerOffset !== 0,\n };\n }\n\n private getPopupElementRect(popupElement: Element): Rect {\n const rect = getDOMRect(popupElement);\n\n return {\n top: 0,\n left: 0,\n width: rect.width,\n height: rect.height,\n };\n }\n\n private getPinCoordinates = (popupElement: Element) => {\n const popupRect = this.getPopupElementRect(popupElement);\n const { direction, align } = this.positionObject;\n\n switch (direction) {\n case 'top':\n return {\n top: popupRect.height,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n case 'bottom':\n return {\n top: -2 * this.props.size,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n case 'left':\n return {\n top: this.getPinTopCoordinate(popupRect, align),\n left: popupRect.width,\n };\n case 'right':\n return {\n top: this.getPinTopCoordinate(popupRect, align),\n left: -2 * this.props.size,\n };\n default:\n warning(\n false,\n `Can't get coordinates: invalid direction '${direction}'. Must be one of - 'top', 'right', 'bottom', 'left'.`,\n );\n return {\n top: popupRect.height,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n }\n };\n\n private getPinTopCoordinate = (popupRect: Rect, align: string) => {\n const defaultTopCoordinate = this.props.offset;\n switch (align) {\n case 'top':\n return defaultTopCoordinate;\n case 'middle':\n return popupRect.height / 2 - this.props.size;\n case 'bottom':\n return popupRect.height - this.props.offset - 2 * this.props.size;\n default:\n warning(\n false,\n `Can't get top coordinate: invalid align '${align}'. Must be one of - 'top', 'middle', 'bottom'.`,\n );\n return defaultTopCoordinate;\n }\n };\n\n private getPinLeftCoordinate = (popupRect: Rect, align: string) => {\n const defaultLetfCoordinate = popupRect.width / 2 - this.props.size;\n switch (align) {\n case 'left':\n return this.props.offset;\n case 'center':\n return defaultLetfCoordinate + this.props.offset;\n case 'right':\n return popupRect.width - this.props.offset - 2 * this.props.size;\n default:\n warning(\n false,\n `Can't get left coordinate: invalid align '${align}'. Must be one of - 'left', 'center', 'right'.`,\n );\n return defaultLetfCoordinate;\n }\n };\n\n private getPinDirectionalStyle = () => {\n switch (this.positionObject.direction) {\n case 'top':\n return styles.pinTop;\n case 'bottom':\n return styles.pinBottom;\n case 'left':\n return styles.pinLeft;\n case 'right':\n return styles.pinRight;\n default:\n warning(\n false,\n `Can't get directional style: invalid direction '${this.positionObject.direction}'. Must be one of - 'top', 'right', 'bottom', 'left'.`,\n );\n return styles.pinTop;\n }\n };\n}\n"]}
@@ -0,0 +1,6 @@
1
+ export declare const caption: string;
2
+ export declare const container: string;
3
+ export declare const styles: {
4
+ caption: string;
5
+ container: string;
6
+ };
@@ -0,0 +1,4 @@
1
+
2
+ export var caption = 'react-ui-PopupMenu__caption';
3
+ export var container = 'react-ui-PopupMenu__container';
4
+ export var styles = {caption:'react-ui-PopupMenu__caption',container:'react-ui-PopupMenu__container'};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopupMenu.css.js","sourceRoot":"","sources":["PopupMenu.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,MAAM,CAAC,IAAM,OAAO,GAAG,KAAK,CAAC;IAC3B,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,MAAM;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,SAAS,GAAG,KAAK,CAAC;IAC7B,OAAO,EAAE,cAAc;IACvB,UAAU,EAAE,QAAQ;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,MAAM,GAAG,EAAE,OAAO,SAAA,EAAE,SAAS,WAAA,EAAE,CAAC","sourcesContent":["import { style } from '@vanilla-extract/css';\n\nexport const caption = style({\n display: 'inline-block',\n width: '100%',\n});\n\nexport const container = style({\n display: 'inline-block',\n lineHeight: 'normal',\n});\n\nexport const styles = { caption, container };\n"]}
@@ -63,8 +63,6 @@ export declare class PopupMenu extends React.Component<PopupMenuProps, PopupMenu
63
63
  static __KONTUR_REACT_UI__: string;
64
64
  static displayName: string;
65
65
  private globalObject;
66
- private emotion;
67
- private styles;
68
66
  private isMobileLayout;
69
67
  private rootId;
70
68
  static defaultProps: DefaultProps;
@@ -36,6 +36,7 @@ import { createPropsGetter } from '../../lib/createPropsGetter.js';
36
36
  import { isKeyArrowVertical, isKeyEnter, isKeyEscape, isKeySpace, someKeys, } from '../../lib/events/keyboard/identifiers.js';
37
37
  import { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';
38
38
  import { rootNode } from '../../lib/rootNode/index.js';
39
+ import { memoizeTheme } from '../../lib/theming/memoizeTheme.js';
39
40
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
40
41
  import { ThemeFactory } from '../../lib/theming/ThemeFactory.js';
41
42
  import { getRandomID } from '../../lib/utils.js';
@@ -43,9 +44,12 @@ import { CommonWrapper } from '../CommonWrapper/index.js';
43
44
  import { Menu } from '../Menu/index.js';
44
45
  import { Popup, PopupIds } from '../Popup/index.js';
45
46
  import { RenderLayer } from '../RenderLayer/index.js';
46
- import { getStyles } from './PopupMenu.styles.js';
47
+ import { styles } from './PopupMenu.css.js';
47
48
  import { PopupMenuDataTids } from './tids.js';
48
49
  import { isValidPositions } from './validatePositions.js';
50
+ var getPopupMenuTheme = memoizeTheme(function (theme) {
51
+ return ThemeFactory.create({ menuOffsetY: theme.popupMenuMenuOffsetY }, theme);
52
+ });
49
53
  export * from './tids.js';
50
54
  export var PopupMenuType = {
51
55
  Dropdown: 'dropdown',
@@ -110,13 +114,13 @@ var PopupMenu = /** @class */ (function (_super) {
110
114
  toggleMenu: _this.toggleMenu,
111
115
  corners: _this.props.corners,
112
116
  });
113
- return (React.createElement("span", { "data-tid": PopupMenuDataTids.caption, className: _this.styles.caption(), ref: function (element) {
117
+ return (React.createElement("span", { "data-tid": PopupMenuDataTids.caption, className: styles.caption, ref: function (element) {
114
118
  _this.captionWrapper = element;
115
119
  } }, _this.passPropsToCaption(caption)));
116
120
  }
117
121
  return (React.createElement("span", { "data-tid": PopupMenuDataTids.caption, onClick: _this.handleCaptionClick, onKeyDown: _this.handleCaptionKeyDown, ref: function (element) {
118
122
  _this.captionWrapper = element;
119
- }, className: _this.styles.caption() }, _this.passPropsToCaption(_this.props.caption)));
123
+ }, className: styles.caption }, _this.passPropsToCaption(_this.props.caption)));
120
124
  };
121
125
  _this.hideMenuWithoutFocusing = function () { return _this.hideMenu(); };
122
126
  _this.showMenu = function (firstItemShouldBeSelected) {
@@ -178,11 +182,8 @@ var PopupMenu = /** @class */ (function (_super) {
178
182
  PopupMenu_1 = PopupMenu;
179
183
  PopupMenu.prototype.render = function () {
180
184
  var _this = this;
181
- this.styles = getStyles(this.emotion);
182
185
  return (React.createElement(ThemeContext.Consumer, null, function (theme) {
183
- return (React.createElement(ThemeContext.Provider, { value: ThemeFactory.create({
184
- menuOffsetY: theme.popupMenuMenuOffsetY,
185
- }, theme) }, _this.renderMain()));
186
+ return React.createElement(ThemeContext.Provider, { value: getPopupMenuTheme(theme) }, _this.renderMain());
186
187
  }));
187
188
  };
188
189
  PopupMenu.prototype.renderMain = function () {
@@ -190,7 +191,7 @@ var PopupMenu = /** @class */ (function (_super) {
190
191
  var _b = this.getProps(), popupHasPin = _b.popupHasPin, disableAnimations = _b.disableAnimations;
191
192
  return (React.createElement(CommonWrapper, __assign({ rootNodeRef: this.setRootNode }, this.props),
192
193
  React.createElement(RenderLayer, { onClickOutside: this.hideMenuWithoutFocusing, onFocusOutside: this.hideMenuWithoutFocusing, active: this.state.menuVisible },
193
- React.createElement("div", { "data-tid": PopupMenuDataTids.root, className: this.styles.container(), style: { width: this.props.width } },
194
+ React.createElement("div", { "data-tid": PopupMenuDataTids.root, className: styles.container, style: { width: this.props.width } },
194
195
  this.renderCaption(),
195
196
  this.captionWrapper && this.props.children && (React.createElement(Popup, { id: (_a = this.props.popupMenuId) !== null && _a !== void 0 ? _a : this.rootId, anchorElement: this.captionWrapper, opened: this.state.menuVisible, hasShadow: true, margin: this.props.popupMargin, hasPin: popupHasPin, pinOffset: this.props.popupPinOffset, positions: this.getPositions(), disableAnimations: disableAnimations, onOpen: this.handleOpen, mobileOnCloseRequest: this.hideMenu, width: this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto' },
196
197
  React.createElement(Menu, { maxHeight: this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none', onKeyDown: this.handleKeyDown, onItemClick: this.handleItemSelection, preventIconsOffset: this.props.preventIconsOffset, cyclicSelection: false, ref: this.menuRef, initialSelectedItemIndex: this.state.firstItemShouldBeSelected ? 0 : -1, header: this.props.header, footer: this.props.footer }, this.props.children)))))));
@@ -1 +1 @@
1
- {"version":3,"file":"PopupMenu.js","sourceRoot":"","sources":["PopupMenu.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 { responsiveLayout } from '../../components/ResponsiveLayout/decorator.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers.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 { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport { getRandomID } from '../../lib/utils.js';\nimport type { HTMLProps } from '../../typings/html.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { CommonProps } from '../CommonWrapper/index.js';\nimport { CommonWrapper } from '../CommonWrapper/index.js';\nimport { Menu } from '../Menu/index.js';\nimport type { MenuProps } from '../Menu/index.js';\nimport { Popup, PopupIds } from '../Popup/index.js';\nimport type { PopupPositionsType } from '../Popup/index.js';\nimport { RenderLayer } from '../RenderLayer/index.js';\nimport { getStyles } from './PopupMenu.styles.js';\nimport { PopupMenuDataTids } from './tids.js';\nimport { isValidPositions } from './validatePositions.js';\n\nexport * from './tids.js';\n\nexport interface PopupMenuCaptionProps {\n opened: boolean;\n openMenu: (firstItemShouldBeSelected?: boolean) => void;\n closeMenu: (restoreFocus?: boolean) => void;\n toggleMenu: () => void;\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\nexport interface PopupMenuProps\n extends\n CommonProps,\n Pick<MenuProps, 'preventIconsOffset'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<AriaAttributes, 'aria-label'> {\n children?: React.ReactNode;\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Ширина контейнера и caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо ```caption```,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: React.ReactNode | ((props: PopupMenuCaptionProps) => React.ReactNode);\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n /** Массив разрешенных положений меню относительно caption'а. */\n positions?: PopupPositionsType[];\n /** Колбэк, вызываемый после открытия/закрытия меню */\n onChangeMenuState?: (isOpened: boolean, restoreFocus: boolean) => void;\n /** Пропсы, передающиеся в Popup */\n popupHasPin?: boolean;\n popupMargin?: number;\n popupPinOffset?: number;\n type?: 'dropdown' | 'tooltip';\n disableAnimations?: boolean;\n /** Действие при открытии меню. */\n onOpen?: () => void;\n /** Действие при закрытии меню. */\n onClose?: () => void;\n /** `id` выпадающего меню. */\n popupMenuId?: HTMLProps['id'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n 'left top',\n 'left middle',\n 'left bottom',\n];\n\ntype DefaultProps = Required<Pick<PopupMenuProps, 'positions' | 'type' | 'popupHasPin' | 'disableAnimations'>>;\n\n@withRenderEnvironment\n@rootNode\n@responsiveLayout\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n public static displayName = 'PopupMenu';\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private styles!: ReturnType<typeof getStyles>;\n private isMobileLayout!: boolean;\n private rootId = PopupIds.root + getRandomID();\n\n public static defaultProps: DefaultProps = {\n positions: Positions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n disableAnimations: false,\n };\n\n private getProps = createPropsGetter(PopupMenu.defaultProps);\n\n public static Type = PopupMenuType;\n\n public state = {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n };\n\n private captionWrapper: HTMLSpanElement | null = null;\n private savedFocusableElement: HTMLElement | null = null;\n private menu: Nullable<Menu> = null;\n private shouldRestoreFocusOnClose = false;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n menuOffsetY: theme.popupMenuMenuOffsetY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { popupHasPin, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div\n data-tid={PopupMenuDataTids.root}\n className={this.styles.container()}\n style={{ width: this.props.width }}\n >\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n id={this.props.popupMenuId ?? this.rootId}\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={disableAnimations}\n onOpen={this.handleOpen}\n mobileOnCloseRequest={this.hideMenu}\n width={this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto'}\n >\n <Menu\n maxHeight={this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n onItemClick={this.handleItemSelection}\n preventIconsOffset={this.props.preventIconsOffset}\n cyclicSelection={false}\n ref={this.menuRef}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </Menu>\n </Popup>\n )}\n </div>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n public open = (): void => this.showMenu();\n public close = (): void => this.hideMenu();\n\n public componentDidUpdate(_prevProps: PopupMenuProps, prevState: PopupMenuState): void {\n if (prevState.menuVisible === this.state.menuVisible) {\n return;\n }\n\n const focusShouldBeRestored = !this.state.menuVisible && this.shouldRestoreFocusOnClose;\n\n if (focusShouldBeRestored) {\n this.restoreFocus();\n }\n\n if (this.state.menuVisible) {\n this.props.onOpen?.();\n } else {\n this.props.onClose?.();\n this.shouldRestoreFocusOnClose = false;\n }\n\n this.props.onChangeMenuState?.(this.state.menuVisible, focusShouldBeRestored);\n }\n\n private menuRef = (element: Nullable<Menu>) => {\n this.menu = element;\n };\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private passPropsToCaption = (caption: React.ReactNode) => {\n if (typeof caption === 'string' || typeof caption === 'number') {\n return caption;\n }\n\n return React.cloneElement(caption as React.ReactElement<any>, {\n id: this.props.id,\n 'aria-controls': this.props.popupMenuId ?? this.rootId,\n 'aria-expanded': this.state.menuVisible ? 'true' : 'false',\n 'aria-label': this.props['aria-label'],\n });\n };\n\n private renderCaption = () => {\n if (typeof this.props.caption === 'function') {\n const caption = this.props.caption({\n opened: this.state.menuVisible,\n openMenu: this.showMenu,\n closeMenu: this.hideMenu,\n toggleMenu: this.toggleMenu,\n corners: this.props.corners,\n });\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n className={this.styles.caption()}\n ref={(element) => {\n this.captionWrapper = element;\n }}\n >\n {this.passPropsToCaption(caption)}\n </span>\n );\n }\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => {\n this.captionWrapper = element;\n }}\n className={this.styles.caption()}\n >\n {this.passPropsToCaption(this.props.caption)}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions(): Readonly<PopupPositionsType[]> {\n const positions = this.getProps().positions;\n if (positions && isValidPositions(positions)) {\n return positions;\n }\n\n return Positions;\n }\n\n private showMenu = (firstItemShouldBeSelected?: boolean): void => {\n this.saveFocus();\n this.shouldRestoreFocusOnClose = false;\n this.setState({\n menuVisible: true,\n firstItemShouldBeSelected,\n });\n };\n\n private hideMenu = (restoreFocus?: boolean): void => {\n this.shouldRestoreFocusOnClose = !!restoreFocus;\n this.setState({\n menuVisible: false,\n firstItemShouldBeSelected: false,\n });\n };\n\n private toggleMenu = (): void => {\n this.state.menuVisible ? this.hideMenu() : this.showMenu();\n };\n\n private handleCaptionClick = (): void => {\n this.toggleMenu();\n };\n\n private handleCaptionKeyDown = (e: React.KeyboardEvent<HTMLElement>): void => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n this.showMenu(true);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEscape(e)) {\n const restoreFocus = true;\n this.hideMenu(restoreFocus);\n }\n };\n\n private saveFocus = (): void => {\n if (this.globalObject.document) {\n this.savedFocusableElement = this.globalObject.document.activeElement as HTMLElement;\n }\n };\n\n private restoreFocus = (): void => {\n if (this.savedFocusableElement) {\n this.savedFocusableElement.focus();\n this.savedFocusableElement = null;\n }\n };\n\n private handleItemSelection = (event: React.SyntheticEvent<HTMLElement>): void => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.type === 'keydown') {\n event.preventDefault();\n }\n\n const restoreFocus = event.type === 'keydown';\n this.hideMenu(restoreFocus);\n };\n}\n"]}
1
+ {"version":3,"file":"PopupMenu.js","sourceRoot":"","sources":["PopupMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaAttributes, HTMLAttributes, JSX } from 'react';\nimport React from 'react';\n\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers.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 { memoizeTheme } from '../../lib/theming/memoizeTheme.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport { getRandomID } from '../../lib/utils.js';\nimport type { HTMLProps } from '../../typings/html.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { CommonProps } from '../CommonWrapper/index.js';\nimport { CommonWrapper } from '../CommonWrapper/index.js';\nimport { Menu } from '../Menu/index.js';\nimport type { MenuProps } from '../Menu/index.js';\nimport { Popup, PopupIds } from '../Popup/index.js';\nimport type { PopupPositionsType } from '../Popup/index.js';\nimport { RenderLayer } from '../RenderLayer/index.js';\nimport { styles } from './PopupMenu.css.js';\nimport { PopupMenuDataTids } from './tids.js';\nimport { isValidPositions } from './validatePositions.js';\n\nconst getPopupMenuTheme = memoizeTheme((theme: Theme) =>\n ThemeFactory.create({ menuOffsetY: theme.popupMenuMenuOffsetY }, theme),\n);\n\nexport * from './tids.js';\n\nexport interface PopupMenuCaptionProps {\n opened: boolean;\n openMenu: (firstItemShouldBeSelected?: boolean) => void;\n closeMenu: (restoreFocus?: boolean) => void;\n toggleMenu: () => void;\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\nexport interface PopupMenuProps\n extends\n CommonProps,\n Pick<MenuProps, 'preventIconsOffset'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<AriaAttributes, 'aria-label'> {\n children?: React.ReactNode;\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Ширина контейнера и caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо ```caption```,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: React.ReactNode | ((props: PopupMenuCaptionProps) => React.ReactNode);\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n /** Массив разрешенных положений меню относительно caption'а. */\n positions?: PopupPositionsType[];\n /** Колбэк, вызываемый после открытия/закрытия меню */\n onChangeMenuState?: (isOpened: boolean, restoreFocus: boolean) => void;\n /** Пропсы, передающиеся в Popup */\n popupHasPin?: boolean;\n popupMargin?: number;\n popupPinOffset?: number;\n type?: 'dropdown' | 'tooltip';\n disableAnimations?: boolean;\n /** Действие при открытии меню. */\n onOpen?: () => void;\n /** Действие при закрытии меню. */\n onClose?: () => void;\n /** `id` выпадающего меню. */\n popupMenuId?: HTMLProps['id'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n 'left top',\n 'left middle',\n 'left bottom',\n];\n\ntype DefaultProps = Required<Pick<PopupMenuProps, 'positions' | 'type' | 'popupHasPin' | 'disableAnimations'>>;\n\n@withRenderEnvironment\n@rootNode\n@responsiveLayout\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n public static displayName = 'PopupMenu';\n\n private globalObject!: GlobalObject;\n private isMobileLayout!: boolean;\n private rootId = PopupIds.root + getRandomID();\n\n public static defaultProps: DefaultProps = {\n positions: Positions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n disableAnimations: false,\n };\n\n private getProps = createPropsGetter(PopupMenu.defaultProps);\n\n public static Type = PopupMenuType;\n\n public state = {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n };\n\n private captionWrapper: HTMLSpanElement | null = null;\n private savedFocusableElement: HTMLElement | null = null;\n private menu: Nullable<Menu> = null;\n private shouldRestoreFocusOnClose = false;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return <ThemeContext.Provider value={getPopupMenuTheme(theme)}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { popupHasPin, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div data-tid={PopupMenuDataTids.root} className={styles.container} style={{ width: this.props.width }}>\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n id={this.props.popupMenuId ?? this.rootId}\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={disableAnimations}\n onOpen={this.handleOpen}\n mobileOnCloseRequest={this.hideMenu}\n width={this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto'}\n >\n <Menu\n maxHeight={this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n onItemClick={this.handleItemSelection}\n preventIconsOffset={this.props.preventIconsOffset}\n cyclicSelection={false}\n ref={this.menuRef}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </Menu>\n </Popup>\n )}\n </div>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n public open = (): void => this.showMenu();\n public close = (): void => this.hideMenu();\n\n public componentDidUpdate(_prevProps: PopupMenuProps, prevState: PopupMenuState): void {\n if (prevState.menuVisible === this.state.menuVisible) {\n return;\n }\n\n const focusShouldBeRestored = !this.state.menuVisible && this.shouldRestoreFocusOnClose;\n\n if (focusShouldBeRestored) {\n this.restoreFocus();\n }\n\n if (this.state.menuVisible) {\n this.props.onOpen?.();\n } else {\n this.props.onClose?.();\n this.shouldRestoreFocusOnClose = false;\n }\n\n this.props.onChangeMenuState?.(this.state.menuVisible, focusShouldBeRestored);\n }\n\n private menuRef = (element: Nullable<Menu>) => {\n this.menu = element;\n };\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private passPropsToCaption = (caption: React.ReactNode) => {\n if (typeof caption === 'string' || typeof caption === 'number') {\n return caption;\n }\n\n return React.cloneElement(caption as React.ReactElement<any>, {\n id: this.props.id,\n 'aria-controls': this.props.popupMenuId ?? this.rootId,\n 'aria-expanded': this.state.menuVisible ? 'true' : 'false',\n 'aria-label': this.props['aria-label'],\n });\n };\n\n private renderCaption = () => {\n if (typeof this.props.caption === 'function') {\n const caption = this.props.caption({\n opened: this.state.menuVisible,\n openMenu: this.showMenu,\n closeMenu: this.hideMenu,\n toggleMenu: this.toggleMenu,\n corners: this.props.corners,\n });\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n className={styles.caption}\n ref={(element) => {\n this.captionWrapper = element;\n }}\n >\n {this.passPropsToCaption(caption)}\n </span>\n );\n }\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => {\n this.captionWrapper = element;\n }}\n className={styles.caption}\n >\n {this.passPropsToCaption(this.props.caption)}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions(): Readonly<PopupPositionsType[]> {\n const positions = this.getProps().positions;\n if (positions && isValidPositions(positions)) {\n return positions;\n }\n\n return Positions;\n }\n\n private showMenu = (firstItemShouldBeSelected?: boolean): void => {\n this.saveFocus();\n this.shouldRestoreFocusOnClose = false;\n this.setState({\n menuVisible: true,\n firstItemShouldBeSelected,\n });\n };\n\n private hideMenu = (restoreFocus?: boolean): void => {\n this.shouldRestoreFocusOnClose = !!restoreFocus;\n this.setState({\n menuVisible: false,\n firstItemShouldBeSelected: false,\n });\n };\n\n private toggleMenu = (): void => {\n this.state.menuVisible ? this.hideMenu() : this.showMenu();\n };\n\n private handleCaptionClick = (): void => {\n this.toggleMenu();\n };\n\n private handleCaptionKeyDown = (e: React.KeyboardEvent<HTMLElement>): void => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n this.showMenu(true);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEscape(e)) {\n const restoreFocus = true;\n this.hideMenu(restoreFocus);\n }\n };\n\n private saveFocus = (): void => {\n if (this.globalObject.document) {\n this.savedFocusableElement = this.globalObject.document.activeElement as HTMLElement;\n }\n };\n\n private restoreFocus = (): void => {\n if (this.savedFocusableElement) {\n this.savedFocusableElement.focus();\n this.savedFocusableElement = null;\n }\n };\n\n private handleItemSelection = (event: React.SyntheticEvent<HTMLElement>): void => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.type === 'keydown') {\n event.preventDefault();\n }\n\n const restoreFocus = event.type === 'keydown';\n this.hideMenu(restoreFocus);\n };\n}\n"]}
@@ -13,10 +13,12 @@ export declare class RenderContainer extends React.Component<RenderContainerProp
13
13
  static readonly defaultRootNode: null;
14
14
  private domContainer;
15
15
  private readonly rootId;
16
+ private appliedThemeVars;
16
17
  getRootNode: TGetRootNode;
17
18
  shouldComponentUpdate(nextProps: RenderContainerProps): boolean;
18
19
  componentWillUnmount(): void;
19
20
  render(): React.JSX.Element;
21
+ private applyThemeVars;
20
22
  private createContainer;
21
23
  private mountContainer;
22
24
  private destroyContainer;
@@ -26,8 +26,10 @@ var __assign = (this && this.__assign) || function () {
26
26
  };
27
27
  import React from 'react';
28
28
  import { callChildRef } from '../../lib/callChildRef/callChildRef.js';
29
+ import { REACT_UI_PREFIX } from '../../lib/prefix.js';
29
30
  import { RenderEnvironmentContext } from '../../lib/renderEnvironment/index.js';
30
- import { Upgrade } from '../../lib/Upgrades.js';
31
+ import { ThemeContext } from '../../lib/theming/ThemeContext.js';
32
+ import { getThemeSetTokens, getThemeVars, ThemeCarrierContext } from '../../lib/theming/themeVars.js';
31
33
  import { getRandomID } from '../../lib/utils.js';
32
34
  import { RenderInnerContainer } from './RenderInnerContainer.js';
33
35
  export var PORTAL_INLET_ATTR = 'data-render-container-id';
@@ -38,6 +40,7 @@ var RenderContainer = /** @class */ (function (_super) {
38
40
  var _this = _super !== null && _super.apply(this, arguments) || this;
39
41
  _this.domContainer = RenderContainer.defaultRootNode;
40
42
  _this.rootId = RenderContainer.getRootId();
43
+ _this.appliedThemeVars = [null];
41
44
  _this.getRootNode = function () { return _this.domContainer; };
42
45
  return _this;
43
46
  }
@@ -54,16 +57,48 @@ var RenderContainer = /** @class */ (function (_super) {
54
57
  this.destroyContainer();
55
58
  };
56
59
  RenderContainer.prototype.render = function () {
60
+ var _this = this;
57
61
  if (this.props.children) {
58
62
  this.mountContainer();
59
63
  }
60
- return React.createElement(RenderInnerContainer, __assign({}, this.props, { domContainer: this.domContainer, rootId: this.rootId }));
64
+ return (React.createElement(ThemeContext.Consumer, null, function (theme) {
65
+ _this.applyThemeVars(getThemeVars(theme), getThemeSetTokens(theme));
66
+ // портал живёт в body: переменные считаются от темы по умолчанию, для содержимого носитель — контейнер.
67
+ // якорь остаётся на месте в DOM, поэтому его носитель — внешний, а не контейнер
68
+ var children = _this.props.children;
69
+ return (React.createElement(RenderInnerContainer, __assign({}, _this.props, { domContainer: _this.domContainer, rootId: _this.rootId }), children && React.createElement(ThemeCarrierContext.Provider, { value: theme }, children)));
70
+ }));
71
+ };
72
+ RenderContainer.prototype.applyThemeVars = function (vars, setTokens) {
73
+ var container = this.domContainer;
74
+ // Popup перерисовывается на каждый скролл: переписываем атрибуты, только если сменились контейнер или тема
75
+ // (результаты getThemeVars и getThemeSetTokens закешированы). В рендере, а не в componentDidUpdate: вложенные
76
+ // компоненты меряют себя в своих componentDidMount, а он у них раньше, чем у контейнера
77
+ var _a = this.appliedThemeVars, appliedContainer = _a[0], appliedVars = _a[1], appliedSetTokens = _a[2];
78
+ if (!container || (container === appliedContainer && vars === appliedVars && setTokens === appliedSetTokens)) {
79
+ return;
80
+ }
81
+ this.appliedThemeVars = [container, vars, setTokens];
82
+ // снимаем только свои переменные: inline-стили контейнера мог поставить потребитель через containerRef
83
+ if (container === appliedContainer && appliedVars) {
84
+ Object.keys(appliedVars).forEach(function (name) { return container.style.removeProperty(name); });
85
+ }
86
+ if (setTokens) {
87
+ container.setAttribute('data-k-set', setTokens);
88
+ }
89
+ else {
90
+ container.removeAttribute('data-k-set');
91
+ }
92
+ Object.entries(vars).forEach(function (_a) {
93
+ var name = _a[0], value = _a[1];
94
+ return container.style.setProperty(name, String(value));
95
+ });
61
96
  };
62
97
  RenderContainer.prototype.createContainer = function () {
63
98
  var _a;
64
99
  var domContainer = (_a = this.context.globalObject.document) === null || _a === void 0 ? void 0 : _a.createElement('div');
65
100
  if (domContainer) {
66
- domContainer.setAttribute('class', Upgrade.getSpecificityClassName());
101
+ domContainer.setAttribute('class', REACT_UI_PREFIX);
67
102
  domContainer.setAttribute(PORTAL_OUTLET_ATTR, "".concat(this.rootId));
68
103
  this.domContainer = domContainer;
69
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RenderContainer.js","sourceRoot":"","sources":["RenderContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { callChildRef } from '../../lib/callChildRef/callChildRef.js';\nimport { RenderEnvironmentContext } from '../../lib/renderEnvironment/index.js';\nimport type { RenderEnvironmentContextType } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode } from '../../lib/rootNode/rootNodeDecorator.js';\nimport { Upgrade } from '../../lib/Upgrades.js';\nimport { getRandomID } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { RenderContainerProps } from './RenderContainerTypes.js';\nimport { RenderInnerContainer } from './RenderInnerContainer.js';\n\ninterface GlobalWithReactTesting {\n ReactTesting?: any;\n}\n\nexport const PORTAL_INLET_ATTR = 'data-render-container-id';\nexport const PORTAL_OUTLET_ATTR = 'data-rendered-container-id';\n\nexport class RenderContainer extends React.Component<RenderContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderContainer';\n public static displayName = 'RenderContainer';\n\n public static contextType = RenderEnvironmentContext;\n public context!: RenderEnvironmentContextType;\n\n private static getRootId = () => getRandomID();\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n private domContainer: Nullable<HTMLElement> = RenderContainer.defaultRootNode;\n\n private readonly rootId: string = RenderContainer.getRootId();\n\n public getRootNode: TGetRootNode = (): Nullable<Element> => this.domContainer;\n\n public shouldComponentUpdate(nextProps: RenderContainerProps) {\n if (!this.props.children && nextProps.children) {\n this.mountContainer();\n }\n if (this.props.children && !nextProps.children) {\n this.unmountContainer();\n }\n return true;\n }\n\n public componentWillUnmount() {\n this.destroyContainer();\n }\n\n public render() {\n if (this.props.children) {\n this.mountContainer();\n }\n\n return <RenderInnerContainer {...this.props} domContainer={this.domContainer} rootId={this.rootId} />;\n }\n\n private createContainer() {\n const domContainer = this.context.globalObject.document?.createElement('div');\n if (domContainer) {\n domContainer.setAttribute('class', Upgrade.getSpecificityClassName());\n domContainer.setAttribute(PORTAL_OUTLET_ATTR, `${this.rootId}`);\n this.domContainer = domContainer;\n }\n }\n\n private mountContainer() {\n const globalWithReactTesting = this.context.globalObject as GlobalWithReactTesting;\n\n if (!this.domContainer) {\n this.createContainer();\n }\n if (this.domContainer && this.domContainer.parentNode !== this.context.globalObject.document?.body) {\n this.context.globalObject.document?.body.appendChild(this.domContainer);\n\n if (this.props.containerRef) {\n callChildRef(this.props.containerRef, this.domContainer);\n }\n if (globalWithReactTesting.ReactTesting) {\n globalWithReactTesting.ReactTesting.addRenderContainer(this.rootId, this);\n }\n }\n }\n\n private destroyContainer() {\n if (this.domContainer) {\n this.unmountContainer();\n this.domContainer = null;\n }\n }\n\n private unmountContainer() {\n if (this.domContainer && this.domContainer.parentNode) {\n this.domContainer.parentNode.removeChild(this.domContainer);\n\n if (this.props.containerRef) {\n callChildRef(this.props.containerRef, null);\n }\n\n const globalWithReactTesting = this.context.globalObject as GlobalWithReactTesting;\n if (globalWithReactTesting.ReactTesting) {\n globalWithReactTesting.ReactTesting.removeRenderContainer(this.rootId);\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"RenderContainer.js","sourceRoot":"","sources":["RenderContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { callChildRef } from '../../lib/callChildRef/callChildRef.js';\nimport { REACT_UI_PREFIX } from '../../lib/prefix.js';\nimport { RenderEnvironmentContext } from '../../lib/renderEnvironment/index.js';\nimport type { RenderEnvironmentContextType } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode } from '../../lib/rootNode/rootNodeDecorator.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { getThemeSetTokens, getThemeVars, ThemeCarrierContext } from '../../lib/theming/themeVars.js';\nimport { getRandomID } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { RenderContainerProps } from './RenderContainerTypes.js';\nimport { RenderInnerContainer } from './RenderInnerContainer.js';\n\ninterface GlobalWithReactTesting {\n ReactTesting?: any;\n}\n\nexport const PORTAL_INLET_ATTR = 'data-render-container-id';\nexport const PORTAL_OUTLET_ATTR = 'data-rendered-container-id';\n\nexport class RenderContainer extends React.Component<RenderContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderContainer';\n public static displayName = 'RenderContainer';\n\n public static contextType = RenderEnvironmentContext;\n public context!: RenderEnvironmentContextType;\n\n private static getRootId = () => getRandomID();\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n private domContainer: Nullable<HTMLElement> = RenderContainer.defaultRootNode;\n\n private readonly rootId: string = RenderContainer.getRootId();\n private appliedThemeVars: [Nullable<HTMLElement>, React.CSSProperties?, string?] = [null];\n\n public getRootNode: TGetRootNode = (): Nullable<Element> => this.domContainer;\n\n public shouldComponentUpdate(nextProps: RenderContainerProps) {\n if (!this.props.children && nextProps.children) {\n this.mountContainer();\n }\n if (this.props.children && !nextProps.children) {\n this.unmountContainer();\n }\n return true;\n }\n\n public componentWillUnmount() {\n this.destroyContainer();\n }\n\n public render() {\n if (this.props.children) {\n this.mountContainer();\n }\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.applyThemeVars(getThemeVars(theme), getThemeSetTokens(theme));\n // портал живёт в body: переменные считаются от темы по умолчанию, для содержимого носитель — контейнер.\n // якорь остаётся на месте в DOM, поэтому его носитель — внешний, а не контейнер\n const { children } = this.props;\n return (\n <RenderInnerContainer {...this.props} domContainer={this.domContainer} rootId={this.rootId}>\n {children && <ThemeCarrierContext.Provider value={theme}>{children}</ThemeCarrierContext.Provider>}\n </RenderInnerContainer>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private applyThemeVars(vars: React.CSSProperties, setTokens: string) {\n const container = this.domContainer;\n // Popup перерисовывается на каждый скролл: переписываем атрибуты, только если сменились контейнер или тема\n // (результаты getThemeVars и getThemeSetTokens закешированы). В рендере, а не в componentDidUpdate: вложенные\n // компоненты меряют себя в своих componentDidMount, а он у них раньше, чем у контейнера\n const [appliedContainer, appliedVars, appliedSetTokens] = this.appliedThemeVars;\n if (!container || (container === appliedContainer && vars === appliedVars && setTokens === appliedSetTokens)) {\n return;\n }\n this.appliedThemeVars = [container, vars, setTokens];\n // снимаем только свои переменные: inline-стили контейнера мог поставить потребитель через containerRef\n if (container === appliedContainer && appliedVars) {\n Object.keys(appliedVars).forEach((name) => container.style.removeProperty(name));\n }\n if (setTokens) {\n container.setAttribute('data-k-set', setTokens);\n } else {\n container.removeAttribute('data-k-set');\n }\n Object.entries(vars).forEach(([name, value]) => container.style.setProperty(name, String(value)));\n }\n\n private createContainer() {\n const domContainer = this.context.globalObject.document?.createElement('div');\n if (domContainer) {\n domContainer.setAttribute('class', REACT_UI_PREFIX);\n domContainer.setAttribute(PORTAL_OUTLET_ATTR, `${this.rootId}`);\n this.domContainer = domContainer;\n }\n }\n\n private mountContainer() {\n const globalWithReactTesting = this.context.globalObject as GlobalWithReactTesting;\n\n if (!this.domContainer) {\n this.createContainer();\n }\n if (this.domContainer && this.domContainer.parentNode !== this.context.globalObject.document?.body) {\n this.context.globalObject.document?.body.appendChild(this.domContainer);\n\n if (this.props.containerRef) {\n callChildRef(this.props.containerRef, this.domContainer);\n }\n if (globalWithReactTesting.ReactTesting) {\n globalWithReactTesting.ReactTesting.addRenderContainer(this.rootId, this);\n }\n }\n }\n\n private destroyContainer() {\n if (this.domContainer) {\n this.unmountContainer();\n this.domContainer = null;\n }\n }\n\n private unmountContainer() {\n if (this.domContainer && this.domContainer.parentNode) {\n this.domContainer.parentNode.removeChild(this.domContainer);\n\n if (this.props.containerRef) {\n callChildRef(this.props.containerRef, null);\n }\n\n const globalWithReactTesting = this.context.globalObject as GlobalWithReactTesting;\n if (globalWithReactTesting.ReactTesting) {\n globalWithReactTesting.ReactTesting.removeRenderContainer(this.rootId);\n }\n }\n }\n}\n"]}
@@ -57,15 +57,18 @@ var RenderInnerContainer = /** @class */ (function (_super) {
57
57
  this.applyKonturColorsAttributes();
58
58
  };
59
59
  RenderInnerContainer.prototype.applyKonturColorsAttributes = function () {
60
- var _a;
60
+ var _a, _b;
61
61
  var domContainer = this.props.domContainer;
62
- var source = (_a = this.kColorsCheckerRef.current) === null || _a === void 0 ? void 0 : _a.closest(KONTUR_COLORS_ATTRIBUTES.map(function (x) { return "[".concat(x, "]"); }).join(','));
62
+ // атрибуты colors могут стоять на разных предках: каждый ищем отдельно, пропавший снимаем
63
63
  for (var _i = 0, KONTUR_COLORS_ATTRIBUTES_1 = KONTUR_COLORS_ATTRIBUTES; _i < KONTUR_COLORS_ATTRIBUTES_1.length; _i++) {
64
64
  var attribute = KONTUR_COLORS_ATTRIBUTES_1[_i];
65
- var value = source === null || source === void 0 ? void 0 : source.getAttribute(attribute);
65
+ var value = (_b = (_a = this.kColorsCheckerRef.current) === null || _a === void 0 ? void 0 : _a.closest("[".concat(attribute, "]"))) === null || _b === void 0 ? void 0 : _b.getAttribute(attribute);
66
66
  if (value) {
67
67
  domContainer === null || domContainer === void 0 ? void 0 : domContainer.setAttribute(attribute, value);
68
68
  }
69
+ else {
70
+ domContainer === null || domContainer === void 0 ? void 0 : domContainer.removeAttribute(attribute);
71
+ }
69
72
  }
70
73
  };
71
74
  RenderInnerContainer.prototype.render = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"RenderInnerContainer.js","sourceRoot":"","sources":["RenderInnerContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { PORTAL_INLET_ATTR } from './RenderContainer.js';\nimport type { PortalProps, RenderContainerProps } from './RenderContainerTypes.js';\n\nconst KONTUR_COLORS_ATTRIBUTES = ['data-k-brand', 'data-k-accent', 'data-k-theme'];\n\ninterface RenderInnerContainerProps extends RenderContainerProps {\n domContainer: Nullable<HTMLElement>;\n rootId: string;\n}\n\n// Заглушка нужна для корректной гидрации порталов после SSR,\n// которую реакт сам пока не поддерживает.\n// @see https://github.com/facebook/react/issues/13097\n// А также для вставки актуального render-container-id на клиенте.\n//\n// Дело в том, что во время гидрации, структура HTML на сервере\n// и на клиенте должна совпадать, иначе возможны артефакты.\n// Алгоритм там примерно такой. Клиент во время гидрации идет\n// по этим двум деревьям и сравнивает узлы. Элементы разных типов\n// он подменяет на свои. А те, что совпадают, он оставляет как есть\n// вместе со всеми атрибутами, навесив только обработчики событий.\n//\n// Поэтому, для портала, который рендерится только на клиенте,\n// нужно использовать серверную заглушку, чтобы при гидрации\n// он не испортил какой-то другой элемент. Null не подходит,\n// т.к. на сервере он тоже не рендерится.\n// А элемент с render-container-id нужно отрендерить с нуля.\n\nconst SSRPlaceholder = () => <script data-id=\"ssr-placeholder\" />;\n\nexport const Portal = ({ container, rt_rootID, children }: PortalProps) => {\n // container exists only in browser\n return (\n <React.Fragment>\n {container ? ReactDOM.createPortal(children, container) : <SSRPlaceholder />}\n {container ? <noscript {...{ [PORTAL_INLET_ATTR]: rt_rootID }} /> : <SSRPlaceholder />}\n </React.Fragment>\n );\n};\n\nexport class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderInnerContainer';\n public static displayName = 'RenderInnerContainer';\n\n private kColorsCheckerRef = React.createRef<HTMLSpanElement>();\n\n public componentDidMount() {\n this.applyKonturColorsAttributes();\n }\n\n public componentDidUpdate() {\n this.applyKonturColorsAttributes();\n }\n\n private applyKonturColorsAttributes() {\n const { domContainer } = this.props;\n const source = this.kColorsCheckerRef.current?.closest<HTMLElement>(\n KONTUR_COLORS_ATTRIBUTES.map((x) => `[${x}]`).join(','),\n );\n\n for (const attribute of KONTUR_COLORS_ATTRIBUTES) {\n const value = source?.getAttribute(attribute);\n if (value) {\n domContainer?.setAttribute(attribute, value);\n }\n }\n }\n\n public render() {\n const { anchor, children, domContainer, rootId } = this.props;\n let inner = anchor;\n\n if (children) {\n inner = (\n <React.Fragment>\n {anchor}\n <Portal key=\"portal-ref\" rt_rootID={rootId} container={domContainer}>\n {children}\n </Portal>\n <span ref={this.kColorsCheckerRef} style={{ display: 'none' }} />\n </React.Fragment>\n );\n }\n\n return inner;\n }\n}\n\nPortal.__KONTUR_REACT_UI__ = 'Portal';\nPortal.displayName = 'Portal';\n"]}
1
+ {"version":3,"file":"RenderInnerContainer.js","sourceRoot":"","sources":["RenderInnerContainer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,IAAM,wBAAwB,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;AAOnF,6DAA6D;AAC7D,0CAA0C;AAC1C,sDAAsD;AACtD,kEAAkE;AAClE,EAAE;AACF,+DAA+D;AAC/D,2DAA2D;AAC3D,6DAA6D;AAC7D,iEAAiE;AACjE,mEAAmE;AACnE,kEAAkE;AAClE,EAAE;AACF,8DAA8D;AAC9D,4DAA4D;AAC5D,4DAA4D;AAC5D,yCAAyC;AACzC,4DAA4D;AAE5D,IAAM,cAAc,GAAG,cAAM,OAAA,2CAAgB,iBAAiB,GAAG,EAApC,CAAoC,CAAC;AAElE,MAAM,CAAC,IAAM,MAAM,GAAG,UAAC,EAA+C;;QAA7C,SAAS,eAAA,EAAE,SAAS,eAAA,EAAE,QAAQ,cAAA;IACrD,mCAAmC;IACnC,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ;QACZ,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,oBAAC,cAAc,OAAG;QAC3E,SAAS,CAAC,CAAC,CAAC,0CAAgB,GAAC,iBAAiB,IAAG,SAAS,MAAM,CAAC,CAAC,CAAC,oBAAC,cAAc,OAAG,CACvE,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF;IAA0C,wCAA0C;IAApF;;QAIU,uBAAiB,GAAG,KAAK,CAAC,SAAS,EAAmB,CAAC;;IAyCjE,CAAC;IAvCQ,gDAAiB,GAAxB;QACE,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAEM,iDAAkB,GAAzB;QACE,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAEO,0DAA2B,GAAnC;;QACU,IAAA,YAAY,GAAK,IAAI,CAAC,KAAK,aAAf,CAAgB;QACpC,0FAA0F;QAC1F,KAAwB,UAAwB,EAAxB,qDAAwB,EAAxB,sCAAwB,EAAxB,IAAwB,EAAE,CAAC;YAA9C,IAAM,SAAS,iCAAA;YAClB,IAAM,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,0CAAE,OAAO,CAAC,WAAI,SAAS,MAAG,CAAC,0CAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACjG,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAEM,qCAAM,GAAb;QACQ,IAAA,KAA6C,IAAI,CAAC,KAAK,EAArD,MAAM,YAAA,EAAE,QAAQ,cAAA,EAAE,YAAY,kBAAA,EAAE,MAAM,YAAe,CAAC;QAC9D,IAAI,KAAK,GAAG,MAAM,CAAC;QAEnB,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,GAAG,CACN,oBAAC,KAAK,CAAC,QAAQ;gBACZ,MAAM;gBACP,oBAAC,MAAM,IAAC,GAAG,EAAC,YAAY,EAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,IAChE,QAAQ,CACF;gBACT,8BAAM,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAI,CAClD,CAClB,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IA3Ca,wCAAmB,GAAG,sBAAsB,AAAzB,CAA0B;IAC7C,gCAAW,GAAG,sBAAsB,AAAzB,CAA0B;IA2CrD,2BAAC;CAAA,AA7CD,CAA0C,KAAK,CAAC,SAAS,GA6CxD;SA7CY,oBAAoB;AA+CjC,MAAM,CAAC,mBAAmB,GAAG,QAAQ,CAAC;AACtC,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { PORTAL_INLET_ATTR } from './RenderContainer.js';\nimport type { PortalProps, RenderContainerProps } from './RenderContainerTypes.js';\n\nconst KONTUR_COLORS_ATTRIBUTES = ['data-k-brand', 'data-k-accent', 'data-k-theme'];\n\ninterface RenderInnerContainerProps extends RenderContainerProps {\n domContainer: Nullable<HTMLElement>;\n rootId: string;\n}\n\n// Заглушка нужна для корректной гидрации порталов после SSR,\n// которую реакт сам пока не поддерживает.\n// @see https://github.com/facebook/react/issues/13097\n// А также для вставки актуального render-container-id на клиенте.\n//\n// Дело в том, что во время гидрации, структура HTML на сервере\n// и на клиенте должна совпадать, иначе возможны артефакты.\n// Алгоритм там примерно такой. Клиент во время гидрации идет\n// по этим двум деревьям и сравнивает узлы. Элементы разных типов\n// он подменяет на свои. А те, что совпадают, он оставляет как есть\n// вместе со всеми атрибутами, навесив только обработчики событий.\n//\n// Поэтому, для портала, который рендерится только на клиенте,\n// нужно использовать серверную заглушку, чтобы при гидрации\n// он не испортил какой-то другой элемент. Null не подходит,\n// т.к. на сервере он тоже не рендерится.\n// А элемент с render-container-id нужно отрендерить с нуля.\n\nconst SSRPlaceholder = () => <script data-id=\"ssr-placeholder\" />;\n\nexport const Portal = ({ container, rt_rootID, children }: PortalProps) => {\n // container exists only in browser\n return (\n <React.Fragment>\n {container ? ReactDOM.createPortal(children, container) : <SSRPlaceholder />}\n {container ? <noscript {...{ [PORTAL_INLET_ATTR]: rt_rootID }} /> : <SSRPlaceholder />}\n </React.Fragment>\n );\n};\n\nexport class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderInnerContainer';\n public static displayName = 'RenderInnerContainer';\n\n private kColorsCheckerRef = React.createRef<HTMLSpanElement>();\n\n public componentDidMount() {\n this.applyKonturColorsAttributes();\n }\n\n public componentDidUpdate() {\n this.applyKonturColorsAttributes();\n }\n\n private applyKonturColorsAttributes() {\n const { domContainer } = this.props;\n // атрибуты colors могут стоять на разных предках: каждый ищем отдельно, пропавший снимаем\n for (const attribute of KONTUR_COLORS_ATTRIBUTES) {\n const value = this.kColorsCheckerRef.current?.closest(`[${attribute}]`)?.getAttribute(attribute);\n if (value) {\n domContainer?.setAttribute(attribute, value);\n } else {\n domContainer?.removeAttribute(attribute);\n }\n }\n }\n\n public render() {\n const { anchor, children, domContainer, rootId } = this.props;\n let inner = anchor;\n\n if (children) {\n inner = (\n <React.Fragment>\n {anchor}\n <Portal key=\"portal-ref\" rt_rootID={rootId} container={domContainer}>\n {children}\n </Portal>\n <span ref={this.kColorsCheckerRef} style={{ display: 'none' }} />\n </React.Fragment>\n );\n }\n\n return inner;\n }\n}\n\nPortal.__KONTUR_REACT_UI__ = 'Portal';\nPortal.displayName = 'Portal';\n"]}
@@ -0,0 +1,12 @@
1
+ export declare const root: string;
2
+ export declare const iframe: string;
3
+ export declare const content: string;
4
+ export declare const fullHeight: string;
5
+ export declare const flex: string;
6
+ export declare const styles: {
7
+ root: string;
8
+ iframe: string;
9
+ content: string;
10
+ fullHeight: string;
11
+ flex: string;
12
+ };
@@ -0,0 +1,7 @@
1
+
2
+ export var content = 'react-ui-ResizeDetector__content';
3
+ export var flex = 'react-ui-ResizeDetector__flex';
4
+ export var fullHeight = 'react-ui-ResizeDetector__fullHeight';
5
+ export var iframe = 'react-ui-ResizeDetector__iframe';
6
+ export var root = 'react-ui-ResizeDetector__root';
7
+ export var styles = {root:'react-ui-ResizeDetector__root',iframe:'react-ui-ResizeDetector__iframe',content:'react-ui-ResizeDetector__content',fullHeight:'react-ui-ResizeDetector__fullHeight',flex:'react-ui-ResizeDetector__flex'};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizeDetector.css.js","sourceRoot":"","sources":["ResizeDetector.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,MAAM,CAAC,IAAM,IAAI,GAAG,KAAK,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAEpE,MAAM,CAAC,IAAM,MAAM,GAAG,KAAK,CAAC;IAC1B,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,aAAa;IACzB,OAAO,EAAE,CAAC;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,OAAO,GAAG,KAAK,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;AAEvD,MAAM,CAAC,IAAM,UAAU,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAEpD,MAAM,CAAC,IAAM,IAAI,GAAG,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAE/C,MAAM,CAAC,IAAM,MAAM,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,UAAU,YAAA,EAAE,IAAI,MAAA,EAAE,CAAC","sourcesContent":["import { style } from '@vanilla-extract/css';\n\nexport const root = style({ position: 'relative', height: '100%' });\n\nexport const iframe = style({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n padding: 0,\n margin: 0,\n border: 0,\n background: 'transparent',\n opacity: 0,\n});\n\nexport const content = style({ position: 'relative' });\n\nexport const fullHeight = style({ height: '100%' });\n\nexport const flex = style({ display: 'flex' });\n\nexport const styles = { root, iframe, content, fullHeight, flex };\n"]}
@@ -8,9 +8,6 @@ export declare class ResizeDetector extends React.Component<React.PropsWithChild
8
8
  static __KONTUR_REACT_UI__: string;
9
9
  static displayName: string;
10
10
  private iframeWindow;
11
- private styles;
12
- private emotion;
13
- private cx;
14
11
  componentDidMount(): void;
15
12
  render(): React.JSX.Element;
16
13
  private handleResize;
@@ -13,15 +13,9 @@ var __extends = (this && this.__extends) || (function () {
13
13
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
14
  };
15
15
  })();
16
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
17
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20
- return c > 3 && r && Object.defineProperty(target, key, r), r;
21
- };
22
16
  import React from 'react';
23
- import { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';
24
- import { getStyles } from './ResizeDetector.styles.js';
17
+ import { cx } from '../../lib/cx.js';
18
+ import { styles } from './ResizeDetector.css.js';
25
19
  var ResizeDetector = /** @class */ (function (_super) {
26
20
  __extends(ResizeDetector, _super);
27
21
  function ResizeDetector() {
@@ -46,20 +40,16 @@ var ResizeDetector = /** @class */ (function (_super) {
46
40
  };
47
41
  ResizeDetector.prototype.render = function () {
48
42
  var _a;
49
- this.styles = getStyles(this.emotion);
50
- return (React.createElement("div", { className: this.styles.root() },
51
- React.createElement("iframe", { title: "resizeDetector", ref: this.iframeRef, className: this.styles.iframe(), tabIndex: -1 }),
52
- React.createElement("div", { className: this.cx((_a = {},
53
- _a[this.styles.content()] = true,
54
- _a[this.styles.fullHeight()] = this.props.fullHeight,
55
- _a[this.styles.flex()] = this.props.alignBaseline,
43
+ return (React.createElement("div", { className: styles.root },
44
+ React.createElement("iframe", { title: "resizeDetector", ref: this.iframeRef, className: styles.iframe, tabIndex: -1 }),
45
+ React.createElement("div", { className: cx((_a = {},
46
+ _a[styles.content] = true,
47
+ _a[styles.fullHeight] = this.props.fullHeight,
48
+ _a[styles.flex] = this.props.alignBaseline,
56
49
  _a)) }, this.props.children)));
57
50
  };
58
51
  ResizeDetector.__KONTUR_REACT_UI__ = 'ResizeDetector';
59
52
  ResizeDetector.displayName = 'ResizeDetector';
60
- ResizeDetector = __decorate([
61
- withRenderEnvironment
62
- ], ResizeDetector);
63
53
  return ResizeDetector;
64
54
  }(React.Component));
65
55
  export { ResizeDetector };
@@ -1 +1 @@
1
- {"version":3,"file":"ResizeDetector.js","sourceRoot":"","sources":["ResizeDetector.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AASvD;IAAoC,kCAA6D;IAAjG;;QAIU,kBAAY,GAAkB,IAAI,CAAC;QA8BnC,kBAAY,GAAG,UAAC,KAAc;YACpC,IAAI,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxB,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;QAEM,eAAS,GAAG,UAAC,MAAyB;YAC5C,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACnC,KAAI,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC;;IACJ,CAAC;IApCQ,0CAAiB,GAAxB;QACE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEM,+BAAM,GAAb;;QACE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtC,OAAO,CACL,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAChC,gCAAQ,KAAK,EAAC,gBAAgB,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAI;YACrG,6BACE,SAAS,EAAE,IAAI,CAAC,EAAE;oBAChB,GAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAG,IAAI;oBAC7B,GAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAG,IAAI,CAAC,KAAK,CAAC,UAAU;oBACjD,GAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAG,IAAI,CAAC,KAAK,CAAC,aAAa;wBAC9C,IAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAChB,CACF,CACP,CAAC;IACJ,CAAC;IA/Ba,kCAAmB,GAAG,gBAAgB,AAAnB,CAAoB;IACvC,0BAAW,GAAG,gBAAgB,AAAnB,CAAoB;IAFlC,cAAc;QAD1B,qBAAqB;OACT,cAAc,CA6C1B;IAAD,qBAAC;CAAA,AA7CD,CAAoC,KAAK,CAAC,SAAS,GA6ClD;SA7CY,cAAc","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport React from 'react';\n\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport { getStyles } from './ResizeDetector.styles.js';\n\nexport interface ResizeDetectorProps {\n onResize?: (event: UIEvent) => void;\n fullHeight?: boolean;\n alignBaseline?: boolean;\n}\n\n@withRenderEnvironment\nexport class ResizeDetector extends React.Component<React.PropsWithChildren<ResizeDetectorProps>> {\n public static __KONTUR_REACT_UI__ = 'ResizeDetector';\n public static displayName = 'ResizeDetector';\n\n private iframeWindow: Window | null = null;\n private styles!: ReturnType<typeof getStyles>;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n\n public componentDidMount() {\n if (this.iframeWindow) {\n this.iframeWindow.addEventListener('resize', this.handleResize);\n }\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <div className={this.styles.root()}>\n <iframe title=\"resizeDetector\" ref={this.iframeRef} className={this.styles.iframe()} tabIndex={-1} />\n <div\n className={this.cx({\n [this.styles.content()]: true,\n [this.styles.fullHeight()]: this.props.fullHeight,\n [this.styles.flex()]: this.props.alignBaseline,\n })}\n >\n {this.props.children}\n </div>\n </div>\n );\n }\n\n private handleResize = (event: UIEvent) => {\n if (this.props.onResize) {\n this.props.onResize(event);\n }\n };\n\n private iframeRef = (iframe: HTMLIFrameElement) => {\n if (iframe && iframe.contentWindow) {\n this.iframeWindow = iframe.contentWindow;\n }\n };\n}\n"]}
1
+ {"version":3,"file":"ResizeDetector.js","sourceRoot":"","sources":["ResizeDetector.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAQjD;IAAoC,kCAA6D;IAAjG;;QAIU,kBAAY,GAAkB,IAAI,CAAC;QAyBnC,kBAAY,GAAG,UAAC,KAAc;YACpC,IAAI,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxB,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;QAEM,eAAS,GAAG,UAAC,MAAyB;YAC5C,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACnC,KAAI,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC;;IACJ,CAAC;IAlCQ,0CAAiB,GAAxB;QACE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEM,+BAAM,GAAb;;QACE,OAAO,CACL,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI;YACzB,gCAAQ,KAAK,EAAC,gBAAgB,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAI;YAC9F,6BACE,SAAS,EAAE,EAAE;oBACX,GAAC,MAAM,CAAC,OAAO,IAAG,IAAI;oBACtB,GAAC,MAAM,CAAC,UAAU,IAAG,IAAI,CAAC,KAAK,CAAC,UAAU;oBAC1C,GAAC,MAAM,CAAC,IAAI,IAAG,IAAI,CAAC,KAAK,CAAC,aAAa;wBACvC,IAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAChB,CACF,CACP,CAAC;IACJ,CAAC;IA1Ba,kCAAmB,GAAG,gBAAgB,AAAnB,CAAoB;IACvC,0BAAW,GAAG,gBAAgB,AAAnB,CAAoB;IAsC/C,qBAAC;CAAA,AAxCD,CAAoC,KAAK,CAAC,SAAS,GAwClD;SAxCY,cAAc","sourcesContent":["import React from 'react';\n\nimport { cx } from '../../lib/cx.js';\nimport { styles } from './ResizeDetector.css.js';\n\nexport interface ResizeDetectorProps {\n onResize?: (event: UIEvent) => void;\n fullHeight?: boolean;\n alignBaseline?: boolean;\n}\n\nexport class ResizeDetector extends React.Component<React.PropsWithChildren<ResizeDetectorProps>> {\n public static __KONTUR_REACT_UI__ = 'ResizeDetector';\n public static displayName = 'ResizeDetector';\n\n private iframeWindow: Window | null = null;\n\n public componentDidMount() {\n if (this.iframeWindow) {\n this.iframeWindow.addEventListener('resize', this.handleResize);\n }\n }\n\n public render() {\n return (\n <div className={styles.root}>\n <iframe title=\"resizeDetector\" ref={this.iframeRef} className={styles.iframe} tabIndex={-1} />\n <div\n className={cx({\n [styles.content]: true,\n [styles.fullHeight]: this.props.fullHeight,\n [styles.flex]: this.props.alignBaseline,\n })}\n >\n {this.props.children}\n </div>\n </div>\n );\n }\n\n private handleResize = (event: UIEvent) => {\n if (this.props.onResize) {\n this.props.onResize(event);\n }\n };\n\n private iframeRef = (iframe: HTMLIFrameElement) => {\n if (iframe && iframe.contentWindow) {\n this.iframeWindow = iframe.contentWindow;\n }\n };\n}\n"]}
@@ -0,0 +1,10 @@
1
+ export declare const root: string;
2
+ export declare const rootInline: string;
3
+ export declare const icon: string;
4
+ export declare const iconInline: string;
5
+ export declare const styles: {
6
+ root: string;
7
+ rootInline: string;
8
+ icon: string;
9
+ iconInline: string;
10
+ };