@skbkontur/react-ui 6.4.7-9ac75.0 → 6.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (914) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +0 -42
  3. package/components/Autocomplete/Autocomplete.d.ts +3 -0
  4. package/components/Autocomplete/Autocomplete.js +6 -4
  5. package/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/components/Autocomplete/Autocomplete.styles.d.ts +5 -0
  7. package/components/Autocomplete/Autocomplete.styles.js +18 -0
  8. package/components/Autocomplete/Autocomplete.styles.js.map +1 -0
  9. package/components/Autocomplete/getAutocompleteTheme.d.ts +2 -1
  10. package/components/Autocomplete/getAutocompleteTheme.js +2 -3
  11. package/components/Autocomplete/getAutocompleteTheme.js.map +1 -1
  12. package/components/Button/Button.classes.js +1 -1
  13. package/components/Button/Button.classes.js.map +1 -1
  14. package/components/Button/Button.d.ts +4 -0
  15. package/components/Button/Button.js +74 -73
  16. package/components/Button/Button.js.map +1 -1
  17. package/components/Button/Button.mixins.d.ts +4 -0
  18. package/components/Button/Button.mixins.js +21 -0
  19. package/components/Button/Button.mixins.js.map +1 -0
  20. package/components/Button/Button.styles.d.ts +95 -0
  21. package/components/Button/Button.styles.js +260 -0
  22. package/components/Button/Button.styles.js.map +1 -0
  23. package/components/Button/ButtonArrow.d.ts +4 -1
  24. package/components/Button/ButtonArrow.js +14 -10
  25. package/components/Button/ButtonArrow.js.map +1 -1
  26. package/components/Button/ButtonIcon.js +21 -9
  27. package/components/Button/ButtonIcon.js.map +1 -1
  28. package/components/Button/ButtonIcon.styles.d.ts +16 -0
  29. package/components/Button/ButtonIcon.styles.js +53 -0
  30. package/components/Button/ButtonIcon.styles.js.map +1 -0
  31. package/components/Button/LoadingButtonIcon.js +4 -2
  32. package/components/Button/LoadingButtonIcon.js.map +1 -1
  33. package/components/Button/getInnerLinkTheme.d.ts +2 -1
  34. package/components/Button/getInnerLinkTheme.js +2 -3
  35. package/components/Button/getInnerLinkTheme.js.map +1 -1
  36. package/components/Calendar/Calendar.d.ts +3 -0
  37. package/components/Calendar/Calendar.js +5 -5
  38. package/components/Calendar/Calendar.js.map +1 -1
  39. package/components/Calendar/Calendar.styles.d.ts +6 -0
  40. package/components/Calendar/Calendar.styles.js +22 -0
  41. package/components/Calendar/Calendar.styles.js.map +1 -0
  42. package/components/Calendar/CalendarDay.js +9 -7
  43. package/components/Calendar/CalendarDay.js.map +1 -1
  44. package/components/Calendar/DayCellView.js +6 -2
  45. package/components/Calendar/DayCellView.js.map +1 -1
  46. package/components/Calendar/DayCellView.styles.d.ts +9 -0
  47. package/components/Calendar/DayCellView.styles.js +31 -0
  48. package/components/Calendar/DayCellView.styles.js.map +1 -0
  49. package/components/Calendar/Month.js +25 -5
  50. package/components/Calendar/Month.js.map +1 -1
  51. package/components/Calendar/MonthView.js +10 -8
  52. package/components/Calendar/MonthView.js.map +1 -1
  53. package/components/Calendar/MonthView.styles.d.ts +13 -0
  54. package/components/Calendar/MonthView.styles.js +47 -0
  55. package/components/Calendar/MonthView.styles.js.map +1 -0
  56. package/components/Center/Center.d.ts +3 -0
  57. package/components/Center/Center.js +10 -8
  58. package/components/Center/Center.js.map +1 -1
  59. package/components/Center/Center.styles.d.ts +7 -0
  60. package/components/Center/Center.styles.js +27 -0
  61. package/components/Center/Center.styles.js.map +1 -0
  62. package/components/Checkbox/Checkbox.d.ts +3 -0
  63. package/components/Checkbox/Checkbox.js +33 -33
  64. package/components/Checkbox/Checkbox.js.map +1 -1
  65. package/components/Checkbox/Checkbox.mixins.d.ts +4 -19
  66. package/components/Checkbox/Checkbox.mixins.js +15 -16
  67. package/components/Checkbox/Checkbox.mixins.js.map +1 -1
  68. package/components/Checkbox/Checkbox.styles.d.ts +34 -0
  69. package/components/Checkbox/Checkbox.styles.js +100 -0
  70. package/components/Checkbox/Checkbox.styles.js.map +1 -0
  71. package/components/CurrencyInput/CurrencyInput.js +10 -0
  72. package/components/CurrencyInput/CurrencyInput.js.map +1 -1
  73. package/components/DateInput/DateFragmentsView.d.ts +5 -0
  74. package/components/DateInput/DateFragmentsView.js +17 -9
  75. package/components/DateInput/DateFragmentsView.js.map +1 -1
  76. package/components/DateInput/DateFragmentsView.styles.d.ts +7 -0
  77. package/components/DateInput/DateFragmentsView.styles.js +28 -0
  78. package/components/DateInput/DateFragmentsView.styles.js.map +1 -0
  79. package/components/DateInput/DateInput.d.ts +5 -0
  80. package/components/DateInput/DateInput.js +18 -9
  81. package/components/DateInput/DateInput.js.map +1 -1
  82. package/components/DateInput/DateInput.styles.d.ts +11 -0
  83. package/components/DateInput/DateInput.styles.js +29 -0
  84. package/components/DateInput/DateInput.styles.js.map +1 -0
  85. package/components/DatePicker/DatePicker.d.ts +2 -0
  86. package/components/DatePicker/DatePicker.js +7 -8
  87. package/components/DatePicker/DatePicker.js.map +1 -1
  88. package/components/DatePicker/DatePicker.styles.d.ts +5 -0
  89. package/components/DatePicker/DatePicker.styles.js +18 -0
  90. package/components/DatePicker/DatePicker.styles.js.map +1 -0
  91. package/components/DatePicker/MobilePicker.js +4 -2
  92. package/components/DatePicker/MobilePicker.js.map +1 -1
  93. package/components/DatePicker/MobilePicker.styles.d.ts +3 -0
  94. package/components/DatePicker/MobilePicker.styles.js +15 -0
  95. package/components/DatePicker/MobilePicker.styles.js.map +1 -0
  96. package/components/DatePicker/getMobilePickerTheme.d.ts +2 -1
  97. package/components/DatePicker/getMobilePickerTheme.js +2 -3
  98. package/components/DatePicker/getMobilePickerTheme.js.map +1 -1
  99. package/components/DateRangePicker/DateRangePicker.d.ts +12 -12
  100. package/components/DateRangePicker/DateRangePicker.js +38 -40
  101. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  102. package/components/DateRangePicker/DateRangePicker.styles.d.ts +16 -0
  103. package/components/DateRangePicker/DateRangePicker.styles.js +57 -0
  104. package/components/DateRangePicker/DateRangePicker.styles.js.map +1 -0
  105. package/components/DateRangePicker/DateRangePickerTheme.d.ts +3 -2
  106. package/components/DateRangePicker/DateRangePickerTheme.js +4 -5
  107. package/components/DateRangePicker/DateRangePickerTheme.js.map +1 -1
  108. package/components/Dropdown/getDropdownTheme.d.ts +2 -1
  109. package/components/Dropdown/getDropdownTheme.js +2 -3
  110. package/components/Dropdown/getDropdownTheme.js.map +1 -1
  111. package/components/DropdownMenu/getDropdownMenuTheme.d.ts +2 -1
  112. package/components/DropdownMenu/getDropdownMenuTheme.js +2 -3
  113. package/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
  114. package/components/FileUploader/FileUploader.js +46 -43
  115. package/components/FileUploader/FileUploader.js.map +1 -1
  116. package/components/FileUploader/FileUploader.mixins.d.ts +1 -6
  117. package/components/FileUploader/FileUploader.mixins.js +1 -6
  118. package/components/FileUploader/FileUploader.mixins.js.map +1 -1
  119. package/components/FileUploader/FileUploader.styles.d.ts +74 -0
  120. package/components/FileUploader/FileUploader.styles.js +221 -0
  121. package/components/FileUploader/FileUploader.styles.js.map +1 -0
  122. package/components/FileUploader/FileUploaderFile.js +40 -35
  123. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  124. package/components/FileUploader/FileUploaderFile.styles.d.ts +60 -0
  125. package/components/FileUploader/FileUploaderFile.styles.js +184 -0
  126. package/components/FileUploader/FileUploaderFile.styles.js.map +1 -0
  127. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js +28 -22
  128. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  129. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.d.ts +34 -0
  130. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js +103 -0
  131. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -0
  132. package/components/FileUploader/FileUploaderFileStatusIcon.js +8 -3
  133. package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -1
  134. package/components/GlobalLoader/GlobalLoaderView.js +19 -20
  135. package/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  136. package/components/GlobalLoader/GlobalLoaderView.styles.d.ts +17 -0
  137. package/components/GlobalLoader/GlobalLoaderView.styles.js +70 -0
  138. package/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -0
  139. package/components/Group/Group.d.ts +3 -0
  140. package/components/Group/Group.js +12 -10
  141. package/components/Group/Group.js.map +1 -1
  142. package/components/Group/Group.styles.d.ts +8 -0
  143. package/components/Group/Group.styles.js +30 -0
  144. package/components/Group/Group.styles.js.map +1 -0
  145. package/components/Hint/Hint.d.ts +3 -0
  146. package/components/Hint/Hint.js +10 -10
  147. package/components/Hint/Hint.js.map +1 -1
  148. package/components/Hint/Hint.styles.d.ts +5 -0
  149. package/components/Hint/Hint.styles.js +18 -0
  150. package/components/Hint/Hint.styles.js.map +1 -0
  151. package/components/Input/Input.d.ts +4 -0
  152. package/components/Input/Input.js +28 -20
  153. package/components/Input/Input.js.map +1 -1
  154. package/components/Input/Input.styles.d.ts +21 -0
  155. package/components/Input/Input.styles.js +68 -0
  156. package/components/Input/Input.styles.js.map +1 -0
  157. package/components/Input/InputLayout/InputLayout.js +4 -2
  158. package/components/Input/InputLayout/InputLayout.js.map +1 -1
  159. package/components/Input/InputLayout/InputLayout.styles.d.ts +18 -0
  160. package/components/Input/InputLayout/InputLayout.styles.js +59 -0
  161. package/components/Input/InputLayout/InputLayout.styles.js.map +1 -0
  162. package/components/Input/InputLayout/InputLayoutAside.js +4 -2
  163. package/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  164. package/components/Input/InputLayout/InputLayoutAsideCounter.js +11 -9
  165. package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -1
  166. package/components/Input/InputLayout/InputLayoutAsideIcon.js +5 -3
  167. package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  168. package/components/Input/InputLayout/InputLayoutAsideText.js +6 -4
  169. package/components/Input/InputLayout/InputLayoutAsideText.js.map +1 -1
  170. package/components/Kebab/Kebab.d.ts +3 -0
  171. package/components/Kebab/Kebab.js +6 -6
  172. package/components/Kebab/Kebab.js.map +1 -1
  173. package/components/Kebab/Kebab.styles.d.ts +11 -0
  174. package/components/Kebab/Kebab.styles.js +36 -0
  175. package/components/Kebab/Kebab.styles.js.map +1 -0
  176. package/components/Link/Link.d.ts +3 -0
  177. package/components/Link/Link.js +24 -25
  178. package/components/Link/Link.js.map +1 -1
  179. package/components/Link/Link.mixins.d.ts +2 -0
  180. package/components/Link/Link.mixins.js +7 -0
  181. package/components/Link/Link.mixins.js.map +1 -0
  182. package/components/Link/Link.styles.d.ts +24 -0
  183. package/components/Link/Link.styles.js +82 -0
  184. package/components/Link/Link.styles.js.map +1 -0
  185. package/components/Link/LinkIcon.js +8 -4
  186. package/components/Link/LinkIcon.js.map +1 -1
  187. package/components/Loader/Loader.d.ts +5 -0
  188. package/components/Loader/Loader.js +16 -8
  189. package/components/Loader/Loader.js.map +1 -1
  190. package/components/Loader/Loader.styles.d.ts +8 -0
  191. package/components/Loader/Loader.styles.js +27 -0
  192. package/components/Loader/Loader.styles.js.map +1 -0
  193. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +6 -4
  194. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  195. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.d.ts +6 -0
  196. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js +18 -0
  197. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js.map +1 -0
  198. package/components/MaskedInput/MaskedInput.styles.d.ts +7 -0
  199. package/components/MaskedInput/MaskedInput.styles.js +19 -0
  200. package/components/MaskedInput/MaskedInput.styles.js.map +1 -0
  201. package/components/MaskedInput/MaskedInputLegacy.js +8 -4
  202. package/components/MaskedInput/MaskedInputLegacy.js.map +1 -1
  203. package/components/MaskedInputV2/MaskedInputV2.js +8 -4
  204. package/components/MaskedInputV2/MaskedInputV2.js.map +1 -1
  205. package/components/MaskedInputV2/MaskedInputV2.styles.d.ts +7 -0
  206. package/components/MaskedInputV2/MaskedInputV2.styles.js +19 -0
  207. package/components/MaskedInputV2/MaskedInputV2.styles.js.map +1 -0
  208. package/components/MaskedInputV2/internal/MaskOverlay.js +13 -7
  209. package/components/MaskedInputV2/internal/MaskOverlay.js.map +1 -1
  210. package/components/MaskedInputV2/internal/MaskedCore.js +10 -6
  211. package/components/MaskedInputV2/internal/MaskedCore.js.map +1 -1
  212. package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +15 -0
  213. package/components/MaskedInputV2/internal/MaskedInternal.styles.js +34 -0
  214. package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +1 -0
  215. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.d.ts +1 -1
  216. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js +14 -6
  217. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js.map +1 -1
  218. package/components/MaskedInputV2/react-imask/input.d.ts +1 -1
  219. package/components/MenuFooter/MenuFooter.js +14 -10
  220. package/components/MenuFooter/MenuFooter.js.map +1 -1
  221. package/components/MenuFooter/MenuFooter.mixins.d.ts +2 -8
  222. package/components/MenuFooter/MenuFooter.mixins.js +4 -8
  223. package/components/MenuFooter/MenuFooter.mixins.js.map +1 -1
  224. package/components/MenuFooter/MenuFooter.styles.d.ts +10 -0
  225. package/components/MenuFooter/MenuFooter.styles.js +34 -0
  226. package/components/MenuFooter/MenuFooter.styles.js.map +1 -0
  227. package/components/MenuHeader/MenuHeader.js +13 -9
  228. package/components/MenuHeader/MenuHeader.js.map +1 -1
  229. package/components/MenuHeader/MenuHeader.mixins.d.ts +2 -8
  230. package/components/MenuHeader/MenuHeader.mixins.js +4 -8
  231. package/components/MenuHeader/MenuHeader.mixins.js.map +1 -1
  232. package/components/MenuHeader/MenuHeader.styles.d.ts +10 -0
  233. package/components/MenuHeader/MenuHeader.styles.js +34 -0
  234. package/components/MenuHeader/MenuHeader.styles.js.map +1 -0
  235. package/components/MenuItem/MenuItem.d.ts +3 -0
  236. package/components/MenuItem/MenuItem.js +30 -30
  237. package/components/MenuItem/MenuItem.js.map +1 -1
  238. package/components/MenuItem/MenuItem.mixins.d.ts +4 -12
  239. package/components/MenuItem/MenuItem.mixins.js +19 -12
  240. package/components/MenuItem/MenuItem.mixins.js.map +1 -1
  241. package/components/MenuItem/MenuItem.styles.d.ts +29 -0
  242. package/components/MenuItem/MenuItem.styles.js +88 -0
  243. package/components/MenuItem/MenuItem.styles.js.map +1 -0
  244. package/components/MenuSeparator/MenuSeparator.js +13 -7
  245. package/components/MenuSeparator/MenuSeparator.js.map +1 -1
  246. package/components/MenuSeparator/MenuSeparator.styles.d.ts +5 -0
  247. package/components/MenuSeparator/MenuSeparator.styles.js +18 -0
  248. package/components/MenuSeparator/MenuSeparator.styles.js.map +1 -0
  249. package/components/MiniModal/MiniModal.styles.d.ts +11 -0
  250. package/components/MiniModal/MiniModal.styles.js +37 -0
  251. package/components/MiniModal/MiniModal.styles.js.map +1 -0
  252. package/components/MiniModal/MiniModalBody.js +8 -2
  253. package/components/MiniModal/MiniModalBody.js.map +1 -1
  254. package/components/MiniModal/MiniModalFooter.js +8 -4
  255. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  256. package/components/MiniModal/MiniModalHeader.js +10 -6
  257. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  258. package/components/MiniModal/MiniModalIndent.js +7 -3
  259. package/components/MiniModal/MiniModalIndent.js.map +1 -1
  260. package/components/MiniModal/getMiniModalTheme.d.ts +2 -1
  261. package/components/MiniModal/getMiniModalTheme.js +2 -3
  262. package/components/MiniModal/getMiniModalTheme.js.map +1 -1
  263. package/components/Modal/Modal.d.ts +3 -0
  264. package/components/Modal/Modal.js +26 -26
  265. package/components/Modal/Modal.js.map +1 -1
  266. package/components/Modal/Modal.styles.d.ts +55 -0
  267. package/components/Modal/Modal.styles.js +167 -0
  268. package/components/Modal/Modal.styles.js.map +1 -0
  269. package/components/Modal/ModalBody.d.ts +3 -0
  270. package/components/Modal/ModalBody.js +12 -10
  271. package/components/Modal/ModalBody.js.map +1 -1
  272. package/components/Modal/ModalClose.js +19 -14
  273. package/components/Modal/ModalClose.js.map +1 -1
  274. package/components/Modal/ModalFooter.js +5 -3
  275. package/components/Modal/ModalFooter.js.map +1 -1
  276. package/components/Modal/ModalHeader.js +5 -3
  277. package/components/Modal/ModalHeader.js.map +1 -1
  278. package/components/Modal/ModalSeparator.js +9 -5
  279. package/components/Modal/ModalSeparator.js.map +1 -1
  280. package/components/Modal/getModalBodyTheme.d.ts +2 -1
  281. package/components/Modal/getModalBodyTheme.js +2 -3
  282. package/components/Modal/getModalBodyTheme.js.map +1 -1
  283. package/components/Modal/getModalTheme.d.ts +2 -1
  284. package/components/Modal/getModalTheme.js +2 -3
  285. package/components/Modal/getModalTheme.js.map +1 -1
  286. package/components/Paging/Paging.d.ts +4 -0
  287. package/components/Paging/Paging.js +44 -36
  288. package/components/Paging/Paging.js.map +1 -1
  289. package/components/Paging/Paging.styles.d.ts +32 -0
  290. package/components/Paging/Paging.styles.js +99 -0
  291. package/components/Paging/Paging.styles.js.map +1 -0
  292. package/components/PasswordInput/PasswordInput.d.ts +4 -0
  293. package/components/PasswordInput/PasswordInput.js +17 -10
  294. package/components/PasswordInput/PasswordInput.js.map +1 -1
  295. package/components/PasswordInput/PasswordInput.styles.d.ts +11 -0
  296. package/components/PasswordInput/PasswordInput.styles.js +36 -0
  297. package/components/PasswordInput/PasswordInput.styles.js.map +1 -0
  298. package/components/Radio/Radio.d.ts +4 -0
  299. package/components/Radio/Radio.js +38 -33
  300. package/components/Radio/Radio.js.map +1 -1
  301. package/components/Radio/Radio.mixins.d.ts +7 -39
  302. package/components/Radio/Radio.mixins.js +23 -37
  303. package/components/Radio/Radio.mixins.js.map +1 -1
  304. package/components/Radio/Radio.styles.d.ts +34 -0
  305. package/components/Radio/Radio.styles.js +100 -0
  306. package/components/Radio/Radio.styles.js.map +1 -0
  307. package/components/RadioGroup/RadioGroup.d.ts +3 -0
  308. package/components/RadioGroup/RadioGroup.js +10 -8
  309. package/components/RadioGroup/RadioGroup.js.map +1 -1
  310. package/components/RadioGroup/RadioGroup.styles.d.ts +6 -0
  311. package/components/RadioGroup/RadioGroup.styles.js +24 -0
  312. package/components/RadioGroup/RadioGroup.styles.js.map +1 -0
  313. package/components/ScrollContainer/ScrollBar.d.ts +6 -1
  314. package/components/ScrollContainer/ScrollBar.js +33 -25
  315. package/components/ScrollContainer/ScrollBar.js.map +1 -1
  316. package/components/ScrollContainer/ScrollContainer.d.ts +3 -0
  317. package/components/ScrollContainer/ScrollContainer.js +4 -4
  318. package/components/ScrollContainer/ScrollContainer.js.map +1 -1
  319. package/components/ScrollContainer/ScrollContainer.styles.d.ts +21 -0
  320. package/components/ScrollContainer/ScrollContainer.styles.js +52 -0
  321. package/components/ScrollContainer/ScrollContainer.styles.js.map +1 -0
  322. package/components/Select/Select.d.ts +4 -0
  323. package/components/Select/Select.js +24 -25
  324. package/components/Select/Select.js.map +1 -1
  325. package/components/Select/Select.styles.d.ts +18 -0
  326. package/components/Select/Select.styles.js +57 -0
  327. package/components/Select/Select.styles.js.map +1 -0
  328. package/components/Select/selectTheme.d.ts +3 -1
  329. package/components/Select/selectTheme.js +7 -8
  330. package/components/Select/selectTheme.js.map +1 -1
  331. package/components/SidePage/SidePage.d.ts +5 -0
  332. package/components/SidePage/SidePage.js +29 -21
  333. package/components/SidePage/SidePage.js.map +1 -1
  334. package/components/SidePage/SidePage.styles.d.ts +50 -0
  335. package/components/SidePage/SidePage.styles.js +158 -0
  336. package/components/SidePage/SidePage.styles.js.map +1 -0
  337. package/components/SidePage/SidePageBody.d.ts +3 -0
  338. package/components/SidePage/SidePageBody.js +11 -5
  339. package/components/SidePage/SidePageBody.js.map +1 -1
  340. package/components/SidePage/SidePageCloseButton.js +10 -7
  341. package/components/SidePage/SidePageCloseButton.js.map +1 -1
  342. package/components/SidePage/SidePageContainer.d.ts +4 -0
  343. package/components/SidePage/SidePageContainer.js +17 -10
  344. package/components/SidePage/SidePageContainer.js.map +1 -1
  345. package/components/SidePage/SidePageFooter.d.ts +6 -1
  346. package/components/SidePage/SidePageFooter.js +18 -10
  347. package/components/SidePage/SidePageFooter.js.map +1 -1
  348. package/components/SidePage/SidePageHeader.d.ts +3 -0
  349. package/components/SidePage/SidePageHeader.js +16 -14
  350. package/components/SidePage/SidePageHeader.js.map +1 -1
  351. package/components/Spinner/Spinner.d.ts +5 -0
  352. package/components/Spinner/Spinner.js +19 -9
  353. package/components/Spinner/Spinner.js.map +1 -1
  354. package/components/Spinner/Spinner.styles.d.ts +13 -0
  355. package/components/Spinner/Spinner.styles.js +43 -0
  356. package/components/Spinner/Spinner.styles.js.map +1 -0
  357. package/components/Sticky/Sticky.d.ts +4 -0
  358. package/components/Sticky/Sticky.js +10 -7
  359. package/components/Sticky/Sticky.js.map +1 -1
  360. package/components/Sticky/Sticky.styles.d.ts +7 -0
  361. package/components/Sticky/Sticky.styles.js +27 -0
  362. package/components/Sticky/Sticky.styles.js.map +1 -0
  363. package/components/Switcher/Switcher.d.ts +3 -0
  364. package/components/Switcher/Switcher.js +13 -11
  365. package/components/Switcher/Switcher.js.map +1 -1
  366. package/components/Switcher/Switcher.styles.d.ts +12 -0
  367. package/components/Switcher/Switcher.styles.js +39 -0
  368. package/components/Switcher/Switcher.styles.js.map +1 -0
  369. package/components/Switcher/switcherTheme.d.ts +2 -1
  370. package/components/Switcher/switcherTheme.js +2 -3
  371. package/components/Switcher/switcherTheme.js.map +1 -1
  372. package/components/Tabs/Indicator.d.ts +3 -0
  373. package/components/Tabs/Indicator.js +3 -3
  374. package/components/Tabs/Indicator.js.map +1 -1
  375. package/components/Tabs/Indicator.styles.d.ts +8 -0
  376. package/components/Tabs/Indicator.styles.js +27 -0
  377. package/components/Tabs/Indicator.styles.js.map +1 -0
  378. package/components/Tabs/Tab.d.ts +8 -1
  379. package/components/Tabs/Tab.js +33 -23
  380. package/components/Tabs/Tab.js.map +1 -1
  381. package/components/Tabs/Tab.styles.d.ts +33 -0
  382. package/components/Tabs/Tab.styles.js +105 -0
  383. package/components/Tabs/Tab.styles.js.map +1 -0
  384. package/components/Tabs/Tabs.d.ts +4 -0
  385. package/components/Tabs/Tabs.js +30 -25
  386. package/components/Tabs/Tabs.js.map +1 -1
  387. package/components/Tabs/Tabs.styles.d.ts +7 -0
  388. package/components/Tabs/Tabs.styles.js +26 -0
  389. package/components/Tabs/Tabs.styles.js.map +1 -0
  390. package/components/Textarea/Textarea.d.ts +4 -1
  391. package/components/Textarea/Textarea.js +19 -19
  392. package/components/Textarea/Textarea.js.map +1 -1
  393. package/components/Textarea/Textarea.mixins.d.ts +2 -8
  394. package/components/Textarea/Textarea.mixins.js +6 -8
  395. package/components/Textarea/Textarea.mixins.js.map +1 -1
  396. package/components/Textarea/Textarea.styles.d.ts +23 -0
  397. package/components/Textarea/Textarea.styles.js +73 -0
  398. package/components/Textarea/Textarea.styles.js.map +1 -0
  399. package/components/Textarea/TextareaCounter.js +9 -7
  400. package/components/Textarea/TextareaCounter.js.map +1 -1
  401. package/components/TimePicker/TimePicker.js +6 -4
  402. package/components/TimePicker/TimePicker.js.map +1 -1
  403. package/components/TimePicker/TimePicker.styles.d.ts +12 -0
  404. package/components/TimePicker/TimePicker.styles.js +39 -0
  405. package/components/TimePicker/TimePicker.styles.js.map +1 -0
  406. package/components/TimePicker/TimePickerItems.js +16 -12
  407. package/components/TimePicker/TimePickerItems.js.map +1 -1
  408. package/components/TimePicker/TimePickerPopup.js +4 -2
  409. package/components/TimePicker/TimePickerPopup.js.map +1 -1
  410. package/components/TimePicker/helpers/TimePicker.constants.d.ts +0 -1
  411. package/components/TimePicker/helpers/TimePicker.constants.js +0 -3
  412. package/components/TimePicker/helpers/TimePicker.constants.js.map +1 -1
  413. package/components/TimePicker/helpers/TimePicker.value.d.ts +1 -0
  414. package/components/TimePicker/helpers/TimePicker.value.js +5 -0
  415. package/components/TimePicker/helpers/TimePicker.value.js.map +1 -1
  416. package/components/Toast/Toast.d.ts +2 -0
  417. package/components/Toast/Toast.js +10 -7
  418. package/components/Toast/Toast.js.map +1 -1
  419. package/components/Toast/Toast.styles.d.ts +6 -0
  420. package/components/Toast/Toast.styles.js +24 -0
  421. package/components/Toast/Toast.styles.js.map +1 -0
  422. package/components/Toast/ToastView.d.ts +3 -0
  423. package/components/Toast/ToastView.js +11 -9
  424. package/components/Toast/ToastView.js.map +1 -1
  425. package/components/Toast/ToastView.styles.d.ts +18 -0
  426. package/components/Toast/ToastView.styles.js +67 -0
  427. package/components/Toast/ToastView.styles.js.map +1 -0
  428. package/components/Toggle/Toggle.classes.js +1 -1
  429. package/components/Toggle/Toggle.classes.js.map +1 -1
  430. package/components/Toggle/Toggle.d.ts +6 -1
  431. package/components/Toggle/Toggle.js +60 -52
  432. package/components/Toggle/Toggle.js.map +1 -1
  433. package/components/Toggle/Toggle.mixins.d.ts +8 -0
  434. package/components/Toggle/Toggle.mixins.js +32 -0
  435. package/components/Toggle/Toggle.mixins.js.map +1 -0
  436. package/components/Toggle/Toggle.styles.d.ts +49 -0
  437. package/components/Toggle/Toggle.styles.js +147 -0
  438. package/components/Toggle/Toggle.styles.js.map +1 -0
  439. package/components/Token/Token.d.ts +5 -0
  440. package/components/Token/Token.js +15 -4
  441. package/components/Token/Token.js.map +1 -1
  442. package/components/Token/Token.mixins.d.ts +1 -6
  443. package/components/Token/Token.mixins.js +3 -6
  444. package/components/Token/Token.mixins.js.map +1 -1
  445. package/components/Token/Token.styles.d.ts +23 -0
  446. package/components/Token/Token.styles.js +67 -0
  447. package/components/Token/Token.styles.js.map +1 -0
  448. package/components/Token/TokenView.js +12 -8
  449. package/components/Token/TokenView.js.map +1 -1
  450. package/components/TokenInput/TextWidthHelper.d.ts +3 -0
  451. package/components/TokenInput/TextWidthHelper.js +17 -7
  452. package/components/TokenInput/TextWidthHelper.js.map +1 -1
  453. package/components/TokenInput/TokenInput.d.ts +3 -0
  454. package/components/TokenInput/TokenInput.js +23 -22
  455. package/components/TokenInput/TokenInput.js.map +1 -1
  456. package/components/TokenInput/TokenInput.mixins.d.ts +2 -8
  457. package/components/TokenInput/TokenInput.mixins.js +6 -8
  458. package/components/TokenInput/TokenInput.mixins.js.map +1 -1
  459. package/components/TokenInput/TokenInput.styles.d.ts +22 -0
  460. package/components/TokenInput/TokenInput.styles.js +71 -0
  461. package/components/TokenInput/TokenInput.styles.js.map +1 -0
  462. package/components/TokenInput/TokenInputMenu.js +3 -5
  463. package/components/TokenInput/TokenInputMenu.js.map +1 -1
  464. package/components/Tooltip/Tooltip.d.ts +3 -0
  465. package/components/Tooltip/Tooltip.js +41 -28
  466. package/components/Tooltip/Tooltip.js.map +1 -1
  467. package/components/Tooltip/Tooltip.styles.d.ts +11 -0
  468. package/components/Tooltip/Tooltip.styles.js +36 -0
  469. package/components/Tooltip/Tooltip.styles.js.map +1 -0
  470. package/components/TooltipMenu/TooltipMenu.js +6 -10
  471. package/components/TooltipMenu/TooltipMenu.js.map +1 -1
  472. package/index.d.ts +0 -1
  473. package/index.js +0 -1
  474. package/index.js.map +1 -1
  475. package/internal/ClearCrossIcon/ClearCrossIcon.js +11 -8
  476. package/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
  477. package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +12 -0
  478. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js +36 -0
  479. package/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -0
  480. package/internal/CloseButtonIcon/CloseButtonIcon.js +13 -15
  481. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  482. package/internal/CloseButtonIcon/CloseButtonIcon.styles.d.ts +8 -0
  483. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js +24 -0
  484. package/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -0
  485. package/internal/CommonWrapper/CommonWrapper.d.ts +2 -6
  486. package/internal/CommonWrapper/CommonWrapper.js +7 -29
  487. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  488. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -0
  489. package/internal/CustomComboBox/ComboBoxView.js +9 -6
  490. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  491. package/internal/CustomComboBox/CustomComboBox.styles.d.ts +4 -0
  492. package/internal/CustomComboBox/CustomComboBox.styles.js +18 -0
  493. package/internal/CustomComboBox/CustomComboBox.styles.js.map +1 -0
  494. package/internal/CustomComboBox/getComboBoxTheme.d.ts +2 -1
  495. package/internal/CustomComboBox/getComboBoxTheme.js +2 -3
  496. package/internal/CustomComboBox/getComboBoxTheme.js.map +1 -1
  497. package/internal/DateSelect/DateSelect.d.ts +3 -0
  498. package/internal/DateSelect/DateSelect.js +7 -5
  499. package/internal/DateSelect/DateSelect.js.map +1 -1
  500. package/internal/DateSelect/DateSelect.styles.d.ts +9 -0
  501. package/internal/DateSelect/DateSelect.styles.js +24 -0
  502. package/internal/DateSelect/DateSelect.styles.js.map +1 -0
  503. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +2 -1
  504. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +13 -8
  505. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  506. package/internal/InputLikeText/InputLikeText.d.ts +4 -0
  507. package/internal/InputLikeText/InputLikeText.js +29 -28
  508. package/internal/InputLikeText/InputLikeText.js.map +1 -1
  509. package/internal/InputLikeText/InputLikeText.styles.d.ts +8 -0
  510. package/internal/InputLikeText/InputLikeText.styles.js +30 -0
  511. package/internal/InputLikeText/InputLikeText.styles.js.map +1 -0
  512. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +5 -0
  513. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +33 -33
  514. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  515. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +3 -0
  516. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +15 -0
  517. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +1 -0
  518. package/internal/MaskCharLowLine/MaskCharLowLine.js +4 -2
  519. package/internal/MaskCharLowLine/MaskCharLowLine.js.map +1 -1
  520. package/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +3 -0
  521. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js +15 -0
  522. package/internal/MaskCharLowLine/MaskCharLowLine.styles.js.map +1 -0
  523. package/internal/Menu/Menu.d.ts +3 -0
  524. package/internal/Menu/Menu.js +24 -28
  525. package/internal/Menu/Menu.js.map +1 -1
  526. package/internal/Menu/Menu.styles.d.ts +16 -0
  527. package/internal/Menu/Menu.styles.js +51 -0
  528. package/internal/Menu/Menu.styles.js.map +1 -0
  529. package/internal/MenuMessage/MenuMessage.js +12 -10
  530. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  531. package/internal/MenuMessage/MenuMessage.styles.d.ts +11 -0
  532. package/internal/MenuMessage/MenuMessage.styles.js +41 -0
  533. package/internal/MenuMessage/MenuMessage.styles.js.map +1 -0
  534. package/internal/MobilePopup/MobilePopup.d.ts +3 -0
  535. package/internal/MobilePopup/MobilePopup.js +19 -17
  536. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  537. package/internal/MobilePopup/MobilePopup.styles.d.ts +17 -0
  538. package/internal/MobilePopup/MobilePopup.styles.js +57 -0
  539. package/internal/MobilePopup/MobilePopup.styles.js.map +1 -0
  540. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +2 -0
  541. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +16 -5
  542. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  543. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +7 -0
  544. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +25 -0
  545. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -0
  546. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +3 -0
  547. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +28 -18
  548. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  549. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +14 -0
  550. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +47 -0
  551. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -0
  552. package/internal/NativeDateInput/NativeDateInput.d.ts +2 -0
  553. package/internal/NativeDateInput/NativeDateInput.js +13 -2
  554. package/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  555. package/internal/NativeDateInput/NativeDateInput.styles.d.ts +3 -0
  556. package/internal/NativeDateInput/NativeDateInput.styles.js +15 -0
  557. package/internal/NativeDateInput/NativeDateInput.styles.js.map +1 -0
  558. package/internal/NativeTimeInput/NativeTimeInput.js +4 -2
  559. package/internal/NativeTimeInput/NativeTimeInput.js.map +1 -1
  560. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +3 -0
  561. package/internal/NativeTimeInput/NativeTimeInput.styles.js +15 -0
  562. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +1 -0
  563. package/internal/Popup/Popup.d.ts +3 -0
  564. package/internal/Popup/Popup.js +20 -22
  565. package/internal/Popup/Popup.js.map +1 -1
  566. package/internal/Popup/Popup.styles.d.ts +22 -0
  567. package/internal/Popup/Popup.styles.js +69 -0
  568. package/internal/Popup/Popup.styles.js.map +1 -0
  569. package/internal/Popup/PopupPin.d.ts +3 -0
  570. package/internal/Popup/PopupPin.js +8 -8
  571. package/internal/Popup/PopupPin.js.map +1 -1
  572. package/internal/Popup/PopupPin.styles.d.ts +9 -0
  573. package/internal/Popup/PopupPin.styles.js +33 -0
  574. package/internal/Popup/PopupPin.styles.js.map +1 -0
  575. package/internal/PopupMenu/PopupMenu.d.ts +2 -0
  576. package/internal/PopupMenu/PopupMenu.js +8 -9
  577. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  578. package/internal/PopupMenu/PopupMenu.styles.d.ts +4 -0
  579. package/internal/PopupMenu/PopupMenu.styles.js +18 -0
  580. package/internal/PopupMenu/PopupMenu.styles.js.map +1 -0
  581. package/internal/RenderContainer/RenderContainer.d.ts +0 -2
  582. package/internal/RenderContainer/RenderContainer.js +3 -38
  583. package/internal/RenderContainer/RenderContainer.js.map +1 -1
  584. package/internal/RenderContainer/RenderInnerContainer.js +3 -6
  585. package/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  586. package/internal/ResizeDetector/ResizeDetector.d.ts +3 -0
  587. package/internal/ResizeDetector/ResizeDetector.js +18 -8
  588. package/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  589. package/internal/ResizeDetector/ResizeDetector.styles.d.ts +7 -0
  590. package/internal/ResizeDetector/ResizeDetector.styles.js +27 -0
  591. package/internal/ResizeDetector/ResizeDetector.styles.js.map +1 -0
  592. package/internal/SpinnerIcon/SpinnerIcon.js +7 -5
  593. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  594. package/internal/SpinnerIcon/SpinnerIcon.styles.d.ts +6 -0
  595. package/internal/SpinnerIcon/SpinnerIcon.styles.js +24 -0
  596. package/internal/SpinnerIcon/SpinnerIcon.styles.js.map +1 -0
  597. package/internal/TextWidthHelper/TextWidthHelper.d.ts +2 -0
  598. package/internal/TextWidthHelper/TextWidthHelper.js +14 -3
  599. package/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  600. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +4 -0
  601. package/internal/TextWidthHelper/TextWidthHelper.styles.js +18 -0
  602. package/internal/TextWidthHelper/TextWidthHelper.styles.js.map +1 -0
  603. package/internal/TimeInput/TimeFragments.js +26 -22
  604. package/internal/TimeInput/TimeFragments.js.map +1 -1
  605. package/internal/TimeInput/TimeFragments.styles.d.ts +32 -0
  606. package/internal/TimeInput/TimeFragments.styles.js +78 -0
  607. package/internal/TimeInput/TimeFragments.styles.js.map +1 -0
  608. package/internal/TimeInput/TimeInput.js +8 -6
  609. package/internal/TimeInput/TimeInput.js.map +1 -1
  610. package/internal/TimeInput/TimeInput.styles.d.ts +7 -0
  611. package/internal/TimeInput/TimeInput.styles.js +24 -0
  612. package/internal/TimeInput/TimeInput.styles.js.map +1 -0
  613. package/internal/icons2022/BaseIcon.js +4 -2
  614. package/internal/icons2022/BaseIcon.js.map +1 -1
  615. package/internal/icons2022/BaseIcon.styles.d.ts +3 -0
  616. package/internal/icons2022/BaseIcon.styles.js +16 -0
  617. package/internal/icons2022/BaseIcon.styles.js.map +1 -0
  618. package/internal/icons2022/LoadingIcon.js +7 -3
  619. package/internal/icons2022/LoadingIcon.js.map +1 -1
  620. package/internal/themes/BasicTheme.d.ts +5 -5
  621. package/internal/themes/BasicTheme.js +12 -42
  622. package/internal/themes/BasicTheme.js.map +1 -1
  623. package/internal/themes/DarkTheme6_0.js +2 -0
  624. package/internal/themes/DarkTheme6_0.js.map +1 -1
  625. package/lib/Upgrades.d.ts +6 -0
  626. package/lib/Upgrades.js +34 -0
  627. package/lib/Upgrades.js.map +1 -0
  628. package/lib/renderEnvironment/RenderEnvironmentContext.d.ts +1 -1
  629. package/lib/renderEnvironment/RenderEnvironmentContext.js +14 -23
  630. package/lib/renderEnvironment/RenderEnvironmentContext.js.map +1 -1
  631. package/lib/renderEnvironment/RenderEnvironmentDecorator.js.map +1 -1
  632. package/lib/styles/Mixins.d.ts +1 -29
  633. package/lib/styles/Mixins.js +4 -33
  634. package/lib/styles/Mixins.js.map +1 -1
  635. package/lib/styles/UiFont.d.ts +3 -0
  636. package/lib/styles/UiFont.js +18 -0
  637. package/lib/styles/UiFont.js.map +1 -0
  638. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -6
  639. package/lib/styles/getLabGrotesqueBaselineCompensation.js +6 -23
  640. package/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -1
  641. package/lib/theming/AnimationKeyframes.d.ts +7 -0
  642. package/lib/theming/AnimationKeyframes.js +24 -0
  643. package/lib/theming/AnimationKeyframes.js.map +1 -0
  644. package/lib/theming/Emotion.d.ts +14 -5
  645. package/lib/theming/Emotion.js +68 -12
  646. package/lib/theming/Emotion.js.map +1 -1
  647. package/lib/theming/ThemeFactory.d.ts +10 -1
  648. package/lib/theming/ThemeFactory.js +29 -1
  649. package/lib/theming/ThemeFactory.js.map +1 -1
  650. package/package.json +6 -21
  651. package/typings/stylis-plugin-extra-scope.d.ts +3 -0
  652. package/components/Autocomplete/Autocomplete.css.d.ts +0 -6
  653. package/components/Autocomplete/Autocomplete.css.js +0 -4
  654. package/components/Autocomplete/Autocomplete.css.js.map +0 -1
  655. package/components/Button/Button.css.d.ts +0 -166
  656. package/components/Button/Button.css.js +0 -77
  657. package/components/Button/Button.css.js.map +0 -1
  658. package/components/Button/ButtonIcon.css.d.ts +0 -28
  659. package/components/Button/ButtonIcon.css.js +0 -15
  660. package/components/Button/ButtonIcon.css.js.map +0 -1
  661. package/components/Calendar/Calendar.css.d.ts +0 -8
  662. package/components/Calendar/Calendar.css.js +0 -5
  663. package/components/Calendar/Calendar.css.js.map +0 -1
  664. package/components/Calendar/DayCellView.css.d.ts +0 -14
  665. package/components/Calendar/DayCellView.css.js +0 -8
  666. package/components/Calendar/DayCellView.css.js.map +0 -1
  667. package/components/Calendar/MonthView.css.d.ts +0 -20
  668. package/components/Calendar/MonthView.css.js +0 -11
  669. package/components/Calendar/MonthView.css.js.map +0 -1
  670. package/components/Center/Center.css.d.ts +0 -12
  671. package/components/Center/Center.css.js +0 -7
  672. package/components/Center/Center.css.js.map +0 -1
  673. package/components/Checkbox/Checkbox.css.d.ts +0 -62
  674. package/components/Checkbox/Checkbox.css.js +0 -32
  675. package/components/Checkbox/Checkbox.css.js.map +0 -1
  676. package/components/DateInput/DateFragmentsView.css.d.ts +0 -10
  677. package/components/DateInput/DateFragmentsView.css.js +0 -6
  678. package/components/DateInput/DateFragmentsView.css.js.map +0 -1
  679. package/components/DateInput/DateInput.css.d.ts +0 -16
  680. package/components/DateInput/DateInput.css.js +0 -9
  681. package/components/DateInput/DateInput.css.js.map +0 -1
  682. package/components/DatePicker/DatePicker.css.d.ts +0 -6
  683. package/components/DatePicker/DatePicker.css.js +0 -4
  684. package/components/DatePicker/DatePicker.css.js.map +0 -1
  685. package/components/DatePicker/MobilePicker.css.d.ts +0 -4
  686. package/components/DatePicker/MobilePicker.css.js +0 -3
  687. package/components/DatePicker/MobilePicker.css.js.map +0 -1
  688. package/components/DateRangePicker/DateRangePicker.css.d.ts +0 -34
  689. package/components/DateRangePicker/DateRangePicker.css.js +0 -18
  690. package/components/DateRangePicker/DateRangePicker.css.js.map +0 -1
  691. package/components/FileUploader/FileUploader.css.d.ts +0 -133
  692. package/components/FileUploader/FileUploader.css.js +0 -65
  693. package/components/FileUploader/FileUploader.css.js.map +0 -1
  694. package/components/FileUploader/FileUploaderFile.css.d.ts +0 -111
  695. package/components/FileUploader/FileUploaderFile.css.js +0 -56
  696. package/components/FileUploader/FileUploaderFile.css.js.map +0 -1
  697. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.d.ts +0 -60
  698. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js +0 -31
  699. package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.css.js.map +0 -1
  700. package/components/GlobalLoader/GlobalLoaderView.css.d.ts +0 -26
  701. package/components/GlobalLoader/GlobalLoaderView.css.js +0 -14
  702. package/components/GlobalLoader/GlobalLoaderView.css.js.map +0 -1
  703. package/components/Group/Group.css.d.ts +0 -14
  704. package/components/Group/Group.css.js +0 -8
  705. package/components/Group/Group.css.js.map +0 -1
  706. package/components/Hint/Hint.css.d.ts +0 -6
  707. package/components/Hint/Hint.css.js +0 -4
  708. package/components/Hint/Hint.css.js.map +0 -1
  709. package/components/Input/Input.css.d.ts +0 -73
  710. package/components/Input/Input.css.js +0 -22
  711. package/components/Input/Input.css.js.map +0 -1
  712. package/components/Input/InputLayout/InputLayout.css.d.ts +0 -32
  713. package/components/Input/InputLayout/InputLayout.css.js +0 -18
  714. package/components/Input/InputLayout/InputLayout.css.js.map +0 -1
  715. package/components/Kebab/Kebab.css.d.ts +0 -18
  716. package/components/Kebab/Kebab.css.js +0 -10
  717. package/components/Kebab/Kebab.css.js.map +0 -1
  718. package/components/Link/Link.css.d.ts +0 -43
  719. package/components/Link/Link.css.js +0 -22
  720. package/components/Link/Link.css.js.map +0 -1
  721. package/components/Loader/Loader.css.d.ts +0 -12
  722. package/components/Loader/Loader.css.js +0 -7
  723. package/components/Loader/Loader.css.js.map +0 -1
  724. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.d.ts +0 -7
  725. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js +0 -4
  726. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.css.js.map +0 -1
  727. package/components/MaskedInput/MaskedInput.css.d.ts +0 -7
  728. package/components/MaskedInput/MaskedInput.css.js +0 -5
  729. package/components/MaskedInput/MaskedInput.css.js.map +0 -1
  730. package/components/MaskedInputV2/MaskedInputV2.css.d.ts +0 -7
  731. package/components/MaskedInputV2/MaskedInputV2.css.js +0 -5
  732. package/components/MaskedInputV2/MaskedInputV2.css.js.map +0 -1
  733. package/components/MaskedInputV2/internal/MaskedInternal.css.d.ts +0 -19
  734. package/components/MaskedInputV2/internal/MaskedInternal.css.js +0 -8
  735. package/components/MaskedInputV2/internal/MaskedInternal.css.js.map +0 -1
  736. package/components/MenuFooter/MenuFooter.css.d.ts +0 -16
  737. package/components/MenuFooter/MenuFooter.css.js +0 -9
  738. package/components/MenuFooter/MenuFooter.css.js.map +0 -1
  739. package/components/MenuHeader/MenuHeader.css.d.ts +0 -16
  740. package/components/MenuHeader/MenuHeader.css.js +0 -9
  741. package/components/MenuHeader/MenuHeader.css.js.map +0 -1
  742. package/components/MenuItem/MenuItem.css.d.ts +0 -50
  743. package/components/MenuItem/MenuItem.css.js +0 -26
  744. package/components/MenuItem/MenuItem.css.js.map +0 -1
  745. package/components/MenuSeparator/MenuSeparator.css.d.ts +0 -6
  746. package/components/MenuSeparator/MenuSeparator.css.js +0 -4
  747. package/components/MenuSeparator/MenuSeparator.css.js.map +0 -1
  748. package/components/MiniModal/MiniModal.css.d.ts +0 -17
  749. package/components/MiniModal/MiniModal.css.js +0 -10
  750. package/components/MiniModal/MiniModal.css.js.map +0 -1
  751. package/components/Modal/Modal.css.d.ts +0 -102
  752. package/components/Modal/Modal.css.js +0 -51
  753. package/components/Modal/Modal.css.js.map +0 -1
  754. package/components/Paging/Paging.css.d.ts +0 -60
  755. package/components/Paging/Paging.css.js +0 -31
  756. package/components/Paging/Paging.css.js.map +0 -1
  757. package/components/PasswordInput/PasswordInput.css.d.ts +0 -18
  758. package/components/PasswordInput/PasswordInput.css.js +0 -10
  759. package/components/PasswordInput/PasswordInput.css.js.map +0 -1
  760. package/components/Radio/Radio.css.d.ts +0 -61
  761. package/components/Radio/Radio.css.js +0 -31
  762. package/components/Radio/Radio.css.js.map +0 -1
  763. package/components/RadioGroup/RadioGroup.css.d.ts +0 -10
  764. package/components/RadioGroup/RadioGroup.css.js +0 -6
  765. package/components/RadioGroup/RadioGroup.css.js.map +0 -1
  766. package/components/ScrollContainer/ScrollContainer.css.d.ts +0 -31
  767. package/components/ScrollContainer/ScrollContainer.css.js +0 -14
  768. package/components/ScrollContainer/ScrollContainer.css.js.map +0 -1
  769. package/components/Select/Select.css.d.ts +0 -31
  770. package/components/Select/Select.css.js +0 -16
  771. package/components/Select/Select.css.js.map +0 -1
  772. package/components/SidePage/SidePage.css.d.ts +0 -96
  773. package/components/SidePage/SidePage.css.js +0 -49
  774. package/components/SidePage/SidePage.css.js.map +0 -1
  775. package/components/Spinner/Spinner.css.d.ts +0 -22
  776. package/components/Spinner/Spinner.css.js +0 -12
  777. package/components/Spinner/Spinner.css.js.map +0 -1
  778. package/components/Sticky/Sticky.css.d.ts +0 -12
  779. package/components/Sticky/Sticky.css.js +0 -7
  780. package/components/Sticky/Sticky.css.js.map +0 -1
  781. package/components/Switcher/Switcher.css.d.ts +0 -20
  782. package/components/Switcher/Switcher.css.js +0 -11
  783. package/components/Switcher/Switcher.css.js.map +0 -1
  784. package/components/Tabs/Indicator.css.d.ts +0 -12
  785. package/components/Tabs/Indicator.css.js +0 -7
  786. package/components/Tabs/Indicator.css.js.map +0 -1
  787. package/components/Tabs/Tab.css.d.ts +0 -55
  788. package/components/Tabs/Tab.css.js +0 -28
  789. package/components/Tabs/Tab.css.js.map +0 -1
  790. package/components/Tabs/Tabs.css.d.ts +0 -10
  791. package/components/Tabs/Tabs.css.js +0 -6
  792. package/components/Tabs/Tabs.css.js.map +0 -1
  793. package/components/Textarea/Textarea.css.d.ts +0 -42
  794. package/components/Textarea/Textarea.css.js +0 -22
  795. package/components/Textarea/Textarea.css.js.map +0 -1
  796. package/components/ThemeContainer/ThemeContainer.d.ts +0 -16
  797. package/components/ThemeContainer/ThemeContainer.js +0 -46
  798. package/components/ThemeContainer/ThemeContainer.js.map +0 -1
  799. package/components/ThemeContainer/index.d.ts +0 -1
  800. package/components/ThemeContainer/index.js +0 -2
  801. package/components/ThemeContainer/index.js.map +0 -1
  802. package/components/TimePicker/TimePicker.css.d.ts +0 -19
  803. package/components/TimePicker/TimePicker.css.js +0 -10
  804. package/components/TimePicker/TimePicker.css.js.map +0 -1
  805. package/components/Toast/Toast.css.d.ts +0 -10
  806. package/components/Toast/Toast.css.js +0 -6
  807. package/components/Toast/Toast.css.js.map +0 -1
  808. package/components/Toast/ToastView.css.d.ts +0 -31
  809. package/components/Toast/ToastView.css.js +0 -16
  810. package/components/Toast/ToastView.css.js.map +0 -1
  811. package/components/Toggle/Toggle.css.d.ts +0 -93
  812. package/components/Toggle/Toggle.css.js +0 -48
  813. package/components/Toggle/Toggle.css.js.map +0 -1
  814. package/components/Token/Token.css.d.ts +0 -39
  815. package/components/Token/Token.css.js +0 -20
  816. package/components/Token/Token.css.js.map +0 -1
  817. package/components/TokenInput/TokenInput.css.d.ts +0 -40
  818. package/components/TokenInput/TokenInput.css.js +0 -22
  819. package/components/TokenInput/TokenInput.css.js.map +0 -1
  820. package/components/Tooltip/Tooltip.css.d.ts +0 -18
  821. package/components/Tooltip/Tooltip.css.js +0 -10
  822. package/components/Tooltip/Tooltip.css.js.map +0 -1
  823. package/internal/ClearCrossIcon/ClearCrossIcon.css.d.ts +0 -18
  824. package/internal/ClearCrossIcon/ClearCrossIcon.css.js +0 -10
  825. package/internal/ClearCrossIcon/ClearCrossIcon.css.js.map +0 -1
  826. package/internal/CloseButtonIcon/CloseButtonIcon.css.d.ts +0 -14
  827. package/internal/CloseButtonIcon/CloseButtonIcon.css.js +0 -8
  828. package/internal/CloseButtonIcon/CloseButtonIcon.css.js.map +0 -1
  829. package/internal/CustomComboBox/CustomComboBox.css.d.ts +0 -6
  830. package/internal/CustomComboBox/CustomComboBox.css.js +0 -4
  831. package/internal/CustomComboBox/CustomComboBox.css.js.map +0 -1
  832. package/internal/DateSelect/DateSelect.css.d.ts +0 -11
  833. package/internal/DateSelect/DateSelect.css.js +0 -6
  834. package/internal/DateSelect/DateSelect.css.js.map +0 -1
  835. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.d.ts +0 -4
  836. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js +0 -3
  837. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.css.js.map +0 -1
  838. package/internal/InputLikeText/InputLikeText.css.d.ts +0 -8
  839. package/internal/InputLikeText/InputLikeText.css.js +0 -5
  840. package/internal/InputLikeText/InputLikeText.css.js.map +0 -1
  841. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.d.ts +0 -6
  842. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js +0 -5
  843. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.css.js.map +0 -1
  844. package/internal/MaskCharLowLine/MaskCharLowLine.css.d.ts +0 -4
  845. package/internal/MaskCharLowLine/MaskCharLowLine.css.js +0 -3
  846. package/internal/MaskCharLowLine/MaskCharLowLine.css.js.map +0 -1
  847. package/internal/Menu/Menu.css.d.ts +0 -28
  848. package/internal/Menu/Menu.css.js +0 -15
  849. package/internal/Menu/Menu.css.js.map +0 -1
  850. package/internal/MenuMessage/MenuMessage.css.d.ts +0 -18
  851. package/internal/MenuMessage/MenuMessage.css.js +0 -10
  852. package/internal/MenuMessage/MenuMessage.css.js.map +0 -1
  853. package/internal/MobilePopup/MobilePopup.css.d.ts +0 -30
  854. package/internal/MobilePopup/MobilePopup.css.js +0 -16
  855. package/internal/MobilePopup/MobilePopup.css.js.map +0 -1
  856. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.d.ts +0 -10
  857. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js +0 -6
  858. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.css.js.map +0 -1
  859. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.d.ts +0 -24
  860. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js +0 -13
  861. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.css.js.map +0 -1
  862. package/internal/NativeDateInput/NativeDateInput.css.d.ts +0 -4
  863. package/internal/NativeDateInput/NativeDateInput.css.js +0 -3
  864. package/internal/NativeDateInput/NativeDateInput.css.js.map +0 -1
  865. package/internal/NativeTimeInput/NativeTimeInput.css.d.ts +0 -4
  866. package/internal/NativeTimeInput/NativeTimeInput.css.js +0 -3
  867. package/internal/NativeTimeInput/NativeTimeInput.css.js.map +0 -1
  868. package/internal/Popup/Popup.css.d.ts +0 -35
  869. package/internal/Popup/Popup.css.js +0 -16
  870. package/internal/Popup/Popup.css.js.map +0 -1
  871. package/internal/Popup/PopupPin.css.d.ts +0 -16
  872. package/internal/Popup/PopupPin.css.js +0 -9
  873. package/internal/Popup/PopupPin.css.js.map +0 -1
  874. package/internal/PopupMenu/PopupMenu.css.d.ts +0 -6
  875. package/internal/PopupMenu/PopupMenu.css.js +0 -4
  876. package/internal/PopupMenu/PopupMenu.css.js.map +0 -1
  877. package/internal/ResizeDetector/ResizeDetector.css.d.ts +0 -12
  878. package/internal/ResizeDetector/ResizeDetector.css.js +0 -7
  879. package/internal/ResizeDetector/ResizeDetector.css.js.map +0 -1
  880. package/internal/SpinnerIcon/SpinnerIcon.css.d.ts +0 -10
  881. package/internal/SpinnerIcon/SpinnerIcon.css.js +0 -6
  882. package/internal/SpinnerIcon/SpinnerIcon.css.js.map +0 -1
  883. package/internal/TextWidthHelper/TextWidthHelper.css.d.ts +0 -6
  884. package/internal/TextWidthHelper/TextWidthHelper.css.js +0 -4
  885. package/internal/TextWidthHelper/TextWidthHelper.css.js.map +0 -1
  886. package/internal/TimeInput/TimeFragments.css.d.ts +0 -47
  887. package/internal/TimeInput/TimeFragments.css.js +0 -18
  888. package/internal/TimeInput/TimeFragments.css.js.map +0 -1
  889. package/internal/TimeInput/TimeInput.css.d.ts +0 -10
  890. package/internal/TimeInput/TimeInput.css.js +0 -6
  891. package/internal/TimeInput/TimeInput.css.js.map +0 -1
  892. package/internal/icons2022/BaseIcon.css.d.ts +0 -4
  893. package/internal/icons2022/BaseIcon.css.js +0 -3
  894. package/internal/icons2022/BaseIcon.css.js.map +0 -1
  895. package/lib/cx.d.ts +0 -2
  896. package/lib/cx.js +0 -23
  897. package/lib/cx.js.map +0 -1
  898. package/lib/prefix.d.ts +0 -2
  899. package/lib/prefix.js +0 -22
  900. package/lib/prefix.js.map +0 -1
  901. package/lib/styles/LabGrotesqueBaseline.css.d.ts +0 -1
  902. package/lib/styles/LabGrotesqueBaseline.css.js +0 -0
  903. package/lib/styles/LabGrotesqueBaseline.css.js.map +0 -1
  904. package/lib/styles/UiFont.css.d.ts +0 -1
  905. package/lib/styles/UiFont.css.js +0 -2
  906. package/lib/styles/UiFont.css.js.map +0 -1
  907. package/lib/theming/memoizeTheme.d.ts +0 -11
  908. package/lib/theming/memoizeTheme.js +0 -37
  909. package/lib/theming/memoizeTheme.js.map +0 -1
  910. package/lib/theming/themeVars.d.ts +0 -37
  911. package/lib/theming/themeVars.js +0 -136
  912. package/lib/theming/themeVars.js.map +0 -1
  913. package/react-ui.css +0 -6096
  914. package/theme-loader.js +0 -51
@@ -1 +1 @@
1
- {"version":3,"file":"MaskedInputLegacy.js","sourceRoot":"","sources":["MaskedInputLegacy.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { IMaskInputProps } from '@skbkontur/react-imask';\nimport React, { useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport type { Ref } from 'react';\n\nimport { cx } from '../../lib/cx.js';\nimport { isKeyBackspace, isKeyDelete } from '../../lib/events/keyboard/identifiers.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport type { Input } from '../Input/index.js';\nimport { Input as InputComponent } from '../Input/index.js';\nimport { ColorableInputElement } from './ColorableInputElement/index.js';\nimport { FixedIMaskInput } from './FixedIMaskInput.js';\nimport { styles, globalClasses } from './MaskedInput.css.js';\nimport { getDefinitions, getMaskChar } from './MaskedInput.helpers.js';\nimport type { MaskedInputProps } from './MaskedInput.js';\n\nexport const MaskedInputLegacy = forwardRefAndName(\n 'MaskedInputLegacy',\n function MaskedInputLegacy(props: MaskedInputProps, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = {},\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onChange,\n onBeforePasteValue,\n element,\n className,\n // @ts-expect-error: могут передавать игнорируя ошибку\n maxLength,\n ...inputProps\n } = props;\n\n const inputRef = useRef<Input>(null);\n\n const [focused, setFocused] = useState(false);\n const prevValue = useRef<string>(props.value || String(props.defaultValue) || '');\n const prevSelectionStart = useRef<number | null>(null);\n\n useImperativeHandle<typeof inputRef.current, typeof inputRef.current>(\n ref,\n () =>\n inputRef.current &&\n Object.assign(inputRef.current, {\n selectAll: () => {\n inputRef.current?.focus();\n inputRef.current?.delaySelectAll();\n },\n }),\n [],\n );\n\n useEffect(() => {\n // Для корректной работы onUnexpectedInput надо знать предыдущий value,\n // но imask при монтировании не вызывает onAccept, если value невалиден или laze=false.\n // Поэтому актуальный value при монтировании надо получать вручную\n if (inputRef.current?.input) {\n prevValue.current = inputRef.current.input.value;\n prevSelectionStart.current = inputRef.current.input.selectionStart;\n }\n }, []);\n\n const imaskProps = getCompatibleIMaskProps();\n\n return (\n <InputComponent\n ref={inputRef}\n {...inputProps}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n className={cx(globalClasses.root, className, styles.root)}\n element={\n colored ? (\n <ColorableInputElement showOnFocus={false} alwaysShowMask={alwaysShowMask}>\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n </ColorableInputElement>\n ) : (\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n )\n }\n />\n );\n\n function handlePaste(event: React.ClipboardEvent<HTMLInputElement>) {\n if (onBeforePasteValue && onValueChange) {\n event.preventDefault();\n onValueChange?.(onBeforePasteValue(event.clipboardData?.getData('text') ?? ''));\n }\n\n props.onPaste?.(event);\n }\n\n function getCompatibleIMaskProps(): IMaskInputProps<HTMLInputElement> {\n return {\n mask: mask.replace(/0/g, '{\\\\0}') as any,\n placeholderChar: getMaskChar(maskChar),\n definitions: getDefinitions(formatChars),\n // FIXME: Должно быть eager=true, но в imask ломается удаление по delete\n eager: 'append',\n overwrite: 'shift',\n lazy: !alwaysShowMask && (props.disabled || !focused),\n unmask,\n ...customIMaskProps,\n } as IMaskInputProps<HTMLInputElement>;\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n const [value, , e] = args;\n\n // Метод onAccept может вызываться при монтировании, если не задан проп defaultValue.\n // Но нативный input никогда не вызывает onChange при монтировании.\n // Наше событие onValueChange в Input вывается в тех же случаях, что и нативный onChange,\n // поэтому чтобы сохранить консинстентность будем ориентироваться на наличие аргумента e.\n // Он содержит нативное событие, вызвавшее изменение.\n e && onValueChange?.(value);\n !e && (prevValue.current = value);\n }\n\n /**\n * Отслеживаем неожиданные нажатия\n * handleAccept не вызывается когда значение с маской не меняется\n * Сначала вызывается handleAccept, затем handleInput\n */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const { value, selectionStart } = e.currentTarget;\n\n // При вводе неожиданных символов или удалении каретка может перепрыгивать фиксированные символы.\n // Такие случаи не расцениваем как неожиданный ввод, т.к. пользователь может намеренно их вводить.\n if (prevValue.current === value && selectionStart === prevSelectionStart.current) {\n handleUnexpectedInput(value);\n }\n prevValue.current = value;\n prevSelectionStart.current = selectionStart;\n\n props.onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n\n // Если value из пропсов отличается от value, которое получит input после обработки,\n // то imask будет ставить каретку за последним валидным символом.\n props.selectAllOnFocus && inputRef.current?.delaySelectAll();\n }\n\n function handleUnexpectedInput(value: string) {\n const blink = inputRef.current?.blink.bind(inputRef.current) || (() => undefined);\n onUnexpectedInput ? onUnexpectedInput(value, blink) : blink();\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const { value, selectionStart, selectionEnd } = e.currentTarget;\n\n if (\n (isKeyBackspace(e) && selectionStart === 0 && selectionEnd === 0) ||\n (isKeyDelete(e) && prevSelectionStart.current === value.length)\n ) {\n // Случаи, когда нажатие клавиш не тригерит `onInput`\n handleUnexpectedInput(value);\n prevValue.current = e.currentTarget.value;\n }\n prevSelectionStart.current = selectionStart;\n\n props.onKeyDown?.(e);\n }\n },\n);\n"]}
1
+ {"version":3,"file":"MaskedInputLegacy.js","sourceRoot":"","sources":["MaskedInputLegacy.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG5F,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,IAAM,iBAAiB,GAAG,iBAAiB,CAChD,mBAAmB,EACnB,SAAS,iBAAiB,CAAC,KAAuB,EAAE,GAAsB;IAEtE,IAAA,IAAI,GAgBF,KAAK,KAhBH,EACJ,QAAQ,GAeN,KAAK,SAfC,EACR,WAAW,GAcT,KAAK,YAdI,EACX,KAaE,KAAK,eAbe,EAAtB,cAAc,mBAAG,KAAK,KAAA,EACtB,KAYE,KAAK,QAZO,EAAd,OAAO,mBAAG,IAAI,KAAA,EACd,KAWE,KAAK,WAX0B,EAArB,gBAAgB,mBAAG,EAAE,KAAA,EACjC,KAUE,KAAK,OAVO,EAAd,MAAM,mBAAG,KAAK,KAAA,EACd,aAAa,GASX,KAAK,cATM,EACb,iBAAiB,GAQf,KAAK,kBARU,EACjB,QAAQ,GAON,KAAK,SAPC,EACR,kBAAkB,GAMhB,KAAK,mBANW,EAClB,OAAO,GAKL,KAAK,QALA,EACP,SAAS,GAIP,KAAK,UAJE;IACT,sDAAsD;IACtD,SAAS,GAEP,KAAK,UAFE,EACN,UAAU,UACX,KAAK,EAjBH,qMAiBL,CADc,CACL;IACV,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;IAEpC,IAAM,QAAQ,GAAG,MAAM,CAAQ,IAAI,CAAC,CAAC;IAE/B,IAAA,KAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,QAAA,EAAE,UAAU,QAAmB,CAAC;IAC9C,IAAM,SAAS,GAAG,MAAM,CAAS,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAClF,IAAM,kBAAkB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAEvD,mBAAmB,CACjB,GAAG,EACH;QACE,OAAA,QAAQ,CAAC,OAAO;YAChB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC9B,SAAS,EAAE;;oBACT,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;oBAC1B,MAAA,QAAQ,CAAC,OAAO,0CAAE,cAAc,EAAE,CAAC;gBACrC,CAAC;aACF,CAAC;IANF,CAME,EACJ,EAAE,CACH,CAAC;IAEF,SAAS,CAAC;;QACR,uEAAuE;QACvE,uFAAuF;QACvF,kEAAkE;QAClE,IAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;YAC5B,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;YACjD,kBAAkB,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;QACrE,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,UAAU,GAAG,uBAAuB,EAAE,CAAC;IAE7C,OAAO,CACL,oBAAC,cAAc,aACb,GAAG,EAAE,QAAQ,IACT,UAAU,IACd,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAChE,OAAO,EACL,OAAO,CAAC,CAAC,CAAC,CACR,oBAAC,qBAAqB,IAAC,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc;YACvE,oBAAC,eAAe,eAAK,UAAU,IAAE,QAAQ,EAAE,YAAY,IAAI,CACrC,CACzB,CAAC,CAAC,CAAC,CACF,oBAAC,eAAe,eAAK,UAAU,IAAE,QAAQ,EAAE,YAAY,IAAI,CAC5D,IAEH,CACH,CAAC;IAEF,SAAS,WAAW,CAAC,KAA6C;;QAChE,IAAI,kBAAkB,IAAI,aAAa,EAAE,CAAC;YACxC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,kBAAkB,CAAC,MAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,OAAO,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;QAED,MAAA,KAAK,CAAC,OAAO,sDAAG,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,SAAS,uBAAuB;QAC9B,OAAO,WACL,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAQ,EACxC,eAAe,EAAE,WAAW,CAAC,QAAQ,CAAC,EACtC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC;YACxC,wEAAwE;YACxE,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,EACrD,MAAM,QAAA,IACH,gBAAgB,CACiB,CAAC;IACzC,CAAC;IAED,SAAS,YAAY;QAAC,cAA4E;aAA5E,UAA4E,EAA5E,qBAA4E,EAA5E,IAA4E;YAA5E,yBAA4E;;QACzF,IAAA,KAAK,GAAS,IAAI,GAAb,EAAI,CAAC,GAAI,IAAI,GAAR,CAAS;QAE1B,qFAAqF;QACrF,mEAAmE;QACnE,yFAAyF;QACzF,yFAAyF;QACzF,qDAAqD;QACrD,CAAC,KAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,KAAK,CAAC,CAAA,CAAC;QAC5B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,SAAS,WAAW,CAAC,CAAsC;;QACnD,IAAA,KAA4B,CAAC,CAAC,aAAa,EAAzC,KAAK,WAAA,EAAE,cAAc,oBAAoB,CAAC;QAElD,iGAAiG;QACjG,kGAAkG;QAClG,IAAI,SAAS,CAAC,OAAO,KAAK,KAAK,IAAI,cAAc,KAAK,kBAAkB,CAAC,OAAO,EAAE,CAAC;YACjF,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC1B,kBAAkB,CAAC,OAAO,GAAG,cAAc,CAAC;QAE5C,MAAA,KAAK,CAAC,OAAO,sDAAG,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,SAAS,WAAW,CAAC,CAAqC;;QACxD,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAA,KAAK,CAAC,OAAO,sDAAG,CAAC,CAAC,CAAC;QAEnB,oFAAoF;QACpF,iEAAiE;QACjE,KAAK,CAAC,gBAAgB,KAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,cAAc,EAAE,CAAA,CAAC;IAC/D,CAAC;IAED,SAAS,qBAAqB,CAAC,KAAa;;QAC1C,IAAM,KAAK,GAAG,CAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAI,CAAC,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC,CAAC;QAClF,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAChE,CAAC;IAED,SAAS,UAAU,CAAC,CAAqC;;QACvD,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,MAAA,KAAK,CAAC,MAAM,sDAAG,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,SAAS,aAAa,CAAC,CAAwC;;QACvD,IAAA,KAA0C,CAAC,CAAC,aAAa,EAAvD,KAAK,WAAA,EAAE,cAAc,oBAAA,EAAE,YAAY,kBAAoB,CAAC;QAEhE,IACE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,cAAc,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,CAAC;YACjE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,OAAO,KAAK,KAAK,CAAC,MAAM,CAAC,EAC/D,CAAC;YACD,qDAAqD;YACrD,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC7B,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;QAC5C,CAAC;QACD,kBAAkB,CAAC,OAAO,GAAG,cAAc,CAAC;QAE5C,MAAA,KAAK,CAAC,SAAS,sDAAG,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CACF,CAAC","sourcesContent":["import type { IMaskInputProps } from '@skbkontur/react-imask';\nimport React, { useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport type { Ref } from 'react';\n\nimport { isKeyBackspace, isKeyDelete } from '../../lib/events/keyboard/identifiers.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { Input } from '../Input/index.js';\nimport { Input as InputComponent } from '../Input/index.js';\nimport { ColorableInputElement } from './ColorableInputElement/index.js';\nimport { FixedIMaskInput } from './FixedIMaskInput.js';\nimport { getDefinitions, getMaskChar } from './MaskedInput.helpers.js';\nimport type { MaskedInputProps } from './MaskedInput.js';\nimport { getStyles, globalClasses } from './MaskedInput.styles.js';\n\nexport const MaskedInputLegacy = forwardRefAndName(\n 'MaskedInputLegacy',\n function MaskedInputLegacy(props: MaskedInputProps, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = {},\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onChange,\n onBeforePasteValue,\n element,\n className,\n // @ts-expect-error: могут передавать игнорируя ошибку\n maxLength,\n ...inputProps\n } = props;\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n const inputRef = useRef<Input>(null);\n\n const [focused, setFocused] = useState(false);\n const prevValue = useRef<string>(props.value || String(props.defaultValue) || '');\n const prevSelectionStart = useRef<number | null>(null);\n\n useImperativeHandle<typeof inputRef.current, typeof inputRef.current>(\n ref,\n () =>\n inputRef.current &&\n Object.assign(inputRef.current, {\n selectAll: () => {\n inputRef.current?.focus();\n inputRef.current?.delaySelectAll();\n },\n }),\n [],\n );\n\n useEffect(() => {\n // Для корректной работы onUnexpectedInput надо знать предыдущий value,\n // но imask при монтировании не вызывает onAccept, если value невалиден или laze=false.\n // Поэтому актуальный value при монтировании надо получать вручную\n if (inputRef.current?.input) {\n prevValue.current = inputRef.current.input.value;\n prevSelectionStart.current = inputRef.current.input.selectionStart;\n }\n }, []);\n\n const imaskProps = getCompatibleIMaskProps();\n\n return (\n <InputComponent\n ref={inputRef}\n {...inputProps}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n className={cx(globalClasses.root, className, styles.root(theme))}\n element={\n colored ? (\n <ColorableInputElement showOnFocus={false} alwaysShowMask={alwaysShowMask}>\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n </ColorableInputElement>\n ) : (\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n )\n }\n />\n );\n\n function handlePaste(event: React.ClipboardEvent<HTMLInputElement>) {\n if (onBeforePasteValue && onValueChange) {\n event.preventDefault();\n onValueChange?.(onBeforePasteValue(event.clipboardData?.getData('text') ?? ''));\n }\n\n props.onPaste?.(event);\n }\n\n function getCompatibleIMaskProps(): IMaskInputProps<HTMLInputElement> {\n return {\n mask: mask.replace(/0/g, '{\\\\0}') as any,\n placeholderChar: getMaskChar(maskChar),\n definitions: getDefinitions(formatChars),\n // FIXME: Должно быть eager=true, но в imask ломается удаление по delete\n eager: 'append',\n overwrite: 'shift',\n lazy: !alwaysShowMask && (props.disabled || !focused),\n unmask,\n ...customIMaskProps,\n } as IMaskInputProps<HTMLInputElement>;\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n const [value, , e] = args;\n\n // Метод onAccept может вызываться при монтировании, если не задан проп defaultValue.\n // Но нативный input никогда не вызывает onChange при монтировании.\n // Наше событие onValueChange в Input вывается в тех же случаях, что и нативный onChange,\n // поэтому чтобы сохранить консинстентность будем ориентироваться на наличие аргумента e.\n // Он содержит нативное событие, вызвавшее изменение.\n e && onValueChange?.(value);\n !e && (prevValue.current = value);\n }\n\n /**\n * Отслеживаем неожиданные нажатия\n * handleAccept не вызывается когда значение с маской не меняется\n * Сначала вызывается handleAccept, затем handleInput\n */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const { value, selectionStart } = e.currentTarget;\n\n // При вводе неожиданных символов или удалении каретка может перепрыгивать фиксированные символы.\n // Такие случаи не расцениваем как неожиданный ввод, т.к. пользователь может намеренно их вводить.\n if (prevValue.current === value && selectionStart === prevSelectionStart.current) {\n handleUnexpectedInput(value);\n }\n prevValue.current = value;\n prevSelectionStart.current = selectionStart;\n\n props.onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n\n // Если value из пропсов отличается от value, которое получит input после обработки,\n // то imask будет ставить каретку за последним валидным символом.\n props.selectAllOnFocus && inputRef.current?.delaySelectAll();\n }\n\n function handleUnexpectedInput(value: string) {\n const blink = inputRef.current?.blink.bind(inputRef.current) || (() => undefined);\n onUnexpectedInput ? onUnexpectedInput(value, blink) : blink();\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const { value, selectionStart, selectionEnd } = e.currentTarget;\n\n if (\n (isKeyBackspace(e) && selectionStart === 0 && selectionEnd === 0) ||\n (isKeyDelete(e) && prevSelectionStart.current === value.length)\n ) {\n // Случаи, когда нажатие клавиш не тригерит `onInput`\n handleUnexpectedInput(value);\n prevValue.current = e.currentTarget.value;\n }\n prevSelectionStart.current = selectionStart;\n\n props.onKeyDown?.(e);\n }\n },\n);\n"]}
@@ -20,19 +20,20 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  }
21
21
  return t;
22
22
  };
23
- import React, { useCallback, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from 'react';
23
+ import React, { useCallback, useContext, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState, } from 'react';
24
24
  import warning from 'warning';
25
- import { cx } from '../../lib/cx.js';
26
25
  import { forwardRefAndName } from '../../lib/forwardRefAndName.js';
26
+ import { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';
27
+ import { ThemeContext } from '../../lib/theming/ThemeContext.js';
27
28
  import { Input, selectionAllowedTypes } from '../Input/index.js';
28
29
  import { extractRaw, findNearestRawLeft, computePasteMaskedCursor } from './internal/helpers.js';
29
30
  import { MaskedCore } from './internal/MaskedCore.js';
30
31
  import { getSelectionRawRange } from './internal/maskedCoreClipboard.js';
31
32
  import { setMaskInputSelectionRange } from './internal/setMaskInputSelectionRange.js';
32
33
  import { useMaskEngine } from './internal/useMaskEngine.js';
33
- import { styles, globalClasses } from './MaskedInputV2.css.js';
34
34
  import { getDefinitions, getMaskChar } from './MaskedInputV2.helpers.js';
35
35
  import { normalizeRussianPhonePaste } from './MaskedInputV2.phone.js';
36
+ import { getStyles, globalClasses } from './MaskedInputV2.styles.js';
36
37
  var EMPTY_IMASK_PROPS = {};
37
38
  export var getSafeMaskInputType = function (type) {
38
39
  if (!type) {
@@ -66,6 +67,9 @@ export var MaskedInputV2 = forwardRefAndName('MaskedInputV2', function MaskedInp
66
67
  warning(false, '[MaskedInputV2]: This component is for internal use only. Please use MaskedInput instead.');
67
68
  }
68
69
  }, [__fromMaskedInputFacade]);
70
+ var theme = useContext(ThemeContext);
71
+ var cx = useEmotion().cx;
72
+ var styles = useStyles(getStyles);
69
73
  var inputRef = useRef(null);
70
74
  var coreInputRef = useRef(null);
71
75
  var _e = useState(false), focused = _e[0], setFocused = _e[1];
@@ -179,7 +183,7 @@ export var MaskedInputV2 = forwardRefAndName('MaskedInputV2', function MaskedInp
179
183
  return (React.createElement(Input, __assign({ ref: inputRef }, inputProps, { type: getSafeMaskInputType(type), inputMode: getMaskInputMode(type, inputProps.inputMode),
180
184
  // Непустоту значения Input считает по value нативного инпута, где лежат символы маски,
181
185
  // поэтому на пустом значении крестик выключаем сами.
182
- showClearIcon: raw === '' ? 'never' : showClearIcon, onValueChange: handleInputValueChange, onFocus: handleFocus, onBlur: handleBlur, onSelect: handleSelect, className: cx(globalClasses.root, className, styles.root), element: React.createElement(MaskedCore, { maskState: maskState, slotMap: engine.slotMap, engine: engine, focused: focused, currentRaw: raw, onRawChange: handleRawChange, onUnexpectedInput: triggerUnexpectedInput, onUndo: handleUndo, onRedo: handleRedo, coreInputRef: coreInputRef, colored: colored, selectAllOnFocus: selectAllOnFocus, selectionIntent: selectionIntent, onSelectionIntentChange: requestSelectionIntent }) })));
186
+ showClearIcon: raw === '' ? 'never' : showClearIcon, onValueChange: handleInputValueChange, onFocus: handleFocus, onBlur: handleBlur, onSelect: handleSelect, className: cx(globalClasses.root, className, styles.root(theme)), element: React.createElement(MaskedCore, { maskState: maskState, slotMap: engine.slotMap, engine: engine, focused: focused, currentRaw: raw, onRawChange: handleRawChange, onUnexpectedInput: triggerUnexpectedInput, onUndo: handleUndo, onRedo: handleRedo, coreInputRef: coreInputRef, colored: colored, selectAllOnFocus: selectAllOnFocus, selectionIntent: selectionIntent, onSelectionIntentChange: requestSelectionIntent }) })));
183
187
  // Клик по крестику очистки Input отдаёт наружу через onValueChange, а сам чистит поле
184
188
  // записью в DOM — мимо модели маски, из-за чего значение вернулось бы при следующем рендере.
185
189
  // Поэтому очищаем через raw, как при обычном вводе.
@@ -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 { cx } from '../../lib/cx.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.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 { styles, globalClasses } from './MaskedInputV2.css.js';\nimport { getDefinitions, getMaskChar } from './MaskedInputV2.helpers.js';\nimport { normalizeRussianPhonePaste } from './MaskedInputV2.phone.js';\nimport type { IMaskInputProps } from './react-imask/mixin.js';\n\nexport type MaskedInputV2OnBeforePasteValue = (value: string) => string;\n\nexport interface MaskedInputV2MaskedProps {\n /** Шаблон ввода, определяющий допустимые символы. */\n mask: string;\n\n /** Плейсхолдер, который отображается на месте ещё не введённых пользователем символов.\n * @default _ */\n maskChar?: string;\n\n /** Словарь правил для настройки маски, где:\n * ключ — символ для использования в маске;\n * значение — регулярка-правило.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */\n formatChars?: Record<string, string>;\n\n /** Всегда показывать символы маски, независимо от фокуса в поле.\n * @default false */\n alwaysShowMask?: boolean;\n\n /** Событие некорректного ввода.\n * Вторым аргументом передаётся метод вспыхивания рамки поля.\n *\n * Если обработчик не задан, то при событии рамка всегда вспыхивает.\n *\n * @param value значение поля\n * @param blink метод вспыхивания рамки поля\n */\n onUnexpectedInput?: (value: string, blink: () => void) => void;\n\n /**\n * Событие перед вставкой текста в поле.\n * Вызывается с аргументом value — текст из буфера, браузерного autofill\n * или иной bulk-вставки без clipboard-события.\n *\n * Обработчик должен вернуть текст — он попадёт в поле.\n *\n * При `type=\"tel\"` и отсутствии обработчика применяется\n * {@link normalizeRussianPhonePaste}.\n *\n * @param value значение вставки.\n */\n onBeforePasteValue?: MaskedInputV2OnBeforePasteValue;\n\n /** Убирает из value символы маски, которые пользователь не вводил.\n * @default false */\n unmask?: boolean;\n\n /** Раскрашивает символы маски.\n * @default true\n * @ignore */\n colored?: boolean;\n\n /** Задает пропсы для компонента `IMaskInput`. Необходимы для юнит-тестов\n * @ignore */\n imaskProps?: IMaskInputProps<HTMLInputElement>;\n}\n\nexport type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;\n\nconst EMPTY_IMASK_PROPS = {};\n\nexport const getSafeMaskInputType = (type?: InputType | string): MaskInputType | undefined => {\n if (!type) {\n return undefined;\n }\n\n const normalizedType = type.trim() as InputType;\n\n if (normalizedType === 'password' || !selectionAllowedTypes.includes(normalizedType)) {\n return 'text';\n }\n\n return normalizedType as MaskInputType;\n};\n\nfunction getMaskInputMode(\n type: InputType | string | undefined,\n inputMode: React.InputHTMLAttributes<HTMLInputElement>['inputMode'],\n): React.InputHTMLAttributes<HTMLInputElement>['inputMode'] {\n if (inputMode) {\n return inputMode;\n }\n\n if (type?.trim() === 'email') {\n return 'email';\n }\n\n return undefined;\n}\n\nexport interface MaskedInputV2Props\n extends\n MaskedInputV2MaskedProps,\n Omit<InputProps, 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'> {\n type?: MaskInputType;\n\n /** @ignore */\n __fromMaskedInputFacade?: boolean;\n}\n\n/** @deprecated Используйте {@link MaskedInput}. Для legacy-поведения включите фичафлаг `maskedInputUseLegacyBehavior` в {@link ReactUIFeatureFlagsContext}. */\nexport const MaskedInputV2 = forwardRefAndName(\n 'MaskedInputV2',\n function MaskedInputV2(props: MaskedInputV2Props, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = EMPTY_IMASK_PROPS,\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onBeforePasteValue,\n // Значение меняет MaskedCore, поэтому onChange к Input не относится:\n // иначе потребитель получил бы внутреннее событие пересчёта крестика очистки.\n onChange: _onChange,\n element: _element,\n className,\n // @ts-expect-error: могут передавать игнорируя ошибку\n maxLength,\n showClearIcon,\n selectAllOnFocus,\n type,\n __fromMaskedInputFacade,\n ...inputProps\n } = props;\n\n useEffect(() => {\n if (!__fromMaskedInputFacade) {\n warning(false, '[MaskedInputV2]: This component is for internal use only. Please use MaskedInput instead.');\n }\n }, [__fromMaskedInputFacade]);\n\n const 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":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,OAAO,EACP,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AAEf,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AA+DrE,IAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,IAAyB;IAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAe,CAAC;IAEhD,IAAI,cAAc,KAAK,UAAU,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACrF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,cAA+B,CAAC;AACzC,CAAC,CAAC;AAEF,SAAS,gBAAgB,CACvB,IAAoC,EACpC,SAAmE;IAEnE,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE,MAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAYD,+JAA+J;AAC/J,MAAM,CAAC,IAAM,aAAa,GAAG,iBAAiB,CAC5C,eAAe,EACf,SAAS,aAAa,CAAC,KAAyB,EAAE,GAAsB;IAEpE,IAAA,IAAI,GAsBF,KAAK,KAtBH,EACJ,QAAQ,GAqBN,KAAK,SArBC,EACR,WAAW,GAoBT,KAAK,YApBI,EACX,KAmBE,KAAK,eAnBe,EAAtB,cAAc,mBAAG,KAAK,KAAA,EACtB,KAkBE,KAAK,QAlBO,EAAd,OAAO,mBAAG,IAAI,KAAA,EACd,KAiBE,KAAK,WAjByC,EAApC,gBAAgB,mBAAG,iBAAiB,KAAA,EAChD,KAgBE,KAAK,OAhBO,EAAd,MAAM,mBAAG,KAAK,KAAA,EACd,aAAa,GAeX,KAAK,cAfM,EACb,iBAAiB,GAcf,KAAK,kBAdU,EACjB,kBAAkB,GAahB,KAAK,mBAbW;IAClB,qEAAqE;IACrE,8EAA8E;IACpE,SAAS,GAUjB,KAAK,SAVY,EACV,QAAQ,GASf,KAAK,QATU,EACjB,SAAS,GAQP,KAAK,UARE;IACT,sDAAsD;IACtD,SAAS,GAMP,KAAK,UANE,EACT,aAAa,GAKX,KAAK,cALM,EACb,gBAAgB,GAId,KAAK,iBAJS,EAChB,IAAI,GAGF,KAAK,KAHH,EACJ,uBAAuB,GAErB,KAAK,wBAFgB,EACpB,UAAU,UACX,KAAK,EAvBH,6QAuBL,CADc,CACL;IAEV,SAAS,CAAC;QACR,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,EAAE,2FAA2F,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9B,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;IAEpC,IAAM,QAAQ,GAAG,MAAM,CAAQ,IAAI,CAAC,CAAC;IACrC,IAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAE9C,IAAA,KAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,QAAA,EAAE,UAAU,QAAmB,CAAC;IACxC,IAAA,KAAwC,QAAQ,CAAwB,IAAI,CAAC,EAA5E,eAAe,QAAA,EAAE,kBAAkB,QAAyC,CAAC;IAEpF,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,IAAM,uBAAuB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAC5D,IAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAE/B,IAAM,sBAAsB,GAAG,WAAW,CAAC,UAAC,MAA6B;QACvE,kBAAkB,CAAC,UAAC,OAAO,IAAK,OAAA,CAAC,OAAO,KAAK,YAAY,IAAI,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAvE,CAAuE,CAAC,CAAC;IAC3G,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,UAAU,GAAG,MAAM,CAA4C,EAAE,CAAC,CAAC;IACzE,IAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnC,kFAAkF;IAClF,wEAAwE;IACxE,gEAAgE;IAChE,IAAI,WAAW,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACvC,uBAAuB,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QACvD,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;QACjC,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;QACxB,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,6DAA6D;IAC7D,IAAM,MAAM,GAAG,aAAa,CAAC;QAC3B,IAAI,MAAA;QACJ,QAAQ,UAAA;QACR,WAAW,aAAA;QACX,MAAM,QAAA;QACN,cAAc,gBAAA;QACd,UAAU,EAAE,gBAAgB;KAC7B,CAAC,CAAC;IAEH,mFAAmF;IAC7E,IAAA,KAAgB,QAAQ,CAAS,sBACrC,OAAA,UAAU,CAAC,CAAC,MAAA,KAAK,CAAC,KAAK,mCAAI,KAAK,CAAC,YAAY,CAAgC,EAAE,MAAM,CAAC,CAAA,EAAA,CACvF,EAFM,GAAG,QAAA,EAAE,MAAM,QAEjB,CAAC;IAEF,8EAA8E;IAC9E,IAAM,SAAS,GAAG,OAAO,CAAC,cAAM,OAAA,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,EAA5B,CAA4B,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtF,IAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE/C,kEAAkE;IAClE,SAAS,CAAC;QACR,IAAM,aAAa,GAAG,cAAc,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC;QAC9D,IAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,CAAC;QAChE,cAAc,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;QACtC,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;QAEzC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;gBAClC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,UAAC,IAAI;gBACV,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;gBAClC,OAAO,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1B,oEAAoE;IACpE,sEAAsE;IACtE,IAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,IAAM,eAAe,GAAG,MAAM,CAAS,SAAS,CAAC,WAAW,CAAC,CAAC;IAC9D,SAAS,CAAC;QACR,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1B,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;YAC9B,eAAe,CAAC,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IAAI,SAAS,CAAC,WAAW,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;YACtD,eAAe,CAAC,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC;YAChD,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IAE5B,mBAAmB,CAA2D,GAAG,EAAE;QACjF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;YACrC,SAAS,EAAE;;gBACT,sBAAsB,CAAC,YAAY,CAAC,CAAC;gBACrC,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;gBAC1B,IAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC;gBAChC,IAAI,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,aAAa,KAAK,EAAE,EAAE,CAAC;oBAChD,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAE7B,eAAe,CAAC;QACd,IAAI,uBAAuB,CAAC,OAAO,KAAK,IAAI,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACrE,0BAA0B,CAAC,YAAY,CAAC,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAClF,YAAY,CAAC,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC;YACvD,uBAAuB,CAAC,OAAO,GAAG,IAAI,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC;QACR,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO;QACT,CAAC;QAED,IAAM,SAAS,GAAG;;YAChB,IAAI,QAAQ,CAAC,aAAa,KAAK,EAAE,EAAE,CAAC;gBAClC,YAAY,CAAC,OAAO,GAAG,MAAA,EAAE,CAAC,cAAc,mCAAI,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QACxD,OAAO,cAAM,OAAA,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAA1D,CAA0D,CAAC;IAC1E,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,oBAAC,KAAK,aACJ,GAAG,EAAE,QAAQ,IACT,UAAU,IACd,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,EAChC,SAAS,EAAE,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC;QACvD,uFAAuF;QACvF,qDAAqD;QACrD,aAAa,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EACnD,aAAa,EAAE,sBAAsB,EACrC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAChE,OAAO,EACL,oBAAC,UAAU,IACT,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,GAAG,EACf,WAAW,EAAE,eAAe,EAC5B,iBAAiB,EAAE,sBAAsB,EACzC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAe,EAChC,uBAAuB,EAAE,sBAAsB,GAC/C,IAEJ,CACH,CAAC;IAEF,sFAAsF;IACtF,6FAA6F;IAC7F,oDAAoD;IACpD,SAAS,sBAAsB,CAAC,KAAa;QAC3C,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,gGAAgG;QAChG,qGAAqG;QACrG,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACf,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,MAAM,CAAC,EAAE,CAAC,CAAC;QACX,uBAAuB,CAAC,OAAO,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,SAAS,eAAe,CAAC,KAAa,EAAE,MAAyB,EAAE,SAAkB;QACnF,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,KAAK,GAAG,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC7C,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,UAAmB;;QAC5D,IAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC;QAChC,IAAM,cAAc,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,cAAc,mCAAI,CAAC,CAAC;QAC/C,IAAM,YAAY,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,YAAY,mCAAI,cAAc,CAAC;QAExD,iGAAiG;QACjG,iDAAiD;QACjD,IAAM,gBAAgB,GACpB,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,cAAc,EAAE,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5G,IAAI,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,YAAoB,CAAC;QACzB,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACvF,YAAY,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,YAAY;gBACV,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,IAAI;oBACnD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,SAAS;oBACtD,CAAC,CAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAY;oBACxD,CAAC,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;QAED,IAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACjD,IAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAE7C,IAAI,WAAW,GAAG,MAAM,CAAC;QACzB,IAAI,kBAAkB,EAAE,CAAC;YACvB,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YAChD,WAAW,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QAED,IAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,gDAAgD;YAChD,sBAAsB,EAAE,CAAC;QAC3B,CAAC;QAED,IAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAM,eAAe,GAAG,wBAAwB,CAC9C,SAAS,EACT,QAAQ,EACR,MAAM,CAAC,GAAG,EACV,YAAY,EACZ,MAAM,CAAC,OAAO,EACd,kBAAkB,CAAC,WAAW,CAC/B,CAAC;QAEF,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACvB,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,uBAAuB,CAAC,OAAO,GAAG,eAAe,CAAC;QAElD,IAAI,kBAAkB,IAAI,aAAa,EAAE,CAAC;YACxC,qFAAqF;YACrF,sFAAsF;YACtF,eAAe,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,WAAW,CAAC;YAC1E,aAAa,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,SAAS,WAAW,CAAC,MAAc,EAAE,SAAiB;QACpD,IAAM,kBAAkB,GAAG,GAAG,CAAC;QAE/B,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,KAAA,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/C,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,eAAe,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACnD,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;QACD,eAAe,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS,UAAU;QACjB,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QACD,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAC3D,IAAI,SAAS,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;YAC1C,eAAe,CAAC,OAAO,GAAG,SAAS,CAAC;YACpC,IAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,uBAAuB,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;QACpD,CAAC;IACH,CAAC;IAED,SAAS,UAAU;QACjB,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QACD,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QACvF,IAAI,SAAS,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;YAC1C,eAAe,CAAC,OAAO,GAAG,SAAS,CAAC;YACpC,IAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,uBAAuB,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;QACpD,CAAC;IACH,CAAC;IAED,SAAS,sBAAsB,CAAC,SAAmB;;QACjD,IAAM,KAAK,GAAG,MAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,mCAAI,CAAC,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC,CAAC;QAClF,iBAAiB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9F,CAAC;IAED,SAAS,WAAW,CAAC,CAAqC;;QACxD,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAA,KAAK,CAAC,OAAO,sDAAG,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,SAAS,UAAU,CAAC,CAAqC;;QACvD,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,MAAA,KAAK,CAAC,MAAM,sDAAG,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,SAAS,YAAY,CAAC,CAAyC;;QAC7D,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,YAAY,CAAC,OAAO,GAAG,MAAA,YAAY,CAAC,OAAO,CAAC,cAAc,mCAAI,CAAC,CAAC;QAClE,CAAC;QACD,MAAA,UAAU,CAAC,QAAQ,2DAAG,CAAC,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC,CACF,CAAC;AAEF,4EAA4E;AAC5E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC","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"]}
@@ -0,0 +1,7 @@
1
+ import type { Theme } from '../../lib/theming/Theme.js';
2
+ export declare const globalClasses: {
3
+ root: string;
4
+ };
5
+ export declare const getStyles: import("../../lib/theming/Emotion.js").StylesGetter<{
6
+ root(t: Theme): string;
7
+ }>;
@@ -0,0 +1,19 @@
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';
7
+ export var globalClasses = prefix('masked-input-v2')({
8
+ root: 'root',
9
+ });
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
+ };
17
+ });
18
+ var templateObject_1;
19
+ //# sourceMappingURL=MaskedInputV2.styles.js.map
@@ -0,0 +1 @@
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,6 +1,8 @@
1
- import React from 'react';
2
- import { cx } from '../../../lib/cx.js';
3
- import { styles, globalClasses } from './MaskedInternal.css.js';
1
+ import { cx } from '@emotion/css';
2
+ import React, { useContext } from 'react';
3
+ import { useStyles } from '../../../lib/renderEnvironment/index.js';
4
+ import { ThemeContext } from '../../../lib/theming/ThemeContext.js';
5
+ import { getStyles, globalClasses } from './MaskedInternal.styles.js';
4
6
  function splitTextBySelection(text, textStartOffset, selectionStart, selectionEnd) {
5
7
  if (selectionStart === selectionEnd) {
6
8
  return [text, '', ''];
@@ -20,10 +22,12 @@ function splitTextBySelection(text, textStartOffset, selectionStart, selectionEn
20
22
  */
21
23
  export function MaskOverlay(_a) {
22
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);
26
+ var styles = useStyles(getStyles);
23
27
  var maskPart = displayValue.slice(typedValue.length);
24
28
  var disabledClass = disabled && globalClasses.disabled;
25
29
  var coloredClass = colored && globalClasses.colored;
26
- var selectedSegmentClass = styles.selectedSegment;
30
+ var selectedSegmentClass = styles.selectedSegment();
27
31
  if (!typedValue && !maskPart) {
28
32
  return null;
29
33
  }
@@ -34,7 +38,7 @@ export function MaskOverlay(_a) {
34
38
  selected ? React.createElement("span", { className: selectedSegmentClass }, selected) : null,
35
39
  after ? React.createElement("span", { className: segmentClassName }, after) : null));
36
40
  }
37
- return (React.createElement("span", { ref: containerRef, "aria-hidden": "true", className: styles.overlay },
41
+ return (React.createElement("span", { ref: containerRef, "aria-hidden": "true", className: styles.overlay() },
38
42
  React.createElement("span", { "data-tid": "masked-input-overlay", style: {
39
43
  display: 'inline-block',
40
44
  width: '100%',
@@ -42,7 +46,9 @@ export function MaskOverlay(_a) {
42
46
  textAlign: textAlign,
43
47
  lineHeight: 'inherit',
44
48
  } },
45
- typedValue ? renderSegment(typedValue, 0, cx(styles.typed, disabledClass, coloredClass)) : null,
46
- 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)));
47
53
  }
48
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 { cx } from '../../../lib/cx.js';\nimport { styles, globalClasses } from './MaskedInternal.css.js';\n\ninterface MaskOverlayProps {\n typedValue: string;\n displayValue: string;\n selectionStart: number;\n selectionEnd: number;\n disabled?: boolean;\n textAlign?: React.CSSProperties['textAlign'];\n containerRef?: React.RefObject<HTMLSpanElement | null>;\n colored?: boolean;\n}\n\nfunction splitTextBySelection(\n text: string,\n textStartOffset: number,\n selectionStart: number,\n selectionEnd: number,\n): [string, string, string] {\n if (selectionStart === selectionEnd) {\n return [text, '', ''];\n }\n\n const localStart = Math.max(0, selectionStart - textStartOffset);\n const localEnd = Math.min(text.length, selectionEnd - textStartOffset);\n\n if (localEnd <= localStart) {\n return [text, '', ''];\n }\n\n return [text.slice(0, localStart), text.slice(localStart, localEnd), text.slice(localEnd)];\n}\n\n/**\n * Абсолютно позиционированный слой над <input>.\n * Input делается прозрачным (color: transparent), а весь текст\n * (typedValue + maskPart) рендерится здесь с раскраской.\n * При center/right align overlay выравнивает маску, а input смещается paddingLeft.\n */\nexport function MaskOverlay({\n typedValue,\n displayValue,\n selectionStart,\n selectionEnd,\n disabled,\n textAlign,\n containerRef,\n colored = true,\n}: MaskOverlayProps) {\n const maskPart = displayValue.slice(typedValue.length);\n\n const disabledClass = disabled && globalClasses.disabled;\n const coloredClass = colored && globalClasses.colored;\n const selectedSegmentClass = styles.selectedSegment;\n\n if (!typedValue && !maskPart) {\n return null;\n }\n\n function renderSegment(text: string, offset: number, segmentClassName: string) {\n const [before, selected, after] = splitTextBySelection(text, offset, selectionStart, selectionEnd);\n\n return (\n <>\n {before ? <span className={segmentClassName}>{before}</span> : null}\n {selected ? <span className={selectedSegmentClass}>{selected}</span> : null}\n {after ? <span className={segmentClassName}>{after}</span> : null}\n </>\n );\n }\n\n return (\n <span ref={containerRef} aria-hidden=\"true\" className={styles.overlay}>\n <span\n data-tid=\"masked-input-overlay\"\n style={{\n display: 'inline-block',\n width: '100%',\n whiteSpace: 'nowrap',\n textAlign,\n lineHeight: 'inherit',\n }}\n >\n {typedValue ? renderSegment(typedValue, 0, cx(styles.typed, disabledClass, coloredClass)) : null}\n {maskPart ? renderSegment(maskPart, typedValue.length, cx(styles.mask, disabledClass, coloredClass)) : null}\n </span>\n </span>\n );\n}\n"]}
1
+ {"version":3,"file":"MaskOverlay.js","sourceRoot":"","sources":["MaskOverlay.tsx"],"names":[],"mappings":"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","sourcesContent":["import { cx } from '@emotion/css';\nimport React, { useContext } from 'react';\n\nimport { useStyles } from '../../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext.js';\nimport { getStyles, globalClasses } from './MaskedInternal.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,13 +20,14 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  }
21
21
  return t;
22
22
  };
23
- import React, { useCallback, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from 'react';
24
- import { cx } from '../../../lib/cx.js';
23
+ import { cx } from '@emotion/css';
24
+ import React, { useCallback, useContext, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState, } from 'react';
25
25
  import { forwardRefAndName } from '../../../lib/forwardRefAndName.js';
26
- import { useGlobal } from '../../../lib/renderEnvironment/index.js';
26
+ import { useGlobal, useStyles } from '../../../lib/renderEnvironment/index.js';
27
27
  import { scrollInputCaretIntoView } from '../../../lib/scrollInputCaretIntoView.js';
28
+ import { ThemeContext } from '../../../lib/theming/ThemeContext.js';
28
29
  import { needsMaskAlignPadding } from './computeMaskAlignPadding.js';
29
- import { styles, globalClasses } from './MaskedInternal.css.js';
30
+ import { getStyles, globalClasses } from './MaskedInternal.styles.js';
30
31
  import { MaskOverlay } from './MaskOverlay.js';
31
32
  import { setMaskInputSelectionRange } from './setMaskInputSelectionRange.js';
32
33
  import { getShowOverlay } from './showOverlay.js';
@@ -39,9 +40,11 @@ import { useMaskedCoreHandlers } from './useMaskedCoreHandlers.js';
39
40
  */
40
41
  export var MaskedCore = forwardRefAndName('MaskedCore', function MaskedCore(props, ref) {
41
42
  var _a, _b;
42
- var maskState = props.maskState, slotMap = props.slotMap, engine = props.engine, focused = props.focused, currentRaw = props.currentRaw, onRawChange = props.onRawChange, onUnexpectedInput = props.onUnexpectedInput, onUndo = props.onUndo, onRedo = props.onRedo, coreInputRef = props.coreInputRef, _c = props.colored, colored = _c === void 0 ? true : _c, selectAllOnFocus = props.selectAllOnFocus, externalSelectionIntent = props.selectionIntent, onSelectionIntentChange = props.onSelectionIntentChange, onKeyDown = props.onKeyDown, onMouseUp = props.onMouseUp, onInput = props.onInput, onSelect = props.onSelect, onFocus = props.onFocus, onPaste = props.onPaste, onBlur = props.onBlur, inputOnChange = props.onChange, placeholder = props.placeholder, className = props.className, disabled = props.disabled, rest = __rest(props, ["maskState", "slotMap", "engine", "focused", "currentRaw", "onRawChange", "onUnexpectedInput", "onUndo", "onRedo", "coreInputRef", "colored", "selectAllOnFocus", "selectionIntent", "onSelectionIntentChange", "onKeyDown", "onMouseUp", "onInput", "onSelect", "onFocus", "onPaste", "onBlur", "onChange", "placeholder", "className", "disabled"]);
43
+ var maskState = props.maskState, slotMap = props.slotMap, engine = props.engine, focused = props.focused, currentRaw = props.currentRaw, onRawChange = props.onRawChange, onUnexpectedInput = props.onUnexpectedInput, onUndo = props.onUndo, onRedo = props.onRedo, coreInputRef = props.coreInputRef, _c = props.colored, colored = _c === void 0 ? true : _c, selectAllOnFocus = props.selectAllOnFocus, externalSelectionIntent = props.selectionIntent, onSelectionIntentChange = props.onSelectionIntentChange, onKeyDown = props.onKeyDown, onMouseUp = props.onMouseUp, onInput = props.onInput, onSelect = props.onSelect, onFocus = props.onFocus, onPaste = props.onPaste, onBlur = props.onBlur, inputOnChange = props.onChange, placeholder = props.placeholder, className = props.className, disabled = props.disabled, readOnly = props.readOnly, rest = __rest(props, ["maskState", "slotMap", "engine", "focused", "currentRaw", "onRawChange", "onUnexpectedInput", "onUndo", "onRedo", "coreInputRef", "colored", "selectAllOnFocus", "selectionIntent", "onSelectionIntentChange", "onKeyDown", "onMouseUp", "onInput", "onSelect", "onFocus", "onPaste", "onBlur", "onChange", "placeholder", "className", "disabled", "readOnly"]);
44
+ var styles = useStyles(getStyles);
43
45
  var globalObject = useGlobal();
44
46
  var overlayRef = useRef(null);
47
+ var theme = useContext(ThemeContext);
45
48
  var textAlign = (_a = rest.style) === null || _a === void 0 ? void 0 : _a.textAlign;
46
49
  var _d = useState(null), internalSelectionIntent = _d[0], setInternalSelectionIntent = _d[1];
47
50
  var selectionIntent = externalSelectionIntent === undefined ? internalSelectionIntent : externalSelectionIntent;
@@ -81,6 +84,7 @@ export var MaskedCore = forwardRefAndName('MaskedCore', function MaskedCore(prop
81
84
  onFocus: onFocus,
82
85
  onBlur: onBlur,
83
86
  onPaste: onPaste,
87
+ readOnly: readOnly,
84
88
  syncOverlayScroll: syncOverlayScroll,
85
89
  requestSelectionIntent: requestSelectionIntent,
86
90
  }), pendingCursorRef = _e.pendingCursorRef, selectionRange = _e.selectionRange, syncSelection = _e.syncSelection, handleChange = _e.handleChange, handleKeyDown = _e.handleKeyDown, handleSelect = _e.handleSelect, handlePaste = _e.handlePaste, handleBeforeInput = _e.handleBeforeInput, handleCopy = _e.handleCopy, handleCut = _e.handleCut, handleInput = _e.handleInput, handleMouseDown = _e.handleMouseDown, handleMouseUp = _e.handleMouseUp, handleFocus = _e.handleFocus, handleBlur = _e.handleBlur;
@@ -182,7 +186,7 @@ export var MaskedCore = forwardRefAndName('MaskedCore', function MaskedCore(prop
182
186
  var alignPadding = useMaskAlignPadding(coreInputRef, overlayRef, maskState.displayValue, textAlign, focused && showOverlay && needsMaskAlignPadding(textAlign));
183
187
  var inputStyle = alignPadding > 0 ? __assign(__assign({}, rest.style), { textAlign: 'left', paddingLeft: alignPadding }) : rest.style;
184
188
  return (React.createElement(React.Fragment, null,
185
- 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) {
189
+ React.createElement("input", __assign({}, rest, { style: inputStyle, placeholder: showOverlay ? undefined : placeholder, "aria-disabled": disabled, disabled: disabled, readOnly: readOnly, 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) {
186
190
  var _a;
187
191
  handleMouseDown();
188
192
  (_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 { cx } from '../../../lib/cx.js';\nimport { forwardRefAndName } from '../../../lib/forwardRefAndName.js';\nimport { useGlobal } from '../../../lib/renderEnvironment/index.js';\nimport { scrollInputCaretIntoView } from '../../../lib/scrollInputCaretIntoView.js';\nimport type { InputElement } from '../../Input/Input.typings.js';\nimport { needsMaskAlignPadding } from './computeMaskAlignPadding.js';\nimport type { MaskedCoreProps } from './MaskedCore.types.js';\nimport { styles, globalClasses } from './MaskedInternal.css.js';\nimport { MaskOverlay } from './MaskOverlay.js';\nimport { setMaskInputSelectionRange } from './setMaskInputSelectionRange.js';\nimport { getShowOverlay } from './showOverlay.js';\nimport { useInputOverflow } from './useInputOverflow.js';\nimport { useMaskAlignPadding } from './useMaskAlignPadding.js';\nimport { useMaskedCoreHandlers } from './useMaskedCoreHandlers.js';\n\nexport type { MaskedCoreProps } from './MaskedCore.types.js';\n\n/**\n * Headless-слой MaskedInputV2: прозрачный `<input>` для ввода и {@link MaskOverlay} для отображения маски.\n * Управляется через {@link useMaskedCoreHandlers}.\n */\nexport const MaskedCore = forwardRefAndName(\n 'MaskedCore',\n function MaskedCore(props: MaskedCoreProps, ref: React.ForwardedRef<InputElement | null>) {\n const {\n maskState,\n slotMap,\n engine,\n focused,\n currentRaw,\n onRawChange,\n onUnexpectedInput,\n onUndo,\n onRedo,\n coreInputRef,\n colored = true,\n selectAllOnFocus,\n selectionIntent: externalSelectionIntent,\n onSelectionIntentChange,\n onKeyDown,\n onMouseUp,\n onInput,\n onSelect,\n onFocus,\n onPaste,\n onBlur,\n onChange: inputOnChange,\n placeholder,\n className,\n disabled,\n ...rest\n } = props;\n\n const 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 readOnly,\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 readOnly,\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 readOnly={readOnly}\n ref={coreInputRef}\n className={cx(globalClasses.input, styles.input(theme), showOverlay && globalClasses.masked, className)}\n value={maskState.typedValue}\n onChange={handleChange}\n onBeforeInput={handleBeforeInput}\n onKeyDown={handleKeyDown}\n onSelect={handleSelect}\n onPaste={handlePaste}\n onCopy={handleCopy}\n onCut={handleCut}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onMouseDown={(e) => {\n handleMouseDown();\n rest.onMouseDown?.(e);\n }}\n onMouseUp={handleMouseUp}\n onScroll={syncOverlayScroll}\n />\n {showOverlay && (\n <MaskOverlay\n containerRef={overlayRef}\n typedValue={maskState.typedValue}\n displayValue={maskState.displayValue}\n selectionStart={selectionRange.start}\n selectionEnd={selectionRange.end}\n disabled={disabled}\n textAlign={rest.style?.textAlign}\n colored={colored}\n />\n )}\n </>\n );\n },\n);\n"]}
@@ -0,0 +1,15 @@
1
+ import type { Theme } from '../../../lib/theming/Theme.js';
2
+ export declare const globalClasses: {
3
+ input: string;
4
+ disabled: string;
5
+ selected: string;
6
+ masked: string;
7
+ colored: string;
8
+ };
9
+ export declare const getStyles: import("../../../lib/theming/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
+ }>;
@@ -0,0 +1,34 @@
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';
6
+ export var globalClasses = prefix('masked-internal')({
7
+ input: 'input',
8
+ disabled: 'disabled',
9
+ selected: 'selected',
10
+ masked: 'masked',
11
+ colored: 'colored',
12
+ });
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
+ });
32
+ });
33
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
34
+ //# sourceMappingURL=MaskedInternal.styles.js.map