@skbkontur/react-ui 6.4.7-b33c6.0 → 6.4.7

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 (915) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +0 -42
  3. package/components/Autocomplete/Autocomplete.d.ts +3 -0
  4. package/components/Autocomplete/Autocomplete.js +6 -4
  5. package/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/components/Autocomplete/Autocomplete.styles.d.ts +5 -0
  7. package/components/Autocomplete/Autocomplete.styles.js +18 -0
  8. package/components/Autocomplete/Autocomplete.styles.js.map +1 -0
  9. package/components/Autocomplete/getAutocompleteTheme.d.ts +2 -1
  10. package/components/Autocomplete/getAutocompleteTheme.js +2 -3
  11. package/components/Autocomplete/getAutocompleteTheme.js.map +1 -1
  12. package/components/Button/Button.classes.js +1 -1
  13. package/components/Button/Button.classes.js.map +1 -1
  14. package/components/Button/Button.d.ts +4 -0
  15. package/components/Button/Button.js +74 -73
  16. package/components/Button/Button.js.map +1 -1
  17. package/components/Button/Button.mixins.d.ts +4 -0
  18. package/components/Button/Button.mixins.js +21 -0
  19. package/components/Button/Button.mixins.js.map +1 -0
  20. package/components/Button/Button.styles.d.ts +95 -0
  21. package/components/Button/Button.styles.js +260 -0
  22. package/components/Button/Button.styles.js.map +1 -0
  23. package/components/Button/ButtonArrow.d.ts +4 -1
  24. package/components/Button/ButtonArrow.js +14 -10
  25. package/components/Button/ButtonArrow.js.map +1 -1
  26. package/components/Button/ButtonIcon.js +21 -9
  27. package/components/Button/ButtonIcon.js.map +1 -1
  28. package/components/Button/ButtonIcon.styles.d.ts +16 -0
  29. package/components/Button/ButtonIcon.styles.js +53 -0
  30. package/components/Button/ButtonIcon.styles.js.map +1 -0
  31. package/components/Button/LoadingButtonIcon.js +4 -2
  32. package/components/Button/LoadingButtonIcon.js.map +1 -1
  33. package/components/Button/getInnerLinkTheme.d.ts +2 -1
  34. package/components/Button/getInnerLinkTheme.js +2 -3
  35. package/components/Button/getInnerLinkTheme.js.map +1 -1
  36. package/components/Calendar/Calendar.d.ts +3 -0
  37. package/components/Calendar/Calendar.js +5 -5
  38. package/components/Calendar/Calendar.js.map +1 -1
  39. package/components/Calendar/Calendar.styles.d.ts +6 -0
  40. package/components/Calendar/Calendar.styles.js +22 -0
  41. package/components/Calendar/Calendar.styles.js.map +1 -0
  42. package/components/Calendar/CalendarDay.js +9 -7
  43. package/components/Calendar/CalendarDay.js.map +1 -1
  44. package/components/Calendar/DayCellView.js +6 -2
  45. package/components/Calendar/DayCellView.js.map +1 -1
  46. package/components/Calendar/DayCellView.styles.d.ts +9 -0
  47. package/components/Calendar/DayCellView.styles.js +31 -0
  48. package/components/Calendar/DayCellView.styles.js.map +1 -0
  49. package/components/Calendar/Month.js +25 -5
  50. package/components/Calendar/Month.js.map +1 -1
  51. package/components/Calendar/MonthView.js +10 -8
  52. package/components/Calendar/MonthView.js.map +1 -1
  53. package/components/Calendar/MonthView.styles.d.ts +13 -0
  54. package/components/Calendar/MonthView.styles.js +47 -0
  55. package/components/Calendar/MonthView.styles.js.map +1 -0
  56. package/components/Center/Center.d.ts +3 -0
  57. package/components/Center/Center.js +10 -8
  58. package/components/Center/Center.js.map +1 -1
  59. package/components/Center/Center.styles.d.ts +7 -0
  60. package/components/Center/Center.styles.js +27 -0
  61. package/components/Center/Center.styles.js.map +1 -0
  62. package/components/Checkbox/Checkbox.d.ts +3 -0
  63. package/components/Checkbox/Checkbox.js +33 -33
  64. package/components/Checkbox/Checkbox.js.map +1 -1
  65. package/components/Checkbox/Checkbox.mixins.d.ts +4 -19
  66. package/components/Checkbox/Checkbox.mixins.js +15 -16
  67. package/components/Checkbox/Checkbox.mixins.js.map +1 -1
  68. package/components/Checkbox/Checkbox.styles.d.ts +34 -0
  69. package/components/Checkbox/Checkbox.styles.js +100 -0
  70. package/components/Checkbox/Checkbox.styles.js.map +1 -0
  71. package/components/CurrencyInput/CurrencyInput.js +10 -0
  72. package/components/CurrencyInput/CurrencyInput.js.map +1 -1
  73. package/components/DateInput/DateFragmentsView.d.ts +5 -0
  74. package/components/DateInput/DateFragmentsView.js +17 -9
  75. package/components/DateInput/DateFragmentsView.js.map +1 -1
  76. package/components/DateInput/DateFragmentsView.styles.d.ts +7 -0
  77. package/components/DateInput/DateFragmentsView.styles.js +28 -0
  78. package/components/DateInput/DateFragmentsView.styles.js.map +1 -0
  79. package/components/DateInput/DateInput.d.ts +5 -0
  80. package/components/DateInput/DateInput.js +18 -9
  81. package/components/DateInput/DateInput.js.map +1 -1
  82. package/components/DateInput/DateInput.styles.d.ts +11 -0
  83. package/components/DateInput/DateInput.styles.js +29 -0
  84. package/components/DateInput/DateInput.styles.js.map +1 -0
  85. package/components/DatePicker/DatePicker.d.ts +2 -0
  86. package/components/DatePicker/DatePicker.js +7 -8
  87. package/components/DatePicker/DatePicker.js.map +1 -1
  88. package/components/DatePicker/DatePicker.styles.d.ts +5 -0
  89. package/components/DatePicker/DatePicker.styles.js +18 -0
  90. package/components/DatePicker/DatePicker.styles.js.map +1 -0
  91. package/components/DatePicker/MobilePicker.js +4 -2
  92. package/components/DatePicker/MobilePicker.js.map +1 -1
  93. package/components/DatePicker/MobilePicker.styles.d.ts +3 -0
  94. package/components/DatePicker/MobilePicker.styles.js +15 -0
  95. package/components/DatePicker/MobilePicker.styles.js.map +1 -0
  96. package/components/DatePicker/getMobilePickerTheme.d.ts +2 -1
  97. package/components/DatePicker/getMobilePickerTheme.js +2 -3
  98. package/components/DatePicker/getMobilePickerTheme.js.map +1 -1
  99. package/components/DateRangePicker/DateRangePicker.d.ts +12 -12
  100. package/components/DateRangePicker/DateRangePicker.js +38 -40
  101. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  102. package/components/DateRangePicker/DateRangePicker.styles.d.ts +16 -0
  103. package/components/DateRangePicker/DateRangePicker.styles.js +57 -0
  104. package/components/DateRangePicker/DateRangePicker.styles.js.map +1 -0
  105. package/components/DateRangePicker/DateRangePickerTheme.d.ts +3 -2
  106. package/components/DateRangePicker/DateRangePickerTheme.js +4 -5
  107. package/components/DateRangePicker/DateRangePickerTheme.js.map +1 -1
  108. package/components/Dropdown/getDropdownTheme.d.ts +2 -1
  109. package/components/Dropdown/getDropdownTheme.js +2 -3
  110. package/components/Dropdown/getDropdownTheme.js.map +1 -1
  111. package/components/DropdownMenu/getDropdownMenuTheme.d.ts +2 -1
  112. package/components/DropdownMenu/getDropdownMenuTheme.js +2 -3
  113. package/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
  114. package/components/FileUploader/FileUploader.js +46 -43
  115. package/components/FileUploader/FileUploader.js.map +1 -1
  116. package/components/FileUploader/FileUploader.mixins.d.ts +1 -6
  117. package/components/FileUploader/FileUploader.mixins.js +1 -6
  118. package/components/FileUploader/FileUploader.mixins.js.map +1 -1
  119. package/components/FileUploader/FileUploader.styles.d.ts +74 -0
  120. package/components/FileUploader/FileUploader.styles.js +221 -0
  121. package/components/FileUploader/FileUploader.styles.js.map +1 -0
  122. package/components/FileUploader/FileUploaderFile.js +40 -35
  123. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  124. package/components/FileUploader/FileUploaderFile.styles.d.ts +60 -0
  125. package/components/FileUploader/FileUploaderFile.styles.js +184 -0
  126. package/components/FileUploader/FileUploaderFile.styles.js.map +1 -0
  127. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js +28 -22
  128. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  129. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.d.ts +34 -0
  130. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js +103 -0
  131. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -0
  132. package/components/FileUploader/FileUploaderFileStatusIcon.js +8 -3
  133. package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -1
  134. package/components/GlobalLoader/GlobalLoaderView.js +19 -20
  135. package/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  136. package/components/GlobalLoader/GlobalLoaderView.styles.d.ts +17 -0
  137. package/components/GlobalLoader/GlobalLoaderView.styles.js +70 -0
  138. package/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -0
  139. package/components/Group/Group.d.ts +3 -0
  140. package/components/Group/Group.js +12 -10
  141. package/components/Group/Group.js.map +1 -1
  142. package/components/Group/Group.styles.d.ts +8 -0
  143. package/components/Group/Group.styles.js +30 -0
  144. package/components/Group/Group.styles.js.map +1 -0
  145. package/components/Hint/Hint.d.ts +3 -0
  146. package/components/Hint/Hint.js +10 -10
  147. package/components/Hint/Hint.js.map +1 -1
  148. package/components/Hint/Hint.styles.d.ts +5 -0
  149. package/components/Hint/Hint.styles.js +18 -0
  150. package/components/Hint/Hint.styles.js.map +1 -0
  151. package/components/Input/Input.d.ts +4 -0
  152. package/components/Input/Input.js +28 -20
  153. package/components/Input/Input.js.map +1 -1
  154. package/components/Input/Input.styles.d.ts +21 -0
  155. package/components/Input/Input.styles.js +68 -0
  156. package/components/Input/Input.styles.js.map +1 -0
  157. package/components/Input/InputLayout/InputLayout.js +4 -2
  158. package/components/Input/InputLayout/InputLayout.js.map +1 -1
  159. package/components/Input/InputLayout/InputLayout.styles.d.ts +18 -0
  160. package/components/Input/InputLayout/InputLayout.styles.js +59 -0
  161. package/components/Input/InputLayout/InputLayout.styles.js.map +1 -0
  162. package/components/Input/InputLayout/InputLayoutAside.js +4 -2
  163. package/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  164. package/components/Input/InputLayout/InputLayoutAsideCounter.js +11 -9
  165. package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -1
  166. package/components/Input/InputLayout/InputLayoutAsideIcon.js +5 -3
  167. package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  168. package/components/Input/InputLayout/InputLayoutAsideText.js +6 -4
  169. package/components/Input/InputLayout/InputLayoutAsideText.js.map +1 -1
  170. package/components/Kebab/Kebab.d.ts +3 -0
  171. package/components/Kebab/Kebab.js +6 -6
  172. package/components/Kebab/Kebab.js.map +1 -1
  173. package/components/Kebab/Kebab.styles.d.ts +11 -0
  174. package/components/Kebab/Kebab.styles.js +36 -0
  175. package/components/Kebab/Kebab.styles.js.map +1 -0
  176. package/components/Link/Link.d.ts +3 -0
  177. package/components/Link/Link.js +24 -25
  178. package/components/Link/Link.js.map +1 -1
  179. package/components/Link/Link.mixins.d.ts +2 -0
  180. package/components/Link/Link.mixins.js +7 -0
  181. package/components/Link/Link.mixins.js.map +1 -0
  182. package/components/Link/Link.styles.d.ts +24 -0
  183. package/components/Link/Link.styles.js +82 -0
  184. package/components/Link/Link.styles.js.map +1 -0
  185. package/components/Link/LinkIcon.js +8 -4
  186. package/components/Link/LinkIcon.js.map +1 -1
  187. package/components/Loader/Loader.d.ts +5 -0
  188. package/components/Loader/Loader.js +16 -8
  189. package/components/Loader/Loader.js.map +1 -1
  190. package/components/Loader/Loader.styles.d.ts +8 -0
  191. package/components/Loader/Loader.styles.js +27 -0
  192. package/components/Loader/Loader.styles.js.map +1 -0
  193. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +6 -4
  194. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  195. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.d.ts +6 -0
  196. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js +18 -0
  197. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js.map +1 -0
  198. package/components/MaskedInput/MaskedInput.styles.d.ts +7 -0
  199. package/components/MaskedInput/MaskedInput.styles.js +19 -0
  200. package/components/MaskedInput/MaskedInput.styles.js.map +1 -0
  201. package/components/MaskedInput/MaskedInputLegacy.js +8 -4
  202. package/components/MaskedInput/MaskedInputLegacy.js.map +1 -1
  203. package/components/MaskedInputV2/MaskedInputV2.js +8 -4
  204. package/components/MaskedInputV2/MaskedInputV2.js.map +1 -1
  205. package/components/MaskedInputV2/MaskedInputV2.styles.d.ts +7 -0
  206. package/components/MaskedInputV2/MaskedInputV2.styles.js +19 -0
  207. package/components/MaskedInputV2/MaskedInputV2.styles.js.map +1 -0
  208. package/components/MaskedInputV2/internal/MaskOverlay.js +13 -7
  209. package/components/MaskedInputV2/internal/MaskOverlay.js.map +1 -1
  210. package/components/MaskedInputV2/internal/MaskedCore.js +10 -6
  211. package/components/MaskedInputV2/internal/MaskedCore.js.map +1 -1
  212. package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +15 -0
  213. package/components/MaskedInputV2/internal/MaskedInternal.styles.js +34 -0
  214. package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +1 -0
  215. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.d.ts +1 -1
  216. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js +14 -6
  217. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js.map +1 -1
  218. package/components/MaskedInputV2/react-imask/input.d.ts +1 -1
  219. package/components/MenuFooter/MenuFooter.js +14 -10
  220. package/components/MenuFooter/MenuFooter.js.map +1 -1
  221. package/components/MenuFooter/MenuFooter.mixins.d.ts +2 -8
  222. package/components/MenuFooter/MenuFooter.mixins.js +4 -8
  223. package/components/MenuFooter/MenuFooter.mixins.js.map +1 -1
  224. package/components/MenuFooter/MenuFooter.styles.d.ts +10 -0
  225. package/components/MenuFooter/MenuFooter.styles.js +34 -0
  226. package/components/MenuFooter/MenuFooter.styles.js.map +1 -0
  227. package/components/MenuHeader/MenuHeader.js +13 -9
  228. package/components/MenuHeader/MenuHeader.js.map +1 -1
  229. package/components/MenuHeader/MenuHeader.mixins.d.ts +2 -8
  230. package/components/MenuHeader/MenuHeader.mixins.js +4 -8
  231. package/components/MenuHeader/MenuHeader.mixins.js.map +1 -1
  232. package/components/MenuHeader/MenuHeader.styles.d.ts +10 -0
  233. package/components/MenuHeader/MenuHeader.styles.js +34 -0
  234. package/components/MenuHeader/MenuHeader.styles.js.map +1 -0
  235. package/components/MenuItem/MenuItem.d.ts +3 -0
  236. package/components/MenuItem/MenuItem.js +30 -30
  237. package/components/MenuItem/MenuItem.js.map +1 -1
  238. package/components/MenuItem/MenuItem.mixins.d.ts +4 -12
  239. package/components/MenuItem/MenuItem.mixins.js +19 -12
  240. package/components/MenuItem/MenuItem.mixins.js.map +1 -1
  241. package/components/MenuItem/MenuItem.styles.d.ts +29 -0
  242. package/components/MenuItem/MenuItem.styles.js +88 -0
  243. package/components/MenuItem/MenuItem.styles.js.map +1 -0
  244. package/components/MenuSeparator/MenuSeparator.js +13 -7
  245. package/components/MenuSeparator/MenuSeparator.js.map +1 -1
  246. package/components/MenuSeparator/MenuSeparator.styles.d.ts +5 -0
  247. package/components/MenuSeparator/MenuSeparator.styles.js +18 -0
  248. package/components/MenuSeparator/MenuSeparator.styles.js.map +1 -0
  249. package/components/MiniModal/MiniModal.styles.d.ts +11 -0
  250. package/components/MiniModal/MiniModal.styles.js +37 -0
  251. package/components/MiniModal/MiniModal.styles.js.map +1 -0
  252. package/components/MiniModal/MiniModalBody.js +8 -2
  253. package/components/MiniModal/MiniModalBody.js.map +1 -1
  254. package/components/MiniModal/MiniModalFooter.js +8 -4
  255. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  256. package/components/MiniModal/MiniModalHeader.js +10 -6
  257. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  258. package/components/MiniModal/MiniModalIndent.js +7 -3
  259. package/components/MiniModal/MiniModalIndent.js.map +1 -1
  260. package/components/MiniModal/getMiniModalTheme.d.ts +2 -1
  261. package/components/MiniModal/getMiniModalTheme.js +2 -3
  262. package/components/MiniModal/getMiniModalTheme.js.map +1 -1
  263. package/components/Modal/Modal.d.ts +3 -0
  264. package/components/Modal/Modal.js +26 -26
  265. package/components/Modal/Modal.js.map +1 -1
  266. package/components/Modal/Modal.styles.d.ts +55 -0
  267. package/components/Modal/Modal.styles.js +167 -0
  268. package/components/Modal/Modal.styles.js.map +1 -0
  269. package/components/Modal/ModalBody.d.ts +3 -0
  270. package/components/Modal/ModalBody.js +12 -10
  271. package/components/Modal/ModalBody.js.map +1 -1
  272. package/components/Modal/ModalClose.js +19 -14
  273. package/components/Modal/ModalClose.js.map +1 -1
  274. package/components/Modal/ModalFooter.js +5 -3
  275. package/components/Modal/ModalFooter.js.map +1 -1
  276. package/components/Modal/ModalHeader.js +5 -3
  277. package/components/Modal/ModalHeader.js.map +1 -1
  278. package/components/Modal/ModalSeparator.js +9 -5
  279. package/components/Modal/ModalSeparator.js.map +1 -1
  280. package/components/Modal/getModalBodyTheme.d.ts +2 -1
  281. package/components/Modal/getModalBodyTheme.js +2 -3
  282. package/components/Modal/getModalBodyTheme.js.map +1 -1
  283. package/components/Modal/getModalTheme.d.ts +2 -1
  284. package/components/Modal/getModalTheme.js +2 -3
  285. package/components/Modal/getModalTheme.js.map +1 -1
  286. package/components/Paging/Paging.d.ts +4 -0
  287. package/components/Paging/Paging.js +44 -36
  288. package/components/Paging/Paging.js.map +1 -1
  289. package/components/Paging/Paging.styles.d.ts +32 -0
  290. package/components/Paging/Paging.styles.js +99 -0
  291. package/components/Paging/Paging.styles.js.map +1 -0
  292. package/components/PasswordInput/PasswordInput.d.ts +4 -0
  293. package/components/PasswordInput/PasswordInput.js +17 -10
  294. package/components/PasswordInput/PasswordInput.js.map +1 -1
  295. package/components/PasswordInput/PasswordInput.styles.d.ts +11 -0
  296. package/components/PasswordInput/PasswordInput.styles.js +36 -0
  297. package/components/PasswordInput/PasswordInput.styles.js.map +1 -0
  298. package/components/Radio/Radio.d.ts +4 -0
  299. package/components/Radio/Radio.js +38 -33
  300. package/components/Radio/Radio.js.map +1 -1
  301. package/components/Radio/Radio.mixins.d.ts +7 -39
  302. package/components/Radio/Radio.mixins.js +23 -37
  303. package/components/Radio/Radio.mixins.js.map +1 -1
  304. package/components/Radio/Radio.styles.d.ts +34 -0
  305. package/components/Radio/Radio.styles.js +100 -0
  306. package/components/Radio/Radio.styles.js.map +1 -0
  307. package/components/RadioGroup/RadioGroup.d.ts +3 -0
  308. package/components/RadioGroup/RadioGroup.js +10 -8
  309. package/components/RadioGroup/RadioGroup.js.map +1 -1
  310. package/components/RadioGroup/RadioGroup.styles.d.ts +6 -0
  311. package/components/RadioGroup/RadioGroup.styles.js +24 -0
  312. package/components/RadioGroup/RadioGroup.styles.js.map +1 -0
  313. package/components/ScrollContainer/ScrollBar.d.ts +6 -1
  314. package/components/ScrollContainer/ScrollBar.js +33 -25
  315. package/components/ScrollContainer/ScrollBar.js.map +1 -1
  316. package/components/ScrollContainer/ScrollContainer.d.ts +3 -0
  317. package/components/ScrollContainer/ScrollContainer.js +4 -4
  318. package/components/ScrollContainer/ScrollContainer.js.map +1 -1
  319. package/components/ScrollContainer/ScrollContainer.styles.d.ts +21 -0
  320. package/components/ScrollContainer/ScrollContainer.styles.js +52 -0
  321. package/components/ScrollContainer/ScrollContainer.styles.js.map +1 -0
  322. package/components/Select/Select.d.ts +4 -0
  323. package/components/Select/Select.js +24 -25
  324. package/components/Select/Select.js.map +1 -1
  325. package/components/Select/Select.styles.d.ts +18 -0
  326. package/components/Select/Select.styles.js +57 -0
  327. package/components/Select/Select.styles.js.map +1 -0
  328. package/components/Select/selectTheme.d.ts +3 -1
  329. package/components/Select/selectTheme.js +7 -8
  330. package/components/Select/selectTheme.js.map +1 -1
  331. package/components/SidePage/SidePage.d.ts +5 -0
  332. package/components/SidePage/SidePage.js +29 -21
  333. package/components/SidePage/SidePage.js.map +1 -1
  334. package/components/SidePage/SidePage.styles.d.ts +50 -0
  335. package/components/SidePage/SidePage.styles.js +158 -0
  336. package/components/SidePage/SidePage.styles.js.map +1 -0
  337. package/components/SidePage/SidePageBody.d.ts +3 -0
  338. package/components/SidePage/SidePageBody.js +11 -5
  339. package/components/SidePage/SidePageBody.js.map +1 -1
  340. package/components/SidePage/SidePageCloseButton.js +10 -7
  341. package/components/SidePage/SidePageCloseButton.js.map +1 -1
  342. package/components/SidePage/SidePageContainer.d.ts +4 -0
  343. package/components/SidePage/SidePageContainer.js +17 -10
  344. package/components/SidePage/SidePageContainer.js.map +1 -1
  345. package/components/SidePage/SidePageFooter.d.ts +6 -1
  346. package/components/SidePage/SidePageFooter.js +18 -10
  347. package/components/SidePage/SidePageFooter.js.map +1 -1
  348. package/components/SidePage/SidePageHeader.d.ts +3 -0
  349. package/components/SidePage/SidePageHeader.js +16 -14
  350. package/components/SidePage/SidePageHeader.js.map +1 -1
  351. package/components/Spinner/Spinner.d.ts +5 -0
  352. package/components/Spinner/Spinner.js +19 -9
  353. package/components/Spinner/Spinner.js.map +1 -1
  354. package/components/Spinner/Spinner.styles.d.ts +13 -0
  355. package/components/Spinner/Spinner.styles.js +43 -0
  356. package/components/Spinner/Spinner.styles.js.map +1 -0
  357. package/components/Sticky/Sticky.d.ts +4 -0
  358. package/components/Sticky/Sticky.js +10 -7
  359. package/components/Sticky/Sticky.js.map +1 -1
  360. package/components/Sticky/Sticky.styles.d.ts +7 -0
  361. package/components/Sticky/Sticky.styles.js +27 -0
  362. package/components/Sticky/Sticky.styles.js.map +1 -0
  363. package/components/Switcher/Switcher.d.ts +3 -0
  364. package/components/Switcher/Switcher.js +13 -11
  365. package/components/Switcher/Switcher.js.map +1 -1
  366. package/components/Switcher/Switcher.styles.d.ts +12 -0
  367. package/components/Switcher/Switcher.styles.js +39 -0
  368. package/components/Switcher/Switcher.styles.js.map +1 -0
  369. package/components/Switcher/switcherTheme.d.ts +2 -1
  370. package/components/Switcher/switcherTheme.js +2 -3
  371. package/components/Switcher/switcherTheme.js.map +1 -1
  372. package/components/Tabs/Indicator.d.ts +3 -0
  373. package/components/Tabs/Indicator.js +3 -3
  374. package/components/Tabs/Indicator.js.map +1 -1
  375. package/components/Tabs/Indicator.styles.d.ts +8 -0
  376. package/components/Tabs/Indicator.styles.js +27 -0
  377. package/components/Tabs/Indicator.styles.js.map +1 -0
  378. package/components/Tabs/Tab.d.ts +8 -1
  379. package/components/Tabs/Tab.js +33 -23
  380. package/components/Tabs/Tab.js.map +1 -1
  381. package/components/Tabs/Tab.styles.d.ts +33 -0
  382. package/components/Tabs/Tab.styles.js +105 -0
  383. package/components/Tabs/Tab.styles.js.map +1 -0
  384. package/components/Tabs/Tabs.d.ts +4 -0
  385. package/components/Tabs/Tabs.js +30 -25
  386. package/components/Tabs/Tabs.js.map +1 -1
  387. package/components/Tabs/Tabs.styles.d.ts +7 -0
  388. package/components/Tabs/Tabs.styles.js +26 -0
  389. package/components/Tabs/Tabs.styles.js.map +1 -0
  390. package/components/Textarea/Textarea.d.ts +4 -1
  391. package/components/Textarea/Textarea.js +19 -19
  392. package/components/Textarea/Textarea.js.map +1 -1
  393. package/components/Textarea/Textarea.mixins.d.ts +2 -8
  394. package/components/Textarea/Textarea.mixins.js +6 -8
  395. package/components/Textarea/Textarea.mixins.js.map +1 -1
  396. package/components/Textarea/Textarea.styles.d.ts +23 -0
  397. package/components/Textarea/Textarea.styles.js +73 -0
  398. package/components/Textarea/Textarea.styles.js.map +1 -0
  399. package/components/Textarea/TextareaCounter.js +9 -7
  400. package/components/Textarea/TextareaCounter.js.map +1 -1
  401. package/components/TimePicker/TimePicker.js +6 -4
  402. package/components/TimePicker/TimePicker.js.map +1 -1
  403. package/components/TimePicker/TimePicker.styles.d.ts +12 -0
  404. package/components/TimePicker/TimePicker.styles.js +39 -0
  405. package/components/TimePicker/TimePicker.styles.js.map +1 -0
  406. package/components/TimePicker/TimePickerItems.js +16 -12
  407. package/components/TimePicker/TimePickerItems.js.map +1 -1
  408. package/components/TimePicker/TimePickerPopup.js +4 -2
  409. package/components/TimePicker/TimePickerPopup.js.map +1 -1
  410. package/components/TimePicker/helpers/TimePicker.constants.d.ts +0 -1
  411. package/components/TimePicker/helpers/TimePicker.constants.js +0 -3
  412. package/components/TimePicker/helpers/TimePicker.constants.js.map +1 -1
  413. package/components/TimePicker/helpers/TimePicker.value.d.ts +1 -0
  414. package/components/TimePicker/helpers/TimePicker.value.js +5 -0
  415. package/components/TimePicker/helpers/TimePicker.value.js.map +1 -1
  416. package/components/Toast/Toast.d.ts +2 -0
  417. package/components/Toast/Toast.js +10 -7
  418. package/components/Toast/Toast.js.map +1 -1
  419. package/components/Toast/Toast.styles.d.ts +6 -0
  420. package/components/Toast/Toast.styles.js +24 -0
  421. package/components/Toast/Toast.styles.js.map +1 -0
  422. package/components/Toast/ToastView.d.ts +3 -0
  423. package/components/Toast/ToastView.js +11 -9
  424. package/components/Toast/ToastView.js.map +1 -1
  425. package/components/Toast/ToastView.styles.d.ts +18 -0
  426. package/components/Toast/ToastView.styles.js +67 -0
  427. package/components/Toast/ToastView.styles.js.map +1 -0
  428. package/components/Toggle/Toggle.classes.js +1 -1
  429. package/components/Toggle/Toggle.classes.js.map +1 -1
  430. package/components/Toggle/Toggle.d.ts +6 -1
  431. package/components/Toggle/Toggle.js +60 -52
  432. package/components/Toggle/Toggle.js.map +1 -1
  433. package/components/Toggle/Toggle.mixins.d.ts +8 -0
  434. package/components/Toggle/Toggle.mixins.js +32 -0
  435. package/components/Toggle/Toggle.mixins.js.map +1 -0
  436. package/components/Toggle/Toggle.styles.d.ts +49 -0
  437. package/components/Toggle/Toggle.styles.js +147 -0
  438. package/components/Toggle/Toggle.styles.js.map +1 -0
  439. package/components/Token/Token.d.ts +5 -0
  440. package/components/Token/Token.js +15 -4
  441. package/components/Token/Token.js.map +1 -1
  442. package/components/Token/Token.mixins.d.ts +1 -6
  443. package/components/Token/Token.mixins.js +3 -6
  444. package/components/Token/Token.mixins.js.map +1 -1
  445. package/components/Token/Token.styles.d.ts +23 -0
  446. package/components/Token/Token.styles.js +67 -0
  447. package/components/Token/Token.styles.js.map +1 -0
  448. package/components/Token/TokenView.js +12 -8
  449. package/components/Token/TokenView.js.map +1 -1
  450. package/components/TokenInput/TextWidthHelper.d.ts +3 -0
  451. package/components/TokenInput/TextWidthHelper.js +17 -7
  452. package/components/TokenInput/TextWidthHelper.js.map +1 -1
  453. package/components/TokenInput/TokenInput.d.ts +3 -0
  454. package/components/TokenInput/TokenInput.js +23 -22
  455. package/components/TokenInput/TokenInput.js.map +1 -1
  456. package/components/TokenInput/TokenInput.mixins.d.ts +2 -8
  457. package/components/TokenInput/TokenInput.mixins.js +6 -8
  458. package/components/TokenInput/TokenInput.mixins.js.map +1 -1
  459. package/components/TokenInput/TokenInput.styles.d.ts +22 -0
  460. package/components/TokenInput/TokenInput.styles.js +71 -0
  461. package/components/TokenInput/TokenInput.styles.js.map +1 -0
  462. package/components/TokenInput/TokenInputMenu.js +3 -5
  463. package/components/TokenInput/TokenInputMenu.js.map +1 -1
  464. package/components/Tooltip/Tooltip.d.ts +3 -0
  465. package/components/Tooltip/Tooltip.js +41 -28
  466. package/components/Tooltip/Tooltip.js.map +1 -1
  467. package/components/Tooltip/Tooltip.styles.d.ts +11 -0
  468. package/components/Tooltip/Tooltip.styles.js +36 -0
  469. package/components/Tooltip/Tooltip.styles.js.map +1 -0
  470. package/components/TooltipMenu/TooltipMenu.js +6 -10
  471. package/components/TooltipMenu/TooltipMenu.js.map +1 -1
  472. package/index.d.ts +0 -1
  473. package/index.js +0 -1
  474. package/index.js.map +1 -1
  475. package/internal/ClearCrossIcon/ClearCrossIcon.js +11 -8
  476. package/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  477. package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +12 -0
  478. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js +36 -0
  479. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -0
  480. package/internal/CloseButtonIcon/CloseButtonIcon.js +13 -15
  481. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  482. package/internal/CloseButtonIcon/CloseButtonIcon.styles.d.ts +8 -0
  483. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js +24 -0
  484. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -0
  485. package/internal/CommonWrapper/CommonWrapper.d.ts +2 -6
  486. package/internal/CommonWrapper/CommonWrapper.js +7 -29
  487. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  488. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -0
  489. package/internal/CustomComboBox/ComboBoxView.js +9 -6
  490. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  491. package/internal/CustomComboBox/CustomComboBox.styles.d.ts +4 -0
  492. package/internal/CustomComboBox/CustomComboBox.styles.js +18 -0
  493. package/internal/CustomComboBox/CustomComboBox.styles.js.map +1 -0
  494. package/internal/CustomComboBox/getComboBoxTheme.d.ts +2 -1
  495. package/internal/CustomComboBox/getComboBoxTheme.js +2 -3
  496. package/internal/CustomComboBox/getComboBoxTheme.js.map +1 -1
  497. package/internal/DateSelect/DateSelect.d.ts +3 -0
  498. package/internal/DateSelect/DateSelect.js +7 -5
  499. package/internal/DateSelect/DateSelect.js.map +1 -1
  500. package/internal/DateSelect/DateSelect.styles.d.ts +9 -0
  501. package/internal/DateSelect/DateSelect.styles.js +24 -0
  502. package/internal/DateSelect/DateSelect.styles.js.map +1 -0
  503. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +2 -1
  504. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +13 -8
  505. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  506. package/internal/InputLikeText/InputLikeText.d.ts +4 -0
  507. package/internal/InputLikeText/InputLikeText.js +29 -28
  508. package/internal/InputLikeText/InputLikeText.js.map +1 -1
  509. package/internal/InputLikeText/InputLikeText.styles.d.ts +8 -0
  510. package/internal/InputLikeText/InputLikeText.styles.js +30 -0
  511. package/internal/InputLikeText/InputLikeText.styles.js.map +1 -0
  512. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +5 -0
  513. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +33 -33
  514. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  515. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
  516. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +15 -0
  517. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +1 -0
  518. package/internal/MaskCharLowLine/MaskCharLowLine.js +4 -2
  519. package/internal/MaskCharLowLine/MaskCharLowLine.js.map +1 -1
  520. package/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +3 -0
  521. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js +15 -0
  522. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js.map +1 -0
  523. package/internal/Menu/Menu.d.ts +3 -0
  524. package/internal/Menu/Menu.js +24 -28
  525. package/internal/Menu/Menu.js.map +1 -1
  526. package/internal/Menu/Menu.styles.d.ts +16 -0
  527. package/internal/Menu/Menu.styles.js +51 -0
  528. package/internal/Menu/Menu.styles.js.map +1 -0
  529. package/internal/MenuMessage/MenuMessage.js +12 -10
  530. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  531. package/internal/MenuMessage/MenuMessage.styles.d.ts +11 -0
  532. package/internal/MenuMessage/MenuMessage.styles.js +41 -0
  533. package/internal/MenuMessage/MenuMessage.styles.js.map +1 -0
  534. package/internal/MobilePopup/MobilePopup.d.ts +3 -0
  535. package/internal/MobilePopup/MobilePopup.js +19 -17
  536. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  537. package/internal/MobilePopup/MobilePopup.styles.d.ts +17 -0
  538. package/internal/MobilePopup/MobilePopup.styles.js +57 -0
  539. package/internal/MobilePopup/MobilePopup.styles.js.map +1 -0
  540. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +2 -0
  541. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +16 -5
  542. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  543. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +7 -0
  544. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +25 -0
  545. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -0
  546. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +3 -0
  547. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +28 -18
  548. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  549. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +14 -0
  550. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +47 -0
  551. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -0
  552. package/internal/NativeDateInput/NativeDateInput.d.ts +2 -0
  553. package/internal/NativeDateInput/NativeDateInput.js +13 -2
  554. package/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  555. package/internal/NativeDateInput/NativeDateInput.styles.d.ts +3 -0
  556. package/internal/NativeDateInput/NativeDateInput.styles.js +15 -0
  557. package/internal/NativeDateInput/NativeDateInput.styles.js.map +1 -0
  558. package/internal/NativeTimeInput/NativeTimeInput.js +4 -2
  559. package/internal/NativeTimeInput/NativeTimeInput.js.map +1 -1
  560. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +3 -0
  561. package/internal/NativeTimeInput/NativeTimeInput.styles.js +15 -0
  562. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +1 -0
  563. package/internal/Popup/Popup.d.ts +3 -0
  564. package/internal/Popup/Popup.js +20 -22
  565. package/internal/Popup/Popup.js.map +1 -1
  566. package/internal/Popup/Popup.styles.d.ts +22 -0
  567. package/internal/Popup/Popup.styles.js +69 -0
  568. package/internal/Popup/Popup.styles.js.map +1 -0
  569. package/internal/Popup/PopupPin.d.ts +3 -0
  570. package/internal/Popup/PopupPin.js +8 -8
  571. package/internal/Popup/PopupPin.js.map +1 -1
  572. package/internal/Popup/PopupPin.styles.d.ts +9 -0
  573. package/internal/Popup/PopupPin.styles.js +33 -0
  574. package/internal/Popup/PopupPin.styles.js.map +1 -0
  575. package/internal/PopupMenu/PopupMenu.d.ts +2 -0
  576. package/internal/PopupMenu/PopupMenu.js +8 -9
  577. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  578. package/internal/PopupMenu/PopupMenu.styles.d.ts +4 -0
  579. package/internal/PopupMenu/PopupMenu.styles.js +18 -0
  580. package/internal/PopupMenu/PopupMenu.styles.js.map +1 -0
  581. package/internal/RenderContainer/RenderContainer.d.ts +0 -2
  582. package/internal/RenderContainer/RenderContainer.js +3 -38
  583. package/internal/RenderContainer/RenderContainer.js.map +1 -1
  584. package/internal/RenderContainer/RenderInnerContainer.js +3 -6
  585. package/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  586. package/internal/ResizeDetector/ResizeDetector.d.ts +3 -0
  587. package/internal/ResizeDetector/ResizeDetector.js +18 -8
  588. package/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  589. package/internal/ResizeDetector/ResizeDetector.styles.d.ts +7 -0
  590. package/internal/ResizeDetector/ResizeDetector.styles.js +27 -0
  591. package/internal/ResizeDetector/ResizeDetector.styles.js.map +1 -0
  592. package/internal/SpinnerIcon/SpinnerIcon.js +7 -5
  593. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  594. package/internal/SpinnerIcon/SpinnerIcon.styles.d.ts +6 -0
  595. package/internal/SpinnerIcon/SpinnerIcon.styles.js +24 -0
  596. package/internal/SpinnerIcon/SpinnerIcon.styles.js.map +1 -0
  597. package/internal/TextWidthHelper/TextWidthHelper.d.ts +2 -0
  598. package/internal/TextWidthHelper/TextWidthHelper.js +14 -3
  599. package/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  600. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +4 -0
  601. package/internal/TextWidthHelper/TextWidthHelper.styles.js +18 -0
  602. package/internal/TextWidthHelper/TextWidthHelper.styles.js.map +1 -0
  603. package/internal/TimeInput/TimeFragments.js +26 -22
  604. package/internal/TimeInput/TimeFragments.js.map +1 -1
  605. package/internal/TimeInput/TimeFragments.styles.d.ts +32 -0
  606. package/internal/TimeInput/TimeFragments.styles.js +78 -0
  607. package/internal/TimeInput/TimeFragments.styles.js.map +1 -0
  608. package/internal/TimeInput/TimeInput.js +8 -6
  609. package/internal/TimeInput/TimeInput.js.map +1 -1
  610. package/internal/TimeInput/TimeInput.styles.d.ts +7 -0
  611. package/internal/TimeInput/TimeInput.styles.js +24 -0
  612. package/internal/TimeInput/TimeInput.styles.js.map +1 -0
  613. package/internal/icons2022/BaseIcon.js +4 -2
  614. package/internal/icons2022/BaseIcon.js.map +1 -1
  615. package/internal/icons2022/BaseIcon.styles.d.ts +3 -0
  616. package/internal/icons2022/BaseIcon.styles.js +16 -0
  617. package/internal/icons2022/BaseIcon.styles.js.map +1 -0
  618. package/internal/icons2022/LoadingIcon.js +7 -3
  619. package/internal/icons2022/LoadingIcon.js.map +1 -1
  620. package/internal/themes/BasicTheme.d.ts +5 -5
  621. package/internal/themes/BasicTheme.js +12 -42
  622. package/internal/themes/BasicTheme.js.map +1 -1
  623. package/internal/themes/DarkTheme6_0.js +2 -0
  624. package/internal/themes/DarkTheme6_0.js.map +1 -1
  625. package/lib/Upgrades.d.ts +6 -0
  626. package/lib/Upgrades.js +34 -0
  627. package/lib/Upgrades.js.map +1 -0
  628. package/lib/renderEnvironment/RenderEnvironmentContext.d.ts +4 -0
  629. package/lib/renderEnvironment/RenderEnvironmentContext.js +16 -21
  630. package/lib/renderEnvironment/RenderEnvironmentContext.js.map +1 -1
  631. package/lib/renderEnvironment/RenderEnvironmentDecorator.js +3 -1
  632. package/lib/renderEnvironment/RenderEnvironmentDecorator.js.map +1 -1
  633. package/lib/styles/Mixins.d.ts +2 -0
  634. package/lib/styles/Mixins.js +7 -0
  635. package/lib/styles/Mixins.js.map +1 -0
  636. package/lib/styles/UiFont.d.ts +3 -0
  637. package/lib/styles/UiFont.js +18 -0
  638. package/lib/styles/UiFont.js.map +1 -0
  639. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -6
  640. package/lib/styles/getLabGrotesqueBaselineCompensation.js +6 -23
  641. package/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -1
  642. package/lib/theming/AnimationKeyframes.d.ts +7 -0
  643. package/lib/theming/AnimationKeyframes.js +24 -0
  644. package/lib/theming/AnimationKeyframes.js.map +1 -0
  645. package/lib/theming/Emotion.d.ts +15 -0
  646. package/lib/theming/Emotion.js +72 -0
  647. package/lib/theming/Emotion.js.map +1 -0
  648. package/lib/theming/ThemeFactory.d.ts +10 -1
  649. package/lib/theming/ThemeFactory.js +29 -1
  650. package/lib/theming/ThemeFactory.js.map +1 -1
  651. package/package.json +7 -22
  652. package/typings/stylis-plugin-extra-scope.d.ts +3 -0
  653. package/components/Autocomplete/Autocomplete.css.d.ts +0 -6
  654. package/components/Autocomplete/Autocomplete.css.js +0 -4
  655. package/components/Autocomplete/Autocomplete.css.js.map +0 -1
  656. package/components/Button/Button.css.d.ts +0 -166
  657. package/components/Button/Button.css.js +0 -77
  658. package/components/Button/Button.css.js.map +0 -1
  659. package/components/Button/ButtonIcon.css.d.ts +0 -28
  660. package/components/Button/ButtonIcon.css.js +0 -15
  661. package/components/Button/ButtonIcon.css.js.map +0 -1
  662. package/components/Calendar/Calendar.css.d.ts +0 -8
  663. package/components/Calendar/Calendar.css.js +0 -5
  664. package/components/Calendar/Calendar.css.js.map +0 -1
  665. package/components/Calendar/DayCellView.css.d.ts +0 -14
  666. package/components/Calendar/DayCellView.css.js +0 -8
  667. package/components/Calendar/DayCellView.css.js.map +0 -1
  668. package/components/Calendar/MonthView.css.d.ts +0 -20
  669. package/components/Calendar/MonthView.css.js +0 -11
  670. package/components/Calendar/MonthView.css.js.map +0 -1
  671. package/components/Center/Center.css.d.ts +0 -12
  672. package/components/Center/Center.css.js +0 -7
  673. package/components/Center/Center.css.js.map +0 -1
  674. package/components/Checkbox/Checkbox.css.d.ts +0 -62
  675. package/components/Checkbox/Checkbox.css.js +0 -32
  676. package/components/Checkbox/Checkbox.css.js.map +0 -1
  677. package/components/DateInput/DateFragmentsView.css.d.ts +0 -10
  678. package/components/DateInput/DateFragmentsView.css.js +0 -6
  679. package/components/DateInput/DateFragmentsView.css.js.map +0 -1
  680. package/components/DateInput/DateInput.css.d.ts +0 -16
  681. package/components/DateInput/DateInput.css.js +0 -9
  682. package/components/DateInput/DateInput.css.js.map +0 -1
  683. package/components/DatePicker/DatePicker.css.d.ts +0 -6
  684. package/components/DatePicker/DatePicker.css.js +0 -4
  685. package/components/DatePicker/DatePicker.css.js.map +0 -1
  686. package/components/DatePicker/MobilePicker.css.d.ts +0 -4
  687. package/components/DatePicker/MobilePicker.css.js +0 -3
  688. package/components/DatePicker/MobilePicker.css.js.map +0 -1
  689. package/components/DateRangePicker/DateRangePicker.css.d.ts +0 -34
  690. package/components/DateRangePicker/DateRangePicker.css.js +0 -18
  691. package/components/DateRangePicker/DateRangePicker.css.js.map +0 -1
  692. package/components/FileUploader/FileUploader.css.d.ts +0 -133
  693. package/components/FileUploader/FileUploader.css.js +0 -65
  694. package/components/FileUploader/FileUploader.css.js.map +0 -1
  695. package/components/FileUploader/FileUploaderFile.css.d.ts +0 -111
  696. package/components/FileUploader/FileUploaderFile.css.js +0 -56
  697. package/components/FileUploader/FileUploaderFile.css.js.map +0 -1
  698. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.d.ts +0 -60
  699. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js +0 -31
  700. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js.map +0 -1
  701. package/components/GlobalLoader/GlobalLoaderView.css.d.ts +0 -26
  702. package/components/GlobalLoader/GlobalLoaderView.css.js +0 -14
  703. package/components/GlobalLoader/GlobalLoaderView.css.js.map +0 -1
  704. package/components/Group/Group.css.d.ts +0 -14
  705. package/components/Group/Group.css.js +0 -8
  706. package/components/Group/Group.css.js.map +0 -1
  707. package/components/Hint/Hint.css.d.ts +0 -6
  708. package/components/Hint/Hint.css.js +0 -4
  709. package/components/Hint/Hint.css.js.map +0 -1
  710. package/components/Input/Input.css.d.ts +0 -73
  711. package/components/Input/Input.css.js +0 -22
  712. package/components/Input/Input.css.js.map +0 -1
  713. package/components/Input/InputLayout/InputLayout.css.d.ts +0 -32
  714. package/components/Input/InputLayout/InputLayout.css.js +0 -18
  715. package/components/Input/InputLayout/InputLayout.css.js.map +0 -1
  716. package/components/Kebab/Kebab.css.d.ts +0 -18
  717. package/components/Kebab/Kebab.css.js +0 -10
  718. package/components/Kebab/Kebab.css.js.map +0 -1
  719. package/components/Link/Link.css.d.ts +0 -43
  720. package/components/Link/Link.css.js +0 -22
  721. package/components/Link/Link.css.js.map +0 -1
  722. package/components/Loader/Loader.css.d.ts +0 -12
  723. package/components/Loader/Loader.css.js +0 -7
  724. package/components/Loader/Loader.css.js.map +0 -1
  725. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.d.ts +0 -7
  726. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js +0 -4
  727. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js.map +0 -1
  728. package/components/MaskedInput/MaskedInput.css.d.ts +0 -7
  729. package/components/MaskedInput/MaskedInput.css.js +0 -5
  730. package/components/MaskedInput/MaskedInput.css.js.map +0 -1
  731. package/components/MaskedInputV2/MaskedInputV2.css.d.ts +0 -7
  732. package/components/MaskedInputV2/MaskedInputV2.css.js +0 -5
  733. package/components/MaskedInputV2/MaskedInputV2.css.js.map +0 -1
  734. package/components/MaskedInputV2/internal/MaskedInternal.css.d.ts +0 -19
  735. package/components/MaskedInputV2/internal/MaskedInternal.css.js +0 -8
  736. package/components/MaskedInputV2/internal/MaskedInternal.css.js.map +0 -1
  737. package/components/MenuFooter/MenuFooter.css.d.ts +0 -16
  738. package/components/MenuFooter/MenuFooter.css.js +0 -9
  739. package/components/MenuFooter/MenuFooter.css.js.map +0 -1
  740. package/components/MenuHeader/MenuHeader.css.d.ts +0 -16
  741. package/components/MenuHeader/MenuHeader.css.js +0 -9
  742. package/components/MenuHeader/MenuHeader.css.js.map +0 -1
  743. package/components/MenuItem/MenuItem.css.d.ts +0 -50
  744. package/components/MenuItem/MenuItem.css.js +0 -26
  745. package/components/MenuItem/MenuItem.css.js.map +0 -1
  746. package/components/MenuSeparator/MenuSeparator.css.d.ts +0 -6
  747. package/components/MenuSeparator/MenuSeparator.css.js +0 -4
  748. package/components/MenuSeparator/MenuSeparator.css.js.map +0 -1
  749. package/components/MiniModal/MiniModal.css.d.ts +0 -17
  750. package/components/MiniModal/MiniModal.css.js +0 -10
  751. package/components/MiniModal/MiniModal.css.js.map +0 -1
  752. package/components/Modal/Modal.css.d.ts +0 -102
  753. package/components/Modal/Modal.css.js +0 -51
  754. package/components/Modal/Modal.css.js.map +0 -1
  755. package/components/Paging/Paging.css.d.ts +0 -60
  756. package/components/Paging/Paging.css.js +0 -31
  757. package/components/Paging/Paging.css.js.map +0 -1
  758. package/components/PasswordInput/PasswordInput.css.d.ts +0 -18
  759. package/components/PasswordInput/PasswordInput.css.js +0 -10
  760. package/components/PasswordInput/PasswordInput.css.js.map +0 -1
  761. package/components/Radio/Radio.css.d.ts +0 -61
  762. package/components/Radio/Radio.css.js +0 -31
  763. package/components/Radio/Radio.css.js.map +0 -1
  764. package/components/RadioGroup/RadioGroup.css.d.ts +0 -10
  765. package/components/RadioGroup/RadioGroup.css.js +0 -6
  766. package/components/RadioGroup/RadioGroup.css.js.map +0 -1
  767. package/components/ScrollContainer/ScrollContainer.css.d.ts +0 -31
  768. package/components/ScrollContainer/ScrollContainer.css.js +0 -14
  769. package/components/ScrollContainer/ScrollContainer.css.js.map +0 -1
  770. package/components/Select/Select.css.d.ts +0 -31
  771. package/components/Select/Select.css.js +0 -16
  772. package/components/Select/Select.css.js.map +0 -1
  773. package/components/SidePage/SidePage.css.d.ts +0 -96
  774. package/components/SidePage/SidePage.css.js +0 -49
  775. package/components/SidePage/SidePage.css.js.map +0 -1
  776. package/components/Spinner/Spinner.css.d.ts +0 -22
  777. package/components/Spinner/Spinner.css.js +0 -12
  778. package/components/Spinner/Spinner.css.js.map +0 -1
  779. package/components/Sticky/Sticky.css.d.ts +0 -12
  780. package/components/Sticky/Sticky.css.js +0 -7
  781. package/components/Sticky/Sticky.css.js.map +0 -1
  782. package/components/Switcher/Switcher.css.d.ts +0 -20
  783. package/components/Switcher/Switcher.css.js +0 -11
  784. package/components/Switcher/Switcher.css.js.map +0 -1
  785. package/components/Tabs/Indicator.css.d.ts +0 -12
  786. package/components/Tabs/Indicator.css.js +0 -7
  787. package/components/Tabs/Indicator.css.js.map +0 -1
  788. package/components/Tabs/Tab.css.d.ts +0 -55
  789. package/components/Tabs/Tab.css.js +0 -28
  790. package/components/Tabs/Tab.css.js.map +0 -1
  791. package/components/Tabs/Tabs.css.d.ts +0 -10
  792. package/components/Tabs/Tabs.css.js +0 -6
  793. package/components/Tabs/Tabs.css.js.map +0 -1
  794. package/components/Textarea/Textarea.css.d.ts +0 -42
  795. package/components/Textarea/Textarea.css.js +0 -22
  796. package/components/Textarea/Textarea.css.js.map +0 -1
  797. package/components/ThemeContainer/ThemeContainer.d.ts +0 -16
  798. package/components/ThemeContainer/ThemeContainer.js +0 -46
  799. package/components/ThemeContainer/ThemeContainer.js.map +0 -1
  800. package/components/ThemeContainer/index.d.ts +0 -1
  801. package/components/ThemeContainer/index.js +0 -2
  802. package/components/ThemeContainer/index.js.map +0 -1
  803. package/components/TimePicker/TimePicker.css.d.ts +0 -19
  804. package/components/TimePicker/TimePicker.css.js +0 -10
  805. package/components/TimePicker/TimePicker.css.js.map +0 -1
  806. package/components/Toast/Toast.css.d.ts +0 -10
  807. package/components/Toast/Toast.css.js +0 -6
  808. package/components/Toast/Toast.css.js.map +0 -1
  809. package/components/Toast/ToastView.css.d.ts +0 -31
  810. package/components/Toast/ToastView.css.js +0 -16
  811. package/components/Toast/ToastView.css.js.map +0 -1
  812. package/components/Toggle/Toggle.css.d.ts +0 -93
  813. package/components/Toggle/Toggle.css.js +0 -48
  814. package/components/Toggle/Toggle.css.js.map +0 -1
  815. package/components/Token/Token.css.d.ts +0 -39
  816. package/components/Token/Token.css.js +0 -20
  817. package/components/Token/Token.css.js.map +0 -1
  818. package/components/TokenInput/TokenInput.css.d.ts +0 -40
  819. package/components/TokenInput/TokenInput.css.js +0 -22
  820. package/components/TokenInput/TokenInput.css.js.map +0 -1
  821. package/components/Tooltip/Tooltip.css.d.ts +0 -18
  822. package/components/Tooltip/Tooltip.css.js +0 -10
  823. package/components/Tooltip/Tooltip.css.js.map +0 -1
  824. package/internal/ClearCrossIcon/ClearCrossIcon.css.d.ts +0 -18
  825. package/internal/ClearCrossIcon/ClearCrossIcon.css.js +0 -10
  826. package/internal/ClearCrossIcon/ClearCrossIcon.css.js.map +0 -1
  827. package/internal/CloseButtonIcon/CloseButtonIcon.css.d.ts +0 -14
  828. package/internal/CloseButtonIcon/CloseButtonIcon.css.js +0 -8
  829. package/internal/CloseButtonIcon/CloseButtonIcon.css.js.map +0 -1
  830. package/internal/CustomComboBox/CustomComboBox.css.d.ts +0 -6
  831. package/internal/CustomComboBox/CustomComboBox.css.js +0 -4
  832. package/internal/CustomComboBox/CustomComboBox.css.js.map +0 -1
  833. package/internal/DateSelect/DateSelect.css.d.ts +0 -11
  834. package/internal/DateSelect/DateSelect.css.js +0 -6
  835. package/internal/DateSelect/DateSelect.css.js.map +0 -1
  836. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.d.ts +0 -4
  837. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js +0 -3
  838. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js.map +0 -1
  839. package/internal/InputLikeText/InputLikeText.css.d.ts +0 -8
  840. package/internal/InputLikeText/InputLikeText.css.js +0 -5
  841. package/internal/InputLikeText/InputLikeText.css.js.map +0 -1
  842. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.d.ts +0 -6
  843. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js +0 -5
  844. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js.map +0 -1
  845. package/internal/MaskCharLowLine/MaskCharLowLine.css.d.ts +0 -4
  846. package/internal/MaskCharLowLine/MaskCharLowLine.css.js +0 -3
  847. package/internal/MaskCharLowLine/MaskCharLowLine.css.js.map +0 -1
  848. package/internal/Menu/Menu.css.d.ts +0 -28
  849. package/internal/Menu/Menu.css.js +0 -15
  850. package/internal/Menu/Menu.css.js.map +0 -1
  851. package/internal/MenuMessage/MenuMessage.css.d.ts +0 -18
  852. package/internal/MenuMessage/MenuMessage.css.js +0 -10
  853. package/internal/MenuMessage/MenuMessage.css.js.map +0 -1
  854. package/internal/MobilePopup/MobilePopup.css.d.ts +0 -30
  855. package/internal/MobilePopup/MobilePopup.css.js +0 -16
  856. package/internal/MobilePopup/MobilePopup.css.js.map +0 -1
  857. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.d.ts +0 -10
  858. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js +0 -6
  859. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js.map +0 -1
  860. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.d.ts +0 -24
  861. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js +0 -13
  862. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js.map +0 -1
  863. package/internal/NativeDateInput/NativeDateInput.css.d.ts +0 -4
  864. package/internal/NativeDateInput/NativeDateInput.css.js +0 -3
  865. package/internal/NativeDateInput/NativeDateInput.css.js.map +0 -1
  866. package/internal/NativeTimeInput/NativeTimeInput.css.d.ts +0 -4
  867. package/internal/NativeTimeInput/NativeTimeInput.css.js +0 -3
  868. package/internal/NativeTimeInput/NativeTimeInput.css.js.map +0 -1
  869. package/internal/Popup/Popup.css.d.ts +0 -35
  870. package/internal/Popup/Popup.css.js +0 -16
  871. package/internal/Popup/Popup.css.js.map +0 -1
  872. package/internal/Popup/PopupPin.css.d.ts +0 -16
  873. package/internal/Popup/PopupPin.css.js +0 -9
  874. package/internal/Popup/PopupPin.css.js.map +0 -1
  875. package/internal/PopupMenu/PopupMenu.css.d.ts +0 -6
  876. package/internal/PopupMenu/PopupMenu.css.js +0 -4
  877. package/internal/PopupMenu/PopupMenu.css.js.map +0 -1
  878. package/internal/ResizeDetector/ResizeDetector.css.d.ts +0 -12
  879. package/internal/ResizeDetector/ResizeDetector.css.js +0 -7
  880. package/internal/ResizeDetector/ResizeDetector.css.js.map +0 -1
  881. package/internal/SpinnerIcon/SpinnerIcon.css.d.ts +0 -10
  882. package/internal/SpinnerIcon/SpinnerIcon.css.js +0 -6
  883. package/internal/SpinnerIcon/SpinnerIcon.css.js.map +0 -1
  884. package/internal/TextWidthHelper/TextWidthHelper.css.d.ts +0 -6
  885. package/internal/TextWidthHelper/TextWidthHelper.css.js +0 -4
  886. package/internal/TextWidthHelper/TextWidthHelper.css.js.map +0 -1
  887. package/internal/TimeInput/TimeFragments.css.d.ts +0 -47
  888. package/internal/TimeInput/TimeFragments.css.js +0 -18
  889. package/internal/TimeInput/TimeFragments.css.js.map +0 -1
  890. package/internal/TimeInput/TimeInput.css.d.ts +0 -10
  891. package/internal/TimeInput/TimeInput.css.js +0 -6
  892. package/internal/TimeInput/TimeInput.css.js.map +0 -1
  893. package/internal/icons2022/BaseIcon.css.d.ts +0 -4
  894. package/internal/icons2022/BaseIcon.css.js +0 -3
  895. package/internal/icons2022/BaseIcon.css.js.map +0 -1
  896. package/lib/cx.d.ts +0 -2
  897. package/lib/cx.js +0 -23
  898. package/lib/cx.js.map +0 -1
  899. package/lib/prefix.d.ts +0 -2
  900. package/lib/prefix.js +0 -22
  901. package/lib/prefix.js.map +0 -1
  902. package/lib/styles/LabGrotesqueBaseline.css.d.ts +0 -1
  903. package/lib/styles/LabGrotesqueBaseline.css.js +0 -0
  904. package/lib/styles/LabGrotesqueBaseline.css.js.map +0 -1
  905. package/lib/styles/UiFont.css.d.ts +0 -1
  906. package/lib/styles/UiFont.css.js +0 -2
  907. package/lib/styles/UiFont.css.js.map +0 -1
  908. package/lib/theming/memoizeTheme.d.ts +0 -11
  909. package/lib/theming/memoizeTheme.js +0 -37
  910. package/lib/theming/memoizeTheme.js.map +0 -1
  911. package/lib/theming/themeVars.d.ts +0 -37
  912. package/lib/theming/themeVars.js +0 -121
  913. package/lib/theming/themeVars.js.map +0 -1
  914. package/react-ui.css +0 -6096
  915. package/theme-loader.js +0 -51
@@ -1 +1 @@
1
- {"version":3,"file":"TimePickerItems.js","sourceRoot":"","sources":["TimePickerItems.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Menu } from '../../internal/Menu/index.js';\nimport { MenuMessage } from '../../internal/MenuMessage/index.js';\nimport { cx } from '../../lib/cx.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isMenuFooter } from '../MenuFooter/index.js';\nimport { isMenuHeader } from '../MenuHeader/index.js';\nimport { isMenuItem, MenuItem, type MenuItemProps, type MenuItemState } from '../MenuItem/index.js';\nimport { Spinner } from '../Spinner/index.js';\nimport { TimePickerDataTids } from './helpers/TimePicker.constants.js';\nimport {\n isNavigableMenuElement,\n isTimeMenuItem,\n type TimeItemValue,\n type TimePickerMenuItem,\n} from './helpers/TimePicker.shared.js';\nimport { styles } from './TimePicker.css.js';\n\nconst getItemLabelSizeClassName = (size: SizeProp): string => {\n switch (size) {\n case 'large':\n return styles.itemLabelLarge;\n case 'medium':\n return styles.itemLabelMedium;\n case 'small':\n default:\n return styles.itemLabelSmall;\n }\n};\n\nconst ItemRoot = React.forwardRef<\n HTMLElement,\n React.HTMLAttributes<HTMLElement> & { disabled?: boolean; state?: MenuItemState }\n>(({ disabled = false, state: _state, ...props }, ref) => {\n if (disabled) {\n return <div {...props} ref={ref as React.Ref<HTMLDivElement>} />;\n }\n\n return <button {...props} ref={ref as React.Ref<HTMLButtonElement>} type={'button'} />;\n});\n\ninterface TimePickerItemsProps<T extends TimeItemValue> {\n itemIdPrefix?: string;\n size: SizeProp;\n resolvedItems: Array<TimePickerMenuItem<T>>;\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode;\n highlightedItemIndex: number | null;\n selectedValue: string;\n itemRefs?: React.RefObject<Map<number, HTMLSpanElement>>;\n maxHeight?: React.CSSProperties['maxHeight'];\n disableScrollContainer?: boolean;\n isLoading?: boolean;\n isFailed: boolean;\n errorNetworkButton: string;\n errorNetworkMessage: string;\n onRetry(): void;\n onSelectItem(item: T): void;\n}\n\nexport const TimePickerItems = <T extends TimeItemValue>(props: TimePickerItemsProps<T>) => {\n const {\n itemIdPrefix,\n size,\n resolvedItems,\n renderItem,\n highlightedItemIndex,\n selectedValue,\n itemRefs,\n maxHeight,\n disableScrollContainer,\n isLoading,\n isFailed,\n errorNetworkButton,\n errorNetworkMessage,\n onRetry,\n onSelectItem,\n } = props;\n\n const itemLabelSizeClassName = getItemLabelSizeClassName(size);\n\n if (isFailed) {\n return (\n <Menu\n hasMargin={false}\n width={'100%'}\n maxHeight={maxHeight}\n disableScrollContainer={disableScrollContainer}\n data-tid={TimePickerDataTids.failed}\n >\n <MenuMessage size={size} as={'div'}>\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuMessage>\n <MenuItem onClick={onRetry} size={size} isMobile={disableScrollContainer}>\n {errorNetworkButton}\n </MenuItem>\n </Menu>\n );\n }\n\n if (isLoading && resolvedItems.length === 0) {\n return (\n <Menu\n hasMargin={false}\n width={'100%'}\n maxHeight={maxHeight}\n disableScrollContainer={disableScrollContainer}\n data-tid={TimePickerDataTids.loading}\n >\n <MenuMessage size={size} as={'div'}>\n <Spinner size={'small'} dimmed />\n </MenuMessage>\n </Menu>\n );\n }\n\n return (\n <Menu hasMargin={false} width={'100%'} maxHeight={maxHeight} disableScrollContainer={disableScrollContainer}>\n {resolvedItems.map((resolvedItem, index) => {\n if (!isTimeMenuItem(resolvedItem)) {\n const element = typeof resolvedItem === 'function' ? resolvedItem() : resolvedItem;\n const key = element.key ?? index;\n\n if (isMenuItem(element)) {\n const menuItemProps = element.props as MenuItemProps;\n // Навигация смотрит на исходный элемент источника, поэтому пункт-функция в нее не попадает:\n // выглядеть как доступная опция он не должен.\n const isNavigable = isNavigableMenuElement(resolvedItem);\n const isHighlighted = isNavigable && highlightedItemIndex === index;\n\n return React.cloneElement(element, {\n key,\n isMobile: disableScrollContainer,\n size,\n id: menuItemProps.id ?? (isNavigable && itemIdPrefix ? `${itemIdPrefix}-item-${index}` : undefined),\n role: menuItemProps.role ?? 'option',\n 'aria-selected': menuItemProps['aria-selected'] ?? false,\n 'aria-disabled': menuItemProps['aria-disabled'] ?? (isNavigable ? undefined : true),\n ...(isHighlighted ? { state: 'hover' } : null),\n } as MenuItemProps);\n }\n\n if (isMenuHeader(element) || isMenuFooter(element)) {\n return React.cloneElement(element, { key, size });\n }\n\n return React.cloneElement(element, { key });\n }\n\n let state: 'hover' | 'selected' | undefined;\n\n if (highlightedItemIndex === index) {\n state = 'hover';\n } else if (resolvedItem.value === selectedValue) {\n state = 'selected';\n }\n\n return (\n <MenuItem\n key={`${resolvedItem.value}-${index}`}\n id={itemIdPrefix ? `${itemIdPrefix}-item-${index}` : undefined}\n role={'option'}\n aria-selected={resolvedItem.value === selectedValue}\n aria-disabled={resolvedItem.disabled || undefined}\n component={ItemRoot}\n disabled={resolvedItem.disabled}\n isNotSelectable={resolvedItem.disabled}\n size={size}\n state={state}\n onClick={resolvedItem.disabled ? undefined : () => onSelectItem(resolvedItem.item)}\n >\n {(activeState) => (\n <span\n data-tid={TimePickerDataTids.item}\n className={styles.item}\n ref={(node) => {\n if (!itemRefs) {\n return;\n }\n\n if (node) {\n itemRefs.current.set(index, node);\n } else {\n itemRefs.current.delete(index);\n }\n }}\n >\n {renderItem ? (\n renderItem(resolvedItem.item, activeState ?? null)\n ) : (\n <>\n <span className={styles.itemValue}>{resolvedItem.value}</span>\n {resolvedItem.label && (\n <span\n className={cx(styles.itemLabel, itemLabelSizeClassName, {\n [styles.itemLabelColor]: !resolvedItem.disabled,\n })}\n >\n {resolvedItem.label}\n </span>\n )}\n </>\n )}\n </span>\n )}\n </MenuItem>\n );\n })}\n </Menu>\n );\n};\n"]}
1
+ {"version":3,"file":"TimePickerItems.js","sourceRoot":"","sources":["TimePickerItems.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\n\nimport { Menu } from '../../internal/Menu/index.js';\nimport { MenuMessage } from '../../internal/MenuMessage/index.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isMenuFooter } from '../MenuFooter/index.js';\nimport { isMenuHeader } from '../MenuHeader/index.js';\nimport { isMenuItem, MenuItem, type MenuItemProps, type MenuItemState } from '../MenuItem/index.js';\nimport { Spinner } from '../Spinner/index.js';\nimport { TimePickerDataTids } from './helpers/TimePicker.constants.js';\nimport {\n isNavigableMenuElement,\n isTimeMenuItem,\n type TimeItemValue,\n type TimePickerMenuItem,\n} from './helpers/TimePicker.shared.js';\nimport { getStyles } from './TimePicker.styles.js';\n\nconst getItemLabelSizeClassName = (styles: ReturnType<typeof getStyles>, theme: Theme, size: SizeProp): string => {\n switch (size) {\n case 'large':\n return styles.itemLabelLarge(theme);\n case 'medium':\n return styles.itemLabelMedium(theme);\n case 'small':\n default:\n return styles.itemLabelSmall(theme);\n }\n};\n\nconst ItemRoot = React.forwardRef<\n HTMLElement,\n React.HTMLAttributes<HTMLElement> & { disabled?: boolean; state?: MenuItemState }\n>(({ disabled = false, state: _state, ...props }, ref) => {\n if (disabled) {\n return <div {...props} ref={ref as React.Ref<HTMLDivElement>} />;\n }\n\n return <button {...props} ref={ref as React.Ref<HTMLButtonElement>} type={'button'} />;\n});\n\ninterface TimePickerItemsProps<T extends TimeItemValue> {\n itemIdPrefix?: string;\n size: SizeProp;\n resolvedItems: Array<TimePickerMenuItem<T>>;\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode;\n highlightedItemIndex: number | null;\n selectedValue: string;\n itemRefs?: React.RefObject<Map<number, HTMLSpanElement>>;\n maxHeight?: React.CSSProperties['maxHeight'];\n disableScrollContainer?: boolean;\n isLoading?: boolean;\n isFailed: boolean;\n errorNetworkButton: string;\n errorNetworkMessage: string;\n onRetry(): void;\n onSelectItem(item: T): void;\n}\n\nexport const TimePickerItems = <T extends TimeItemValue>(props: TimePickerItemsProps<T>) => {\n const {\n itemIdPrefix,\n size,\n resolvedItems,\n renderItem,\n highlightedItemIndex,\n selectedValue,\n itemRefs,\n maxHeight,\n disableScrollContainer,\n isLoading,\n isFailed,\n errorNetworkButton,\n errorNetworkMessage,\n onRetry,\n onSelectItem,\n } = props;\n\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n const itemLabelSizeClassName = getItemLabelSizeClassName(styles, theme, size);\n\n if (isFailed) {\n return (\n <Menu\n hasMargin={false}\n width={'100%'}\n maxHeight={maxHeight}\n disableScrollContainer={disableScrollContainer}\n data-tid={TimePickerDataTids.failed}\n >\n <MenuMessage size={size} as={'div'}>\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuMessage>\n <MenuItem onClick={onRetry} size={size} isMobile={disableScrollContainer}>\n {errorNetworkButton}\n </MenuItem>\n </Menu>\n );\n }\n\n if (isLoading && resolvedItems.length === 0) {\n return (\n <Menu\n hasMargin={false}\n width={'100%'}\n maxHeight={maxHeight}\n disableScrollContainer={disableScrollContainer}\n data-tid={TimePickerDataTids.loading}\n >\n <MenuMessage size={size} as={'div'}>\n <Spinner size={'small'} dimmed />\n </MenuMessage>\n </Menu>\n );\n }\n\n return (\n <Menu hasMargin={false} width={'100%'} maxHeight={maxHeight} disableScrollContainer={disableScrollContainer}>\n {resolvedItems.map((resolvedItem, index) => {\n if (!isTimeMenuItem(resolvedItem)) {\n const element = typeof resolvedItem === 'function' ? resolvedItem() : resolvedItem;\n const key = element.key ?? index;\n\n if (isMenuItem(element)) {\n const menuItemProps = element.props as MenuItemProps;\n // Навигация смотрит на исходный элемент источника, поэтому пункт-функция в нее не попадает:\n // выглядеть как доступная опция он не должен.\n const isNavigable = isNavigableMenuElement(resolvedItem);\n const isHighlighted = isNavigable && highlightedItemIndex === index;\n\n return React.cloneElement(element, {\n key,\n isMobile: disableScrollContainer,\n size,\n id: menuItemProps.id ?? (isNavigable && itemIdPrefix ? `${itemIdPrefix}-item-${index}` : undefined),\n role: menuItemProps.role ?? 'option',\n 'aria-selected': menuItemProps['aria-selected'] ?? false,\n 'aria-disabled': menuItemProps['aria-disabled'] ?? (isNavigable ? undefined : true),\n ...(isHighlighted ? { state: 'hover' } : null),\n } as MenuItemProps);\n }\n\n if (isMenuHeader(element) || isMenuFooter(element)) {\n return React.cloneElement(element, { key, size });\n }\n\n return React.cloneElement(element, { key });\n }\n\n let state: 'hover' | 'selected' | undefined;\n\n if (highlightedItemIndex === index) {\n state = 'hover';\n } else if (resolvedItem.value === selectedValue) {\n state = 'selected';\n }\n\n return (\n <MenuItem\n key={`${resolvedItem.value}-${index}`}\n id={itemIdPrefix ? `${itemIdPrefix}-item-${index}` : undefined}\n role={'option'}\n aria-selected={resolvedItem.value === selectedValue}\n aria-disabled={resolvedItem.disabled || undefined}\n component={ItemRoot}\n disabled={resolvedItem.disabled}\n isNotSelectable={resolvedItem.disabled}\n size={size}\n state={state}\n onClick={resolvedItem.disabled ? undefined : () => onSelectItem(resolvedItem.item)}\n >\n {(activeState) => (\n <span\n data-tid={TimePickerDataTids.item}\n className={styles.item()}\n ref={(node) => {\n if (!itemRefs) {\n return;\n }\n\n if (node) {\n itemRefs.current.set(index, node);\n } else {\n itemRefs.current.delete(index);\n }\n }}\n >\n {renderItem ? (\n renderItem(resolvedItem.item, activeState ?? null)\n ) : (\n <>\n <span className={styles.itemValue()}>{resolvedItem.value}</span>\n {resolvedItem.label && (\n <span\n className={cx(styles.itemLabel(), itemLabelSizeClassName, {\n [styles.itemLabelColor(theme)]: !resolvedItem.disabled,\n })}\n >\n {resolvedItem.label}\n </span>\n )}\n </>\n )}\n </span>\n )}\n </MenuItem>\n );\n })}\n </Menu>\n );\n};\n"]}
@@ -2,15 +2,17 @@ import React, { useContext } from 'react';
2
2
  import { Popup } from '../../internal/Popup/index.js';
3
3
  import { ZIndex } from '../../internal/ZIndex/index.js';
4
4
  import { getMenuPositions } from '../../lib/getMenuPositions.js';
5
+ import { useStyles } from '../../lib/renderEnvironment/index.js';
5
6
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
6
7
  import { TimePickerDataTids } from './helpers/TimePicker.constants.js';
7
- import { styles } from './TimePicker.css.js';
8
+ import { getStyles } from './TimePicker.styles.js';
8
9
  import { TimePickerItems } from './TimePickerItems.js';
9
10
  export var TimePickerPopup = function (props) {
10
11
  var id = props.id, anchorElement = props.anchorElement, menuPos = props.menuPos, menuAlign = props.menuAlign, menuWidth = props.menuWidth, popupMaxHeight = props.popupMaxHeight, size = props.size, resolvedItems = props.resolvedItems, renderItem = props.renderItem, isLoading = props.isLoading, isFailed = props.isFailed, errorNetworkButton = props.errorNetworkButton, errorNetworkMessage = props.errorNetworkMessage, highlightedItemIndex = props.highlightedItemIndex, selectedValue = props.selectedValue, itemRefs = props.itemRefs, onRetry = props.onRetry, onSelectItem = props.onSelectItem;
11
12
  var theme = useContext(ThemeContext);
13
+ var styles = useStyles(getStyles);
12
14
  return (React.createElement(Popup, { opened: true, hasShadow: true, anchorElement: anchorElement, "data-tid": TimePickerDataTids.popup, priority: ZIndex.priorities.PopupMenu, margin: parseInt(theme.timePickerMenuOffsetY), width: menuWidth, minWidth: menuWidth === undefined ? '100%' : undefined, positions: getMenuPositions(menuPos, menuAlign) },
13
- React.createElement("div", { id: id, role: 'listbox', className: styles.popup, onMouseDown: function (event) { return event.preventDefault(); } },
15
+ React.createElement("div", { id: id, role: 'listbox', className: styles.popup(theme), onMouseDown: function (event) { return event.preventDefault(); } },
14
16
  React.createElement(TimePickerItems, { itemIdPrefix: id, size: size, resolvedItems: resolvedItems, renderItem: renderItem, isLoading: isLoading, isFailed: isFailed, errorNetworkButton: errorNetworkButton, errorNetworkMessage: errorNetworkMessage, highlightedItemIndex: highlightedItemIndex, selectedValue: selectedValue, itemRefs: itemRefs, maxHeight: popupMaxHeight, onRetry: onRetry, onSelectItem: onSelectItem }))));
15
17
  };
16
18
  //# sourceMappingURL=TimePickerPopup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimePickerPopup.js","sourceRoot":"","sources":["TimePickerPopup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAuBvD,MAAM,CAAC,IAAM,eAAe,GAAG,UAA0B,KAA8B;IAEnF,IAAA,EAAE,GAkBA,KAAK,GAlBL,EACF,aAAa,GAiBX,KAAK,cAjBM,EACb,OAAO,GAgBL,KAAK,QAhBA,EACP,SAAS,GAeP,KAAK,UAfE,EACT,SAAS,GAcP,KAAK,UAdE,EACT,cAAc,GAaZ,KAAK,eAbO,EACd,IAAI,GAYF,KAAK,KAZH,EACJ,aAAa,GAWX,KAAK,cAXM,EACb,UAAU,GAUR,KAAK,WAVG,EACV,SAAS,GASP,KAAK,UATE,EACT,QAAQ,GAQN,KAAK,SARC,EACR,kBAAkB,GAOhB,KAAK,mBAPW,EAClB,mBAAmB,GAMjB,KAAK,oBANY,EACnB,oBAAoB,GAKlB,KAAK,qBALa,EACpB,aAAa,GAIX,KAAK,cAJM,EACb,QAAQ,GAGN,KAAK,SAHC,EACR,OAAO,GAEL,KAAK,QAFA,EACP,YAAY,GACV,KAAK,aADK,CACJ;IAEV,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAEvC,OAAO,CACL,oBAAC,KAAK,IACJ,MAAM,QACN,SAAS,QACT,aAAa,EAAE,aAAa,cAClB,kBAAkB,CAAC,KAAK,EAClC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,EACrC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAC7C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACtD,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC;QAE/C,6BAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,cAAc,EAAE,EAAtB,CAAsB;YACnG,oBAAC,eAAe,IACd,YAAY,EAAE,EAAE,EAChB,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,mBAAmB,EAAE,mBAAmB,EACxC,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,GAC1B,CACE,CACA,CACT,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { Popup } from '../../internal/Popup/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { MenuItemState } from '../MenuItem/index.js';\nimport { TimePickerDataTids } from './helpers/TimePicker.constants.js';\nimport type { TimeItemValue, TimePickerMenuItem } from './helpers/TimePicker.shared.js';\nimport { styles } from './TimePicker.css.js';\nimport { TimePickerItems } from './TimePickerItems.js';\n\ninterface TimePickerPopupProps<T extends TimeItemValue> {\n id?: string;\n anchorElement: HTMLElement;\n menuPos?: 'top' | 'bottom';\n menuAlign?: 'left' | 'right';\n menuWidth?: React.CSSProperties['width'];\n popupMaxHeight: string;\n size: SizeProp;\n resolvedItems: Array<TimePickerMenuItem<T>>;\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode;\n isLoading?: boolean;\n isFailed: boolean;\n errorNetworkButton: string;\n errorNetworkMessage: string;\n highlightedItemIndex: number | null;\n selectedValue: string;\n itemRefs: React.RefObject<Map<number, HTMLSpanElement>>;\n onRetry(): void;\n onSelectItem(item: T): void;\n}\n\nexport const TimePickerPopup = <T extends TimeItemValue>(props: TimePickerPopupProps<T>) => {\n const {\n id,\n anchorElement,\n menuPos,\n menuAlign,\n menuWidth,\n popupMaxHeight,\n size,\n resolvedItems,\n renderItem,\n isLoading,\n isFailed,\n errorNetworkButton,\n errorNetworkMessage,\n highlightedItemIndex,\n selectedValue,\n itemRefs,\n onRetry,\n onSelectItem,\n } = props;\n\n const theme = useContext(ThemeContext);\n\n return (\n <Popup\n opened\n hasShadow\n anchorElement={anchorElement}\n data-tid={TimePickerDataTids.popup}\n priority={ZIndex.priorities.PopupMenu}\n margin={parseInt(theme.timePickerMenuOffsetY)}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n positions={getMenuPositions(menuPos, menuAlign)}\n >\n <div id={id} role={'listbox'} className={styles.popup} onMouseDown={(event) => event.preventDefault()}>\n <TimePickerItems\n itemIdPrefix={id}\n size={size}\n resolvedItems={resolvedItems}\n renderItem={renderItem}\n isLoading={isLoading}\n isFailed={isFailed}\n errorNetworkButton={errorNetworkButton}\n errorNetworkMessage={errorNetworkMessage}\n highlightedItemIndex={highlightedItemIndex}\n selectedValue={selectedValue}\n itemRefs={itemRefs}\n maxHeight={popupMaxHeight}\n onRetry={onRetry}\n onSelectItem={onSelectItem}\n />\n </div>\n </Popup>\n );\n};\n"]}
1
+ {"version":3,"file":"TimePickerPopup.js","sourceRoot":"","sources":["TimePickerPopup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAuBvD,MAAM,CAAC,IAAM,eAAe,GAAG,UAA0B,KAA8B;IAEnF,IAAA,EAAE,GAkBA,KAAK,GAlBL,EACF,aAAa,GAiBX,KAAK,cAjBM,EACb,OAAO,GAgBL,KAAK,QAhBA,EACP,SAAS,GAeP,KAAK,UAfE,EACT,SAAS,GAcP,KAAK,UAdE,EACT,cAAc,GAaZ,KAAK,eAbO,EACd,IAAI,GAYF,KAAK,KAZH,EACJ,aAAa,GAWX,KAAK,cAXM,EACb,UAAU,GAUR,KAAK,WAVG,EACV,SAAS,GASP,KAAK,UATE,EACT,QAAQ,GAQN,KAAK,SARC,EACR,kBAAkB,GAOhB,KAAK,mBAPW,EAClB,mBAAmB,GAMjB,KAAK,oBANY,EACnB,oBAAoB,GAKlB,KAAK,qBALa,EACpB,aAAa,GAIX,KAAK,cAJM,EACb,QAAQ,GAGN,KAAK,SAHC,EACR,OAAO,GAEL,KAAK,QAFA,EACP,YAAY,GACV,KAAK,aADK,CACJ;IAEV,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACvC,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,CACL,oBAAC,KAAK,IACJ,MAAM,QACN,SAAS,QACT,aAAa,EAAE,aAAa,cAClB,kBAAkB,CAAC,KAAK,EAClC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,EACrC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAC7C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACtD,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC;QAE/C,6BAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,cAAc,EAAE,EAAtB,CAAsB;YAC1G,oBAAC,eAAe,IACd,YAAY,EAAE,EAAE,EAChB,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,mBAAmB,EAAE,mBAAmB,EACxC,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,GAC1B,CACE,CACA,CACT,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { Popup } from '../../internal/Popup/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.js';\nimport { useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { MenuItemState } from '../MenuItem/index.js';\nimport { TimePickerDataTids } from './helpers/TimePicker.constants.js';\nimport type { TimeItemValue, TimePickerMenuItem } from './helpers/TimePicker.shared.js';\nimport { getStyles } from './TimePicker.styles.js';\nimport { TimePickerItems } from './TimePickerItems.js';\n\ninterface TimePickerPopupProps<T extends TimeItemValue> {\n id?: string;\n anchorElement: HTMLElement;\n menuPos?: 'top' | 'bottom';\n menuAlign?: 'left' | 'right';\n menuWidth?: React.CSSProperties['width'];\n popupMaxHeight: string;\n size: SizeProp;\n resolvedItems: Array<TimePickerMenuItem<T>>;\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode;\n isLoading?: boolean;\n isFailed: boolean;\n errorNetworkButton: string;\n errorNetworkMessage: string;\n highlightedItemIndex: number | null;\n selectedValue: string;\n itemRefs: React.RefObject<Map<number, HTMLSpanElement>>;\n onRetry(): void;\n onSelectItem(item: T): void;\n}\n\nexport const TimePickerPopup = <T extends TimeItemValue>(props: TimePickerPopupProps<T>) => {\n const {\n id,\n anchorElement,\n menuPos,\n menuAlign,\n menuWidth,\n popupMaxHeight,\n size,\n resolvedItems,\n renderItem,\n isLoading,\n isFailed,\n errorNetworkButton,\n errorNetworkMessage,\n highlightedItemIndex,\n selectedValue,\n itemRefs,\n onRetry,\n onSelectItem,\n } = props;\n\n const theme = useContext(ThemeContext);\n const styles = useStyles(getStyles);\n\n return (\n <Popup\n opened\n hasShadow\n anchorElement={anchorElement}\n data-tid={TimePickerDataTids.popup}\n priority={ZIndex.priorities.PopupMenu}\n margin={parseInt(theme.timePickerMenuOffsetY)}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n positions={getMenuPositions(menuPos, menuAlign)}\n >\n <div id={id} role={'listbox'} className={styles.popup(theme)} onMouseDown={(event) => event.preventDefault()}>\n <TimePickerItems\n itemIdPrefix={id}\n size={size}\n resolvedItems={resolvedItems}\n renderItem={renderItem}\n isLoading={isLoading}\n isFailed={isFailed}\n errorNetworkButton={errorNetworkButton}\n errorNetworkMessage={errorNetworkMessage}\n highlightedItemIndex={highlightedItemIndex}\n selectedValue={selectedValue}\n itemRefs={itemRefs}\n maxHeight={popupMaxHeight}\n onRetry={onRetry}\n onSelectItem={onSelectItem}\n />\n </div>\n </Popup>\n );\n};\n"]}
@@ -29,4 +29,3 @@ export declare const TIME_LIKE_SEGMENTS_REGEXP: RegExp;
29
29
  /** Время без разделителей: `1`, `12`, `1230`, `123045`. */
30
30
  export declare const TIME_LIKE_DIGITS_REGEXP: RegExp;
31
31
  export declare const TIME_SEGMENTS_BY_FORMAT: Record<TimeFormat, TimeSegment[]>;
32
- export declare const getEmptyDisplayValue: (precision: TimeFormat) => string;
@@ -31,7 +31,4 @@ export var TIME_SEGMENTS_BY_FORMAT = {
31
31
  'HH:mm': ['hours', 'minutes'],
32
32
  'HH:mm:ss': ['hours', 'minutes', 'seconds'],
33
33
  };
34
- export var getEmptyDisplayValue = function (precision) {
35
- return TIME_SEGMENTS_BY_FORMAT[precision].map(function () { return EMPTY_SEGMENT; }).join(TIME_SEPARATOR);
36
- };
37
34
  //# sourceMappingURL=TimePicker.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.constants.js","sourceRoot":"","sources":["TimePicker.constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,IAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE,yBAAyB;IACtC,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,yBAAyB;IACtC,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,qBAAqB;IAC9B,MAAM,EAAE,oBAAoB;IAC5B,YAAY,EAAE,0BAA0B;CAChC,CAAC;AAEX,wFAAwF;AACxF,MAAM,CAAC,IAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,IAAM,qBAAqB,GAAG,QAAQ,CAAC;AAC9C,MAAM,CAAC,IAAM,cAAc,GAAG,GAAG,CAAC;AAClC,MAAM,CAAC,IAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,IAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,IAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,MAAM,CAAC,IAAM,aAAa,GAAG,GAAG,CAAC;AACjC,MAAM,CAAC,IAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,IAAM,YAAY,GAAG,IAAI,CAAC;AACjC,MAAM,CAAC,IAAM,gBAAgB,GAAG,KAAK,CAAC;AACtC,MAAM,CAAC,IAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAE/E,MAAM,CAAC,IAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,oFAAoF;AACpF,MAAM,CAAC,IAAM,yBAAyB,GAAG,IAAI,MAAM,CAAC,0CAAmC,uBAAuB,GAAG,CAAC,OAAI,CAAC,CAAC;AACxH,2DAA2D;AAC3D,MAAM,CAAC,IAAM,uBAAuB,GAAG,IAAI,MAAM,CAAC,iBAAU,uBAAuB,GAAG,mBAAmB,OAAI,CAAC,CAAC;AAE/G,MAAM,CAAC,IAAM,uBAAuB,GAAsC;IACxE,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;IAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;CAC5C,CAAC;AAEF,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,SAAqB;IACxD,OAAA,uBAAuB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,cAAM,OAAA,aAAa,EAAb,CAAa,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAAhF,CAAgF,CAAC","sourcesContent":["import type { TimeFormat, TimeSegment } from './TimePicker.shared.js';\n\nexport const TimePickerDataTids = {\n root: 'TimePicker__root',\n input: 'TimePicker__input',\n mobileInput: 'TimePicker__mobileInput',\n nativeInput: 'TimePicker__nativeInput',\n popup: 'TimePicker__popup',\n mobilePopup: 'TimePicker__mobilePopup',\n item: 'TimePicker__item',\n loading: 'TimePicker__loading',\n failed: 'TimePicker__failed',\n inputLoading: 'TimePicker__inputLoading',\n} as const;\n\n/** Больше двух десятков часов не бывает: такая первая цифра сразу завершает сегмент. */\nexport const HOURS_FIRST_DIGIT_MAX = 2;\nexport const TIME_PLACEHOLDER_CHAR = '\\u2212';\nexport const TIME_SEPARATOR = ':';\nexport const TIME_SEGMENT_LENGTH = 2;\nexport const HOURS_MAX_VALUE = 23;\nexport const MINUTES_AND_SECONDS_MAX_VALUE = 59;\nexport const ZERO_PAD_CHAR = '0';\nexport const EMPTY_VALUE = '';\nexport const DIGIT_REGEXP = /\\d/;\nexport const NON_DIGIT_REGEXP = /\\D/g;\nexport const EMPTY_SEGMENT = TIME_PLACEHOLDER_CHAR.repeat(TIME_SEGMENT_LENGTH);\n\nexport const MAX_TIME_SEGMENTS_COUNT = 3;\n/** Сегменты времени через любой разделитель: `12:30`, `9:5`, `1:23:45`, `12.30`. */\nexport const TIME_LIKE_SEGMENTS_REGEXP = new RegExp(`^\\\\d{1,2}(?:\\\\D{1,3}\\\\d{1,2}){0,${MAX_TIME_SEGMENTS_COUNT - 1}}$`);\n/** Время без разделителей: `1`, `12`, `1230`, `123045`. */\nexport const TIME_LIKE_DIGITS_REGEXP = new RegExp(`^\\\\d{1,${MAX_TIME_SEGMENTS_COUNT * TIME_SEGMENT_LENGTH}}$`);\n\nexport const TIME_SEGMENTS_BY_FORMAT: Record<TimeFormat, TimeSegment[]> = {\n 'HH:mm': ['hours', 'minutes'],\n 'HH:mm:ss': ['hours', 'minutes', 'seconds'],\n};\n\nexport const getEmptyDisplayValue = (precision: TimeFormat): string =>\n TIME_SEGMENTS_BY_FORMAT[precision].map(() => EMPTY_SEGMENT).join(TIME_SEPARATOR);\n"]}
1
+ {"version":3,"file":"TimePicker.constants.js","sourceRoot":"","sources":["TimePicker.constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,IAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE,yBAAyB;IACtC,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,yBAAyB;IACtC,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,qBAAqB;IAC9B,MAAM,EAAE,oBAAoB;IAC5B,YAAY,EAAE,0BAA0B;CAChC,CAAC;AAEX,wFAAwF;AACxF,MAAM,CAAC,IAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,IAAM,qBAAqB,GAAG,QAAQ,CAAC;AAC9C,MAAM,CAAC,IAAM,cAAc,GAAG,GAAG,CAAC;AAClC,MAAM,CAAC,IAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,IAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,IAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,MAAM,CAAC,IAAM,aAAa,GAAG,GAAG,CAAC;AACjC,MAAM,CAAC,IAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,IAAM,YAAY,GAAG,IAAI,CAAC;AACjC,MAAM,CAAC,IAAM,gBAAgB,GAAG,KAAK,CAAC;AACtC,MAAM,CAAC,IAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAE/E,MAAM,CAAC,IAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,oFAAoF;AACpF,MAAM,CAAC,IAAM,yBAAyB,GAAG,IAAI,MAAM,CAAC,0CAAmC,uBAAuB,GAAG,CAAC,OAAI,CAAC,CAAC;AACxH,2DAA2D;AAC3D,MAAM,CAAC,IAAM,uBAAuB,GAAG,IAAI,MAAM,CAAC,iBAAU,uBAAuB,GAAG,mBAAmB,OAAI,CAAC,CAAC;AAE/G,MAAM,CAAC,IAAM,uBAAuB,GAAsC;IACxE,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;IAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;CAC5C,CAAC","sourcesContent":["import type { TimeFormat, TimeSegment } from './TimePicker.shared.js';\n\nexport const TimePickerDataTids = {\n root: 'TimePicker__root',\n input: 'TimePicker__input',\n mobileInput: 'TimePicker__mobileInput',\n nativeInput: 'TimePicker__nativeInput',\n popup: 'TimePicker__popup',\n mobilePopup: 'TimePicker__mobilePopup',\n item: 'TimePicker__item',\n loading: 'TimePicker__loading',\n failed: 'TimePicker__failed',\n inputLoading: 'TimePicker__inputLoading',\n} as const;\n\n/** Больше двух десятков часов не бывает: такая первая цифра сразу завершает сегмент. */\nexport const HOURS_FIRST_DIGIT_MAX = 2;\nexport const TIME_PLACEHOLDER_CHAR = '\\u2212';\nexport const TIME_SEPARATOR = ':';\nexport const TIME_SEGMENT_LENGTH = 2;\nexport const HOURS_MAX_VALUE = 23;\nexport const MINUTES_AND_SECONDS_MAX_VALUE = 59;\nexport const ZERO_PAD_CHAR = '0';\nexport const EMPTY_VALUE = '';\nexport const DIGIT_REGEXP = /\\d/;\nexport const NON_DIGIT_REGEXP = /\\D/g;\nexport const EMPTY_SEGMENT = TIME_PLACEHOLDER_CHAR.repeat(TIME_SEGMENT_LENGTH);\n\nexport const MAX_TIME_SEGMENTS_COUNT = 3;\n/** Сегменты времени через любой разделитель: `12:30`, `9:5`, `1:23:45`, `12.30`. */\nexport const TIME_LIKE_SEGMENTS_REGEXP = new RegExp(`^\\\\d{1,2}(?:\\\\D{1,3}\\\\d{1,2}){0,${MAX_TIME_SEGMENTS_COUNT - 1}}$`);\n/** Время без разделителей: `1`, `12`, `1230`, `123045`. */\nexport const TIME_LIKE_DIGITS_REGEXP = new RegExp(`^\\\\d{1,${MAX_TIME_SEGMENTS_COUNT * TIME_SEGMENT_LENGTH}}$`);\n\nexport const TIME_SEGMENTS_BY_FORMAT: Record<TimeFormat, TimeSegment[]> = {\n 'HH:mm': ['hours', 'minutes'],\n 'HH:mm:ss': ['hours', 'minutes', 'seconds'],\n};\n"]}
@@ -53,6 +53,7 @@ export declare const isTimeLikePastedValue: (value: string) => boolean;
53
53
  export declare const parsePastedTimeValue: (value: string, format: TimeFormat) => string;
54
54
  /** Возвращает текущее display-значение сегмента или пустой сегмент, если индекс отсутствует. */
55
55
  export declare const getTimeSegmentValue: (value: string, segment: TimeSegment, format: TimeFormat) => string;
56
+ export declare const getEmptyDisplayValue: (precision: TimeFormat) => string;
56
57
  /**
57
58
  * Преобразует display-значение в поисковый запрос для фильтрации элементов.
58
59
  * Сегменты содержат только введенные цифры, незаполненный хвост отбрасывается: `12:3_` => `12:3`, `1_:__` => `1`.
@@ -190,6 +190,11 @@ export var getTimeSegmentValue = function (value, segment, format) {
190
190
  var index = getTimeSegments(format).indexOf(segment);
191
191
  return (_a = segments[index]) !== null && _a !== void 0 ? _a : EMPTY_SEGMENT;
192
192
  };
193
+ export var getEmptyDisplayValue = function (precision) {
194
+ return getTimeSegments(precision)
195
+ .map(function () { return EMPTY_SEGMENT; })
196
+ .join(TIME_SEPARATOR);
197
+ };
193
198
  /**
194
199
  * Преобразует display-значение в поисковый запрос для фильтрации элементов.
195
200
  * Сегменты содержат только введенные цифры, незаполненный хвост отбрасывается: `12:3_` => `12:3`, `1_:__` => `1`.
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.value.js","sourceRoot":"","sources":["TimePicker.value.ts"],"names":[],"mappings":"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","sourcesContent":["import warning from 'warning';\n\nimport {\n DIGIT_REGEXP,\n EMPTY_SEGMENT,\n EMPTY_VALUE,\n NON_DIGIT_REGEXP,\n TIME_LIKE_DIGITS_REGEXP,\n TIME_LIKE_SEGMENTS_REGEXP,\n TIME_SEPARATOR,\n ZERO_PAD_CHAR,\n} from './TimePicker.constants.js';\nimport {\n getDigits,\n getDisplaySegments,\n getTimeSegments,\n normalizeTimeSegment,\n sanitizeSegment,\n getTimeItemLabel,\n getTimeItemValue,\n isTimeItemDisabled,\n type TimeFormat,\n type TimeItem,\n type TimeItemValue,\n type TimePickerExtendedItem,\n type TimePickerMenuItem,\n type TimeSegment,\n isTimeItem,\n isTimeItemObject,\n} from './TimePicker.shared.js';\n\n/** Проверяет, что в display-значении нет ни одной введенной цифры. */\nexport const isTimeDisplayEmpty = (value: string): boolean => !DIGIT_REGEXP.test(value);\n\n/**\n * Приводит время элемента к формату поля: `renderItem` показывает элемент рядом с теми же временами,\n * что и остальное меню, поэтому в нем не должно оказаться `9:00` или `09:00:00` из источника.\n * Элемент-объект копируется только когда его время действительно записано иначе,\n * так что в обычном случае наружу уходит тот же объект, что пришел в `source`.\n */\nconst normalizeTimeItem = <T extends TimeItemValue>(item: T, value: string, normalizedValue: string): T => {\n if (value === normalizedValue) {\n return item;\n }\n\n return (isTimeItemObject(item) ? { ...(item as TimeItem), value: normalizedValue } : normalizedValue) as T;\n};\n\n/**\n * Разбирает элементы источника для отрисовки: достает время и подпись,\n * а `disabled` дополняет проверкой диапазона `minTime`/`maxTime`.\n * Время нормализуется по формату поля — и у времени элемента, и у самого элемента.\n * React-элементы остаются на своих местах.\n */\nexport const resolveTimeItems = <T extends TimeItemValue>(\n items: Array<TimePickerExtendedItem<T>>,\n format: TimeFormat,\n minTime?: string,\n maxTime?: string,\n): Array<TimePickerMenuItem<T>> =>\n items.map((item) => {\n if (!isTimeItem(item)) {\n return item;\n }\n\n const value = getTimeItemValue(item);\n const normalizedValue = normalizeTimeValue(value, format);\n\n return {\n item: normalizeTimeItem(item, value, normalizedValue),\n value: normalizedValue,\n label: getTimeItemLabel(item),\n disabled: isTimeItemDisabled(item) || isTimeValueOutOfRange(normalizedValue, format, minTime, maxTime),\n };\n });\n\n/**\n * Оставляет только элементы, которые компонент умеет показать в меню.\n * Пустые значения — результат условного рендера вроде `isVisible && item` или `items.length && item` —\n * молча отбрасываются, а элементы, из которых не получается собрать время, отбрасываются с предупреждением.\n */\nexport const sanitizeTimeItems = <T extends TimeItemValue>(\n items: Array<TimePickerExtendedItem<T>>,\n format: TimeFormat,\n): Array<TimePickerExtendedItem<T>> => {\n if (!Array.isArray(items)) {\n warning(false, '[TimePicker]: the source function is expected to return an array or a Promise of an array.');\n\n return [];\n }\n\n return items.filter((item) => {\n if (!item) {\n return false;\n }\n\n if (!isTimeItem(item)) {\n return true;\n }\n\n if (isTimeItemObject(item) && typeof item.value !== 'string') {\n warning(false, '[TimePicker]: a source item is expected to be a time string or an object with a time value.');\n\n return false;\n }\n\n if (normalizeTimeValue(getTimeItemValue(item), format) === EMPTY_VALUE) {\n warning(false, `[TimePicker]: the source item value \"${getTimeItemValue(item)}\" is not a time.`);\n\n return false;\n }\n\n return true;\n });\n};\n\n/**\n * Проверяет, выходит ли значение за диапазон `minTime`/`maxTime` после нормализации.\n * Пустое значение не считается выходящим за диапазон. Если `minTime > maxTime`, диапазон трактуется как переходящий через полночь.\n */\nexport const isTimeValueOutOfRange = (\n value: string,\n format: TimeFormat,\n minTime?: string,\n maxTime?: string,\n): boolean => {\n const normalizedValue = normalizeTimeValue(value, format);\n\n if (normalizedValue === EMPTY_VALUE) {\n return false;\n }\n\n const normalizedMinTime = normalizeTimeRangeValue(minTime, format);\n const normalizedMaxTime = normalizeTimeRangeValue(maxTime, format);\n\n if (normalizedMinTime && normalizedMaxTime && normalizedMinTime > normalizedMaxTime) {\n return normalizedValue < normalizedMinTime && normalizedValue > normalizedMaxTime;\n }\n\n return (\n (normalizedMinTime !== undefined && normalizedValue < normalizedMinTime) ||\n (normalizedMaxTime !== undefined && normalizedValue > normalizedMaxTime)\n );\n};\n\n/**\n * Нормализует display-значение в committed-форму `HH:mm[:ss]`.\n * Частично заполненные сегменты дополняются и ограничиваются максимумами сегментов.\n */\nexport const normalizeTimeValue = (value: string, format: TimeFormat): string => {\n if (isTimeDisplayEmpty(value)) {\n return EMPTY_VALUE;\n }\n\n const displaySegments = getDisplaySegments(value, format);\n\n return getTimeSegments(format)\n .map((segment, index) => normalizeTimeSegment(displaySegments[index], segment))\n .join(TIME_SEPARATOR);\n};\n\nconst normalizeTimeRangeValue = (value: string | undefined, format: TimeFormat): string | undefined => {\n if (!value) {\n return undefined;\n }\n\n const normalizedValue = normalizeTimeValue(value, format);\n\n return normalizedValue === EMPTY_VALUE ? undefined : normalizedValue;\n};\n\n/**\n * Преобразует display-значение в промежуточное значение для `onInputValueChange`.\n * Заполненные сегменты дополняются до двух цифр, пропущенные сегменты до последнего заполненного становятся `00`.\n */\nexport const serializeTimeValue = (value: string, format: TimeFormat): string => {\n const serializedSegments = takeFilledSegments(\n getDisplaySegments(value, format).map((segmentValue) => {\n const digits = getDigits(segmentValue);\n\n return digits ? digits.padStart(EMPTY_SEGMENT.length, ZERO_PAD_CHAR) : EMPTY_VALUE;\n }),\n );\n\n return serializedSegments.map((segmentValue) => segmentValue || '00').join(TIME_SEPARATOR);\n};\n\n/** Отбрасывает незаполненный хвост сегментов: ведущие пустые сегменты остаются на своих местах. */\nconst takeFilledSegments = (segments: string[]): string[] => {\n const lastFilledIndex = segments.reduce((result, segmentValue, index) => (segmentValue ? index : result), -1);\n\n return segments.slice(0, lastFilledIndex + 1);\n};\n\nexport const getTimeDisplayValue = (value: string, format: TimeFormat): string => {\n if (value === EMPTY_VALUE) {\n return EMPTY_VALUE;\n }\n\n return getDisplaySegments(value, format).join(TIME_SEPARATOR);\n};\n\n/**\n * Возвращает display-значение внешнего `value`.\n * Сегменты, записанные одной цифрой, дополняются нулем, поэтому `9:00` показывается как `09:00` —\n * так же, как компонент показывает время элементов источника.\n * Значение без разделителя остается частично введенным: `1` — это первая цифра часов, а не `01:00`.\n */\nexport const getExternalTimeDisplayValue = (value: string, format: TimeFormat): string => {\n if (!value.includes(TIME_SEPARATOR)) {\n return getTimeDisplayValue(value, format);\n }\n\n const paddedSegments = value.split(TIME_SEPARATOR).map((segmentValue) => {\n const digits = getDigits(segmentValue);\n\n return digits ? digits.padStart(EMPTY_SEGMENT.length, ZERO_PAD_CHAR) : EMPTY_VALUE;\n });\n\n return getTimeDisplayValue(paddedSegments.join(TIME_SEPARATOR), format);\n};\n\n/** Заменяет значение выбранного сегмента, сохраняя остальные сегменты display-значения без изменений. */\nexport const replaceTimeSegment = (\n value: string,\n segment: TimeSegment,\n nextSegmentValue: string,\n format: TimeFormat,\n): string => {\n const segments = getDisplaySegments(value, format);\n const index = getTimeSegments(format).indexOf(segment);\n\n segments[index] = sanitizeSegment(nextSegmentValue);\n\n return segments.join(TIME_SEPARATOR);\n};\n\n/**\n * Проверяет, что вставленное значение похоже на время:\n * это либо сегменты из одной-двух цифр через любой разделитель — `12:30`, `9:5`, `1:23:45`, `12.30`, —\n * либо цифры подряд — `9`, `1230`, `123045`.\n * Строки, из которых время собралось бы случайно — `2026-08-01`, `hello 42`, — временем не считаются.\n */\nexport const isTimeLikePastedValue = (value: string): boolean => {\n const trimmedValue = value.trim();\n\n return TIME_LIKE_SEGMENTS_REGEXP.test(trimmedValue) || TIME_LIKE_DIGITS_REGEXP.test(trimmedValue);\n};\n\n/**\n * Парсит вставленное пользователем значение и сразу преобразует его в committed-форму.\n * Значение, не похожее на время, отдается как пустое: такую вставку компонент считает некорректным вводом.\n */\nexport const parsePastedTimeValue = (value: string, format: TimeFormat): string => {\n const trimmedValue = value.trim();\n\n if (!DIGIT_REGEXP.test(trimmedValue) || !isTimeLikePastedValue(trimmedValue)) {\n return EMPTY_VALUE;\n }\n\n // Разделители сегментов приводятся к одному виду, чтобы `9.5` разбирался так же, как `9:5`.\n const normalizedSeparators = TIME_LIKE_SEGMENTS_REGEXP.test(trimmedValue)\n ? trimmedValue.split(NON_DIGIT_REGEXP).join(TIME_SEPARATOR)\n : trimmedValue;\n\n const segments = getDisplaySegments(normalizedSeparators, format);\n\n return normalizeTimeValue(segments.join(TIME_SEPARATOR), format);\n};\n\n/** Возвращает текущее display-значение сегмента или пустой сегмент, если индекс отсутствует. */\nexport const getTimeSegmentValue = (value: string, segment: TimeSegment, format: TimeFormat): string => {\n const segments = getDisplaySegments(value, format);\n const index = getTimeSegments(format).indexOf(segment);\n\n return segments[index] ?? EMPTY_SEGMENT;\n};\n\n/**\n * Преобразует display-значение в поисковый запрос для фильтрации элементов.\n * Сегменты содержат только введенные цифры, незаполненный хвост отбрасывается: `12:3_` => `12:3`, `1_:__` => `1`.\n * Позиции сегментов сохраняются, поэтому ведущие незаполненные сегменты остаются пустыми: `__:34` => `:34`.\n * Это нужно для посегментного сравнения в `filterTimeItems` и передается как есть в пользовательскую `source`.\n */\nexport const getTimeFilterQuery = (value: string, format: TimeFormat): string =>\n takeFilledSegments(getDisplaySegments(value, format).map(getDigits)).join(TIME_SEPARATOR);\n\n/**\n * Фильтрует элементы по запросу из поля ввода.\n * Сравнивает запрос посегментно: введенные цифры сегмента должны быть префиксом соответствующего сегмента элемента.\n * Пустой запрос возвращает все элементы.\n */\nexport const filterTimeItems = <T extends TimeItemValue>(\n items: Array<TimePickerExtendedItem<T>>,\n query: string,\n format: TimeFormat,\n): Array<TimePickerExtendedItem<T>> => {\n const querySegments = query.split(TIME_SEPARATOR).map(getDigits);\n\n if (querySegments.every((segmentValue) => !segmentValue)) {\n return items;\n }\n\n return items.filter((item) => {\n if (!isTimeItem(item)) {\n return true;\n }\n\n const itemSegments = getDisplaySegments(normalizeTimeValue(getTimeItemValue(item), format), format);\n\n return querySegments.every(\n (segmentValue, index) => !segmentValue || (itemSegments[index] ?? EMPTY_VALUE).startsWith(segmentValue),\n );\n });\n};\n"]}
1
+ {"version":3,"file":"TimePicker.value.js","sourceRoot":"","sources":["TimePicker.value.ts"],"names":[],"mappings":"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","sourcesContent":["import warning from 'warning';\n\nimport {\n DIGIT_REGEXP,\n EMPTY_SEGMENT,\n EMPTY_VALUE,\n NON_DIGIT_REGEXP,\n TIME_LIKE_DIGITS_REGEXP,\n TIME_LIKE_SEGMENTS_REGEXP,\n TIME_SEPARATOR,\n ZERO_PAD_CHAR,\n} from './TimePicker.constants.js';\nimport {\n getDigits,\n getDisplaySegments,\n getTimeSegments,\n normalizeTimeSegment,\n sanitizeSegment,\n getTimeItemLabel,\n getTimeItemValue,\n isTimeItemDisabled,\n type TimeFormat,\n type TimeItem,\n type TimeItemValue,\n type TimePickerExtendedItem,\n type TimePickerMenuItem,\n type TimeSegment,\n isTimeItem,\n isTimeItemObject,\n} from './TimePicker.shared.js';\n\n/** Проверяет, что в display-значении нет ни одной введенной цифры. */\nexport const isTimeDisplayEmpty = (value: string): boolean => !DIGIT_REGEXP.test(value);\n\n/**\n * Приводит время элемента к формату поля: `renderItem` показывает элемент рядом с теми же временами,\n * что и остальное меню, поэтому в нем не должно оказаться `9:00` или `09:00:00` из источника.\n * Элемент-объект копируется только когда его время действительно записано иначе,\n * так что в обычном случае наружу уходит тот же объект, что пришел в `source`.\n */\nconst normalizeTimeItem = <T extends TimeItemValue>(item: T, value: string, normalizedValue: string): T => {\n if (value === normalizedValue) {\n return item;\n }\n\n return (isTimeItemObject(item) ? { ...(item as TimeItem), value: normalizedValue } : normalizedValue) as T;\n};\n\n/**\n * Разбирает элементы источника для отрисовки: достает время и подпись,\n * а `disabled` дополняет проверкой диапазона `minTime`/`maxTime`.\n * Время нормализуется по формату поля — и у времени элемента, и у самого элемента.\n * React-элементы остаются на своих местах.\n */\nexport const resolveTimeItems = <T extends TimeItemValue>(\n items: Array<TimePickerExtendedItem<T>>,\n format: TimeFormat,\n minTime?: string,\n maxTime?: string,\n): Array<TimePickerMenuItem<T>> =>\n items.map((item) => {\n if (!isTimeItem(item)) {\n return item;\n }\n\n const value = getTimeItemValue(item);\n const normalizedValue = normalizeTimeValue(value, format);\n\n return {\n item: normalizeTimeItem(item, value, normalizedValue),\n value: normalizedValue,\n label: getTimeItemLabel(item),\n disabled: isTimeItemDisabled(item) || isTimeValueOutOfRange(normalizedValue, format, minTime, maxTime),\n };\n });\n\n/**\n * Оставляет только элементы, которые компонент умеет показать в меню.\n * Пустые значения — результат условного рендера вроде `isVisible && item` или `items.length && item` —\n * молча отбрасываются, а элементы, из которых не получается собрать время, отбрасываются с предупреждением.\n */\nexport const sanitizeTimeItems = <T extends TimeItemValue>(\n items: Array<TimePickerExtendedItem<T>>,\n format: TimeFormat,\n): Array<TimePickerExtendedItem<T>> => {\n if (!Array.isArray(items)) {\n warning(false, '[TimePicker]: the source function is expected to return an array or a Promise of an array.');\n\n return [];\n }\n\n return items.filter((item) => {\n if (!item) {\n return false;\n }\n\n if (!isTimeItem(item)) {\n return true;\n }\n\n if (isTimeItemObject(item) && typeof item.value !== 'string') {\n warning(false, '[TimePicker]: a source item is expected to be a time string or an object with a time value.');\n\n return false;\n }\n\n if (normalizeTimeValue(getTimeItemValue(item), format) === EMPTY_VALUE) {\n warning(false, `[TimePicker]: the source item value \"${getTimeItemValue(item)}\" is not a time.`);\n\n return false;\n }\n\n return true;\n });\n};\n\n/**\n * Проверяет, выходит ли значение за диапазон `minTime`/`maxTime` после нормализации.\n * Пустое значение не считается выходящим за диапазон. Если `minTime > maxTime`, диапазон трактуется как переходящий через полночь.\n */\nexport const isTimeValueOutOfRange = (\n value: string,\n format: TimeFormat,\n minTime?: string,\n maxTime?: string,\n): boolean => {\n const normalizedValue = normalizeTimeValue(value, format);\n\n if (normalizedValue === EMPTY_VALUE) {\n return false;\n }\n\n const normalizedMinTime = normalizeTimeRangeValue(minTime, format);\n const normalizedMaxTime = normalizeTimeRangeValue(maxTime, format);\n\n if (normalizedMinTime && normalizedMaxTime && normalizedMinTime > normalizedMaxTime) {\n return normalizedValue < normalizedMinTime && normalizedValue > normalizedMaxTime;\n }\n\n return (\n (normalizedMinTime !== undefined && normalizedValue < normalizedMinTime) ||\n (normalizedMaxTime !== undefined && normalizedValue > normalizedMaxTime)\n );\n};\n\n/**\n * Нормализует display-значение в committed-форму `HH:mm[:ss]`.\n * Частично заполненные сегменты дополняются и ограничиваются максимумами сегментов.\n */\nexport const normalizeTimeValue = (value: string, format: TimeFormat): string => {\n if (isTimeDisplayEmpty(value)) {\n return EMPTY_VALUE;\n }\n\n const displaySegments = getDisplaySegments(value, format);\n\n return getTimeSegments(format)\n .map((segment, index) => normalizeTimeSegment(displaySegments[index], segment))\n .join(TIME_SEPARATOR);\n};\n\nconst normalizeTimeRangeValue = (value: string | undefined, format: TimeFormat): string | undefined => {\n if (!value) {\n return undefined;\n }\n\n const normalizedValue = normalizeTimeValue(value, format);\n\n return normalizedValue === EMPTY_VALUE ? undefined : normalizedValue;\n};\n\n/**\n * Преобразует display-значение в промежуточное значение для `onInputValueChange`.\n * Заполненные сегменты дополняются до двух цифр, пропущенные сегменты до последнего заполненного становятся `00`.\n */\nexport const serializeTimeValue = (value: string, format: TimeFormat): string => {\n const serializedSegments = takeFilledSegments(\n getDisplaySegments(value, format).map((segmentValue) => {\n const digits = getDigits(segmentValue);\n\n return digits ? digits.padStart(EMPTY_SEGMENT.length, ZERO_PAD_CHAR) : EMPTY_VALUE;\n }),\n );\n\n return serializedSegments.map((segmentValue) => segmentValue || '00').join(TIME_SEPARATOR);\n};\n\n/** Отбрасывает незаполненный хвост сегментов: ведущие пустые сегменты остаются на своих местах. */\nconst takeFilledSegments = (segments: string[]): string[] => {\n const lastFilledIndex = segments.reduce((result, segmentValue, index) => (segmentValue ? index : result), -1);\n\n return segments.slice(0, lastFilledIndex + 1);\n};\n\nexport const getTimeDisplayValue = (value: string, format: TimeFormat): string => {\n if (value === EMPTY_VALUE) {\n return EMPTY_VALUE;\n }\n\n return getDisplaySegments(value, format).join(TIME_SEPARATOR);\n};\n\n/**\n * Возвращает display-значение внешнего `value`.\n * Сегменты, записанные одной цифрой, дополняются нулем, поэтому `9:00` показывается как `09:00` —\n * так же, как компонент показывает время элементов источника.\n * Значение без разделителя остается частично введенным: `1` — это первая цифра часов, а не `01:00`.\n */\nexport const getExternalTimeDisplayValue = (value: string, format: TimeFormat): string => {\n if (!value.includes(TIME_SEPARATOR)) {\n return getTimeDisplayValue(value, format);\n }\n\n const paddedSegments = value.split(TIME_SEPARATOR).map((segmentValue) => {\n const digits = getDigits(segmentValue);\n\n return digits ? digits.padStart(EMPTY_SEGMENT.length, ZERO_PAD_CHAR) : EMPTY_VALUE;\n });\n\n return getTimeDisplayValue(paddedSegments.join(TIME_SEPARATOR), format);\n};\n\n/** Заменяет значение выбранного сегмента, сохраняя остальные сегменты display-значения без изменений. */\nexport const replaceTimeSegment = (\n value: string,\n segment: TimeSegment,\n nextSegmentValue: string,\n format: TimeFormat,\n): string => {\n const segments = getDisplaySegments(value, format);\n const index = getTimeSegments(format).indexOf(segment);\n\n segments[index] = sanitizeSegment(nextSegmentValue);\n\n return segments.join(TIME_SEPARATOR);\n};\n\n/**\n * Проверяет, что вставленное значение похоже на время:\n * это либо сегменты из одной-двух цифр через любой разделитель — `12:30`, `9:5`, `1:23:45`, `12.30`, —\n * либо цифры подряд — `9`, `1230`, `123045`.\n * Строки, из которых время собралось бы случайно — `2026-08-01`, `hello 42`, — временем не считаются.\n */\nexport const isTimeLikePastedValue = (value: string): boolean => {\n const trimmedValue = value.trim();\n\n return TIME_LIKE_SEGMENTS_REGEXP.test(trimmedValue) || TIME_LIKE_DIGITS_REGEXP.test(trimmedValue);\n};\n\n/**\n * Парсит вставленное пользователем значение и сразу преобразует его в committed-форму.\n * Значение, не похожее на время, отдается как пустое: такую вставку компонент считает некорректным вводом.\n */\nexport const parsePastedTimeValue = (value: string, format: TimeFormat): string => {\n const trimmedValue = value.trim();\n\n if (!DIGIT_REGEXP.test(trimmedValue) || !isTimeLikePastedValue(trimmedValue)) {\n return EMPTY_VALUE;\n }\n\n // Разделители сегментов приводятся к одному виду, чтобы `9.5` разбирался так же, как `9:5`.\n const normalizedSeparators = TIME_LIKE_SEGMENTS_REGEXP.test(trimmedValue)\n ? trimmedValue.split(NON_DIGIT_REGEXP).join(TIME_SEPARATOR)\n : trimmedValue;\n\n const segments = getDisplaySegments(normalizedSeparators, format);\n\n return normalizeTimeValue(segments.join(TIME_SEPARATOR), format);\n};\n\n/** Возвращает текущее display-значение сегмента или пустой сегмент, если индекс отсутствует. */\nexport const getTimeSegmentValue = (value: string, segment: TimeSegment, format: TimeFormat): string => {\n const segments = getDisplaySegments(value, format);\n const index = getTimeSegments(format).indexOf(segment);\n\n return segments[index] ?? EMPTY_SEGMENT;\n};\n\nexport const getEmptyDisplayValue = (precision: TimeFormat): string =>\n getTimeSegments(precision)\n .map(() => EMPTY_SEGMENT)\n .join(TIME_SEPARATOR);\n\n/**\n * Преобразует display-значение в поисковый запрос для фильтрации элементов.\n * Сегменты содержат только введенные цифры, незаполненный хвост отбрасывается: `12:3_` => `12:3`, `1_:__` => `1`.\n * Позиции сегментов сохраняются, поэтому ведущие незаполненные сегменты остаются пустыми: `__:34` => `:34`.\n * Это нужно для посегментного сравнения в `filterTimeItems` и передается как есть в пользовательскую `source`.\n */\nexport const getTimeFilterQuery = (value: string, format: TimeFormat): string =>\n takeFilledSegments(getDisplaySegments(value, format).map(getDigits)).join(TIME_SEPARATOR);\n\n/**\n * Фильтрует элементы по запросу из поля ввода.\n * Сравнивает запрос посегментно: введенные цифры сегмента должны быть префиксом соответствующего сегмента элемента.\n * Пустой запрос возвращает все элементы.\n */\nexport const filterTimeItems = <T extends TimeItemValue>(\n items: Array<TimePickerExtendedItem<T>>,\n query: string,\n format: TimeFormat,\n): Array<TimePickerExtendedItem<T>> => {\n const querySegments = query.split(TIME_SEPARATOR).map(getDigits);\n\n if (querySegments.every((segmentValue) => !segmentValue)) {\n return items;\n }\n\n return items.filter((item) => {\n if (!isTimeItem(item)) {\n return true;\n }\n\n const itemSegments = getDisplaySegments(normalizeTimeValue(getTimeItemValue(item), format), format);\n\n return querySegments.every(\n (segmentValue, index) => !segmentValue || (itemSegments[index] ?? EMPTY_VALUE).startsWith(segmentValue),\n );\n });\n};\n"]}
@@ -63,6 +63,8 @@ export declare class Toast extends React.Component<ToastProps, ToastState> {
63
63
  static displayName: string;
64
64
  getRootNode: TGetRootNode;
65
65
  private setRootNode;
66
+ private styles;
67
+ private emotion;
66
68
  private theme;
67
69
  _toast: Nullable<ToastView>;
68
70
  private _timeout;
@@ -35,10 +35,11 @@ import { CSSTransition, TransitionGroup } from 'react-transition-group';
35
35
  import { CommonWrapper } from '../../internal/CommonWrapper/index.js';
36
36
  import { RenderContainer } from '../../internal/RenderContainer/index.js';
37
37
  import { isTestEnv } from '../../lib/currentEnvironment.js';
38
+ import { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';
38
39
  import { rootNode } from '../../lib/rootNode/index.js';
39
- import { mergePropsTheme } from '../../lib/theming/memoizeTheme.js';
40
40
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
41
- import { styles } from './Toast.css.js';
41
+ import { ThemeFactory } from '../../lib/theming/ThemeFactory.js';
42
+ import { getStyles } from './Toast.styles.js';
42
43
  import { ToastView } from './ToastView.js';
43
44
  export var ToastDataTids = {
44
45
  toastStatic: 'StaticToast',
@@ -130,8 +131,9 @@ var Toast = /** @class */ (function (_super) {
130
131
  };
131
132
  Toast.prototype.render = function () {
132
133
  var _this = this;
134
+ this.styles = getStyles(this.emotion);
133
135
  return (React.createElement(ThemeContext.Consumer, null, function (theme) {
134
- _this.theme = mergePropsTheme(theme, _this.props.theme);
136
+ _this.theme = _this.props.theme ? ThemeFactory.create(_this.props.theme, theme) : theme;
135
137
  return (React.createElement(ThemeContext.Provider, { value: _this.theme },
136
138
  React.createElement(RenderContainer, null,
137
139
  React.createElement(TransitionGroup, null, _this._renderToast()))));
@@ -153,10 +155,10 @@ var Toast = /** @class */ (function (_super) {
153
155
  use: currentUse,
154
156
  };
155
157
  return (React.createElement(CSSTransition, { key: id, classNames: {
156
- enter: styles.enter,
157
- enterActive: styles.enterActive,
158
- exit: styles.exit,
159
- exitActive: styles.exitActive,
158
+ enter: this.styles.enter(),
159
+ enterActive: this.styles.enterActive(),
160
+ exit: this.styles.exit(),
161
+ exitActive: this.styles.exitActive(),
160
162
  }, timeout: {
161
163
  enter: 200,
162
164
  exit: 150,
@@ -167,6 +169,7 @@ var Toast = /** @class */ (function (_super) {
167
169
  Toast.__KONTUR_REACT_UI__ = 'Toast';
168
170
  Toast.displayName = 'Toast';
169
171
  Toast = __decorate([
172
+ withRenderEnvironment,
170
173
  rootNode
171
174
  ], Toast);
172
175
  return Toast;
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","sourceRoot":"","sources":["Toast.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { RenderContainer } from '../../internal/RenderContainer/index.js';\nimport { isTestEnv } from '../../lib/currentEnvironment.js';\nimport type { SafeTimer } from '../../lib/globalObject.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { mergePropsTheme } from '../../lib/theming/memoizeTheme.js';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { styles } from './Toast.css.js';\nimport { ToastView } from './ToastView.js';\nimport type { ToastViewProps } from './ToastView.js';\n\nexport interface Action {\n /** Текст на кнопке действия. */\n label: string;\n /** Выполняется при нажатии на кнопку действия. */\n handler: () => void;\n /** Уточняет доступное имя кнопки для вспомогательных технологий. */\n 'aria-label'?: string;\n}\n\n/**\n * Состояния тоста:\n *\n * - default стиль для отображения по умолчанию\n * - error стиль для отображения ошибок\n **/\nexport type ToastUse = 'default' | 'error';\n\nexport interface ToastState {\n notification: Nullable<React.ReactNode>;\n action: Nullable<Action>;\n id: number;\n showTime: Nullable<number>;\n showCloseIcon?: boolean;\n currentUse: ToastUse;\n}\n\nexport interface ToastProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps {\n /** Событие появления уведомления. */\n onPush?: (notification: string, action?: Action) => void;\n\n /** Событие закрытия уведомления. */\n onClose?: (notification: string, action?: Action) => void;\n\n /** Переменные темы поверх значений из контекста. */\n theme?: ThemeIn;\n}\n\n/** Объект с конфигурацией отображения Toast-а */\nexport interface ToastPushConfig {\n /** Добавляет кнопку действия в тост. */\n action?: Nullable<Action>;\n /** Длительность показа в миллисекундах. */\n showTime?: number;\n /** Показывает кнопку закрытия рядом с текстом. */\n showCloseIcon?: boolean;\n /** Определяет стиль оформления: обычный или ошибка (`error`). */\n use?: ToastUse;\n}\n\nexport type ToastPushApi = (notification: React.ReactNode, config?: ToastPushConfig) => void;\n\nexport type ToastClose = () => void;\n\nexport const ToastDataTids = {\n toastStatic: 'StaticToast',\n toastView: 'ToastView__root',\n action: 'ToastView__action',\n close: 'ToastView__close',\n} as const;\n\n/**\n * Тост — это короткое немодальное уведомление о результате действия пользователя: успех, ошибка или нейтральный статус.\n */\n@rootNode\nexport class Toast extends React.Component<ToastProps, ToastState> {\n public static __KONTUR_REACT_UI__ = 'Toast';\n public static displayName = 'Toast';\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public _toast: Nullable<ToastView>;\n private _timeout: SafeTimer;\n private rootRef: React.RefObject<HTMLElement | null> = React.createRef();\n\n constructor(props: ToastProps) {\n super(props);\n this.state = {\n notification: null,\n action: null,\n id: 0,\n showTime: null,\n showCloseIcon: false,\n currentUse: 'default',\n };\n }\n\n public componentWillUnmount() {\n this._clearTimer();\n }\n\n public render(): React.JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = mergePropsTheme(theme, this.props.theme);\n return (\n <ThemeContext.Provider value={this.theme}>\n <RenderContainer>\n <TransitionGroup>{this._renderToast()}</TransitionGroup>\n </RenderContainer>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Показывает тост с `notification` в качестве сообщения.\n * Тост автоматически скрывается через 3 или 7 секунд,\n * в зависимости от наличия у него кнопки `action` внутри config-а.\n * Время показа можно задать вручную, передав `showTime` внутри config-а.\n *\n * @public\n * @param {React.ReactNode} notification\n * @param {ToastPushConfig} config объект с конфигурацией отображения компонента Toast\n */\n public push: ToastPushApi = (notification: React.ReactNode, config?: ToastPushConfig) => {\n this.rootRef = React.createRef();\n\n if (this.state.notification) {\n this.close();\n }\n\n safelyCall(this.props.onPush, notification, config?.action);\n\n this.setState(\n ({ id }) => ({\n notification,\n action: config?.action,\n id: id + 1,\n showTime: config?.showTime,\n showCloseIcon: config?.showCloseIcon,\n currentUse: config?.use ?? 'default',\n }),\n this._setTimer,\n );\n };\n\n /**\n * Закрывает текущее уведомление без ожидания таймера.\n *\n * @public\n */\n public close = (): void => {\n safelyCall(this.props.onClose, this.state.notification, this.state.action);\n this.setState({ notification: null, action: null });\n };\n\n private _renderToast() {\n const { notification, action, id, showCloseIcon, currentUse } = this.state;\n\n if (!notification) {\n return null;\n }\n\n const toastProps: ToastViewProps = {\n onMouseEnter: this._clearTimer,\n onMouseLeave: this._setTimer,\n onClose: this.close,\n children: notification,\n 'aria-label': this.props['aria-label'],\n action,\n showCloseIcon,\n use: currentUse,\n };\n\n return (\n <CSSTransition\n key={id}\n classNames={{\n enter: styles.enter,\n enterActive: styles.enterActive,\n exit: styles.exit,\n exitActive: styles.exitActive,\n }}\n timeout={{\n enter: 200,\n exit: 150,\n }}\n enter={!isTestEnv}\n exit={!isTestEnv}\n nodeRef={this.rootRef}\n >\n <CommonWrapper rootNodeRef={this.setRootRef(this.rootRef)} {...this.props}>\n <ToastView ref={this._refToast} {...toastProps} />\n </CommonWrapper>\n </CSSTransition>\n );\n }\n\n private setRootRef = (ref: React.RefObject<HTMLElement | null>) => (element: Nullable<Element>) => {\n if (ref === this.rootRef) {\n this.setRootNode(element);\n }\n // @ts-expect-error: See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065.\n ref.current = element;\n };\n\n private _clearTimer = () => {\n if (this._timeout) {\n clearTimeout(this._timeout);\n this._timeout = null;\n }\n };\n\n private _setTimer = () => {\n this._clearTimer();\n\n let showTime = this.state.action ? 7000 : 3000;\n showTime = this.state.showTime ?? showTime;\n this._timeout = setTimeout(this.close, showTime);\n };\n\n private _refToast = (element: ToastView) => {\n this._toast = element;\n };\n}\n\nfunction safelyCall(fn: Nullable<(a?: any) => any>, ...args: any[]) {\n if (fn) {\n fn(...args);\n }\n}\n"]}
1
+ {"version":3,"file":"Toast.js","sourceRoot":"","sources":["Toast.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes } from 'react';\nimport React from 'react';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { RenderContainer } from '../../internal/RenderContainer/index.js';\nimport { isTestEnv } from '../../lib/currentEnvironment.js';\nimport type { SafeTimer } from '../../lib/globalObject.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { getStyles } from './Toast.styles.js';\nimport { ToastView } from './ToastView.js';\nimport type { ToastViewProps } from './ToastView.js';\n\nexport interface Action {\n /** Текст на кнопке действия. */\n label: string;\n /** Выполняется при нажатии на кнопку действия. */\n handler: () => void;\n /** Уточняет доступное имя кнопки для вспомогательных технологий. */\n 'aria-label'?: string;\n}\n\n/**\n * Состояния тоста:\n *\n * - default стиль для отображения по умолчанию\n * - error стиль для отображения ошибок\n **/\nexport type ToastUse = 'default' | 'error';\n\nexport interface ToastState {\n notification: Nullable<React.ReactNode>;\n action: Nullable<Action>;\n id: number;\n showTime: Nullable<number>;\n showCloseIcon?: boolean;\n currentUse: ToastUse;\n}\n\nexport interface ToastProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps {\n /** Событие появления уведомления. */\n onPush?: (notification: string, action?: Action) => void;\n\n /** Событие закрытия уведомления. */\n onClose?: (notification: string, action?: Action) => void;\n\n /** Переменные темы поверх значений из контекста. */\n theme?: ThemeIn;\n}\n\n/** Объект с конфигурацией отображения Toast-а */\nexport interface ToastPushConfig {\n /** Добавляет кнопку действия в тост. */\n action?: Nullable<Action>;\n /** Длительность показа в миллисекундах. */\n showTime?: number;\n /** Показывает кнопку закрытия рядом с текстом. */\n showCloseIcon?: boolean;\n /** Определяет стиль оформления: обычный или ошибка (`error`). */\n use?: ToastUse;\n}\n\nexport type ToastPushApi = (notification: React.ReactNode, config?: ToastPushConfig) => void;\n\nexport type ToastClose = () => void;\n\nexport const ToastDataTids = {\n toastStatic: 'StaticToast',\n toastView: 'ToastView__root',\n action: 'ToastView__action',\n close: 'ToastView__close',\n} as const;\n\n/**\n * Тост — это короткое немодальное уведомление о результате действия пользователя: успех, ошибка или нейтральный статус.\n */\n@withRenderEnvironment\n@rootNode\nexport class Toast extends React.Component<ToastProps, ToastState> {\n public static __KONTUR_REACT_UI__ = 'Toast';\n public static displayName = 'Toast';\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private styles!: ReturnType<typeof getStyles>;\n private emotion!: Emotion;\n private theme!: Theme;\n\n public _toast: Nullable<ToastView>;\n private _timeout: SafeTimer;\n private rootRef: React.RefObject<HTMLElement | null> = React.createRef();\n\n constructor(props: ToastProps) {\n super(props);\n this.state = {\n notification: null,\n action: null,\n id: 0,\n showTime: null,\n showCloseIcon: false,\n currentUse: 'default',\n };\n }\n\n public componentWillUnmount() {\n this._clearTimer();\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <ThemeContext.Provider value={this.theme}>\n <RenderContainer>\n <TransitionGroup>{this._renderToast()}</TransitionGroup>\n </RenderContainer>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Показывает тост с `notification` в качестве сообщения.\n * Тост автоматически скрывается через 3 или 7 секунд,\n * в зависимости от наличия у него кнопки `action` внутри config-а.\n * Время показа можно задать вручную, передав `showTime` внутри config-а.\n *\n * @public\n * @param {React.ReactNode} notification\n * @param {ToastPushConfig} config объект с конфигурацией отображения компонента Toast\n */\n public push: ToastPushApi = (notification: React.ReactNode, config?: ToastPushConfig) => {\n this.rootRef = React.createRef();\n\n if (this.state.notification) {\n this.close();\n }\n\n safelyCall(this.props.onPush, notification, config?.action);\n\n this.setState(\n ({ id }) => ({\n notification,\n action: config?.action,\n id: id + 1,\n showTime: config?.showTime,\n showCloseIcon: config?.showCloseIcon,\n currentUse: config?.use ?? 'default',\n }),\n this._setTimer,\n );\n };\n\n /**\n * Закрывает текущее уведомление без ожидания таймера.\n *\n * @public\n */\n public close = (): void => {\n safelyCall(this.props.onClose, this.state.notification, this.state.action);\n this.setState({ notification: null, action: null });\n };\n\n private _renderToast() {\n const { notification, action, id, showCloseIcon, currentUse } = this.state;\n\n if (!notification) {\n return null;\n }\n\n const toastProps: ToastViewProps = {\n onMouseEnter: this._clearTimer,\n onMouseLeave: this._setTimer,\n onClose: this.close,\n children: notification,\n 'aria-label': this.props['aria-label'],\n action,\n showCloseIcon,\n use: currentUse,\n };\n\n return (\n <CSSTransition\n key={id}\n classNames={{\n enter: this.styles.enter(),\n enterActive: this.styles.enterActive(),\n exit: this.styles.exit(),\n exitActive: this.styles.exitActive(),\n }}\n timeout={{\n enter: 200,\n exit: 150,\n }}\n enter={!isTestEnv}\n exit={!isTestEnv}\n nodeRef={this.rootRef}\n >\n <CommonWrapper rootNodeRef={this.setRootRef(this.rootRef)} {...this.props}>\n <ToastView ref={this._refToast} {...toastProps} />\n </CommonWrapper>\n </CSSTransition>\n );\n }\n\n private setRootRef = (ref: React.RefObject<HTMLElement | null>) => (element: Nullable<Element>) => {\n if (ref === this.rootRef) {\n this.setRootNode(element);\n }\n // @ts-expect-error: See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065.\n ref.current = element;\n };\n\n private _clearTimer = () => {\n if (this._timeout) {\n clearTimeout(this._timeout);\n this._timeout = null;\n }\n };\n\n private _setTimer = () => {\n this._clearTimer();\n\n let showTime = this.state.action ? 7000 : 3000;\n showTime = this.state.showTime ?? showTime;\n this._timeout = setTimeout(this.close, showTime);\n };\n\n private _refToast = (element: ToastView) => {\n this._toast = element;\n };\n}\n\nfunction safelyCall(fn: Nullable<(a?: any) => any>, ...args: any[]) {\n if (fn) {\n fn(...args);\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ export declare const getStyles: import("../../lib/theming/Emotion.js").StylesGetter<{
2
+ enter(): string;
3
+ enterActive(): string;
4
+ exit(): string;
5
+ exitActive(): string;
6
+ }>;
@@ -0,0 +1,24 @@
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ import { memoizeGetStyles } from '../../lib/theming/Emotion.js';
6
+ export var getStyles = memoizeGetStyles(function (_a) {
7
+ var css = _a.css;
8
+ return ({
9
+ enter: function () {
10
+ return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n transform: translateY(-40px);\n "], ["\n transform: translateY(-40px);\n "])));
11
+ },
12
+ enterActive: function () {
13
+ return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n transition: transform 0.2s cubic-bezier(0.22, 0.61, 0.36, 1);\n transform: translateY(0) !important;\n "], ["\n transition: transform 0.2s cubic-bezier(0.22, 0.61, 0.36, 1);\n transform: translateY(0) !important;\n "])));
14
+ },
15
+ exit: function () {
16
+ return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n transform: translateY(0);\n opacity: 1;\n "], ["\n transform: translateY(0);\n opacity: 1;\n "])));
17
+ },
18
+ exitActive: function () {
19
+ return css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n opacity: 0.01 !important;\n transition: opacity 0.15s ease-out;\n "], ["\n opacity: 0.01 !important;\n transition: opacity 0.15s ease-out;\n "])));
20
+ },
21
+ });
22
+ });
23
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
24
+ //# sourceMappingURL=Toast.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.styles.js","sourceRoot":"","sources":["Toast.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,KAAK;YACH,OAAO,GAAG,gHAAA,6CAET,KAAC;QACJ,CAAC;QACD,WAAW;YACT,OAAO,GAAG,4LAAA,yHAGT,KAAC;QACJ,CAAC;QACD,IAAI;YACF,OAAO,GAAG,+HAAA,4DAGT,KAAC;QACJ,CAAC;QACD,UAAU;YACR,OAAO,GAAG,uJAAA,oFAGT,KAAC;QACJ,CAAC;KACF,CAAC;AAxB8D,CAwB9D,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n enter() {\n return css`\n transform: translateY(-40px);\n `;\n },\n enterActive() {\n return css`\n transition: transform 0.2s cubic-bezier(0.22, 0.61, 0.36, 1);\n transform: translateY(0) !important;\n `;\n },\n exit() {\n return css`\n transform: translateY(0);\n opacity: 1;\n `;\n },\n exitActive() {\n return css`\n opacity: 0.01 !important;\n transition: opacity 0.15s ease-out;\n `;\n },\n}));\n"]}
@@ -21,6 +21,9 @@ export interface ToastViewProps extends Pick<AriaAttributes, 'aria-label'>, Comm
21
21
  use?: ToastUse;
22
22
  }
23
23
  export declare class ToastView extends React.Component<ToastViewProps> {
24
+ private styles;
25
+ private emotion;
26
+ private cx;
24
27
  private theme;
25
28
  getRootNode: TGetRootNode;
26
29
  private setRootNode;
@@ -34,15 +34,15 @@ import React from 'react';
34
34
  import { CloseButtonIcon } from '../../internal/CloseButtonIcon/CloseButtonIcon.js';
35
35
  import { CommonWrapper } from '../../internal/CommonWrapper/index.js';
36
36
  import { ZIndex } from '../../internal/ZIndex/index.js';
37
- import { cx } from '../../lib/cx.js';
38
37
  import { locale } from '../../lib/locale/decorators.js';
38
+ import { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';
39
39
  import { rootNode } from '../../lib/rootNode/index.js';
40
40
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
41
41
  import { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';
42
42
  import { responsiveLayout } from '../ResponsiveLayout/decorator.js';
43
43
  import { ToastLocaleHelper } from './locale/index.js';
44
44
  import { ToastDataTids } from './Toast.js';
45
- import { styles } from './ToastView.css.js';
45
+ import { getStyles } from './ToastView.styles.js';
46
46
  var ToastView = /** @class */ (function (_super) {
47
47
  __extends(ToastView, _super);
48
48
  function ToastView() {
@@ -59,8 +59,8 @@ var ToastView = /** @class */ (function (_super) {
59
59
  hover: _this.theme.toastCloseHoverColor,
60
60
  default: _this.theme.toastCloseColor,
61
61
  };
62
- var toastActionColorsClassName = use === 'error' ? styles.toastActionErrorColor : styles.toastActionDefaultColor;
63
- var toastActionClassNames = cx(styles.link, isTheme6_1 && styles.link6_1, toastActionColorsClassName);
62
+ var toastActionColorsClassName = use === 'error' ? _this.styles.toastActionErrorColor(_this.theme) : _this.styles.toastActionDefaultColor(_this.theme);
63
+ var toastActionClassNames = _this.cx(_this.styles.link(_this.theme), isTheme6_1 && _this.styles.link6_1(_this.theme), toastActionColorsClassName);
64
64
  var link = action ? (React.createElement("button", { "aria-label": action['aria-label'], "data-tid": ToastDataTids.action, className: toastActionClassNames, onClick: action.handler }, action.label)) : null;
65
65
  var themeDependantProps = isTheme6_1
66
66
  ? {
@@ -70,15 +70,15 @@ var ToastView = /** @class */ (function (_super) {
70
70
  side: parseInt(_this.theme.toastCloseBtnSide),
71
71
  }
72
72
  : { side: 40, size: parseInt(_this.theme.toastCloseSize) };
73
- var close = action || showCloseIcon ? (React.createElement("span", { className: cx(styles.closeWrapper, isTheme6_1 && styles.closeWrapper6_1) },
73
+ var close = action || showCloseIcon ? (React.createElement("span", { className: _this.cx(_this.styles.closeWrapper(_this.theme), isTheme6_1 && _this.styles.closeWrapper6_1()) },
74
74
  React.createElement(CloseButtonIcon, __assign({ "aria-label": _this.locale.closeButtonAriaLabel, "data-tid": ToastDataTids.close, onClick: onClose }, themeDependantProps, { color: toastCloseColors.default, colorHover: toastCloseColors.hover, tabbable: false })))) : null;
75
- var rootClassName = cx(styles.root, isTheme6_1 && styles.root6_1, isTheme6_1 && _this.isMobileLayout && styles.rootMobile, styles[use !== null && use !== void 0 ? use : 'default']);
76
- var wrapperClassName = cx(styles.wrapper, isTheme6_1 && styles.wrapper6_1);
75
+ var rootClassName = _this.cx(_this.styles.root(_this.theme), isTheme6_1 && _this.styles.root6_1(), isTheme6_1 && _this.isMobileLayout && _this.styles.rootMobile(_this.theme), _this.styles[use !== null && use !== void 0 ? use : 'default'](_this.theme));
76
+ var wrapperClassName = _this.cx(_this.styles.wrapper(_this.theme), isTheme6_1 && _this.styles.wrapper6_1(_this.theme));
77
77
  return (React.createElement(CommonWrapper, __assign({}, _this.props),
78
78
  React.createElement(ZIndex, { priority: "Toast", className: wrapperClassName },
79
79
  React.createElement("div", { "data-tid": ToastDataTids.toastView, className: rootClassName, ref: _this.setRootNode, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave },
80
- isTheme6_1 ? (React.createElement("span", { className: styles.content },
81
- React.createElement("span", { className: cx(_this.isMobileLayout && styles.ellipsisContent) }, _this.props.children))) : (React.createElement("span", null, _this.props.children)),
80
+ isTheme6_1 ? (React.createElement("span", { className: _this.styles.content(_this.theme) },
81
+ React.createElement("span", { className: _this.cx(_this.isMobileLayout && _this.styles.ellipsisContent()) }, _this.props.children))) : (React.createElement("span", null, _this.props.children)),
82
82
  link,
83
83
  close))));
84
84
  };
@@ -86,6 +86,7 @@ var ToastView = /** @class */ (function (_super) {
86
86
  }
87
87
  ToastView.prototype.render = function () {
88
88
  var _this = this;
89
+ this.styles = getStyles(this.emotion);
89
90
  return (React.createElement(ThemeContext.Consumer, null, function (theme) {
90
91
  _this.theme = theme;
91
92
  return _this.renderMain();
@@ -93,6 +94,7 @@ var ToastView = /** @class */ (function (_super) {
93
94
  };
94
95
  ToastView = __decorate([
95
96
  responsiveLayout,
97
+ withRenderEnvironment,
96
98
  rootNode,
97
99
  locale('Toast', ToastLocaleHelper)
98
100
  ], ToastView);
@@ -1 +1 @@
1
- {"version":3,"file":"ToastView.js","sourceRoot":"","sources":["ToastView.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\n\nimport { CloseButtonIcon } from '../../internal/CloseButtonIcon/CloseButtonIcon.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { cx } from '../../lib/cx.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator.js';\nimport type { ToastLocale } from './locale/index.js';\nimport { ToastLocaleHelper } from './locale/index.js';\nimport type { Action, ToastUse } from './Toast.js';\nimport { ToastDataTids } from './Toast.js';\nimport { styles } from './ToastView.css.js';\n\nexport interface ToastViewProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps {\n /** Отображает контент уведомления. */\n children?: React.ReactNode;\n /** Добавляет кнопку действия в тост. */\n action?: Nullable<Action>;\n /** Показывает кнопку закрытия рядом с текстом. */\n showCloseIcon?: boolean;\n /** Вызывается при закрытии тоста из разметки. */\n onClose?: () => void;\n /** Вызывается при наведении курсора на тост. */\n onMouseEnter?: () => void;\n /** Вызывается при уходе курсора с тоста. */\n onMouseLeave?: () => void;\n /** Выбирает стиль оформления: обычный или ошибка (`error`). */\n use?: ToastUse;\n}\n\n@responsiveLayout\n@rootNode\n@locale('Toast', ToastLocaleHelper)\nexport class ToastView extends React.Component<ToastViewProps> {\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private readonly locale!: ToastLocale;\n private isMobileLayout!: boolean;\n\n public render(): React.JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = () => {\n const { action, showCloseIcon, onClose, onMouseEnter, onMouseLeave, use } = this.props;\n\n const isTheme6_1 = isThemeGTE(this.theme, '6.1');\n\n const toastCloseColors =\n use === 'error'\n ? {\n hover: this.theme.toastCloseHoverColorError,\n default: this.theme.toastCloseColorError,\n }\n : {\n hover: this.theme.toastCloseHoverColor,\n default: this.theme.toastCloseColor,\n };\n\n const toastActionColorsClassName = use === 'error' ? styles.toastActionErrorColor : styles.toastActionDefaultColor;\n const toastActionClassNames = cx(\n styles.link,\n isTheme6_1 && styles.link6_1,\n\n toastActionColorsClassName,\n );\n\n const link = action ? (\n <button\n aria-label={action['aria-label']}\n data-tid={ToastDataTids.action}\n className={toastActionClassNames}\n onClick={action.handler}\n >\n {action.label}\n </button>\n ) : null;\n\n const themeDependantProps = isTheme6_1\n ? {\n style: {\n height: '100%',\n },\n side: parseInt(this.theme.toastCloseBtnSide),\n }\n : { side: 40, size: parseInt(this.theme.toastCloseSize) };\n\n const close =\n action || showCloseIcon ? (\n <span className={cx(styles.closeWrapper, isTheme6_1 && styles.closeWrapper6_1)}>\n <CloseButtonIcon\n aria-label={this.locale.closeButtonAriaLabel}\n data-tid={ToastDataTids.close}\n onClick={onClose}\n {...themeDependantProps}\n color={toastCloseColors.default}\n colorHover={toastCloseColors.hover}\n tabbable={false}\n />\n </span>\n ) : null;\n\n const rootClassName = cx(\n styles.root,\n isTheme6_1 && styles.root6_1,\n isTheme6_1 && this.isMobileLayout && styles.rootMobile,\n styles[use ?? 'default'],\n );\n\n const wrapperClassName = cx(styles.wrapper, isTheme6_1 && styles.wrapper6_1);\n\n return (\n <CommonWrapper {...this.props}>\n <ZIndex priority=\"Toast\" className={wrapperClassName}>\n <div\n data-tid={ToastDataTids.toastView}\n className={rootClassName}\n ref={this.setRootNode}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {isTheme6_1 ? (\n <span className={styles.content}>\n <span className={cx(this.isMobileLayout && styles.ellipsisContent)}>{this.props.children}</span>\n </span>\n ) : (\n <span>{this.props.children}</span>\n )}\n {link}\n {close}\n </div>\n </ZIndex>\n </CommonWrapper>\n );\n };\n}\n"]}
1
+ {"version":3,"file":"ToastView.js","sourceRoot":"","sources":["ToastView.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes } from 'react';\nimport React from 'react';\n\nimport { CloseButtonIcon } from '../../internal/CloseButtonIcon/CloseButtonIcon.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator.js';\nimport type { ToastLocale } from './locale/index.js';\nimport { ToastLocaleHelper } from './locale/index.js';\nimport type { Action, ToastUse } from './Toast.js';\nimport { ToastDataTids } from './Toast.js';\nimport { getStyles } from './ToastView.styles.js';\n\nexport interface ToastViewProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps {\n /** Отображает контент уведомления. */\n children?: React.ReactNode;\n /** Добавляет кнопку действия в тост. */\n action?: Nullable<Action>;\n /** Показывает кнопку закрытия рядом с текстом. */\n showCloseIcon?: boolean;\n /** Вызывается при закрытии тоста из разметки. */\n onClose?: () => void;\n /** Вызывается при наведении курсора на тост. */\n onMouseEnter?: () => void;\n /** Вызывается при уходе курсора с тоста. */\n onMouseLeave?: () => void;\n /** Выбирает стиль оформления: обычный или ошибка (`error`). */\n use?: ToastUse;\n}\n\n@responsiveLayout\n@withRenderEnvironment\n@rootNode\n@locale('Toast', ToastLocaleHelper)\nexport class ToastView extends React.Component<ToastViewProps> {\n private styles!: ReturnType<typeof getStyles>;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private readonly locale!: ToastLocale;\n private isMobileLayout!: boolean;\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = () => {\n const { action, showCloseIcon, onClose, onMouseEnter, onMouseLeave, use } = this.props;\n\n const isTheme6_1 = isThemeGTE(this.theme, '6.1');\n\n const toastCloseColors =\n use === 'error'\n ? {\n hover: this.theme.toastCloseHoverColorError,\n default: this.theme.toastCloseColorError,\n }\n : {\n hover: this.theme.toastCloseHoverColor,\n default: this.theme.toastCloseColor,\n };\n\n const toastActionColorsClassName =\n use === 'error' ? this.styles.toastActionErrorColor(this.theme) : this.styles.toastActionDefaultColor(this.theme);\n const toastActionClassNames = this.cx(\n this.styles.link(this.theme),\n isTheme6_1 && this.styles.link6_1(this.theme),\n\n toastActionColorsClassName,\n );\n\n const link = action ? (\n <button\n aria-label={action['aria-label']}\n data-tid={ToastDataTids.action}\n className={toastActionClassNames}\n onClick={action.handler}\n >\n {action.label}\n </button>\n ) : null;\n\n const themeDependantProps = isTheme6_1\n ? {\n style: {\n height: '100%',\n },\n side: parseInt(this.theme.toastCloseBtnSide),\n }\n : { side: 40, size: parseInt(this.theme.toastCloseSize) };\n\n const close =\n action || showCloseIcon ? (\n <span className={this.cx(this.styles.closeWrapper(this.theme), isTheme6_1 && this.styles.closeWrapper6_1())}>\n <CloseButtonIcon\n aria-label={this.locale.closeButtonAriaLabel}\n data-tid={ToastDataTids.close}\n onClick={onClose}\n {...themeDependantProps}\n color={toastCloseColors.default}\n colorHover={toastCloseColors.hover}\n tabbable={false}\n />\n </span>\n ) : null;\n\n const rootClassName = this.cx(\n this.styles.root(this.theme),\n isTheme6_1 && this.styles.root6_1(),\n isTheme6_1 && this.isMobileLayout && this.styles.rootMobile(this.theme),\n this.styles[use ?? 'default'](this.theme),\n );\n\n const wrapperClassName = this.cx(this.styles.wrapper(this.theme), isTheme6_1 && this.styles.wrapper6_1(this.theme));\n\n return (\n <CommonWrapper {...this.props}>\n <ZIndex priority=\"Toast\" className={wrapperClassName}>\n <div\n data-tid={ToastDataTids.toastView}\n className={rootClassName}\n ref={this.setRootNode}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {isTheme6_1 ? (\n <span className={this.styles.content(this.theme)}>\n <span className={this.cx(this.isMobileLayout && this.styles.ellipsisContent())}>\n {this.props.children}\n </span>\n </span>\n ) : (\n <span>{this.props.children}</span>\n )}\n {link}\n {close}\n </div>\n </ZIndex>\n </CommonWrapper>\n );\n };\n}\n"]}
@@ -0,0 +1,18 @@
1
+ import type { Theme } from '../../lib/theming/Theme.js';
2
+ export declare const getStyles: import("../../lib/theming/Emotion.js").StylesGetter<{
3
+ root(t: Theme): string;
4
+ root6_1(): string;
5
+ rootMobile(t: Theme): string;
6
+ default(t: Theme): string;
7
+ error(t: Theme): string;
8
+ wrapper(t: Theme): string;
9
+ wrapper6_1(t: Theme): string;
10
+ content(t: Theme): string;
11
+ ellipsisContent(): string;
12
+ closeWrapper(t: Theme): string;
13
+ closeWrapper6_1(): string;
14
+ link(t: Theme): string;
15
+ link6_1(t: Theme): string;
16
+ toastActionErrorColor(t: Theme): string;
17
+ toastActionDefaultColor(t: Theme): string;
18
+ }>;