@skbkontur/react-ui 6.4.2-static-css.0 → 6.4.3-6344a.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (941) hide show
  1. package/README.md +0 -97
  2. package/components/Autocomplete/Autocomplete.css.d.ts +5 -0
  3. package/components/Autocomplete/Autocomplete.css.js +3 -0
  4. package/components/Autocomplete/Autocomplete.css.js.map +1 -0
  5. package/components/Autocomplete/Autocomplete.d.ts +1 -0
  6. package/components/Autocomplete/Autocomplete.js +5 -14
  7. package/components/Autocomplete/Autocomplete.js.map +1 -1
  8. package/components/Button/Button.css.d.ts +95 -0
  9. package/components/Button/Button.css.js +5 -0
  10. package/components/Button/Button.css.js.map +1 -0
  11. package/components/Button/Button.d.ts +1 -15
  12. package/components/Button/Button.js +77 -162
  13. package/components/Button/Button.js.map +1 -1
  14. package/components/Button/Button.mixins.d.ts +4 -0
  15. package/components/Button/Button.mixins.js +26 -0
  16. package/components/Button/Button.mixins.js.map +1 -0
  17. package/components/Button/ButtonArrow.d.ts +4 -3
  18. package/components/Button/ButtonArrow.js +11 -9
  19. package/components/Button/ButtonArrow.js.map +1 -1
  20. package/components/Button/ButtonIcon.css.d.ts +16 -0
  21. package/components/Button/ButtonIcon.css.js +3 -0
  22. package/components/Button/ButtonIcon.css.js.map +1 -0
  23. package/components/Button/ButtonIcon.js +18 -8
  24. package/components/Button/ButtonIcon.js.map +1 -1
  25. package/components/Button/LoadingButtonIcon.js +1 -1
  26. package/components/Button/LoadingButtonIcon.js.map +1 -1
  27. package/components/Calendar/Calendar.css.d.ts +6 -0
  28. package/components/Calendar/Calendar.css.js +3 -0
  29. package/components/Calendar/Calendar.css.js.map +1 -0
  30. package/components/Calendar/Calendar.d.ts +1 -0
  31. package/components/Calendar/Calendar.js +4 -4
  32. package/components/Calendar/Calendar.js.map +1 -1
  33. package/components/Calendar/CalendarDay.js +8 -12
  34. package/components/Calendar/CalendarDay.js.map +1 -1
  35. package/components/Calendar/DayCellView.css.d.ts +9 -0
  36. package/components/Calendar/DayCellView.css.js +3 -0
  37. package/components/Calendar/DayCellView.css.js.map +1 -0
  38. package/components/Calendar/DayCellView.js +4 -2
  39. package/components/Calendar/DayCellView.js.map +1 -1
  40. package/components/Calendar/Month.js +12 -8
  41. package/components/Calendar/Month.js.map +1 -1
  42. package/components/Calendar/MonthView.css.d.ts +13 -0
  43. package/components/Calendar/MonthView.css.js +3 -0
  44. package/components/Calendar/MonthView.css.js.map +1 -0
  45. package/components/Calendar/MonthView.js +8 -8
  46. package/components/Calendar/MonthView.js.map +1 -1
  47. package/components/Center/Center.css.d.ts +7 -0
  48. package/components/Center/Center.css.js +3 -0
  49. package/components/Center/Center.css.js.map +1 -0
  50. package/components/Center/Center.d.ts +1 -0
  51. package/components/Center/Center.js +2 -2
  52. package/components/Center/Center.js.map +1 -1
  53. package/components/Checkbox/Checkbox.css.d.ts +35 -0
  54. package/components/Checkbox/Checkbox.css.js +5 -0
  55. package/components/Checkbox/Checkbox.css.js.map +1 -0
  56. package/components/Checkbox/Checkbox.d.ts +1 -8
  57. package/components/Checkbox/Checkbox.js +27 -58
  58. package/components/Checkbox/Checkbox.js.map +1 -1
  59. package/components/Checkbox/Checkbox.mixins.d.ts +4 -0
  60. package/components/Checkbox/Checkbox.mixins.js +15 -0
  61. package/components/Checkbox/Checkbox.mixins.js.map +1 -0
  62. package/components/DateInput/DateFragmentsView.css.d.ts +7 -0
  63. package/components/DateInput/DateFragmentsView.css.js +3 -0
  64. package/components/DateInput/DateFragmentsView.css.js.map +1 -0
  65. package/components/DateInput/DateFragmentsView.d.ts +2 -0
  66. package/components/DateInput/DateFragmentsView.js +8 -11
  67. package/components/DateInput/DateFragmentsView.js.map +1 -1
  68. package/components/DateInput/DateInput.css.d.ts +10 -0
  69. package/components/DateInput/DateInput.css.js +3 -0
  70. package/components/DateInput/DateInput.css.js.map +1 -0
  71. package/components/DateInput/DateInput.d.ts +2 -0
  72. package/components/DateInput/DateInput.js +9 -7
  73. package/components/DateInput/DateInput.js.map +1 -1
  74. package/components/DatePicker/DatePicker.css.d.ts +5 -0
  75. package/components/DatePicker/DatePicker.css.js +3 -0
  76. package/components/DatePicker/DatePicker.css.js.map +1 -0
  77. package/components/DatePicker/DatePicker.d.ts +1 -0
  78. package/components/DatePicker/DatePicker.js +3 -3
  79. package/components/DatePicker/DatePicker.js.map +1 -1
  80. package/components/DatePicker/MobilePicker.css.d.ts +3 -0
  81. package/components/DatePicker/MobilePicker.css.js +3 -0
  82. package/components/DatePicker/MobilePicker.css.js.map +1 -0
  83. package/components/DatePicker/MobilePicker.js +1 -1
  84. package/components/DatePicker/MobilePicker.js.map +1 -1
  85. package/components/DatePicker/getMobilePickerTheme.js +9 -27
  86. package/components/DatePicker/getMobilePickerTheme.js.map +1 -1
  87. package/components/DateRangePicker/DateRangePicker.css.d.ts +20 -0
  88. package/components/DateRangePicker/DateRangePicker.css.js +3 -0
  89. package/components/DateRangePicker/DateRangePicker.css.js.map +1 -0
  90. package/components/DateRangePicker/DateRangePicker.d.ts +4 -4
  91. package/components/DateRangePicker/DateRangePicker.js +28 -21
  92. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  93. package/components/DateRangePicker/DateRangePickerTheme.js +10 -30
  94. package/components/DateRangePicker/DateRangePickerTheme.js.map +1 -1
  95. package/components/Dropdown/getDropdownTheme.d.ts +0 -11
  96. package/components/Dropdown/getDropdownTheme.js +4 -23
  97. package/components/Dropdown/getDropdownTheme.js.map +1 -1
  98. package/components/DropdownMenu/getDropdownMenuTheme.js +2 -9
  99. package/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
  100. package/components/FileUploader/FileUploader.css.d.ts +74 -0
  101. package/components/FileUploader/FileUploader.css.js +6 -0
  102. package/components/FileUploader/FileUploader.css.js.map +1 -0
  103. package/components/FileUploader/FileUploader.d.ts +1 -2
  104. package/components/FileUploader/FileUploader.js +46 -51
  105. package/components/FileUploader/FileUploader.js.map +1 -1
  106. package/components/FileUploader/FileUploader.mixins.d.ts +1 -0
  107. package/components/FileUploader/FileUploader.mixins.js +4 -0
  108. package/components/FileUploader/FileUploader.mixins.js.map +1 -0
  109. package/components/FileUploader/FileUploaderFile.css.d.ts +60 -0
  110. package/components/FileUploader/FileUploaderFile.css.js +5 -0
  111. package/components/FileUploader/FileUploaderFile.css.js.map +1 -0
  112. package/components/FileUploader/FileUploaderFile.js +31 -29
  113. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  114. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.d.ts +34 -0
  115. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js +5 -0
  116. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js.map +1 -0
  117. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js +20 -18
  118. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  119. package/components/FileUploader/FileUploaderFileStatusIcon.js +5 -3
  120. package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -1
  121. package/components/FileUploader/FileUploaderFileTypeIcon.js +52 -47
  122. package/components/FileUploader/FileUploaderFileTypeIcon.js.map +1 -1
  123. package/components/FxInput/FxInput.d.ts +1 -1
  124. package/components/FxInput/FxInput.js +3 -7
  125. package/components/FxInput/FxInput.js.map +1 -1
  126. package/components/FxInput/FxInputRestoreBtn.js +15 -23
  127. package/components/FxInput/FxInputRestoreBtn.js.map +1 -1
  128. package/components/GlobalLoader/GlobalLoaderView.css.d.ts +21 -0
  129. package/components/GlobalLoader/GlobalLoaderView.css.js +4 -0
  130. package/components/GlobalLoader/GlobalLoaderView.css.js.map +1 -0
  131. package/components/GlobalLoader/GlobalLoaderView.js +20 -30
  132. package/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  133. package/components/Group/Group.css.d.ts +8 -0
  134. package/components/Group/Group.css.js +3 -0
  135. package/components/Group/Group.css.js.map +1 -0
  136. package/components/Group/Group.d.ts +1 -0
  137. package/components/Group/Group.js +4 -3
  138. package/components/Group/Group.js.map +1 -1
  139. package/components/Hint/Hint.css.d.ts +5 -0
  140. package/components/Hint/Hint.css.js +3 -0
  141. package/components/Hint/Hint.css.js.map +1 -0
  142. package/components/Hint/Hint.d.ts +1 -0
  143. package/components/Hint/Hint.js +4 -4
  144. package/components/Hint/Hint.js.map +1 -1
  145. package/components/Input/Input.css.d.ts +21 -0
  146. package/components/Input/Input.css.js +3 -0
  147. package/components/Input/Input.css.js.map +1 -0
  148. package/components/Input/Input.d.ts +1 -0
  149. package/components/Input/Input.js +14 -14
  150. package/components/Input/Input.js.map +1 -1
  151. package/components/Input/InputLayout/InputLayout.css.d.ts +18 -0
  152. package/components/Input/InputLayout/InputLayout.css.js +4 -0
  153. package/components/Input/InputLayout/InputLayout.css.js.map +1 -0
  154. package/components/Input/InputLayout/InputLayout.js +1 -1
  155. package/components/Input/InputLayout/InputLayout.js.map +1 -1
  156. package/components/Input/InputLayout/InputLayoutAside.js +1 -1
  157. package/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  158. package/components/Input/InputLayout/InputLayoutAsideCounter.js +9 -9
  159. package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -1
  160. package/components/Input/InputLayout/InputLayoutAsideIcon.js +26 -20
  161. package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  162. package/components/Input/InputLayout/InputLayoutAsideText.js +5 -5
  163. package/components/Input/InputLayout/InputLayoutAsideText.js.map +1 -1
  164. package/components/Kebab/Kebab.css.d.ts +11 -0
  165. package/components/Kebab/Kebab.css.js +3 -0
  166. package/components/Kebab/Kebab.css.js.map +1 -0
  167. package/components/Kebab/Kebab.d.ts +1 -0
  168. package/components/Kebab/Kebab.js +3 -3
  169. package/components/Kebab/Kebab.js.map +1 -1
  170. package/components/Link/Link.css.d.ts +24 -0
  171. package/components/Link/Link.css.js +3 -0
  172. package/components/Link/Link.css.js.map +1 -0
  173. package/components/Link/Link.d.ts +1 -0
  174. package/components/Link/Link.js +19 -23
  175. package/components/Link/Link.js.map +1 -1
  176. package/components/Link/Link.mixins.d.ts +2 -0
  177. package/components/Link/Link.mixins.js +7 -0
  178. package/components/Link/Link.mixins.js.map +1 -0
  179. package/components/Link/LinkIcon.js +7 -5
  180. package/components/Link/LinkIcon.js.map +1 -1
  181. package/components/Loader/Loader.css.d.ts +8 -0
  182. package/components/Loader/Loader.css.js +3 -0
  183. package/components/Loader/Loader.css.js.map +1 -0
  184. package/components/Loader/Loader.d.ts +2 -0
  185. package/components/Loader/Loader.js +4 -3
  186. package/components/Loader/Loader.js.map +1 -1
  187. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.d.ts +6 -0
  188. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js +4 -0
  189. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js.map +1 -0
  190. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +22 -16
  191. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  192. package/components/MaskedInput/MaskedInput.css.d.ts +7 -0
  193. package/components/MaskedInput/MaskedInput.css.js +4 -0
  194. package/components/MaskedInput/MaskedInput.css.js.map +1 -0
  195. package/components/MaskedInput/MaskedInputLegacy.js +7 -5
  196. package/components/MaskedInput/MaskedInputLegacy.js.map +1 -1
  197. package/components/MaskedInputV2/MaskedInputV2.css.d.ts +7 -0
  198. package/components/MaskedInputV2/MaskedInputV2.css.js +4 -0
  199. package/components/MaskedInputV2/MaskedInputV2.css.js.map +1 -0
  200. package/components/MaskedInputV2/MaskedInputV2.js +7 -5
  201. package/components/MaskedInputV2/MaskedInputV2.js.map +1 -1
  202. package/components/MaskedInputV2/internal/MaskOverlay.js +9 -9
  203. package/components/MaskedInputV2/internal/MaskOverlay.js.map +1 -1
  204. package/components/MaskedInputV2/internal/MaskedCore.js +6 -8
  205. package/components/MaskedInputV2/internal/MaskedCore.js.map +1 -1
  206. package/components/MaskedInputV2/internal/MaskedInternal.css.d.ts +15 -0
  207. package/components/MaskedInputV2/internal/MaskedInternal.css.js +4 -0
  208. package/components/MaskedInputV2/internal/MaskedInternal.css.js.map +1 -0
  209. package/components/MenuFooter/MenuFooter.css.d.ts +10 -0
  210. package/components/MenuFooter/MenuFooter.css.js +3 -0
  211. package/components/MenuFooter/MenuFooter.css.js.map +1 -0
  212. package/components/MenuFooter/MenuFooter.js +13 -11
  213. package/components/MenuFooter/MenuFooter.js.map +1 -1
  214. package/components/MenuFooter/MenuFooter.mixins.d.ts +2 -0
  215. package/components/MenuFooter/MenuFooter.mixins.js +8 -0
  216. package/components/MenuFooter/MenuFooter.mixins.js.map +1 -0
  217. package/components/MenuHeader/MenuHeader.css.d.ts +10 -0
  218. package/components/MenuHeader/MenuHeader.css.js +3 -0
  219. package/components/MenuHeader/MenuHeader.css.js.map +1 -0
  220. package/components/MenuHeader/MenuHeader.js +12 -10
  221. package/components/MenuHeader/MenuHeader.js.map +1 -1
  222. package/components/MenuHeader/MenuHeader.mixins.d.ts +2 -0
  223. package/components/MenuHeader/MenuHeader.mixins.js +8 -0
  224. package/components/MenuHeader/MenuHeader.mixins.js.map +1 -0
  225. package/components/MenuItem/MenuItem.css.d.ts +27 -0
  226. package/components/MenuItem/MenuItem.css.js +3 -0
  227. package/components/MenuItem/MenuItem.css.js.map +1 -0
  228. package/components/MenuItem/MenuItem.d.ts +1 -0
  229. package/components/MenuItem/MenuItem.js +22 -22
  230. package/components/MenuItem/MenuItem.js.map +1 -1
  231. package/components/MenuItem/MenuItem.mixins.d.ts +0 -6
  232. package/components/MenuItem/MenuItem.mixins.js +0 -6
  233. package/components/MenuItem/MenuItem.mixins.js.map +1 -1
  234. package/components/MenuSeparator/MenuSeparator.css.d.ts +5 -0
  235. package/components/MenuSeparator/MenuSeparator.css.js +3 -0
  236. package/components/MenuSeparator/MenuSeparator.css.js.map +1 -0
  237. package/components/MenuSeparator/MenuSeparator.js +7 -5
  238. package/components/MenuSeparator/MenuSeparator.js.map +1 -1
  239. package/components/MiniModal/MiniModal.css.d.ts +11 -0
  240. package/components/MiniModal/MiniModal.css.js +4 -0
  241. package/components/MiniModal/MiniModal.css.js.map +1 -0
  242. package/components/MiniModal/MiniModalBody.js +4 -4
  243. package/components/MiniModal/MiniModalBody.js.map +1 -1
  244. package/components/MiniModal/MiniModalFooter.js +7 -5
  245. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  246. package/components/MiniModal/MiniModalHeader.js +7 -5
  247. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  248. package/components/MiniModal/MiniModalIndent.js +5 -3
  249. package/components/MiniModal/MiniModalIndent.js.map +1 -1
  250. package/components/MiniModal/getMiniModalTheme.js +13 -39
  251. package/components/MiniModal/getMiniModalTheme.js.map +1 -1
  252. package/components/Modal/Modal.css.d.ts +55 -0
  253. package/components/Modal/Modal.css.js +4 -0
  254. package/components/Modal/Modal.css.js.map +1 -0
  255. package/components/Modal/Modal.d.ts +1 -0
  256. package/components/Modal/Modal.js +9 -9
  257. package/components/Modal/Modal.js.map +1 -1
  258. package/components/Modal/ModalBody.d.ts +1 -0
  259. package/components/Modal/ModalBody.js +8 -8
  260. package/components/Modal/ModalBody.js.map +1 -1
  261. package/components/Modal/ModalClose.js +10 -8
  262. package/components/Modal/ModalClose.js.map +1 -1
  263. package/components/Modal/ModalFooter.js +4 -4
  264. package/components/Modal/ModalFooter.js.map +1 -1
  265. package/components/Modal/ModalHeader.js +4 -4
  266. package/components/Modal/ModalHeader.js.map +1 -1
  267. package/components/Modal/ModalSeparator.js +7 -5
  268. package/components/Modal/ModalSeparator.js.map +1 -1
  269. package/components/Paging/Paging.css.d.ts +32 -0
  270. package/components/Paging/Paging.css.js +3 -0
  271. package/components/Paging/Paging.css.js.map +1 -0
  272. package/components/Paging/Paging.d.ts +2 -0
  273. package/components/Paging/Paging.js +38 -33
  274. package/components/Paging/Paging.js.map +1 -1
  275. package/components/PasswordInput/PasswordInput.css.d.ts +11 -0
  276. package/components/PasswordInput/PasswordInput.css.js +3 -0
  277. package/components/PasswordInput/PasswordInput.css.js.map +1 -0
  278. package/components/PasswordInput/PasswordInput.d.ts +2 -0
  279. package/components/PasswordInput/PasswordInput.js +12 -7
  280. package/components/PasswordInput/PasswordInput.js.map +1 -1
  281. package/components/Radio/Radio.css.d.ts +35 -0
  282. package/components/Radio/Radio.css.js +5 -0
  283. package/components/Radio/Radio.css.js.map +1 -0
  284. package/components/Radio/Radio.d.ts +1 -8
  285. package/components/Radio/Radio.js +29 -60
  286. package/components/Radio/Radio.js.map +1 -1
  287. package/components/Radio/Radio.mixins.d.ts +7 -0
  288. package/components/Radio/Radio.mixins.js +27 -0
  289. package/components/Radio/Radio.mixins.js.map +1 -0
  290. package/components/RadioGroup/RadioGroup.css.d.ts +6 -0
  291. package/components/RadioGroup/RadioGroup.css.js +3 -0
  292. package/components/RadioGroup/RadioGroup.css.js.map +1 -0
  293. package/components/RadioGroup/RadioGroup.d.ts +1 -0
  294. package/components/RadioGroup/RadioGroup.js +3 -2
  295. package/components/RadioGroup/RadioGroup.js.map +1 -1
  296. package/components/ScrollContainer/ScrollBar.d.ts +3 -1
  297. package/components/ScrollContainer/ScrollBar.js +15 -10
  298. package/components/ScrollContainer/ScrollBar.js.map +1 -1
  299. package/components/ScrollContainer/ScrollContainer.css.d.ts +21 -0
  300. package/components/ScrollContainer/ScrollContainer.css.js +4 -0
  301. package/components/ScrollContainer/ScrollContainer.css.js.map +1 -0
  302. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  303. package/components/ScrollContainer/ScrollContainer.js +2 -2
  304. package/components/ScrollContainer/ScrollContainer.js.map +1 -1
  305. package/components/Select/Select.css.d.ts +18 -0
  306. package/components/Select/Select.css.js +3 -0
  307. package/components/Select/Select.css.js.map +1 -0
  308. package/components/Select/Select.d.ts +1 -0
  309. package/components/Select/Select.js +14 -14
  310. package/components/Select/Select.js.map +1 -1
  311. package/components/Select/selectTheme.js +7 -31
  312. package/components/Select/selectTheme.js.map +1 -1
  313. package/components/SidePage/SidePage.css.d.ts +50 -0
  314. package/components/SidePage/SidePage.css.js +3 -0
  315. package/components/SidePage/SidePage.css.js.map +1 -0
  316. package/components/SidePage/SidePage.d.ts +6 -0
  317. package/components/SidePage/SidePage.js +28 -10
  318. package/components/SidePage/SidePage.js.map +1 -1
  319. package/components/SidePage/SidePageBody.d.ts +1 -0
  320. package/components/SidePage/SidePageBody.js +9 -8
  321. package/components/SidePage/SidePageBody.js.map +1 -1
  322. package/components/SidePage/SidePageCloseButton.js +9 -7
  323. package/components/SidePage/SidePageCloseButton.js.map +1 -1
  324. package/components/SidePage/SidePageContainer.d.ts +2 -0
  325. package/components/SidePage/SidePageContainer.js +14 -12
  326. package/components/SidePage/SidePageContainer.js.map +1 -1
  327. package/components/SidePage/SidePageContext.d.ts +2 -0
  328. package/components/SidePage/SidePageContext.js.map +1 -1
  329. package/components/SidePage/SidePageFooter.d.ts +2 -0
  330. package/components/SidePage/SidePageFooter.js +18 -13
  331. package/components/SidePage/SidePageFooter.js.map +1 -1
  332. package/components/SidePage/SidePageHeader.d.ts +2 -0
  333. package/components/SidePage/SidePageHeader.js +21 -12
  334. package/components/SidePage/SidePageHeader.js.map +1 -1
  335. package/components/Spinner/Spinner.css.d.ts +13 -0
  336. package/components/Spinner/Spinner.css.js +3 -0
  337. package/components/Spinner/Spinner.css.js.map +1 -0
  338. package/components/Spinner/Spinner.d.ts +2 -0
  339. package/components/Spinner/Spinner.js +11 -8
  340. package/components/Spinner/Spinner.js.map +1 -1
  341. package/components/Sticky/Sticky.css.d.ts +7 -0
  342. package/components/Sticky/Sticky.css.js +3 -0
  343. package/components/Sticky/Sticky.css.js.map +1 -0
  344. package/components/Sticky/Sticky.d.ts +1 -0
  345. package/components/Sticky/Sticky.js +2 -2
  346. package/components/Sticky/Sticky.js.map +1 -1
  347. package/components/Switcher/Switcher.css.d.ts +12 -0
  348. package/components/Switcher/Switcher.css.js +3 -0
  349. package/components/Switcher/Switcher.css.js.map +1 -0
  350. package/components/Switcher/Switcher.d.ts +1 -0
  351. package/components/Switcher/Switcher.js +7 -7
  352. package/components/Switcher/Switcher.js.map +1 -1
  353. package/components/Switcher/switcherTheme.js +4 -12
  354. package/components/Switcher/switcherTheme.js.map +1 -1
  355. package/components/Tabs/Indicator.css.d.ts +8 -0
  356. package/components/Tabs/Indicator.css.js +3 -0
  357. package/components/Tabs/Indicator.css.js.map +1 -0
  358. package/components/Tabs/Indicator.d.ts +1 -0
  359. package/components/Tabs/Indicator.js +3 -3
  360. package/components/Tabs/Indicator.js.map +1 -1
  361. package/components/Tabs/Tab.css.d.ts +33 -0
  362. package/components/Tabs/Tab.css.js +6 -0
  363. package/components/Tabs/Tab.css.js.map +1 -0
  364. package/components/Tabs/Tab.d.ts +2 -0
  365. package/components/Tabs/Tab.js +25 -20
  366. package/components/Tabs/Tab.js.map +1 -1
  367. package/components/Tabs/Tabs.css.d.ts +7 -0
  368. package/components/Tabs/Tabs.css.js +3 -0
  369. package/components/Tabs/Tabs.css.js.map +1 -0
  370. package/components/Tabs/Tabs.d.ts +2 -0
  371. package/components/Tabs/Tabs.js +30 -25
  372. package/components/Tabs/Tabs.js.map +1 -1
  373. package/components/Tabs/helpers.d.ts +6 -0
  374. package/components/Tabs/helpers.js +25 -0
  375. package/components/Tabs/helpers.js.map +1 -0
  376. package/components/Textarea/Textarea.css.d.ts +23 -0
  377. package/components/Textarea/Textarea.css.js +3 -0
  378. package/components/Textarea/Textarea.css.js.map +1 -0
  379. package/components/Textarea/Textarea.d.ts +2 -0
  380. package/components/Textarea/Textarea.js +25 -18
  381. package/components/Textarea/Textarea.js.map +1 -1
  382. package/components/Textarea/Textarea.mixins.d.ts +2 -0
  383. package/components/Textarea/Textarea.mixins.js +7 -0
  384. package/components/Textarea/Textarea.mixins.js.map +1 -0
  385. package/components/Textarea/TextareaCounter.js +15 -23
  386. package/components/Textarea/TextareaCounter.js.map +1 -1
  387. package/components/TimePicker/TimePicker.css.d.ts +12 -0
  388. package/components/TimePicker/TimePicker.css.js +3 -0
  389. package/components/TimePicker/TimePicker.css.js.map +1 -0
  390. package/components/TimePicker/TimePicker.js +1 -1
  391. package/components/TimePicker/TimePicker.js.map +1 -1
  392. package/components/TimePicker/TimePickerItems.js +7 -7
  393. package/components/TimePicker/TimePickerItems.js.map +1 -1
  394. package/components/TimePicker/TimePickerPopup.js +2 -2
  395. package/components/TimePicker/TimePickerPopup.js.map +1 -1
  396. package/components/Toast/Toast.css.d.ts +6 -0
  397. package/components/Toast/Toast.css.js +3 -0
  398. package/components/Toast/Toast.css.js.map +1 -0
  399. package/components/Toast/Toast.d.ts +1 -0
  400. package/components/Toast/Toast.js +2 -2
  401. package/components/Toast/Toast.js.map +1 -1
  402. package/components/Toast/ToastView.css.d.ts +18 -0
  403. package/components/Toast/ToastView.css.js +3 -0
  404. package/components/Toast/ToastView.css.js.map +1 -0
  405. package/components/Toast/ToastView.d.ts +1 -0
  406. package/components/Toast/ToastView.js +18 -10
  407. package/components/Toast/ToastView.js.map +1 -1
  408. package/components/Toggle/Toggle.css.d.ts +50 -0
  409. package/components/Toggle/Toggle.css.js +5 -0
  410. package/components/Toggle/Toggle.css.js.map +1 -0
  411. package/components/Toggle/Toggle.d.ts +1 -1
  412. package/components/Toggle/Toggle.js +40 -56
  413. package/components/Toggle/Toggle.js.map +1 -1
  414. package/components/Toggle/Toggle.mixins.d.ts +8 -0
  415. package/components/Toggle/Toggle.mixins.js +29 -0
  416. package/components/Toggle/Toggle.mixins.js.map +1 -0
  417. package/components/Token/Token.css.d.ts +23 -0
  418. package/components/Token/Token.css.js +4 -0
  419. package/components/Token/Token.css.js.map +1 -0
  420. package/components/Token/Token.d.ts +2 -0
  421. package/components/Token/Token.js +11 -6
  422. package/components/Token/Token.js.map +1 -1
  423. package/components/Token/Token.mixins.d.ts +1 -0
  424. package/components/Token/Token.mixins.js +4 -0
  425. package/components/Token/Token.mixins.js.map +1 -0
  426. package/components/Token/TokenView.js +11 -9
  427. package/components/Token/TokenView.js.map +1 -1
  428. package/components/TokenInput/TextWidthHelper.d.ts +1 -0
  429. package/components/TokenInput/TextWidthHelper.js +5 -5
  430. package/components/TokenInput/TextWidthHelper.js.map +1 -1
  431. package/components/TokenInput/TokenInput.css.d.ts +21 -0
  432. package/components/TokenInput/TokenInput.css.js +4 -0
  433. package/components/TokenInput/TokenInput.css.js.map +1 -0
  434. package/components/TokenInput/TokenInput.d.ts +2 -1
  435. package/components/TokenInput/TokenInput.js +23 -21
  436. package/components/TokenInput/TokenInput.js.map +1 -1
  437. package/components/TokenInput/TokenInput.mixins.d.ts +2 -0
  438. package/components/TokenInput/TokenInput.mixins.js +7 -0
  439. package/components/TokenInput/TokenInput.mixins.js.map +1 -0
  440. package/components/Tooltip/Tooltip.css.d.ts +11 -0
  441. package/components/Tooltip/Tooltip.css.js +3 -0
  442. package/components/Tooltip/Tooltip.css.js.map +1 -0
  443. package/components/Tooltip/Tooltip.d.ts +1 -0
  444. package/components/Tooltip/Tooltip.js +13 -13
  445. package/components/Tooltip/Tooltip.js.map +1 -1
  446. package/index.d.ts +0 -4
  447. package/index.js +0 -12
  448. package/index.js.map +1 -1
  449. package/internal/ClearCrossIcon/ClearCrossIcon.css.d.ts +11 -0
  450. package/internal/ClearCrossIcon/ClearCrossIcon.css.js +3 -0
  451. package/internal/ClearCrossIcon/ClearCrossIcon.css.js.map +1 -0
  452. package/internal/ClearCrossIcon/ClearCrossIcon.js +10 -8
  453. package/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  454. package/internal/CloseButtonIcon/CloseButtonIcon.css.d.ts +9 -0
  455. package/internal/CloseButtonIcon/CloseButtonIcon.css.js +3 -0
  456. package/internal/CloseButtonIcon/CloseButtonIcon.css.js.map +1 -0
  457. package/internal/CloseButtonIcon/CloseButtonIcon.d.ts +11 -21
  458. package/internal/CloseButtonIcon/CloseButtonIcon.js +19 -29
  459. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  460. package/internal/CommonWrapper/CommonWrapper.d.ts +4 -3
  461. package/internal/CommonWrapper/CommonWrapper.js +17 -104
  462. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  463. package/internal/CustomComboBox/ComboBoxView.d.ts +2 -1
  464. package/internal/CustomComboBox/ComboBoxView.js +9 -10
  465. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  466. package/internal/CustomComboBox/CustomComboBox.css.d.ts +4 -0
  467. package/internal/CustomComboBox/CustomComboBox.css.js +3 -0
  468. package/internal/CustomComboBox/CustomComboBox.css.js.map +1 -0
  469. package/internal/DateSelect/DateSelect.css.d.ts +9 -0
  470. package/internal/DateSelect/DateSelect.css.js +4 -0
  471. package/internal/DateSelect/DateSelect.css.js.map +1 -0
  472. package/internal/DateSelect/DateSelect.d.ts +1 -0
  473. package/internal/DateSelect/DateSelect.js +3 -3
  474. package/internal/DateSelect/DateSelect.js.map +1 -1
  475. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.d.ts +3 -0
  476. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js +3 -0
  477. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js.map +1 -0
  478. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +2 -16
  479. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +12 -37
  480. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  481. package/internal/InputLikeText/InputLikeText.css.d.ts +8 -0
  482. package/internal/InputLikeText/InputLikeText.css.js +3 -0
  483. package/internal/InputLikeText/InputLikeText.css.js.map +1 -0
  484. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  485. package/internal/InputLikeText/InputLikeText.js +19 -23
  486. package/internal/InputLikeText/InputLikeText.js.map +1 -1
  487. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.d.ts +5 -0
  488. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js +4 -0
  489. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js.map +1 -0
  490. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
  491. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +17 -17
  492. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  493. package/internal/MaskCharLowLine/MaskCharLowLine.css.d.ts +3 -0
  494. package/internal/MaskCharLowLine/MaskCharLowLine.css.js +3 -0
  495. package/internal/MaskCharLowLine/MaskCharLowLine.css.js.map +1 -0
  496. package/internal/MaskCharLowLine/MaskCharLowLine.js +1 -1
  497. package/internal/MaskCharLowLine/MaskCharLowLine.js.map +1 -1
  498. package/internal/Menu/Menu.css.d.ts +16 -0
  499. package/internal/Menu/Menu.css.js +3 -0
  500. package/internal/Menu/Menu.css.js.map +1 -0
  501. package/internal/Menu/Menu.d.ts +1 -0
  502. package/internal/Menu/Menu.js +10 -10
  503. package/internal/Menu/Menu.js.map +1 -1
  504. package/internal/MenuMessage/MenuMessage.css.d.ts +11 -0
  505. package/internal/MenuMessage/MenuMessage.css.js +3 -0
  506. package/internal/MenuMessage/MenuMessage.css.js.map +1 -0
  507. package/internal/MenuMessage/MenuMessage.js +11 -11
  508. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  509. package/internal/MobilePopup/MobilePopup.css.d.ts +17 -0
  510. package/internal/MobilePopup/MobilePopup.css.js +3 -0
  511. package/internal/MobilePopup/MobilePopup.css.js.map +1 -0
  512. package/internal/MobilePopup/MobilePopup.d.ts +1 -0
  513. package/internal/MobilePopup/MobilePopup.js +12 -24
  514. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  515. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.d.ts +7 -0
  516. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js +3 -0
  517. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js.map +1 -0
  518. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +1 -0
  519. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +6 -6
  520. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  521. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.d.ts +14 -0
  522. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js +3 -0
  523. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js.map +1 -0
  524. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
  525. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +11 -11
  526. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  527. package/internal/NativeDateInput/NativeDateInput.css.d.ts +3 -0
  528. package/internal/NativeDateInput/NativeDateInput.css.js +3 -0
  529. package/internal/NativeDateInput/NativeDateInput.css.js.map +1 -0
  530. package/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
  531. package/internal/NativeDateInput/NativeDateInput.js +2 -2
  532. package/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  533. package/internal/NativeTimeInput/NativeTimeInput.css.d.ts +3 -0
  534. package/internal/NativeTimeInput/NativeTimeInput.css.js +3 -0
  535. package/internal/NativeTimeInput/NativeTimeInput.css.js.map +1 -0
  536. package/internal/NativeTimeInput/NativeTimeInput.js +3 -2
  537. package/internal/NativeTimeInput/NativeTimeInput.js.map +1 -1
  538. package/internal/Popup/Popup.css.d.ts +22 -0
  539. package/internal/Popup/Popup.css.js +3 -0
  540. package/internal/Popup/Popup.css.js.map +1 -0
  541. package/internal/Popup/Popup.d.ts +1 -0
  542. package/internal/Popup/Popup.js +6 -6
  543. package/internal/Popup/Popup.js.map +1 -1
  544. package/internal/Popup/PopupPin.css.d.ts +9 -0
  545. package/internal/Popup/PopupPin.css.js +3 -0
  546. package/internal/Popup/PopupPin.css.js.map +1 -0
  547. package/internal/Popup/PopupPin.d.ts +1 -0
  548. package/internal/Popup/PopupPin.js +2 -2
  549. package/internal/Popup/PopupPin.js.map +1 -1
  550. package/internal/PopupMenu/PopupMenu.css.d.ts +4 -0
  551. package/internal/PopupMenu/PopupMenu.css.js +3 -0
  552. package/internal/PopupMenu/PopupMenu.css.js.map +1 -0
  553. package/internal/PopupMenu/PopupMenu.d.ts +1 -0
  554. package/internal/PopupMenu/PopupMenu.js +2 -2
  555. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  556. package/internal/RenderContainer/RenderContainer.d.ts +1 -0
  557. package/internal/RenderContainer/RenderContainer.js +26 -1
  558. package/internal/RenderContainer/RenderContainer.js.map +1 -1
  559. package/internal/RenderContainer/RenderInnerContainer.js +2 -4
  560. package/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  561. package/internal/ResizeDetector/ResizeDetector.css.d.ts +7 -0
  562. package/internal/ResizeDetector/ResizeDetector.css.js +3 -0
  563. package/internal/ResizeDetector/ResizeDetector.css.js.map +1 -0
  564. package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  565. package/internal/ResizeDetector/ResizeDetector.js +2 -2
  566. package/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  567. package/internal/SpinnerIcon/SpinnerIcon.css.d.ts +6 -0
  568. package/internal/SpinnerIcon/SpinnerIcon.css.js +3 -0
  569. package/internal/SpinnerIcon/SpinnerIcon.css.js.map +1 -0
  570. package/internal/SpinnerIcon/SpinnerIcon.js +3 -3
  571. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  572. package/internal/TextWidthHelper/TextWidthHelper.css.d.ts +4 -0
  573. package/internal/TextWidthHelper/TextWidthHelper.css.js +3 -0
  574. package/internal/TextWidthHelper/TextWidthHelper.css.js.map +1 -0
  575. package/internal/TextWidthHelper/TextWidthHelper.d.ts +1 -0
  576. package/internal/TextWidthHelper/TextWidthHelper.js +2 -2
  577. package/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  578. package/internal/TimeInput/TimeFragments.css.d.ts +32 -0
  579. package/internal/TimeInput/TimeFragments.css.js +3 -0
  580. package/internal/TimeInput/TimeFragments.css.js.map +1 -0
  581. package/internal/TimeInput/TimeFragments.js +16 -20
  582. package/internal/TimeInput/TimeFragments.js.map +1 -1
  583. package/internal/TimeInput/TimeInput.css.d.ts +7 -0
  584. package/internal/TimeInput/TimeInput.css.js +3 -0
  585. package/internal/TimeInput/TimeInput.css.js.map +1 -0
  586. package/internal/TimeInput/TimeInput.js +5 -5
  587. package/internal/TimeInput/TimeInput.js.map +1 -1
  588. package/internal/icons2022/BaseIcon.css.d.ts +3 -0
  589. package/internal/icons2022/BaseIcon.css.js +3 -0
  590. package/internal/icons2022/BaseIcon.css.js.map +1 -0
  591. package/internal/icons2022/BaseIcon.js +2 -9
  592. package/internal/icons2022/BaseIcon.js.map +1 -1
  593. package/internal/icons2022/LoadingIcon.js +6 -4
  594. package/internal/icons2022/LoadingIcon.js.map +1 -1
  595. package/internal/themes/BasicTheme.d.ts +0 -10
  596. package/internal/themes/BasicTheme.js +6 -17
  597. package/internal/themes/BasicTheme.js.map +1 -1
  598. package/internal/themes/DarkTheme6_0.js +342 -62
  599. package/internal/themes/DarkTheme6_0.js.map +1 -1
  600. package/internal/themes/DarkTheme6_1.js +3 -11
  601. package/internal/themes/DarkTheme6_1.js.map +1 -1
  602. package/internal/themes/DarkTheme6_4.js +1 -11
  603. package/internal/themes/DarkTheme6_4.js.map +1 -1
  604. package/lib/Upgrades.d.ts +2 -12
  605. package/lib/Upgrades.js +16 -12
  606. package/lib/Upgrades.js.map +1 -1
  607. package/lib/chars.d.ts +8 -0
  608. package/lib/chars.js +9 -0
  609. package/lib/chars.js.map +1 -0
  610. package/lib/globalObject.js +1 -4
  611. package/lib/globalObject.js.map +1 -1
  612. package/lib/renderEnvironment/RenderEnvironmentContext.d.ts +6 -38
  613. package/lib/renderEnvironment/RenderEnvironmentContext.js +19 -21
  614. package/lib/renderEnvironment/RenderEnvironmentContext.js.map +1 -1
  615. package/lib/renderEnvironment/RenderEnvironmentDecorator.js +3 -6
  616. package/lib/renderEnvironment/RenderEnvironmentDecorator.js.map +1 -1
  617. package/lib/styles/LabGrotesqueBaseline.css.d.ts +1 -0
  618. package/lib/styles/LabGrotesqueBaseline.css.js +0 -0
  619. package/lib/styles/LabGrotesqueBaseline.css.js.map +1 -0
  620. package/lib/styles/Mixins.d.ts +2 -0
  621. package/lib/styles/Mixins.js +7 -0
  622. package/lib/styles/Mixins.js.map +1 -0
  623. package/lib/styles/UiFont.d.ts +3 -0
  624. package/lib/styles/UiFont.js +18 -0
  625. package/lib/styles/UiFont.js.map +1 -0
  626. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +7 -0
  627. package/lib/styles/getLabGrotesqueBaselineCompensation.js +36 -0
  628. package/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
  629. package/lib/theming/AnimationKeyframes.d.ts +7 -0
  630. package/lib/theming/AnimationKeyframes.js +24 -0
  631. package/lib/theming/AnimationKeyframes.js.map +1 -0
  632. package/lib/theming/Emotion.d.ts +11 -41
  633. package/lib/theming/Emotion.js +49 -61
  634. package/lib/theming/Emotion.js.map +1 -1
  635. package/lib/theming/StaticStyles.d.ts +30 -0
  636. package/lib/theming/StaticStyles.js +410 -0
  637. package/lib/theming/StaticStyles.js.map +1 -0
  638. package/lib/theming/bindStaticStyles.d.ts +4 -0
  639. package/lib/theming/bindStaticStyles.js +18 -0
  640. package/lib/theming/bindStaticStyles.js.map +1 -0
  641. package/lib/theming/themeVars.d.ts +26 -0
  642. package/lib/theming/themeVars.js +72 -0
  643. package/lib/theming/themeVars.js.map +1 -0
  644. package/lib/theming/useTheme.d.ts +2 -0
  645. package/lib/theming/useTheme.js +6 -0
  646. package/lib/theming/useTheme.js.map +1 -0
  647. package/package.json +17 -48
  648. package/react-ui.css +5678 -6528
  649. package/typings/stylis-plugin-extra-scope.d.ts +3 -0
  650. package/components/Autocomplete/Autocomplete.styles.d.ts +0 -5
  651. package/components/Autocomplete/Autocomplete.styles.js +0 -7
  652. package/components/Autocomplete/Autocomplete.styles.js.map +0 -1
  653. package/components/Button/Button.styles.d.ts +0 -111
  654. package/components/Button/Button.styles.js +0 -113
  655. package/components/Button/Button.styles.js.map +0 -1
  656. package/components/Button/ButtonIcon.styles.d.ts +0 -16
  657. package/components/Button/ButtonIcon.styles.js +0 -18
  658. package/components/Button/ButtonIcon.styles.js.map +0 -1
  659. package/components/Calendar/Calendar.styles.d.ts +0 -6
  660. package/components/Calendar/Calendar.styles.js +0 -8
  661. package/components/Calendar/Calendar.styles.js.map +0 -1
  662. package/components/Calendar/DayCellView.styles.d.ts +0 -11
  663. package/components/Calendar/DayCellView.styles.js +0 -13
  664. package/components/Calendar/DayCellView.styles.js.map +0 -1
  665. package/components/Calendar/MonthView.styles.d.ts +0 -13
  666. package/components/Calendar/MonthView.styles.js +0 -15
  667. package/components/Calendar/MonthView.styles.js.map +0 -1
  668. package/components/Center/Center.styles.d.ts +0 -8
  669. package/components/Center/Center.styles.js +0 -10
  670. package/components/Center/Center.styles.js.map +0 -1
  671. package/components/Checkbox/Checkbox.styles.d.ts +0 -37
  672. package/components/Checkbox/Checkbox.styles.js +0 -40
  673. package/components/Checkbox/Checkbox.styles.js.map +0 -1
  674. package/components/DateInput/DateFragmentsView.styles.d.ts +0 -9
  675. package/components/DateInput/DateFragmentsView.styles.js +0 -11
  676. package/components/DateInput/DateFragmentsView.styles.js.map +0 -1
  677. package/components/DateInput/DateInput.styles.d.ts +0 -10
  678. package/components/DateInput/DateInput.styles.js +0 -12
  679. package/components/DateInput/DateInput.styles.js.map +0 -1
  680. package/components/DatePicker/DatePicker.styles.d.ts +0 -5
  681. package/components/DatePicker/DatePicker.styles.js +0 -7
  682. package/components/DatePicker/DatePicker.styles.js.map +0 -1
  683. package/components/DatePicker/MobilePicker.styles.d.ts +0 -4
  684. package/components/DatePicker/MobilePicker.styles.js +0 -6
  685. package/components/DatePicker/MobilePicker.styles.js.map +0 -1
  686. package/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -22
  687. package/components/DateRangePicker/DateRangePicker.styles.js +0 -33
  688. package/components/DateRangePicker/DateRangePicker.styles.js.map +0 -1
  689. package/components/FileUploader/FileUploader.styles.d.ts +0 -75
  690. package/components/FileUploader/FileUploader.styles.js +0 -78
  691. package/components/FileUploader/FileUploader.styles.js.map +0 -1
  692. package/components/FileUploader/FileUploaderFile.styles.d.ts +0 -60
  693. package/components/FileUploader/FileUploaderFile.styles.js +0 -62
  694. package/components/FileUploader/FileUploaderFile.styles.js.map +0 -1
  695. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -34
  696. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js +0 -36
  697. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js.map +0 -1
  698. package/components/FileUploader/FileUploaderFileTypeIcon.styles.d.ts +0 -14
  699. package/components/FileUploader/FileUploaderFileTypeIcon.styles.js +0 -16
  700. package/components/FileUploader/FileUploaderFileTypeIcon.styles.js.map +0 -1
  701. package/components/FxInput/FxInput.styles.d.ts +0 -4
  702. package/components/FxInput/FxInput.styles.js +0 -6
  703. package/components/FxInput/FxInput.styles.js.map +0 -1
  704. package/components/FxInput/FxInputRestoreBtn.styles.d.ts +0 -6
  705. package/components/FxInput/FxInputRestoreBtn.styles.js +0 -8
  706. package/components/FxInput/FxInputRestoreBtn.styles.js.map +0 -1
  707. package/components/GlobalLoader/GlobalLoaderView.styles.d.ts +0 -23
  708. package/components/GlobalLoader/GlobalLoaderView.styles.js +0 -25
  709. package/components/GlobalLoader/GlobalLoaderView.styles.js.map +0 -1
  710. package/components/Group/Group.styles.d.ts +0 -8
  711. package/components/Group/Group.styles.js +0 -10
  712. package/components/Group/Group.styles.js.map +0 -1
  713. package/components/Hint/Hint.styles.d.ts +0 -5
  714. package/components/Hint/Hint.styles.js +0 -7
  715. package/components/Hint/Hint.styles.js.map +0 -1
  716. package/components/Input/Input.styles.d.ts +0 -21
  717. package/components/Input/Input.styles.js +0 -23
  718. package/components/Input/Input.styles.js.map +0 -1
  719. package/components/Input/InputLayout/InputLayout.styles.d.ts +0 -27
  720. package/components/Input/InputLayout/InputLayout.styles.js +0 -29
  721. package/components/Input/InputLayout/InputLayout.styles.js.map +0 -1
  722. package/components/Kebab/Kebab.styles.d.ts +0 -11
  723. package/components/Kebab/Kebab.styles.js +0 -13
  724. package/components/Kebab/Kebab.styles.js.map +0 -1
  725. package/components/Link/Link.styles.d.ts +0 -24
  726. package/components/Link/Link.styles.js +0 -26
  727. package/components/Link/Link.styles.js.map +0 -1
  728. package/components/Loader/Loader.styles.d.ts +0 -8
  729. package/components/Loader/Loader.styles.js +0 -10
  730. package/components/Loader/Loader.styles.js.map +0 -1
  731. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.d.ts +0 -7
  732. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js +0 -10
  733. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js.map +0 -1
  734. package/components/MaskedInput/MaskedInput.styles.d.ts +0 -7
  735. package/components/MaskedInput/MaskedInput.styles.js +0 -10
  736. package/components/MaskedInput/MaskedInput.styles.js.map +0 -1
  737. package/components/MaskedInputV2/MaskedInputV2.styles.d.ts +0 -7
  738. package/components/MaskedInputV2/MaskedInputV2.styles.js +0 -10
  739. package/components/MaskedInputV2/MaskedInputV2.styles.js.map +0 -1
  740. package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +0 -15
  741. package/components/MaskedInputV2/internal/MaskedInternal.styles.js +0 -18
  742. package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +0 -1
  743. package/components/MenuFooter/MenuFooter.styles.d.ts +0 -10
  744. package/components/MenuFooter/MenuFooter.styles.js +0 -12
  745. package/components/MenuFooter/MenuFooter.styles.js.map +0 -1
  746. package/components/MenuHeader/MenuHeader.styles.d.ts +0 -10
  747. package/components/MenuHeader/MenuHeader.styles.js +0 -12
  748. package/components/MenuHeader/MenuHeader.styles.js.map +0 -1
  749. package/components/MenuItem/MenuItem.styles.d.ts +0 -29
  750. package/components/MenuItem/MenuItem.styles.js +0 -31
  751. package/components/MenuItem/MenuItem.styles.js.map +0 -1
  752. package/components/MenuSeparator/MenuSeparator.styles.d.ts +0 -5
  753. package/components/MenuSeparator/MenuSeparator.styles.js +0 -7
  754. package/components/MenuSeparator/MenuSeparator.styles.js.map +0 -1
  755. package/components/MiniModal/MiniModal.styles.d.ts +0 -11
  756. package/components/MiniModal/MiniModal.styles.js +0 -13
  757. package/components/MiniModal/MiniModal.styles.js.map +0 -1
  758. package/components/Modal/Modal.styles.d.ts +0 -55
  759. package/components/Modal/Modal.styles.js +0 -58
  760. package/components/Modal/Modal.styles.js.map +0 -1
  761. package/components/Paging/Paging.styles.d.ts +0 -32
  762. package/components/Paging/Paging.styles.js +0 -34
  763. package/components/Paging/Paging.styles.js.map +0 -1
  764. package/components/PasswordInput/PasswordInput.styles.d.ts +0 -11
  765. package/components/PasswordInput/PasswordInput.styles.js +0 -13
  766. package/components/PasswordInput/PasswordInput.styles.js.map +0 -1
  767. package/components/Radio/Radio.styles.d.ts +0 -37
  768. package/components/Radio/Radio.styles.js +0 -40
  769. package/components/Radio/Radio.styles.js.map +0 -1
  770. package/components/RadioGroup/RadioGroup.styles.d.ts +0 -6
  771. package/components/RadioGroup/RadioGroup.styles.js +0 -8
  772. package/components/RadioGroup/RadioGroup.styles.js.map +0 -1
  773. package/components/ScrollContainer/ScrollContainer.styles.d.ts +0 -21
  774. package/components/ScrollContainer/ScrollContainer.styles.js +0 -24
  775. package/components/ScrollContainer/ScrollContainer.styles.js.map +0 -1
  776. package/components/Select/Select.styles.d.ts +0 -18
  777. package/components/Select/Select.styles.js +0 -20
  778. package/components/Select/Select.styles.js.map +0 -1
  779. package/components/SidePage/SidePage.styles.d.ts +0 -50
  780. package/components/SidePage/SidePage.styles.js +0 -52
  781. package/components/SidePage/SidePage.styles.js.map +0 -1
  782. package/components/Spinner/Spinner.styles.d.ts +0 -13
  783. package/components/Spinner/Spinner.styles.js +0 -15
  784. package/components/Spinner/Spinner.styles.js.map +0 -1
  785. package/components/Sticky/Sticky.styles.d.ts +0 -8
  786. package/components/Sticky/Sticky.styles.js +0 -10
  787. package/components/Sticky/Sticky.styles.js.map +0 -1
  788. package/components/Switcher/Switcher.styles.d.ts +0 -12
  789. package/components/Switcher/Switcher.styles.js +0 -14
  790. package/components/Switcher/Switcher.styles.js.map +0 -1
  791. package/components/Tabs/Indicator.styles.d.ts +0 -8
  792. package/components/Tabs/Indicator.styles.js +0 -10
  793. package/components/Tabs/Indicator.styles.js.map +0 -1
  794. package/components/Tabs/Tab.styles.d.ts +0 -33
  795. package/components/Tabs/Tab.styles.js +0 -36
  796. package/components/Tabs/Tab.styles.js.map +0 -1
  797. package/components/Tabs/Tabs.styles.d.ts +0 -7
  798. package/components/Tabs/Tabs.styles.js +0 -9
  799. package/components/Tabs/Tabs.styles.js.map +0 -1
  800. package/components/Textarea/Textarea.styles.d.ts +0 -27
  801. package/components/Textarea/Textarea.styles.js +0 -29
  802. package/components/Textarea/Textarea.styles.js.map +0 -1
  803. package/components/TimePicker/TimePicker.styles.d.ts +0 -12
  804. package/components/TimePicker/TimePicker.styles.js +0 -14
  805. package/components/TimePicker/TimePicker.styles.js.map +0 -1
  806. package/components/Toast/Toast.styles.d.ts +0 -7
  807. package/components/Toast/Toast.styles.js +0 -9
  808. package/components/Toast/Toast.styles.js.map +0 -1
  809. package/components/Toast/ToastView.styles.d.ts +0 -20
  810. package/components/Toast/ToastView.styles.js +0 -22
  811. package/components/Toast/ToastView.styles.js.map +0 -1
  812. package/components/Toggle/Toggle.styles.d.ts +0 -50
  813. package/components/Toggle/Toggle.styles.js +0 -52
  814. package/components/Toggle/Toggle.styles.js.map +0 -1
  815. package/components/Token/Token.styles.d.ts +0 -24
  816. package/components/Token/Token.styles.js +0 -27
  817. package/components/Token/Token.styles.js.map +0 -1
  818. package/components/TokenInput/TokenInput.styles.d.ts +0 -22
  819. package/components/TokenInput/TokenInput.styles.js +0 -24
  820. package/components/TokenInput/TokenInput.styles.js.map +0 -1
  821. package/components/Tooltip/Tooltip.styles.d.ts +0 -12
  822. package/components/Tooltip/Tooltip.styles.js +0 -14
  823. package/components/Tooltip/Tooltip.styles.js.map +0 -1
  824. package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +0 -11
  825. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js +0 -13
  826. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +0 -1
  827. package/internal/CloseButtonIcon/CloseButtonIcon.styles.d.ts +0 -8
  828. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js +0 -10
  829. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +0 -1
  830. package/internal/CustomComboBox/CustomComboBox.styles.d.ts +0 -6
  831. package/internal/CustomComboBox/CustomComboBox.styles.js +0 -8
  832. package/internal/CustomComboBox/CustomComboBox.styles.js.map +0 -1
  833. package/internal/DateSelect/DateSelect.styles.d.ts +0 -9
  834. package/internal/DateSelect/DateSelect.styles.js +0 -12
  835. package/internal/DateSelect/DateSelect.styles.js.map +0 -1
  836. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.styles.d.ts +0 -5
  837. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.styles.js +0 -7
  838. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.styles.js.map +0 -1
  839. package/internal/InputLikeText/InputLikeText.styles.d.ts +0 -8
  840. package/internal/InputLikeText/InputLikeText.styles.js +0 -10
  841. package/internal/InputLikeText/InputLikeText.styles.js.map +0 -1
  842. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +0 -4
  843. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +0 -6
  844. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +0 -1
  845. package/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +0 -4
  846. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js +0 -6
  847. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js.map +0 -1
  848. package/internal/Menu/Menu.styles.d.ts +0 -16
  849. package/internal/Menu/Menu.styles.js +0 -18
  850. package/internal/Menu/Menu.styles.js.map +0 -1
  851. package/internal/MenuMessage/MenuMessage.styles.d.ts +0 -11
  852. package/internal/MenuMessage/MenuMessage.styles.js +0 -13
  853. package/internal/MenuMessage/MenuMessage.styles.js.map +0 -1
  854. package/internal/MobilePopup/MobilePopup.styles.d.ts +0 -17
  855. package/internal/MobilePopup/MobilePopup.styles.js +0 -19
  856. package/internal/MobilePopup/MobilePopup.styles.js.map +0 -1
  857. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +0 -7
  858. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +0 -9
  859. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +0 -1
  860. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +0 -14
  861. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +0 -16
  862. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +0 -1
  863. package/internal/NativeDateInput/NativeDateInput.styles.d.ts +0 -4
  864. package/internal/NativeDateInput/NativeDateInput.styles.js +0 -6
  865. package/internal/NativeDateInput/NativeDateInput.styles.js.map +0 -1
  866. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +0 -4
  867. package/internal/NativeTimeInput/NativeTimeInput.styles.js +0 -6
  868. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +0 -1
  869. package/internal/Popup/Popup.styles.d.ts +0 -22
  870. package/internal/Popup/Popup.styles.js +0 -24
  871. package/internal/Popup/Popup.styles.js.map +0 -1
  872. package/internal/Popup/PopupPin.styles.d.ts +0 -10
  873. package/internal/Popup/PopupPin.styles.js +0 -12
  874. package/internal/Popup/PopupPin.styles.js.map +0 -1
  875. package/internal/PopupMenu/PopupMenu.styles.d.ts +0 -5
  876. package/internal/PopupMenu/PopupMenu.styles.js +0 -7
  877. package/internal/PopupMenu/PopupMenu.styles.js.map +0 -1
  878. package/internal/ResizeDetector/ResizeDetector.styles.d.ts +0 -8
  879. package/internal/ResizeDetector/ResizeDetector.styles.js +0 -10
  880. package/internal/ResizeDetector/ResizeDetector.styles.js.map +0 -1
  881. package/internal/SpinnerIcon/SpinnerIcon.styles.d.ts +0 -7
  882. package/internal/SpinnerIcon/SpinnerIcon.styles.js +0 -9
  883. package/internal/SpinnerIcon/SpinnerIcon.styles.js.map +0 -1
  884. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -5
  885. package/internal/TextWidthHelper/TextWidthHelper.styles.js +0 -7
  886. package/internal/TextWidthHelper/TextWidthHelper.styles.js.map +0 -1
  887. package/internal/TimeInput/TimeFragments.styles.d.ts +0 -20
  888. package/internal/TimeInput/TimeFragments.styles.js +0 -22
  889. package/internal/TimeInput/TimeFragments.styles.js.map +0 -1
  890. package/internal/TimeInput/TimeInput.styles.d.ts +0 -7
  891. package/internal/TimeInput/TimeInput.styles.js +0 -9
  892. package/internal/TimeInput/TimeInput.styles.js.map +0 -1
  893. package/internal/icons2022/BaseIcon.styles.d.ts +0 -6
  894. package/internal/icons2022/BaseIcon.styles.js +0 -8
  895. package/internal/icons2022/BaseIcon.styles.js.map +0 -1
  896. package/lib/classNames.generated.d.ts +0 -1235
  897. package/lib/classNames.generated.js +0 -1233
  898. package/lib/classNames.generated.js.map +0 -1
  899. package/lib/styles/baselineCompensation.d.ts +0 -63
  900. package/lib/styles/baselineCompensation.js +0 -122
  901. package/lib/styles/baselineCompensation.js.map +0 -1
  902. package/lib/theming/declaredTheme.d.ts +0 -43
  903. package/lib/theming/declaredTheme.js +0 -56
  904. package/lib/theming/declaredTheme.js.map +0 -1
  905. package/lib/theming/hashString.d.ts +0 -19
  906. package/lib/theming/hashString.js +0 -52
  907. package/lib/theming/hashString.js.map +0 -1
  908. package/lib/theming/staticStyles.d.ts +0 -17
  909. package/lib/theming/staticStyles.js +0 -8
  910. package/lib/theming/staticStyles.js.map +0 -1
  911. package/lib/theming/staticThemeDelta.d.ts +0 -17
  912. package/lib/theming/staticThemeDelta.js +0 -37
  913. package/lib/theming/staticThemeDelta.js.map +0 -1
  914. package/lib/theming/staticThemeVars.d.ts +0 -21
  915. package/lib/theming/staticThemeVars.js +0 -35
  916. package/lib/theming/staticThemeVars.js.map +0 -1
  917. package/lib/theming/themeCssVarsClass.d.ts +0 -89
  918. package/lib/theming/themeCssVarsClass.js +0 -253
  919. package/lib/theming/themeCssVarsClass.js.map +0 -1
  920. package/lib/theming/themeCssVarsDelta.d.ts +0 -13
  921. package/lib/theming/themeCssVarsDelta.js +0 -67
  922. package/lib/theming/themeCssVarsDelta.js.map +0 -1
  923. package/lib/theming/themeToCssVars.d.ts +0 -47
  924. package/lib/theming/themeToCssVars.js +0 -861
  925. package/lib/theming/themeToCssVars.js.map +0 -1
  926. package/react-ui-tailwind.css +0 -544
  927. package/react-ui-themes.css +0 -8628
  928. package/react-ui-token-map.json +0 -9029
  929. package/react-ui.layer.css +0 -7778
  930. package/themes/dark-6-0.css +0 -1439
  931. package/themes/dark-6-0.scoped.css +0 -1439
  932. package/themes/dark-6-1.css +0 -1439
  933. package/themes/dark-6-1.scoped.css +0 -1439
  934. package/themes/dark.css +0 -1439
  935. package/themes/dark.scoped.css +0 -1439
  936. package/themes/light-6-0.css +0 -1437
  937. package/themes/light-6-0.scoped.css +0 -1437
  938. package/themes/light-6-1.css +0 -1437
  939. package/themes/light-6-1.scoped.css +0 -1437
  940. package/themes/light.css +0 -1437
  941. package/themes/light.scoped.css +0 -1437
@@ -1 +1 @@
1
- {"version":3,"file":"MaskedInputV2.js","sourceRoot":"","sources":["MaskedInputV2.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport type { Ref } from 'react';\nimport warning from 'warning';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useStyles } from '../../lib/renderEnvironment/index.js';\nimport { concatClassNames as cx } from '../../lib/theming/Emotion.js';\nimport type { InputProps, InputType } from '../Input/index.js';\nimport { Input, selectionAllowedTypes } from '../Input/index.js';\nimport { extractRaw, findNearestRawLeft, computePasteMaskedCursor } from './internal/helpers.js';\nimport { MaskedCore } from './internal/MaskedCore.js';\nimport type { MaskedSelectionIntent } from './internal/MaskedCore.types.js';\nimport { getSelectionRawRange } from './internal/maskedCoreClipboard.js';\nimport { setMaskInputSelectionRange } from './internal/setMaskInputSelectionRange.js';\nimport { useMaskEngine } from './internal/useMaskEngine.js';\nimport { getDefinitions, getMaskChar } from './MaskedInputV2.helpers.js';\nimport { normalizeRussianPhonePaste } from './MaskedInputV2.phone.js';\nimport { getStyles, globalClasses } from './MaskedInputV2.styles.js';\nimport type { IMaskInputProps } from './react-imask/mixin.js';\n\nexport type MaskedInputV2OnBeforePasteValue = (value: string) => string;\n\nexport interface MaskedInputV2MaskedProps {\n /** Шаблон ввода, определяющий допустимые символы. */\n mask: string;\n\n /** Плейсхолдер, который отображается на месте ещё не введённых пользователем символов.\n * @default _ */\n maskChar?: string;\n\n /** Словарь правил для настройки маски, где:\n * ключ — символ для использования в маске;\n * значение — регулярка-правило.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */\n formatChars?: Record<string, string>;\n\n /** Всегда показывать символы маски, независимо от фокуса в поле.\n * @default false */\n alwaysShowMask?: boolean;\n\n /** Событие некорректного ввода.\n * Вторым аргументом передаётся метод вспыхивания рамки поля.\n *\n * Если обработчик не задан, то при событии рамка всегда вспыхивает.\n *\n * @param value значение поля\n * @param blink метод вспыхивания рамки поля\n */\n onUnexpectedInput?: (value: string, blink: () => void) => void;\n\n /**\n * Событие перед вставкой текста в поле.\n * Вызывается с аргументом value — текст из буфера, браузерного autofill\n * или иной bulk-вставки без clipboard-события.\n *\n * Обработчик должен вернуть текст — он попадёт в поле.\n *\n * При `type=\"tel\"` и отсутствии обработчика применяется\n * {@link normalizeRussianPhonePaste}.\n *\n * @param value значение вставки.\n */\n onBeforePasteValue?: MaskedInputV2OnBeforePasteValue;\n\n /** Убирает из value символы маски, которые пользователь не вводил.\n * @default false */\n unmask?: boolean;\n\n /** Раскрашивает символы маски.\n * @default true\n * @ignore */\n colored?: boolean;\n\n /** Задает пропсы для компонента `IMaskInput`. Необходимы для юнит-тестов\n * @ignore */\n imaskProps?: IMaskInputProps<HTMLInputElement>;\n}\n\nexport type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;\n\nconst EMPTY_IMASK_PROPS = {};\n\nexport const getSafeMaskInputType = (type?: InputType | string): MaskInputType | undefined => {\n if (!type) {\n return undefined;\n }\n\n const normalizedType = type.trim() as InputType;\n\n if (normalizedType === 'password' || !selectionAllowedTypes.includes(normalizedType)) {\n return 'text';\n }\n\n return normalizedType as MaskInputType;\n};\n\nfunction getMaskInputMode(\n type: InputType | string | undefined,\n inputMode: React.InputHTMLAttributes<HTMLInputElement>['inputMode'],\n): React.InputHTMLAttributes<HTMLInputElement>['inputMode'] {\n if (inputMode) {\n return inputMode;\n }\n\n if (type?.trim() === 'email') {\n return 'email';\n }\n\n return undefined;\n}\n\nexport interface MaskedInputV2Props\n extends\n MaskedInputV2MaskedProps,\n Omit<InputProps, 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'> {\n type?: MaskInputType;\n\n /** @ignore */\n __fromMaskedInputFacade?: boolean;\n}\n\n/** @deprecated Используйте {@link MaskedInput}. Для legacy-поведения включите фичафлаг `maskedInputUseLegacyBehavior` в {@link ReactUIFeatureFlagsContext}. */\nexport const MaskedInputV2 = forwardRefAndName(\n 'MaskedInputV2',\n function MaskedInputV2(props: MaskedInputV2Props, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = EMPTY_IMASK_PROPS,\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onBeforePasteValue,\n // Значение меняет MaskedCore, поэтому onChange к Input не относится:\n // иначе потребитель получил бы внутреннее событие пересчёта крестика очистки.\n onChange: _onChange,\n element: _element,\n className,\n // @ts-expect-error: могут передавать игнорируя ошибку\n maxLength,\n showClearIcon,\n selectAllOnFocus,\n type,\n __fromMaskedInputFacade,\n ...inputProps\n } = props;\n\n useEffect(() => {\n if (!__fromMaskedInputFacade) {\n warning(false, '[MaskedInputV2]: This component is for internal use only. Please use MaskedInput instead.');\n }\n }, [__fromMaskedInputFacade]);\n\n const styles = useStyles(getStyles);\n\n const inputRef = useRef<Input>(null);\n const coreInputRef = useRef<HTMLInputElement>(null);\n\n const [focused, setFocused] = useState(false);\n const [selectionIntent, setSelectionIntent] = useState<MaskedSelectionIntent>(null);\n\n const prevMaskRef = useRef(props.mask);\n const pendingCursorRestoreRef = useRef<number | null>(null);\n const lastCaretRef = useRef(0);\n\n const requestSelectionIntent = useCallback((intent: MaskedSelectionIntent) => {\n setSelectionIntent((current) => (current === 'select-all' && intent === 'caret-end' ? current : intent));\n }, []);\n\n const historyRef = useRef<Array<{ raw: string; cursorPos: number }>>([]);\n const historyIndexRef = useRef(-1);\n\n // Сохраняем позицию курсора перед сменой маски (render-phase read of stable ref).\n // При коммите DOM браузер сбросит курсор в конец из-за изменения value,\n // поэтому восстанавливаем его синхронно в useLayoutEffect ниже.\n if (prevMaskRef.current !== props.mask) {\n pendingCursorRestoreRef.current = lastCaretRef.current;\n prevMaskRef.current = props.mask;\n historyRef.current = [];\n historyIndexRef.current = -1;\n }\n\n // Движок: IMask как чистый калькулятор, не привязанный к DOM\n const engine = useMaskEngine({\n mask,\n maskChar,\n formatChars,\n unmask,\n alwaysShowMask,\n imaskProps: customIMaskProps,\n });\n\n // Единственный источник истины — raw (только то, что ввёл пользователь, без маски)\n const [raw, setRaw] = useState<string>(() =>\n extractRaw((props.value ?? props.defaultValue) as string | number | undefined, engine),\n );\n\n // MaskState вычисляется синхронно из raw — оба визуальных слоя читают из него\n const maskState = useMemo(() => engine.compute(raw, focused), [raw, focused, engine]);\n\n const syncedImaskRef = useRef(engine.imask);\n const prevSyncedValueRef = useRef(props.value);\n\n // Синхронизировать raw при изменении props.value или правил маски\n useEffect(() => {\n const engineChanged = syncedImaskRef.current !== engine.imask;\n const valueChanged = prevSyncedValueRef.current !== props.value;\n syncedImaskRef.current = engine.imask;\n prevSyncedValueRef.current = props.value;\n\n if (props.value !== undefined) {\n if (valueChanged || engineChanged) {\n setRaw(extractRaw(props.value, engine));\n }\n return;\n }\n\n if (engineChanged) {\n setRaw((prev) => {\n engine.imask.unmaskedValue = prev;\n return engine.imask.rawInputValue;\n });\n }\n }, [props.value, engine]);\n\n // Вызывать onValueChange только при реальном изменении outputValue,\n // и НЕ при первом рендере (воспроизводит нативное поведение onChange)\n const isFirstRender = useRef(true);\n const prevOutputValue = useRef<string>(maskState.outputValue);\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n prevOutputValue.current = maskState.outputValue;\n return;\n }\n if (maskState.outputValue !== prevOutputValue.current) {\n prevOutputValue.current = maskState.outputValue;\n onValueChange?.(maskState.outputValue);\n }\n }, [maskState.outputValue]);\n\n useImperativeHandle<Input | null, (Input & { selectAll: () => void }) | null>(ref, () => {\n if (!inputRef.current) {\n return null;\n }\n return Object.assign(inputRef.current, {\n selectAll: () => {\n requestSelectionIntent('select-all');\n inputRef.current?.focus();\n const el = coreInputRef.current;\n if (el && el.ownerDocument.activeElement !== el) {\n requestSelectionIntent(null);\n }\n },\n });\n }, [requestSelectionIntent]);\n\n useLayoutEffect(() => {\n if (pendingCursorRestoreRef.current !== null && coreInputRef.current) {\n setMaskInputSelectionRange(coreInputRef.current, pendingCursorRestoreRef.current);\n lastCaretRef.current = pendingCursorRestoreRef.current;\n pendingCursorRestoreRef.current = null;\n }\n });\n\n useEffect(() => {\n if (!focused) {\n return;\n }\n\n const el = coreInputRef.current;\n if (!el) {\n return;\n }\n\n const syncCaret = () => {\n if (document.activeElement === el) {\n lastCaretRef.current = el.selectionStart ?? 0;\n }\n };\n\n document.addEventListener('selectionchange', syncCaret);\n return () => document.removeEventListener('selectionchange', syncCaret);\n }, [focused]);\n\n return (\n <Input\n ref={inputRef}\n {...inputProps}\n type={getSafeMaskInputType(type)}\n inputMode={getMaskInputMode(type, inputProps.inputMode)}\n // Непустоту значения Input считает по value нативного инпута, где лежат символы маски,\n // поэтому на пустом значении крестик выключаем сами.\n showClearIcon={raw === '' ? 'never' : showClearIcon}\n onValueChange={handleInputValueChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onSelect={handleSelect}\n className={cx(globalClasses.root, className, styles.root())}\n element={\n <MaskedCore\n maskState={maskState}\n slotMap={engine.slotMap}\n engine={engine}\n focused={focused}\n currentRaw={raw}\n onRawChange={handleRawChange}\n onUnexpectedInput={triggerUnexpectedInput}\n onUndo={handleUndo}\n onRedo={handleRedo}\n coreInputRef={coreInputRef}\n colored={colored}\n selectAllOnFocus={selectAllOnFocus}\n selectionIntent={selectionIntent}\n onSelectionIntentChange={requestSelectionIntent}\n />\n }\n />\n );\n\n // Клик по крестику очистки Input отдаёт наружу через onValueChange, а сам чистит поле\n // записью в DOM — мимо модели маски, из-за чего значение вернулось бы при следующем рендере.\n // Поэтому очищаем через raw, как при обычном вводе.\n function handleInputValueChange(value: string) {\n if (value !== '') {\n return;\n }\n\n // При очистке крестиком raw ещё не пуст — записываем шаг в историю, чтобы undo вернул значение.\n // При удалении с клавиатуры сюда приходит уже применённый пустой raw, шаг записан в handleRawChange.\n if (raw !== '') {\n pushHistory('', 0);\n }\n\n setRaw('');\n pendingCursorRestoreRef.current = 0;\n }\n\n function handleRawChange(input: string, source: 'input' | 'paste', cursorPos?: number) {\n if (source === 'paste') {\n handlePasteChange(input, cursorPos);\n } else {\n if (input !== raw && cursorPos !== undefined) {\n pushHistory(input, cursorPos);\n }\n setRaw(input);\n }\n }\n\n function handlePasteChange(pasted: string, _cursorPos?: number) {\n const el = coreInputRef.current;\n const selectionStart = el?.selectionStart ?? 0;\n const selectionEnd = el?.selectionEnd ?? selectionStart;\n\n // При непустом выделении сначала убираем попавший в него raw (в т.ч. если край на литерале `-`),\n // иначе paste склеивает старое значение с новым.\n const selectedRawRange =\n selectionEnd > selectionStart ? getSelectionRawRange(selectionStart, selectionEnd, engine.slotMap) : null;\n\n let baseRaw = raw;\n let rawCursorPos: number;\n if (selectedRawRange) {\n baseRaw = raw.slice(0, selectedRawRange.rawStart) + raw.slice(selectedRawRange.rawEnd);\n rawCursorPos = selectedRawRange.rawStart;\n } else {\n rawCursorPos =\n engine.slotMap.maskedToRaw[selectionStart] !== null &&\n engine.slotMap.maskedToRaw[selectionStart] !== undefined\n ? (engine.slotMap.maskedToRaw[selectionStart] as number)\n : findNearestRawLeft(selectionStart, engine.slotMap);\n }\n\n const rawBefore = baseRaw.slice(0, rawCursorPos);\n const rawAfter = baseRaw.slice(rawCursorPos);\n\n let transformed = pasted;\n if (onBeforePasteValue) {\n transformed = onBeforePasteValue(pasted);\n } else if (getSafeMaskInputType(type) === 'tel') {\n transformed = normalizeRussianPhonePaste(pasted);\n }\n\n const result = engine.applyPaste(baseRaw, rawCursorPos, transformed);\n if (result.overflow) {\n // IF-1157: paste с overflow → onUnexpectedInput\n triggerUnexpectedInput();\n }\n\n const postPasteMaskState = engine.compute(result.raw, true);\n const maskedCursorPos = computePasteMaskedCursor(\n rawBefore,\n rawAfter,\n result.raw,\n rawCursorPos,\n engine.slotMap,\n postPasteMaskState.typedLength,\n );\n\n if (result.raw !== raw) {\n pushHistory(result.raw, maskedCursorPos);\n }\n\n setRaw(result.raw);\n pendingCursorRestoreRef.current = maskedCursorPos;\n\n if (onBeforePasteValue && onValueChange) {\n // Legacy-контракт: при кастомной вставке наружу уходит результат onBeforePasteValue,\n // а не masked/unmasked outputValue (нужно для ComboBox и совместимости с IMaskInput).\n prevOutputValue.current = engine.compute(result.raw, focused).outputValue;\n onValueChange(transformed);\n }\n }\n\n function pushHistory(newRaw: string, cursorPos: number) {\n const MAX_HISTORY_LENGTH = 100;\n\n if (historyRef.current.length === 0) {\n historyRef.current.push({ raw, cursorPos: 0 });\n historyIndexRef.current = 0;\n }\n\n if (historyIndexRef.current < historyRef.current.length - 1) {\n historyRef.current = historyRef.current.slice(0, historyIndexRef.current + 1);\n }\n\n historyRef.current.push({ raw: newRaw, cursorPos });\n if (historyRef.current.length > MAX_HISTORY_LENGTH) {\n historyRef.current.shift();\n }\n historyIndexRef.current = historyRef.current.length - 1;\n }\n\n function handleUndo() {\n if (historyRef.current.length === 0) {\n return;\n }\n const nextIndex = Math.max(0, historyIndexRef.current - 1);\n if (nextIndex !== historyIndexRef.current) {\n historyIndexRef.current = nextIndex;\n const state = historyRef.current[nextIndex];\n setRaw(state.raw);\n pendingCursorRestoreRef.current = state.cursorPos;\n }\n }\n\n function handleRedo() {\n if (historyRef.current.length === 0) {\n return;\n }\n const nextIndex = Math.min(historyRef.current.length - 1, historyIndexRef.current + 1);\n if (nextIndex !== historyIndexRef.current) {\n historyIndexRef.current = nextIndex;\n const state = historyRef.current[nextIndex];\n setRaw(state.raw);\n pendingCursorRestoreRef.current = state.cursorPos;\n }\n }\n\n function triggerUnexpectedInput(blinkOnly?: boolean) {\n const blink = inputRef.current?.blink.bind(inputRef.current) ?? (() => undefined);\n onUnexpectedInput && !blinkOnly ? onUnexpectedInput(maskState.outputValue, blink) : blink();\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleSelect(e: React.SyntheticEvent<HTMLInputElement>) {\n if (coreInputRef.current) {\n lastCaretRef.current = coreInputRef.current.selectionStart ?? 0;\n }\n inputProps.onSelect?.(e);\n }\n },\n);\n\n// Вспомогательные функции для совместимости (используются в стори и тестах)\nexport { getDefinitions, getMaskChar };\n"]}
1
+ {"version":3,"file":"MaskedInputV2.js","sourceRoot":"","sources":["MaskedInputV2.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { Ref } from 'react';\nimport warning from 'warning';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { InputProps, InputType } from '../Input/index.js';\nimport { Input, selectionAllowedTypes } from '../Input/index.js';\nimport { extractRaw, findNearestRawLeft, computePasteMaskedCursor } from './internal/helpers.js';\nimport { MaskedCore } from './internal/MaskedCore.js';\nimport type { MaskedSelectionIntent } from './internal/MaskedCore.types.js';\nimport { getSelectionRawRange } from './internal/maskedCoreClipboard.js';\nimport { setMaskInputSelectionRange } from './internal/setMaskInputSelectionRange.js';\nimport { useMaskEngine } from './internal/useMaskEngine.js';\nimport { getStyles, globalClasses } from './MaskedInputV2.css.js';\nimport { getDefinitions, getMaskChar } from './MaskedInputV2.helpers.js';\nimport { normalizeRussianPhonePaste } from './MaskedInputV2.phone.js';\nimport type { IMaskInputProps } from './react-imask/mixin.js';\n\nexport type MaskedInputV2OnBeforePasteValue = (value: string) => string;\n\nexport interface MaskedInputV2MaskedProps {\n /** Шаблон ввода, определяющий допустимые символы. */\n mask: string;\n\n /** Плейсхолдер, который отображается на месте ещё не введённых пользователем символов.\n * @default _ */\n maskChar?: string;\n\n /** Словарь правил для настройки маски, где:\n * ключ — символ для использования в маске;\n * значение — регулярка-правило.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */\n formatChars?: Record<string, string>;\n\n /** Всегда показывать символы маски, независимо от фокуса в поле.\n * @default false */\n alwaysShowMask?: boolean;\n\n /** Событие некорректного ввода.\n * Вторым аргументом передаётся метод вспыхивания рамки поля.\n *\n * Если обработчик не задан, то при событии рамка всегда вспыхивает.\n *\n * @param value значение поля\n * @param blink метод вспыхивания рамки поля\n */\n onUnexpectedInput?: (value: string, blink: () => void) => void;\n\n /**\n * Событие перед вставкой текста в поле.\n * Вызывается с аргументом value — текст из буфера, браузерного autofill\n * или иной bulk-вставки без clipboard-события.\n *\n * Обработчик должен вернуть текст — он попадёт в поле.\n *\n * При `type=\"tel\"` и отсутствии обработчика применяется\n * {@link normalizeRussianPhonePaste}.\n *\n * @param value значение вставки.\n */\n onBeforePasteValue?: MaskedInputV2OnBeforePasteValue;\n\n /** Убирает из value символы маски, которые пользователь не вводил.\n * @default false */\n unmask?: boolean;\n\n /** Раскрашивает символы маски.\n * @default true\n * @ignore */\n colored?: boolean;\n\n /** Задает пропсы для компонента `IMaskInput`. Необходимы для юнит-тестов\n * @ignore */\n imaskProps?: IMaskInputProps<HTMLInputElement>;\n}\n\nexport type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;\n\nconst EMPTY_IMASK_PROPS = {};\n\nexport const getSafeMaskInputType = (type?: InputType | string): MaskInputType | undefined => {\n if (!type) {\n return undefined;\n }\n\n const normalizedType = type.trim() as InputType;\n\n if (normalizedType === 'password' || !selectionAllowedTypes.includes(normalizedType)) {\n return 'text';\n }\n\n return normalizedType as MaskInputType;\n};\n\nfunction getMaskInputMode(\n type: InputType | string | undefined,\n inputMode: React.InputHTMLAttributes<HTMLInputElement>['inputMode'],\n): React.InputHTMLAttributes<HTMLInputElement>['inputMode'] {\n if (inputMode) {\n return inputMode;\n }\n\n if (type?.trim() === 'email') {\n return 'email';\n }\n\n return undefined;\n}\n\nexport interface MaskedInputV2Props\n extends\n MaskedInputV2MaskedProps,\n Omit<InputProps, 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'> {\n type?: MaskInputType;\n\n /** @ignore */\n __fromMaskedInputFacade?: boolean;\n}\n\n/** @deprecated Используйте {@link MaskedInput}. Для legacy-поведения включите фичафлаг `maskedInputUseLegacyBehavior` в {@link ReactUIFeatureFlagsContext}. */\nexport const MaskedInputV2 = forwardRefAndName(\n 'MaskedInputV2',\n function MaskedInputV2(props: MaskedInputV2Props, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = EMPTY_IMASK_PROPS,\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onBeforePasteValue,\n // Значение меняет MaskedCore, поэтому onChange к Input не относится:\n // иначе потребитель получил бы внутреннее событие пересчёта крестика очистки.\n onChange: _onChange,\n element: _element,\n className,\n // @ts-expect-error: могут передавать игнорируя ошибку\n maxLength,\n showClearIcon,\n selectAllOnFocus,\n type,\n __fromMaskedInputFacade,\n ...inputProps\n } = props;\n\n useEffect(() => {\n if (!__fromMaskedInputFacade) {\n warning(false, '[MaskedInputV2]: This component is for internal use only. Please use MaskedInput instead.');\n }\n }, [__fromMaskedInputFacade]);\n\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n const inputRef = useRef<Input>(null);\n const coreInputRef = useRef<HTMLInputElement>(null);\n\n const [focused, setFocused] = useState(false);\n const [selectionIntent, setSelectionIntent] = useState<MaskedSelectionIntent>(null);\n\n const prevMaskRef = useRef(props.mask);\n const pendingCursorRestoreRef = useRef<number | null>(null);\n const lastCaretRef = useRef(0);\n\n const requestSelectionIntent = useCallback((intent: MaskedSelectionIntent) => {\n setSelectionIntent((current) => (current === 'select-all' && intent === 'caret-end' ? current : intent));\n }, []);\n\n const historyRef = useRef<Array<{ raw: string; cursorPos: number }>>([]);\n const historyIndexRef = useRef(-1);\n\n // Сохраняем позицию курсора перед сменой маски (render-phase read of stable ref).\n // При коммите DOM браузер сбросит курсор в конец из-за изменения value,\n // поэтому восстанавливаем его синхронно в useLayoutEffect ниже.\n if (prevMaskRef.current !== props.mask) {\n pendingCursorRestoreRef.current = lastCaretRef.current;\n prevMaskRef.current = props.mask;\n historyRef.current = [];\n historyIndexRef.current = -1;\n }\n\n // Движок: IMask как чистый калькулятор, не привязанный к DOM\n const engine = useMaskEngine({\n mask,\n maskChar,\n formatChars,\n unmask,\n alwaysShowMask,\n imaskProps: customIMaskProps,\n });\n\n // Единственный источник истины — raw (только то, что ввёл пользователь, без маски)\n const [raw, setRaw] = useState<string>(() =>\n extractRaw((props.value ?? props.defaultValue) as string | number | undefined, engine),\n );\n\n // MaskState вычисляется синхронно из raw — оба визуальных слоя читают из него\n const maskState = useMemo(() => engine.compute(raw, focused), [raw, focused, engine]);\n\n const syncedImaskRef = useRef(engine.imask);\n const prevSyncedValueRef = useRef(props.value);\n\n // Синхронизировать raw при изменении props.value или правил маски\n useEffect(() => {\n const engineChanged = syncedImaskRef.current !== engine.imask;\n const valueChanged = prevSyncedValueRef.current !== props.value;\n syncedImaskRef.current = engine.imask;\n prevSyncedValueRef.current = props.value;\n\n if (props.value !== undefined) {\n if (valueChanged || engineChanged) {\n setRaw(extractRaw(props.value, engine));\n }\n return;\n }\n\n if (engineChanged) {\n setRaw((prev) => {\n engine.imask.unmaskedValue = prev;\n return engine.imask.rawInputValue;\n });\n }\n }, [props.value, engine]);\n\n // Вызывать onValueChange только при реальном изменении outputValue,\n // и НЕ при первом рендере (воспроизводит нативное поведение onChange)\n const isFirstRender = useRef(true);\n const prevOutputValue = useRef<string>(maskState.outputValue);\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n prevOutputValue.current = maskState.outputValue;\n return;\n }\n if (maskState.outputValue !== prevOutputValue.current) {\n prevOutputValue.current = maskState.outputValue;\n onValueChange?.(maskState.outputValue);\n }\n }, [maskState.outputValue]);\n\n useImperativeHandle<Input | null, (Input & { selectAll: () => void }) | null>(ref, () => {\n if (!inputRef.current) {\n return null;\n }\n return Object.assign(inputRef.current, {\n selectAll: () => {\n requestSelectionIntent('select-all');\n inputRef.current?.focus();\n const el = coreInputRef.current;\n if (el && el.ownerDocument.activeElement !== el) {\n requestSelectionIntent(null);\n }\n },\n });\n }, [requestSelectionIntent]);\n\n useLayoutEffect(() => {\n if (pendingCursorRestoreRef.current !== null && coreInputRef.current) {\n setMaskInputSelectionRange(coreInputRef.current, pendingCursorRestoreRef.current);\n lastCaretRef.current = pendingCursorRestoreRef.current;\n pendingCursorRestoreRef.current = null;\n }\n });\n\n useEffect(() => {\n if (!focused) {\n return;\n }\n\n const el = coreInputRef.current;\n if (!el) {\n return;\n }\n\n const syncCaret = () => {\n if (document.activeElement === el) {\n lastCaretRef.current = el.selectionStart ?? 0;\n }\n };\n\n document.addEventListener('selectionchange', syncCaret);\n return () => document.removeEventListener('selectionchange', syncCaret);\n }, [focused]);\n\n return (\n <Input\n ref={inputRef}\n {...inputProps}\n type={getSafeMaskInputType(type)}\n inputMode={getMaskInputMode(type, inputProps.inputMode)}\n // Непустоту значения Input считает по value нативного инпута, где лежат символы маски,\n // поэтому на пустом значении крестик выключаем сами.\n showClearIcon={raw === '' ? 'never' : showClearIcon}\n onValueChange={handleInputValueChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onSelect={handleSelect}\n className={cx(globalClasses.root, className, styles.root(theme))}\n element={\n <MaskedCore\n maskState={maskState}\n slotMap={engine.slotMap}\n engine={engine}\n focused={focused}\n currentRaw={raw}\n onRawChange={handleRawChange}\n onUnexpectedInput={triggerUnexpectedInput}\n onUndo={handleUndo}\n onRedo={handleRedo}\n coreInputRef={coreInputRef}\n colored={colored}\n selectAllOnFocus={selectAllOnFocus}\n selectionIntent={selectionIntent}\n onSelectionIntentChange={requestSelectionIntent}\n />\n }\n />\n );\n\n // Клик по крестику очистки Input отдаёт наружу через onValueChange, а сам чистит поле\n // записью в DOM — мимо модели маски, из-за чего значение вернулось бы при следующем рендере.\n // Поэтому очищаем через raw, как при обычном вводе.\n function handleInputValueChange(value: string) {\n if (value !== '') {\n return;\n }\n\n // При очистке крестиком raw ещё не пуст — записываем шаг в историю, чтобы undo вернул значение.\n // При удалении с клавиатуры сюда приходит уже применённый пустой raw, шаг записан в handleRawChange.\n if (raw !== '') {\n pushHistory('', 0);\n }\n\n setRaw('');\n pendingCursorRestoreRef.current = 0;\n }\n\n function handleRawChange(input: string, source: 'input' | 'paste', cursorPos?: number) {\n if (source === 'paste') {\n handlePasteChange(input, cursorPos);\n } else {\n if (input !== raw && cursorPos !== undefined) {\n pushHistory(input, cursorPos);\n }\n setRaw(input);\n }\n }\n\n function handlePasteChange(pasted: string, _cursorPos?: number) {\n const el = coreInputRef.current;\n const selectionStart = el?.selectionStart ?? 0;\n const selectionEnd = el?.selectionEnd ?? selectionStart;\n\n // При непустом выделении сначала убираем попавший в него raw (в т.ч. если край на литерале `-`),\n // иначе paste склеивает старое значение с новым.\n const selectedRawRange =\n selectionEnd > selectionStart ? getSelectionRawRange(selectionStart, selectionEnd, engine.slotMap) : null;\n\n let baseRaw = raw;\n let rawCursorPos: number;\n if (selectedRawRange) {\n baseRaw = raw.slice(0, selectedRawRange.rawStart) + raw.slice(selectedRawRange.rawEnd);\n rawCursorPos = selectedRawRange.rawStart;\n } else {\n rawCursorPos =\n engine.slotMap.maskedToRaw[selectionStart] !== null &&\n engine.slotMap.maskedToRaw[selectionStart] !== undefined\n ? (engine.slotMap.maskedToRaw[selectionStart] as number)\n : findNearestRawLeft(selectionStart, engine.slotMap);\n }\n\n const rawBefore = baseRaw.slice(0, rawCursorPos);\n const rawAfter = baseRaw.slice(rawCursorPos);\n\n let transformed = pasted;\n if (onBeforePasteValue) {\n transformed = onBeforePasteValue(pasted);\n } else if (getSafeMaskInputType(type) === 'tel') {\n transformed = normalizeRussianPhonePaste(pasted);\n }\n\n const result = engine.applyPaste(baseRaw, rawCursorPos, transformed);\n if (result.overflow) {\n // IF-1157: paste с overflow → onUnexpectedInput\n triggerUnexpectedInput();\n }\n\n const postPasteMaskState = engine.compute(result.raw, true);\n const maskedCursorPos = computePasteMaskedCursor(\n rawBefore,\n rawAfter,\n result.raw,\n rawCursorPos,\n engine.slotMap,\n postPasteMaskState.typedLength,\n );\n\n if (result.raw !== raw) {\n pushHistory(result.raw, maskedCursorPos);\n }\n\n setRaw(result.raw);\n pendingCursorRestoreRef.current = maskedCursorPos;\n\n if (onBeforePasteValue && onValueChange) {\n // Legacy-контракт: при кастомной вставке наружу уходит результат onBeforePasteValue,\n // а не masked/unmasked outputValue (нужно для ComboBox и совместимости с IMaskInput).\n prevOutputValue.current = engine.compute(result.raw, focused).outputValue;\n onValueChange(transformed);\n }\n }\n\n function pushHistory(newRaw: string, cursorPos: number) {\n const MAX_HISTORY_LENGTH = 100;\n\n if (historyRef.current.length === 0) {\n historyRef.current.push({ raw, cursorPos: 0 });\n historyIndexRef.current = 0;\n }\n\n if (historyIndexRef.current < historyRef.current.length - 1) {\n historyRef.current = historyRef.current.slice(0, historyIndexRef.current + 1);\n }\n\n historyRef.current.push({ raw: newRaw, cursorPos });\n if (historyRef.current.length > MAX_HISTORY_LENGTH) {\n historyRef.current.shift();\n }\n historyIndexRef.current = historyRef.current.length - 1;\n }\n\n function handleUndo() {\n if (historyRef.current.length === 0) {\n return;\n }\n const nextIndex = Math.max(0, historyIndexRef.current - 1);\n if (nextIndex !== historyIndexRef.current) {\n historyIndexRef.current = nextIndex;\n const state = historyRef.current[nextIndex];\n setRaw(state.raw);\n pendingCursorRestoreRef.current = state.cursorPos;\n }\n }\n\n function handleRedo() {\n if (historyRef.current.length === 0) {\n return;\n }\n const nextIndex = Math.min(historyRef.current.length - 1, historyIndexRef.current + 1);\n if (nextIndex !== historyIndexRef.current) {\n historyIndexRef.current = nextIndex;\n const state = historyRef.current[nextIndex];\n setRaw(state.raw);\n pendingCursorRestoreRef.current = state.cursorPos;\n }\n }\n\n function triggerUnexpectedInput(blinkOnly?: boolean) {\n const blink = inputRef.current?.blink.bind(inputRef.current) ?? (() => undefined);\n onUnexpectedInput && !blinkOnly ? onUnexpectedInput(maskState.outputValue, blink) : blink();\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleSelect(e: React.SyntheticEvent<HTMLInputElement>) {\n if (coreInputRef.current) {\n lastCaretRef.current = coreInputRef.current.selectionStart ?? 0;\n }\n inputProps.onSelect?.(e);\n }\n },\n);\n\n// Вспомогательные функции для совместимости (используются в стори и тестах)\nexport { getDefinitions, getMaskChar };\n"]}
@@ -1,11 +1,8 @@
1
- import React from 'react';
1
+ import { cx } from '@emotion/css';
2
+ import React, { useContext } from 'react';
2
3
  import { useStyles } from '../../../lib/renderEnvironment/index.js';
3
- // Склейка из библиотеки, а не `cx` из `@emotion/css`: тот не склеивает имена, а
4
- // сливает содержимое классов в НОВОЕ правило, которое вставляется в рантайме.
5
- // Правил компонентов больше нет — слияние породило бы правило, которого нет в
6
- // файле, и вернуло бы на страницу тег `<style>`.
7
- import { concatClassNames as cx } from '../../../lib/theming/Emotion.js';
8
- import { getStyles, globalClasses } from './MaskedInternal.styles.js';
4
+ import { ThemeContext } from '../../../lib/theming/ThemeContext.js';
5
+ import { getStyles, globalClasses } from './MaskedInternal.css.js';
9
6
  function splitTextBySelection(text, textStartOffset, selectionStart, selectionEnd) {
10
7
  if (selectionStart === selectionEnd) {
11
8
  return [text, '', ''];
@@ -25,6 +22,7 @@ function splitTextBySelection(text, textStartOffset, selectionStart, selectionEn
25
22
  */
26
23
  export function MaskOverlay(_a) {
27
24
  var typedValue = _a.typedValue, displayValue = _a.displayValue, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd, disabled = _a.disabled, textAlign = _a.textAlign, containerRef = _a.containerRef, _b = _a.colored, colored = _b === void 0 ? true : _b;
25
+ var theme = useContext(ThemeContext);
28
26
  var styles = useStyles(getStyles);
29
27
  var maskPart = displayValue.slice(typedValue.length);
30
28
  var disabledClass = disabled && globalClasses.disabled;
@@ -48,7 +46,9 @@ export function MaskOverlay(_a) {
48
46
  textAlign: textAlign,
49
47
  lineHeight: 'inherit',
50
48
  } },
51
- typedValue ? renderSegment(typedValue, 0, cx(styles.typed(), disabledClass, coloredClass)) : null,
52
- maskPart ? renderSegment(maskPart, typedValue.length, cx(styles.mask(), disabledClass, coloredClass)) : null)));
49
+ typedValue ? renderSegment(typedValue, 0, cx(styles.typed(theme), disabledClass, coloredClass)) : null,
50
+ maskPart
51
+ ? renderSegment(maskPart, typedValue.length, cx(styles.mask(theme), disabledClass, coloredClass))
52
+ : null)));
53
53
  }
54
54
  //# sourceMappingURL=MaskOverlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaskOverlay.js","sourceRoot":"","sources":["MaskOverlay.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { useStyles } from '../../../lib/renderEnvironment/index.js';\n// Склейка из библиотеки, а не `cx` из `@emotion/css`: тот не склеивает имена, а\n// сливает содержимое классов в НОВОЕ правило, которое вставляется в рантайме.\n// Правил компонентов больше нет — слияние породило бы правило, которого нет в\n// файле, и вернуло бы на страницу тег `<style>`.\nimport { concatClassNames as cx } from '../../../lib/theming/Emotion.js';\nimport { getStyles, globalClasses } from './MaskedInternal.styles.js';\n\ninterface MaskOverlayProps {\n typedValue: string;\n displayValue: string;\n selectionStart: number;\n selectionEnd: number;\n disabled?: boolean;\n textAlign?: React.CSSProperties['textAlign'];\n containerRef?: React.RefObject<HTMLSpanElement | null>;\n colored?: boolean;\n}\n\nfunction splitTextBySelection(\n text: string,\n textStartOffset: number,\n selectionStart: number,\n selectionEnd: number,\n): [string, string, string] {\n if (selectionStart === selectionEnd) {\n return [text, '', ''];\n }\n\n const localStart = Math.max(0, selectionStart - textStartOffset);\n const localEnd = Math.min(text.length, selectionEnd - textStartOffset);\n\n if (localEnd <= localStart) {\n return [text, '', ''];\n }\n\n return [text.slice(0, localStart), text.slice(localStart, localEnd), text.slice(localEnd)];\n}\n\n/**\n * Абсолютно позиционированный слой над <input>.\n * Input делается прозрачным (color: transparent), а весь текст\n * (typedValue + maskPart) рендерится здесь с раскраской.\n * При center/right align overlay выравнивает маску, а input смещается paddingLeft.\n */\nexport function MaskOverlay({\n typedValue,\n displayValue,\n selectionStart,\n selectionEnd,\n disabled,\n textAlign,\n containerRef,\n colored = true,\n}: MaskOverlayProps) {\n const styles = useStyles(getStyles);\n const maskPart = displayValue.slice(typedValue.length);\n\n const disabledClass = disabled && globalClasses.disabled;\n const coloredClass = colored && globalClasses.colored;\n const selectedSegmentClass = styles.selectedSegment();\n\n if (!typedValue && !maskPart) {\n return null;\n }\n\n function renderSegment(text: string, offset: number, segmentClassName: string) {\n const [before, selected, after] = splitTextBySelection(text, offset, selectionStart, selectionEnd);\n\n return (\n <>\n {before ? <span className={segmentClassName}>{before}</span> : null}\n {selected ? <span className={selectedSegmentClass}>{selected}</span> : null}\n {after ? <span className={segmentClassName}>{after}</span> : null}\n </>\n );\n }\n\n return (\n <span ref={containerRef} aria-hidden=\"true\" className={styles.overlay()}>\n <span\n data-tid=\"masked-input-overlay\"\n style={{\n display: 'inline-block',\n width: '100%',\n whiteSpace: 'nowrap',\n textAlign,\n lineHeight: 'inherit',\n }}\n >\n {typedValue ? renderSegment(typedValue, 0, cx(styles.typed(), disabledClass, coloredClass)) : null}\n {maskPart ? renderSegment(maskPart, typedValue.length, cx(styles.mask(), disabledClass, coloredClass)) : null}\n </span>\n </span>\n );\n}\n"]}
1
+ {"version":3,"file":"MaskOverlay.js","sourceRoot":"","sources":["MaskOverlay.tsx"],"names":[],"mappings":"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","sourcesContent":["import { cx } from '@emotion/css';\nimport React, { useContext } from 'react';\n\nimport { useStyles } from '../../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext.js';\nimport { getStyles, globalClasses } from './MaskedInternal.css.js';\n\ninterface MaskOverlayProps {\n typedValue: string;\n displayValue: string;\n selectionStart: number;\n selectionEnd: number;\n disabled?: boolean;\n textAlign?: React.CSSProperties['textAlign'];\n containerRef?: React.RefObject<HTMLSpanElement | null>;\n colored?: boolean;\n}\n\nfunction splitTextBySelection(\n text: string,\n textStartOffset: number,\n selectionStart: number,\n selectionEnd: number,\n): [string, string, string] {\n if (selectionStart === selectionEnd) {\n return [text, '', ''];\n }\n\n const localStart = Math.max(0, selectionStart - textStartOffset);\n const localEnd = Math.min(text.length, selectionEnd - textStartOffset);\n\n if (localEnd <= localStart) {\n return [text, '', ''];\n }\n\n return [text.slice(0, localStart), text.slice(localStart, localEnd), text.slice(localEnd)];\n}\n\n/**\n * Абсолютно позиционированный слой над <input>.\n * Input делается прозрачным (color: transparent), а весь текст\n * (typedValue + maskPart) рендерится здесь с раскраской.\n * При center/right align overlay выравнивает маску, а input смещается paddingLeft.\n */\nexport function MaskOverlay({\n typedValue,\n displayValue,\n selectionStart,\n selectionEnd,\n disabled,\n textAlign,\n containerRef,\n colored = true,\n}: MaskOverlayProps) {\n const theme = useContext(ThemeContext);\n const styles = useStyles(getStyles);\n const maskPart = displayValue.slice(typedValue.length);\n\n const disabledClass = disabled && globalClasses.disabled;\n const coloredClass = colored && globalClasses.colored;\n const selectedSegmentClass = styles.selectedSegment();\n\n if (!typedValue && !maskPart) {\n return null;\n }\n\n function renderSegment(text: string, offset: number, segmentClassName: string) {\n const [before, selected, after] = splitTextBySelection(text, offset, selectionStart, selectionEnd);\n\n return (\n <>\n {before ? <span className={segmentClassName}>{before}</span> : null}\n {selected ? <span className={selectedSegmentClass}>{selected}</span> : null}\n {after ? <span className={segmentClassName}>{after}</span> : null}\n </>\n );\n }\n\n return (\n <span ref={containerRef} aria-hidden=\"true\" className={styles.overlay()}>\n <span\n data-tid=\"masked-input-overlay\"\n style={{\n display: 'inline-block',\n width: '100%',\n whiteSpace: 'nowrap',\n textAlign,\n lineHeight: 'inherit',\n }}\n >\n {typedValue ? renderSegment(typedValue, 0, cx(styles.typed(theme), disabledClass, coloredClass)) : null}\n {maskPart\n ? renderSegment(maskPart, typedValue.length, cx(styles.mask(theme), disabledClass, coloredClass))\n : null}\n </span>\n </span>\n );\n}\n"]}
@@ -20,17 +20,14 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  }
21
21
  return t;
22
22
  };
23
- import React, { useCallback, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from 'react';
23
+ import { cx } from '@emotion/css';
24
+ import React, { useCallback, useContext, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState, } from 'react';
24
25
  import { forwardRefAndName } from '../../../lib/forwardRefAndName.js';
25
26
  import { useGlobal, useStyles } from '../../../lib/renderEnvironment/index.js';
26
27
  import { scrollInputCaretIntoView } from '../../../lib/scrollInputCaretIntoView.js';
27
- // Склейка из библиотеки, а не `cx` из `@emotion/css`: тот не склеивает имена, а
28
- // сливает содержимое классов в НОВОЕ правило, которое вставляется в рантайме.
29
- // Правил компонентов больше нет — слияние породило бы правило, которого нет в
30
- // файле, и вернуло бы на страницу тег `<style>`.
31
- import { concatClassNames as cx } from '../../../lib/theming/Emotion.js';
28
+ import { ThemeContext } from '../../../lib/theming/ThemeContext.js';
32
29
  import { needsMaskAlignPadding } from './computeMaskAlignPadding.js';
33
- import { getStyles, globalClasses } from './MaskedInternal.styles.js';
30
+ import { getStyles, globalClasses } from './MaskedInternal.css.js';
34
31
  import { MaskOverlay } from './MaskOverlay.js';
35
32
  import { setMaskInputSelectionRange } from './setMaskInputSelectionRange.js';
36
33
  import { getShowOverlay } from './showOverlay.js';
@@ -47,6 +44,7 @@ export var MaskedCore = forwardRefAndName('MaskedCore', function MaskedCore(prop
47
44
  var styles = useStyles(getStyles);
48
45
  var globalObject = useGlobal();
49
46
  var overlayRef = useRef(null);
47
+ var theme = useContext(ThemeContext);
50
48
  var textAlign = (_a = rest.style) === null || _a === void 0 ? void 0 : _a.textAlign;
51
49
  var _d = useState(null), internalSelectionIntent = _d[0], setInternalSelectionIntent = _d[1];
52
50
  var selectionIntent = externalSelectionIntent === undefined ? internalSelectionIntent : externalSelectionIntent;
@@ -187,7 +185,7 @@ export var MaskedCore = forwardRefAndName('MaskedCore', function MaskedCore(prop
187
185
  var alignPadding = useMaskAlignPadding(coreInputRef, overlayRef, maskState.displayValue, textAlign, focused && showOverlay && needsMaskAlignPadding(textAlign));
188
186
  var inputStyle = alignPadding > 0 ? __assign(__assign({}, rest.style), { textAlign: 'left', paddingLeft: alignPadding }) : rest.style;
189
187
  return (React.createElement(React.Fragment, null,
190
- React.createElement("input", __assign({}, rest, { style: inputStyle, placeholder: showOverlay ? undefined : placeholder, "aria-disabled": disabled, disabled: disabled, ref: coreInputRef, className: cx(globalClasses.input, styles.input(), showOverlay && globalClasses.masked, className), value: maskState.typedValue, onChange: handleChange, onBeforeInput: handleBeforeInput, onKeyDown: handleKeyDown, onSelect: handleSelect, onPaste: handlePaste, onCopy: handleCopy, onCut: handleCut, onFocus: handleFocus, onBlur: handleBlur, onInput: handleInput, onMouseDown: function (e) {
188
+ React.createElement("input", __assign({}, rest, { style: inputStyle, placeholder: showOverlay ? undefined : placeholder, "aria-disabled": disabled, disabled: disabled, ref: coreInputRef, className: cx(globalClasses.input, styles.input(theme), showOverlay && globalClasses.masked, className), value: maskState.typedValue, onChange: handleChange, onBeforeInput: handleBeforeInput, onKeyDown: handleKeyDown, onSelect: handleSelect, onPaste: handlePaste, onCopy: handleCopy, onCut: handleCut, onFocus: handleFocus, onBlur: handleBlur, onInput: handleInput, onMouseDown: function (e) {
191
189
  var _a;
192
190
  handleMouseDown();
193
191
  (_a = rest.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(rest, e);
@@ -1 +1 @@
1
- {"version":3,"file":"MaskedCore.js","sourceRoot":"","sources":["MaskedCore.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from 'react';\n\nimport { forwardRefAndName } from '../../../lib/forwardRefAndName.js';\nimport { useGlobal, useStyles } from '../../../lib/renderEnvironment/index.js';\nimport { scrollInputCaretIntoView } from '../../../lib/scrollInputCaretIntoView.js';\n// Склейка из библиотеки, а не `cx` из `@emotion/css`: тот не склеивает имена, а\n// сливает содержимое классов в НОВОЕ правило, которое вставляется в рантайме.\n// Правил компонентов больше нет — слияние породило бы правило, которого нет в\n// файле, и вернуло бы на страницу тег `<style>`.\nimport { concatClassNames as cx } from '../../../lib/theming/Emotion.js';\nimport type { InputElement } from '../../Input/Input.typings.js';\nimport { needsMaskAlignPadding } from './computeMaskAlignPadding.js';\nimport type { MaskedCoreProps } from './MaskedCore.types.js';\nimport { getStyles, globalClasses } from './MaskedInternal.styles.js';\nimport { MaskOverlay } from './MaskOverlay.js';\nimport { setMaskInputSelectionRange } from './setMaskInputSelectionRange.js';\nimport { getShowOverlay } from './showOverlay.js';\nimport { useInputOverflow } from './useInputOverflow.js';\nimport { useMaskAlignPadding } from './useMaskAlignPadding.js';\nimport { useMaskedCoreHandlers } from './useMaskedCoreHandlers.js';\n\nexport type { MaskedCoreProps } from './MaskedCore.types.js';\n\n/**\n * Headless-слой MaskedInputV2: прозрачный `<input>` для ввода и {@link MaskOverlay} для отображения маски.\n * Управляется через {@link useMaskedCoreHandlers}.\n */\nexport const MaskedCore = forwardRefAndName(\n 'MaskedCore',\n function MaskedCore(props: MaskedCoreProps, ref: React.ForwardedRef<InputElement | null>) {\n const {\n maskState,\n slotMap,\n engine,\n focused,\n currentRaw,\n onRawChange,\n onUnexpectedInput,\n onUndo,\n onRedo,\n coreInputRef,\n colored = true,\n selectAllOnFocus,\n selectionIntent: externalSelectionIntent,\n onSelectionIntentChange,\n onKeyDown,\n onMouseUp,\n onInput,\n onSelect,\n onFocus,\n onPaste,\n onBlur,\n onChange: inputOnChange,\n placeholder,\n className,\n disabled,\n ...rest\n } = props;\n\n const styles = useStyles(getStyles);\n const globalObject = useGlobal();\n const overlayRef = useRef<HTMLSpanElement>(null);\n const textAlign = rest.style?.textAlign;\n const [internalSelectionIntent, setInternalSelectionIntent] = useState<NonNullable<\n MaskedCoreProps['selectionIntent']\n > | null>(null);\n const selectionIntent = externalSelectionIntent === undefined ? internalSelectionIntent : externalSelectionIntent;\n const selectionIntentRef = useRef(selectionIntent);\n selectionIntentRef.current = selectionIntent;\n\n const requestSelectionIntent = useCallback(\n (intent: NonNullable<MaskedCoreProps['selectionIntent']> | null) => {\n if (onSelectionIntentChange) {\n onSelectionIntentChange(intent);\n return;\n }\n setInternalSelectionIntent((current) =>\n current === 'select-all' && intent === 'caret-end' ? current : intent,\n );\n },\n [onSelectionIntentChange],\n );\n\n const syncOverlayScroll = useCallback(() => {\n if (overlayRef.current && coreInputRef.current) {\n overlayRef.current.style.transform = `translateX(-${coreInputRef.current.scrollLeft}px)`;\n }\n }, [coreInputRef]);\n\n const overflows = useInputOverflow(coreInputRef, maskState.displayValue, focused);\n const showOverlay = getShowOverlay(maskState, focused, overflows);\n\n const {\n pendingCursorRef,\n selectionRange,\n syncSelection,\n handleChange,\n handleKeyDown,\n handleSelect,\n handlePaste,\n handleBeforeInput,\n handleCopy,\n handleCut,\n handleInput,\n handleMouseDown,\n handleMouseUp,\n handleFocus,\n handleBlur,\n } = useMaskedCoreHandlers({\n maskState,\n slotMap,\n engine,\n currentRaw,\n onRawChange,\n onUnexpectedInput,\n onUndo,\n onRedo,\n coreInputRef,\n selectAllOnFocus,\n onKeyDown,\n onMouseUp,\n onInput,\n onSelect,\n onFocus,\n onBlur,\n onPaste,\n syncOverlayScroll,\n requestSelectionIntent,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n input: coreInputRef.current,\n getRootNode: () => coreInputRef.current,\n }),\n [coreInputRef],\n );\n\n const applySelectionIntent = useCallback(\n (intent: NonNullable<MaskedCoreProps['selectionIntent']>) => {\n const el = coreInputRef.current;\n if (!el || !focused) {\n return;\n }\n\n if (intent === 'select-all') {\n setMaskInputSelectionRange(el, 0, maskState.typedLength);\n } else {\n const start = el.selectionStart ?? 0;\n const end = el.selectionEnd ?? 0;\n if (start === end && start !== 0 && start !== maskState.typedLength) {\n return;\n }\n setMaskInputSelectionRange(el, maskState.typedLength);\n }\n scrollInputCaretIntoView(el);\n syncSelection(el);\n },\n [coreInputRef, focused, maskState.typedLength, syncSelection],\n );\n\n useLayoutEffect(() => {\n const el = coreInputRef.current;\n\n if (selectionIntent) {\n applySelectionIntent(selectionIntent);\n } else if (pendingCursorRef.current !== null && el) {\n const pos = pendingCursorRef.current;\n pendingCursorRef.current = null;\n setMaskInputSelectionRange(el, pos);\n scrollInputCaretIntoView(el);\n syncSelection(el);\n } else if (el && focused) {\n scrollInputCaretIntoView(el);\n }\n\n syncOverlayScroll();\n // typedValue в deps обязателен: после controlled-update React сбрасывает selection,\n // а typedLength при shift-перезаписи в полной маске может не измениться (1212 → 1251).\n }, [applySelectionIntent, focused, maskState.typedValue, selectionIntent, syncOverlayScroll, syncSelection]);\n\n // Браузер может применить свою Tab-selection после focus-хендлеров.\n // Один отменяемый retry после события оставляет последнее намерение победителем.\n useEffect(() => {\n if (!selectionIntent || !focused) {\n return;\n }\n\n const appliedIntent = selectionIntent;\n const setTimeout = globalObject.setTimeout;\n if (!setTimeout) {\n requestSelectionIntent(null);\n return;\n }\n const timer = setTimeout(() => {\n if (selectionIntentRef.current !== appliedIntent) {\n return;\n }\n const el = coreInputRef.current;\n if (!el || globalObject.document?.activeElement !== el) {\n requestSelectionIntent(null);\n return;\n }\n applySelectionIntent(appliedIntent);\n requestSelectionIntent(null);\n }, 0);\n\n return () => globalObject.clearTimeout?.(timer);\n }, [applySelectionIntent, coreInputRef, focused, globalObject, requestSelectionIntent, selectionIntent]);\n\n // Значение маски живёт в React-состоянии, а Input пересчитывает своё (показ крестика очистки)\n // только в onChange, которого при удалении и undo не бывает — они идут через keydown.\n // Поэтому дёргаем его сами на каждое изменение значения.\n useEffect(() => {\n const el = coreInputRef.current;\n if (el) {\n inputOnChange?.({ target: el, currentTarget: el } as React.ChangeEvent<HTMLInputElement>);\n }\n }, [maskState.typedValue]);\n\n useEffect(() => {\n if (!focused) {\n return;\n }\n\n const el = coreInputRef.current;\n if (!el) {\n return;\n }\n\n const handleSelectionChange = () => {\n if (document.activeElement === el) {\n handleSelect();\n }\n };\n\n document.addEventListener('selectionchange', handleSelectionChange);\n return () => document.removeEventListener('selectionchange', handleSelectionChange);\n }, [focused, handleSelect]);\n\n const alignPadding = useMaskAlignPadding(\n coreInputRef,\n overlayRef,\n maskState.displayValue,\n textAlign,\n focused && showOverlay && needsMaskAlignPadding(textAlign),\n );\n const inputStyle =\n alignPadding > 0 ? { ...rest.style, textAlign: 'left' as const, paddingLeft: alignPadding } : rest.style;\n\n return (\n <>\n <input\n {...rest}\n style={inputStyle}\n placeholder={showOverlay ? undefined : placeholder}\n aria-disabled={disabled}\n disabled={disabled}\n ref={coreInputRef}\n className={cx(globalClasses.input, styles.input(), showOverlay && globalClasses.masked, className)}\n value={maskState.typedValue}\n onChange={handleChange}\n onBeforeInput={handleBeforeInput}\n onKeyDown={handleKeyDown}\n onSelect={handleSelect}\n onPaste={handlePaste}\n onCopy={handleCopy}\n onCut={handleCut}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onMouseDown={(e) => {\n handleMouseDown();\n rest.onMouseDown?.(e);\n }}\n onMouseUp={handleMouseUp}\n onScroll={syncOverlayScroll}\n />\n {showOverlay && (\n <MaskOverlay\n containerRef={overlayRef}\n typedValue={maskState.typedValue}\n displayValue={maskState.displayValue}\n selectionStart={selectionRange.start}\n selectionEnd={selectionRange.end}\n disabled={disabled}\n textAlign={rest.style?.textAlign}\n colored={colored}\n />\n )}\n </>\n );\n },\n);\n"]}
1
+ {"version":3,"file":"MaskedCore.js","sourceRoot":"","sources":["MaskedCore.tsx"],"names":[],"mappings":"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","sourcesContent":["import { cx } from '@emotion/css';\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\n\nimport { forwardRefAndName } from '../../../lib/forwardRefAndName.js';\nimport { useGlobal, useStyles } from '../../../lib/renderEnvironment/index.js';\nimport { scrollInputCaretIntoView } from '../../../lib/scrollInputCaretIntoView.js';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext.js';\nimport type { InputElement } from '../../Input/Input.typings.js';\nimport { needsMaskAlignPadding } from './computeMaskAlignPadding.js';\nimport type { MaskedCoreProps } from './MaskedCore.types.js';\nimport { getStyles, globalClasses } from './MaskedInternal.css.js';\nimport { MaskOverlay } from './MaskOverlay.js';\nimport { setMaskInputSelectionRange } from './setMaskInputSelectionRange.js';\nimport { getShowOverlay } from './showOverlay.js';\nimport { useInputOverflow } from './useInputOverflow.js';\nimport { useMaskAlignPadding } from './useMaskAlignPadding.js';\nimport { useMaskedCoreHandlers } from './useMaskedCoreHandlers.js';\n\nexport type { MaskedCoreProps } from './MaskedCore.types.js';\n\n/**\n * Headless-слой MaskedInputV2: прозрачный `<input>` для ввода и {@link MaskOverlay} для отображения маски.\n * Управляется через {@link useMaskedCoreHandlers}.\n */\nexport const MaskedCore = forwardRefAndName(\n 'MaskedCore',\n function MaskedCore(props: MaskedCoreProps, ref: React.ForwardedRef<InputElement | null>) {\n const {\n maskState,\n slotMap,\n engine,\n focused,\n currentRaw,\n onRawChange,\n onUnexpectedInput,\n onUndo,\n onRedo,\n coreInputRef,\n colored = true,\n selectAllOnFocus,\n selectionIntent: externalSelectionIntent,\n onSelectionIntentChange,\n onKeyDown,\n onMouseUp,\n onInput,\n onSelect,\n onFocus,\n onPaste,\n onBlur,\n onChange: inputOnChange,\n placeholder,\n className,\n disabled,\n ...rest\n } = props;\n\n const styles = useStyles(getStyles);\n const globalObject = useGlobal();\n const overlayRef = useRef<HTMLSpanElement>(null);\n const theme = useContext(ThemeContext);\n const textAlign = rest.style?.textAlign;\n const [internalSelectionIntent, setInternalSelectionIntent] = useState<NonNullable<\n MaskedCoreProps['selectionIntent']\n > | null>(null);\n const selectionIntent = externalSelectionIntent === undefined ? internalSelectionIntent : externalSelectionIntent;\n const selectionIntentRef = useRef(selectionIntent);\n selectionIntentRef.current = selectionIntent;\n\n const requestSelectionIntent = useCallback(\n (intent: NonNullable<MaskedCoreProps['selectionIntent']> | null) => {\n if (onSelectionIntentChange) {\n onSelectionIntentChange(intent);\n return;\n }\n setInternalSelectionIntent((current) =>\n current === 'select-all' && intent === 'caret-end' ? current : intent,\n );\n },\n [onSelectionIntentChange],\n );\n\n const syncOverlayScroll = useCallback(() => {\n if (overlayRef.current && coreInputRef.current) {\n overlayRef.current.style.transform = `translateX(-${coreInputRef.current.scrollLeft}px)`;\n }\n }, [coreInputRef]);\n\n const overflows = useInputOverflow(coreInputRef, maskState.displayValue, focused);\n const showOverlay = getShowOverlay(maskState, focused, overflows);\n\n const {\n pendingCursorRef,\n selectionRange,\n syncSelection,\n handleChange,\n handleKeyDown,\n handleSelect,\n handlePaste,\n handleBeforeInput,\n handleCopy,\n handleCut,\n handleInput,\n handleMouseDown,\n handleMouseUp,\n handleFocus,\n handleBlur,\n } = useMaskedCoreHandlers({\n maskState,\n slotMap,\n engine,\n currentRaw,\n onRawChange,\n onUnexpectedInput,\n onUndo,\n onRedo,\n coreInputRef,\n selectAllOnFocus,\n onKeyDown,\n onMouseUp,\n onInput,\n onSelect,\n onFocus,\n onBlur,\n onPaste,\n syncOverlayScroll,\n requestSelectionIntent,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n input: coreInputRef.current,\n getRootNode: () => coreInputRef.current,\n }),\n [coreInputRef],\n );\n\n const applySelectionIntent = useCallback(\n (intent: NonNullable<MaskedCoreProps['selectionIntent']>) => {\n const el = coreInputRef.current;\n if (!el || !focused) {\n return;\n }\n\n if (intent === 'select-all') {\n setMaskInputSelectionRange(el, 0, maskState.typedLength);\n } else {\n const start = el.selectionStart ?? 0;\n const end = el.selectionEnd ?? 0;\n if (start === end && start !== 0 && start !== maskState.typedLength) {\n return;\n }\n setMaskInputSelectionRange(el, maskState.typedLength);\n }\n scrollInputCaretIntoView(el);\n syncSelection(el);\n },\n [coreInputRef, focused, maskState.typedLength, syncSelection],\n );\n\n useLayoutEffect(() => {\n const el = coreInputRef.current;\n\n if (selectionIntent) {\n applySelectionIntent(selectionIntent);\n } else if (pendingCursorRef.current !== null && el) {\n const pos = pendingCursorRef.current;\n pendingCursorRef.current = null;\n setMaskInputSelectionRange(el, pos);\n scrollInputCaretIntoView(el);\n syncSelection(el);\n } else if (el && focused) {\n scrollInputCaretIntoView(el);\n }\n\n syncOverlayScroll();\n // typedValue в deps обязателен: после controlled-update React сбрасывает selection,\n // а typedLength при shift-перезаписи в полной маске может не измениться (1212 → 1251).\n }, [applySelectionIntent, focused, maskState.typedValue, selectionIntent, syncOverlayScroll, syncSelection]);\n\n // Браузер может применить свою Tab-selection после focus-хендлеров.\n // Один отменяемый retry после события оставляет последнее намерение победителем.\n useEffect(() => {\n if (!selectionIntent || !focused) {\n return;\n }\n\n const appliedIntent = selectionIntent;\n const setTimeout = globalObject.setTimeout;\n if (!setTimeout) {\n requestSelectionIntent(null);\n return;\n }\n const timer = setTimeout(() => {\n if (selectionIntentRef.current !== appliedIntent) {\n return;\n }\n const el = coreInputRef.current;\n if (!el || globalObject.document?.activeElement !== el) {\n requestSelectionIntent(null);\n return;\n }\n applySelectionIntent(appliedIntent);\n requestSelectionIntent(null);\n }, 0);\n\n return () => globalObject.clearTimeout?.(timer);\n }, [applySelectionIntent, coreInputRef, focused, globalObject, requestSelectionIntent, selectionIntent]);\n\n // Значение маски живёт в React-состоянии, а Input пересчитывает своё (показ крестика очистки)\n // только в onChange, которого при удалении и undo не бывает — они идут через keydown.\n // Поэтому дёргаем его сами на каждое изменение значения.\n useEffect(() => {\n const el = coreInputRef.current;\n if (el) {\n inputOnChange?.({ target: el, currentTarget: el } as React.ChangeEvent<HTMLInputElement>);\n }\n }, [maskState.typedValue]);\n\n useEffect(() => {\n if (!focused) {\n return;\n }\n\n const el = coreInputRef.current;\n if (!el) {\n return;\n }\n\n const handleSelectionChange = () => {\n if (document.activeElement === el) {\n handleSelect();\n }\n };\n\n document.addEventListener('selectionchange', handleSelectionChange);\n return () => document.removeEventListener('selectionchange', handleSelectionChange);\n }, [focused, handleSelect]);\n\n const alignPadding = useMaskAlignPadding(\n coreInputRef,\n overlayRef,\n maskState.displayValue,\n textAlign,\n focused && showOverlay && needsMaskAlignPadding(textAlign),\n );\n const inputStyle =\n alignPadding > 0 ? { ...rest.style, textAlign: 'left' as const, paddingLeft: alignPadding } : rest.style;\n\n return (\n <>\n <input\n {...rest}\n style={inputStyle}\n placeholder={showOverlay ? undefined : placeholder}\n aria-disabled={disabled}\n disabled={disabled}\n ref={coreInputRef}\n className={cx(globalClasses.input, styles.input(theme), showOverlay && globalClasses.masked, className)}\n value={maskState.typedValue}\n onChange={handleChange}\n onBeforeInput={handleBeforeInput}\n onKeyDown={handleKeyDown}\n onSelect={handleSelect}\n onPaste={handlePaste}\n onCopy={handleCopy}\n onCut={handleCut}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onMouseDown={(e) => {\n handleMouseDown();\n rest.onMouseDown?.(e);\n }}\n onMouseUp={handleMouseUp}\n onScroll={syncOverlayScroll}\n />\n {showOverlay && (\n <MaskOverlay\n containerRef={overlayRef}\n typedValue={maskState.typedValue}\n displayValue={maskState.displayValue}\n selectionStart={selectionRange.start}\n selectionEnd={selectionRange.end}\n disabled={disabled}\n textAlign={rest.style?.textAlign}\n colored={colored}\n />\n )}\n </>\n );\n },\n);\n"]}
@@ -0,0 +1,15 @@
1
+ import type { Theme } from '../../../lib/theming/Theme.js';
2
+ export declare const globalClasses: {
3
+ input: string;
4
+ disabled: string;
5
+ selected: string;
6
+ masked: string;
7
+ colored: string;
8
+ };
9
+ export declare const getStyles: import("../../../lib/theming/StaticStyles.js").StylesGetter<{
10
+ input(t: Theme): string;
11
+ overlay(): string;
12
+ typed(t: Theme): string;
13
+ mask(t: Theme): string;
14
+ selectedSegment(): string;
15
+ }>;
@@ -0,0 +1,4 @@
1
+
2
+ import { bindStaticStyles as _27adf } from '../../../lib/theming/bindStaticStyles.js';
3
+ export var getStyles = _27adf({input:'react-ui-MaskedInternal__input',overlay:'react-ui-MaskedInternal__overlay',typed:'react-ui-MaskedInternal__typed',mask:'react-ui-MaskedInternal__mask',selectedSegment:'react-ui-MaskedInternal__selectedSegment'});
4
+ export var globalClasses = {input:'react-ui-masked-internal-input',disabled:'react-ui-masked-internal-disabled',selected:'react-ui-masked-internal-selected',masked:'react-ui-masked-internal-masked',colored:'react-ui-masked-internal-colored'};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaskedInternal.css.js","sourceRoot":"","sources":["MaskedInternal.css.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAG9F,MAAM,CAAC,IAAM,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACrD,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,KAAK,YAAC,CAAQ;YACZ,OAAO,GAAG,+9EAAA,wBACQ,EAAkB,wEAGZ,EAAS,2EAEpB,EAAgB,kKAMU,EAAS,4CACjB,EAAS,4CACT,EAAgB,+BAClC,EAAgB,mMAEV,EAAgB,mKAOtB,EAAwB,4EAGX,EAAiB,4KAMF,EAAiB,8CACzB,EAAiB,yCAI5C,EAAoB,uGAGP,EAAgB,mlBAWd,EAAgB,iiBAShB,EAAgB,wCAGpC,KA/DiB,CAAC,CAAC,gBAAgB,EAGZ,CAAC,CAAC,OAAO,EAEpB,CAAC,CAAC,cAAc,EAMU,CAAC,CAAC,OAAO,EACjB,CAAC,CAAC,OAAO,EACT,CAAC,CAAC,cAAc,EAClC,CAAC,CAAC,cAAc,EAEV,CAAC,CAAC,cAAc,EAOtB,CAAC,CAAC,sBAAsB,EAGX,CAAC,CAAC,eAAe,EAMF,CAAC,CAAC,eAAe,EACzB,CAAC,CAAC,eAAe,EAI5C,aAAa,CAAC,MAAM,EAGP,CAAC,CAAC,cAAc,EAWd,CAAC,CAAC,cAAc,EAShB,CAAC,CAAC,cAAc,EAGnC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,GAAG,4QAAA,yMAST,KAAC;QACJ,CAAC;QACD,KAAK,YAAC,CAAQ;YACZ,OAAO,GAAG,yKAAA,0CAEC,EAAgB,eAErB,EAAsB,qBACf,EAAwB,kBAEpC,KALU,CAAC,CAAC,cAAc,EAErB,aAAa,CAAC,QAAQ,EACf,CAAC,CAAC,sBAAsB,EAEnC;QACJ,CAAC;QACD,IAAI,YAAC,CAAQ;YACX,OAAO,GAAG,0NAAA,0CAEC,EAAgB,eAErB,EAAqB,qBACd,EAAuB,wBAG9B,EAAsB,qBACf,EAAwB,kBAEpC,KATU,CAAC,CAAC,cAAc,EAErB,aAAa,CAAC,OAAO,EACd,CAAC,CAAC,qBAAqB,EAG9B,aAAa,CAAC,QAAQ,EACf,CAAC,CAAC,sBAAsB,EAEnC;QACJ,CAAC;QACD,eAAe;YACb,OAAO,GAAG,6LAAA,0HAIT,KAAC;QACJ,CAAC;KACF,CAAC;AA/G8D,CA+G9D,CAAC,CAAC;AAEJ,oBAAoB,EAAE,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { prefix } from '../../../lib/theming/Emotion.js';\nimport { finalizeStaticStyles, memoizeGetStyles } from '../../../lib/theming/StaticStyles.js';\nimport type { Theme } from '../../../lib/theming/Theme.js';\n\nexport const globalClasses = prefix('masked-internal')({\n input: 'input',\n disabled: 'disabled',\n selected: 'selected',\n masked: 'masked',\n colored: 'colored',\n});\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n input(t: Theme) {\n return css`\n color-scheme: ${t.inputColorScheme};\n\n &:-internal-autofill-selected {\n background-color: ${t.inputBg} !important;\n background-image: none !important;\n color: ${t.inputTextColor} !important;\n }\n\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus {\n -webkit-box-shadow: 0 0 0 1000px ${t.inputBg} inset;\n box-shadow: 0 0 0 1000px ${t.inputBg} inset;\n -webkit-text-fill-color: ${t.inputTextColor} !important;\n color: ${t.inputTextColor} !important;\n /* Chrome иначе скрывает caret при autofill (color/currentColor). */\n caret-color: ${t.inputTextColor} !important;\n transition:\n background-color 0s 600000s,\n color 0s 600000s !important;\n }\n\n &:disabled {\n color: ${t.inputTextColorDisabled};\n\n &:-internal-autofill-selected {\n background-color: ${t.inputDisabledBg} !important;\n }\n\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus {\n -webkit-box-shadow: 0 0 0 1000px ${t.inputDisabledBg} inset;\n box-shadow: 0 0 0 1000px ${t.inputDisabledBg} inset;\n }\n }\n\n &.${globalClasses.masked} {\n color: transparent;\n -webkit-text-fill-color: transparent;\n caret-color: ${t.inputTextColor};\n\n &::selection {\n background-color: transparent !important;\n color: transparent !important;\n -webkit-text-fill-color: transparent !important;\n }\n\n /* Текст рисует MaskOverlay; браузер при autofill не должен перебивать fill-color. */\n &:-internal-autofill-selected {\n color: transparent !important;\n caret-color: ${t.inputTextColor} !important;\n }\n\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus {\n -webkit-text-fill-color: transparent !important;\n color: transparent !important;\n /* Без этого caret становится transparent вместе с текстом и не мигает. */\n caret-color: ${t.inputTextColor} !important;\n }\n }\n `;\n },\n overlay() {\n return css`\n position: absolute;\n inset: 0;\n pointer-events: none;\n user-select: none;\n overflow: hidden;\n display: flex;\n align-items: center;\n z-index: 2;\n `;\n },\n typed(t: Theme) {\n return css`\n white-space: pre;\n color: ${t.inputTextColor};\n\n &.${globalClasses.disabled} {\n color: ${t.inputTextColorDisabled};\n }\n `;\n },\n mask(t: Theme) {\n return css`\n white-space: pre;\n color: ${t.inputTextColor};\n\n &.${globalClasses.colored} {\n color: ${t.inputPlaceholderColor};\n }\n\n &.${globalClasses.disabled} {\n color: ${t.inputTextColorDisabled};\n }\n `;\n },\n selectedSegment() {\n return css`\n background-color: #3390ff;\n color: #fff !important;\n -webkit-text-fill-color: #fff !important;\n `;\n },\n}));\n\nfinalizeStaticStyles();\n"]}
@@ -0,0 +1,10 @@
1
+ import type { Theme } from '../../lib/theming/Theme.js';
2
+ export declare const getStyles: import("../../lib/theming/StaticStyles.js").StylesGetter<{
3
+ root(t: Theme): string;
4
+ rootSmall(t: Theme): string;
5
+ rootMedium(t: Theme): string;
6
+ rootLarge(t: Theme): string;
7
+ withLeftPaddingSmall(t: Theme): string;
8
+ withLeftPaddingMedium(t: Theme): string;
9
+ withLeftPaddingLarge(t: Theme): string;
10
+ }>;
@@ -0,0 +1,3 @@
1
+
2
+ import { bindStaticStyles as _b9cd9 } from '../../lib/theming/bindStaticStyles.js';
3
+ export var getStyles = _b9cd9({root:'react-ui-MenuFooter__root',rootSmall:'react-ui-MenuFooter__rootSmall',rootMedium:'react-ui-MenuFooter__rootMedium',rootLarge:'react-ui-MenuFooter__rootLarge',withLeftPaddingSmall:'react-ui-MenuFooter__withLeftPaddingSmall',withLeftPaddingMedium:'react-ui-MenuFooter__withLeftPaddingMedium',withLeftPaddingLarge:'react-ui-MenuFooter__withLeftPaddingLarge'});
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuFooter.css.js","sourceRoot":"","sources":["MenuFooter.css.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE3F,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,IAAI,YAAC,CAAQ;YACX,OAAO,GAAG,uHAAA,iBACC,EAAiB,iCAE3B,KAFU,CAAC,CAAC,eAAe,EAE1B;QACJ,CAAC;QAED,SAAS,YAAC,CAAQ;YAChB,OAAO,GAAG,wFAAA,UACN,EAMD,SACF,KAPG,mBAAmB,CACnB,CAAC,CAAC,uBAAuB,EACzB,CAAC,CAAC,uBAAuB,EACzB,CAAC,CAAC,yBAAyB,EAC3B,CAAC,CAAC,yBAAyB,EAC3B,CAAC,CAAC,4BAA4B,CAC/B,EACD;QACJ,CAAC;QACD,UAAU,YAAC,CAAQ;YACjB,OAAO,GAAG,wFAAA,UACN,EAMD,SACF,KAPG,mBAAmB,CACnB,CAAC,CAAC,wBAAwB,EAC1B,CAAC,CAAC,wBAAwB,EAC1B,CAAC,CAAC,0BAA0B,EAC5B,CAAC,CAAC,0BAA0B,EAC5B,CAAC,CAAC,6BAA6B,CAChC,EACD;QACJ,CAAC;QACD,SAAS,YAAC,CAAQ;YAChB,OAAO,GAAG,wFAAA,UACN,EAMD,SACF,KAPG,mBAAmB,CACnB,CAAC,CAAC,uBAAuB,EACzB,CAAC,CAAC,uBAAuB,EACzB,CAAC,CAAC,yBAAyB,EAC3B,CAAC,CAAC,yBAAyB,EAC3B,CAAC,CAAC,4BAA4B,CAC/B,EACD;QACJ,CAAC;QAED,oBAAoB,YAAC,CAAQ;YAC3B,OAAO,GAAG,uFAAA,UACN,EAAgD,QACnD,KADG,iBAAiB,CAAC,CAAC,CAAC,2BAA2B,CAAC,EAClD;QACJ,CAAC;QACD,qBAAqB,YAAC,CAAQ;YAC5B,OAAO,GAAG,uFAAA,UACN,EAAiD,QACpD,KADG,iBAAiB,CAAC,CAAC,CAAC,4BAA4B,CAAC,EACnD;QACJ,CAAC;QACD,oBAAoB,YAAC,CAAQ;YAC3B,OAAO,GAAG,uFAAA,UACN,EAAgD,QACnD,KADG,iBAAiB,CAAC,CAAC,CAAC,2BAA2B,CAAC,EAClD;QACJ,CAAC;KACF,CAAC;AAzD8D,CAyD9D,CAAC,CAAC;AAEJ,oBAAoB,EAAE,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { finalizeStaticStyles, memoizeGetStyles } from '../../lib/theming/StaticStyles.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { menuFooterSizeMixin, withIconSizeMixin } from './MenuFooter.mixins.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n root(t: Theme) {\n return css`\n color: ${t.menuFooterColor};\n cursor: default;\n `;\n },\n\n rootSmall(t: Theme) {\n return css`\n ${menuFooterSizeMixin(\n t.menuFooterPaddingXSmall,\n t.menuFooterFontSizeSmall,\n t.menuFooterLineHeightSmall,\n t.menuFooterPaddingTopSmall,\n t.menuFooterPaddingBottomSmall,\n )};\n `;\n },\n rootMedium(t: Theme) {\n return css`\n ${menuFooterSizeMixin(\n t.menuFooterPaddingXMedium,\n t.menuFooterFontSizeMedium,\n t.menuFooterLineHeightMedium,\n t.menuFooterPaddingTopMedium,\n t.menuFooterPaddingBottomMedium,\n )};\n `;\n },\n rootLarge(t: Theme) {\n return css`\n ${menuFooterSizeMixin(\n t.menuFooterPaddingXLarge,\n t.menuFooterFontSizeLarge,\n t.menuFooterLineHeightLarge,\n t.menuFooterPaddingTopLarge,\n t.menuFooterPaddingBottomLarge,\n )};\n `;\n },\n\n withLeftPaddingSmall(t: Theme) {\n return css`\n ${withIconSizeMixin(t.menuItemPaddingForIconSmall)}\n `;\n },\n withLeftPaddingMedium(t: Theme) {\n return css`\n ${withIconSizeMixin(t.menuItemPaddingForIconMedium)}\n `;\n },\n withLeftPaddingLarge(t: Theme) {\n return css`\n ${withIconSizeMixin(t.menuItemPaddingForIconLarge)}\n `;\n },\n}));\n\nfinalizeStaticStyles();\n"]}
@@ -20,13 +20,13 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  }
21
21
  return t;
22
22
  };
23
- import React from 'react';
23
+ import React, { useContext } from 'react';
24
24
  import { CommonWrapper } from '../../internal/CommonWrapper/index.js';
25
25
  import { forwardRefAndName } from '../../lib/forwardRefAndName.js';
26
- import { useStyles } from '../../lib/renderEnvironment/index.js';
26
+ import { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';
27
27
  import { useSizeControl } from '../../lib/size/useSizeControl.js';
28
- import { concatClassNames as cx } from '../../lib/theming/Emotion.js';
29
- import { getStyles } from './MenuFooter.styles.js';
28
+ import { ThemeContext } from '../../lib/theming/ThemeContext.js';
29
+ import { getStyles } from './MenuFooter.css.js';
30
30
  export var MenuFooterDataTids = {
31
31
  root: 'MenuFooter__root',
32
32
  };
@@ -36,33 +36,35 @@ export var MenuFooterDataTids = {
36
36
  var MenuFooter = forwardRefAndName('MenuFooter', function MenuFooter(_a, ref) {
37
37
  var _b;
38
38
  var id = _a.id, _c = _a._enableIconPadding, _enableIconPadding = _c === void 0 ? false : _c, children = _a.children, sizeProp = _a.size, rest = __rest(_a, ["id", "_enableIconPadding", "children", "size"]);
39
+ var theme = useContext(ThemeContext);
40
+ var cx = useEmotion().cx;
39
41
  var styles = useStyles(getStyles);
40
42
  var size = useSizeControl(sizeProp);
41
43
  function getRootSizeClassName() {
42
44
  switch (size) {
43
45
  case 'large':
44
- return styles.rootLarge();
46
+ return styles.rootLarge(theme);
45
47
  case 'medium':
46
- return styles.rootMedium();
48
+ return styles.rootMedium(theme);
47
49
  case 'small':
48
50
  default:
49
- return styles.rootSmall();
51
+ return styles.rootSmall(theme);
50
52
  }
51
53
  }
52
54
  function getWithLeftPaddingSizeClassName() {
53
55
  switch (size) {
54
56
  case 'large':
55
- return styles.withLeftPaddingSmall();
57
+ return styles.withLeftPaddingSmall(theme);
56
58
  case 'medium':
57
- return styles.withLeftPaddingMedium();
59
+ return styles.withLeftPaddingMedium(theme);
58
60
  case 'small':
59
61
  default:
60
- return styles.withLeftPaddingSmall();
62
+ return styles.withLeftPaddingSmall(theme);
61
63
  }
62
64
  }
63
65
  return (React.createElement(CommonWrapper, __assign({}, rest),
64
66
  React.createElement("div", { id: id, ref: ref, "data-tid": MenuFooterDataTids.root, className: cx(getRootSizeClassName(), (_b = {},
65
- _b[styles.root()] = true,
67
+ _b[styles.root(theme)] = true,
66
68
  _b[getWithLeftPaddingSizeClassName()] = _enableIconPadding,
67
69
  _b)) }, children)));
68
70
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MenuFooter.js","sourceRoot":"","sources":["MenuFooter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,gBAAgB,IAAI,EAAE,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAanD,MAAM,CAAC,IAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,kBAAkB;CAChB,CAAC;AAEX;;GAEG;AAEH,IAAM,UAAU,GAAG,iBAAiB,CAClC,YAAY,EACZ,SAAS,UAAU,CACjB,EAAsF,EACtF,GAA8B;;IAD5B,IAAA,EAAE,QAAA,EAAE,0BAA0B,EAA1B,kBAAkB,mBAAG,KAAK,KAAA,EAAE,QAAQ,cAAA,EAAQ,QAAQ,UAAA,EAAK,IAAI,cAAnE,gDAAqE,CAAF;IAGnE,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,IAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACtC,SAAS,oBAAoB;QAC3B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,OAAO;gBACV,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC;YAC5B,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;YAC7B,KAAK,OAAO,CAAC;YACb;gBACE,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,SAAS,+BAA+B;QACtC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,OAAO;gBACV,OAAO,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACvC,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACxC,KAAK,OAAO,CAAC;YACb;gBACE,OAAO,MAAM,CAAC,oBAAoB,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,CACL,oBAAC,aAAa,eAAK,IAAI;QACrB,6BACE,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,GAAG,cACE,kBAAkB,CAAC,IAAI,EACjC,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE;gBAClC,GAAC,MAAM,CAAC,IAAI,EAAE,IAAG,IAAI;gBACrB,GAAC,+BAA+B,EAAE,IAAG,kBAAkB;oBACvD,IAED,QAAQ,CACL,CACQ,CACjB,CAAC;AACJ,CAAC,CACF,CAAC;AAED,UAAkB,CAAC,eAAe,GAAG,IAAI,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,MAAM,CAAC,IAAM,YAAY,GAAG,UAAC,KAAsB;IACjD,OAAO,KAAK,CAAC,cAAc,CAAkB,KAAK,CAAC;QACjD,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC;QACrE,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\nimport React from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useStyles } from '../../lib/renderEnvironment/index.js';\nimport { useSizeControl } from '../../lib/size/useSizeControl.js';\nimport { concatClassNames as cx } from '../../lib/theming/Emotion.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { getStyles } from './MenuFooter.styles.js';\n\nexport interface MenuFooterProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Размер надписи. */\n size?: SizeProp;\n\n /** Добавляет отступ слева для выравнивания текста по иконкам MenuItem */\n _enableIconPadding?: boolean;\n\n /** @ignore */\n children: ReactNode;\n}\n\nexport const MenuFooterDataTids = {\n root: 'MenuFooter__root',\n} as const;\n\n/**\n * Футер меню — надпись в нижней части меню.\n */\n\nconst MenuFooter = forwardRefAndName(\n 'MenuFooter',\n function MenuFooter(\n { id, _enableIconPadding = false, children, size: sizeProp, ...rest }: MenuFooterProps,\n ref: React.Ref<HTMLDivElement>,\n ) {\n const styles = useStyles(getStyles);\n const size = useSizeControl(sizeProp);\n function getRootSizeClassName() {\n switch (size) {\n case 'large':\n return styles.rootLarge();\n case 'medium':\n return styles.rootMedium();\n case 'small':\n default:\n return styles.rootSmall();\n }\n }\n function getWithLeftPaddingSizeClassName() {\n switch (size) {\n case 'large':\n return styles.withLeftPaddingSmall();\n case 'medium':\n return styles.withLeftPaddingMedium();\n case 'small':\n default:\n return styles.withLeftPaddingSmall();\n }\n }\n\n return (\n <CommonWrapper {...rest}>\n <div\n id={id}\n ref={ref}\n data-tid={MenuFooterDataTids.root}\n className={cx(getRootSizeClassName(), {\n [styles.root()]: true,\n [getWithLeftPaddingSizeClassName()]: _enableIconPadding,\n })}\n >\n {children}\n </div>\n </CommonWrapper>\n );\n },\n);\n\n(MenuFooter as any).__MENU_FOOTER__ = true;\n\nexport { MenuFooter };\n\nexport const isMenuFooter = (child: React.ReactNode): child is React.ReactElement<MenuFooterProps> => {\n return React.isValidElement<MenuFooterProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__MENU_FOOTER__')\n : false;\n};\n"]}
1
+ {"version":3,"file":"MenuFooter.js","sourceRoot":"","sources":["MenuFooter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAahD,MAAM,CAAC,IAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,kBAAkB;CAChB,CAAC;AAEX;;GAEG;AAEH,IAAM,UAAU,GAAG,iBAAiB,CAClC,YAAY,EACZ,SAAS,UAAU,CACjB,EAAsF,EACtF,GAA8B;;IAD5B,IAAA,EAAE,QAAA,EAAE,0BAA0B,EAA1B,kBAAkB,mBAAG,KAAK,KAAA,EAAE,QAAQ,cAAA,EAAQ,QAAQ,UAAA,EAAK,IAAI,cAAnE,gDAAqE,CAAF;IAGnE,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,IAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACtC,SAAS,oBAAoB;QAC3B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,OAAO;gBACV,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjC,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,OAAO,CAAC;YACb;gBACE,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,SAAS,+BAA+B;QACtC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,OAAO;gBACV,OAAO,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC5C,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC7C,KAAK,OAAO,CAAC;YACb;gBACE,OAAO,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,CACL,oBAAC,aAAa,eAAK,IAAI;QACrB,6BACE,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,GAAG,cACE,kBAAkB,CAAC,IAAI,EACjC,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE;gBAClC,GAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAG,IAAI;gBAC1B,GAAC,+BAA+B,EAAE,IAAG,kBAAkB;oBACvD,IAED,QAAQ,CACL,CACQ,CACjB,CAAC;AACJ,CAAC,CACF,CAAC;AAED,UAAkB,CAAC,eAAe,GAAG,IAAI,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,MAAM,CAAC,IAAM,YAAY,GAAG,UAAC,KAAsB;IACjD,OAAO,KAAK,CAAC,cAAc,CAAkB,KAAK,CAAC;QACjD,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC;QACrE,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\nimport React, { useContext } from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { useSizeControl } from '../../lib/size/useSizeControl.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { getStyles } from './MenuFooter.css.js';\n\nexport interface MenuFooterProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Размер надписи. */\n size?: SizeProp;\n\n /** Добавляет отступ слева для выравнивания текста по иконкам MenuItem */\n _enableIconPadding?: boolean;\n\n /** @ignore */\n children: ReactNode;\n}\n\nexport const MenuFooterDataTids = {\n root: 'MenuFooter__root',\n} as const;\n\n/**\n * Футер меню — надпись в нижней части меню.\n */\n\nconst MenuFooter = forwardRefAndName(\n 'MenuFooter',\n function MenuFooter(\n { id, _enableIconPadding = false, children, size: sizeProp, ...rest }: MenuFooterProps,\n ref: React.Ref<HTMLDivElement>,\n ) {\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n const size = useSizeControl(sizeProp);\n function getRootSizeClassName() {\n switch (size) {\n case 'large':\n return styles.rootLarge(theme);\n case 'medium':\n return styles.rootMedium(theme);\n case 'small':\n default:\n return styles.rootSmall(theme);\n }\n }\n function getWithLeftPaddingSizeClassName() {\n switch (size) {\n case 'large':\n return styles.withLeftPaddingSmall(theme);\n case 'medium':\n return styles.withLeftPaddingMedium(theme);\n case 'small':\n default:\n return styles.withLeftPaddingSmall(theme);\n }\n }\n\n return (\n <CommonWrapper {...rest}>\n <div\n id={id}\n ref={ref}\n data-tid={MenuFooterDataTids.root}\n className={cx(getRootSizeClassName(), {\n [styles.root(theme)]: true,\n [getWithLeftPaddingSizeClassName()]: _enableIconPadding,\n })}\n >\n {children}\n </div>\n </CommonWrapper>\n );\n },\n);\n\n(MenuFooter as any).__MENU_FOOTER__ = true;\n\nexport { MenuFooter };\n\nexport const isMenuFooter = (child: React.ReactNode): child is React.ReactElement<MenuFooterProps> => {\n return React.isValidElement<MenuFooterProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__MENU_FOOTER__')\n : false;\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const menuFooterSizeMixin: (menuFooterPaddingX: string, menuFooterFontSize: string, menuFooterLineHeight: string, menuFooterPaddingTop: string, menuFooterPaddingBottom: string) => string;
2
+ export declare const withIconSizeMixin: (menuItemPaddingForIcon: string) => string;
@@ -0,0 +1,8 @@
1
+ export var menuFooterSizeMixin = function (menuFooterPaddingX, menuFooterFontSize, menuFooterLineHeight, menuFooterPaddingTop, menuFooterPaddingBottom) {
2
+ var paddingRight = menuFooterPaddingX;
3
+ return "\n font-size: ".concat(menuFooterFontSize, ";\n line-height: ").concat(menuFooterLineHeight, ";\n padding: ").concat(menuFooterPaddingTop, " ").concat(paddingRight, " ").concat(menuFooterPaddingBottom, " ").concat(menuFooterPaddingX, ";\n ");
4
+ };
5
+ export var withIconSizeMixin = function (menuItemPaddingForIcon) {
6
+ return "\n padding-left: ".concat(menuItemPaddingForIcon, ";\n ");
7
+ };
8
+ //# sourceMappingURL=MenuFooter.mixins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuFooter.mixins.js","sourceRoot":"","sources":["MenuFooter.mixins.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,mBAAmB,GAAG,UACjC,kBAA0B,EAC1B,kBAA0B,EAC1B,oBAA4B,EAC5B,oBAA4B,EAC5B,uBAA+B;IAE/B,IAAM,YAAY,GAAG,kBAAkB,CAAC;IAExC,OAAO,2BACQ,kBAAkB,iCAChB,oBAAoB,6BACxB,oBAAoB,cAAI,YAAY,cAAI,uBAAuB,cAAI,kBAAkB,UACjG,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,sBAA8B;IAC9D,OAAO,8BACW,sBAAsB,UACvC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["export const menuFooterSizeMixin = (\n menuFooterPaddingX: string,\n menuFooterFontSize: string,\n menuFooterLineHeight: string,\n menuFooterPaddingTop: string,\n menuFooterPaddingBottom: string,\n): string => {\n const paddingRight = menuFooterPaddingX;\n\n return `\n font-size: ${menuFooterFontSize};\n line-height: ${menuFooterLineHeight};\n padding: ${menuFooterPaddingTop} ${paddingRight} ${menuFooterPaddingBottom} ${menuFooterPaddingX};\n `;\n};\n\nexport const withIconSizeMixin = (menuItemPaddingForIcon: string): string => {\n return `\n padding-left: ${menuItemPaddingForIcon};\n `;\n};\n"]}
@@ -0,0 +1,10 @@
1
+ import type { Theme } from '../../lib/theming/Theme.js';
2
+ export declare const getStyles: import("../../lib/theming/StaticStyles.js").StylesGetter<{
3
+ root(t: Theme): string;
4
+ rootSmall(t: Theme): string;
5
+ rootMedium(t: Theme): string;
6
+ rootLarge(t: Theme): string;
7
+ withLeftPaddingSmall(t: Theme): string;
8
+ withLeftPaddingMedium(t: Theme): string;
9
+ withLeftPaddingLarge(t: Theme): string;
10
+ }>;
@@ -0,0 +1,3 @@
1
+
2
+ import { bindStaticStyles as _b9cd9 } from '../../lib/theming/bindStaticStyles.js';
3
+ export var getStyles = _b9cd9({root:'react-ui-MenuHeader__root',rootSmall:'react-ui-MenuHeader__rootSmall',rootMedium:'react-ui-MenuHeader__rootMedium',rootLarge:'react-ui-MenuHeader__rootLarge',withLeftPaddingSmall:'react-ui-MenuHeader__withLeftPaddingSmall',withLeftPaddingMedium:'react-ui-MenuHeader__withLeftPaddingMedium',withLeftPaddingLarge:'react-ui-MenuHeader__withLeftPaddingLarge'});
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuHeader.css.js","sourceRoot":"","sources":["MenuHeader.css.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE3F,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,IAAI,YAAC,CAAQ;YACX,OAAO,GAAG,uHAAA,iBACC,EAAiB,iCAE3B,KAFU,CAAC,CAAC,eAAe,EAE1B;QACJ,CAAC;QAED,SAAS,YAAC,CAAQ;YAChB,OAAO,GAAG,wFAAA,UACN,EAMD,SACF,KAPG,mBAAmB,CACnB,CAAC,CAAC,uBAAuB,EACzB,CAAC,CAAC,uBAAuB,EACzB,CAAC,CAAC,yBAAyB,EAC3B,CAAC,CAAC,yBAAyB,EAC3B,CAAC,CAAC,4BAA4B,CAC/B,EACD;QACJ,CAAC;QACD,UAAU,YAAC,CAAQ;YACjB,OAAO,GAAG,wFAAA,UACN,EAMD,SACF,KAPG,mBAAmB,CACnB,CAAC,CAAC,wBAAwB,EAC1B,CAAC,CAAC,wBAAwB,EAC1B,CAAC,CAAC,0BAA0B,EAC5B,CAAC,CAAC,0BAA0B,EAC5B,CAAC,CAAC,6BAA6B,CAChC,EACD;QACJ,CAAC;QACD,SAAS,YAAC,CAAQ;YAChB,OAAO,GAAG,wFAAA,UACN,EAMD,SACF,KAPG,mBAAmB,CACnB,CAAC,CAAC,uBAAuB,EACzB,CAAC,CAAC,uBAAuB,EACzB,CAAC,CAAC,yBAAyB,EAC3B,CAAC,CAAC,yBAAyB,EAC3B,CAAC,CAAC,4BAA4B,CAC/B,EACD;QACJ,CAAC;QAED,oBAAoB,YAAC,CAAQ;YAC3B,OAAO,GAAG,uFAAA,UACN,EAAgD,QACnD,KADG,iBAAiB,CAAC,CAAC,CAAC,2BAA2B,CAAC,EAClD;QACJ,CAAC;QACD,qBAAqB,YAAC,CAAQ;YAC5B,OAAO,GAAG,uFAAA,UACN,EAAiD,QACpD,KADG,iBAAiB,CAAC,CAAC,CAAC,4BAA4B,CAAC,EACnD;QACJ,CAAC;QACD,oBAAoB,YAAC,CAAQ;YAC3B,OAAO,GAAG,uFAAA,UACN,EAAgD,QACnD,KADG,iBAAiB,CAAC,CAAC,CAAC,2BAA2B,CAAC,EAClD;QACJ,CAAC;KACF,CAAC;AAzD8D,CAyD9D,CAAC,CAAC;AAEJ,oBAAoB,EAAE,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { finalizeStaticStyles, memoizeGetStyles } from '../../lib/theming/StaticStyles.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { menuHeaderSizeMixin, withIconSizeMixin } from './MenuHeader.mixins.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n root(t: Theme) {\n return css`\n color: ${t.menuHeaderColor};\n cursor: default;\n `;\n },\n\n rootSmall(t: Theme) {\n return css`\n ${menuHeaderSizeMixin(\n t.menuHeaderPaddingXSmall,\n t.menuHeaderFontSizeSmall,\n t.menuHeaderLineHeightSmall,\n t.menuHeaderPaddingTopSmall,\n t.menuHeaderPaddingBottomSmall,\n )};\n `;\n },\n rootMedium(t: Theme) {\n return css`\n ${menuHeaderSizeMixin(\n t.menuHeaderPaddingXMedium,\n t.menuHeaderFontSizeMedium,\n t.menuHeaderLineHeightMedium,\n t.menuHeaderPaddingTopMedium,\n t.menuHeaderPaddingBottomMedium,\n )};\n `;\n },\n rootLarge(t: Theme) {\n return css`\n ${menuHeaderSizeMixin(\n t.menuHeaderPaddingXLarge,\n t.menuHeaderFontSizeLarge,\n t.menuHeaderLineHeightLarge,\n t.menuHeaderPaddingTopLarge,\n t.menuHeaderPaddingBottomLarge,\n )};\n `;\n },\n\n withLeftPaddingSmall(t: Theme) {\n return css`\n ${withIconSizeMixin(t.menuItemPaddingForIconSmall)}\n `;\n },\n withLeftPaddingMedium(t: Theme) {\n return css`\n ${withIconSizeMixin(t.menuItemPaddingForIconMedium)}\n `;\n },\n withLeftPaddingLarge(t: Theme) {\n return css`\n ${withIconSizeMixin(t.menuItemPaddingForIconLarge)}\n `;\n },\n}));\n\nfinalizeStaticStyles();\n"]}