@skbkontur/react-ui 6.4.2-static-css.0 → 6.4.3-5e1c3.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 (691) hide show
  1. package/README.md +0 -97
  2. package/components/Autocomplete/Autocomplete.d.ts +1 -0
  3. package/components/Autocomplete/Autocomplete.js +4 -13
  4. package/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/components/Autocomplete/Autocomplete.styles.d.ts +4 -4
  6. package/components/Autocomplete/Autocomplete.styles.js +16 -5
  7. package/components/Autocomplete/Autocomplete.styles.js.map +1 -1
  8. package/components/Button/Button.d.ts +1 -15
  9. package/components/Button/Button.js +76 -162
  10. package/components/Button/Button.js.map +1 -1
  11. package/components/Button/Button.mixins.d.ts +4 -0
  12. package/components/Button/Button.mixins.js +21 -0
  13. package/components/Button/Button.mixins.js.map +1 -0
  14. package/components/Button/Button.styles.d.ts +91 -107
  15. package/components/Button/Button.styles.js +255 -108
  16. package/components/Button/Button.styles.js.map +1 -1
  17. package/components/Button/ButtonArrow.d.ts +3 -2
  18. package/components/Button/ButtonArrow.js +10 -8
  19. package/components/Button/ButtonArrow.js.map +1 -1
  20. package/components/Button/ButtonIcon.js +17 -7
  21. package/components/Button/ButtonIcon.js.map +1 -1
  22. package/components/Button/ButtonIcon.styles.d.ts +15 -15
  23. package/components/Button/ButtonIcon.styles.js +51 -16
  24. package/components/Button/ButtonIcon.styles.js.map +1 -1
  25. package/components/Calendar/Calendar.d.ts +1 -0
  26. package/components/Calendar/Calendar.js +3 -3
  27. package/components/Calendar/Calendar.js.map +1 -1
  28. package/components/Calendar/Calendar.styles.d.ts +5 -5
  29. package/components/Calendar/Calendar.styles.js +20 -6
  30. package/components/Calendar/Calendar.styles.js.map +1 -1
  31. package/components/Calendar/CalendarDay.js +7 -11
  32. package/components/Calendar/CalendarDay.js.map +1 -1
  33. package/components/Calendar/DayCellView.js +3 -1
  34. package/components/Calendar/DayCellView.js.map +1 -1
  35. package/components/Calendar/DayCellView.styles.d.ts +8 -10
  36. package/components/Calendar/DayCellView.styles.js +29 -11
  37. package/components/Calendar/DayCellView.styles.js.map +1 -1
  38. package/components/Calendar/Month.js +10 -6
  39. package/components/Calendar/Month.js.map +1 -1
  40. package/components/Calendar/MonthView.js +7 -7
  41. package/components/Calendar/MonthView.js.map +1 -1
  42. package/components/Calendar/MonthView.styles.d.ts +12 -12
  43. package/components/Calendar/MonthView.styles.js +45 -13
  44. package/components/Calendar/MonthView.styles.js.map +1 -1
  45. package/components/Center/Center.d.ts +1 -0
  46. package/components/Center/Center.js +1 -1
  47. package/components/Center/Center.js.map +1 -1
  48. package/components/Center/Center.styles.d.ts +6 -7
  49. package/components/Center/Center.styles.js +25 -8
  50. package/components/Center/Center.styles.js.map +1 -1
  51. package/components/Checkbox/Checkbox.d.ts +1 -8
  52. package/components/Checkbox/Checkbox.js +26 -57
  53. package/components/Checkbox/Checkbox.js.map +1 -1
  54. package/components/Checkbox/Checkbox.mixins.d.ts +4 -0
  55. package/components/Checkbox/Checkbox.mixins.js +18 -0
  56. package/components/Checkbox/Checkbox.mixins.js.map +1 -0
  57. package/components/Checkbox/Checkbox.styles.d.ts +30 -33
  58. package/components/Checkbox/Checkbox.styles.js +95 -35
  59. package/components/Checkbox/Checkbox.styles.js.map +1 -1
  60. package/components/DateInput/DateFragmentsView.d.ts +2 -0
  61. package/components/DateInput/DateFragmentsView.js +7 -10
  62. package/components/DateInput/DateFragmentsView.js.map +1 -1
  63. package/components/DateInput/DateFragmentsView.styles.d.ts +6 -8
  64. package/components/DateInput/DateFragmentsView.styles.js +26 -9
  65. package/components/DateInput/DateFragmentsView.styles.js.map +1 -1
  66. package/components/DateInput/DateInput.d.ts +2 -0
  67. package/components/DateInput/DateInput.js +8 -6
  68. package/components/DateInput/DateInput.js.map +1 -1
  69. package/components/DateInput/DateInput.styles.d.ts +11 -10
  70. package/components/DateInput/DateInput.styles.js +28 -11
  71. package/components/DateInput/DateInput.styles.js.map +1 -1
  72. package/components/DatePicker/DatePicker.d.ts +1 -0
  73. package/components/DatePicker/DatePicker.js +2 -2
  74. package/components/DatePicker/DatePicker.js.map +1 -1
  75. package/components/DatePicker/DatePicker.styles.d.ts +4 -4
  76. package/components/DatePicker/DatePicker.styles.js +16 -5
  77. package/components/DatePicker/DatePicker.styles.js.map +1 -1
  78. package/components/DatePicker/MobilePicker.styles.d.ts +2 -3
  79. package/components/DatePicker/MobilePicker.styles.js +13 -4
  80. package/components/DatePicker/MobilePicker.styles.js.map +1 -1
  81. package/components/DatePicker/getMobilePickerTheme.js +9 -27
  82. package/components/DatePicker/getMobilePickerTheme.js.map +1 -1
  83. package/components/DateRangePicker/DateRangePicker.d.ts +4 -4
  84. package/components/DateRangePicker/DateRangePicker.js +28 -26
  85. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  86. package/components/DateRangePicker/DateRangePicker.styles.d.ts +14 -20
  87. package/components/DateRangePicker/DateRangePicker.styles.js +49 -25
  88. package/components/DateRangePicker/DateRangePicker.styles.js.map +1 -1
  89. package/components/DateRangePicker/DateRangePickerTheme.js +10 -30
  90. package/components/DateRangePicker/DateRangePickerTheme.js.map +1 -1
  91. package/components/Dropdown/getDropdownTheme.d.ts +0 -11
  92. package/components/Dropdown/getDropdownTheme.js +4 -23
  93. package/components/Dropdown/getDropdownTheme.js.map +1 -1
  94. package/components/DropdownMenu/getDropdownMenuTheme.js +2 -9
  95. package/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
  96. package/components/FileUploader/FileUploader.d.ts +1 -2
  97. package/components/FileUploader/FileUploader.js +45 -50
  98. package/components/FileUploader/FileUploader.js.map +1 -1
  99. package/components/FileUploader/FileUploader.mixins.d.ts +1 -0
  100. package/components/FileUploader/FileUploader.mixins.js +4 -0
  101. package/components/FileUploader/FileUploader.mixins.js.map +1 -0
  102. package/components/FileUploader/FileUploader.styles.d.ts +68 -69
  103. package/components/FileUploader/FileUploader.styles.js +214 -71
  104. package/components/FileUploader/FileUploader.styles.js.map +1 -1
  105. package/components/FileUploader/FileUploaderFile.js +30 -28
  106. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  107. package/components/FileUploader/FileUploaderFile.styles.d.ts +57 -57
  108. package/components/FileUploader/FileUploaderFile.styles.js +180 -58
  109. package/components/FileUploader/FileUploaderFile.styles.js.map +1 -1
  110. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js +19 -17
  111. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  112. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.d.ts +31 -31
  113. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js +99 -32
  114. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -1
  115. package/components/FileUploader/FileUploaderFileStatusIcon.js +4 -2
  116. package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -1
  117. package/components/FileUploader/FileUploaderFileTypeIcon.js +52 -47
  118. package/components/FileUploader/FileUploaderFileTypeIcon.js.map +1 -1
  119. package/components/FxInput/FxInput.d.ts +1 -1
  120. package/components/FxInput/FxInput.js +3 -7
  121. package/components/FxInput/FxInput.js.map +1 -1
  122. package/components/FxInput/FxInputRestoreBtn.js +15 -23
  123. package/components/FxInput/FxInputRestoreBtn.js.map +1 -1
  124. package/components/GlobalLoader/GlobalLoaderView.js +14 -30
  125. package/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  126. package/components/GlobalLoader/GlobalLoaderView.styles.d.ts +16 -22
  127. package/components/GlobalLoader/GlobalLoaderView.styles.js +67 -22
  128. package/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -1
  129. package/components/Group/Group.d.ts +1 -0
  130. package/components/Group/Group.js +3 -2
  131. package/components/Group/Group.js.map +1 -1
  132. package/components/Group/Group.styles.d.ts +7 -7
  133. package/components/Group/Group.styles.js +28 -8
  134. package/components/Group/Group.styles.js.map +1 -1
  135. package/components/Hint/Hint.d.ts +1 -0
  136. package/components/Hint/Hint.js +3 -3
  137. package/components/Hint/Hint.js.map +1 -1
  138. package/components/Hint/Hint.styles.d.ts +4 -4
  139. package/components/Hint/Hint.styles.js +16 -5
  140. package/components/Hint/Hint.styles.js.map +1 -1
  141. package/components/Input/Input.d.ts +1 -0
  142. package/components/Input/Input.js +13 -13
  143. package/components/Input/Input.js.map +1 -1
  144. package/components/Input/Input.styles.d.ts +20 -20
  145. package/components/Input/Input.styles.js +66 -21
  146. package/components/Input/Input.styles.js.map +1 -1
  147. package/components/Input/InputLayout/InputLayout.styles.d.ts +17 -26
  148. package/components/Input/InputLayout/InputLayout.styles.js +57 -27
  149. package/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
  150. package/components/Input/InputLayout/InputLayoutAsideCounter.js +8 -8
  151. package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -1
  152. package/components/Input/InputLayout/InputLayoutAsideIcon.js +25 -19
  153. package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  154. package/components/Input/InputLayout/InputLayoutAsideText.js +4 -4
  155. package/components/Input/InputLayout/InputLayoutAsideText.js.map +1 -1
  156. package/components/Kebab/Kebab.d.ts +1 -0
  157. package/components/Kebab/Kebab.js +2 -2
  158. package/components/Kebab/Kebab.js.map +1 -1
  159. package/components/Kebab/Kebab.styles.d.ts +10 -10
  160. package/components/Kebab/Kebab.styles.js +34 -11
  161. package/components/Kebab/Kebab.styles.js.map +1 -1
  162. package/components/Link/Link.d.ts +1 -0
  163. package/components/Link/Link.js +18 -23
  164. package/components/Link/Link.js.map +1 -1
  165. package/components/Link/Link.mixins.d.ts +2 -0
  166. package/components/Link/Link.mixins.js +7 -0
  167. package/components/Link/Link.mixins.js.map +1 -0
  168. package/components/Link/Link.styles.d.ts +23 -23
  169. package/components/Link/Link.styles.js +81 -25
  170. package/components/Link/Link.styles.js.map +1 -1
  171. package/components/Link/LinkIcon.js +6 -4
  172. package/components/Link/LinkIcon.js.map +1 -1
  173. package/components/Loader/Loader.d.ts +2 -0
  174. package/components/Loader/Loader.js +3 -2
  175. package/components/Loader/Loader.js.map +1 -1
  176. package/components/Loader/Loader.styles.d.ts +7 -7
  177. package/components/Loader/Loader.styles.js +25 -8
  178. package/components/Loader/Loader.styles.js.map +1 -1
  179. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +21 -15
  180. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  181. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.d.ts +2 -3
  182. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js +13 -5
  183. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js.map +1 -1
  184. package/components/MaskedInput/MaskedInput.styles.d.ts +3 -3
  185. package/components/MaskedInput/MaskedInput.styles.js +14 -5
  186. package/components/MaskedInput/MaskedInput.styles.js.map +1 -1
  187. package/components/MaskedInput/MaskedInputLegacy.js +6 -4
  188. package/components/MaskedInput/MaskedInputLegacy.js.map +1 -1
  189. package/components/MaskedInputV2/MaskedInputV2.js +6 -4
  190. package/components/MaskedInputV2/MaskedInputV2.js.map +1 -1
  191. package/components/MaskedInputV2/MaskedInputV2.styles.d.ts +3 -3
  192. package/components/MaskedInputV2/MaskedInputV2.styles.js +14 -5
  193. package/components/MaskedInputV2/MaskedInputV2.styles.js.map +1 -1
  194. package/components/MaskedInputV2/internal/MaskOverlay.js +8 -8
  195. package/components/MaskedInputV2/internal/MaskOverlay.js.map +1 -1
  196. package/components/MaskedInputV2/internal/MaskedCore.js +5 -7
  197. package/components/MaskedInputV2/internal/MaskedCore.js.map +1 -1
  198. package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +7 -7
  199. package/components/MaskedInputV2/internal/MaskedInternal.styles.js +25 -9
  200. package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +1 -1
  201. package/components/MenuFooter/MenuFooter.js +12 -10
  202. package/components/MenuFooter/MenuFooter.js.map +1 -1
  203. package/components/MenuFooter/MenuFooter.mixins.d.ts +2 -0
  204. package/components/MenuFooter/MenuFooter.mixins.js +8 -0
  205. package/components/MenuFooter/MenuFooter.mixins.js.map +1 -0
  206. package/components/MenuFooter/MenuFooter.styles.d.ts +9 -9
  207. package/components/MenuFooter/MenuFooter.styles.js +32 -10
  208. package/components/MenuFooter/MenuFooter.styles.js.map +1 -1
  209. package/components/MenuHeader/MenuHeader.js +11 -9
  210. package/components/MenuHeader/MenuHeader.js.map +1 -1
  211. package/components/MenuHeader/MenuHeader.mixins.d.ts +2 -0
  212. package/components/MenuHeader/MenuHeader.mixins.js +8 -0
  213. package/components/MenuHeader/MenuHeader.mixins.js.map +1 -0
  214. package/components/MenuHeader/MenuHeader.styles.d.ts +9 -9
  215. package/components/MenuHeader/MenuHeader.styles.js +32 -10
  216. package/components/MenuHeader/MenuHeader.styles.js.map +1 -1
  217. package/components/MenuItem/MenuItem.d.ts +1 -0
  218. package/components/MenuItem/MenuItem.js +30 -24
  219. package/components/MenuItem/MenuItem.js.map +1 -1
  220. package/components/MenuItem/MenuItem.mixins.d.ts +0 -6
  221. package/components/MenuItem/MenuItem.mixins.js +1 -7
  222. package/components/MenuItem/MenuItem.mixins.js.map +1 -1
  223. package/components/MenuItem/MenuItem.styles.d.ts +26 -26
  224. package/components/MenuItem/MenuItem.styles.js +85 -28
  225. package/components/MenuItem/MenuItem.styles.js.map +1 -1
  226. package/components/MenuSeparator/MenuSeparator.js +6 -4
  227. package/components/MenuSeparator/MenuSeparator.js.map +1 -1
  228. package/components/MenuSeparator/MenuSeparator.styles.d.ts +4 -4
  229. package/components/MenuSeparator/MenuSeparator.styles.js +16 -5
  230. package/components/MenuSeparator/MenuSeparator.styles.js.map +1 -1
  231. package/components/MiniModal/MiniModal.styles.d.ts +10 -10
  232. package/components/MiniModal/MiniModal.styles.js +35 -11
  233. package/components/MiniModal/MiniModal.styles.js.map +1 -1
  234. package/components/MiniModal/MiniModalBody.js +3 -3
  235. package/components/MiniModal/MiniModalBody.js.map +1 -1
  236. package/components/MiniModal/MiniModalFooter.js +6 -4
  237. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  238. package/components/MiniModal/MiniModalHeader.js +6 -4
  239. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  240. package/components/MiniModal/MiniModalIndent.js +4 -2
  241. package/components/MiniModal/MiniModalIndent.js.map +1 -1
  242. package/components/MiniModal/getMiniModalTheme.js +13 -39
  243. package/components/MiniModal/getMiniModalTheme.js.map +1 -1
  244. package/components/Modal/Modal.d.ts +1 -0
  245. package/components/Modal/Modal.js +8 -8
  246. package/components/Modal/Modal.js.map +1 -1
  247. package/components/Modal/Modal.styles.d.ts +50 -50
  248. package/components/Modal/Modal.styles.js +161 -52
  249. package/components/Modal/Modal.styles.js.map +1 -1
  250. package/components/Modal/ModalBody.d.ts +1 -0
  251. package/components/Modal/ModalBody.js +7 -7
  252. package/components/Modal/ModalBody.js.map +1 -1
  253. package/components/Modal/ModalClose.js +9 -7
  254. package/components/Modal/ModalClose.js.map +1 -1
  255. package/components/Modal/ModalFooter.js +3 -3
  256. package/components/Modal/ModalFooter.js.map +1 -1
  257. package/components/Modal/ModalHeader.js +3 -3
  258. package/components/Modal/ModalHeader.js.map +1 -1
  259. package/components/Modal/ModalSeparator.js +6 -4
  260. package/components/Modal/ModalSeparator.js.map +1 -1
  261. package/components/Paging/Paging.d.ts +2 -0
  262. package/components/Paging/Paging.js +37 -32
  263. package/components/Paging/Paging.js.map +1 -1
  264. package/components/Paging/Paging.styles.d.ts +31 -31
  265. package/components/Paging/Paging.styles.js +97 -32
  266. package/components/Paging/Paging.styles.js.map +1 -1
  267. package/components/PasswordInput/PasswordInput.d.ts +2 -0
  268. package/components/PasswordInput/PasswordInput.js +11 -6
  269. package/components/PasswordInput/PasswordInput.js.map +1 -1
  270. package/components/PasswordInput/PasswordInput.styles.d.ts +10 -10
  271. package/components/PasswordInput/PasswordInput.styles.js +34 -11
  272. package/components/PasswordInput/PasswordInput.styles.js.map +1 -1
  273. package/components/Radio/Radio.d.ts +1 -8
  274. package/components/Radio/Radio.js +28 -59
  275. package/components/Radio/Radio.js.map +1 -1
  276. package/components/Radio/Radio.mixins.d.ts +7 -0
  277. package/components/Radio/Radio.mixins.js +30 -0
  278. package/components/Radio/Radio.mixins.js.map +1 -0
  279. package/components/Radio/Radio.styles.d.ts +30 -33
  280. package/components/Radio/Radio.styles.js +95 -35
  281. package/components/Radio/Radio.styles.js.map +1 -1
  282. package/components/RadioGroup/RadioGroup.d.ts +1 -0
  283. package/components/RadioGroup/RadioGroup.js +2 -1
  284. package/components/RadioGroup/RadioGroup.js.map +1 -1
  285. package/components/RadioGroup/RadioGroup.styles.d.ts +5 -5
  286. package/components/RadioGroup/RadioGroup.styles.js +22 -6
  287. package/components/RadioGroup/RadioGroup.styles.js.map +1 -1
  288. package/components/ScrollContainer/ScrollBar.d.ts +3 -1
  289. package/components/ScrollContainer/ScrollBar.js +14 -9
  290. package/components/ScrollContainer/ScrollBar.js.map +1 -1
  291. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  292. package/components/ScrollContainer/ScrollContainer.js +1 -1
  293. package/components/ScrollContainer/ScrollContainer.js.map +1 -1
  294. package/components/ScrollContainer/ScrollContainer.styles.d.ts +13 -13
  295. package/components/ScrollContainer/ScrollContainer.styles.js +43 -15
  296. package/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  297. package/components/Select/Select.d.ts +1 -0
  298. package/components/Select/Select.js +12 -12
  299. package/components/Select/Select.js.map +1 -1
  300. package/components/Select/Select.styles.d.ts +17 -17
  301. package/components/Select/Select.styles.js +55 -18
  302. package/components/Select/Select.styles.js.map +1 -1
  303. package/components/Select/selectTheme.js +7 -31
  304. package/components/Select/selectTheme.js.map +1 -1
  305. package/components/SidePage/SidePage.d.ts +6 -0
  306. package/components/SidePage/SidePage.js +27 -9
  307. package/components/SidePage/SidePage.js.map +1 -1
  308. package/components/SidePage/SidePage.styles.d.ts +49 -49
  309. package/components/SidePage/SidePage.styles.js +156 -50
  310. package/components/SidePage/SidePage.styles.js.map +1 -1
  311. package/components/SidePage/SidePageBody.d.ts +1 -0
  312. package/components/SidePage/SidePageBody.js +8 -7
  313. package/components/SidePage/SidePageBody.js.map +1 -1
  314. package/components/SidePage/SidePageCloseButton.js +8 -6
  315. package/components/SidePage/SidePageCloseButton.js.map +1 -1
  316. package/components/SidePage/SidePageContainer.d.ts +2 -0
  317. package/components/SidePage/SidePageContainer.js +13 -11
  318. package/components/SidePage/SidePageContainer.js.map +1 -1
  319. package/components/SidePage/SidePageContext.d.ts +2 -0
  320. package/components/SidePage/SidePageContext.js.map +1 -1
  321. package/components/SidePage/SidePageFooter.d.ts +2 -0
  322. package/components/SidePage/SidePageFooter.js +17 -12
  323. package/components/SidePage/SidePageFooter.js.map +1 -1
  324. package/components/SidePage/SidePageHeader.d.ts +2 -0
  325. package/components/SidePage/SidePageHeader.js +20 -11
  326. package/components/SidePage/SidePageHeader.js.map +1 -1
  327. package/components/Spinner/Spinner.d.ts +2 -0
  328. package/components/Spinner/Spinner.js +10 -7
  329. package/components/Spinner/Spinner.js.map +1 -1
  330. package/components/Spinner/Spinner.styles.d.ts +12 -12
  331. package/components/Spinner/Spinner.styles.js +41 -13
  332. package/components/Spinner/Spinner.styles.js.map +1 -1
  333. package/components/Sticky/Sticky.d.ts +1 -0
  334. package/components/Sticky/Sticky.js +1 -1
  335. package/components/Sticky/Sticky.js.map +1 -1
  336. package/components/Sticky/Sticky.styles.d.ts +6 -7
  337. package/components/Sticky/Sticky.styles.js +25 -8
  338. package/components/Sticky/Sticky.styles.js.map +1 -1
  339. package/components/Switcher/Switcher.d.ts +1 -0
  340. package/components/Switcher/Switcher.js +6 -6
  341. package/components/Switcher/Switcher.js.map +1 -1
  342. package/components/Switcher/Switcher.styles.d.ts +11 -11
  343. package/components/Switcher/Switcher.styles.js +37 -12
  344. package/components/Switcher/Switcher.styles.js.map +1 -1
  345. package/components/Switcher/switcherTheme.js +4 -12
  346. package/components/Switcher/switcherTheme.js.map +1 -1
  347. package/components/Tabs/Indicator.d.ts +1 -0
  348. package/components/Tabs/Indicator.js +2 -2
  349. package/components/Tabs/Indicator.js.map +1 -1
  350. package/components/Tabs/Indicator.styles.d.ts +7 -7
  351. package/components/Tabs/Indicator.styles.js +25 -8
  352. package/components/Tabs/Indicator.styles.js.map +1 -1
  353. package/components/Tabs/Tab.d.ts +18 -4
  354. package/components/Tabs/Tab.js +24 -19
  355. package/components/Tabs/Tab.js.map +1 -1
  356. package/components/Tabs/Tab.styles.d.ts +27 -27
  357. package/components/Tabs/Tab.styles.js +99 -30
  358. package/components/Tabs/Tab.styles.js.map +1 -1
  359. package/components/Tabs/Tabs.d.ts +2 -0
  360. package/components/Tabs/Tabs.js +29 -24
  361. package/components/Tabs/Tabs.js.map +1 -1
  362. package/components/Tabs/Tabs.styles.d.ts +6 -6
  363. package/components/Tabs/Tabs.styles.js +25 -8
  364. package/components/Tabs/Tabs.styles.js.map +1 -1
  365. package/components/Tabs/helpers.d.ts +6 -0
  366. package/components/Tabs/helpers.js +25 -0
  367. package/components/Tabs/helpers.js.map +1 -0
  368. package/components/Textarea/Textarea.d.ts +2 -0
  369. package/components/Textarea/Textarea.js +24 -17
  370. package/components/Textarea/Textarea.js.map +1 -1
  371. package/components/Textarea/Textarea.mixins.d.ts +2 -0
  372. package/components/Textarea/Textarea.mixins.js +7 -0
  373. package/components/Textarea/Textarea.mixins.js.map +1 -0
  374. package/components/Textarea/Textarea.styles.d.ts +22 -26
  375. package/components/Textarea/Textarea.styles.js +71 -27
  376. package/components/Textarea/Textarea.styles.js.map +1 -1
  377. package/components/Textarea/TextareaCounter.js +14 -22
  378. package/components/Textarea/TextareaCounter.js.map +1 -1
  379. package/components/TimePicker/TimePicker.styles.d.ts +11 -11
  380. package/components/TimePicker/TimePicker.styles.js +37 -12
  381. package/components/TimePicker/TimePicker.styles.js.map +1 -1
  382. package/components/TimePicker/TimePickerItems.js +6 -6
  383. package/components/TimePicker/TimePickerItems.js.map +1 -1
  384. package/components/TimePicker/TimePickerPopup.js +1 -1
  385. package/components/TimePicker/TimePickerPopup.js.map +1 -1
  386. package/components/Toast/Toast.d.ts +1 -0
  387. package/components/Toast/Toast.js +1 -1
  388. package/components/Toast/Toast.js.map +1 -1
  389. package/components/Toast/Toast.styles.d.ts +5 -6
  390. package/components/Toast/Toast.styles.js +22 -7
  391. package/components/Toast/Toast.styles.js.map +1 -1
  392. package/components/Toast/ToastView.d.ts +1 -0
  393. package/components/Toast/ToastView.js +17 -9
  394. package/components/Toast/ToastView.js.map +1 -1
  395. package/components/Toast/ToastView.styles.d.ts +17 -19
  396. package/components/Toast/ToastView.styles.js +65 -20
  397. package/components/Toast/ToastView.styles.js.map +1 -1
  398. package/components/Toggle/Toggle.d.ts +1 -1
  399. package/components/Toggle/Toggle.js +39 -55
  400. package/components/Toggle/Toggle.js.map +1 -1
  401. package/components/Toggle/Toggle.mixins.d.ts +8 -0
  402. package/components/Toggle/Toggle.mixins.js +32 -0
  403. package/components/Toggle/Toggle.mixins.js.map +1 -0
  404. package/components/Toggle/Toggle.styles.d.ts +46 -47
  405. package/components/Toggle/Toggle.styles.js +143 -48
  406. package/components/Toggle/Toggle.styles.js.map +1 -1
  407. package/components/Token/Token.d.ts +2 -0
  408. package/components/Token/Token.js +10 -5
  409. package/components/Token/Token.js.map +1 -1
  410. package/components/Token/Token.mixins.d.ts +1 -0
  411. package/components/Token/Token.mixins.js +4 -0
  412. package/components/Token/Token.mixins.js.map +1 -0
  413. package/components/Token/Token.styles.d.ts +19 -20
  414. package/components/Token/Token.styles.js +62 -22
  415. package/components/Token/Token.styles.js.map +1 -1
  416. package/components/Token/TokenView.js +10 -8
  417. package/components/Token/TokenView.js.map +1 -1
  418. package/components/TokenInput/TextWidthHelper.d.ts +1 -0
  419. package/components/TokenInput/TextWidthHelper.js +4 -4
  420. package/components/TokenInput/TextWidthHelper.js.map +1 -1
  421. package/components/TokenInput/TokenInput.d.ts +2 -1
  422. package/components/TokenInput/TokenInput.js +22 -20
  423. package/components/TokenInput/TokenInput.js.map +1 -1
  424. package/components/TokenInput/TokenInput.mixins.d.ts +2 -0
  425. package/components/TokenInput/TokenInput.mixins.js +7 -0
  426. package/components/TokenInput/TokenInput.mixins.js.map +1 -0
  427. package/components/TokenInput/TokenInput.styles.d.ts +20 -21
  428. package/components/TokenInput/TokenInput.styles.js +66 -22
  429. package/components/TokenInput/TokenInput.styles.js.map +1 -1
  430. package/components/Tooltip/Tooltip.d.ts +1 -0
  431. package/components/Tooltip/Tooltip.js +12 -12
  432. package/components/Tooltip/Tooltip.js.map +1 -1
  433. package/components/Tooltip/Tooltip.styles.d.ts +10 -11
  434. package/components/Tooltip/Tooltip.styles.js +34 -12
  435. package/components/Tooltip/Tooltip.styles.js.map +1 -1
  436. package/index.d.ts +0 -4
  437. package/index.js +0 -12
  438. package/index.js.map +1 -1
  439. package/internal/ClearCrossIcon/ClearCrossIcon.js +9 -7
  440. package/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  441. package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +12 -11
  442. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js +35 -12
  443. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -1
  444. package/internal/CloseButtonIcon/CloseButtonIcon.d.ts +11 -21
  445. package/internal/CloseButtonIcon/CloseButtonIcon.js +13 -28
  446. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  447. package/internal/CloseButtonIcon/CloseButtonIcon.styles.d.ts +8 -8
  448. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js +23 -9
  449. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -1
  450. package/internal/CommonWrapper/CommonWrapper.d.ts +1 -5
  451. package/internal/CommonWrapper/CommonWrapper.js +6 -107
  452. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  453. package/internal/CustomComboBox/ComboBoxView.d.ts +2 -1
  454. package/internal/CustomComboBox/ComboBoxView.js +7 -8
  455. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  456. package/internal/CustomComboBox/CustomComboBox.styles.d.ts +3 -5
  457. package/internal/CustomComboBox/CustomComboBox.styles.js +16 -6
  458. package/internal/CustomComboBox/CustomComboBox.styles.js.map +1 -1
  459. package/internal/DateSelect/DateSelect.d.ts +1 -0
  460. package/internal/DateSelect/DateSelect.js +2 -2
  461. package/internal/DateSelect/DateSelect.js.map +1 -1
  462. package/internal/DateSelect/DateSelect.styles.d.ts +5 -5
  463. package/internal/DateSelect/DateSelect.styles.js +19 -7
  464. package/internal/DateSelect/DateSelect.styles.js.map +1 -1
  465. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -15
  466. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +15 -36
  467. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  468. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  469. package/internal/InputLikeText/InputLikeText.js +17 -21
  470. package/internal/InputLikeText/InputLikeText.js.map +1 -1
  471. package/internal/InputLikeText/InputLikeText.styles.d.ts +7 -7
  472. package/internal/InputLikeText/InputLikeText.styles.js +28 -8
  473. package/internal/InputLikeText/InputLikeText.styles.js.map +1 -1
  474. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
  475. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +14 -14
  476. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  477. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +2 -3
  478. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +13 -4
  479. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +1 -1
  480. package/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +2 -3
  481. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js +13 -4
  482. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js.map +1 -1
  483. package/internal/Menu/Menu.d.ts +1 -0
  484. package/internal/Menu/Menu.js +9 -9
  485. package/internal/Menu/Menu.js.map +1 -1
  486. package/internal/Menu/Menu.styles.d.ts +15 -15
  487. package/internal/Menu/Menu.styles.js +49 -16
  488. package/internal/Menu/Menu.styles.js.map +1 -1
  489. package/internal/MenuMessage/MenuMessage.js +10 -10
  490. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  491. package/internal/MenuMessage/MenuMessage.styles.d.ts +10 -10
  492. package/internal/MenuMessage/MenuMessage.styles.js +39 -11
  493. package/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
  494. package/internal/MobilePopup/MobilePopup.d.ts +1 -0
  495. package/internal/MobilePopup/MobilePopup.js +11 -23
  496. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  497. package/internal/MobilePopup/MobilePopup.styles.d.ts +16 -16
  498. package/internal/MobilePopup/MobilePopup.styles.js +55 -17
  499. package/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
  500. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +1 -0
  501. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +5 -5
  502. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  503. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +6 -6
  504. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +23 -7
  505. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -1
  506. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
  507. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +10 -10
  508. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  509. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +13 -13
  510. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +45 -14
  511. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
  512. package/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
  513. package/internal/NativeDateInput/NativeDateInput.js +1 -1
  514. package/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  515. package/internal/NativeDateInput/NativeDateInput.styles.d.ts +2 -3
  516. package/internal/NativeDateInput/NativeDateInput.styles.js +13 -4
  517. package/internal/NativeDateInput/NativeDateInput.styles.js.map +1 -1
  518. package/internal/NativeTimeInput/NativeTimeInput.js +2 -1
  519. package/internal/NativeTimeInput/NativeTimeInput.js.map +1 -1
  520. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +2 -3
  521. package/internal/NativeTimeInput/NativeTimeInput.styles.js +13 -4
  522. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +1 -1
  523. package/internal/Popup/Popup.d.ts +1 -0
  524. package/internal/Popup/Popup.js +5 -5
  525. package/internal/Popup/Popup.js.map +1 -1
  526. package/internal/Popup/Popup.styles.d.ts +21 -21
  527. package/internal/Popup/Popup.styles.js +67 -22
  528. package/internal/Popup/Popup.styles.js.map +1 -1
  529. package/internal/Popup/PopupPin.d.ts +1 -0
  530. package/internal/Popup/PopupPin.js +1 -1
  531. package/internal/Popup/PopupPin.js.map +1 -1
  532. package/internal/Popup/PopupPin.styles.d.ts +8 -9
  533. package/internal/Popup/PopupPin.styles.js +31 -10
  534. package/internal/Popup/PopupPin.styles.js.map +1 -1
  535. package/internal/PopupMenu/PopupMenu.d.ts +1 -0
  536. package/internal/PopupMenu/PopupMenu.js +1 -1
  537. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  538. package/internal/PopupMenu/PopupMenu.styles.d.ts +3 -4
  539. package/internal/PopupMenu/PopupMenu.styles.js +16 -5
  540. package/internal/PopupMenu/PopupMenu.styles.js.map +1 -1
  541. package/internal/RenderContainer/RenderInnerContainer.js +2 -4
  542. package/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  543. package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  544. package/internal/ResizeDetector/ResizeDetector.js +1 -1
  545. package/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  546. package/internal/ResizeDetector/ResizeDetector.styles.d.ts +6 -7
  547. package/internal/ResizeDetector/ResizeDetector.styles.js +25 -8
  548. package/internal/ResizeDetector/ResizeDetector.styles.js.map +1 -1
  549. package/internal/SpinnerIcon/SpinnerIcon.js +2 -2
  550. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  551. package/internal/SpinnerIcon/SpinnerIcon.styles.d.ts +5 -6
  552. package/internal/SpinnerIcon/SpinnerIcon.styles.js +22 -7
  553. package/internal/SpinnerIcon/SpinnerIcon.styles.js.map +1 -1
  554. package/internal/TextWidthHelper/TextWidthHelper.d.ts +1 -0
  555. package/internal/TextWidthHelper/TextWidthHelper.js +1 -1
  556. package/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  557. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +3 -4
  558. package/internal/TextWidthHelper/TextWidthHelper.styles.js +16 -5
  559. package/internal/TextWidthHelper/TextWidthHelper.styles.js.map +1 -1
  560. package/internal/TimeInput/TimeFragments.js +15 -19
  561. package/internal/TimeInput/TimeFragments.js.map +1 -1
  562. package/internal/TimeInput/TimeFragments.styles.d.ts +31 -19
  563. package/internal/TimeInput/TimeFragments.styles.js +76 -20
  564. package/internal/TimeInput/TimeFragments.styles.js.map +1 -1
  565. package/internal/TimeInput/TimeInput.js +4 -4
  566. package/internal/TimeInput/TimeInput.js.map +1 -1
  567. package/internal/TimeInput/TimeInput.styles.d.ts +6 -6
  568. package/internal/TimeInput/TimeInput.styles.js +22 -7
  569. package/internal/TimeInput/TimeInput.styles.js.map +1 -1
  570. package/internal/icons2022/BaseIcon.js +1 -8
  571. package/internal/icons2022/BaseIcon.js.map +1 -1
  572. package/internal/icons2022/BaseIcon.styles.d.ts +2 -5
  573. package/internal/icons2022/BaseIcon.styles.js +14 -6
  574. package/internal/icons2022/BaseIcon.styles.js.map +1 -1
  575. package/internal/icons2022/LoadingIcon.js +5 -3
  576. package/internal/icons2022/LoadingIcon.js.map +1 -1
  577. package/internal/themes/BasicTheme.d.ts +40 -10
  578. package/internal/themes/BasicTheme.js +78 -17
  579. package/internal/themes/BasicTheme.js.map +1 -1
  580. package/internal/themes/DarkTheme6_0.js +361 -62
  581. package/internal/themes/DarkTheme6_0.js.map +1 -1
  582. package/internal/themes/DarkTheme6_1.js +3 -11
  583. package/internal/themes/DarkTheme6_1.js.map +1 -1
  584. package/internal/themes/DarkTheme6_4.js +1 -11
  585. package/internal/themes/DarkTheme6_4.js.map +1 -1
  586. package/internal/themes/DarkTheme6_5.d.ts +1 -0
  587. package/internal/themes/DarkTheme6_5.js +87 -0
  588. package/internal/themes/DarkTheme6_5.js.map +1 -0
  589. package/internal/themes/LightTheme6_5.d.ts +1 -0
  590. package/internal/themes/LightTheme6_5.js +87 -0
  591. package/internal/themes/LightTheme6_5.js.map +1 -0
  592. package/lib/Upgrades.d.ts +2 -12
  593. package/lib/Upgrades.js +16 -12
  594. package/lib/Upgrades.js.map +1 -1
  595. package/lib/chars.d.ts +8 -0
  596. package/lib/chars.js +9 -0
  597. package/lib/chars.js.map +1 -0
  598. package/lib/globalObject.js +1 -4
  599. package/lib/globalObject.js.map +1 -1
  600. package/lib/renderEnvironment/RenderEnvironmentContext.d.ts +6 -38
  601. package/lib/renderEnvironment/RenderEnvironmentContext.js +19 -21
  602. package/lib/renderEnvironment/RenderEnvironmentContext.js.map +1 -1
  603. package/lib/renderEnvironment/RenderEnvironmentDecorator.js +3 -6
  604. package/lib/renderEnvironment/RenderEnvironmentDecorator.js.map +1 -1
  605. package/lib/styles/Mixins.d.ts +2 -0
  606. package/lib/styles/Mixins.js +7 -0
  607. package/lib/styles/Mixins.js.map +1 -0
  608. package/lib/styles/UiFont.d.ts +3 -0
  609. package/lib/styles/UiFont.js +18 -0
  610. package/lib/styles/UiFont.js.map +1 -0
  611. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  612. package/lib/styles/getLabGrotesqueBaselineCompensation.js +10 -0
  613. package/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
  614. package/lib/theming/AnimationKeyframes.d.ts +7 -0
  615. package/lib/theming/AnimationKeyframes.js +24 -0
  616. package/lib/theming/AnimationKeyframes.js.map +1 -0
  617. package/lib/theming/Emotion.d.ts +9 -43
  618. package/lib/theming/Emotion.js +35 -70
  619. package/lib/theming/Emotion.js.map +1 -1
  620. package/lib/theming/ThemeVersions.d.ts +1 -1
  621. package/lib/theming/ThemeVersions.js.map +1 -1
  622. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  623. package/lib/theming/themes/DarkTheme.js +3 -1
  624. package/lib/theming/themes/DarkTheme.js.map +1 -1
  625. package/lib/theming/themes/LightTheme.d.ts +1 -0
  626. package/lib/theming/themes/LightTheme.js +3 -1
  627. package/lib/theming/themes/LightTheme.js.map +1 -1
  628. package/lib/theming/useTheme.d.ts +2 -0
  629. package/lib/theming/useTheme.js +6 -0
  630. package/lib/theming/useTheme.js.map +1 -0
  631. package/package.json +5 -46
  632. package/typings/stylis-plugin-extra-scope.d.ts +3 -0
  633. package/components/FileUploader/FileUploaderFileTypeIcon.styles.d.ts +0 -14
  634. package/components/FileUploader/FileUploaderFileTypeIcon.styles.js +0 -16
  635. package/components/FileUploader/FileUploaderFileTypeIcon.styles.js.map +0 -1
  636. package/components/FxInput/FxInput.styles.d.ts +0 -4
  637. package/components/FxInput/FxInput.styles.js +0 -6
  638. package/components/FxInput/FxInput.styles.js.map +0 -1
  639. package/components/FxInput/FxInputRestoreBtn.styles.d.ts +0 -6
  640. package/components/FxInput/FxInputRestoreBtn.styles.js +0 -8
  641. package/components/FxInput/FxInputRestoreBtn.styles.js.map +0 -1
  642. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.styles.d.ts +0 -5
  643. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.styles.js +0 -7
  644. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.styles.js.map +0 -1
  645. package/lib/classNames.generated.d.ts +0 -1235
  646. package/lib/classNames.generated.js +0 -1233
  647. package/lib/classNames.generated.js.map +0 -1
  648. package/lib/styles/baselineCompensation.d.ts +0 -63
  649. package/lib/styles/baselineCompensation.js +0 -122
  650. package/lib/styles/baselineCompensation.js.map +0 -1
  651. package/lib/theming/declaredTheme.d.ts +0 -43
  652. package/lib/theming/declaredTheme.js +0 -56
  653. package/lib/theming/declaredTheme.js.map +0 -1
  654. package/lib/theming/hashString.d.ts +0 -19
  655. package/lib/theming/hashString.js +0 -52
  656. package/lib/theming/hashString.js.map +0 -1
  657. package/lib/theming/staticStyles.d.ts +0 -17
  658. package/lib/theming/staticStyles.js +0 -8
  659. package/lib/theming/staticStyles.js.map +0 -1
  660. package/lib/theming/staticThemeDelta.d.ts +0 -17
  661. package/lib/theming/staticThemeDelta.js +0 -37
  662. package/lib/theming/staticThemeDelta.js.map +0 -1
  663. package/lib/theming/staticThemeVars.d.ts +0 -21
  664. package/lib/theming/staticThemeVars.js +0 -35
  665. package/lib/theming/staticThemeVars.js.map +0 -1
  666. package/lib/theming/themeCssVarsClass.d.ts +0 -89
  667. package/lib/theming/themeCssVarsClass.js +0 -253
  668. package/lib/theming/themeCssVarsClass.js.map +0 -1
  669. package/lib/theming/themeCssVarsDelta.d.ts +0 -13
  670. package/lib/theming/themeCssVarsDelta.js +0 -67
  671. package/lib/theming/themeCssVarsDelta.js.map +0 -1
  672. package/lib/theming/themeToCssVars.d.ts +0 -47
  673. package/lib/theming/themeToCssVars.js +0 -861
  674. package/lib/theming/themeToCssVars.js.map +0 -1
  675. package/react-ui-tailwind.css +0 -544
  676. package/react-ui-themes.css +0 -8628
  677. package/react-ui-token-map.json +0 -9029
  678. package/react-ui.css +0 -7776
  679. package/react-ui.layer.css +0 -7778
  680. package/themes/dark-6-0.css +0 -1439
  681. package/themes/dark-6-0.scoped.css +0 -1439
  682. package/themes/dark-6-1.css +0 -1439
  683. package/themes/dark-6-1.scoped.css +0 -1439
  684. package/themes/dark.css +0 -1439
  685. package/themes/dark.scoped.css +0 -1439
  686. package/themes/light-6-0.css +0 -1437
  687. package/themes/light-6-0.scoped.css +0 -1437
  688. package/themes/light-6-1.css +0 -1437
  689. package/themes/light-6-1.scoped.css +0 -1437
  690. package/themes/light.css +0 -1437
  691. 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 { 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 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,7 +1,7 @@
1
+ import type { Theme } from '../../lib/theming/Theme.js';
1
2
  export declare const globalClasses: {
2
3
  root: string;
3
4
  };
4
- /** Правила — в `MaskedInputV2.css`; здесь только имена классов. */
5
- export declare const getStyles: (ignored?: unknown) => import("../../lib/theming/staticStyles.js").StaticStyles<{
6
- root: string;
5
+ export declare const getStyles: import("../../lib/theming/Emotion.js").StylesGetter<{
6
+ root(t: Theme): string;
7
7
  }>;
@@ -1,10 +1,19 @@
1
- import { prefix } from '../../lib/theming/Emotion.js';
2
- import { staticStyles } from '../../lib/theming/staticStyles.js';
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ import { UI_FONT_NAME, injectGlobalFont } from '../../lib/styles/UiFont.js';
6
+ import { memoizeGetStyles, prefix } from '../../lib/theming/Emotion.js';
3
7
  export var globalClasses = prefix('masked-input-v2')({
4
8
  root: 'root',
5
9
  });
6
- /** Правила — в `MaskedInputV2.css`; здесь только имена классов. */
7
- export var getStyles = staticStyles({
8
- root: 'react-ui-MaskedInputV2-root',
10
+ export var getStyles = memoizeGetStyles(function (emotion) {
11
+ injectGlobalFont(emotion);
12
+ return {
13
+ root: function (t) {
14
+ return emotion.css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n font-family: ", ", ", ";\n font-variant-numeric: tabular-nums;\n "], ["\n font-family: ", ", ", ";\n font-variant-numeric: tabular-nums;\n "])), UI_FONT_NAME, t.baseFontFamily);
15
+ },
16
+ };
9
17
  });
18
+ var templateObject_1;
10
19
  //# sourceMappingURL=MaskedInputV2.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaskedInputV2.styles.js","sourceRoot":"","sources":["MaskedInputV2.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,MAAM,CAAC,IAAM,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACrD,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,mEAAmE;AACnE,MAAM,CAAC,IAAM,SAAS,GAAG,YAAY,CAAC;IACpC,IAAI,EAAE,6BAA6B;CACpC,CAAC,CAAC","sourcesContent":["import { prefix } from '../../lib/theming/Emotion.js';\nimport { staticStyles } from '../../lib/theming/staticStyles.js';\n\nexport const globalClasses = prefix('masked-input-v2')({\n root: 'root',\n});\n\n/** Правила — в `MaskedInputV2.css`; здесь только имена классов. */\nexport const getStyles = staticStyles({\n root: 'react-ui-MaskedInputV2-root',\n});\n"]}
1
+ {"version":3,"file":"MaskedInputV2.styles.js","sourceRoot":"","sources":["MaskedInputV2.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAGxE,MAAM,CAAC,IAAM,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACrD,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,OAAgB;IACzD,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,OAAO;QACL,IAAI,YAAC,CAAQ;YACX,OAAO,OAAO,CAAC,GAAG,4JAAA,yBACD,EAAY,IAAK,EAAgB,wDAEjD,KAFgB,YAAY,EAAK,CAAC,CAAC,cAAc,EAEhD;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { UI_FONT_NAME, injectGlobalFont } from '../../lib/styles/UiFont.js';\nimport { memoizeGetStyles, prefix } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\n\nexport const globalClasses = prefix('masked-input-v2')({\n root: 'root',\n});\n\nexport const getStyles = memoizeGetStyles((emotion: Emotion) => {\n injectGlobalFont(emotion);\n return {\n root(t: Theme) {\n return emotion.css`\n font-family: ${UI_FONT_NAME}, ${t.baseFontFamily};\n font-variant-numeric: tabular-nums;\n `;\n },\n };\n});\n"]}
@@ -1,10 +1,7 @@
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';
4
+ import { ThemeContext } from '../../../lib/theming/ThemeContext.js';
8
5
  import { getStyles, globalClasses } from './MaskedInternal.styles.js';
9
6
  function splitTextBySelection(text, textStartOffset, selectionStart, selectionEnd) {
10
7
  if (selectionStart === selectionEnd) {
@@ -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":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAatE,SAAS,oBAAoB,CAC3B,IAAY,EACZ,eAAuB,EACvB,cAAsB,EACtB,YAAoB;IAEpB,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,eAAe,CAAC,CAAC;IACjE,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,CAAC,CAAC;IAEvE,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,EAST;QARjB,UAAU,gBAAA,EACV,YAAY,kBAAA,EACZ,cAAc,oBAAA,EACd,YAAY,kBAAA,EACZ,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,YAAY,kBAAA,EACZ,eAAc,EAAd,OAAO,mBAAG,IAAI,KAAA;IAEd,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACvC,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,IAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAEvD,IAAM,aAAa,GAAG,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC;IACzD,IAAM,YAAY,GAAG,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC;IACtD,IAAM,oBAAoB,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAEtD,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,aAAa,CAAC,IAAY,EAAE,MAAc,EAAE,gBAAwB;QACrE,IAAA,KAA4B,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,EAA3F,MAAM,QAAA,EAAE,QAAQ,QAAA,EAAE,KAAK,QAAoE,CAAC;QAEnG,OAAO,CACL;YACG,MAAM,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAE,gBAAgB,IAAG,MAAM,CAAQ,CAAC,CAAC,CAAC,IAAI;YAClE,QAAQ,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAE,oBAAoB,IAAG,QAAQ,CAAQ,CAAC,CAAC,CAAC,IAAI;YAC1E,KAAK,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAE,gBAAgB,IAAG,KAAK,CAAQ,CAAC,CAAC,CAAC,IAAI,CAChE,CACJ,CAAC;IACJ,CAAC;IAED,OAAO,CACL,8BAAM,GAAG,EAAE,YAAY,iBAAc,MAAM,EAAC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE;QACrE,0CACW,sBAAsB,EAC/B,KAAK,EAAE;gBACL,OAAO,EAAE,cAAc;gBACvB,KAAK,EAAE,MAAM;gBACb,UAAU,EAAE,QAAQ;gBACpB,SAAS,WAAA;gBACT,UAAU,EAAE,SAAS;aACtB;YAEA,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YACtG,QAAQ;gBACP,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;gBACjG,CAAC,CAAC,IAAI,CACH,CACF,CACR,CAAC;AACJ,CAAC","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.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 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,15 +20,12 @@ 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
30
  import { getStyles, globalClasses } from './MaskedInternal.styles.js';
34
31
  import { MaskOverlay } from './MaskOverlay.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.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 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"]}
@@ -1,3 +1,4 @@
1
+ import type { Theme } from '../../../lib/theming/Theme.js';
1
2
  export declare const globalClasses: {
2
3
  input: string;
3
4
  disabled: string;
@@ -5,11 +6,10 @@ export declare const globalClasses: {
5
6
  masked: string;
6
7
  colored: string;
7
8
  };
8
- /** Правила — в `MaskedInternal.css`; здесь только имена классов. */
9
- export declare const getStyles: (ignored?: unknown) => import("../../../lib/theming/staticStyles.js").StaticStyles<{
10
- input: string;
11
- overlay: string;
12
- typed: string;
13
- mask: string;
14
- selectedSegment: string;
9
+ export declare const getStyles: import("../../../lib/theming/Emotion.js").StylesGetter<{
10
+ input(t: Theme): string;
11
+ overlay(): string;
12
+ typed(t: Theme): string;
13
+ mask(t: Theme): string;
14
+ selectedSegment(): string;
15
15
  }>;
@@ -1,5 +1,8 @@
1
- import { prefix } from '../../../lib/theming/Emotion.js';
2
- import { staticStyles } from '../../../lib/theming/staticStyles.js';
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ import { memoizeGetStyles, prefix } from '../../../lib/theming/Emotion.js';
3
6
  export var globalClasses = prefix('masked-internal')({
4
7
  input: 'input',
5
8
  disabled: 'disabled',
@@ -7,12 +10,25 @@ export var globalClasses = prefix('masked-internal')({
7
10
  masked: 'masked',
8
11
  colored: 'colored',
9
12
  });
10
- /** Правила — в `MaskedInternal.css`; здесь только имена классов. */
11
- export var getStyles = staticStyles({
12
- input: 'react-ui-MaskedInternal-input',
13
- overlay: 'react-ui-MaskedInternal-overlay',
14
- typed: 'react-ui-MaskedInternal-typed',
15
- mask: 'react-ui-MaskedInternal-mask',
16
- selectedSegment: 'react-ui-MaskedInternal-selectedSegment',
13
+ export var getStyles = memoizeGetStyles(function (_a) {
14
+ var css = _a.css;
15
+ return ({
16
+ input: function (t) {
17
+ return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n color-scheme: ", ";\n\n &:-internal-autofill-selected {\n background-color: ", " !important;\n background-image: none !important;\n color: ", " !important;\n }\n\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus {\n -webkit-box-shadow: 0 0 0 1000px ", " inset;\n box-shadow: 0 0 0 1000px ", " inset;\n -webkit-text-fill-color: ", " !important;\n color: ", " !important;\n /* Chrome \u0438\u043D\u0430\u0447\u0435 \u0441\u043A\u0440\u044B\u0432\u0430\u0435\u0442 caret \u043F\u0440\u0438 autofill (color/currentColor). */\n caret-color: ", " !important;\n transition:\n background-color 0s 600000s,\n color 0s 600000s !important;\n }\n\n &:disabled {\n color: ", ";\n\n &:-internal-autofill-selected {\n background-color: ", " !important;\n }\n\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus {\n -webkit-box-shadow: 0 0 0 1000px ", " inset;\n box-shadow: 0 0 0 1000px ", " inset;\n }\n }\n\n &.", " {\n color: transparent;\n -webkit-text-fill-color: transparent;\n caret-color: ", ";\n\n &::selection {\n background-color: transparent !important;\n color: transparent !important;\n -webkit-text-fill-color: transparent !important;\n }\n\n /* \u0422\u0435\u043A\u0441\u0442 \u0440\u0438\u0441\u0443\u0435\u0442 MaskOverlay; \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043F\u0440\u0438 autofill \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u043F\u0435\u0440\u0435\u0431\u0438\u0432\u0430\u0442\u044C fill-color. */\n &:-internal-autofill-selected {\n color: transparent !important;\n caret-color: ", " !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 /* \u0411\u0435\u0437 \u044D\u0442\u043E\u0433\u043E caret \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F transparent \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u0442\u0435\u043A\u0441\u0442\u043E\u043C \u0438 \u043D\u0435 \u043C\u0438\u0433\u0430\u0435\u0442. */\n caret-color: ", " !important;\n }\n }\n "], ["\n color-scheme: ", ";\n\n &:-internal-autofill-selected {\n background-color: ", " !important;\n background-image: none !important;\n color: ", " !important;\n }\n\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus {\n -webkit-box-shadow: 0 0 0 1000px ", " inset;\n box-shadow: 0 0 0 1000px ", " inset;\n -webkit-text-fill-color: ", " !important;\n color: ", " !important;\n /* Chrome \u0438\u043D\u0430\u0447\u0435 \u0441\u043A\u0440\u044B\u0432\u0430\u0435\u0442 caret \u043F\u0440\u0438 autofill (color/currentColor). */\n caret-color: ", " !important;\n transition:\n background-color 0s 600000s,\n color 0s 600000s !important;\n }\n\n &:disabled {\n color: ", ";\n\n &:-internal-autofill-selected {\n background-color: ", " !important;\n }\n\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus {\n -webkit-box-shadow: 0 0 0 1000px ", " inset;\n box-shadow: 0 0 0 1000px ", " inset;\n }\n }\n\n &.", " {\n color: transparent;\n -webkit-text-fill-color: transparent;\n caret-color: ", ";\n\n &::selection {\n background-color: transparent !important;\n color: transparent !important;\n -webkit-text-fill-color: transparent !important;\n }\n\n /* \u0422\u0435\u043A\u0441\u0442 \u0440\u0438\u0441\u0443\u0435\u0442 MaskOverlay; \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043F\u0440\u0438 autofill \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u043F\u0435\u0440\u0435\u0431\u0438\u0432\u0430\u0442\u044C fill-color. */\n &:-internal-autofill-selected {\n color: transparent !important;\n caret-color: ", " !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 /* \u0411\u0435\u0437 \u044D\u0442\u043E\u0433\u043E caret \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F transparent \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u0442\u0435\u043A\u0441\u0442\u043E\u043C \u0438 \u043D\u0435 \u043C\u0438\u0433\u0430\u0435\u0442. */\n caret-color: ", " !important;\n }\n }\n "])), t.inputColorScheme, t.inputBg, t.inputTextColor, t.inputBg, t.inputBg, t.inputTextColor, t.inputTextColor, t.inputTextColor, t.inputTextColorDisabled, t.inputDisabledBg, t.inputDisabledBg, t.inputDisabledBg, globalClasses.masked, t.inputTextColor, t.inputTextColor, t.inputTextColor);
18
+ },
19
+ overlay: function () {
20
+ return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\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 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 "])));
21
+ },
22
+ typed: function (t) {
23
+ return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n white-space: pre;\n color: ", ";\n\n &.", " {\n color: ", ";\n }\n "], ["\n white-space: pre;\n color: ", ";\n\n &.", " {\n color: ", ";\n }\n "])), t.inputTextColor, globalClasses.disabled, t.inputTextColorDisabled);
24
+ },
25
+ mask: function (t) {
26
+ return css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n white-space: pre;\n color: ", ";\n\n &.", " {\n color: ", ";\n }\n\n &.", " {\n color: ", ";\n }\n "], ["\n white-space: pre;\n color: ", ";\n\n &.", " {\n color: ", ";\n }\n\n &.", " {\n color: ", ";\n }\n "])), t.inputTextColor, globalClasses.colored, t.inputPlaceholderColor, globalClasses.disabled, t.inputTextColorDisabled);
27
+ },
28
+ selectedSegment: function () {
29
+ return css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n background-color: #3390ff;\n color: #fff !important;\n -webkit-text-fill-color: #fff !important;\n "], ["\n background-color: #3390ff;\n color: #fff !important;\n -webkit-text-fill-color: #fff !important;\n "])));
30
+ },
31
+ });
17
32
  });
33
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
18
34
  //# sourceMappingURL=MaskedInternal.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaskedInternal.styles.js","sourceRoot":"","sources":["MaskedInternal.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,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,oEAAoE;AACpE,MAAM,CAAC,IAAM,SAAS,GAAG,YAAY,CAAC;IACpC,KAAK,EAAE,+BAA+B;IACtC,OAAO,EAAE,iCAAiC;IAC1C,KAAK,EAAE,+BAA+B;IACtC,IAAI,EAAE,8BAA8B;IACpC,eAAe,EAAE,yCAAyC;CAC3D,CAAC,CAAC","sourcesContent":["import { prefix } from '../../../lib/theming/Emotion.js';\nimport { staticStyles } from '../../../lib/theming/staticStyles.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\n/** Правила — в `MaskedInternal.css`; здесь только имена классов. */\nexport const getStyles = staticStyles({\n input: 'react-ui-MaskedInternal-input',\n overlay: 'react-ui-MaskedInternal-overlay',\n typed: 'react-ui-MaskedInternal-typed',\n mask: 'react-ui-MaskedInternal-mask',\n selectedSegment: 'react-ui-MaskedInternal-selectedSegment',\n});\n"]}
1
+ {"version":3,"file":"MaskedInternal.styles.js","sourceRoot":"","sources":["MaskedInternal.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAG3E,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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeGetStyles, prefix } from '../../../lib/theming/Emotion.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"]}
@@ -20,12 +20,12 @@ 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';
28
+ import { ThemeContext } from '../../lib/theming/ThemeContext.js';
29
29
  import { getStyles } from './MenuFooter.styles.js';
30
30
  export var MenuFooterDataTids = {
31
31
  root: 'MenuFooter__root',
@@ -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,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,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.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 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"]}