@skbkontur/react-ui 6.4.3-5e1c3.0 → 6.4.3-82331.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 (843) hide show
  1. package/README.md +42 -0
  2. package/components/Autocomplete/Autocomplete.css.d.ts +5 -0
  3. package/components/Autocomplete/Autocomplete.css.js +5 -0
  4. package/components/Autocomplete/Autocomplete.css.js.map +1 -0
  5. package/components/Autocomplete/Autocomplete.js +1 -1
  6. package/components/Autocomplete/Autocomplete.js.map +1 -1
  7. package/components/Autocomplete/getAutocompleteTheme.d.ts +1 -2
  8. package/components/Autocomplete/getAutocompleteTheme.js +3 -2
  9. package/components/Autocomplete/getAutocompleteTheme.js.map +1 -1
  10. package/components/Button/Button.css.d.ts +94 -0
  11. package/components/Button/Button.css.js +78 -0
  12. package/components/Button/Button.css.js.map +1 -0
  13. package/components/Button/Button.js +5 -4
  14. package/components/Button/Button.js.map +1 -1
  15. package/components/Button/ButtonArrow.d.ts +2 -2
  16. package/components/Button/ButtonArrow.js +1 -1
  17. package/components/Button/ButtonArrow.js.map +1 -1
  18. package/components/Button/ButtonIcon.css.d.ts +16 -0
  19. package/components/Button/ButtonIcon.css.js +16 -0
  20. package/components/Button/ButtonIcon.css.js.map +1 -0
  21. package/components/Button/ButtonIcon.js +1 -1
  22. package/components/Button/ButtonIcon.js.map +1 -1
  23. package/components/Button/LoadingButtonIcon.js +1 -1
  24. package/components/Button/LoadingButtonIcon.js.map +1 -1
  25. package/components/Button/getInnerLinkTheme.d.ts +1 -2
  26. package/components/Button/getInnerLinkTheme.js +3 -2
  27. package/components/Button/getInnerLinkTheme.js.map +1 -1
  28. package/components/Calendar/Calendar.css.d.ts +6 -0
  29. package/components/Calendar/Calendar.css.js +6 -0
  30. package/components/Calendar/Calendar.css.js.map +1 -0
  31. package/components/Calendar/Calendar.js +1 -1
  32. package/components/Calendar/Calendar.js.map +1 -1
  33. package/components/Calendar/CalendarDay.js +1 -1
  34. package/components/Calendar/CalendarDay.js.map +1 -1
  35. package/components/Calendar/DayCellView.css.d.ts +9 -0
  36. package/components/Calendar/DayCellView.css.js +9 -0
  37. package/components/Calendar/DayCellView.css.js.map +1 -0
  38. package/components/Calendar/DayCellView.js +1 -1
  39. package/components/Calendar/DayCellView.js.map +1 -1
  40. package/components/Calendar/Month.js +2 -2
  41. package/components/Calendar/Month.js.map +1 -1
  42. package/components/Calendar/MonthView.css.d.ts +12 -0
  43. package/components/Calendar/MonthView.css.js +12 -0
  44. package/components/Calendar/MonthView.css.js.map +1 -0
  45. package/components/Calendar/MonthView.js +1 -1
  46. package/components/Calendar/MonthView.js.map +1 -1
  47. package/components/Center/Center.css.d.ts +8 -0
  48. package/components/Center/Center.css.js +8 -0
  49. package/components/Center/Center.css.js.map +1 -0
  50. package/components/Center/Center.js +1 -1
  51. package/components/Center/Center.js.map +1 -1
  52. package/components/Checkbox/Checkbox.css.d.ts +35 -0
  53. package/components/Checkbox/Checkbox.css.js +33 -0
  54. package/components/Checkbox/Checkbox.css.js.map +1 -0
  55. package/components/Checkbox/Checkbox.js +1 -1
  56. package/components/Checkbox/Checkbox.js.map +1 -1
  57. package/components/Checkbox/Checkbox.mixins.d.ts +19 -4
  58. package/components/Checkbox/Checkbox.mixins.js +16 -15
  59. package/components/Checkbox/Checkbox.mixins.js.map +1 -1
  60. package/components/DateInput/DateFragmentsView.css.d.ts +7 -0
  61. package/components/DateInput/DateFragmentsView.css.js +7 -0
  62. package/components/DateInput/DateFragmentsView.css.js.map +1 -0
  63. package/components/DateInput/DateFragmentsView.js +1 -1
  64. package/components/DateInput/DateFragmentsView.js.map +1 -1
  65. package/components/DateInput/DateInput.css.d.ts +10 -0
  66. package/components/DateInput/DateInput.css.js +10 -0
  67. package/components/DateInput/DateInput.css.js.map +1 -0
  68. package/components/DateInput/DateInput.js +1 -1
  69. package/components/DateInput/DateInput.js.map +1 -1
  70. package/components/DatePicker/DatePicker.css.d.ts +5 -0
  71. package/components/DatePicker/DatePicker.css.js +5 -0
  72. package/components/DatePicker/DatePicker.css.js.map +1 -0
  73. package/components/DatePicker/DatePicker.js +6 -2
  74. package/components/DatePicker/DatePicker.js.map +1 -1
  75. package/components/DatePicker/MobilePicker.css.d.ts +4 -0
  76. package/components/DatePicker/MobilePicker.css.js +4 -0
  77. package/components/DatePicker/MobilePicker.css.js.map +1 -0
  78. package/components/DatePicker/MobilePicker.js +1 -1
  79. package/components/DatePicker/MobilePicker.js.map +1 -1
  80. package/components/DatePicker/getMobilePickerTheme.d.ts +1 -2
  81. package/components/DatePicker/getMobilePickerTheme.js +3 -2
  82. package/components/DatePicker/getMobilePickerTheme.js.map +1 -1
  83. package/components/DateRangePicker/DateRangePicker.css.d.ts +19 -0
  84. package/components/DateRangePicker/DateRangePicker.css.js +19 -0
  85. package/components/DateRangePicker/DateRangePicker.css.js.map +1 -0
  86. package/components/DateRangePicker/DateRangePicker.d.ts +6 -6
  87. package/components/DateRangePicker/DateRangePicker.js +32 -28
  88. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  89. package/components/DateRangePicker/DateRangePickerTheme.d.ts +2 -3
  90. package/components/DateRangePicker/DateRangePickerTheme.js +5 -4
  91. package/components/DateRangePicker/DateRangePickerTheme.js.map +1 -1
  92. package/components/Dropdown/getDropdownTheme.d.ts +1 -2
  93. package/components/Dropdown/getDropdownTheme.js +3 -2
  94. package/components/Dropdown/getDropdownTheme.js.map +1 -1
  95. package/components/DropdownMenu/getDropdownMenuTheme.d.ts +1 -2
  96. package/components/DropdownMenu/getDropdownMenuTheme.js +3 -2
  97. package/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
  98. package/components/FileUploader/FileUploader.css.d.ts +72 -0
  99. package/components/FileUploader/FileUploader.css.js +66 -0
  100. package/components/FileUploader/FileUploader.css.js.map +1 -0
  101. package/components/FileUploader/FileUploader.js +1 -1
  102. package/components/FileUploader/FileUploader.js.map +1 -1
  103. package/components/FileUploader/FileUploader.mixins.d.ts +6 -1
  104. package/components/FileUploader/FileUploader.mixins.js +6 -1
  105. package/components/FileUploader/FileUploader.mixins.js.map +1 -1
  106. package/components/FileUploader/FileUploaderFile.css.d.ts +61 -0
  107. package/components/FileUploader/FileUploaderFile.css.js +57 -0
  108. package/components/FileUploader/FileUploaderFile.css.js.map +1 -0
  109. package/components/FileUploader/FileUploaderFile.js +1 -1
  110. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  111. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.d.ts +36 -0
  112. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js +32 -0
  113. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js.map +1 -0
  114. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js +1 -1
  115. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  116. package/components/FileUploader/FileUploaderFileStatusIcon.js +1 -1
  117. package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -1
  118. package/components/GlobalLoader/GlobalLoaderView.css.d.ts +17 -0
  119. package/components/GlobalLoader/GlobalLoaderView.css.js +15 -0
  120. package/components/GlobalLoader/GlobalLoaderView.css.js.map +1 -0
  121. package/components/GlobalLoader/GlobalLoaderView.js +13 -7
  122. package/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  123. package/components/Group/Group.css.d.ts +9 -0
  124. package/components/Group/Group.css.js +9 -0
  125. package/components/Group/Group.css.js.map +1 -0
  126. package/components/Group/Group.js +1 -1
  127. package/components/Group/Group.js.map +1 -1
  128. package/components/Hint/Hint.css.d.ts +5 -0
  129. package/components/Hint/Hint.css.js +5 -0
  130. package/components/Hint/Hint.css.js.map +1 -0
  131. package/components/Hint/Hint.js +6 -6
  132. package/components/Hint/Hint.js.map +1 -1
  133. package/components/Input/Input.css.d.ts +56 -0
  134. package/components/Input/Input.css.js +23 -0
  135. package/components/Input/Input.css.js.map +1 -0
  136. package/components/Input/Input.js +1 -1
  137. package/components/Input/Input.js.map +1 -1
  138. package/components/Input/InputLayout/InputLayout.css.d.ts +18 -0
  139. package/components/Input/InputLayout/InputLayout.css.js +19 -0
  140. package/components/Input/InputLayout/InputLayout.css.js.map +1 -0
  141. package/components/Input/InputLayout/InputLayout.js +1 -1
  142. package/components/Input/InputLayout/InputLayout.js.map +1 -1
  143. package/components/Input/InputLayout/InputLayoutAside.js +1 -1
  144. package/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  145. package/components/Input/InputLayout/InputLayoutAsideCounter.js +1 -1
  146. package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -1
  147. package/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -1
  148. package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  149. package/components/Input/InputLayout/InputLayoutAsideText.js +1 -1
  150. package/components/Input/InputLayout/InputLayoutAsideText.js.map +1 -1
  151. package/components/Kebab/Kebab.css.d.ts +11 -0
  152. package/components/Kebab/Kebab.css.js +11 -0
  153. package/components/Kebab/Kebab.css.js.map +1 -0
  154. package/components/Kebab/Kebab.js +4 -4
  155. package/components/Kebab/Kebab.js.map +1 -1
  156. package/components/Link/Link.css.d.ts +23 -0
  157. package/components/Link/Link.css.js +23 -0
  158. package/components/Link/Link.css.js.map +1 -0
  159. package/components/Link/Link.js +5 -4
  160. package/components/Link/Link.js.map +1 -1
  161. package/components/Link/LinkIcon.js +1 -1
  162. package/components/Link/LinkIcon.js.map +1 -1
  163. package/components/Loader/Loader.css.d.ts +8 -0
  164. package/components/Loader/Loader.css.js +8 -0
  165. package/components/Loader/Loader.css.js.map +1 -0
  166. package/components/Loader/Loader.js +1 -1
  167. package/components/Loader/Loader.js.map +1 -1
  168. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.d.ts +7 -0
  169. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js +5 -0
  170. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js.map +1 -0
  171. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +1 -1
  172. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  173. package/components/MaskedInput/MaskedInput.css.d.ts +7 -0
  174. package/components/MaskedInput/MaskedInput.css.js +5 -0
  175. package/components/MaskedInput/MaskedInput.css.js.map +1 -0
  176. package/components/MaskedInput/MaskedInputLegacy.js +1 -1
  177. package/components/MaskedInput/MaskedInputLegacy.js.map +1 -1
  178. package/components/MaskedInputV2/MaskedInputV2.css.d.ts +7 -0
  179. package/components/MaskedInputV2/MaskedInputV2.css.js +5 -0
  180. package/components/MaskedInputV2/MaskedInputV2.css.js.map +1 -0
  181. package/components/MaskedInputV2/MaskedInputV2.js +1 -1
  182. package/components/MaskedInputV2/MaskedInputV2.js.map +1 -1
  183. package/components/MaskedInputV2/internal/MaskOverlay.js +3 -3
  184. package/components/MaskedInputV2/internal/MaskOverlay.js.map +1 -1
  185. package/components/MaskedInputV2/internal/MaskedCore.js +3 -3
  186. package/components/MaskedInputV2/internal/MaskedCore.js.map +1 -1
  187. package/components/MaskedInputV2/internal/MaskedInternal.css.d.ts +15 -0
  188. package/components/MaskedInputV2/internal/MaskedInternal.css.js +9 -0
  189. package/components/MaskedInputV2/internal/MaskedInternal.css.js.map +1 -0
  190. package/components/MenuFooter/MenuFooter.css.d.ts +10 -0
  191. package/components/MenuFooter/MenuFooter.css.js +10 -0
  192. package/components/MenuFooter/MenuFooter.css.js.map +1 -0
  193. package/components/MenuFooter/MenuFooter.js +2 -2
  194. package/components/MenuFooter/MenuFooter.js.map +1 -1
  195. package/components/MenuFooter/MenuFooter.mixins.d.ts +8 -2
  196. package/components/MenuFooter/MenuFooter.mixins.js +8 -4
  197. package/components/MenuFooter/MenuFooter.mixins.js.map +1 -1
  198. package/components/MenuHeader/MenuHeader.css.d.ts +10 -0
  199. package/components/MenuHeader/MenuHeader.css.js +10 -0
  200. package/components/MenuHeader/MenuHeader.css.js.map +1 -0
  201. package/components/MenuHeader/MenuHeader.js +2 -2
  202. package/components/MenuHeader/MenuHeader.js.map +1 -1
  203. package/components/MenuHeader/MenuHeader.mixins.d.ts +8 -2
  204. package/components/MenuHeader/MenuHeader.mixins.js +8 -4
  205. package/components/MenuHeader/MenuHeader.mixins.js.map +1 -1
  206. package/components/MenuItem/MenuItem.css.d.ts +27 -0
  207. package/components/MenuItem/MenuItem.css.js +27 -0
  208. package/components/MenuItem/MenuItem.css.js.map +1 -0
  209. package/components/MenuItem/MenuItem.js +4 -10
  210. package/components/MenuItem/MenuItem.js.map +1 -1
  211. package/components/MenuItem/MenuItem.mixins.d.ts +12 -4
  212. package/components/MenuItem/MenuItem.mixins.js +12 -19
  213. package/components/MenuItem/MenuItem.mixins.js.map +1 -1
  214. package/components/MenuSeparator/MenuSeparator.css.d.ts +5 -0
  215. package/components/MenuSeparator/MenuSeparator.css.js +5 -0
  216. package/components/MenuSeparator/MenuSeparator.css.js.map +1 -0
  217. package/components/MenuSeparator/MenuSeparator.js +5 -7
  218. package/components/MenuSeparator/MenuSeparator.js.map +1 -1
  219. package/components/MiniModal/MiniModal.css.d.ts +10 -0
  220. package/components/MiniModal/MiniModal.css.js +11 -0
  221. package/components/MiniModal/MiniModal.css.js.map +1 -0
  222. package/components/MiniModal/MiniModalBody.js +1 -1
  223. package/components/MiniModal/MiniModalBody.js.map +1 -1
  224. package/components/MiniModal/MiniModalFooter.js +1 -1
  225. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  226. package/components/MiniModal/MiniModalHeader.js +1 -1
  227. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  228. package/components/MiniModal/MiniModalIndent.js +1 -1
  229. package/components/MiniModal/MiniModalIndent.js.map +1 -1
  230. package/components/MiniModal/getMiniModalTheme.d.ts +1 -2
  231. package/components/MiniModal/getMiniModalTheme.js +3 -2
  232. package/components/MiniModal/getMiniModalTheme.js.map +1 -1
  233. package/components/Modal/Modal.css.d.ts +55 -0
  234. package/components/Modal/Modal.css.js +52 -0
  235. package/components/Modal/Modal.css.js.map +1 -0
  236. package/components/Modal/Modal.js +1 -1
  237. package/components/Modal/Modal.js.map +1 -1
  238. package/components/Modal/ModalBody.js +1 -1
  239. package/components/Modal/ModalBody.js.map +1 -1
  240. package/components/Modal/ModalClose.js +11 -13
  241. package/components/Modal/ModalClose.js.map +1 -1
  242. package/components/Modal/ModalFooter.js +1 -1
  243. package/components/Modal/ModalFooter.js.map +1 -1
  244. package/components/Modal/ModalHeader.js +1 -1
  245. package/components/Modal/ModalHeader.js.map +1 -1
  246. package/components/Modal/ModalSeparator.js +1 -1
  247. package/components/Modal/ModalSeparator.js.map +1 -1
  248. package/components/Modal/getModalBodyTheme.d.ts +1 -2
  249. package/components/Modal/getModalBodyTheme.js +3 -2
  250. package/components/Modal/getModalBodyTheme.js.map +1 -1
  251. package/components/Modal/getModalTheme.d.ts +1 -2
  252. package/components/Modal/getModalTheme.js +3 -2
  253. package/components/Modal/getModalTheme.js.map +1 -1
  254. package/components/Paging/Paging.css.d.ts +32 -0
  255. package/components/Paging/Paging.css.js +32 -0
  256. package/components/Paging/Paging.css.js.map +1 -0
  257. package/components/Paging/Paging.js +1 -1
  258. package/components/Paging/Paging.js.map +1 -1
  259. package/components/PasswordInput/PasswordInput.css.d.ts +11 -0
  260. package/components/PasswordInput/PasswordInput.css.js +11 -0
  261. package/components/PasswordInput/PasswordInput.css.js.map +1 -0
  262. package/components/PasswordInput/PasswordInput.js +1 -1
  263. package/components/PasswordInput/PasswordInput.js.map +1 -1
  264. package/components/Radio/Radio.css.d.ts +34 -0
  265. package/components/Radio/Radio.css.js +32 -0
  266. package/components/Radio/Radio.css.js.map +1 -0
  267. package/components/Radio/Radio.js +1 -1
  268. package/components/Radio/Radio.js.map +1 -1
  269. package/components/Radio/Radio.mixins.d.ts +39 -7
  270. package/components/Radio/Radio.mixins.js +37 -23
  271. package/components/Radio/Radio.mixins.js.map +1 -1
  272. package/components/RadioGroup/RadioGroup.css.d.ts +7 -0
  273. package/components/RadioGroup/RadioGroup.css.js +7 -0
  274. package/components/RadioGroup/RadioGroup.css.js.map +1 -0
  275. package/components/RadioGroup/RadioGroup.js +1 -1
  276. package/components/RadioGroup/RadioGroup.js.map +1 -1
  277. package/components/ScrollContainer/ScrollBar.js +1 -1
  278. package/components/ScrollContainer/ScrollBar.js.map +1 -1
  279. package/components/ScrollContainer/ScrollContainer.css.d.ts +21 -0
  280. package/components/ScrollContainer/ScrollContainer.css.js +15 -0
  281. package/components/ScrollContainer/ScrollContainer.css.js.map +1 -0
  282. package/components/ScrollContainer/ScrollContainer.js +1 -1
  283. package/components/ScrollContainer/ScrollContainer.js.map +1 -1
  284. package/components/Select/Select.css.d.ts +17 -0
  285. package/components/Select/Select.css.js +17 -0
  286. package/components/Select/Select.css.js.map +1 -0
  287. package/components/Select/Select.js +8 -6
  288. package/components/Select/Select.js.map +1 -1
  289. package/components/Select/selectTheme.d.ts +1 -3
  290. package/components/Select/selectTheme.js +8 -7
  291. package/components/Select/selectTheme.js.map +1 -1
  292. package/components/SidePage/SidePage.css.d.ts +50 -0
  293. package/components/SidePage/SidePage.css.js +50 -0
  294. package/components/SidePage/SidePage.css.js.map +1 -0
  295. package/components/SidePage/SidePage.js +1 -1
  296. package/components/SidePage/SidePage.js.map +1 -1
  297. package/components/SidePage/SidePageBody.js +1 -1
  298. package/components/SidePage/SidePageBody.js.map +1 -1
  299. package/components/SidePage/SidePageCloseButton.js +1 -1
  300. package/components/SidePage/SidePageCloseButton.js.map +1 -1
  301. package/components/SidePage/SidePageContainer.js +1 -1
  302. package/components/SidePage/SidePageContainer.js.map +1 -1
  303. package/components/SidePage/SidePageFooter.js +1 -1
  304. package/components/SidePage/SidePageFooter.js.map +1 -1
  305. package/components/SidePage/SidePageHeader.js +1 -1
  306. package/components/SidePage/SidePageHeader.js.map +1 -1
  307. package/components/Spinner/Spinner.css.d.ts +13 -0
  308. package/components/Spinner/Spinner.css.js +13 -0
  309. package/components/Spinner/Spinner.css.js.map +1 -0
  310. package/components/Spinner/Spinner.js +1 -1
  311. package/components/Spinner/Spinner.js.map +1 -1
  312. package/components/Sticky/Sticky.css.d.ts +8 -0
  313. package/components/Sticky/Sticky.css.js +8 -0
  314. package/components/Sticky/Sticky.css.js.map +1 -0
  315. package/components/Sticky/Sticky.js +1 -1
  316. package/components/Sticky/Sticky.js.map +1 -1
  317. package/components/Switcher/Switcher.css.d.ts +12 -0
  318. package/components/Switcher/Switcher.css.js +12 -0
  319. package/components/Switcher/Switcher.css.js.map +1 -0
  320. package/components/Switcher/Switcher.js +1 -1
  321. package/components/Switcher/Switcher.js.map +1 -1
  322. package/components/Switcher/switcherTheme.d.ts +1 -2
  323. package/components/Switcher/switcherTheme.js +3 -2
  324. package/components/Switcher/switcherTheme.js.map +1 -1
  325. package/components/Tabs/Indicator.css.d.ts +8 -0
  326. package/components/Tabs/Indicator.css.js +8 -0
  327. package/components/Tabs/Indicator.css.js.map +1 -0
  328. package/components/Tabs/Indicator.js +1 -1
  329. package/components/Tabs/Indicator.js.map +1 -1
  330. package/components/Tabs/Tab.css.d.ts +35 -0
  331. package/components/Tabs/Tab.css.js +29 -0
  332. package/components/Tabs/Tab.css.js.map +1 -0
  333. package/components/Tabs/Tab.d.ts +4 -16
  334. package/components/Tabs/Tab.js +1 -1
  335. package/components/Tabs/Tab.js.map +1 -1
  336. package/components/Tabs/Tabs.css.d.ts +7 -0
  337. package/components/Tabs/Tabs.css.js +7 -0
  338. package/components/Tabs/Tabs.css.js.map +1 -0
  339. package/components/Tabs/Tabs.js +1 -1
  340. package/components/Tabs/Tabs.js.map +1 -1
  341. package/components/Textarea/Textarea.css.d.ts +23 -0
  342. package/components/Textarea/Textarea.css.js +23 -0
  343. package/components/Textarea/Textarea.css.js.map +1 -0
  344. package/components/Textarea/Textarea.js +1 -1
  345. package/components/Textarea/Textarea.js.map +1 -1
  346. package/components/Textarea/Textarea.mixins.d.ts +8 -2
  347. package/components/Textarea/Textarea.mixins.js +8 -6
  348. package/components/Textarea/Textarea.mixins.js.map +1 -1
  349. package/components/Textarea/TextareaCounter.js +1 -1
  350. package/components/Textarea/TextareaCounter.js.map +1 -1
  351. package/components/TimePicker/TimePicker.css.d.ts +11 -0
  352. package/components/TimePicker/TimePicker.css.js +11 -0
  353. package/components/TimePicker/TimePicker.css.js.map +1 -0
  354. package/components/TimePicker/TimePicker.js +3 -3
  355. package/components/TimePicker/TimePicker.js.map +1 -1
  356. package/components/TimePicker/TimePickerItems.js +1 -1
  357. package/components/TimePicker/TimePickerItems.js.map +1 -1
  358. package/components/TimePicker/TimePickerPopup.js +1 -1
  359. package/components/TimePicker/TimePickerPopup.js.map +1 -1
  360. package/components/TimePicker/helpers/TimePicker.constants.d.ts +1 -0
  361. package/components/TimePicker/helpers/TimePicker.constants.js +3 -0
  362. package/components/TimePicker/helpers/TimePicker.constants.js.map +1 -1
  363. package/components/TimePicker/helpers/TimePicker.value.d.ts +0 -1
  364. package/components/TimePicker/helpers/TimePicker.value.js +0 -5
  365. package/components/TimePicker/helpers/TimePicker.value.js.map +1 -1
  366. package/components/Toast/Toast.css.d.ts +7 -0
  367. package/components/Toast/Toast.css.js +7 -0
  368. package/components/Toast/Toast.css.js.map +1 -0
  369. package/components/Toast/Toast.js +3 -3
  370. package/components/Toast/Toast.js.map +1 -1
  371. package/components/Toast/ToastView.css.d.ts +17 -0
  372. package/components/Toast/ToastView.css.js +17 -0
  373. package/components/Toast/ToastView.css.js.map +1 -0
  374. package/components/Toast/ToastView.js +1 -1
  375. package/components/Toast/ToastView.js.map +1 -1
  376. package/components/Toggle/Toggle.css.d.ts +50 -0
  377. package/components/Toggle/Toggle.css.js +49 -0
  378. package/components/Toggle/Toggle.css.js.map +1 -0
  379. package/components/Toggle/Toggle.js +1 -1
  380. package/components/Toggle/Toggle.js.map +1 -1
  381. package/components/Token/Token.css.d.ts +23 -0
  382. package/components/Token/Token.css.js +21 -0
  383. package/components/Token/Token.css.js.map +1 -0
  384. package/components/Token/Token.js +1 -1
  385. package/components/Token/Token.js.map +1 -1
  386. package/components/Token/Token.mixins.d.ts +6 -1
  387. package/components/Token/Token.mixins.js +6 -3
  388. package/components/Token/Token.mixins.js.map +1 -1
  389. package/components/Token/TokenView.js +1 -1
  390. package/components/Token/TokenView.js.map +1 -1
  391. package/components/TokenInput/TextWidthHelper.js +1 -1
  392. package/components/TokenInput/TextWidthHelper.js.map +1 -1
  393. package/components/TokenInput/TokenInput.css.d.ts +21 -0
  394. package/components/TokenInput/TokenInput.css.js +22 -0
  395. package/components/TokenInput/TokenInput.css.js.map +1 -0
  396. package/components/TokenInput/TokenInput.js +1 -1
  397. package/components/TokenInput/TokenInput.js.map +1 -1
  398. package/components/TokenInput/TokenInput.mixins.d.ts +8 -2
  399. package/components/TokenInput/TokenInput.mixins.js +8 -6
  400. package/components/TokenInput/TokenInput.mixins.js.map +1 -1
  401. package/components/TokenInput/TokenInputMenu.js +5 -3
  402. package/components/TokenInput/TokenInputMenu.js.map +1 -1
  403. package/components/Tooltip/Tooltip.css.d.ts +11 -0
  404. package/components/Tooltip/Tooltip.css.js +11 -0
  405. package/components/Tooltip/Tooltip.css.js.map +1 -0
  406. package/components/Tooltip/Tooltip.js +17 -10
  407. package/components/Tooltip/Tooltip.js.map +1 -1
  408. package/components/TooltipMenu/TooltipMenu.js +10 -6
  409. package/components/TooltipMenu/TooltipMenu.js.map +1 -1
  410. package/internal/ClearCrossIcon/ClearCrossIcon.css.d.ts +11 -0
  411. package/internal/ClearCrossIcon/ClearCrossIcon.css.js +11 -0
  412. package/internal/ClearCrossIcon/ClearCrossIcon.css.js.map +1 -0
  413. package/internal/ClearCrossIcon/ClearCrossIcon.js +1 -1
  414. package/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  415. package/internal/CloseButtonIcon/CloseButtonIcon.css.d.ts +9 -0
  416. package/internal/CloseButtonIcon/CloseButtonIcon.css.js +9 -0
  417. package/internal/CloseButtonIcon/CloseButtonIcon.css.js.map +1 -0
  418. package/internal/CloseButtonIcon/CloseButtonIcon.js +13 -8
  419. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  420. package/internal/CommonWrapper/CommonWrapper.d.ts +6 -1
  421. package/internal/CommonWrapper/CommonWrapper.js +28 -4
  422. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  423. package/internal/CustomComboBox/ComboBoxView.js +2 -2
  424. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  425. package/internal/CustomComboBox/CustomComboBox.css.d.ts +5 -0
  426. package/internal/CustomComboBox/CustomComboBox.css.js +5 -0
  427. package/internal/CustomComboBox/CustomComboBox.css.js.map +1 -0
  428. package/internal/CustomComboBox/getComboBoxTheme.d.ts +1 -2
  429. package/internal/CustomComboBox/getComboBoxTheme.js +3 -2
  430. package/internal/CustomComboBox/getComboBoxTheme.js.map +1 -1
  431. package/internal/DateSelect/DateSelect.css.d.ts +9 -0
  432. package/internal/DateSelect/DateSelect.css.js +7 -0
  433. package/internal/DateSelect/DateSelect.css.js.map +1 -0
  434. package/internal/DateSelect/DateSelect.js +1 -1
  435. package/internal/DateSelect/DateSelect.js.map +1 -1
  436. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.d.ts +4 -0
  437. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js +4 -0
  438. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js.map +1 -0
  439. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -1
  440. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +7 -11
  441. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  442. package/internal/InputLikeText/InputLikeText.css.d.ts +6 -0
  443. package/internal/InputLikeText/InputLikeText.css.js +6 -0
  444. package/internal/InputLikeText/InputLikeText.css.js.map +1 -0
  445. package/internal/InputLikeText/InputLikeText.js +3 -3
  446. package/internal/InputLikeText/InputLikeText.js.map +1 -1
  447. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.d.ts +5 -0
  448. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js +6 -0
  449. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js.map +1 -0
  450. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +21 -17
  451. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  452. package/internal/MaskCharLowLine/MaskCharLowLine.css.d.ts +4 -0
  453. package/internal/MaskCharLowLine/MaskCharLowLine.css.js +4 -0
  454. package/internal/MaskCharLowLine/MaskCharLowLine.css.js.map +1 -0
  455. package/internal/MaskCharLowLine/MaskCharLowLine.js +1 -1
  456. package/internal/MaskCharLowLine/MaskCharLowLine.js.map +1 -1
  457. package/internal/Menu/Menu.css.d.ts +16 -0
  458. package/internal/Menu/Menu.css.js +16 -0
  459. package/internal/Menu/Menu.css.js.map +1 -0
  460. package/internal/Menu/Menu.js +6 -2
  461. package/internal/Menu/Menu.js.map +1 -1
  462. package/internal/MenuMessage/MenuMessage.css.d.ts +11 -0
  463. package/internal/MenuMessage/MenuMessage.css.js +11 -0
  464. package/internal/MenuMessage/MenuMessage.css.js.map +1 -0
  465. package/internal/MenuMessage/MenuMessage.js +1 -1
  466. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  467. package/internal/MobilePopup/MobilePopup.css.d.ts +17 -0
  468. package/internal/MobilePopup/MobilePopup.css.js +17 -0
  469. package/internal/MobilePopup/MobilePopup.css.js.map +1 -0
  470. package/internal/MobilePopup/MobilePopup.js +1 -1
  471. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  472. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.d.ts +7 -0
  473. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js +7 -0
  474. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js.map +1 -0
  475. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +1 -1
  476. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  477. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.d.ts +14 -0
  478. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js +14 -0
  479. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js.map +1 -0
  480. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
  481. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  482. package/internal/NativeDateInput/NativeDateInput.css.d.ts +4 -0
  483. package/internal/NativeDateInput/NativeDateInput.css.js +4 -0
  484. package/internal/NativeDateInput/NativeDateInput.css.js.map +1 -0
  485. package/internal/NativeDateInput/NativeDateInput.js +1 -1
  486. package/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  487. package/internal/NativeTimeInput/NativeTimeInput.css.d.ts +4 -0
  488. package/internal/NativeTimeInput/NativeTimeInput.css.js +4 -0
  489. package/internal/NativeTimeInput/NativeTimeInput.css.js.map +1 -0
  490. package/internal/NativeTimeInput/NativeTimeInput.js +1 -1
  491. package/internal/NativeTimeInput/NativeTimeInput.js.map +1 -1
  492. package/internal/Popup/Popup.css.d.ts +17 -0
  493. package/internal/Popup/Popup.css.js +17 -0
  494. package/internal/Popup/Popup.css.js.map +1 -0
  495. package/internal/Popup/Popup.js +8 -6
  496. package/internal/Popup/Popup.js.map +1 -1
  497. package/internal/Popup/PopupPin.css.d.ts +10 -0
  498. package/internal/Popup/PopupPin.css.js +10 -0
  499. package/internal/Popup/PopupPin.css.js.map +1 -0
  500. package/internal/Popup/PopupPin.js +1 -1
  501. package/internal/Popup/PopupPin.js.map +1 -1
  502. package/internal/PopupMenu/PopupMenu.css.d.ts +5 -0
  503. package/internal/PopupMenu/PopupMenu.css.js +5 -0
  504. package/internal/PopupMenu/PopupMenu.css.js.map +1 -0
  505. package/internal/PopupMenu/PopupMenu.js +6 -4
  506. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  507. package/internal/RenderContainer/RenderContainer.d.ts +2 -0
  508. package/internal/RenderContainer/RenderContainer.js +37 -3
  509. package/internal/RenderContainer/RenderContainer.js.map +1 -1
  510. package/internal/ResizeDetector/ResizeDetector.css.d.ts +8 -0
  511. package/internal/ResizeDetector/ResizeDetector.css.js +8 -0
  512. package/internal/ResizeDetector/ResizeDetector.css.js.map +1 -0
  513. package/internal/ResizeDetector/ResizeDetector.js +1 -1
  514. package/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  515. package/internal/SpinnerIcon/SpinnerIcon.css.d.ts +7 -0
  516. package/internal/SpinnerIcon/SpinnerIcon.css.js +7 -0
  517. package/internal/SpinnerIcon/SpinnerIcon.css.js.map +1 -0
  518. package/internal/SpinnerIcon/SpinnerIcon.js +1 -1
  519. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  520. package/internal/TextWidthHelper/TextWidthHelper.css.d.ts +5 -0
  521. package/internal/TextWidthHelper/TextWidthHelper.css.js +5 -0
  522. package/internal/TextWidthHelper/TextWidthHelper.css.js.map +1 -0
  523. package/internal/TextWidthHelper/TextWidthHelper.js +1 -1
  524. package/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  525. package/internal/TimeInput/TimeFragments.css.d.ts +32 -0
  526. package/internal/TimeInput/TimeFragments.css.js +19 -0
  527. package/internal/TimeInput/TimeFragments.css.js.map +1 -0
  528. package/internal/TimeInput/TimeFragments.js +1 -1
  529. package/internal/TimeInput/TimeFragments.js.map +1 -1
  530. package/internal/TimeInput/TimeInput.css.d.ts +7 -0
  531. package/internal/TimeInput/TimeInput.css.js +7 -0
  532. package/internal/TimeInput/TimeInput.css.js.map +1 -0
  533. package/internal/TimeInput/TimeInput.js +1 -1
  534. package/internal/TimeInput/TimeInput.js.map +1 -1
  535. package/internal/icons2022/BaseIcon.css.d.ts +4 -0
  536. package/internal/icons2022/BaseIcon.css.js +4 -0
  537. package/internal/icons2022/BaseIcon.css.js.map +1 -0
  538. package/internal/icons2022/BaseIcon.js +1 -1
  539. package/internal/icons2022/BaseIcon.js.map +1 -1
  540. package/internal/icons2022/LoadingIcon.js +1 -1
  541. package/internal/icons2022/LoadingIcon.js.map +1 -1
  542. package/internal/themes/BasicTheme.d.ts +0 -40
  543. package/internal/themes/BasicTheme.js +1 -73
  544. package/internal/themes/BasicTheme.js.map +1 -1
  545. package/internal/themes/DarkTheme6_0.js +0 -19
  546. package/internal/themes/DarkTheme6_0.js.map +1 -1
  547. package/lib/renderEnvironment/RenderEnvironmentContext.d.ts +1 -1
  548. package/lib/renderEnvironment/RenderEnvironmentContext.js +4 -6
  549. package/lib/renderEnvironment/RenderEnvironmentContext.js.map +1 -1
  550. package/lib/renderEnvironment/RenderEnvironmentDecorator.js.map +1 -1
  551. package/lib/styles/LabGrotesqueBaseline.css.d.ts +1 -0
  552. package/lib/styles/LabGrotesqueBaseline.css.js +0 -0
  553. package/lib/styles/LabGrotesqueBaseline.css.js.map +1 -0
  554. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +6 -1
  555. package/lib/styles/getLabGrotesqueBaselineCompensation.js +23 -6
  556. package/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -1
  557. package/lib/theming/Emotion.d.ts +15 -13
  558. package/lib/theming/Emotion.js +30 -46
  559. package/lib/theming/Emotion.js.map +1 -1
  560. package/lib/theming/ThemeVersions.d.ts +1 -1
  561. package/lib/theming/ThemeVersions.js.map +1 -1
  562. package/lib/theming/bindStaticStyles.d.ts +6 -0
  563. package/lib/theming/bindStaticStyles.js +22 -0
  564. package/lib/theming/bindStaticStyles.js.map +1 -0
  565. package/lib/theming/memoizeTheme.d.ts +11 -0
  566. package/lib/theming/memoizeTheme.js +37 -0
  567. package/lib/theming/memoizeTheme.js.map +1 -0
  568. package/lib/theming/themeVars.d.ts +25 -0
  569. package/lib/theming/themeVars.js +74 -0
  570. package/lib/theming/themeVars.js.map +1 -0
  571. package/lib/theming/themes/DarkTheme.d.ts +0 -1
  572. package/lib/theming/themes/DarkTheme.js +1 -3
  573. package/lib/theming/themes/DarkTheme.js.map +1 -1
  574. package/lib/theming/themes/LightTheme.d.ts +0 -1
  575. package/lib/theming/themes/LightTheme.js +1 -3
  576. package/lib/theming/themes/LightTheme.js.map +1 -1
  577. package/package.json +17 -6
  578. package/react-ui.css +6044 -0
  579. package/components/Autocomplete/Autocomplete.styles.d.ts +0 -5
  580. package/components/Autocomplete/Autocomplete.styles.js +0 -18
  581. package/components/Autocomplete/Autocomplete.styles.js.map +0 -1
  582. package/components/Button/Button.mixins.d.ts +0 -4
  583. package/components/Button/Button.mixins.js +0 -21
  584. package/components/Button/Button.mixins.js.map +0 -1
  585. package/components/Button/Button.styles.d.ts +0 -95
  586. package/components/Button/Button.styles.js +0 -260
  587. package/components/Button/Button.styles.js.map +0 -1
  588. package/components/Button/ButtonIcon.styles.d.ts +0 -16
  589. package/components/Button/ButtonIcon.styles.js +0 -53
  590. package/components/Button/ButtonIcon.styles.js.map +0 -1
  591. package/components/Calendar/Calendar.styles.d.ts +0 -6
  592. package/components/Calendar/Calendar.styles.js +0 -22
  593. package/components/Calendar/Calendar.styles.js.map +0 -1
  594. package/components/Calendar/DayCellView.styles.d.ts +0 -9
  595. package/components/Calendar/DayCellView.styles.js +0 -31
  596. package/components/Calendar/DayCellView.styles.js.map +0 -1
  597. package/components/Calendar/MonthView.styles.d.ts +0 -13
  598. package/components/Calendar/MonthView.styles.js +0 -47
  599. package/components/Calendar/MonthView.styles.js.map +0 -1
  600. package/components/Center/Center.styles.d.ts +0 -7
  601. package/components/Center/Center.styles.js +0 -27
  602. package/components/Center/Center.styles.js.map +0 -1
  603. package/components/Checkbox/Checkbox.styles.d.ts +0 -34
  604. package/components/Checkbox/Checkbox.styles.js +0 -100
  605. package/components/Checkbox/Checkbox.styles.js.map +0 -1
  606. package/components/DateInput/DateFragmentsView.styles.d.ts +0 -7
  607. package/components/DateInput/DateFragmentsView.styles.js +0 -28
  608. package/components/DateInput/DateFragmentsView.styles.js.map +0 -1
  609. package/components/DateInput/DateInput.styles.d.ts +0 -11
  610. package/components/DateInput/DateInput.styles.js +0 -29
  611. package/components/DateInput/DateInput.styles.js.map +0 -1
  612. package/components/DatePicker/DatePicker.styles.d.ts +0 -5
  613. package/components/DatePicker/DatePicker.styles.js +0 -18
  614. package/components/DatePicker/DatePicker.styles.js.map +0 -1
  615. package/components/DatePicker/MobilePicker.styles.d.ts +0 -3
  616. package/components/DatePicker/MobilePicker.styles.js +0 -15
  617. package/components/DatePicker/MobilePicker.styles.js.map +0 -1
  618. package/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -16
  619. package/components/DateRangePicker/DateRangePicker.styles.js +0 -57
  620. package/components/DateRangePicker/DateRangePicker.styles.js.map +0 -1
  621. package/components/FileUploader/FileUploader.styles.d.ts +0 -74
  622. package/components/FileUploader/FileUploader.styles.js +0 -221
  623. package/components/FileUploader/FileUploader.styles.js.map +0 -1
  624. package/components/FileUploader/FileUploaderFile.styles.d.ts +0 -60
  625. package/components/FileUploader/FileUploaderFile.styles.js +0 -184
  626. package/components/FileUploader/FileUploaderFile.styles.js.map +0 -1
  627. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -34
  628. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js +0 -103
  629. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js.map +0 -1
  630. package/components/GlobalLoader/GlobalLoaderView.styles.d.ts +0 -17
  631. package/components/GlobalLoader/GlobalLoaderView.styles.js +0 -70
  632. package/components/GlobalLoader/GlobalLoaderView.styles.js.map +0 -1
  633. package/components/Group/Group.styles.d.ts +0 -8
  634. package/components/Group/Group.styles.js +0 -30
  635. package/components/Group/Group.styles.js.map +0 -1
  636. package/components/Hint/Hint.styles.d.ts +0 -5
  637. package/components/Hint/Hint.styles.js +0 -18
  638. package/components/Hint/Hint.styles.js.map +0 -1
  639. package/components/Input/Input.styles.d.ts +0 -21
  640. package/components/Input/Input.styles.js +0 -68
  641. package/components/Input/Input.styles.js.map +0 -1
  642. package/components/Input/InputLayout/InputLayout.styles.d.ts +0 -18
  643. package/components/Input/InputLayout/InputLayout.styles.js +0 -59
  644. package/components/Input/InputLayout/InputLayout.styles.js.map +0 -1
  645. package/components/Kebab/Kebab.styles.d.ts +0 -11
  646. package/components/Kebab/Kebab.styles.js +0 -36
  647. package/components/Kebab/Kebab.styles.js.map +0 -1
  648. package/components/Link/Link.mixins.d.ts +0 -2
  649. package/components/Link/Link.mixins.js +0 -7
  650. package/components/Link/Link.mixins.js.map +0 -1
  651. package/components/Link/Link.styles.d.ts +0 -24
  652. package/components/Link/Link.styles.js +0 -82
  653. package/components/Link/Link.styles.js.map +0 -1
  654. package/components/Loader/Loader.styles.d.ts +0 -8
  655. package/components/Loader/Loader.styles.js +0 -27
  656. package/components/Loader/Loader.styles.js.map +0 -1
  657. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.d.ts +0 -6
  658. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js +0 -18
  659. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js.map +0 -1
  660. package/components/MaskedInput/MaskedInput.styles.d.ts +0 -7
  661. package/components/MaskedInput/MaskedInput.styles.js +0 -19
  662. package/components/MaskedInput/MaskedInput.styles.js.map +0 -1
  663. package/components/MaskedInputV2/MaskedInputV2.styles.d.ts +0 -7
  664. package/components/MaskedInputV2/MaskedInputV2.styles.js +0 -19
  665. package/components/MaskedInputV2/MaskedInputV2.styles.js.map +0 -1
  666. package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +0 -15
  667. package/components/MaskedInputV2/internal/MaskedInternal.styles.js +0 -34
  668. package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +0 -1
  669. package/components/MenuFooter/MenuFooter.styles.d.ts +0 -10
  670. package/components/MenuFooter/MenuFooter.styles.js +0 -34
  671. package/components/MenuFooter/MenuFooter.styles.js.map +0 -1
  672. package/components/MenuHeader/MenuHeader.styles.d.ts +0 -10
  673. package/components/MenuHeader/MenuHeader.styles.js +0 -34
  674. package/components/MenuHeader/MenuHeader.styles.js.map +0 -1
  675. package/components/MenuItem/MenuItem.styles.d.ts +0 -29
  676. package/components/MenuItem/MenuItem.styles.js +0 -88
  677. package/components/MenuItem/MenuItem.styles.js.map +0 -1
  678. package/components/MenuSeparator/MenuSeparator.styles.d.ts +0 -5
  679. package/components/MenuSeparator/MenuSeparator.styles.js +0 -18
  680. package/components/MenuSeparator/MenuSeparator.styles.js.map +0 -1
  681. package/components/MiniModal/MiniModal.styles.d.ts +0 -11
  682. package/components/MiniModal/MiniModal.styles.js +0 -37
  683. package/components/MiniModal/MiniModal.styles.js.map +0 -1
  684. package/components/Modal/Modal.styles.d.ts +0 -55
  685. package/components/Modal/Modal.styles.js +0 -167
  686. package/components/Modal/Modal.styles.js.map +0 -1
  687. package/components/Paging/Paging.styles.d.ts +0 -32
  688. package/components/Paging/Paging.styles.js +0 -99
  689. package/components/Paging/Paging.styles.js.map +0 -1
  690. package/components/PasswordInput/PasswordInput.styles.d.ts +0 -11
  691. package/components/PasswordInput/PasswordInput.styles.js +0 -36
  692. package/components/PasswordInput/PasswordInput.styles.js.map +0 -1
  693. package/components/Radio/Radio.styles.d.ts +0 -34
  694. package/components/Radio/Radio.styles.js +0 -100
  695. package/components/Radio/Radio.styles.js.map +0 -1
  696. package/components/RadioGroup/RadioGroup.styles.d.ts +0 -6
  697. package/components/RadioGroup/RadioGroup.styles.js +0 -24
  698. package/components/RadioGroup/RadioGroup.styles.js.map +0 -1
  699. package/components/ScrollContainer/ScrollContainer.styles.d.ts +0 -21
  700. package/components/ScrollContainer/ScrollContainer.styles.js +0 -52
  701. package/components/ScrollContainer/ScrollContainer.styles.js.map +0 -1
  702. package/components/Select/Select.styles.d.ts +0 -18
  703. package/components/Select/Select.styles.js +0 -57
  704. package/components/Select/Select.styles.js.map +0 -1
  705. package/components/SidePage/SidePage.styles.d.ts +0 -50
  706. package/components/SidePage/SidePage.styles.js +0 -158
  707. package/components/SidePage/SidePage.styles.js.map +0 -1
  708. package/components/Spinner/Spinner.styles.d.ts +0 -13
  709. package/components/Spinner/Spinner.styles.js +0 -43
  710. package/components/Spinner/Spinner.styles.js.map +0 -1
  711. package/components/Sticky/Sticky.styles.d.ts +0 -7
  712. package/components/Sticky/Sticky.styles.js +0 -27
  713. package/components/Sticky/Sticky.styles.js.map +0 -1
  714. package/components/Switcher/Switcher.styles.d.ts +0 -12
  715. package/components/Switcher/Switcher.styles.js +0 -39
  716. package/components/Switcher/Switcher.styles.js.map +0 -1
  717. package/components/Tabs/Indicator.styles.d.ts +0 -8
  718. package/components/Tabs/Indicator.styles.js +0 -27
  719. package/components/Tabs/Indicator.styles.js.map +0 -1
  720. package/components/Tabs/Tab.styles.d.ts +0 -33
  721. package/components/Tabs/Tab.styles.js +0 -105
  722. package/components/Tabs/Tab.styles.js.map +0 -1
  723. package/components/Tabs/Tabs.styles.d.ts +0 -7
  724. package/components/Tabs/Tabs.styles.js +0 -26
  725. package/components/Tabs/Tabs.styles.js.map +0 -1
  726. package/components/Tabs/helpers.d.ts +0 -6
  727. package/components/Tabs/helpers.js +0 -25
  728. package/components/Tabs/helpers.js.map +0 -1
  729. package/components/Textarea/Textarea.styles.d.ts +0 -23
  730. package/components/Textarea/Textarea.styles.js +0 -73
  731. package/components/Textarea/Textarea.styles.js.map +0 -1
  732. package/components/TimePicker/TimePicker.styles.d.ts +0 -12
  733. package/components/TimePicker/TimePicker.styles.js +0 -39
  734. package/components/TimePicker/TimePicker.styles.js.map +0 -1
  735. package/components/Toast/Toast.styles.d.ts +0 -6
  736. package/components/Toast/Toast.styles.js +0 -24
  737. package/components/Toast/Toast.styles.js.map +0 -1
  738. package/components/Toast/ToastView.styles.d.ts +0 -18
  739. package/components/Toast/ToastView.styles.js +0 -67
  740. package/components/Toast/ToastView.styles.js.map +0 -1
  741. package/components/Toggle/Toggle.mixins.d.ts +0 -8
  742. package/components/Toggle/Toggle.mixins.js +0 -32
  743. package/components/Toggle/Toggle.mixins.js.map +0 -1
  744. package/components/Toggle/Toggle.styles.d.ts +0 -49
  745. package/components/Toggle/Toggle.styles.js +0 -147
  746. package/components/Toggle/Toggle.styles.js.map +0 -1
  747. package/components/Token/Token.styles.d.ts +0 -23
  748. package/components/Token/Token.styles.js +0 -67
  749. package/components/Token/Token.styles.js.map +0 -1
  750. package/components/TokenInput/TokenInput.styles.d.ts +0 -21
  751. package/components/TokenInput/TokenInput.styles.js +0 -68
  752. package/components/TokenInput/TokenInput.styles.js.map +0 -1
  753. package/components/Tooltip/Tooltip.styles.d.ts +0 -11
  754. package/components/Tooltip/Tooltip.styles.js +0 -36
  755. package/components/Tooltip/Tooltip.styles.js.map +0 -1
  756. package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +0 -12
  757. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js +0 -36
  758. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +0 -1
  759. package/internal/CloseButtonIcon/CloseButtonIcon.styles.d.ts +0 -8
  760. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js +0 -24
  761. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +0 -1
  762. package/internal/CustomComboBox/CustomComboBox.styles.d.ts +0 -4
  763. package/internal/CustomComboBox/CustomComboBox.styles.js +0 -18
  764. package/internal/CustomComboBox/CustomComboBox.styles.js.map +0 -1
  765. package/internal/DateSelect/DateSelect.styles.d.ts +0 -9
  766. package/internal/DateSelect/DateSelect.styles.js +0 -24
  767. package/internal/DateSelect/DateSelect.styles.js.map +0 -1
  768. package/internal/InputLikeText/InputLikeText.styles.d.ts +0 -8
  769. package/internal/InputLikeText/InputLikeText.styles.js +0 -30
  770. package/internal/InputLikeText/InputLikeText.styles.js.map +0 -1
  771. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +0 -3
  772. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +0 -15
  773. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +0 -1
  774. package/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +0 -3
  775. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js +0 -15
  776. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js.map +0 -1
  777. package/internal/Menu/Menu.styles.d.ts +0 -16
  778. package/internal/Menu/Menu.styles.js +0 -51
  779. package/internal/Menu/Menu.styles.js.map +0 -1
  780. package/internal/MenuMessage/MenuMessage.styles.d.ts +0 -11
  781. package/internal/MenuMessage/MenuMessage.styles.js +0 -41
  782. package/internal/MenuMessage/MenuMessage.styles.js.map +0 -1
  783. package/internal/MobilePopup/MobilePopup.styles.d.ts +0 -17
  784. package/internal/MobilePopup/MobilePopup.styles.js +0 -57
  785. package/internal/MobilePopup/MobilePopup.styles.js.map +0 -1
  786. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +0 -7
  787. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +0 -25
  788. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +0 -1
  789. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +0 -14
  790. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +0 -47
  791. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +0 -1
  792. package/internal/NativeDateInput/NativeDateInput.styles.d.ts +0 -3
  793. package/internal/NativeDateInput/NativeDateInput.styles.js +0 -15
  794. package/internal/NativeDateInput/NativeDateInput.styles.js.map +0 -1
  795. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +0 -3
  796. package/internal/NativeTimeInput/NativeTimeInput.styles.js +0 -15
  797. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +0 -1
  798. package/internal/Popup/Popup.styles.d.ts +0 -22
  799. package/internal/Popup/Popup.styles.js +0 -69
  800. package/internal/Popup/Popup.styles.js.map +0 -1
  801. package/internal/Popup/PopupPin.styles.d.ts +0 -9
  802. package/internal/Popup/PopupPin.styles.js +0 -33
  803. package/internal/Popup/PopupPin.styles.js.map +0 -1
  804. package/internal/PopupMenu/PopupMenu.styles.d.ts +0 -4
  805. package/internal/PopupMenu/PopupMenu.styles.js +0 -18
  806. package/internal/PopupMenu/PopupMenu.styles.js.map +0 -1
  807. package/internal/ResizeDetector/ResizeDetector.styles.d.ts +0 -7
  808. package/internal/ResizeDetector/ResizeDetector.styles.js +0 -27
  809. package/internal/ResizeDetector/ResizeDetector.styles.js.map +0 -1
  810. package/internal/SpinnerIcon/SpinnerIcon.styles.d.ts +0 -6
  811. package/internal/SpinnerIcon/SpinnerIcon.styles.js +0 -24
  812. package/internal/SpinnerIcon/SpinnerIcon.styles.js.map +0 -1
  813. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
  814. package/internal/TextWidthHelper/TextWidthHelper.styles.js +0 -18
  815. package/internal/TextWidthHelper/TextWidthHelper.styles.js.map +0 -1
  816. package/internal/TimeInput/TimeFragments.styles.d.ts +0 -32
  817. package/internal/TimeInput/TimeFragments.styles.js +0 -78
  818. package/internal/TimeInput/TimeFragments.styles.js.map +0 -1
  819. package/internal/TimeInput/TimeInput.styles.d.ts +0 -7
  820. package/internal/TimeInput/TimeInput.styles.js +0 -24
  821. package/internal/TimeInput/TimeInput.styles.js.map +0 -1
  822. package/internal/icons2022/BaseIcon.styles.d.ts +0 -3
  823. package/internal/icons2022/BaseIcon.styles.js +0 -16
  824. package/internal/icons2022/BaseIcon.styles.js.map +0 -1
  825. package/internal/themes/DarkTheme6_5.d.ts +0 -1
  826. package/internal/themes/DarkTheme6_5.js +0 -87
  827. package/internal/themes/DarkTheme6_5.js.map +0 -1
  828. package/internal/themes/LightTheme6_5.d.ts +0 -1
  829. package/internal/themes/LightTheme6_5.js +0 -87
  830. package/internal/themes/LightTheme6_5.js.map +0 -1
  831. package/lib/Upgrades.d.ts +0 -6
  832. package/lib/Upgrades.js +0 -34
  833. package/lib/Upgrades.js.map +0 -1
  834. package/lib/styles/Mixins.d.ts +0 -2
  835. package/lib/styles/Mixins.js +0 -7
  836. package/lib/styles/Mixins.js.map +0 -1
  837. package/lib/styles/UiFont.d.ts +0 -3
  838. package/lib/styles/UiFont.js +0 -18
  839. package/lib/styles/UiFont.js.map +0 -1
  840. package/lib/theming/AnimationKeyframes.d.ts +0 -7
  841. package/lib/theming/AnimationKeyframes.js +0 -24
  842. package/lib/theming/AnimationKeyframes.js.map +0 -1
  843. 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 { 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 { Emotion } from '../../lib/theming/Emotion.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.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 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"]}
@@ -0,0 +1,5 @@
1
+ export declare const caption: string;
2
+ export declare const container: string;
3
+ export declare const getStyles: (_emotion?: unknown) => {
4
+ [x: string]: (...args: unknown[]) => string;
5
+ };
@@ -0,0 +1,5 @@
1
+
2
+ import { bindStaticStyles as _b9cd9 } from '../../lib/theming/bindStaticStyles.js';
3
+ export var caption = 'react-ui-PopupMenu__caption';
4
+ export var container = 'react-ui-PopupMenu__container';
5
+ export var getStyles = _b9cd9({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,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,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,SAAS,GAAG,YAAY,CAAC,EAAE,OAAO,SAAA,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC","sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { exportStyles } from '../../lib/theming/vanilla.js';\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 getStyles = exportStyles({ caption, container });\n"]}
@@ -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 { getStyles } 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',
@@ -180,9 +184,7 @@ var PopupMenu = /** @class */ (function (_super) {
180
184
  var _this = this;
181
185
  this.styles = getStyles(this.emotion);
182
186
  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()));
187
+ return React.createElement(ThemeContext.Provider, { value: getPopupMenuTheme(theme) }, _this.renderMain());
186
188
  }));
187
189
  };
188
190
  PopupMenu.prototype.renderMain = function () {
@@ -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 type { Emotion } from '../../lib/theming/Emotion.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 { getStyles } 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 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 <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\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"]}
@@ -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;
@@ -27,7 +27,9 @@ var __assign = (this && this.__assign) || function () {
27
27
  import React from 'react';
28
28
  import { callChildRef } from '../../lib/callChildRef/callChildRef.js';
29
29
  import { RenderEnvironmentContext } from '../../lib/renderEnvironment/index.js';
30
- import { Upgrade } from '../../lib/Upgrades.js';
30
+ import { REACT_UI_PREFIX } from '../../lib/theming/Emotion.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,47 @@ 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
+ return (React.createElement(ThemeCarrierContext.Provider, { value: theme },
68
+ React.createElement(RenderInnerContainer, __assign({}, _this.props, { domContainer: _this.domContainer, rootId: _this.rootId }))));
69
+ }));
70
+ };
71
+ RenderContainer.prototype.applyThemeVars = function (vars, setTokens) {
72
+ var container = this.domContainer;
73
+ // Popup перерисовывается на каждый скролл: переписываем атрибуты, только если сменились контейнер или тема
74
+ // (результаты getThemeVars и getThemeSetTokens закешированы). В рендере, а не в componentDidUpdate: вложенные
75
+ // компоненты меряют себя в своих componentDidMount, а он у них раньше, чем у контейнера
76
+ var _a = this.appliedThemeVars, appliedContainer = _a[0], appliedVars = _a[1], appliedSetTokens = _a[2];
77
+ if (!container || (container === appliedContainer && vars === appliedVars && setTokens === appliedSetTokens)) {
78
+ return;
79
+ }
80
+ this.appliedThemeVars = [container, vars, setTokens];
81
+ // снимаем только свои переменные: inline-стили контейнера мог поставить потребитель через containerRef
82
+ if (container === appliedContainer && appliedVars) {
83
+ Object.keys(appliedVars).forEach(function (name) { return container.style.removeProperty(name); });
84
+ }
85
+ if (setTokens) {
86
+ container.setAttribute('data-k-set', setTokens);
87
+ }
88
+ else {
89
+ container.removeAttribute('data-k-set');
90
+ }
91
+ Object.entries(vars).forEach(function (_a) {
92
+ var name = _a[0], value = _a[1];
93
+ return container.style.setProperty(name, String(value));
94
+ });
61
95
  };
62
96
  RenderContainer.prototype.createContainer = function () {
63
97
  var _a;
64
98
  var domContainer = (_a = this.context.globalObject.document) === null || _a === void 0 ? void 0 : _a.createElement('div');
65
99
  if (domContainer) {
66
- domContainer.setAttribute('class', Upgrade.getSpecificityClassName());
100
+ domContainer.setAttribute('class', REACT_UI_PREFIX);
67
101
  domContainer.setAttribute(PORTAL_OUTLET_ATTR, "".concat(this.rootId));
68
102
  this.domContainer = domContainer;
69
103
  }
@@ -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 { RenderEnvironmentContext } from '../../lib/renderEnvironment/index.js';\nimport type { RenderEnvironmentContextType } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode } from '../../lib/rootNode/rootNodeDecorator.js';\nimport { REACT_UI_PREFIX } from '../../lib/theming/Emotion.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 return (\n <ThemeCarrierContext.Provider value={theme}>\n <RenderInnerContainer {...this.props} domContainer={this.domContainer} rootId={this.rootId} />\n </ThemeCarrierContext.Provider>\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"]}
@@ -0,0 +1,8 @@
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 getStyles: (_emotion?: unknown) => {
7
+ [x: string]: (...args: unknown[]) => string;
8
+ };
@@ -0,0 +1,8 @@
1
+
2
+ import { bindStaticStyles as _b9cd9 } from '../../lib/theming/bindStaticStyles.js';
3
+ export var content = 'react-ui-ResizeDetector__content';
4
+ export var flex = 'react-ui-ResizeDetector__flex';
5
+ export var fullHeight = 'react-ui-ResizeDetector__fullHeight';
6
+ export var getStyles = _b9cd9({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'});
7
+ export var iframe = 'react-ui-ResizeDetector__iframe';
8
+ export var root = 'react-ui-ResizeDetector__root';
@@ -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,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,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,SAAS,GAAG,YAAY,CAAC,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,UAAU,YAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC","sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { exportStyles } from '../../lib/theming/vanilla.js';\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 getStyles = exportStyles({ root, iframe, content, fullHeight, flex });\n"]}
@@ -21,7 +21,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
21
21
  };
22
22
  import React from 'react';
23
23
  import { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';
24
- import { getStyles } from './ResizeDetector.styles.js';
24
+ import { getStyles } from './ResizeDetector.css.js';
25
25
  var ResizeDetector = /** @class */ (function (_super) {
26
26
  __extends(ResizeDetector, _super);
27
27
  function 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,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AASpD;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 React from 'react';\n\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { Emotion } from '../../lib/theming/Emotion.js';\nimport { getStyles } from './ResizeDetector.css.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"]}
@@ -0,0 +1,7 @@
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 getStyles: (_emotion?: unknown) => {
6
+ [x: string]: (...args: unknown[]) => string;
7
+ };
@@ -0,0 +1,7 @@
1
+
2
+ import { bindStaticStyles as _b9cd9 } from '../../lib/theming/bindStaticStyles.js';
3
+ export var getStyles = _b9cd9({root:'react-ui-SpinnerIcon__root',rootInline:'react-ui-SpinnerIcon__rootInline',icon:'react-ui-SpinnerIcon__icon',iconInline:'react-ui-SpinnerIcon__iconInline'});
4
+ export var icon = 'react-ui-SpinnerIcon__icon';
5
+ export var iconInline = 'react-ui-SpinnerIcon__iconInline';
6
+ export var root = 'react-ui-SpinnerIcon__root';
7
+ export var rootInline = 'react-ui-SpinnerIcon__rootInline';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpinnerIcon.css.js","sourceRoot":"","sources":["SpinnerIcon.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,CAAC,IAAM,IAAI,GAAG,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAExF,MAAM,CAAC,IAAM,UAAU,GAAG,KAAK,CAAC;IAC9B,UAAU,EAAE,uBAAuB;IACnC,WAAW,EAAE,uBAAuB;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,IAAI,GAAG,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AAE1F,MAAM,CAAC,IAAM,UAAU,GAAG,KAAK,CAAC;IAC9B,MAAM,EAAE,sBAAsB;IAC9B,KAAK,EAAE,sBAAsB;IAC7B,YAAY,EAAE,uBAAuB;IACrC,WAAW,EAAE,uBAAuB;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,SAAS,GAAG,YAAY,CAAC,EAAE,IAAI,MAAA,EAAE,UAAU,YAAA,EAAE,IAAI,MAAA,EAAE,UAAU,YAAA,EAAE,CAAC,CAAC","sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { exportStyles } from '../../lib/theming/vanilla.js';\n\nexport const root = style({ display: 'inline-block', marginLeft: -1, marginRight: -1 });\n\nexport const rootInline = style({\n marginLeft: '-0.0714285714285714em',\n marginRight: '-0.0714285714285714em',\n});\n\nexport const icon = style({ marginBottom: -3, borderRadius: '50%', overflow: 'visible' });\n\nexport const iconInline = style({\n height: '1.1428571428571428em',\n width: '1.1428571428571428em',\n marginBottom: '-0.2428571428571428em',\n strokeWidth: '0.10714285714285714em',\n});\n\nexport const getStyles = exportStyles({ root, rootInline, icon, iconInline });\n"]}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';
3
- import { getStyles } from './SpinnerIcon.styles.js';
3
+ import { getStyles } from './SpinnerIcon.css.js';
4
4
  export var sizes = {
5
5
  large: {
6
6
  size: 96,
@@ -1 +1 @@
1
- {"version":3,"file":"SpinnerIcon.js","sourceRoot":"","sources":["SpinnerIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAgBpD,MAAM,CAAC,IAAM,KAAK,GAAG;IACnB,KAAK,EAAE;QACL,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;KACX;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;KACX;IACD,KAAK,EAAE;QACL,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,CAAC;KACV;CACO,CAAC;AAEX,IAAM,WAAW,GAAG,UAAC,IAAa;IAChC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,EAA2D;;QAAzD,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,MAAM,YAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA;IACjE,IAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,IAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAEzC,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,CACL,8BAAM,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,YAAI,GAAC,MAAM,CAAC,UAAU,EAAE,IAAG,MAAM,MAAG;QACnE,6BACE,OAAO,EAAE,cAAO,WAAW,CAAC,IAAI,cAAI,WAAW,CAAC,IAAI,CAAE,EACtD,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS;gBACpC,GAAC,MAAM,CAAC,UAAU,EAAE,IAAG,MAAM;oBAC7B,EACF,KAAK,EAAE,WAAW,CAAC,IAAI,EACvB,MAAM,EAAE,WAAW,CAAC,IAAI,EACxB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,eAAe,EAAE,UAAG,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,eAAK,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAE,EACrF,gBAAgB,EAAC,GAAG,EACpB,WAAW,EAAE,KAAK,IAAI,WAAW,CAAC,KAAK,EACvC,SAAS,EAAC,OAAO,iBACL,MAAM;YAElB,gCAAQ,EAAE,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM,GAAI,CACjF,CACD,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { getStyles } from './SpinnerIcon.styles.js';\n\ninterface SpinnerIconSize {\n size: number;\n width: number;\n radius: number;\n}\n\nexport interface SpinnerIconProps {\n className?: string;\n size: SpinnerIconSize | keyof typeof sizes;\n inline?: boolean;\n width?: number;\n color?: React.CSSProperties['color'];\n}\n\nexport const sizes = {\n large: {\n size: 96,\n width: 4,\n radius: 32,\n },\n medium: {\n size: 48,\n width: 2,\n radius: 16,\n },\n small: {\n size: 16,\n width: 1.5,\n radius: 6,\n },\n} as const;\n\nconst isSizeAlias = (size: unknown): size is keyof typeof sizes => {\n return typeof size === 'string' && size in sizes;\n};\n\nexport const SpinnerIcon = ({ size, className, inline, width, color }: SpinnerIconProps) => {\n const _size = isSizeAlias(size) ? sizes[size] : size;\n const currentSize = inline ? sizes.small : _size;\n\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n return (\n <span className={cx(styles.root(), { [styles.rootInline()]: inline })}>\n <svg\n viewBox={`0 0 ${currentSize.size} ${currentSize.size}`}\n className={cx(styles.icon(), className, {\n [styles.iconInline()]: inline,\n })}\n width={currentSize.size}\n height={currentSize.size}\n fill=\"none\"\n stroke={color}\n strokeDasharray={`${(10 * currentSize.radius) / 6}, ${(27 * currentSize.radius) / 6}`}\n strokeDashoffset=\"0\"\n strokeWidth={width || currentSize.width}\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <circle cx={currentSize.size / 2} cy={currentSize.size / 2} r={currentSize.radius} />\n </svg>\n </span>\n );\n};\n"]}
1
+ {"version":3,"file":"SpinnerIcon.js","sourceRoot":"","sources":["SpinnerIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAgBjD,MAAM,CAAC,IAAM,KAAK,GAAG;IACnB,KAAK,EAAE;QACL,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;KACX;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;KACX;IACD,KAAK,EAAE;QACL,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,CAAC;KACV;CACO,CAAC;AAEX,IAAM,WAAW,GAAG,UAAC,IAAa;IAChC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,EAA2D;;QAAzD,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,MAAM,YAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA;IACjE,IAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,IAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAEzC,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,CACL,8BAAM,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,YAAI,GAAC,MAAM,CAAC,UAAU,EAAE,IAAG,MAAM,MAAG;QACnE,6BACE,OAAO,EAAE,cAAO,WAAW,CAAC,IAAI,cAAI,WAAW,CAAC,IAAI,CAAE,EACtD,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS;gBACpC,GAAC,MAAM,CAAC,UAAU,EAAE,IAAG,MAAM;oBAC7B,EACF,KAAK,EAAE,WAAW,CAAC,IAAI,EACvB,MAAM,EAAE,WAAW,CAAC,IAAI,EACxB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,eAAe,EAAE,UAAG,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,eAAK,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAE,EACrF,gBAAgB,EAAC,GAAG,EACpB,WAAW,EAAE,KAAK,IAAI,WAAW,CAAC,KAAK,EACvC,SAAS,EAAC,OAAO,iBACL,MAAM;YAElB,gCAAQ,EAAE,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM,GAAI,CACjF,CACD,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { getStyles } from './SpinnerIcon.css.js';\n\ninterface SpinnerIconSize {\n size: number;\n width: number;\n radius: number;\n}\n\nexport interface SpinnerIconProps {\n className?: string;\n size: SpinnerIconSize | keyof typeof sizes;\n inline?: boolean;\n width?: number;\n color?: React.CSSProperties['color'];\n}\n\nexport const sizes = {\n large: {\n size: 96,\n width: 4,\n radius: 32,\n },\n medium: {\n size: 48,\n width: 2,\n radius: 16,\n },\n small: {\n size: 16,\n width: 1.5,\n radius: 6,\n },\n} as const;\n\nconst isSizeAlias = (size: unknown): size is keyof typeof sizes => {\n return typeof size === 'string' && size in sizes;\n};\n\nexport const SpinnerIcon = ({ size, className, inline, width, color }: SpinnerIconProps) => {\n const _size = isSizeAlias(size) ? sizes[size] : size;\n const currentSize = inline ? sizes.small : _size;\n\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n return (\n <span className={cx(styles.root(), { [styles.rootInline()]: inline })}>\n <svg\n viewBox={`0 0 ${currentSize.size} ${currentSize.size}`}\n className={cx(styles.icon(), className, {\n [styles.iconInline()]: inline,\n })}\n width={currentSize.size}\n height={currentSize.size}\n fill=\"none\"\n stroke={color}\n strokeDasharray={`${(10 * currentSize.radius) / 6}, ${(27 * currentSize.radius) / 6}`}\n strokeDashoffset=\"0\"\n strokeWidth={width || currentSize.width}\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <circle cx={currentSize.size / 2} cy={currentSize.size / 2} r={currentSize.radius} />\n </svg>\n </span>\n );\n};\n"]}
@@ -0,0 +1,5 @@
1
+ export declare const root: string;
2
+ export declare const textContainer: string;
3
+ export declare const getJsStyles: (_emotion?: unknown) => {
4
+ [x: string]: (...args: unknown[]) => string;
5
+ };
@@ -0,0 +1,5 @@
1
+
2
+ import { bindStaticStyles as _b9cd9 } from '../../lib/theming/bindStaticStyles.js';
3
+ export var getJsStyles = _b9cd9({root:'react-ui-TextWidthHelper__root',textContainer:'react-ui-TextWidthHelper__textContainer'});
4
+ export var root = 'react-ui-TextWidthHelper__root';
5
+ export var textContainer = 'react-ui-TextWidthHelper__textContainer';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextWidthHelper.css.js","sourceRoot":"","sources":["TextWidthHelper.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,CAAC,IAAM,IAAI,GAAG,KAAK,CAAC;IACxB,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,QAAQ;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,aAAa,GAAG,KAAK,CAAC;IACjC,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,QAAQ;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,WAAW,GAAG,YAAY,CAAC,EAAE,IAAI,MAAA,EAAE,aAAa,eAAA,EAAE,CAAC,CAAC","sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { exportStyles } from '../../lib/theming/vanilla.js';\n\nexport const root = style({\n display: 'flex',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n visibility: 'hidden',\n overflow: 'hidden',\n});\n\nexport const textContainer = style({\n wordBreak: 'break-all',\n whiteSpace: 'nowrap',\n});\n\nexport const getJsStyles = exportStyles({ root, textContainer });\n"]}
@@ -22,7 +22,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
22
22
  import React from 'react';
23
23
  import { getDOMRect } from '../../lib/dom/getDOMRect.js';
24
24
  import { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';
25
- import { getJsStyles } from './TextWidthHelper.styles.js';
25
+ import { getJsStyles } from './TextWidthHelper.css.js';
26
26
  var THIN_SPACE = '\u2009';
27
27
  /**
28
28
  * Херпер позволяет вычислить размеры блока с текстом
@@ -1 +1 @@
1
- {"version":3,"file":"TextWidthHelper.js","sourceRoot":"","sources":["TextWidthHelper.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,IAAM,UAAU,GAAG,QAAQ,CAAC;AAK5B;;GAEG;AAEH;IAAqC,mCAAqC;IAA1E;;QACU,aAAO,GAA0B,IAAI,CAAC;QAwBtC,gBAAU,GAAG,UAAC,IAAoB;YACxC,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC;;IACJ,CAAC;IAvBQ,gCAAM,GAAb;QACE,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1C,OAAO,CACL,6BAAK,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAClC,6BAAK,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,IAChE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,CAC1B,CACF,CACP,CAAC;IACJ,CAAC;IAEM,sCAAY,GAAnB;QACE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;IACxC,CAAC;IAEM,uCAAa,GAApB;QACE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC;IAvBU,eAAe;QAD3B,qBAAqB;OACT,eAAe,CA4B3B;IAAD,sBAAC;CAAA,AA5BD,CAAqC,KAAK,CAAC,SAAS,GA4BnD;SA5BY,eAAe","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport React from 'react';\n\nimport { getDOMRect } from '../../lib/dom/getDOMRect.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport { getJsStyles } from './TextWidthHelper.styles.js';\n\nconst THIN_SPACE = '\\u2009';\n\ninterface TextWidthHelperProps {\n text?: string;\n}\n/**\n * Херпер позволяет вычислить размеры блока с текстом\n */\n@withRenderEnvironment\nexport class TextWidthHelper extends React.Component<TextWidthHelperProps> {\n private element: HTMLDivElement | null = null;\n private emotion!: Emotion;\n private jsStyles!: ReturnType<typeof getJsStyles>;\n\n public render() {\n this.jsStyles = getJsStyles(this.emotion);\n\n return (\n <div className={this.jsStyles.root()}>\n <div className={this.jsStyles.textContainer()} ref={this.elementRef}>\n {this.props.text || THIN_SPACE}\n </div>\n </div>\n );\n }\n\n public getTextWidth(): number {\n return getDOMRect(this.element).width;\n }\n\n public getTextHeight(): number {\n return getDOMRect(this.element).height;\n }\n\n private elementRef = (node: HTMLDivElement) => {\n this.element = node;\n };\n}\n"]}
1
+ {"version":3,"file":"TextWidthHelper.js","sourceRoot":"","sources":["TextWidthHelper.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,IAAM,UAAU,GAAG,QAAQ,CAAC;AAK5B;;GAEG;AAEH;IAAqC,mCAAqC;IAA1E;;QACU,aAAO,GAA0B,IAAI,CAAC;QAwBtC,gBAAU,GAAG,UAAC,IAAoB;YACxC,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC;;IACJ,CAAC;IAvBQ,gCAAM,GAAb;QACE,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1C,OAAO,CACL,6BAAK,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAClC,6BAAK,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,IAChE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,CAC1B,CACF,CACP,CAAC;IACJ,CAAC;IAEM,sCAAY,GAAnB;QACE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;IACxC,CAAC;IAEM,uCAAa,GAApB;QACE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC;IAvBU,eAAe;QAD3B,qBAAqB;OACT,eAAe,CA4B3B;IAAD,sBAAC;CAAA,AA5BD,CAAqC,KAAK,CAAC,SAAS,GA4BnD;SA5BY,eAAe","sourcesContent":["import React from 'react';\n\nimport { getDOMRect } from '../../lib/dom/getDOMRect.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { Emotion } from '../../lib/theming/Emotion.js';\nimport { getJsStyles } from './TextWidthHelper.css.js';\n\nconst THIN_SPACE = '\\u2009';\n\ninterface TextWidthHelperProps {\n text?: string;\n}\n/**\n * Херпер позволяет вычислить размеры блока с текстом\n */\n@withRenderEnvironment\nexport class TextWidthHelper extends React.Component<TextWidthHelperProps> {\n private element: HTMLDivElement | null = null;\n private emotion!: Emotion;\n private jsStyles!: ReturnType<typeof getJsStyles>;\n\n public render() {\n this.jsStyles = getJsStyles(this.emotion);\n\n return (\n <div className={this.jsStyles.root()}>\n <div className={this.jsStyles.textContainer()} ref={this.elementRef}>\n {this.props.text || THIN_SPACE}\n </div>\n </div>\n );\n }\n\n public getTextWidth(): number {\n return getDOMRect(this.element).width;\n }\n\n public getTextHeight(): number {\n return getDOMRect(this.element).height;\n }\n\n private elementRef = (node: HTMLDivElement) => {\n this.element = node;\n };\n}\n"]}
@@ -0,0 +1,32 @@
1
+ export declare const root: string;
2
+ /**
3
+ * Резервируют место под время, когда значения нет: без этого поле с suffix
4
+ * сужается на ширину времени, а при вводе снова расширяется.
5
+ * Плейсхолдер уходит в псевдоэлемент — он занимает ту же ширину, что и время,
6
+ * но не попадает в текст поля и не читается скринридером.
7
+ * Отступы разделителей есть только у отрисованного времени, поэтому их добавляем сюда сами:
8
+ * по одному `letter-spacing` на каждый разделитель — один в формате `HH:mm` и два в `HH:mm:ss`.
9
+ */
10
+ export declare const emptyPlaceholderSmall: string;
11
+ export declare const emptyPlaceholderMedium: string;
12
+ export declare const emptyPlaceholderLarge: string;
13
+ export declare const emptyPlaceholderWithSecondsSmall: string;
14
+ export declare const emptyPlaceholderWithSecondsMedium: string;
15
+ export declare const emptyPlaceholderWithSecondsLarge: string;
16
+ export declare const mask: string;
17
+ export declare const segment: string;
18
+ export declare const separator: string;
19
+ /**
20
+ * Разделитель рисует псевдоэлемент, а сам текст только держит место и попадает в выделение.
21
+ * В задизейбленном поле `-webkit-text-fill-color` приходит по наследству и перебивает `color`,
22
+ * поэтому гасим и его — иначе двоеточие отрисуется дважды.
23
+ */
24
+ export declare const separatorText: string;
25
+ export declare const separatorSmall: string;
26
+ export declare const separatorMedium: string;
27
+ export declare const separatorLarge: string;
28
+ export declare const separatorFilled: string;
29
+ export declare const selected: string;
30
+ export declare const getStyles: (_emotion?: unknown) => {
31
+ [x: string]: (...args: unknown[]) => string;
32
+ };