@skbkontur/react-ui 6.4.2-static-css.0 → 6.4.3-6344a.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 (941) hide show
  1. package/README.md +0 -97
  2. package/components/Autocomplete/Autocomplete.css.d.ts +5 -0
  3. package/components/Autocomplete/Autocomplete.css.js +3 -0
  4. package/components/Autocomplete/Autocomplete.css.js.map +1 -0
  5. package/components/Autocomplete/Autocomplete.d.ts +1 -0
  6. package/components/Autocomplete/Autocomplete.js +5 -14
  7. package/components/Autocomplete/Autocomplete.js.map +1 -1
  8. package/components/Button/Button.css.d.ts +95 -0
  9. package/components/Button/Button.css.js +5 -0
  10. package/components/Button/Button.css.js.map +1 -0
  11. package/components/Button/Button.d.ts +1 -15
  12. package/components/Button/Button.js +77 -162
  13. package/components/Button/Button.js.map +1 -1
  14. package/components/Button/Button.mixins.d.ts +4 -0
  15. package/components/Button/Button.mixins.js +26 -0
  16. package/components/Button/Button.mixins.js.map +1 -0
  17. package/components/Button/ButtonArrow.d.ts +4 -3
  18. package/components/Button/ButtonArrow.js +11 -9
  19. package/components/Button/ButtonArrow.js.map +1 -1
  20. package/components/Button/ButtonIcon.css.d.ts +16 -0
  21. package/components/Button/ButtonIcon.css.js +3 -0
  22. package/components/Button/ButtonIcon.css.js.map +1 -0
  23. package/components/Button/ButtonIcon.js +18 -8
  24. package/components/Button/ButtonIcon.js.map +1 -1
  25. package/components/Button/LoadingButtonIcon.js +1 -1
  26. package/components/Button/LoadingButtonIcon.js.map +1 -1
  27. package/components/Calendar/Calendar.css.d.ts +6 -0
  28. package/components/Calendar/Calendar.css.js +3 -0
  29. package/components/Calendar/Calendar.css.js.map +1 -0
  30. package/components/Calendar/Calendar.d.ts +1 -0
  31. package/components/Calendar/Calendar.js +4 -4
  32. package/components/Calendar/Calendar.js.map +1 -1
  33. package/components/Calendar/CalendarDay.js +8 -12
  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 +3 -0
  37. package/components/Calendar/DayCellView.css.js.map +1 -0
  38. package/components/Calendar/DayCellView.js +4 -2
  39. package/components/Calendar/DayCellView.js.map +1 -1
  40. package/components/Calendar/Month.js +12 -8
  41. package/components/Calendar/Month.js.map +1 -1
  42. package/components/Calendar/MonthView.css.d.ts +13 -0
  43. package/components/Calendar/MonthView.css.js +3 -0
  44. package/components/Calendar/MonthView.css.js.map +1 -0
  45. package/components/Calendar/MonthView.js +8 -8
  46. package/components/Calendar/MonthView.js.map +1 -1
  47. package/components/Center/Center.css.d.ts +7 -0
  48. package/components/Center/Center.css.js +3 -0
  49. package/components/Center/Center.css.js.map +1 -0
  50. package/components/Center/Center.d.ts +1 -0
  51. package/components/Center/Center.js +2 -2
  52. package/components/Center/Center.js.map +1 -1
  53. package/components/Checkbox/Checkbox.css.d.ts +35 -0
  54. package/components/Checkbox/Checkbox.css.js +5 -0
  55. package/components/Checkbox/Checkbox.css.js.map +1 -0
  56. package/components/Checkbox/Checkbox.d.ts +1 -8
  57. package/components/Checkbox/Checkbox.js +27 -58
  58. package/components/Checkbox/Checkbox.js.map +1 -1
  59. package/components/Checkbox/Checkbox.mixins.d.ts +4 -0
  60. package/components/Checkbox/Checkbox.mixins.js +15 -0
  61. package/components/Checkbox/Checkbox.mixins.js.map +1 -0
  62. package/components/DateInput/DateFragmentsView.css.d.ts +7 -0
  63. package/components/DateInput/DateFragmentsView.css.js +3 -0
  64. package/components/DateInput/DateFragmentsView.css.js.map +1 -0
  65. package/components/DateInput/DateFragmentsView.d.ts +2 -0
  66. package/components/DateInput/DateFragmentsView.js +8 -11
  67. package/components/DateInput/DateFragmentsView.js.map +1 -1
  68. package/components/DateInput/DateInput.css.d.ts +10 -0
  69. package/components/DateInput/DateInput.css.js +3 -0
  70. package/components/DateInput/DateInput.css.js.map +1 -0
  71. package/components/DateInput/DateInput.d.ts +2 -0
  72. package/components/DateInput/DateInput.js +9 -7
  73. package/components/DateInput/DateInput.js.map +1 -1
  74. package/components/DatePicker/DatePicker.css.d.ts +5 -0
  75. package/components/DatePicker/DatePicker.css.js +3 -0
  76. package/components/DatePicker/DatePicker.css.js.map +1 -0
  77. package/components/DatePicker/DatePicker.d.ts +1 -0
  78. package/components/DatePicker/DatePicker.js +3 -3
  79. package/components/DatePicker/DatePicker.js.map +1 -1
  80. package/components/DatePicker/MobilePicker.css.d.ts +3 -0
  81. package/components/DatePicker/MobilePicker.css.js +3 -0
  82. package/components/DatePicker/MobilePicker.css.js.map +1 -0
  83. package/components/DatePicker/MobilePicker.js +1 -1
  84. package/components/DatePicker/MobilePicker.js.map +1 -1
  85. package/components/DatePicker/getMobilePickerTheme.js +9 -27
  86. package/components/DatePicker/getMobilePickerTheme.js.map +1 -1
  87. package/components/DateRangePicker/DateRangePicker.css.d.ts +20 -0
  88. package/components/DateRangePicker/DateRangePicker.css.js +3 -0
  89. package/components/DateRangePicker/DateRangePicker.css.js.map +1 -0
  90. package/components/DateRangePicker/DateRangePicker.d.ts +4 -4
  91. package/components/DateRangePicker/DateRangePicker.js +28 -21
  92. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  93. package/components/DateRangePicker/DateRangePickerTheme.js +10 -30
  94. package/components/DateRangePicker/DateRangePickerTheme.js.map +1 -1
  95. package/components/Dropdown/getDropdownTheme.d.ts +0 -11
  96. package/components/Dropdown/getDropdownTheme.js +4 -23
  97. package/components/Dropdown/getDropdownTheme.js.map +1 -1
  98. package/components/DropdownMenu/getDropdownMenuTheme.js +2 -9
  99. package/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
  100. package/components/FileUploader/FileUploader.css.d.ts +74 -0
  101. package/components/FileUploader/FileUploader.css.js +6 -0
  102. package/components/FileUploader/FileUploader.css.js.map +1 -0
  103. package/components/FileUploader/FileUploader.d.ts +1 -2
  104. package/components/FileUploader/FileUploader.js +46 -51
  105. package/components/FileUploader/FileUploader.js.map +1 -1
  106. package/components/FileUploader/FileUploader.mixins.d.ts +1 -0
  107. package/components/FileUploader/FileUploader.mixins.js +4 -0
  108. package/components/FileUploader/FileUploader.mixins.js.map +1 -0
  109. package/components/FileUploader/FileUploaderFile.css.d.ts +60 -0
  110. package/components/FileUploader/FileUploaderFile.css.js +5 -0
  111. package/components/FileUploader/FileUploaderFile.css.js.map +1 -0
  112. package/components/FileUploader/FileUploaderFile.js +31 -29
  113. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  114. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.d.ts +34 -0
  115. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js +5 -0
  116. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js.map +1 -0
  117. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js +20 -18
  118. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  119. package/components/FileUploader/FileUploaderFileStatusIcon.js +5 -3
  120. package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -1
  121. package/components/FileUploader/FileUploaderFileTypeIcon.js +52 -47
  122. package/components/FileUploader/FileUploaderFileTypeIcon.js.map +1 -1
  123. package/components/FxInput/FxInput.d.ts +1 -1
  124. package/components/FxInput/FxInput.js +3 -7
  125. package/components/FxInput/FxInput.js.map +1 -1
  126. package/components/FxInput/FxInputRestoreBtn.js +15 -23
  127. package/components/FxInput/FxInputRestoreBtn.js.map +1 -1
  128. package/components/GlobalLoader/GlobalLoaderView.css.d.ts +21 -0
  129. package/components/GlobalLoader/GlobalLoaderView.css.js +4 -0
  130. package/components/GlobalLoader/GlobalLoaderView.css.js.map +1 -0
  131. package/components/GlobalLoader/GlobalLoaderView.js +20 -30
  132. package/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  133. package/components/Group/Group.css.d.ts +8 -0
  134. package/components/Group/Group.css.js +3 -0
  135. package/components/Group/Group.css.js.map +1 -0
  136. package/components/Group/Group.d.ts +1 -0
  137. package/components/Group/Group.js +4 -3
  138. package/components/Group/Group.js.map +1 -1
  139. package/components/Hint/Hint.css.d.ts +5 -0
  140. package/components/Hint/Hint.css.js +3 -0
  141. package/components/Hint/Hint.css.js.map +1 -0
  142. package/components/Hint/Hint.d.ts +1 -0
  143. package/components/Hint/Hint.js +4 -4
  144. package/components/Hint/Hint.js.map +1 -1
  145. package/components/Input/Input.css.d.ts +21 -0
  146. package/components/Input/Input.css.js +3 -0
  147. package/components/Input/Input.css.js.map +1 -0
  148. package/components/Input/Input.d.ts +1 -0
  149. package/components/Input/Input.js +14 -14
  150. package/components/Input/Input.js.map +1 -1
  151. package/components/Input/InputLayout/InputLayout.css.d.ts +18 -0
  152. package/components/Input/InputLayout/InputLayout.css.js +4 -0
  153. package/components/Input/InputLayout/InputLayout.css.js.map +1 -0
  154. package/components/Input/InputLayout/InputLayout.js +1 -1
  155. package/components/Input/InputLayout/InputLayout.js.map +1 -1
  156. package/components/Input/InputLayout/InputLayoutAside.js +1 -1
  157. package/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  158. package/components/Input/InputLayout/InputLayoutAsideCounter.js +9 -9
  159. package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -1
  160. package/components/Input/InputLayout/InputLayoutAsideIcon.js +26 -20
  161. package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  162. package/components/Input/InputLayout/InputLayoutAsideText.js +5 -5
  163. package/components/Input/InputLayout/InputLayoutAsideText.js.map +1 -1
  164. package/components/Kebab/Kebab.css.d.ts +11 -0
  165. package/components/Kebab/Kebab.css.js +3 -0
  166. package/components/Kebab/Kebab.css.js.map +1 -0
  167. package/components/Kebab/Kebab.d.ts +1 -0
  168. package/components/Kebab/Kebab.js +3 -3
  169. package/components/Kebab/Kebab.js.map +1 -1
  170. package/components/Link/Link.css.d.ts +24 -0
  171. package/components/Link/Link.css.js +3 -0
  172. package/components/Link/Link.css.js.map +1 -0
  173. package/components/Link/Link.d.ts +1 -0
  174. package/components/Link/Link.js +19 -23
  175. package/components/Link/Link.js.map +1 -1
  176. package/components/Link/Link.mixins.d.ts +2 -0
  177. package/components/Link/Link.mixins.js +7 -0
  178. package/components/Link/Link.mixins.js.map +1 -0
  179. package/components/Link/LinkIcon.js +7 -5
  180. package/components/Link/LinkIcon.js.map +1 -1
  181. package/components/Loader/Loader.css.d.ts +8 -0
  182. package/components/Loader/Loader.css.js +3 -0
  183. package/components/Loader/Loader.css.js.map +1 -0
  184. package/components/Loader/Loader.d.ts +2 -0
  185. package/components/Loader/Loader.js +4 -3
  186. package/components/Loader/Loader.js.map +1 -1
  187. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.d.ts +6 -0
  188. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js +4 -0
  189. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js.map +1 -0
  190. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +22 -16
  191. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  192. package/components/MaskedInput/MaskedInput.css.d.ts +7 -0
  193. package/components/MaskedInput/MaskedInput.css.js +4 -0
  194. package/components/MaskedInput/MaskedInput.css.js.map +1 -0
  195. package/components/MaskedInput/MaskedInputLegacy.js +7 -5
  196. package/components/MaskedInput/MaskedInputLegacy.js.map +1 -1
  197. package/components/MaskedInputV2/MaskedInputV2.css.d.ts +7 -0
  198. package/components/MaskedInputV2/MaskedInputV2.css.js +4 -0
  199. package/components/MaskedInputV2/MaskedInputV2.css.js.map +1 -0
  200. package/components/MaskedInputV2/MaskedInputV2.js +7 -5
  201. package/components/MaskedInputV2/MaskedInputV2.js.map +1 -1
  202. package/components/MaskedInputV2/internal/MaskOverlay.js +9 -9
  203. package/components/MaskedInputV2/internal/MaskOverlay.js.map +1 -1
  204. package/components/MaskedInputV2/internal/MaskedCore.js +6 -8
  205. package/components/MaskedInputV2/internal/MaskedCore.js.map +1 -1
  206. package/components/MaskedInputV2/internal/MaskedInternal.css.d.ts +15 -0
  207. package/components/MaskedInputV2/internal/MaskedInternal.css.js +4 -0
  208. package/components/MaskedInputV2/internal/MaskedInternal.css.js.map +1 -0
  209. package/components/MenuFooter/MenuFooter.css.d.ts +10 -0
  210. package/components/MenuFooter/MenuFooter.css.js +3 -0
  211. package/components/MenuFooter/MenuFooter.css.js.map +1 -0
  212. package/components/MenuFooter/MenuFooter.js +13 -11
  213. package/components/MenuFooter/MenuFooter.js.map +1 -1
  214. package/components/MenuFooter/MenuFooter.mixins.d.ts +2 -0
  215. package/components/MenuFooter/MenuFooter.mixins.js +8 -0
  216. package/components/MenuFooter/MenuFooter.mixins.js.map +1 -0
  217. package/components/MenuHeader/MenuHeader.css.d.ts +10 -0
  218. package/components/MenuHeader/MenuHeader.css.js +3 -0
  219. package/components/MenuHeader/MenuHeader.css.js.map +1 -0
  220. package/components/MenuHeader/MenuHeader.js +12 -10
  221. package/components/MenuHeader/MenuHeader.js.map +1 -1
  222. package/components/MenuHeader/MenuHeader.mixins.d.ts +2 -0
  223. package/components/MenuHeader/MenuHeader.mixins.js +8 -0
  224. package/components/MenuHeader/MenuHeader.mixins.js.map +1 -0
  225. package/components/MenuItem/MenuItem.css.d.ts +27 -0
  226. package/components/MenuItem/MenuItem.css.js +3 -0
  227. package/components/MenuItem/MenuItem.css.js.map +1 -0
  228. package/components/MenuItem/MenuItem.d.ts +1 -0
  229. package/components/MenuItem/MenuItem.js +22 -22
  230. package/components/MenuItem/MenuItem.js.map +1 -1
  231. package/components/MenuItem/MenuItem.mixins.d.ts +0 -6
  232. package/components/MenuItem/MenuItem.mixins.js +0 -6
  233. package/components/MenuItem/MenuItem.mixins.js.map +1 -1
  234. package/components/MenuSeparator/MenuSeparator.css.d.ts +5 -0
  235. package/components/MenuSeparator/MenuSeparator.css.js +3 -0
  236. package/components/MenuSeparator/MenuSeparator.css.js.map +1 -0
  237. package/components/MenuSeparator/MenuSeparator.js +7 -5
  238. package/components/MenuSeparator/MenuSeparator.js.map +1 -1
  239. package/components/MiniModal/MiniModal.css.d.ts +11 -0
  240. package/components/MiniModal/MiniModal.css.js +4 -0
  241. package/components/MiniModal/MiniModal.css.js.map +1 -0
  242. package/components/MiniModal/MiniModalBody.js +4 -4
  243. package/components/MiniModal/MiniModalBody.js.map +1 -1
  244. package/components/MiniModal/MiniModalFooter.js +7 -5
  245. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  246. package/components/MiniModal/MiniModalHeader.js +7 -5
  247. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  248. package/components/MiniModal/MiniModalIndent.js +5 -3
  249. package/components/MiniModal/MiniModalIndent.js.map +1 -1
  250. package/components/MiniModal/getMiniModalTheme.js +13 -39
  251. package/components/MiniModal/getMiniModalTheme.js.map +1 -1
  252. package/components/Modal/Modal.css.d.ts +55 -0
  253. package/components/Modal/Modal.css.js +4 -0
  254. package/components/Modal/Modal.css.js.map +1 -0
  255. package/components/Modal/Modal.d.ts +1 -0
  256. package/components/Modal/Modal.js +9 -9
  257. package/components/Modal/Modal.js.map +1 -1
  258. package/components/Modal/ModalBody.d.ts +1 -0
  259. package/components/Modal/ModalBody.js +8 -8
  260. package/components/Modal/ModalBody.js.map +1 -1
  261. package/components/Modal/ModalClose.js +10 -8
  262. package/components/Modal/ModalClose.js.map +1 -1
  263. package/components/Modal/ModalFooter.js +4 -4
  264. package/components/Modal/ModalFooter.js.map +1 -1
  265. package/components/Modal/ModalHeader.js +4 -4
  266. package/components/Modal/ModalHeader.js.map +1 -1
  267. package/components/Modal/ModalSeparator.js +7 -5
  268. package/components/Modal/ModalSeparator.js.map +1 -1
  269. package/components/Paging/Paging.css.d.ts +32 -0
  270. package/components/Paging/Paging.css.js +3 -0
  271. package/components/Paging/Paging.css.js.map +1 -0
  272. package/components/Paging/Paging.d.ts +2 -0
  273. package/components/Paging/Paging.js +38 -33
  274. package/components/Paging/Paging.js.map +1 -1
  275. package/components/PasswordInput/PasswordInput.css.d.ts +11 -0
  276. package/components/PasswordInput/PasswordInput.css.js +3 -0
  277. package/components/PasswordInput/PasswordInput.css.js.map +1 -0
  278. package/components/PasswordInput/PasswordInput.d.ts +2 -0
  279. package/components/PasswordInput/PasswordInput.js +12 -7
  280. package/components/PasswordInput/PasswordInput.js.map +1 -1
  281. package/components/Radio/Radio.css.d.ts +35 -0
  282. package/components/Radio/Radio.css.js +5 -0
  283. package/components/Radio/Radio.css.js.map +1 -0
  284. package/components/Radio/Radio.d.ts +1 -8
  285. package/components/Radio/Radio.js +29 -60
  286. package/components/Radio/Radio.js.map +1 -1
  287. package/components/Radio/Radio.mixins.d.ts +7 -0
  288. package/components/Radio/Radio.mixins.js +27 -0
  289. package/components/Radio/Radio.mixins.js.map +1 -0
  290. package/components/RadioGroup/RadioGroup.css.d.ts +6 -0
  291. package/components/RadioGroup/RadioGroup.css.js +3 -0
  292. package/components/RadioGroup/RadioGroup.css.js.map +1 -0
  293. package/components/RadioGroup/RadioGroup.d.ts +1 -0
  294. package/components/RadioGroup/RadioGroup.js +3 -2
  295. package/components/RadioGroup/RadioGroup.js.map +1 -1
  296. package/components/ScrollContainer/ScrollBar.d.ts +3 -1
  297. package/components/ScrollContainer/ScrollBar.js +15 -10
  298. package/components/ScrollContainer/ScrollBar.js.map +1 -1
  299. package/components/ScrollContainer/ScrollContainer.css.d.ts +21 -0
  300. package/components/ScrollContainer/ScrollContainer.css.js +4 -0
  301. package/components/ScrollContainer/ScrollContainer.css.js.map +1 -0
  302. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  303. package/components/ScrollContainer/ScrollContainer.js +2 -2
  304. package/components/ScrollContainer/ScrollContainer.js.map +1 -1
  305. package/components/Select/Select.css.d.ts +18 -0
  306. package/components/Select/Select.css.js +3 -0
  307. package/components/Select/Select.css.js.map +1 -0
  308. package/components/Select/Select.d.ts +1 -0
  309. package/components/Select/Select.js +14 -14
  310. package/components/Select/Select.js.map +1 -1
  311. package/components/Select/selectTheme.js +7 -31
  312. package/components/Select/selectTheme.js.map +1 -1
  313. package/components/SidePage/SidePage.css.d.ts +50 -0
  314. package/components/SidePage/SidePage.css.js +3 -0
  315. package/components/SidePage/SidePage.css.js.map +1 -0
  316. package/components/SidePage/SidePage.d.ts +6 -0
  317. package/components/SidePage/SidePage.js +28 -10
  318. package/components/SidePage/SidePage.js.map +1 -1
  319. package/components/SidePage/SidePageBody.d.ts +1 -0
  320. package/components/SidePage/SidePageBody.js +9 -8
  321. package/components/SidePage/SidePageBody.js.map +1 -1
  322. package/components/SidePage/SidePageCloseButton.js +9 -7
  323. package/components/SidePage/SidePageCloseButton.js.map +1 -1
  324. package/components/SidePage/SidePageContainer.d.ts +2 -0
  325. package/components/SidePage/SidePageContainer.js +14 -12
  326. package/components/SidePage/SidePageContainer.js.map +1 -1
  327. package/components/SidePage/SidePageContext.d.ts +2 -0
  328. package/components/SidePage/SidePageContext.js.map +1 -1
  329. package/components/SidePage/SidePageFooter.d.ts +2 -0
  330. package/components/SidePage/SidePageFooter.js +18 -13
  331. package/components/SidePage/SidePageFooter.js.map +1 -1
  332. package/components/SidePage/SidePageHeader.d.ts +2 -0
  333. package/components/SidePage/SidePageHeader.js +21 -12
  334. package/components/SidePage/SidePageHeader.js.map +1 -1
  335. package/components/Spinner/Spinner.css.d.ts +13 -0
  336. package/components/Spinner/Spinner.css.js +3 -0
  337. package/components/Spinner/Spinner.css.js.map +1 -0
  338. package/components/Spinner/Spinner.d.ts +2 -0
  339. package/components/Spinner/Spinner.js +11 -8
  340. package/components/Spinner/Spinner.js.map +1 -1
  341. package/components/Sticky/Sticky.css.d.ts +7 -0
  342. package/components/Sticky/Sticky.css.js +3 -0
  343. package/components/Sticky/Sticky.css.js.map +1 -0
  344. package/components/Sticky/Sticky.d.ts +1 -0
  345. package/components/Sticky/Sticky.js +2 -2
  346. package/components/Sticky/Sticky.js.map +1 -1
  347. package/components/Switcher/Switcher.css.d.ts +12 -0
  348. package/components/Switcher/Switcher.css.js +3 -0
  349. package/components/Switcher/Switcher.css.js.map +1 -0
  350. package/components/Switcher/Switcher.d.ts +1 -0
  351. package/components/Switcher/Switcher.js +7 -7
  352. package/components/Switcher/Switcher.js.map +1 -1
  353. package/components/Switcher/switcherTheme.js +4 -12
  354. package/components/Switcher/switcherTheme.js.map +1 -1
  355. package/components/Tabs/Indicator.css.d.ts +8 -0
  356. package/components/Tabs/Indicator.css.js +3 -0
  357. package/components/Tabs/Indicator.css.js.map +1 -0
  358. package/components/Tabs/Indicator.d.ts +1 -0
  359. package/components/Tabs/Indicator.js +3 -3
  360. package/components/Tabs/Indicator.js.map +1 -1
  361. package/components/Tabs/Tab.css.d.ts +33 -0
  362. package/components/Tabs/Tab.css.js +6 -0
  363. package/components/Tabs/Tab.css.js.map +1 -0
  364. package/components/Tabs/Tab.d.ts +2 -0
  365. package/components/Tabs/Tab.js +25 -20
  366. package/components/Tabs/Tab.js.map +1 -1
  367. package/components/Tabs/Tabs.css.d.ts +7 -0
  368. package/components/Tabs/Tabs.css.js +3 -0
  369. package/components/Tabs/Tabs.css.js.map +1 -0
  370. package/components/Tabs/Tabs.d.ts +2 -0
  371. package/components/Tabs/Tabs.js +30 -25
  372. package/components/Tabs/Tabs.js.map +1 -1
  373. package/components/Tabs/helpers.d.ts +6 -0
  374. package/components/Tabs/helpers.js +25 -0
  375. package/components/Tabs/helpers.js.map +1 -0
  376. package/components/Textarea/Textarea.css.d.ts +23 -0
  377. package/components/Textarea/Textarea.css.js +3 -0
  378. package/components/Textarea/Textarea.css.js.map +1 -0
  379. package/components/Textarea/Textarea.d.ts +2 -0
  380. package/components/Textarea/Textarea.js +25 -18
  381. package/components/Textarea/Textarea.js.map +1 -1
  382. package/components/Textarea/Textarea.mixins.d.ts +2 -0
  383. package/components/Textarea/Textarea.mixins.js +7 -0
  384. package/components/Textarea/Textarea.mixins.js.map +1 -0
  385. package/components/Textarea/TextareaCounter.js +15 -23
  386. package/components/Textarea/TextareaCounter.js.map +1 -1
  387. package/components/TimePicker/TimePicker.css.d.ts +12 -0
  388. package/components/TimePicker/TimePicker.css.js +3 -0
  389. package/components/TimePicker/TimePicker.css.js.map +1 -0
  390. package/components/TimePicker/TimePicker.js +1 -1
  391. package/components/TimePicker/TimePicker.js.map +1 -1
  392. package/components/TimePicker/TimePickerItems.js +7 -7
  393. package/components/TimePicker/TimePickerItems.js.map +1 -1
  394. package/components/TimePicker/TimePickerPopup.js +2 -2
  395. package/components/TimePicker/TimePickerPopup.js.map +1 -1
  396. package/components/Toast/Toast.css.d.ts +6 -0
  397. package/components/Toast/Toast.css.js +3 -0
  398. package/components/Toast/Toast.css.js.map +1 -0
  399. package/components/Toast/Toast.d.ts +1 -0
  400. package/components/Toast/Toast.js +2 -2
  401. package/components/Toast/Toast.js.map +1 -1
  402. package/components/Toast/ToastView.css.d.ts +18 -0
  403. package/components/Toast/ToastView.css.js +3 -0
  404. package/components/Toast/ToastView.css.js.map +1 -0
  405. package/components/Toast/ToastView.d.ts +1 -0
  406. package/components/Toast/ToastView.js +18 -10
  407. package/components/Toast/ToastView.js.map +1 -1
  408. package/components/Toggle/Toggle.css.d.ts +50 -0
  409. package/components/Toggle/Toggle.css.js +5 -0
  410. package/components/Toggle/Toggle.css.js.map +1 -0
  411. package/components/Toggle/Toggle.d.ts +1 -1
  412. package/components/Toggle/Toggle.js +40 -56
  413. package/components/Toggle/Toggle.js.map +1 -1
  414. package/components/Toggle/Toggle.mixins.d.ts +8 -0
  415. package/components/Toggle/Toggle.mixins.js +29 -0
  416. package/components/Toggle/Toggle.mixins.js.map +1 -0
  417. package/components/Token/Token.css.d.ts +23 -0
  418. package/components/Token/Token.css.js +4 -0
  419. package/components/Token/Token.css.js.map +1 -0
  420. package/components/Token/Token.d.ts +2 -0
  421. package/components/Token/Token.js +11 -6
  422. package/components/Token/Token.js.map +1 -1
  423. package/components/Token/Token.mixins.d.ts +1 -0
  424. package/components/Token/Token.mixins.js +4 -0
  425. package/components/Token/Token.mixins.js.map +1 -0
  426. package/components/Token/TokenView.js +11 -9
  427. package/components/Token/TokenView.js.map +1 -1
  428. package/components/TokenInput/TextWidthHelper.d.ts +1 -0
  429. package/components/TokenInput/TextWidthHelper.js +5 -5
  430. package/components/TokenInput/TextWidthHelper.js.map +1 -1
  431. package/components/TokenInput/TokenInput.css.d.ts +21 -0
  432. package/components/TokenInput/TokenInput.css.js +4 -0
  433. package/components/TokenInput/TokenInput.css.js.map +1 -0
  434. package/components/TokenInput/TokenInput.d.ts +2 -1
  435. package/components/TokenInput/TokenInput.js +23 -21
  436. package/components/TokenInput/TokenInput.js.map +1 -1
  437. package/components/TokenInput/TokenInput.mixins.d.ts +2 -0
  438. package/components/TokenInput/TokenInput.mixins.js +7 -0
  439. package/components/TokenInput/TokenInput.mixins.js.map +1 -0
  440. package/components/Tooltip/Tooltip.css.d.ts +11 -0
  441. package/components/Tooltip/Tooltip.css.js +3 -0
  442. package/components/Tooltip/Tooltip.css.js.map +1 -0
  443. package/components/Tooltip/Tooltip.d.ts +1 -0
  444. package/components/Tooltip/Tooltip.js +13 -13
  445. package/components/Tooltip/Tooltip.js.map +1 -1
  446. package/index.d.ts +0 -4
  447. package/index.js +0 -12
  448. package/index.js.map +1 -1
  449. package/internal/ClearCrossIcon/ClearCrossIcon.css.d.ts +11 -0
  450. package/internal/ClearCrossIcon/ClearCrossIcon.css.js +3 -0
  451. package/internal/ClearCrossIcon/ClearCrossIcon.css.js.map +1 -0
  452. package/internal/ClearCrossIcon/ClearCrossIcon.js +10 -8
  453. package/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  454. package/internal/CloseButtonIcon/CloseButtonIcon.css.d.ts +9 -0
  455. package/internal/CloseButtonIcon/CloseButtonIcon.css.js +3 -0
  456. package/internal/CloseButtonIcon/CloseButtonIcon.css.js.map +1 -0
  457. package/internal/CloseButtonIcon/CloseButtonIcon.d.ts +11 -21
  458. package/internal/CloseButtonIcon/CloseButtonIcon.js +19 -29
  459. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  460. package/internal/CommonWrapper/CommonWrapper.d.ts +4 -3
  461. package/internal/CommonWrapper/CommonWrapper.js +17 -104
  462. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  463. package/internal/CustomComboBox/ComboBoxView.d.ts +2 -1
  464. package/internal/CustomComboBox/ComboBoxView.js +9 -10
  465. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  466. package/internal/CustomComboBox/CustomComboBox.css.d.ts +4 -0
  467. package/internal/CustomComboBox/CustomComboBox.css.js +3 -0
  468. package/internal/CustomComboBox/CustomComboBox.css.js.map +1 -0
  469. package/internal/DateSelect/DateSelect.css.d.ts +9 -0
  470. package/internal/DateSelect/DateSelect.css.js +4 -0
  471. package/internal/DateSelect/DateSelect.css.js.map +1 -0
  472. package/internal/DateSelect/DateSelect.d.ts +1 -0
  473. package/internal/DateSelect/DateSelect.js +3 -3
  474. package/internal/DateSelect/DateSelect.js.map +1 -1
  475. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.d.ts +3 -0
  476. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js +3 -0
  477. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js.map +1 -0
  478. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +2 -16
  479. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +12 -37
  480. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  481. package/internal/InputLikeText/InputLikeText.css.d.ts +8 -0
  482. package/internal/InputLikeText/InputLikeText.css.js +3 -0
  483. package/internal/InputLikeText/InputLikeText.css.js.map +1 -0
  484. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  485. package/internal/InputLikeText/InputLikeText.js +19 -23
  486. package/internal/InputLikeText/InputLikeText.js.map +1 -1
  487. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.d.ts +5 -0
  488. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js +4 -0
  489. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js.map +1 -0
  490. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
  491. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +17 -17
  492. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  493. package/internal/MaskCharLowLine/MaskCharLowLine.css.d.ts +3 -0
  494. package/internal/MaskCharLowLine/MaskCharLowLine.css.js +3 -0
  495. package/internal/MaskCharLowLine/MaskCharLowLine.css.js.map +1 -0
  496. package/internal/MaskCharLowLine/MaskCharLowLine.js +1 -1
  497. package/internal/MaskCharLowLine/MaskCharLowLine.js.map +1 -1
  498. package/internal/Menu/Menu.css.d.ts +16 -0
  499. package/internal/Menu/Menu.css.js +3 -0
  500. package/internal/Menu/Menu.css.js.map +1 -0
  501. package/internal/Menu/Menu.d.ts +1 -0
  502. package/internal/Menu/Menu.js +10 -10
  503. package/internal/Menu/Menu.js.map +1 -1
  504. package/internal/MenuMessage/MenuMessage.css.d.ts +11 -0
  505. package/internal/MenuMessage/MenuMessage.css.js +3 -0
  506. package/internal/MenuMessage/MenuMessage.css.js.map +1 -0
  507. package/internal/MenuMessage/MenuMessage.js +11 -11
  508. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  509. package/internal/MobilePopup/MobilePopup.css.d.ts +17 -0
  510. package/internal/MobilePopup/MobilePopup.css.js +3 -0
  511. package/internal/MobilePopup/MobilePopup.css.js.map +1 -0
  512. package/internal/MobilePopup/MobilePopup.d.ts +1 -0
  513. package/internal/MobilePopup/MobilePopup.js +12 -24
  514. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  515. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.d.ts +7 -0
  516. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js +3 -0
  517. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js.map +1 -0
  518. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +1 -0
  519. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +6 -6
  520. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  521. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.d.ts +14 -0
  522. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js +3 -0
  523. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js.map +1 -0
  524. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
  525. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +11 -11
  526. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  527. package/internal/NativeDateInput/NativeDateInput.css.d.ts +3 -0
  528. package/internal/NativeDateInput/NativeDateInput.css.js +3 -0
  529. package/internal/NativeDateInput/NativeDateInput.css.js.map +1 -0
  530. package/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
  531. package/internal/NativeDateInput/NativeDateInput.js +2 -2
  532. package/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  533. package/internal/NativeTimeInput/NativeTimeInput.css.d.ts +3 -0
  534. package/internal/NativeTimeInput/NativeTimeInput.css.js +3 -0
  535. package/internal/NativeTimeInput/NativeTimeInput.css.js.map +1 -0
  536. package/internal/NativeTimeInput/NativeTimeInput.js +3 -2
  537. package/internal/NativeTimeInput/NativeTimeInput.js.map +1 -1
  538. package/internal/Popup/Popup.css.d.ts +22 -0
  539. package/internal/Popup/Popup.css.js +3 -0
  540. package/internal/Popup/Popup.css.js.map +1 -0
  541. package/internal/Popup/Popup.d.ts +1 -0
  542. package/internal/Popup/Popup.js +6 -6
  543. package/internal/Popup/Popup.js.map +1 -1
  544. package/internal/Popup/PopupPin.css.d.ts +9 -0
  545. package/internal/Popup/PopupPin.css.js +3 -0
  546. package/internal/Popup/PopupPin.css.js.map +1 -0
  547. package/internal/Popup/PopupPin.d.ts +1 -0
  548. package/internal/Popup/PopupPin.js +2 -2
  549. package/internal/Popup/PopupPin.js.map +1 -1
  550. package/internal/PopupMenu/PopupMenu.css.d.ts +4 -0
  551. package/internal/PopupMenu/PopupMenu.css.js +3 -0
  552. package/internal/PopupMenu/PopupMenu.css.js.map +1 -0
  553. package/internal/PopupMenu/PopupMenu.d.ts +1 -0
  554. package/internal/PopupMenu/PopupMenu.js +2 -2
  555. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  556. package/internal/RenderContainer/RenderContainer.d.ts +1 -0
  557. package/internal/RenderContainer/RenderContainer.js +26 -1
  558. package/internal/RenderContainer/RenderContainer.js.map +1 -1
  559. package/internal/RenderContainer/RenderInnerContainer.js +2 -4
  560. package/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  561. package/internal/ResizeDetector/ResizeDetector.css.d.ts +7 -0
  562. package/internal/ResizeDetector/ResizeDetector.css.js +3 -0
  563. package/internal/ResizeDetector/ResizeDetector.css.js.map +1 -0
  564. package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  565. package/internal/ResizeDetector/ResizeDetector.js +2 -2
  566. package/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  567. package/internal/SpinnerIcon/SpinnerIcon.css.d.ts +6 -0
  568. package/internal/SpinnerIcon/SpinnerIcon.css.js +3 -0
  569. package/internal/SpinnerIcon/SpinnerIcon.css.js.map +1 -0
  570. package/internal/SpinnerIcon/SpinnerIcon.js +3 -3
  571. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  572. package/internal/TextWidthHelper/TextWidthHelper.css.d.ts +4 -0
  573. package/internal/TextWidthHelper/TextWidthHelper.css.js +3 -0
  574. package/internal/TextWidthHelper/TextWidthHelper.css.js.map +1 -0
  575. package/internal/TextWidthHelper/TextWidthHelper.d.ts +1 -0
  576. package/internal/TextWidthHelper/TextWidthHelper.js +2 -2
  577. package/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  578. package/internal/TimeInput/TimeFragments.css.d.ts +32 -0
  579. package/internal/TimeInput/TimeFragments.css.js +3 -0
  580. package/internal/TimeInput/TimeFragments.css.js.map +1 -0
  581. package/internal/TimeInput/TimeFragments.js +16 -20
  582. package/internal/TimeInput/TimeFragments.js.map +1 -1
  583. package/internal/TimeInput/TimeInput.css.d.ts +7 -0
  584. package/internal/TimeInput/TimeInput.css.js +3 -0
  585. package/internal/TimeInput/TimeInput.css.js.map +1 -0
  586. package/internal/TimeInput/TimeInput.js +5 -5
  587. package/internal/TimeInput/TimeInput.js.map +1 -1
  588. package/internal/icons2022/BaseIcon.css.d.ts +3 -0
  589. package/internal/icons2022/BaseIcon.css.js +3 -0
  590. package/internal/icons2022/BaseIcon.css.js.map +1 -0
  591. package/internal/icons2022/BaseIcon.js +2 -9
  592. package/internal/icons2022/BaseIcon.js.map +1 -1
  593. package/internal/icons2022/LoadingIcon.js +6 -4
  594. package/internal/icons2022/LoadingIcon.js.map +1 -1
  595. package/internal/themes/BasicTheme.d.ts +0 -10
  596. package/internal/themes/BasicTheme.js +6 -17
  597. package/internal/themes/BasicTheme.js.map +1 -1
  598. package/internal/themes/DarkTheme6_0.js +342 -62
  599. package/internal/themes/DarkTheme6_0.js.map +1 -1
  600. package/internal/themes/DarkTheme6_1.js +3 -11
  601. package/internal/themes/DarkTheme6_1.js.map +1 -1
  602. package/internal/themes/DarkTheme6_4.js +1 -11
  603. package/internal/themes/DarkTheme6_4.js.map +1 -1
  604. package/lib/Upgrades.d.ts +2 -12
  605. package/lib/Upgrades.js +16 -12
  606. package/lib/Upgrades.js.map +1 -1
  607. package/lib/chars.d.ts +8 -0
  608. package/lib/chars.js +9 -0
  609. package/lib/chars.js.map +1 -0
  610. package/lib/globalObject.js +1 -4
  611. package/lib/globalObject.js.map +1 -1
  612. package/lib/renderEnvironment/RenderEnvironmentContext.d.ts +6 -38
  613. package/lib/renderEnvironment/RenderEnvironmentContext.js +19 -21
  614. package/lib/renderEnvironment/RenderEnvironmentContext.js.map +1 -1
  615. package/lib/renderEnvironment/RenderEnvironmentDecorator.js +3 -6
  616. package/lib/renderEnvironment/RenderEnvironmentDecorator.js.map +1 -1
  617. package/lib/styles/LabGrotesqueBaseline.css.d.ts +1 -0
  618. package/lib/styles/LabGrotesqueBaseline.css.js +0 -0
  619. package/lib/styles/LabGrotesqueBaseline.css.js.map +1 -0
  620. package/lib/styles/Mixins.d.ts +2 -0
  621. package/lib/styles/Mixins.js +7 -0
  622. package/lib/styles/Mixins.js.map +1 -0
  623. package/lib/styles/UiFont.d.ts +3 -0
  624. package/lib/styles/UiFont.js +18 -0
  625. package/lib/styles/UiFont.js.map +1 -0
  626. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +7 -0
  627. package/lib/styles/getLabGrotesqueBaselineCompensation.js +36 -0
  628. package/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
  629. package/lib/theming/AnimationKeyframes.d.ts +7 -0
  630. package/lib/theming/AnimationKeyframes.js +24 -0
  631. package/lib/theming/AnimationKeyframes.js.map +1 -0
  632. package/lib/theming/Emotion.d.ts +11 -41
  633. package/lib/theming/Emotion.js +49 -61
  634. package/lib/theming/Emotion.js.map +1 -1
  635. package/lib/theming/StaticStyles.d.ts +30 -0
  636. package/lib/theming/StaticStyles.js +410 -0
  637. package/lib/theming/StaticStyles.js.map +1 -0
  638. package/lib/theming/bindStaticStyles.d.ts +4 -0
  639. package/lib/theming/bindStaticStyles.js +18 -0
  640. package/lib/theming/bindStaticStyles.js.map +1 -0
  641. package/lib/theming/themeVars.d.ts +26 -0
  642. package/lib/theming/themeVars.js +72 -0
  643. package/lib/theming/themeVars.js.map +1 -0
  644. package/lib/theming/useTheme.d.ts +2 -0
  645. package/lib/theming/useTheme.js +6 -0
  646. package/lib/theming/useTheme.js.map +1 -0
  647. package/package.json +17 -48
  648. package/react-ui.css +5678 -6528
  649. package/typings/stylis-plugin-extra-scope.d.ts +3 -0
  650. package/components/Autocomplete/Autocomplete.styles.d.ts +0 -5
  651. package/components/Autocomplete/Autocomplete.styles.js +0 -7
  652. package/components/Autocomplete/Autocomplete.styles.js.map +0 -1
  653. package/components/Button/Button.styles.d.ts +0 -111
  654. package/components/Button/Button.styles.js +0 -113
  655. package/components/Button/Button.styles.js.map +0 -1
  656. package/components/Button/ButtonIcon.styles.d.ts +0 -16
  657. package/components/Button/ButtonIcon.styles.js +0 -18
  658. package/components/Button/ButtonIcon.styles.js.map +0 -1
  659. package/components/Calendar/Calendar.styles.d.ts +0 -6
  660. package/components/Calendar/Calendar.styles.js +0 -8
  661. package/components/Calendar/Calendar.styles.js.map +0 -1
  662. package/components/Calendar/DayCellView.styles.d.ts +0 -11
  663. package/components/Calendar/DayCellView.styles.js +0 -13
  664. package/components/Calendar/DayCellView.styles.js.map +0 -1
  665. package/components/Calendar/MonthView.styles.d.ts +0 -13
  666. package/components/Calendar/MonthView.styles.js +0 -15
  667. package/components/Calendar/MonthView.styles.js.map +0 -1
  668. package/components/Center/Center.styles.d.ts +0 -8
  669. package/components/Center/Center.styles.js +0 -10
  670. package/components/Center/Center.styles.js.map +0 -1
  671. package/components/Checkbox/Checkbox.styles.d.ts +0 -37
  672. package/components/Checkbox/Checkbox.styles.js +0 -40
  673. package/components/Checkbox/Checkbox.styles.js.map +0 -1
  674. package/components/DateInput/DateFragmentsView.styles.d.ts +0 -9
  675. package/components/DateInput/DateFragmentsView.styles.js +0 -11
  676. package/components/DateInput/DateFragmentsView.styles.js.map +0 -1
  677. package/components/DateInput/DateInput.styles.d.ts +0 -10
  678. package/components/DateInput/DateInput.styles.js +0 -12
  679. package/components/DateInput/DateInput.styles.js.map +0 -1
  680. package/components/DatePicker/DatePicker.styles.d.ts +0 -5
  681. package/components/DatePicker/DatePicker.styles.js +0 -7
  682. package/components/DatePicker/DatePicker.styles.js.map +0 -1
  683. package/components/DatePicker/MobilePicker.styles.d.ts +0 -4
  684. package/components/DatePicker/MobilePicker.styles.js +0 -6
  685. package/components/DatePicker/MobilePicker.styles.js.map +0 -1
  686. package/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -22
  687. package/components/DateRangePicker/DateRangePicker.styles.js +0 -33
  688. package/components/DateRangePicker/DateRangePicker.styles.js.map +0 -1
  689. package/components/FileUploader/FileUploader.styles.d.ts +0 -75
  690. package/components/FileUploader/FileUploader.styles.js +0 -78
  691. package/components/FileUploader/FileUploader.styles.js.map +0 -1
  692. package/components/FileUploader/FileUploaderFile.styles.d.ts +0 -60
  693. package/components/FileUploader/FileUploaderFile.styles.js +0 -62
  694. package/components/FileUploader/FileUploaderFile.styles.js.map +0 -1
  695. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -34
  696. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js +0 -36
  697. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js.map +0 -1
  698. package/components/FileUploader/FileUploaderFileTypeIcon.styles.d.ts +0 -14
  699. package/components/FileUploader/FileUploaderFileTypeIcon.styles.js +0 -16
  700. package/components/FileUploader/FileUploaderFileTypeIcon.styles.js.map +0 -1
  701. package/components/FxInput/FxInput.styles.d.ts +0 -4
  702. package/components/FxInput/FxInput.styles.js +0 -6
  703. package/components/FxInput/FxInput.styles.js.map +0 -1
  704. package/components/FxInput/FxInputRestoreBtn.styles.d.ts +0 -6
  705. package/components/FxInput/FxInputRestoreBtn.styles.js +0 -8
  706. package/components/FxInput/FxInputRestoreBtn.styles.js.map +0 -1
  707. package/components/GlobalLoader/GlobalLoaderView.styles.d.ts +0 -23
  708. package/components/GlobalLoader/GlobalLoaderView.styles.js +0 -25
  709. package/components/GlobalLoader/GlobalLoaderView.styles.js.map +0 -1
  710. package/components/Group/Group.styles.d.ts +0 -8
  711. package/components/Group/Group.styles.js +0 -10
  712. package/components/Group/Group.styles.js.map +0 -1
  713. package/components/Hint/Hint.styles.d.ts +0 -5
  714. package/components/Hint/Hint.styles.js +0 -7
  715. package/components/Hint/Hint.styles.js.map +0 -1
  716. package/components/Input/Input.styles.d.ts +0 -21
  717. package/components/Input/Input.styles.js +0 -23
  718. package/components/Input/Input.styles.js.map +0 -1
  719. package/components/Input/InputLayout/InputLayout.styles.d.ts +0 -27
  720. package/components/Input/InputLayout/InputLayout.styles.js +0 -29
  721. package/components/Input/InputLayout/InputLayout.styles.js.map +0 -1
  722. package/components/Kebab/Kebab.styles.d.ts +0 -11
  723. package/components/Kebab/Kebab.styles.js +0 -13
  724. package/components/Kebab/Kebab.styles.js.map +0 -1
  725. package/components/Link/Link.styles.d.ts +0 -24
  726. package/components/Link/Link.styles.js +0 -26
  727. package/components/Link/Link.styles.js.map +0 -1
  728. package/components/Loader/Loader.styles.d.ts +0 -8
  729. package/components/Loader/Loader.styles.js +0 -10
  730. package/components/Loader/Loader.styles.js.map +0 -1
  731. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.d.ts +0 -7
  732. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js +0 -10
  733. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js.map +0 -1
  734. package/components/MaskedInput/MaskedInput.styles.d.ts +0 -7
  735. package/components/MaskedInput/MaskedInput.styles.js +0 -10
  736. package/components/MaskedInput/MaskedInput.styles.js.map +0 -1
  737. package/components/MaskedInputV2/MaskedInputV2.styles.d.ts +0 -7
  738. package/components/MaskedInputV2/MaskedInputV2.styles.js +0 -10
  739. package/components/MaskedInputV2/MaskedInputV2.styles.js.map +0 -1
  740. package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +0 -15
  741. package/components/MaskedInputV2/internal/MaskedInternal.styles.js +0 -18
  742. package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +0 -1
  743. package/components/MenuFooter/MenuFooter.styles.d.ts +0 -10
  744. package/components/MenuFooter/MenuFooter.styles.js +0 -12
  745. package/components/MenuFooter/MenuFooter.styles.js.map +0 -1
  746. package/components/MenuHeader/MenuHeader.styles.d.ts +0 -10
  747. package/components/MenuHeader/MenuHeader.styles.js +0 -12
  748. package/components/MenuHeader/MenuHeader.styles.js.map +0 -1
  749. package/components/MenuItem/MenuItem.styles.d.ts +0 -29
  750. package/components/MenuItem/MenuItem.styles.js +0 -31
  751. package/components/MenuItem/MenuItem.styles.js.map +0 -1
  752. package/components/MenuSeparator/MenuSeparator.styles.d.ts +0 -5
  753. package/components/MenuSeparator/MenuSeparator.styles.js +0 -7
  754. package/components/MenuSeparator/MenuSeparator.styles.js.map +0 -1
  755. package/components/MiniModal/MiniModal.styles.d.ts +0 -11
  756. package/components/MiniModal/MiniModal.styles.js +0 -13
  757. package/components/MiniModal/MiniModal.styles.js.map +0 -1
  758. package/components/Modal/Modal.styles.d.ts +0 -55
  759. package/components/Modal/Modal.styles.js +0 -58
  760. package/components/Modal/Modal.styles.js.map +0 -1
  761. package/components/Paging/Paging.styles.d.ts +0 -32
  762. package/components/Paging/Paging.styles.js +0 -34
  763. package/components/Paging/Paging.styles.js.map +0 -1
  764. package/components/PasswordInput/PasswordInput.styles.d.ts +0 -11
  765. package/components/PasswordInput/PasswordInput.styles.js +0 -13
  766. package/components/PasswordInput/PasswordInput.styles.js.map +0 -1
  767. package/components/Radio/Radio.styles.d.ts +0 -37
  768. package/components/Radio/Radio.styles.js +0 -40
  769. package/components/Radio/Radio.styles.js.map +0 -1
  770. package/components/RadioGroup/RadioGroup.styles.d.ts +0 -6
  771. package/components/RadioGroup/RadioGroup.styles.js +0 -8
  772. package/components/RadioGroup/RadioGroup.styles.js.map +0 -1
  773. package/components/ScrollContainer/ScrollContainer.styles.d.ts +0 -21
  774. package/components/ScrollContainer/ScrollContainer.styles.js +0 -24
  775. package/components/ScrollContainer/ScrollContainer.styles.js.map +0 -1
  776. package/components/Select/Select.styles.d.ts +0 -18
  777. package/components/Select/Select.styles.js +0 -20
  778. package/components/Select/Select.styles.js.map +0 -1
  779. package/components/SidePage/SidePage.styles.d.ts +0 -50
  780. package/components/SidePage/SidePage.styles.js +0 -52
  781. package/components/SidePage/SidePage.styles.js.map +0 -1
  782. package/components/Spinner/Spinner.styles.d.ts +0 -13
  783. package/components/Spinner/Spinner.styles.js +0 -15
  784. package/components/Spinner/Spinner.styles.js.map +0 -1
  785. package/components/Sticky/Sticky.styles.d.ts +0 -8
  786. package/components/Sticky/Sticky.styles.js +0 -10
  787. package/components/Sticky/Sticky.styles.js.map +0 -1
  788. package/components/Switcher/Switcher.styles.d.ts +0 -12
  789. package/components/Switcher/Switcher.styles.js +0 -14
  790. package/components/Switcher/Switcher.styles.js.map +0 -1
  791. package/components/Tabs/Indicator.styles.d.ts +0 -8
  792. package/components/Tabs/Indicator.styles.js +0 -10
  793. package/components/Tabs/Indicator.styles.js.map +0 -1
  794. package/components/Tabs/Tab.styles.d.ts +0 -33
  795. package/components/Tabs/Tab.styles.js +0 -36
  796. package/components/Tabs/Tab.styles.js.map +0 -1
  797. package/components/Tabs/Tabs.styles.d.ts +0 -7
  798. package/components/Tabs/Tabs.styles.js +0 -9
  799. package/components/Tabs/Tabs.styles.js.map +0 -1
  800. package/components/Textarea/Textarea.styles.d.ts +0 -27
  801. package/components/Textarea/Textarea.styles.js +0 -29
  802. package/components/Textarea/Textarea.styles.js.map +0 -1
  803. package/components/TimePicker/TimePicker.styles.d.ts +0 -12
  804. package/components/TimePicker/TimePicker.styles.js +0 -14
  805. package/components/TimePicker/TimePicker.styles.js.map +0 -1
  806. package/components/Toast/Toast.styles.d.ts +0 -7
  807. package/components/Toast/Toast.styles.js +0 -9
  808. package/components/Toast/Toast.styles.js.map +0 -1
  809. package/components/Toast/ToastView.styles.d.ts +0 -20
  810. package/components/Toast/ToastView.styles.js +0 -22
  811. package/components/Toast/ToastView.styles.js.map +0 -1
  812. package/components/Toggle/Toggle.styles.d.ts +0 -50
  813. package/components/Toggle/Toggle.styles.js +0 -52
  814. package/components/Toggle/Toggle.styles.js.map +0 -1
  815. package/components/Token/Token.styles.d.ts +0 -24
  816. package/components/Token/Token.styles.js +0 -27
  817. package/components/Token/Token.styles.js.map +0 -1
  818. package/components/TokenInput/TokenInput.styles.d.ts +0 -22
  819. package/components/TokenInput/TokenInput.styles.js +0 -24
  820. package/components/TokenInput/TokenInput.styles.js.map +0 -1
  821. package/components/Tooltip/Tooltip.styles.d.ts +0 -12
  822. package/components/Tooltip/Tooltip.styles.js +0 -14
  823. package/components/Tooltip/Tooltip.styles.js.map +0 -1
  824. package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +0 -11
  825. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js +0 -13
  826. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +0 -1
  827. package/internal/CloseButtonIcon/CloseButtonIcon.styles.d.ts +0 -8
  828. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js +0 -10
  829. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +0 -1
  830. package/internal/CustomComboBox/CustomComboBox.styles.d.ts +0 -6
  831. package/internal/CustomComboBox/CustomComboBox.styles.js +0 -8
  832. package/internal/CustomComboBox/CustomComboBox.styles.js.map +0 -1
  833. package/internal/DateSelect/DateSelect.styles.d.ts +0 -9
  834. package/internal/DateSelect/DateSelect.styles.js +0 -12
  835. package/internal/DateSelect/DateSelect.styles.js.map +0 -1
  836. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.styles.d.ts +0 -5
  837. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.styles.js +0 -7
  838. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.styles.js.map +0 -1
  839. package/internal/InputLikeText/InputLikeText.styles.d.ts +0 -8
  840. package/internal/InputLikeText/InputLikeText.styles.js +0 -10
  841. package/internal/InputLikeText/InputLikeText.styles.js.map +0 -1
  842. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +0 -4
  843. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +0 -6
  844. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +0 -1
  845. package/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +0 -4
  846. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js +0 -6
  847. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js.map +0 -1
  848. package/internal/Menu/Menu.styles.d.ts +0 -16
  849. package/internal/Menu/Menu.styles.js +0 -18
  850. package/internal/Menu/Menu.styles.js.map +0 -1
  851. package/internal/MenuMessage/MenuMessage.styles.d.ts +0 -11
  852. package/internal/MenuMessage/MenuMessage.styles.js +0 -13
  853. package/internal/MenuMessage/MenuMessage.styles.js.map +0 -1
  854. package/internal/MobilePopup/MobilePopup.styles.d.ts +0 -17
  855. package/internal/MobilePopup/MobilePopup.styles.js +0 -19
  856. package/internal/MobilePopup/MobilePopup.styles.js.map +0 -1
  857. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +0 -7
  858. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +0 -9
  859. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +0 -1
  860. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +0 -14
  861. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +0 -16
  862. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +0 -1
  863. package/internal/NativeDateInput/NativeDateInput.styles.d.ts +0 -4
  864. package/internal/NativeDateInput/NativeDateInput.styles.js +0 -6
  865. package/internal/NativeDateInput/NativeDateInput.styles.js.map +0 -1
  866. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +0 -4
  867. package/internal/NativeTimeInput/NativeTimeInput.styles.js +0 -6
  868. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +0 -1
  869. package/internal/Popup/Popup.styles.d.ts +0 -22
  870. package/internal/Popup/Popup.styles.js +0 -24
  871. package/internal/Popup/Popup.styles.js.map +0 -1
  872. package/internal/Popup/PopupPin.styles.d.ts +0 -10
  873. package/internal/Popup/PopupPin.styles.js +0 -12
  874. package/internal/Popup/PopupPin.styles.js.map +0 -1
  875. package/internal/PopupMenu/PopupMenu.styles.d.ts +0 -5
  876. package/internal/PopupMenu/PopupMenu.styles.js +0 -7
  877. package/internal/PopupMenu/PopupMenu.styles.js.map +0 -1
  878. package/internal/ResizeDetector/ResizeDetector.styles.d.ts +0 -8
  879. package/internal/ResizeDetector/ResizeDetector.styles.js +0 -10
  880. package/internal/ResizeDetector/ResizeDetector.styles.js.map +0 -1
  881. package/internal/SpinnerIcon/SpinnerIcon.styles.d.ts +0 -7
  882. package/internal/SpinnerIcon/SpinnerIcon.styles.js +0 -9
  883. package/internal/SpinnerIcon/SpinnerIcon.styles.js.map +0 -1
  884. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -5
  885. package/internal/TextWidthHelper/TextWidthHelper.styles.js +0 -7
  886. package/internal/TextWidthHelper/TextWidthHelper.styles.js.map +0 -1
  887. package/internal/TimeInput/TimeFragments.styles.d.ts +0 -20
  888. package/internal/TimeInput/TimeFragments.styles.js +0 -22
  889. package/internal/TimeInput/TimeFragments.styles.js.map +0 -1
  890. package/internal/TimeInput/TimeInput.styles.d.ts +0 -7
  891. package/internal/TimeInput/TimeInput.styles.js +0 -9
  892. package/internal/TimeInput/TimeInput.styles.js.map +0 -1
  893. package/internal/icons2022/BaseIcon.styles.d.ts +0 -6
  894. package/internal/icons2022/BaseIcon.styles.js +0 -8
  895. package/internal/icons2022/BaseIcon.styles.js.map +0 -1
  896. package/lib/classNames.generated.d.ts +0 -1235
  897. package/lib/classNames.generated.js +0 -1233
  898. package/lib/classNames.generated.js.map +0 -1
  899. package/lib/styles/baselineCompensation.d.ts +0 -63
  900. package/lib/styles/baselineCompensation.js +0 -122
  901. package/lib/styles/baselineCompensation.js.map +0 -1
  902. package/lib/theming/declaredTheme.d.ts +0 -43
  903. package/lib/theming/declaredTheme.js +0 -56
  904. package/lib/theming/declaredTheme.js.map +0 -1
  905. package/lib/theming/hashString.d.ts +0 -19
  906. package/lib/theming/hashString.js +0 -52
  907. package/lib/theming/hashString.js.map +0 -1
  908. package/lib/theming/staticStyles.d.ts +0 -17
  909. package/lib/theming/staticStyles.js +0 -8
  910. package/lib/theming/staticStyles.js.map +0 -1
  911. package/lib/theming/staticThemeDelta.d.ts +0 -17
  912. package/lib/theming/staticThemeDelta.js +0 -37
  913. package/lib/theming/staticThemeDelta.js.map +0 -1
  914. package/lib/theming/staticThemeVars.d.ts +0 -21
  915. package/lib/theming/staticThemeVars.js +0 -35
  916. package/lib/theming/staticThemeVars.js.map +0 -1
  917. package/lib/theming/themeCssVarsClass.d.ts +0 -89
  918. package/lib/theming/themeCssVarsClass.js +0 -253
  919. package/lib/theming/themeCssVarsClass.js.map +0 -1
  920. package/lib/theming/themeCssVarsDelta.d.ts +0 -13
  921. package/lib/theming/themeCssVarsDelta.js +0 -67
  922. package/lib/theming/themeCssVarsDelta.js.map +0 -1
  923. package/lib/theming/themeToCssVars.d.ts +0 -47
  924. package/lib/theming/themeToCssVars.js +0 -861
  925. package/lib/theming/themeToCssVars.js.map +0 -1
  926. package/react-ui-tailwind.css +0 -544
  927. package/react-ui-themes.css +0 -8628
  928. package/react-ui-token-map.json +0 -9029
  929. package/react-ui.layer.css +0 -7778
  930. package/themes/dark-6-0.css +0 -1439
  931. package/themes/dark-6-0.scoped.css +0 -1439
  932. package/themes/dark-6-1.css +0 -1439
  933. package/themes/dark-6-1.scoped.css +0 -1439
  934. package/themes/dark.css +0 -1439
  935. package/themes/dark.scoped.css +0 -1439
  936. package/themes/light-6-0.css +0 -1437
  937. package/themes/light-6-0.scoped.css +0 -1437
  938. package/themes/light-6-1.css +0 -1437
  939. package/themes/light-6-1.scoped.css +0 -1437
  940. package/themes/light.css +0 -1437
  941. package/themes/light.scoped.css +0 -1437
@@ -1 +1 @@
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 { 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 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();\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 { 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.css.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"]}
@@ -17,6 +17,7 @@ export declare class RenderContainer extends React.Component<RenderContainerProp
17
17
  shouldComponentUpdate(nextProps: RenderContainerProps): boolean;
18
18
  componentWillUnmount(): void;
19
19
  render(): React.JSX.Element;
20
+ private applyThemeVars;
20
21
  private createContainer;
21
22
  private mountContainer;
22
23
  private destroyContainer;
@@ -27,6 +27,8 @@ 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 { ThemeContext } from '../../lib/theming/ThemeContext.js';
31
+ import { getThemeSetTokens, getThemeVars, ThemeCarrierContext } from '../../lib/theming/themeVars.js';
30
32
  import { Upgrade } from '../../lib/Upgrades.js';
31
33
  import { getRandomID } from '../../lib/utils.js';
32
34
  import { RenderInnerContainer } from './RenderInnerContainer.js';
@@ -54,10 +56,33 @@ var RenderContainer = /** @class */ (function (_super) {
54
56
  this.destroyContainer();
55
57
  };
56
58
  RenderContainer.prototype.render = function () {
59
+ var _this = this;
57
60
  if (this.props.children) {
58
61
  this.mountContainer();
59
62
  }
60
- return React.createElement(RenderInnerContainer, __assign({}, this.props, { domContainer: this.domContainer, rootId: this.rootId }));
63
+ return (React.createElement(ThemeContext.Consumer, null, function (theme) {
64
+ _this.applyThemeVars(getThemeVars(theme), getThemeSetTokens(theme));
65
+ // портал живёт в body: переменные считаются от темы по умолчанию, для содержимого носитель — контейнер
66
+ return (React.createElement(ThemeCarrierContext.Provider, { value: theme },
67
+ React.createElement(RenderInnerContainer, __assign({}, _this.props, { domContainer: _this.domContainer, rootId: _this.rootId }))));
68
+ }));
69
+ };
70
+ RenderContainer.prototype.applyThemeVars = function (vars, setTokens) {
71
+ var container = this.domContainer;
72
+ if (!container) {
73
+ return;
74
+ }
75
+ container.removeAttribute('style');
76
+ if (setTokens) {
77
+ container.setAttribute('data-k-set', setTokens);
78
+ }
79
+ else {
80
+ container.removeAttribute('data-k-set');
81
+ }
82
+ Object.entries(vars).forEach(function (_a) {
83
+ var name = _a[0], value = _a[1];
84
+ return container.style.setProperty(name, String(value));
85
+ });
61
86
  };
62
87
  RenderContainer.prototype.createContainer = function () {
63
88
  var _a;
@@ -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 { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { getThemeSetTokens, getThemeVars, ThemeCarrierContext } from '../../lib/theming/themeVars.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 (\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 if (!container) {\n return;\n }\n container.removeAttribute('style');\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', 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"]}
@@ -15,7 +15,6 @@ var __extends = (this && this.__extends) || (function () {
15
15
  })();
16
16
  import React from 'react';
17
17
  import ReactDOM from 'react-dom';
18
- import { DeclaredThemeContext, RootDeclaredThemeContext } from '../../lib/theming/declaredTheme.js';
19
18
  import { PORTAL_INLET_ATTR } from './RenderContainer.js';
20
19
  var KONTUR_COLORS_ATTRIBUTES = ['data-k-brand', 'data-k-accent', 'data-k-theme'];
21
20
  // Заглушка нужна для корректной гидрации порталов после SSR,
@@ -75,9 +74,8 @@ var RenderInnerContainer = /** @class */ (function (_super) {
75
74
  if (children) {
76
75
  inner = (React.createElement(React.Fragment, null,
77
76
  anchor,
78
- React.createElement(Portal, { key: "portal-ref", rt_rootID: rootId, container: domContainer },
79
- React.createElement(RootDeclaredThemeContext.Consumer, null, function (root) { return React.createElement(DeclaredThemeContext.Provider, { value: root }, children); })),
80
- React.createElement("span", { ref: this.kColorsCheckerRef, hidden: true })));
77
+ React.createElement(Portal, { key: "portal-ref", rt_rootID: rootId, container: domContainer }, children),
78
+ React.createElement("span", { ref: this.kColorsCheckerRef, style: { display: 'none' } })));
81
79
  }
82
80
  return inner;
83
81
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RenderInnerContainer.js","sourceRoot":"","sources":["RenderInnerContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { DeclaredThemeContext, RootDeclaredThemeContext } from '../../lib/theming/declaredTheme.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { PORTAL_INLET_ATTR } from './RenderContainer.js';\nimport type { PortalProps, RenderContainerProps } from './RenderContainerTypes.js';\n\nconst KONTUR_COLORS_ATTRIBUTES = ['data-k-brand', 'data-k-accent', 'data-k-theme'];\n\ninterface RenderInnerContainerProps extends RenderContainerProps {\n domContainer: Nullable<HTMLElement>;\n rootId: string;\n}\n\n// Заглушка нужна для корректной гидрации порталов после SSR,\n// которую реакт сам пока не поддерживает.\n// @see https://github.com/facebook/react/issues/13097\n// А также для вставки актуального render-container-id на клиенте.\n//\n// Дело в том, что во время гидрации, структура HTML на сервере\n// и на клиенте должна совпадать, иначе возможны артефакты.\n// Алгоритм там примерно такой. Клиент во время гидрации идет\n// по этим двум деревьям и сравнивает узлы. Элементы разных типов\n// он подменяет на свои. А те, что совпадают, он оставляет как есть\n// вместе со всеми атрибутами, навесив только обработчики событий.\n//\n// Поэтому, для портала, который рендерится только на клиенте,\n// нужно использовать серверную заглушку, чтобы при гидрации\n// он не испортил какой-то другой элемент. Null не подходит,\n// т.к. на сервере он тоже не рендерится.\n// А элемент с render-container-id нужно отрендерить с нуля.\n\nconst SSRPlaceholder = () => <script data-id=\"ssr-placeholder\" />;\n\nexport const Portal = ({ container, rt_rootID, children }: PortalProps) => {\n // container exists only in browser\n return (\n <React.Fragment>\n {container ? ReactDOM.createPortal(children, container) : <SSRPlaceholder />}\n {container ? <noscript {...{ [PORTAL_INLET_ATTR]: rt_rootID }} /> : <SSRPlaceholder />}\n </React.Fragment>\n );\n};\n\nexport class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderInnerContainer';\n public static displayName = 'RenderInnerContainer';\n\n private kColorsCheckerRef = React.createRef<HTMLSpanElement>();\n\n public componentDidMount() {\n this.applyKonturColorsAttributes();\n }\n\n public componentDidUpdate() {\n this.applyKonturColorsAttributes();\n }\n\n private applyKonturColorsAttributes() {\n const { domContainer } = this.props;\n const source = this.kColorsCheckerRef.current?.closest<HTMLElement>(\n KONTUR_COLORS_ATTRIBUTES.map((x) => `[${x}]`).join(','),\n );\n\n for (const attribute of KONTUR_COLORS_ATTRIBUTES) {\n const value = source?.getAttribute(attribute);\n if (value) {\n domContainer?.setAttribute(attribute, value);\n }\n }\n }\n\n public render() {\n const { anchor, children, domContainer, rootId } = this.props;\n let inner = anchor;\n\n if (children) {\n inner = (\n <React.Fragment>\n {anchor}\n <Portal key=\"portal-ref\" rt_rootID={rootId} container={domContainer}>\n {/*\n Внутри портала действует КОРНЕВАЯ тема, а не тема предка: контейнер\n портала висит у `body`, то есть вне того места DOM, где стоял\n носитель переменных. Поэтому значение не переносится, а сбрасывается\n к корневому — иначе первый же `CommonWrapper` в поддереве решил бы,\n что его тема уже объявлена выше, и не напечатал бы носитель. Это\n ловушка 3 эпика: 33 скриншота из 36.\n\n Через React, а не через атрибуты DOM, как это делает\n `applyKonturColorsAttributes` для `data-k-*`: тот работает в\n `componentDidMount`, то есть кадром позже, и на сервере не\n существует вовсе.\n */}\n <RootDeclaredThemeContext.Consumer>\n {(root) => <DeclaredThemeContext.Provider value={root}>{children}</DeclaredThemeContext.Provider>}\n </RootDeclaredThemeContext.Consumer>\n </Portal>\n {/*\n Щуп прячется атрибутом `hidden`, а не инлайновым `display: none`:\n под `style-src-attr 'none'` объявление из серверной разметки не\n применяется, а `hidden` — часть HTML и работает всегда.\n */}\n <span ref={this.kColorsCheckerRef} hidden />\n </React.Fragment>\n );\n }\n\n return inner;\n }\n}\n\nPortal.__KONTUR_REACT_UI__ = 'Portal';\nPortal.displayName = 'Portal';\n"]}
1
+ {"version":3,"file":"RenderInnerContainer.js","sourceRoot":"","sources":["RenderInnerContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { PORTAL_INLET_ATTR } from './RenderContainer.js';\nimport type { PortalProps, RenderContainerProps } from './RenderContainerTypes.js';\n\nconst KONTUR_COLORS_ATTRIBUTES = ['data-k-brand', 'data-k-accent', 'data-k-theme'];\n\ninterface RenderInnerContainerProps extends RenderContainerProps {\n domContainer: Nullable<HTMLElement>;\n rootId: string;\n}\n\n// Заглушка нужна для корректной гидрации порталов после SSR,\n// которую реакт сам пока не поддерживает.\n// @see https://github.com/facebook/react/issues/13097\n// А также для вставки актуального render-container-id на клиенте.\n//\n// Дело в том, что во время гидрации, структура HTML на сервере\n// и на клиенте должна совпадать, иначе возможны артефакты.\n// Алгоритм там примерно такой. Клиент во время гидрации идет\n// по этим двум деревьям и сравнивает узлы. Элементы разных типов\n// он подменяет на свои. А те, что совпадают, он оставляет как есть\n// вместе со всеми атрибутами, навесив только обработчики событий.\n//\n// Поэтому, для портала, который рендерится только на клиенте,\n// нужно использовать серверную заглушку, чтобы при гидрации\n// он не испортил какой-то другой элемент. Null не подходит,\n// т.к. на сервере он тоже не рендерится.\n// А элемент с render-container-id нужно отрендерить с нуля.\n\nconst SSRPlaceholder = () => <script data-id=\"ssr-placeholder\" />;\n\nexport const Portal = ({ container, rt_rootID, children }: PortalProps) => {\n // container exists only in browser\n return (\n <React.Fragment>\n {container ? ReactDOM.createPortal(children, container) : <SSRPlaceholder />}\n {container ? <noscript {...{ [PORTAL_INLET_ATTR]: rt_rootID }} /> : <SSRPlaceholder />}\n </React.Fragment>\n );\n};\n\nexport class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderInnerContainer';\n public static displayName = 'RenderInnerContainer';\n\n private kColorsCheckerRef = React.createRef<HTMLSpanElement>();\n\n public componentDidMount() {\n this.applyKonturColorsAttributes();\n }\n\n public componentDidUpdate() {\n this.applyKonturColorsAttributes();\n }\n\n private applyKonturColorsAttributes() {\n const { domContainer } = this.props;\n const source = this.kColorsCheckerRef.current?.closest<HTMLElement>(\n KONTUR_COLORS_ATTRIBUTES.map((x) => `[${x}]`).join(','),\n );\n\n for (const attribute of KONTUR_COLORS_ATTRIBUTES) {\n const value = source?.getAttribute(attribute);\n if (value) {\n domContainer?.setAttribute(attribute, value);\n }\n }\n }\n\n public render() {\n const { anchor, children, domContainer, rootId } = this.props;\n let inner = anchor;\n\n if (children) {\n inner = (\n <React.Fragment>\n {anchor}\n <Portal key=\"portal-ref\" rt_rootID={rootId} container={domContainer}>\n {children}\n </Portal>\n <span ref={this.kColorsCheckerRef} style={{ display: 'none' }} />\n </React.Fragment>\n );\n }\n\n return inner;\n }\n}\n\nPortal.__KONTUR_REACT_UI__ = 'Portal';\nPortal.displayName = 'Portal';\n"]}
@@ -0,0 +1,7 @@
1
+ export declare const getStyles: import("../../lib/theming/StaticStyles.js").StylesGetter<{
2
+ root(): string;
3
+ iframe(): string;
4
+ content(): string;
5
+ fullHeight(): string;
6
+ flex(): string;
7
+ }>;
@@ -0,0 +1,3 @@
1
+
2
+ import { bindStaticStyles as _b9cd9 } from '../../lib/theming/bindStaticStyles.js';
3
+ 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'});
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizeDetector.css.js","sourceRoot":"","sources":["ResizeDetector.css.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE3F,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,IAAI;YACF,OAAO,GAAG,2HAAA,wDAGT,KAAC;QACJ,CAAC;QAED,MAAM;YACJ,OAAO,GAAG,wRAAA,qNAWT,KAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,GAAG,sGAAA,mCAET,KAAC;QACJ,CAAC;QAED,UAAU;YACR,OAAO,GAAG,gGAAA,6BAET,KAAC;QACJ,CAAC;QAED,IAAI;YACF,OAAO,GAAG,iGAAA,8BAET,KAAC;QACJ,CAAC;KACF,CAAC;AAxC8D,CAwC9D,CAAC,CAAC;AAEJ,oBAAoB,EAAE,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { finalizeStaticStyles, memoizeGetStyles } from '../../lib/theming/StaticStyles.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n root() {\n return css`\n position: relative;\n height: 100%;\n `;\n },\n\n iframe() {\n return css`\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 },\n\n content() {\n return css`\n position: relative;\n `;\n },\n\n fullHeight() {\n return css`\n height: 100%;\n `;\n },\n\n flex() {\n return css`\n display: flex;\n `;\n },\n}));\n\nfinalizeStaticStyles();\n"]}
@@ -9,6 +9,7 @@ export declare class ResizeDetector extends React.Component<React.PropsWithChild
9
9
  static displayName: string;
10
10
  private iframeWindow;
11
11
  private styles;
12
+ private emotion;
12
13
  private cx;
13
14
  componentDidMount(): void;
14
15
  render(): React.JSX.Element;
@@ -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() {
@@ -46,7 +46,7 @@ var ResizeDetector = /** @class */ (function (_super) {
46
46
  };
47
47
  ResizeDetector.prototype.render = function () {
48
48
  var _a;
49
- this.styles = getStyles();
49
+ this.styles = getStyles(this.emotion);
50
50
  return (React.createElement("div", { className: this.styles.root() },
51
51
  React.createElement("iframe", { title: "resizeDetector", ref: this.iframeRef, className: this.styles.iframe(), tabIndex: -1 }),
52
52
  React.createElement("div", { className: this.cx((_a = {},
@@ -1 +1 @@
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,4BAA4B,CAAC;AASvD;IAAoC,kCAA6D;IAAjG;;QAIU,kBAAY,GAAkB,IAAI,CAAC;QA6BnC,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,EAAE,CAAC;QAE1B,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;IA9Ba,kCAAmB,GAAG,gBAAgB,AAAnB,CAAoB;IACvC,0BAAW,GAAG,gBAAgB,AAAnB,CAAoB;IAFlC,cAAc;QAD1B,qBAAqB;OACT,cAAc,CA4C1B;IAAD,qBAAC;CAAA,AA5CD,CAAoC,KAAK,CAAC,SAAS,GA4ClD;SA5CY,cAAc","sourcesContent":["import React from 'react';\n\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { ClassNames } from '../../lib/theming/Emotion.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 cx!: ClassNames;\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();\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":";;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,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 type { Emotion } from '@emotion/css/create-instance';\nimport React from 'react';\n\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.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,6 @@
1
+ export declare const getStyles: import("../../lib/theming/StaticStyles.js").StylesGetter<{
2
+ root(): string;
3
+ rootInline(): string;
4
+ icon(): string;
5
+ iconInline(): string;
6
+ }>;
@@ -0,0 +1,3 @@
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'});
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpinnerIcon.css.js","sourceRoot":"","sources":["SpinnerIcon.css.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE3F,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,IAAI;YACF,OAAO,GAAG,8JAAA,2FAIT,KAAC;QACJ,CAAC;QACD,UAAU;YACR,OAAO,GAAG,kKAAA,+FAGT,KAAC;QACJ,CAAC;QAED,IAAI;YACF,OAAO,GAAG,4JAAA,yFAIT,KAAC;QACJ,CAAC;QAED,UAAU;YACR,OAAO,GAAG,6OAAA,0KAKT,KAAC;QACJ,CAAC;KACF,CAAC;AA/B8D,CA+B9D,CAAC,CAAC;AAEJ,oBAAoB,EAAE,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { finalizeStaticStyles, memoizeGetStyles } from '../../lib/theming/StaticStyles.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n root() {\n return css`\n display: inline-block;\n margin-left: -1px;\n margin-right: -1px;\n `;\n },\n rootInline() {\n return css`\n margin-left: -0.0714285714285714em;\n margin-right: -0.0714285714285714em;\n `;\n },\n\n icon() {\n return css`\n margin-bottom: -3px;\n border-radius: 50%;\n overflow: visible;\n `;\n },\n\n iconInline() {\n return css`\n height: 1.1428571428571428em;\n width: 1.1428571428571428em;\n margin-bottom: -0.2428571428571428em;\n stroke-width: 0.10714285714285714em;\n `;\n },\n}));\n\nfinalizeStaticStyles();\n"]}
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
- import { useStyles } from '../../lib/renderEnvironment/index.js';
3
- import { concatClassNames as cx } from '../../lib/theming/Emotion.js';
4
- import { getStyles } from './SpinnerIcon.styles.js';
2
+ import { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';
3
+ import { getStyles } from './SpinnerIcon.css.js';
5
4
  export var sizes = {
6
5
  large: {
7
6
  size: 96,
@@ -27,6 +26,7 @@ export var SpinnerIcon = function (_a) {
27
26
  var size = _a.size, className = _a.className, inline = _a.inline, width = _a.width, color = _a.color;
28
27
  var _size = isSizeAlias(size) ? sizes[size] : size;
29
28
  var currentSize = inline ? sizes.small : _size;
29
+ var cx = useEmotion().cx;
30
30
  var styles = useStyles(getStyles);
31
31
  return (React.createElement("span", { className: cx(styles.root(), (_b = {}, _b[styles.rootInline()] = inline, _b)) },
32
32
  React.createElement("svg", { viewBox: "0 0 ".concat(currentSize.size, " ").concat(currentSize.size), className: cx(styles.icon(), className, (_c = {},
@@ -1 +1 @@
1
- {"version":3,"file":"SpinnerIcon.js","sourceRoot":"","sources":["SpinnerIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,gBAAgB,IAAI,EAAE,EAAE,MAAM,8BAA8B,CAAC;AACtE,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;IAEjD,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 { useStyles } from '../../lib/renderEnvironment/index.js';\nimport { concatClassNames as cx } from '../../lib/theming/Emotion.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 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,4 @@
1
+ export declare const getJsStyles: import("../../lib/theming/StaticStyles.js").StylesGetter<{
2
+ root(): string;
3
+ textContainer(): string;
4
+ }>;
@@ -0,0 +1,3 @@
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'});
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextWidthHelper.css.js","sourceRoot":"","sources":["TextWidthHelper.css.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE3F,MAAM,CAAC,IAAM,WAAW,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QACjE,IAAI;YACF,OAAO,GAAG,gOAAA,6JAQT,KAAC;QACJ,CAAC;QACD,aAAa;YACX,OAAO,GAAG,qIAAA,kEAGT,KAAC;QACJ,CAAC;KACF,CAAC;AAlBgE,CAkBhE,CAAC,CAAC;AAEJ,oBAAoB,EAAE,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { finalizeStaticStyles, memoizeGetStyles } from '../../lib/theming/StaticStyles.js';\n\nexport const getJsStyles = memoizeGetStyles(({ css }: Emotion) => ({\n root() {\n return css`\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n visibility: hidden;\n overflow: hidden;\n `;\n },\n textContainer() {\n return css`\n word-break: break-all;\n white-space: nowrap;\n `;\n },\n}));\n\nfinalizeStaticStyles();\n"]}
@@ -7,6 +7,7 @@ interface TextWidthHelperProps {
7
7
  */
8
8
  export declare class TextWidthHelper extends React.Component<TextWidthHelperProps> {
9
9
  private element;
10
+ private emotion;
10
11
  private jsStyles;
11
12
  render(): React.JSX.Element;
12
13
  getTextWidth(): number;
@@ -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
  * Херпер позволяет вычислить размеры блока с текстом
@@ -38,7 +38,7 @@ var TextWidthHelper = /** @class */ (function (_super) {
38
38
  return _this;
39
39
  }
40
40
  TextWidthHelper.prototype.render = function () {
41
- this.jsStyles = getJsStyles();
41
+ this.jsStyles = getJsStyles(this.emotion);
42
42
  return (React.createElement("div", { className: this.jsStyles.root() },
43
43
  React.createElement("div", { className: this.jsStyles.textContainer(), ref: this.elementRef }, this.props.text || THIN_SPACE)));
44
44
  };
@@ -1 +1 @@
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;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;QAuBtC,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,EAAE,CAAC;QAE9B,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;IAtBU,eAAe;QAD3B,qBAAqB;OACT,eAAe,CA2B3B;IAAD,sBAAC;CAAA,AA3BD,CAAqC,KAAK,CAAC,SAAS,GA2BnD;SA3BY,eAAe","sourcesContent":["import 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 jsStyles!: ReturnType<typeof getJsStyles>;\n\n public render() {\n this.jsStyles = getJsStyles();\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":";;;;;;;;;;;;;;;;;;;;;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,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 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.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
+ import type { Theme } from '../../lib/theming/Theme.js';
2
+ export declare const getStyles: import("../../lib/theming/StaticStyles.js").StylesGetter<{
3
+ root(): string;
4
+ /**
5
+ * Резервируют место под время, когда значения нет: без этого поле с suffix
6
+ * сужается на ширину времени, а при вводе снова расширяется.
7
+ * Плейсхолдер уходит в псевдоэлемент — он занимает ту же ширину, что и время,
8
+ * но не попадает в текст поля и не читается скринридером.
9
+ * Отступы разделителей есть только у отрисованного времени, поэтому их добавляем сюда сами:
10
+ * по одному `letter-spacing` на каждый разделитель — один в формате `HH:mm` и два в `HH:mm:ss`.
11
+ */
12
+ emptyPlaceholderSmall(t: Theme): string;
13
+ emptyPlaceholderMedium(t: Theme): string;
14
+ emptyPlaceholderLarge(t: Theme): string;
15
+ emptyPlaceholderWithSecondsSmall(t: Theme): string;
16
+ emptyPlaceholderWithSecondsMedium(t: Theme): string;
17
+ emptyPlaceholderWithSecondsLarge(t: Theme): string;
18
+ selected(t: Theme): string;
19
+ mask(t: Theme): string;
20
+ segment(): string;
21
+ separator(): string;
22
+ /**
23
+ * Разделитель рисует псевдоэлемент, а сам текст только держит место и попадает в выделение.
24
+ * В задизейбленном поле `-webkit-text-fill-color` приходит по наследству и перебивает `color`,
25
+ * поэтому гасим и его — иначе двоеточие отрисуется дважды.
26
+ */
27
+ separatorText(): string;
28
+ separatorSmall(t: Theme): string;
29
+ separatorMedium(t: Theme): string;
30
+ separatorLarge(t: Theme): string;
31
+ separatorFilled(): string;
32
+ }>;
@@ -0,0 +1,3 @@
1
+
2
+ import { bindStaticStyles as _b9cd9 } from '../../lib/theming/bindStaticStyles.js';
3
+ export var getStyles = _b9cd9({root:'react-ui-TimeFragments__root',emptyPlaceholderSmall:'react-ui-TimeFragments__emptyPlaceholderSmall',emptyPlaceholderMedium:'react-ui-TimeFragments__emptyPlaceholderMedium',emptyPlaceholderLarge:'react-ui-TimeFragments__emptyPlaceholderLarge',emptyPlaceholderWithSecondsSmall:'react-ui-TimeFragments__emptyPlaceholderWithSecondsSmall',emptyPlaceholderWithSecondsMedium:'react-ui-TimeFragments__emptyPlaceholderWithSecondsMedium',emptyPlaceholderWithSecondsLarge:'react-ui-TimeFragments__emptyPlaceholderWithSecondsLarge',mask:'react-ui-TimeFragments__mask',segment:'react-ui-TimeFragments__segment',separator:'react-ui-TimeFragments__separator',separatorText:'react-ui-TimeFragments__separatorText',separatorSmall:'react-ui-TimeFragments__separatorSmall',separatorMedium:'react-ui-TimeFragments__separatorMedium',separatorLarge:'react-ui-TimeFragments__separatorLarge',separatorFilled:'react-ui-TimeFragments__separatorFilled',selected:'react-ui-TimeFragments__selected'});
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeFragments.css.js","sourceRoot":"","sources":["TimeFragments.css.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { EMPTY_SEGMENT, TIME_SEPARATOR } from '../../components/TimePicker/helpers/TimePicker.constants.js';\nimport { finalizeStaticStyles, memoizeGetStyles } from '../../lib/theming/StaticStyles.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\n\n// как getEmptyDisplayValue, но без модуля значений: тот тянет компоненты, а этот файл исполняется при сборке\nconst getEmptyDisplayValue = (precision: 'HH:mm' | 'HH:mm:ss'): string =>\n precision\n .split(':')\n .map(() => EMPTY_SEGMENT)\n .join(TIME_SEPARATOR);\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n root() {\n return css`\n cursor: text;\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n `;\n },\n\n /**\n * Резервируют место под время, когда значения нет: без этого поле с suffix\n * сужается на ширину времени, а при вводе снова расширяется.\n * Плейсхолдер уходит в псевдоэлемент — он занимает ту же ширину, что и время,\n * но не попадает в текст поля и не читается скринридером.\n * Отступы разделителей есть только у отрисованного времени, поэтому их добавляем сюда сами:\n * по одному `letter-spacing` на каждый разделитель — один в формате `HH:mm` и два в `HH:mm:ss`.\n */\n emptyPlaceholderSmall(t: Theme) {\n return css`\n &::before {\n content: '${getEmptyDisplayValue('HH:mm')}';\n visibility: hidden;\n padding-right: ${t.timePickerSeparatorPaddingXSmall};\n }\n `;\n },\n\n emptyPlaceholderMedium(t: Theme) {\n return css`\n &::before {\n content: '${getEmptyDisplayValue('HH:mm')}';\n visibility: hidden;\n padding-right: ${t.timePickerSeparatorPaddingXMedium};\n }\n `;\n },\n\n emptyPlaceholderLarge(t: Theme) {\n return css`\n &::before {\n content: '${getEmptyDisplayValue('HH:mm')}';\n visibility: hidden;\n padding-right: ${t.timePickerSeparatorPaddingXLarge};\n }\n `;\n },\n\n emptyPlaceholderWithSecondsSmall(t: Theme) {\n return css`\n &::before {\n content: '${getEmptyDisplayValue('HH:mm:ss')}';\n visibility: hidden;\n padding-right: calc(${t.timePickerSeparatorPaddingXSmall} * 2);\n }\n `;\n },\n\n emptyPlaceholderWithSecondsMedium(t: Theme) {\n return css`\n &::before {\n content: '${getEmptyDisplayValue('HH:mm:ss')}';\n visibility: hidden;\n padding-right: calc(${t.timePickerSeparatorPaddingXMedium} * 2);\n }\n `;\n },\n\n emptyPlaceholderWithSecondsLarge(t: Theme) {\n return css`\n &::before {\n content: '${getEmptyDisplayValue('HH:mm:ss')}';\n visibility: hidden;\n padding-right: calc(${t.timePickerSeparatorPaddingXLarge} * 2);\n }\n `;\n },\n\n selected(t: Theme) {\n const getSelection = (background: string, color: string) =>\n (background || color) &&\n `& ::selection {\n background: ${background};\n color: ${color};\n }`;\n\n return css`\n cursor: text;\n ${getSelection(t.timePickerSelectedBgColor, t.timePickerSelectedTextColor)}\n `;\n },\n\n mask(t: Theme) {\n return css`\n color: ${t.timePickerMaskColor};\n `;\n },\n\n segment() {\n return css`\n display: inline;\n white-space: pre;\n `;\n },\n\n separator() {\n return css`\n display: inline;\n position: relative;\n\n /*\n * Отрисованный разделитель центрируем по строке: у абсолютного псевдоэлемента\n * своя строка с полулидингом, поэтому от верхнего края он оказался бы ниже текста сегментов.\n */\n &::before {\n content: ':';\n content: ':' / '';\n position: absolute;\n left: 50%;\n top: 50%;\n width: 100%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n letter-spacing: normal;\n text-align: center;\n }\n `;\n },\n\n /**\n * Разделитель рисует псевдоэлемент, а сам текст только держит место и попадает в выделение.\n * В задизейбленном поле `-webkit-text-fill-color` приходит по наследству и перебивает `color`,\n * поэтому гасим и его — иначе двоеточие отрисуется дважды.\n */\n separatorText() {\n return css`\n color: transparent;\n -webkit-text-fill-color: transparent;\n `;\n },\n\n separatorSmall(t: Theme) {\n return css`\n letter-spacing: ${t.timePickerSeparatorPaddingXSmall};\n\n &::before {\n margin-top: ${t.timePickerSeparatorOffsetTopSmall};\n }\n `;\n },\n\n separatorMedium(t: Theme) {\n return css`\n letter-spacing: ${t.timePickerSeparatorPaddingXMedium};\n\n &::before {\n margin-top: ${t.timePickerSeparatorOffsetTopMedium};\n }\n `;\n },\n\n separatorLarge(t: Theme) {\n return css`\n letter-spacing: ${t.timePickerSeparatorPaddingXLarge};\n\n &::before {\n margin-top: ${t.timePickerSeparatorOffsetTopLarge};\n }\n `;\n },\n\n separatorFilled() {\n return css`\n color: inherit;\n `;\n },\n}));\n\n// порядок вызова в cx(...): модификаторы после базовых\nfinalizeStaticStyles(['selected']);\n"]}
@@ -2,57 +2,53 @@ import React, { useCallback, useContext, useImperativeHandle, useRef } from 'rea
2
2
  import { TIME_PLACEHOLDER_CHAR, TIME_SEPARATOR } from '../../components/TimePicker/helpers/TimePicker.constants.js';
3
3
  import { getDisplaySegments, getTimeSegments } from '../../components/TimePicker/helpers/TimePicker.shared.js';
4
4
  import { forwardRefAndName } from '../../lib/forwardRefAndName.js';
5
- import { useStyles } from '../../lib/renderEnvironment/index.js';
6
- import { concatClassNames as cx } from '../../lib/theming/Emotion.js';
5
+ import { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';
7
6
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
8
- import { getStyles } from './TimeFragments.styles.js';
7
+ import { getStyles } from './TimeFragments.css.js';
9
8
  var getEmptyPlaceholderClassName = function (styles, theme, size, format) {
10
9
  if (format === 'HH:mm:ss') {
11
10
  switch (size) {
12
11
  case 'large':
13
- return styles.emptyPlaceholderWithSecondsLarge();
12
+ return styles.emptyPlaceholderWithSecondsLarge(theme);
14
13
  case 'medium':
15
- return styles.emptyPlaceholderWithSecondsMedium();
14
+ return styles.emptyPlaceholderWithSecondsMedium(theme);
16
15
  case 'small':
17
16
  default:
18
- return styles.emptyPlaceholderWithSecondsSmall();
17
+ return styles.emptyPlaceholderWithSecondsSmall(theme);
19
18
  }
20
19
  }
21
20
  switch (size) {
22
21
  case 'large':
23
- return styles.emptyPlaceholderLarge();
22
+ return styles.emptyPlaceholderLarge(theme);
24
23
  case 'medium':
25
- return styles.emptyPlaceholderMedium();
24
+ return styles.emptyPlaceholderMedium(theme);
26
25
  case 'small':
27
26
  default:
28
- return styles.emptyPlaceholderSmall();
27
+ return styles.emptyPlaceholderSmall(theme);
29
28
  }
30
29
  };
31
30
  var getSeparatorSizeClassName = function (styles, theme, size) {
32
31
  switch (size) {
33
32
  case 'large':
34
- return styles.separatorLarge();
33
+ return styles.separatorLarge(theme);
35
34
  case 'medium':
36
- return styles.separatorMedium();
35
+ return styles.separatorMedium(theme);
37
36
  case 'small':
38
37
  default:
39
- return styles.separatorSmall();
38
+ return styles.separatorSmall(theme);
40
39
  }
41
40
  };
42
41
  export var TimeFragments = forwardRefAndName('TimeFragments', function (props, ref) {
43
42
  var _a;
44
43
  var value = props.value, format = props.format, size = props.size, onSelectSegment = props.onSelectSegment;
45
44
  var theme = useContext(ThemeContext);
45
+ var cx = useEmotion().cx;
46
46
  var styles = useStyles(getStyles);
47
47
  var rootRef = useRef(null);
48
- var rootClassName = cx(styles.root(), styles.selected(), (_a = {},
49
- // Пустой токен отключает объявление целиком — см. пояснение в
50
- // TimeFragments.styles.ts. Решение по значению остаётся в JS.
51
- _a[styles.selectionBackground()] = Boolean(theme.timePickerSelectedBgColor),
52
- _a[styles.selectionColor()] = Boolean(theme.timePickerSelectedTextColor),
48
+ var rootClassName = cx(styles.root(), styles.selected(theme), (_a = {},
53
49
  _a[getEmptyPlaceholderClassName(styles, theme, size, format)] = !value,
54
50
  _a));
55
- var maskClassName = styles.mask();
51
+ var maskClassName = styles.mask(theme);
56
52
  var separatorSizeClassName = getSeparatorSizeClassName(styles, theme, size);
57
53
  var getSegment = useCallback(function (el) {
58
54
  var _a;
@@ -86,8 +82,8 @@ export var TimeFragments = forwardRefAndName('TimeFragments', function (props, r
86
82
  React.createElement("span", { className: maskClassName }, Array(placeholderLength).fill(TIME_PLACEHOLDER_CHAR).join(''))),
87
83
  ];
88
84
  if (index < segments.length - 1) {
89
- nodes.push(React.createElement("span", { key: "separator-".concat(index), "data-separator": '', className: cx(styles.separator(), separatorSizeClassName, (_a = {},
90
- _a[maskClassName] = segmentValue.includes(TIME_PLACEHOLDER_CHAR),
85
+ nodes.push(React.createElement("span", { key: "separator-".concat(index), "data-separator": '', className: cx(maskClassName, styles.separator(), separatorSizeClassName, (_a = {},
86
+ _a[styles.separatorFilled()] = !segmentValue.includes(TIME_PLACEHOLDER_CHAR),
91
87
  _a)) },
92
88
  React.createElement("span", { "aria-hidden": true, className: styles.separatorText() }, TIME_SEPARATOR)));
93
89
  }